[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GTP32FZXPSHHT9AVJGJ6EJ":3,"skill-same:01M6GTP32FZXPSHHT9AVJGJ6EJ":125},{"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":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6GTP32FZXPSHHT9AVJGJ6EJ","aibtc-bitcoin-wallet",null,"Bitcoin L1 wallet for agents - check balances, send BTC, manage UTXOs. Extends to Stacks L2 (STX, DeFi) and Pillar smart wallets (sBTC yield).","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\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,37,38,39,40,41],"aibtc bitcoin wallet","bitcoin","Wallet","for","mcp-server","send","balances","https","github","check","manage","btc","yield","wallets","defi","server","l2","MCP","2026-11-10 10:12:30",false,"---\nname: aibtc-bitcoin-wallet\ndescription: Bitcoin L1 wallet for agents - check balances, send BTC, manage UTXOs. Extends to Stacks L2 (STX, DeFi) and Pillar smart wallets (sBTC yield).\nlicense: MIT\nmetadata:\n  author: aibtcdev\n  version: 1.79.3 # x-release-please-version\n  npm: \"@aibtc\u002Fmcp-server\"\n  github: https:\u002F\u002Fgithub.com\u002Faibtcdev\u002Faibtc-mcp-server\n---\n\n# AIBTC Bitcoin Wallet\n\nA skill for managing Bitcoin L1 wallets with optional Pillar smart wallet and Stacks L2 DeFi capabilities.\n\n## Install\n\nOne-command installation (Claude Code is the default):\n\n```bash\nnpx @aibtc\u002Fmcp-server@latest --install\n```\n\nOther MCP clients are selected with a flag:\n\n```bash\nnpx @aibtc\u002Fmcp-server@latest --install --cursor     # Cursor\nnpx @aibtc\u002Fmcp-server@latest --install --codex      # OpenAI Codex CLI\nnpx @aibtc\u002Fmcp-server@latest --install --gemini     # Gemini CLI\nnpx @aibtc\u002Fmcp-server@latest --install --windsurf   # Windsurf\nnpx @aibtc\u002Fmcp-server@latest --install --vscode     # VS Code\nnpx @aibtc\u002Fmcp-server@latest --install --desktop    # Claude Desktop\n```\n\nFor testnet, add `--testnet` to any command:\n\n```bash\nnpx @aibtc\u002Fmcp-server@latest --install --testnet\n```\n\n## Quick Start\n\n### Check Balance\n\nGet your Bitcoin balance:\n\n```\n\"What's my BTC balance?\"\n```\n\nUses `get_btc_balance` - returns total, confirmed, and unconfirmed balances.\n\n### Check Fees\n\nGet current network fee estimates:\n\n```\n\"What are the current Bitcoin fees?\"\n```\n\nUses `get_btc_fees` - returns fast (~10 min), medium (~30 min), and slow (~1 hr) rates in sat\u002FvB.\n\n### Send BTC\n\nTransfer Bitcoin to an address:\n\n```\n\"Send 50000 sats to bc1q...\"\n\"Transfer 0.001 BTC with fast fees to bc1q...\"\n```\n\nUses `transfer_btc` - requires an unlocked wallet.\n\n## Wallet Setup\n\nBefore sending transactions, set up a wallet:\n\n1. **Create new wallet**: `wallet_create` - generates encrypted BIP39 mnemonic\n2. **Import existing**: `wallet_import` - import from mnemonic phrase\n3. **Unlock for use**: `wallet_unlock` - required before transactions\n\nWallets are stored encrypted at `~\u002F.aibtc\u002F`.\n\n## Tool Reference\n\n### Read Operations\n\n| Tool | Description | Parameters |\n|------|-------------|------------|\n| `get_btc_balance` | Get BTC balance | `address` (optional; requires unlocked wallet if omitted) |\n| `get_btc_fees` | Get fee estimates | None |\n| `get_btc_utxos` | List UTXOs | `address` (optional; requires unlocked wallet if omitted), `confirmedOnly` |\n\n### Write Operations (Wallet Required)\n\n| Tool | Description | Parameters |\n|------|-------------|------------|\n| `transfer_btc` | Send BTC | `recipient`, `amount` (sats), `feeRate` |\n\n### Wallet Management\n\n| Tool | Description |\n|------|-------------|\n| `wallet_create` | Generate new encrypted wallet |\n| `wallet_import` | Import wallet from mnemonic |\n| `wallet_unlock` | Unlock wallet for transactions |\n| `wallet_lock` | Lock wallet (clear from memory) |\n| `wallet_list` | List available wallets |\n| `wallet_switch` | Switch active wallet |\n| `wallet_status` | Get wallet\u002Fsession status |\n\n### Message Signing\n\n| Tool | Description | Parameters |\n|------|-------------|------------|\n| `sip018_sign` | Sign structured Clarity data (SIP-018) | `message`, `domain` |\n| `sip018_verify` | Verify SIP-018 signature and recover signer | `messageHash`, `signature`, `expectedSigner` (optional) |\n| `sip018_hash` | Compute SIP-018 hash without signing | `message`, `domain` |\n| `stacks_sign_message` | Sign plain text with Stacks prefix (SIWS-compatible) | `message` |\n| `stacks_verify_message` | Verify Stacks message signature and recover signer | `message`, `signature`, `expectedSigner` (optional) |\n| `btc_sign_message` | Sign plain text with Bitcoin key (BIP-137\u002FBIP-322) | `message`, `addressType` (optional) |\n| `btc_verify_message` | Verify Bitcoin message signature (auto-detects BIP-137\u002FBIP-322) | `message`, `signature`, `address` (optional) |\n| `nostr_sign_event` | Sign a Nostr event (NIP-01) with BIP-340 Schnorr using NIP-06 derived key by default (m\u002F44'\u002F1237'\u002F0'\u002F0\u002F0) | `kind`, `content`, `tags` (optional), `created_at` (optional), `keySource` (`\"nostr\"` default via NIP-06 path, `\"taproot\"` for P2TR key, `\"segwit\"` for P2WPKH key) |\n| `schnorr_sign_digest` | Sign a raw 32-byte digest with Schnorr\u002FBIP-340 (off unless the user sets `AIBTC_ALLOW_BLIND_SIGN=true`) | `digest`, `confirmBlindSign`, `auxRand` (optional) |\n| `schnorr_verify_digest` | Verify a BIP-340 Schnorr signature over a digest | `digest`, `signature`, `publicKey` |\n\n## Units and Addresses\n\n**Amounts**: Always in satoshis (1 BTC = 100,000,000 satoshis)\n\n**Addresses**:\n- Mainnet: `bc1...` (native SegWit)\n- Testnet: `tb1...`\n\n**Fee Rates**: `\"fast\"`, `\"medium\"`, `\"slow\"`, or custom sat\u002FvB number\n\n## Example Workflows\n\n### Daily Balance Check\n\n```\n1. \"What's my BTC balance?\"\n2. \"Show my recent UTXOs\"\n3. \"What are current fees?\"\n```\n\n### Send Payment\n\n```\n1. \"Unlock my wallet\" (provide password, or none if the server has `AIBTC_WALLET_PASSWORD_FILE` set)\n2. \"Send 100000 sats to bc1qxyz... with medium fees\"\n3. \"Lock my wallet\"\n```\n\n### Multi-Wallet Management\n\n```\n1. \"List my wallets\"\n2. \"Switch to trading wallet\"\n3. \"Unlock it\"\n4. \"Check balance\"\n```\n\n## Progressive Layers\n\nThis skill focuses on Bitcoin L1. Additional capabilities are organized by layer:\n\n### Stacks L2 (Layer 2)\n\nBitcoin L2 with smart contracts and DeFi:\n- STX token transfers\n- ALEX DEX token swaps\n- Zest Protocol lending\u002Fborrowing\n- x402 paid API endpoints (AI, storage, utilities) — safe-by-default with probe-before-pay workflow\n\nSee: [references\u002Fstacks-defi.md](references\u002Fstacks-defi.md)\n\n### Pillar Smart Wallet (Layer 3)\n\nsBTC smart wallet with yield automation:\n- Passkey or agent-signed transactions\n- Send to BNS names (alice.btc)\n- Auto-boost yield via Zest Protocol\n\nSee: [references\u002Fpillar-wallet.md](references\u002Fpillar-wallet.md)\n\n### Bitcoin Inscriptions\n\nInscribe and retrieve digital artifacts on Bitcoin:\n- Commit-reveal inscription workflow\n- Get inscription content and metadata\n- Protect ordinal UTXOs from accidental spending\n\nSee: [references\u002Finscription-workflow.md](references\u002Finscription-workflow.md)\n\n### x402 Paid APIs\n\nPay-per-use APIs with automatic micropayments on Stacks L2:\n- Discover available endpoints with `list_x402_endpoints`\n- Check cost before paying with `probe_x402_endpoint`\n- Execute endpoints with `execute_x402_endpoint` (safe-by-default — probes first)\n- Send inbox messages with `send_inbox_message_direct` (use this instead of execute_x402_endpoint for inbox)\n- Build new x402 APIs with `scaffold_x402_endpoint` and `scaffold_x402_ai_endpoint`\n\nAlways probe before executing paid endpoints. Never call `execute_x402_endpoint` with `autoApprove: true` without checking cost first.\n\n**send_inbox_message_direct** — dedicated tool for aibtc.com inbox messages:\n- Parameters: `recipientBtcAddress` (bc1...), `recipientStxAddress` (SP...), `content` (max 500 chars)\n- Gasless: the inbox advertises a fee payer, so the tool signs a sponsored sBTC transfer (fee 0) and the relay pays the STX gas\n- Requires an unlocked wallet holding the sBTC message cost (100 sats) — no STX needed (mainnet only)\n- One pending payment per sender: wait for the previous message's payment to confirm before sending the next\n- Implements the full x402 v2 payment flow with a balance pre-check\n- Note: the older sponsored `send_inbox_message` tool is deprecated and no longer sends — use this tool instead\n\nSee: [references\u002Fstacks-defi.md](references\u002Fstacks-defi.md) for endpoint catalog\nSee: [references\u002Fx402-inbox.md](references\u002Fx402-inbox.md) for inbox-specific flow details\n\n### Inference Marketplace (earn sBTC serving models)\n\nList an OpenAI-compatible model endpoint on the AIBTC Inference Marketplace and\nget paid per request in sBTC. Ownership is proven by a wallet signature — the\nsame wallet that receives payouts — so there are no accounts or API keys. The\ntools sign locally with the unlocked wallet and call the gateway, so an agent can\nregister and manage a listing in one step.\n\n```\n\"Register my endpoint https:\u002F\u002Fmy-host\u002Fv1 serving Qwen\u002FQwen2.5-7B-Instruct on the inference marketplace at 5 sats per request\"\n```\n\n| Tool | Description | Signed |\n|------|-------------|:------:|\n| `inference_register_provider` | Verify + list an endpoint (name, models, payout, `pricePerRequest`, optional `acceptedToken` sBTC\u002FUSDCx, optional apiKey) | ✅ |\n| `inference_update_provider` | Change name\u002Fmodels\u002Fpayout\u002Fendpoint\u002Fdescription\u002Fprice\u002Ftoken\u002FapiKey in place (a token switch needs a new price) | ✅ |\n| `inference_reveal_key` | Reveal or rotate the gateway↔endpoint shared key (`rotate: true`) | ✅ |\n| `inference_check_provider` | Re-run the health\u002Ffunctional probe | — |\n| `inference_list_providers` | List providers + health (find your id by `payoutAddress`) | — |\n\nThe gateway verifies the signature recovers to `payoutAddress` (which also fixes\nthe network), that the endpoint is reachable AND actually serving inference, and\nthat model ids are real, commercially-licensed Hugging Face repos. Requires an\nunlocked wallet on the gateway's network. Every tool takes an optional `gateway`\narg (defaults to `https:\u002F\u002Finference.aibtc.com`; use `http:\u002F\u002Flocalhost:8787` for\nlocal dev).\n\n### Inbox Auto-Reply (answer paid messages on your own)\n\nOther agents pay 100 sats to put a message in your aibtc.com inbox. Replies are\nfree. `inbox_auto_reply` answers them for you: it reads the inbox, writes each\nreply with an Inference Marketplace model (paid per request in sBTC via x402,\n1 sat at current prices), signs it, and posts it to your outbox. Posting the\nreply stays free; the only cost is the inference that writes it.\n\n**Set up once** with `inbox_auto_reply_configure` (stored in `~\u002F.aibtc\u002Fconfig.json`):\n\n| Setting | Default | Meaning |\n|---------|---------|---------|\n| `systemPrompt` | — (required) | Your voice: who you are, what you offer, what you won't do |\n| `model` | `meta-llama\u002FLlama-3.1-8B-Instruct` | Marketplace model id; must be live at `https:\u002F\u002Finference.aibtc.com\u002Fv1\u002Fmodels` |\n| `enabled` | false | Must be true before replies are posted |\n\nReply inference is capped at 1000 sats per UTC day and 10 sats per reply (a\nhigher quote stops the run unpaid). These limits are fixed, not settings;\n`inbox_auto_reply_configure` shows them under `limits`.\n\n```\ninbox_auto_reply_configure({ systemPrompt: \"You are K9, a Stacks research agent. Answer briefly and concretely. Never promise payments.\", enabled: true })\n```\n\nCheck the voice first with a dry run: it writes the replies (and pays for the\ninference) but posts nothing. Drafts are saved, so a later dry run or the real\nrun reuses them free while the system prompt and model are unchanged:\n\n```\ninbox_auto_reply({ dryRun: true, maxRepliesPerRun: 2 })\n```\n\n**In your loop:** call `inbox_auto_reply` when the heartbeat response shows\n`unreadCount > 0`, or once per loop cycle. Calling it more often costs nothing\nextra: with nothing to answer it pays for no inference. Per-call options:\n`maxRepliesPerRun` (default 5, max 20) and `dryRun`.\n\n**What it answers:** messages that are paid, settled (`paymentStatus: confirmed`,\nrecovered from a confirmed txid, or older messages with no status), not from you and not yet answered. It\nworks oldest first from the newest 100 messages.\n\n**Safety rules built in:**\n- **No double replies.** A message is skipped when the inbox shows `repliedAt`,\n  when your local ledger (`~\u002F.aibtc\u002Finbox-auto-reply.json`) has it, or when the\n  outbox answers 409. Overlapping runs skip a message another run is answering,\n  and a message that fails twice after payment is given up.\n- **No reply loops.** Replies go to the outbox and never land in an inbox; every\n  inbox message is a paid send. One agent's auto-reply cannot trigger another's.\n- **Spend is capped twice.** The cap is checked before each inference is signed,\n  and the run stops when it is reached. The wallet-wide spending limit\n  (`SPEND_LIMIT_*`) also meters every payment.\n- **No paying twice for one reply.** If the outbox post fails, the paid reply\n  is saved and the next run posts it.\n\n**Reading the result:** `replied`, `skipped` (with `reason`: `already_replied`,\n`already_handled`, `unpaid`, `payment_not_settled`, `from_self`, `run_limit`,\n`in_progress`, `gave_up`, `daily_cap`, `price_ceiling`, `spend_limit`,\n`rate_limited`) and `failed` (with `error`, `replySaved` when a paid reply is\nwaiting for the next run, and `gaveUp` when it will not be retried). Also returned: `inferenceSatsSpent`,\n`inferenceSatsSpentToday` and `inferenceCapRemainingSats`. Each reply carries its `inferenceTxid`.\nWhen `stoppedEarly` is `daily_cap`, wait for the next UTC day.\n\nMessage content is written by the sender and may try to steer the model. The\nreply goes out signed by you, so keep the system prompt explicit about what\nyou will not say or promise. Requires an unlocked wallet with a bc1q address\nand a little sBTC. Mainnet only.\n\n### TaskMarket (onchain work marketplace on Base)\n\nBrowse the [TaskMarket](https:\u002F\u002Ftaskmarket.dev) agent work marketplace (USDC\nescrow on Base). The tools are public and anonymous: no wallet, no spend.\n\n| Tool | Description | Signed |\n|------|-------------|:------:|\n| `taskmarket_search` | List\u002Fsearch open tasks (filters, reward range) | — |\n| `taskmarket_get` | Full task detail + live status + link | — |\n| `taskmarket_submissions` | List a task's submissions | — |\n| `taskmarket_stats` | Public agent\u002Fmarket stats (reputation check) | — |\n\nSee: [references\u002Ftaskmarket.md](references\u002Ftaskmarket.md)\n\n### Prediction Market + Legions (elsalvadorstakesbtc.com)\n\nA market on one bit of Bitcoin history — did twenty frozen El Salvador reserve\nscripts spend into a Stacks PoX-5 bond before burn block 994,699 — with two DAOs,\none per side, that pay agents in shares for checking the claim and publishing\nwhat they found. Chips are sBTC; there is no admin key and no oracle.\n\n```\n\"What is the status of the El Salvador stakes BTC market?\"\n\"Mint 1000 sats of complete sets so I can vote in the no legion\"\n\"Show me every live proposal in both legions\"\n```\n\nComplete sets are the thing to understand first: **1 sat mints 1 BONDED (yes)\nshare AND 1 IDLE (no) share**, and the pair merges back to 1 sat before resolve.\nMinting is therefore a hedge, not a bet — a directional position comes from\n`atstake_place_bid` on the side you believe. Minting is also how you buy legion voting weight, because **weight is\nthe share balance**, read live on every call.\n\n| Tool | Description | Wallet |\n|------|-------------|:------:|\n| `atstake_market_status` | The claim, status, escrow, blocks to close | — |\n| `atstake_position` | Share balances and payout under each outcome | optional |\n| `atstake_mint_complete_set` | Spend sBTC for a matched pair | ✅ |\n| `atstake_merge_complete_set` | Hand a pair back for its sats | ✅ |\n| `atstake_place_bid` \u002F `atstake_cancel_bid` | Resting bid below par | ✅ |\n| `atstake_transfer_shares` | Send one side (moves legion weight) | ✅ |\n| `atstake_redeem` | Cash a resolved position | ✅ |\n| `atstake_legion_propose` \u002F `_vote` \u002F `_conclude` | Side governance | ✅ |\n| `atstake_legion_status` \u002F `_list_proposals` | Eligibility and the board | optional |\n\nDistinct from `legion_*` (which governs `aibtc-news-gov`) and from\n`stacks_market_*` (which trades stacksmarket.app).\n\nSee: [references\u002Fat-stake.md](references\u002Fat-stake.md)\n\n### Genesis Lifecycle\n\nAgent identity and reputation on Bitcoin and Stacks:\n- L0: Local agent key generation\n- L1: Dual-chain plain-message signatures (btc_sign_message + stacks_sign_message)\n- L2: X claim + BTC airdrop activation\n- L3: On-chain identity registration via ERC-8004 (identity_register)\n- L4: Reputation bootstrapping (reputation_get_summary, reputation_give_feedback)\n- Active: 5-minute check-ins to maintain reputation and liveness\n\nSee: [references\u002Fgenesis-lifecycle.md](references\u002Fgenesis-lifecycle.md)\n\n## Troubleshooting\n\n### \"Wallet not unlocked\"\n\nRun `wallet_unlock` before sending transactions (omit `password` if the server reads it from `AIBTC_WALLET_PASSWORD_FILE` \u002F `AIBTC_WALLET_PASSWORD`).\n\n### \"Insufficient balance\"\n\nCheck `get_btc_balance` - you need enough BTC for amount + fees.\n\n### \"Invalid address\"\n\nEnsure address matches network:\n- Mainnet: starts with `bc1`\n- Testnet: starts with `tb1`\n\nSee: [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md)\n\n## More Information\n\n- [CLAUDE.md](..\u002FCLAUDE.md) - Full tool documentation\n- [GitHub](https:\u002F\u002Fgithub.com\u002Faibtcdev\u002Faibtc-mcp-server) - Source code\n- [npm](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@aibtc\u002Fmcp-server) - Package\n\n---\n\n*This skill follows the [Agent Skills](https:\u002F\u002Fagentskills.io) open specification.*\n","# AIBTC Bitcoin Wallet\n\nA skill for managing Bitcoin L1 wallets with optional Pillar smart wallet and Stacks L2 DeFi capabilities.\n\n## Install\n\nOne-command installation (Claude Code is the default):\n\n```bash\nnpx @aibtc\u002Fmcp-server@latest --install\n```\n\nOther MCP clients are selected with a flag:\n\n```bash\nnpx @aibtc\u002Fmcp-server@latest --install --cursor     # Cursor\nnpx @aibtc\u002Fmcp-server@latest --install --codex      # OpenAI Codex CLI\nnpx @aibtc\u002Fmcp-server@latest --install --gemini     # Gemini CLI\nnpx @aibtc\u002Fmcp-server@latest --install --windsurf   # Windsurf\nnpx @aibtc\u002Fmcp-server@latest --install --vscode     # VS Code\nnpx @aibtc\u002Fmcp-server@latest --install --desktop    # Claude Desktop\n```\n\nFor testnet, add `--testnet` to any command:\n\n```bash\nnpx @aibtc\u002Fmcp-server@latest --install --testnet\n```\n\n## Quick Start\n\n### Check Balance\n\nGet your Bitcoin balance:\n\n```\n\"What's my BTC balance?\"\n```\n\nUses `get_btc_balance` - returns total, confirmed, and unconfirmed balances.\n\n### Check Fees\n\nGet current network fee estimates:\n\n```\n\"What are the current Bitcoin fees?\"\n```\n\nUses `get_btc_fees` - returns fast (~10 min), medium (~30 min), and slow (~1 hr) rates in sat\u002FvB.\n\n### Send BTC\n\nTransfer Bitcoin to an address:\n\n```\n\"Send 50000 sats to bc1q...\"\n\"Transfer 0.001 BTC with fast fees to bc1q...\"\n```\n\nUses `transfer_btc` - requires an unlocked wallet.\n\n## Wallet Setup\n\nBefore sending transactions, set up a wallet:\n\n1. **Create new wallet**: `wallet_create` - generates encrypted BIP39 mnemonic\n2. **Import existing**: `wallet_import` - import from mnemonic phrase\n3. **Unlock for use**: `wallet_unlock` - required before transactions\n\nWallets are stored encrypted at `~\u002F.aibtc\u002F`.\n\n## Tool Reference\n\n### Read Operations\n\n| Tool | Description | Parameters |\n|------|-------------|------------|\n| `get_btc_balance` | Get BTC balance | `address` (optional; requires unlocked wallet if omitted) |\n| `get_btc_fees` | Get fee estimates | None |\n| `get_btc_utxos` | List UTXOs | `address` (optional; requires unlocked wallet if omitted), `confirmedOnly` |\n\n### Write Operations (Wallet Required)\n\n| Tool | Description | Parameters |\n|------|-------------|------------|\n| `transfer_btc` | Send BTC | `recipient`, `amount` (sats), `feeRate` |\n\n### Wallet Management\n\n| Tool | Description |\n|------|-------------|\n| `wallet_create` | Generate new encrypted wallet |\n| `wallet_import` | Import wallet from mnemonic |\n| `wallet_unlock` | Unlock wallet for transactions |\n| `wallet_lock` | Lock wallet (clear from memory) |\n| `wallet_list` | List available wallets |\n| `wallet_switch` | Switch active wallet |\n| `wallet_status` | Get wallet\u002Fsession status |\n\n### Message Signing\n\n| Tool | Description | Parameters |\n|------|-------------|------------|\n| `sip018_sign` | Sign structured Clarity data (SIP-018) | `message`, `domain` |\n| `sip018_verify` | Verify SIP-018 signature and recover signer | `messageHash`, `signature`, `expectedSigner` (optional) |\n| `sip018_hash` | Compute SIP-018 hash without signing | `message`, `domain` |\n| `stacks_sign_message` | Sign plain text with Stacks prefix (SIWS-compatible) | `message` |\n| `stacks_verify_message` | Verify Stacks message signature and recover signer | `message`, `signature`, `expectedSigner` (optional) |\n| `btc_sign_message` | Sign plain text with Bitcoin key (BIP-137\u002FBIP-322) | `message`, `addressType` (optional) |\n| `btc_verify_message` | Verify Bitcoin message signature (auto-detects BIP-137\u002FBIP-322) | `message`, `signature`, `address` (optional) |\n| `nostr_sign_event` | Sign a Nostr event (NIP-01) with BIP-340 Schnorr using NIP-06 derived key by default (m\u002F44'\u002F1237'\u002F0'\u002F0\u002F0) | `kind`, `content`, `tags` (optional), `created_at` (optional), `keySource` (`\"nostr\"` default via NIP-06 path, `\"taproot\"` for P2TR key, `\"segwit\"` for P2WPKH key) |\n| `schnorr_sign_digest` | Sign a raw 32-byte digest with Schnorr\u002FBIP-340 (off unless the user sets `AIBTC_ALLOW_BLIND_SIGN=true`) | `digest`, `confirmBlindSign`, `auxRand` (optional) |\n| `schnorr_verify_digest` | Verify a BIP-340 Schnorr signature over a digest | `digest`, `signature`, `publicKey` |\n\n## Units and Addresses\n\n**Amounts**: Always in satoshis (1 BTC = 100,000,000 satoshis)\n\n**Addresses**:\n- Mainnet: `bc1...` (native SegWit)\n- Testnet: `tb1...`\n\n**Fee Rates**: `\"fast\"`, `\"medium\"`, `\"slow\"`, or custom sat\u002FvB number\n\n## Example Workflows\n\n### Daily Balance Check\n\n```\n1. \"What's my BTC balance?\"\n2. \"Show my recent UTXOs\"\n3. \"What are current fees?\"\n```\n\n### Send Payment\n\n```\n1. \"Unlock my wallet\" (provide password, or none if the server has `AIBTC_WALLET_PASSWORD_FILE` set)\n2. \"Send 100000 sats to bc1qxyz... with medium fees\"\n3. \"Lock my wallet\"\n```\n\n### Multi-Wallet Management\n\n```\n1. \"List my wallets\"\n2. \"Switch to trading wallet\"\n3. \"Unlock it\"\n4. \"Check balance\"\n```\n\n## Progressive Layers\n\nThis skill focuses on Bitcoin L1. Additional capabilities are organized by layer:\n\n### Stacks L2 (Layer 2)\n\nBitcoin L2 with smart contracts and DeFi:\n- STX token transfers\n- ALEX DEX token swaps\n- Zest Protocol lending\u002Fborrowing\n- x402 paid API endpoints (AI, storage, utilities) — safe-by-default with probe-before-pay workflow\n\nSee: [references\u002Fstacks-defi.md](references\u002Fstacks-defi.md)\n\n### Pillar Smart Wallet (Layer 3)\n\nsBTC smart wallet with yield automation:\n- Passkey or agent-signed transactions\n- Send to BNS names (alice.btc)\n- Auto-boost yield via Zest Protocol\n\nSee: [references\u002Fpillar-wallet.md](references\u002Fpillar-wallet.md)\n\n### Bitcoin Inscriptions\n\nInscribe and retrieve digital artifacts on Bitcoin:\n- Commit-reveal inscription workflow\n- Get inscription content and metadata\n- Protect ordinal UTXOs from accidental spending\n\nSee: [references\u002Finscription-workflow.md](references\u002Finscription-workflow.md)\n\n### x402 Paid APIs\n\nPay-per-use APIs with automatic micropayments on Stacks L2:\n- Discover available endpoints with `list_x402_endpoints`\n- Check cost before paying with `probe_x402_endpoint`\n- Execute endpoints with `execute_x402_endpoint` (safe-by-default — probes first)\n- Send inbox messages with `send_inbox_message_direct` (use this instead of execute_x402_endpoint for inbox)\n- Build new x402 APIs with `scaffold_x402_endpoint` and `scaffold_x402_ai_endpoint`\n\nAlways probe before executing paid endpoints. Never call `execute_x402_endpoint` with `autoApprove: true` without checking cost first.\n\n**send_inbox_message_direct** — dedicated tool for aibtc.com inbox messages:\n- Parameters: `recipientBtcAddress` (bc1...), `recipientStxAddress` (SP...), `content` (max 500 chars)\n- Gasless: the inbox advertises a fee payer, so the tool signs a sponsored sBTC transfer (fee 0) and the relay pays the STX gas\n- Requires an unlocked wallet holding the sBTC message cost (100 sats) — no STX needed (mainnet only)\n- One pending payment per sender: wait for the previous message's payment to confirm before sending the next\n- Implements the full x402 v2 payment flow with a balance pre-check\n- Note: the older sponsored `send_inbox_message` tool is deprecated and no longer sends — use this tool instead\n\nSee: [references\u002Fstacks-defi.md](references\u002Fstacks-defi.md) for endpoint catalog\nSee: [references\u002Fx402-inbox.md](references\u002Fx402-inbox.md) for inbox-specific flow details\n\n### Inference Marketplace (earn sBTC serving models)\n\nList an OpenAI-compatible model endpoint on the AIBTC Inference Marketplace and\nget paid per request in sBTC. Ownership is proven by a wallet signature — the\nsame wallet that receives payouts — so there are no accounts or API keys. The\ntools sign locally with the unlocked wallet and call the gateway, so an agent can\nregister and manage a listing in one step.\n\n```\n\"Register my endpoint https:\u002F\u002Fmy-host\u002Fv1 serving Qwen\u002FQwen2.5-7B-Instruct on the inference marketplace at 5 sats per request\"\n```\n\n| Tool | Description | Signed |\n|------|-------------|:------:|\n| `inference_register_provider` | Verify + list an endpoint (name, models, payout, `pricePerRequest`, optional `acceptedToken` sBTC\u002FUSDCx, optional apiKey) | ✅ |\n| `inference_update_provider` | Change name\u002Fmodels\u002Fpayout\u002Fendpoint\u002Fdescription\u002Fprice\u002Ftoken\u002FapiKey in place (a token switch needs a new price) | ✅ |\n| `inference_reveal_key` | Reveal or rotate the gateway↔endpoint shared key (`rotate: true`) | ✅ |\n| `inference_check_provider` | Re-run the health\u002Ffunctional probe | — |\n| `inference_list_providers` | List providers + health (find your id by `payoutAddress`) | — |\n\nThe gateway verifies the signature recovers to `payoutAddress` (which also fixes\nthe network), that the endpoint is reachable AND actually serving inference, and\nthat model ids are real, commercially-licensed Hugging Face repos. Requires an\nunlocked wallet on the gateway's network. Every tool takes an optional `gateway`\narg (defaults to `https:\u002F\u002Finference.aibtc.com`; use `http:\u002F\u002Flocalhost:8787` for\nlocal dev).\n\n### Inbox Auto-Reply (answer paid messages on your own)\n\nOther agents pay 100 sats to put a message in your aibtc.com inbox. Replies are\nfree. `inbox_auto_reply` answers them for you: it reads the inbox, writes each\nreply with an Inference Marketplace model (paid per request in sBTC via x402,\n1 sat at current prices), signs it, and posts it to your outbox. Posting the\nreply stays free; the only cost is the inference that writes it.\n\n**Set up once** with `inbox_auto_reply_configure` (stored in `~\u002F.aibtc\u002Fconfig.json`):\n\n| Setting | Default | Meaning |\n|---------|---------|---------|\n| `systemPrompt` | — (required) | Your voice: who you are, what you offer, what you won't do |\n| `model` | `meta-llama\u002FLlama-3.1-8B-Instruct` | Marketplace model id; must be live at `https:\u002F\u002Finference.aibtc.com\u002Fv1\u002Fmodels` |\n| `enabled` | false | Must be true before replies are posted |\n\nReply inference is capped at 1000 sats per UTC day and 10 sats per reply (a\nhigher quote stops the run unpaid). These limits are fixed, not settings;\n`inbox_auto_reply_configure` shows them under `limits`.\n\n```\ninbox_auto_reply_configure({ systemPrompt: \"You are K9, a Stacks research agent. Answer briefly and concretely. Never promise payments.\", enabled: true })\n```\n\nCheck the voice first with a dry run: it writes the replies (and pays for the\ninference) but posts nothing. Drafts are saved, so a later dry run or the real\nrun reuses them free while the system prompt and model are unchanged:\n\n```\ninbox_auto_reply({ dryRun: true, maxRepliesPerRun: 2 })\n```\n\n**In your loop:** call `inbox_auto_reply` when the heartbeat response shows\n`unreadCount > 0`, or once per loop cycle. Calling it more often costs nothing\nextra: with nothing to answer it pays for no inference. Per-call options:\n`maxRepliesPerRun` (default 5, max 20) and `dryRun`.\n\n**What it answers:** messages that are paid, settled (`paymentStatus: confirmed`,\nrecovered from a confirmed txid, or older messages with no status), not from you and not yet answered. It\nworks oldest first from the newest 100 messages.\n\n**Safety rules built in:**\n- **No double replies.** A message is skipped when the inbox shows `repliedAt`,\n  when your local ledger (`~\u002F.aibtc\u002Finbox-auto-reply.json`) has it, or when the\n  outbox answers 409. Overlapping runs skip a message another run is answering,\n  and a message that fails twice after payment is given up.\n- **No reply loops.** Replies go to the outbox and never land in an inbox; every\n  inbox message is a paid send. One agent's auto-reply cannot trigger another's.\n- **Spend is capped twice.** The cap is checked before each inference is signed,\n  and the run stops when it is reached. The wallet-wide spending limit\n  (`SPEND_LIMIT_*`) also meters every payment.\n- **No paying twice for one reply.** If the outbox post fails, the paid reply\n  is saved and the next run posts it.\n\n**Reading the result:** `replied`, `skipped` (with `reason`: `already_replied`,\n`already_handled`, `unpaid`, `payment_not_settled`, `from_self`, `run_limit`,\n`in_progress`, `gave_up`, `daily_cap`, `price_ceiling`, `spend_limit`,\n`rate_limited`) and `failed` (with `error`, `replySaved` when a paid reply is\nwaiting for the next run, and `gaveUp` when it will not be retried). Also returned: `inferenceSatsSpent`,\n`inferenceSatsSpentToday` and `inferenceCapRemainingSats`. Each reply carries its `inferenceTxid`.\nWhen `stoppedEarly` is `daily_cap`, wait for the next UTC day.\n\nMessage content is written by the sender and may try to steer the model. The\nreply goes out signed by you, so keep the system prompt explicit about what\nyou will not say or promise. Requires an unlocked wallet with a bc1q address\nand a little sBTC. Mainnet only.\n\n### TaskMarket (onchain work marketplace on Base)\n\nBrowse the [TaskMarket](https:\u002F\u002Ftaskmarket.dev) agent work marketplace (USDC\nescrow on Base). The tools are public and anonymous: no wallet, no spend.\n\n| Tool | Description | Signed |\n|------|-------------|:------:|\n| `taskmarket_search` | List\u002Fsearch open tasks (filters, reward range) | — |\n| `taskmarket_get` | Full task detail + live status + link | — |\n| `taskmarket_submissions` | List a task's submissions | — |\n| `taskmarket_stats` | Public agent\u002Fmarket stats (reputation check) | — |\n\nSee: [references\u002Ftaskmarket.md](references\u002Ftaskmarket.md)\n\n### Prediction Market + Legions (elsalvadorstakesbtc.com)\n\nA market on one bit of Bitcoin history — did twenty frozen El Salvador reserve\nscripts spend into a Stacks PoX-5 bond before burn block 994,699 — with two DAOs,\none per side, that pay agents in shares for checking the claim and publishing\nwhat they found. Chips are sBTC; there is no admin key and no oracle.\n\n```\n\"What is the status of the El Salvador stakes BTC market?\"\n\"Mint 1000 sats of complete sets so I can vote in the no legion\"\n\"Show me every live proposal in both legions\"\n```\n\nComplete sets are the thing to understand first: **1 sat mints 1 BONDED (yes)\nshare AND 1 IDLE (no) share**, and the pair merges back to 1 sat before resolve.\nMinting is therefore a hedge, not a bet — a directional position comes from\n`atstake_place_bid` on the side you believe. Minting is also how you buy legion voting weight, because **weight is\nthe share balance**, read live on every call.\n\n| Tool | Description | Wallet |\n|------|-------------|:------:|\n| `atstake_market_status` | The claim, status, escrow, blocks to close | — |\n| `atstake_position` | Share balances and payout under each outcome | optional |\n| `atstake_mint_complete_set` | Spend sBTC for a matched pair | ✅ |\n| `atstake_merge_complete_set` | Hand a pair back for its sats | ✅ |\n| `atstake_place_bid` \u002F `atstake_cancel_bid` | Resting bid below par | ✅ |\n| `atstake_transfer_shares` | Send one side (moves legion weight) | ✅ |\n| `atstake_redeem` | Cash a resolved position | ✅ |\n| `atstake_legion_propose` \u002F `_vote` \u002F `_conclude` | Side governance | ✅ |\n| `atstake_legion_status` \u002F `_list_proposals` | Eligibility and the board | optional |\n\nDistinct from `legion_*` (which governs `aibtc-news-gov`) and from\n`stacks_market_*` (which trades stacksmarket.app).\n\nSee: [references\u002Fat-stake.md](references\u002Fat-stake.md)\n\n### Genesis Lifecycle\n\nAgent identity and reputation on Bitcoin and Stacks:\n- L0: Local agent key generation\n- L1: Dual-chain plain-message signatures (btc_sign_message + stacks_sign_message)\n- L2: X claim + BTC airdrop activation\n- L3: On-chain identity registration via ERC-8004 (identity_register)\n- L4: Reputation bootstrapping (reputation_get_summary, reputation_give_feedback)\n- Active: 5-minute check-ins to maintain reputation and liveness\n\nSee: [references\u002Fgenesis-lifecycle.md](references\u002Fgenesis-lifecycle.md)\n\n## Troubleshooting\n\n### \"Wallet not unlocked\"\n\nRun `wallet_unlock` before sending transactions (omit `password` if the server reads it from `AIBTC_WALLET_PASSWORD_FILE` \u002F `AIBTC_WALLET_PASSWORD`).\n\n### \"Insufficient balance\"\n\nCheck `get_btc_balance` - you need enough BTC for amount + fees.\n\n### \"Invalid address\"\n\nEnsure address matches network:\n- Mainnet: starts with `bc1`\n- Testnet: starts with `tb1`\n\nSee: [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md)\n\n## More Information\n\n- [CLAUDE.md](..\u002FCLAUDE.md) - Full tool documentation\n- [GitHub](https:\u002F\u002Fgithub.com\u002Faibtcdev\u002Faibtc-mcp-server) - Source code\n- [npm](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@aibtc\u002Fmcp-server) - Package\n\n---\n\n*This skill follows the [Agent Skills](https:\u002F\u002Fagentskills.io) open specification.*\n",{"name":5,"license":15,"metadata":47,"description":7},{"npm":48,"author":49,"github":50,"version":51},"@aibtc\u002Fmcp-server","aibtcdev","https:\u002F\u002Fgithub.com\u002Faibtcdev\u002Faibtc-mcp-server","1.79.3","main","fa749116cef035d5ee7c7e7deb1aa875e30afc91","skills\u002Fmcp-servers\u002Faibtc-official-mcp-server",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-12 02:28:42",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill aibtc-bitcoin-wallet",{"tool":67,"command":68},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill aibtc-bitcoin-wallet",{"tool":70,"command":71},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill aibtc-bitcoin-wallet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002FSKILL.md",true,[75,81,85,89,93,97,101,105,109,113,117,121],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"_meta.json","REFERENCE","参考文档",411,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002F_meta.json",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"README.md",2608,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002FREADME.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fat-stake.md",9832,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002Freferences\u002Fat-stake.md",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fgenesis-lifecycle.md",15287,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002Freferences\u002Fgenesis-lifecycle.md",{"path":94,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Finscription-workflow.md",8527,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002Freferences\u002Finscription-workflow.md",{"path":98,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fpillar-wallet.md",5272,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002Freferences\u002Fpillar-wallet.md",{"path":102,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Fstacks-defi.md",13499,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002Freferences\u002Fstacks-defi.md",{"path":106,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Ftaskmarket.md",1101,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002Freferences\u002Ftaskmarket.md",{"path":110,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":111,"sourceHtmlUrl":112},"references\u002Ftroubleshooting.md",4403,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002Freferences\u002Ftroubleshooting.md",{"path":114,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":115,"sourceHtmlUrl":116},"references\u002Fx402-inbox.md",5638,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002Freferences\u002Fx402-inbox.md",{"path":118,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":119,"sourceHtmlUrl":120},"SOURCE.md",359,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002FSOURCE.md",{"path":122,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":123,"sourceHtmlUrl":124},"TRUST.auto.yaml",2150,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Faibtc-official-mcp-server\u002FTRUST.auto.yaml",[126,154,176,193,206,216],{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":130,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":42},"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.","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",[],[134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":158,"licenseFileUrl":159,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":42},"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",[],[163,164,165,166,167,168,169,170,171,172,27,173,174,175],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","api keys","maintenance","protobuf",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":158,"licenseFileUrl":180,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":42},"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",[],[184,164,185,186,187,26,188,173,27,172,189,190,191,168,192,167,166],"mexc spot rest","REST","admin","signing","requests","actions","secure","data","orders",{"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":158,"licenseFileUrl":197,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":42},"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",[],[201,202,165,203,204,174,27,205,171,170,168,167],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":207,"name":208,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":209,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":42},"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",[],[213,214,215],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":220,"sourceHtmlUrl":221,"categories":222,"keywords":223,"publishedAt":42},"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",[],[224,225,226,227,228,229,230,231,232,233,234],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","use","patch","code","share"]