[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GSFWDXTPRYYF8W7SXY8A9V":3,"skill-same:01M6GSFWDXTPRYYF8W7SXY8A9V":101},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6GSFWDXTPRYYF8W7SXY8A9V","binance-spot-openapi-skill",null,"Operate Binance Spot market, account, and order APIs through UXC with a curated OpenAPI schema, Binance query signing, and separate mainnet\u002Ftestnet link flows.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36],"openapi","binance","spot","binance spot openapi skill","schema","Market","query","link","flows","with","operate","signing","uxc","2026-11-10 10:12:30",false,"---\nname: binance-spot-openapi-skill\ndescription: Operate Binance Spot market, account, and order APIs through UXC with a curated OpenAPI schema, Binance query signing, and separate mainnet\u002Ftestnet link flows.\n---\n\n# Binance Spot API Skill\n\nUse this skill to run Binance Spot REST operations through `uxc` + OpenAPI.\n\nReuse the `uxc` skill for shared execution, auth, and error-handling guidance.\n\n## Prerequisites\n\n- `uxc` is installed and available in `PATH`.\n- Network access to:\n  - `https:\u002F\u002Fapi.binance.com`\n  - `https:\u002F\u002Ftestnet.binance.vision`\n- Access to the curated OpenAPI schema URL:\n  - `https:\u002F\u002Fraw.githubusercontent.com\u002Fholon-run\u002Fuxc\u002Fmain\u002Fskills\u002Fbinance-spot-openapi-skill\u002Freferences\u002Fbinance-spot.openapi.json`\n\n## Scope\n\nThis skill covers curated Binance Spot REST endpoints for:\n\n- public market reads\n- signed account reads\n- signed order queries\n- test orders\n- order placement and cancellation\n\nThis skill does **not** cover:\n\n- OCO, OTO, OTOCO, OPO, OPOCO, or other `orderList\u002F*` endpoints\n- `order\u002FcancelReplace`\n- `order\u002Famend\u002F*`\n- `historicalTrades`\n- `uiKlines`\n- `ticker\u002FtradingDay`\n- SOR endpoints\n- Wallet, Margin, Earn, or `\u002Fsapi\u002F*` endpoints\n- RSA request signing\n- `https:\u002F\u002Fdemo-api.binance.com`\n\n## Authentication\n\nPublic market endpoints do not require credentials.\n\nSigned Spot endpoints require:\n\n- `api_key` field for `X-MBX-APIKEY`\n- `private_key` field for Ed25519 PKCS#8 PEM signing, or `secret_key` for deprecated HMAC SHA256 signing\n\n### Testnet API Key Setup\n\nBinance Spot testnet uses a separate host and separate API key records from mainnet:\n\n- base URL: `https:\u002F\u002Ftestnet.binance.vision`\n- testnet API keys do not work on mainnet\n- mainnet API keys do not work on testnet\n\nThere are two practical testnet flows:\n\n1. `Ed25519` (recommended by Binance)\n   - Generate an Ed25519 keypair locally.\n   - Register the public key in the Spot testnet API management UI.\n   - After registration, Binance shows a distinct `API key` for that Ed25519 key record.\n   - Use that displayed `API key` in `X-MBX-APIKEY`, and use the matching private key PEM for signing.\n\n2. `HMAC` (legacy compatibility)\n   - Create an HMAC key in the Spot testnet API management UI.\n   - Binance shows both `API key` and `Secret key`.\n   - Use `API key` in `X-MBX-APIKEY`, and use `Secret key` for HMAC SHA256 signing.\n\nImportant:\n\n- The Ed25519 public key you upload is **not** the `API key`.\n- Each Binance key record has its own `API key`.\n- Do not mix an HMAC `API key` with an Ed25519 private key, or an Ed25519 `API key` with an HMAC secret.\n- If you do, Binance returns `-1022 Signature for this request is not valid.`\n\n### Recommended Credential Setup\n\nBinance recommends `Ed25519`. Store the private key PEM text in an environment variable, or source it from 1Password.\n\n```bash\nexport BINANCE_TESTNET_ED25519_PRIVATE_KEY=\"$(cat \u002Fabsolute\u002Fpath\u002Fto\u002Fbinance_testnet_ed25519_private.pem)\"\nexport BINANCE_MAINNET_ED25519_PRIVATE_KEY=\"$(cat \u002Fabsolute\u002Fpath\u002Fto\u002Fbinance_mainnet_ed25519_private.pem)\"\n```\n\nCreate one credential per environment so mainnet and testnet keys are never mixed:\n\n```bash\nuxc auth credential set binance-spot-mainnet \\\n  --auth-type api_key \\\n  --field api_key=env:BINANCE_MAINNET_API_KEY \\\n  --field private_key=env:BINANCE_MAINNET_ED25519_PRIVATE_KEY\n\nuxc auth credential set binance-spot-testnet \\\n  --auth-type api_key \\\n  --field api_key=env:BINANCE_TESTNET_API_KEY \\\n  --field private_key=env:BINANCE_TESTNET_ED25519_PRIVATE_KEY\n```\n\nAdd one signer binding per environment:\n\n```bash\nuxc auth binding add \\\n  --id binance-spot-mainnet \\\n  --host api.binance.com \\\n  --path-prefix \u002Fapi\u002Fv3 \\\n  --scheme https \\\n  --credential binance-spot-mainnet \\\n  --signer-json '{\"kind\":\"ed25519_query_v1\",\"algorithm\":\"ed25519\",\"signing_field\":\"private_key\",\"key_field\":\"api_key\",\"key_placement\":\"header\",\"key_name\":\"X-MBX-APIKEY\",\"signature_param\":\"signature\",\"signature_encoding\":\"base64\",\"timestamp_param\":\"timestamp\",\"timestamp_unit\":\"milliseconds\",\"canonicalization\":{\"mode\":\"preserve_order\"}}' \\\n  --priority 100\n\nuxc auth binding add \\\n  --id binance-spot-testnet \\\n  --host testnet.binance.vision \\\n  --path-prefix \u002Fapi\u002Fv3 \\\n  --scheme https \\\n  --credential binance-spot-testnet \\\n  --signer-json '{\"kind\":\"ed25519_query_v1\",\"algorithm\":\"ed25519\",\"signing_field\":\"private_key\",\"key_field\":\"api_key\",\"key_placement\":\"header\",\"key_name\":\"X-MBX-APIKEY\",\"signature_param\":\"signature\",\"signature_encoding\":\"base64\",\"timestamp_param\":\"timestamp\",\"timestamp_unit\":\"milliseconds\",\"canonicalization\":{\"mode\":\"preserve_order\"}}' \\\n  --priority 100\n```\n\n### HMAC Fallback\n\nIf you already have legacy HMAC keys, `uxc` still supports them:\n\n```bash\nuxc auth credential set binance-spot-mainnet-hmac \\\n  --auth-type api_key \\\n  --field api_key=env:BINANCE_MAINNET_API_KEY \\\n  --field secret_key=env:BINANCE_MAINNET_SECRET_KEY\n\nuxc auth credential set binance-spot-testnet-hmac \\\n  --auth-type api_key \\\n  --field api_key=env:BINANCE_TESTNET_API_KEY \\\n  --field secret_key=env:BINANCE_TESTNET_SECRET_KEY\n\nuxc auth binding add \\\n  --id binance-spot-mainnet-hmac \\\n  --host api.binance.com \\\n  --path-prefix \u002Fapi\u002Fv3 \\\n  --scheme https \\\n  --credential binance-spot-mainnet-hmac \\\n  --signer-json '{\"kind\":\"hmac_query_v1\",\"algorithm\":\"hmac_sha256\",\"signing_field\":\"secret_key\",\"key_field\":\"api_key\",\"key_placement\":\"header\",\"key_name\":\"X-MBX-APIKEY\",\"signature_param\":\"signature\",\"signature_encoding\":\"hex\",\"timestamp_param\":\"timestamp\",\"timestamp_unit\":\"milliseconds\",\"canonicalization\":{\"mode\":\"preserve_order\"}}' \\\n  --priority 100\n\nuxc auth binding add \\\n  --id binance-spot-testnet-hmac \\\n  --host testnet.binance.vision \\\n  --path-prefix \u002Fapi\u002Fv3 \\\n  --scheme https \\\n  --credential binance-spot-testnet-hmac \\\n  --signer-json '{\"kind\":\"hmac_query_v1\",\"algorithm\":\"hmac_sha256\",\"signing_field\":\"secret_key\",\"key_field\":\"api_key\",\"key_placement\":\"header\",\"key_name\":\"X-MBX-APIKEY\",\"signature_param\":\"signature\",\"signature_encoding\":\"hex\",\"timestamp_param\":\"timestamp\",\"timestamp_unit\":\"milliseconds\",\"canonicalization\":{\"mode\":\"preserve_order\"}}' \\\n  --priority 100\n```\n\n## Core Workflow\n\n1. Use fixed link commands by default:\n   - `command -v binance-spot-mainnet-openapi-cli`\n   - If missing, create it:\n     `uxc link binance-spot-mainnet-openapi-cli https:\u002F\u002Fapi.binance.com --schema-url https:\u002F\u002Fraw.githubusercontent.com\u002Fholon-run\u002Fuxc\u002Fmain\u002Fskills\u002Fbinance-spot-openapi-skill\u002Freferences\u002Fbinance-spot.openapi.json`\n   - `command -v binance-spot-testnet-openapi-cli`\n   - If missing, create it:\n     `uxc link binance-spot-testnet-openapi-cli https:\u002F\u002Ftestnet.binance.vision --schema-url https:\u002F\u002Fraw.githubusercontent.com\u002Fholon-run\u002Fuxc\u002Fmain\u002Fskills\u002Fbinance-spot-openapi-skill\u002Freferences\u002Fbinance-spot.openapi.json`\n\n2. Discover operations with help-first flow:\n   - `binance-spot-mainnet-openapi-cli -h`\n   - `binance-spot-testnet-openapi-cli -h`\n   - `binance-spot-testnet-openapi-cli post:\u002Fapi\u002Fv3\u002Forder\u002Ftest -h`\n   - `binance-spot-testnet-openapi-cli get:\u002Fapi\u002Fv3\u002Faccount -h`\n\n3. Execute reads first:\n   - public read:\n     `binance-spot-mainnet-openapi-cli get:\u002Fapi\u002Fv3\u002Fticker\u002Fprice symbol=BTCUSDT`\n   - signed read:\n     `binance-spot-testnet-openapi-cli get:\u002Fapi\u002Fv3\u002Faccount omitZeroBalances=true recvWindow=5000`\n\n4. Use `order\u002Ftest` before real writes:\n   - `binance-spot-testnet-openapi-cli post:\u002Fapi\u002Fv3\u002Forder\u002Ftest symbol=BTCUSDT side=BUY type=MARKET quoteOrderQty=100 recvWindow=5000`\n\n## Operation Groups\n\n### Public Market\n\n- `get:\u002Fapi\u002Fv3\u002Fping`\n- `get:\u002Fapi\u002Fv3\u002Ftime`\n- `get:\u002Fapi\u002Fv3\u002FexchangeInfo`\n- `get:\u002Fapi\u002Fv3\u002FavgPrice`\n- `get:\u002Fapi\u002Fv3\u002Fdepth`\n- `get:\u002Fapi\u002Fv3\u002Fklines`\n- `get:\u002Fapi\u002Fv3\u002Fticker\u002F24hr`\n- `get:\u002Fapi\u002Fv3\u002Fticker\u002Fprice`\n- `get:\u002Fapi\u002Fv3\u002Ftrades`\n\n### Signed Reads\n\n- `get:\u002Fapi\u002Fv3\u002Faccount`\n- `get:\u002Fapi\u002Fv3\u002FopenOrders`\n- `get:\u002Fapi\u002Fv3\u002Forder`\n- `get:\u002Fapi\u002Fv3\u002FallOrders`\n- `get:\u002Fapi\u002Fv3\u002FmyTrades`\n- `get:\u002Fapi\u002Fv3\u002FrateLimit\u002Forder`\n\n### Signed Writes\n\n- `post:\u002Fapi\u002Fv3\u002Forder\u002Ftest`\n- `post:\u002Fapi\u002Fv3\u002Forder`\n- `delete:\u002Fapi\u002Fv3\u002Forder`\n- `delete:\u002Fapi\u002Fv3\u002FopenOrders`\n\n## Guardrails\n\n- Keep automation on the JSON output envelope; do not use `--text`.\n- Parse stable fields first: `ok`, `kind`, `protocol`, `data`, `error`.\n- Treat `order\u002Ftest` as the default validation path before any real order placement.\n- Treat all mainnet write operations as high-risk and require explicit user confirmation before execution.\n- Prefer testnet for all signed examples unless the user explicitly asks for mainnet.\n- Before placing orders, query `exchangeInfo` for symbol filters and `ticker\u002Fprice` or `depth` for current market context.\n- If Binance returns `-1021`, call `get:\u002Fapi\u002Fv3\u002Ftime`, then retry with a fresh timestamp and, if needed, a larger `recvWindow`.\n- If Binance returns `-1022`, first verify you are using the `API key` from the same Binance key record as the signing material:\n  - Ed25519: displayed `API key` + matching private key PEM\n  - HMAC: displayed `API key` + matching `Secret key`\n- Use `--path-prefix \u002Fapi\u002Fv3` on auth bindings. `uxc` now resolves OpenAPI auth against the final operation URL, so this narrower binding works for signed Spot requests and avoids over-broad host-level matching.\n- `timestamp` and `signature` are injected by the signer binding; users normally provide business parameters plus optional `recvWindow`.\n- `binance-spot-*-openapi-cli \u003Coperation> ...` is equivalent to `uxc \u003Chost> --schema-url \u003Cbinance_spot_openapi_schema> \u003Coperation> ...`.\n\n## References\n\n- Usage patterns: `references\u002Fusage-patterns.md`\n- Curated OpenAPI schema: `references\u002Fbinance-spot.openapi.json`\n- Binance Spot skill source material: https:\u002F\u002Fgithub.com\u002Fbinance\u002Fbinance-skills-hub\u002Ftree\u002Fmain\u002Fskills\u002Fbinance\u002Fspot\n- Official Binance Spot API docs: https:\u002F\u002Fgithub.com\u002Fbinance\u002Fbinance-spot-api-docs\n","# Binance Spot API Skill\n\nUse this skill to run Binance Spot REST operations through `uxc` + OpenAPI.\n\nReuse the `uxc` skill for shared execution, auth, and error-handling guidance.\n\n## Prerequisites\n\n- `uxc` is installed and available in `PATH`.\n- Network access to:\n  - `https:\u002F\u002Fapi.binance.com`\n  - `https:\u002F\u002Ftestnet.binance.vision`\n- Access to the curated OpenAPI schema URL:\n  - `https:\u002F\u002Fraw.githubusercontent.com\u002Fholon-run\u002Fuxc\u002Fmain\u002Fskills\u002Fbinance-spot-openapi-skill\u002Freferences\u002Fbinance-spot.openapi.json`\n\n## Scope\n\nThis skill covers curated Binance Spot REST endpoints for:\n\n- public market reads\n- signed account reads\n- signed order queries\n- test orders\n- order placement and cancellation\n\nThis skill does **not** cover:\n\n- OCO, OTO, OTOCO, OPO, OPOCO, or other `orderList\u002F*` endpoints\n- `order\u002FcancelReplace`\n- `order\u002Famend\u002F*`\n- `historicalTrades`\n- `uiKlines`\n- `ticker\u002FtradingDay`\n- SOR endpoints\n- Wallet, Margin, Earn, or `\u002Fsapi\u002F*` endpoints\n- RSA request signing\n- `https:\u002F\u002Fdemo-api.binance.com`\n\n## Authentication\n\nPublic market endpoints do not require credentials.\n\nSigned Spot endpoints require:\n\n- `api_key` field for `X-MBX-APIKEY`\n- `private_key` field for Ed25519 PKCS#8 PEM signing, or `secret_key` for deprecated HMAC SHA256 signing\n\n### Testnet API Key Setup\n\nBinance Spot testnet uses a separate host and separate API key records from mainnet:\n\n- base URL: `https:\u002F\u002Ftestnet.binance.vision`\n- testnet API keys do not work on mainnet\n- mainnet API keys do not work on testnet\n\nThere are two practical testnet flows:\n\n1. `Ed25519` (recommended by Binance)\n   - Generate an Ed25519 keypair locally.\n   - Register the public key in the Spot testnet API management UI.\n   - After registration, Binance shows a distinct `API key` for that Ed25519 key record.\n   - Use that displayed `API key` in `X-MBX-APIKEY`, and use the matching private key PEM for signing.\n\n2. `HMAC` (legacy compatibility)\n   - Create an HMAC key in the Spot testnet API management UI.\n   - Binance shows both `API key` and `Secret key`.\n   - Use `API key` in `X-MBX-APIKEY`, and use `Secret key` for HMAC SHA256 signing.\n\nImportant:\n\n- The Ed25519 public key you upload is **not** the `API key`.\n- Each Binance key record has its own `API key`.\n- Do not mix an HMAC `API key` with an Ed25519 private key, or an Ed25519 `API key` with an HMAC secret.\n- If you do, Binance returns `-1022 Signature for this request is not valid.`\n\n### Recommended Credential Setup\n\nBinance recommends `Ed25519`. Store the private key PEM text in an environment variable, or source it from 1Password.\n\n```bash\nexport BINANCE_TESTNET_ED25519_PRIVATE_KEY=\"$(cat \u002Fabsolute\u002Fpath\u002Fto\u002Fbinance_testnet_ed25519_private.pem)\"\nexport BINANCE_MAINNET_ED25519_PRIVATE_KEY=\"$(cat \u002Fabsolute\u002Fpath\u002Fto\u002Fbinance_mainnet_ed25519_private.pem)\"\n```\n\nCreate one credential per environment so mainnet and testnet keys are never mixed:\n\n```bash\nuxc auth credential set binance-spot-mainnet \\\n  --auth-type api_key \\\n  --field api_key=env:BINANCE_MAINNET_API_KEY \\\n  --field private_key=env:BINANCE_MAINNET_ED25519_PRIVATE_KEY\n\nuxc auth credential set binance-spot-testnet \\\n  --auth-type api_key \\\n  --field api_key=env:BINANCE_TESTNET_API_KEY \\\n  --field private_key=env:BINANCE_TESTNET_ED25519_PRIVATE_KEY\n```\n\nAdd one signer binding per environment:\n\n```bash\nuxc auth binding add \\\n  --id binance-spot-mainnet \\\n  --host api.binance.com \\\n  --path-prefix \u002Fapi\u002Fv3 \\\n  --scheme https \\\n  --credential binance-spot-mainnet \\\n  --signer-json '{\"kind\":\"ed25519_query_v1\",\"algorithm\":\"ed25519\",\"signing_field\":\"private_key\",\"key_field\":\"api_key\",\"key_placement\":\"header\",\"key_name\":\"X-MBX-APIKEY\",\"signature_param\":\"signature\",\"signature_encoding\":\"base64\",\"timestamp_param\":\"timestamp\",\"timestamp_unit\":\"milliseconds\",\"canonicalization\":{\"mode\":\"preserve_order\"}}' \\\n  --priority 100\n\nuxc auth binding add \\\n  --id binance-spot-testnet \\\n  --host testnet.binance.vision \\\n  --path-prefix \u002Fapi\u002Fv3 \\\n  --scheme https \\\n  --credential binance-spot-testnet \\\n  --signer-json '{\"kind\":\"ed25519_query_v1\",\"algorithm\":\"ed25519\",\"signing_field\":\"private_key\",\"key_field\":\"api_key\",\"key_placement\":\"header\",\"key_name\":\"X-MBX-APIKEY\",\"signature_param\":\"signature\",\"signature_encoding\":\"base64\",\"timestamp_param\":\"timestamp\",\"timestamp_unit\":\"milliseconds\",\"canonicalization\":{\"mode\":\"preserve_order\"}}' \\\n  --priority 100\n```\n\n### HMAC Fallback\n\nIf you already have legacy HMAC keys, `uxc` still supports them:\n\n```bash\nuxc auth credential set binance-spot-mainnet-hmac \\\n  --auth-type api_key \\\n  --field api_key=env:BINANCE_MAINNET_API_KEY \\\n  --field secret_key=env:BINANCE_MAINNET_SECRET_KEY\n\nuxc auth credential set binance-spot-testnet-hmac \\\n  --auth-type api_key \\\n  --field api_key=env:BINANCE_TESTNET_API_KEY \\\n  --field secret_key=env:BINANCE_TESTNET_SECRET_KEY\n\nuxc auth binding add \\\n  --id binance-spot-mainnet-hmac \\\n  --host api.binance.com \\\n  --path-prefix \u002Fapi\u002Fv3 \\\n  --scheme https \\\n  --credential binance-spot-mainnet-hmac \\\n  --signer-json '{\"kind\":\"hmac_query_v1\",\"algorithm\":\"hmac_sha256\",\"signing_field\":\"secret_key\",\"key_field\":\"api_key\",\"key_placement\":\"header\",\"key_name\":\"X-MBX-APIKEY\",\"signature_param\":\"signature\",\"signature_encoding\":\"hex\",\"timestamp_param\":\"timestamp\",\"timestamp_unit\":\"milliseconds\",\"canonicalization\":{\"mode\":\"preserve_order\"}}' \\\n  --priority 100\n\nuxc auth binding add \\\n  --id binance-spot-testnet-hmac \\\n  --host testnet.binance.vision \\\n  --path-prefix \u002Fapi\u002Fv3 \\\n  --scheme https \\\n  --credential binance-spot-testnet-hmac \\\n  --signer-json '{\"kind\":\"hmac_query_v1\",\"algorithm\":\"hmac_sha256\",\"signing_field\":\"secret_key\",\"key_field\":\"api_key\",\"key_placement\":\"header\",\"key_name\":\"X-MBX-APIKEY\",\"signature_param\":\"signature\",\"signature_encoding\":\"hex\",\"timestamp_param\":\"timestamp\",\"timestamp_unit\":\"milliseconds\",\"canonicalization\":{\"mode\":\"preserve_order\"}}' \\\n  --priority 100\n```\n\n## Core Workflow\n\n1. Use fixed link commands by default:\n   - `command -v binance-spot-mainnet-openapi-cli`\n   - If missing, create it:\n     `uxc link binance-spot-mainnet-openapi-cli https:\u002F\u002Fapi.binance.com --schema-url https:\u002F\u002Fraw.githubusercontent.com\u002Fholon-run\u002Fuxc\u002Fmain\u002Fskills\u002Fbinance-spot-openapi-skill\u002Freferences\u002Fbinance-spot.openapi.json`\n   - `command -v binance-spot-testnet-openapi-cli`\n   - If missing, create it:\n     `uxc link binance-spot-testnet-openapi-cli https:\u002F\u002Ftestnet.binance.vision --schema-url https:\u002F\u002Fraw.githubusercontent.com\u002Fholon-run\u002Fuxc\u002Fmain\u002Fskills\u002Fbinance-spot-openapi-skill\u002Freferences\u002Fbinance-spot.openapi.json`\n\n2. Discover operations with help-first flow:\n   - `binance-spot-mainnet-openapi-cli -h`\n   - `binance-spot-testnet-openapi-cli -h`\n   - `binance-spot-testnet-openapi-cli post:\u002Fapi\u002Fv3\u002Forder\u002Ftest -h`\n   - `binance-spot-testnet-openapi-cli get:\u002Fapi\u002Fv3\u002Faccount -h`\n\n3. Execute reads first:\n   - public read:\n     `binance-spot-mainnet-openapi-cli get:\u002Fapi\u002Fv3\u002Fticker\u002Fprice symbol=BTCUSDT`\n   - signed read:\n     `binance-spot-testnet-openapi-cli get:\u002Fapi\u002Fv3\u002Faccount omitZeroBalances=true recvWindow=5000`\n\n4. Use `order\u002Ftest` before real writes:\n   - `binance-spot-testnet-openapi-cli post:\u002Fapi\u002Fv3\u002Forder\u002Ftest symbol=BTCUSDT side=BUY type=MARKET quoteOrderQty=100 recvWindow=5000`\n\n## Operation Groups\n\n### Public Market\n\n- `get:\u002Fapi\u002Fv3\u002Fping`\n- `get:\u002Fapi\u002Fv3\u002Ftime`\n- `get:\u002Fapi\u002Fv3\u002FexchangeInfo`\n- `get:\u002Fapi\u002Fv3\u002FavgPrice`\n- `get:\u002Fapi\u002Fv3\u002Fdepth`\n- `get:\u002Fapi\u002Fv3\u002Fklines`\n- `get:\u002Fapi\u002Fv3\u002Fticker\u002F24hr`\n- `get:\u002Fapi\u002Fv3\u002Fticker\u002Fprice`\n- `get:\u002Fapi\u002Fv3\u002Ftrades`\n\n### Signed Reads\n\n- `get:\u002Fapi\u002Fv3\u002Faccount`\n- `get:\u002Fapi\u002Fv3\u002FopenOrders`\n- `get:\u002Fapi\u002Fv3\u002Forder`\n- `get:\u002Fapi\u002Fv3\u002FallOrders`\n- `get:\u002Fapi\u002Fv3\u002FmyTrades`\n- `get:\u002Fapi\u002Fv3\u002FrateLimit\u002Forder`\n\n### Signed Writes\n\n- `post:\u002Fapi\u002Fv3\u002Forder\u002Ftest`\n- `post:\u002Fapi\u002Fv3\u002Forder`\n- `delete:\u002Fapi\u002Fv3\u002Forder`\n- `delete:\u002Fapi\u002Fv3\u002FopenOrders`\n\n## Guardrails\n\n- Keep automation on the JSON output envelope; do not use `--text`.\n- Parse stable fields first: `ok`, `kind`, `protocol`, `data`, `error`.\n- Treat `order\u002Ftest` as the default validation path before any real order placement.\n- Treat all mainnet write operations as high-risk and require explicit user confirmation before execution.\n- Prefer testnet for all signed examples unless the user explicitly asks for mainnet.\n- Before placing orders, query `exchangeInfo` for symbol filters and `ticker\u002Fprice` or `depth` for current market context.\n- If Binance returns `-1021`, call `get:\u002Fapi\u002Fv3\u002Ftime`, then retry with a fresh timestamp and, if needed, a larger `recvWindow`.\n- If Binance returns `-1022`, first verify you are using the `API key` from the same Binance key record as the signing material:\n  - Ed25519: displayed `API key` + matching private key PEM\n  - HMAC: displayed `API key` + matching `Secret key`\n- Use `--path-prefix \u002Fapi\u002Fv3` on auth bindings. `uxc` now resolves OpenAPI auth against the final operation URL, so this narrower binding works for signed Spot requests and avoids over-broad host-level matching.\n- `timestamp` and `signature` are injected by the signer binding; users normally provide business parameters plus optional `recvWindow`.\n- `binance-spot-*-openapi-cli \u003Coperation> ...` is equivalent to `uxc \u003Chost> --schema-url \u003Cbinance_spot_openapi_schema> \u003Coperation> ...`.\n\n## References\n\n- Usage patterns: `references\u002Fusage-patterns.md`\n- Curated OpenAPI schema: `references\u002Fbinance-spot.openapi.json`\n- Binance Spot skill source material: https:\u002F\u002Fgithub.com\u002Fbinance\u002Fbinance-skills-hub\u002Ftree\u002Fmain\u002Fskills\u002Fbinance\u002Fspot\n- Official Binance Spot API docs: https:\u002F\u002Fgithub.com\u002Fbinance\u002Fbinance-spot-api-docs\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fexchanges\u002Fbinance-spot-api",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-13 02:31:19",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill binance-spot-openapi-skill",{"tool":57,"command":58},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill binance-spot-openapi-skill",{"tool":60,"command":61},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill binance-spot-openapi-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002FSKILL.md",true,[65,71,75,79,83,89,93,97],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"_meta.json","REFERENCE","参考文档",145,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002F_meta.json",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"agents\u002Fopenai.yaml",470,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002Fagents\u002Fopenai.yaml",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fbinance-spot.openapi.json",35830,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002Freferences\u002Fbinance-spot.openapi.json",{"path":80,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fusage-patterns.md",6420,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002Freferences\u002Fusage-patterns.md",{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"scripts\u002Fvalidate.sh","SCRIPT","脚本",2996,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002Fscripts\u002Fvalidate.sh",{"path":90,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":91,"sourceHtmlUrl":92},"skill-card.md",2407,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002Fskill-card.md",{"path":94,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":95,"sourceHtmlUrl":96},"SOURCE.md",276,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002FSOURCE.md",{"path":98,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":99,"sourceHtmlUrl":100},"TRUST.auto.yaml",2204,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fbinance-spot-api\u002FTRUST.auto.yaml",[102,131,153,170,183,193],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":106,"licenseFileUrl":107,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":37},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":135,"licenseFileUrl":136,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":37},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[140,26,141,142,143,144,145,146,147,148,149,150,151,152],"mexc spot websocket","websocket","api","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":135,"licenseFileUrl":157,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":37},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[161,26,162,163,35,164,165,150,149,148,166,167,168,144,169,143,142],"mexc spot rest","REST","admin","Wallet","requests","actions","secure","data","orders",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":135,"licenseFileUrl":174,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":37},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[178,179,141,180,181,151,149,182,147,146,144,143],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":184,"name":185,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":106,"licenseFileUrl":186,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":37},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[190,191,192],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":106,"licenseFileUrl":197,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":37},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[201,202,203,204,205,206,207,208,209,210,211],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","use","patch","code","share"]