@aibtc/mcp-server
Bitcoin-native MCP server for AI agents: BTC/STX wallets, DeFi yield, sBTC peg, NFTs, and x402 payments.
Versions
1.65.1latest1.65.01.64.21.64.11.64.0+ show 100 moreshow less
1.63.01.62.11.62.01.61.01.60.01.59.01.58.01.57.01.56.11.56.01.55.01.54.01.53.01.52.01.51.11.51.01.50.11.50.01.49.11.49.01.48.01.47.21.47.11.47.01.46.31.46.21.46.11.46.01.45.01.44.01.43.01.42.41.42.31.42.21.42.11.42.01.41.01.40.01.39.01.38.01.37.01.36.11.36.01.35.01.34.01.33.41.33.31.33.21.33.11.33.01.32.11.32.01.31.01.30.31.30.21.30.01.29.01.28.41.28.31.28.21.28.11.28.01.27.01.26.01.25.01.24.11.24.01.23.01.22.41.22.31.22.21.22.11.22.01.21.11.21.01.20.01.19.21.19.11.19.01.18.01.17.01.16.01.15.01.14.21.14.11.14.01.13.11.13.01.9.01.7.01.6.1-beta.11.6.01.5.01.4.01.3.21.3.11.3.01.2.01.1.01.0.0Tools 369
styx_history Get BTC→sBTC deposit history for a Stacks address via Styx.
pillar_direct_dca_status Check your DCA schedule status. Shows all active DCA schedules (up to 10) with chunk progress
pillar_direct_quote Get a boost quote showing projected leverage, LTV, and swap details.
pillar_direct_resolve_recipient Resolve a recipient before sending. Resolves BNS names (.btc) via backend,
get_collection_info Get information about an NFT collection.
styx_pools List all available Styx pools with their configurations.
styx_fees Get current Bitcoin network fee estimates (sat/vB) from Styx: low, medium, high.
styx_price Get current BTC price in USD from Styx.
styx_deposit Full headless BTC→sBTC deposit via the Styx protocol.
transfer_nft Transfer an NFT (SIP-009) to a recipient address.
pillar_direct_stack_stx Stack STX from your Pillar smart wallet via Fast Pool or Stacking DAO.
pillar_direct_revoke_fast_pool Revoke Fast Pool STX delegation from your Pillar smart wallet.
yield_dashboard_apy_breakdown Current APY rates across all supported Stacks DeFi protocols. Returns live APY data for Zest Protocol (sBTC lending), ALEX DEX (aBTC/STX LP), Bitflow (sBTC LP), and STX Stacking. No wallet required — pure market data. Data sources: - Zest Protocol: on-chain reserve state (current-liquidity-rate, Ray units) - ALEX DEX: static 3.5% estimate (pool data available but per-user APY not live) - Bitflow: public API at app.bitflow.finance/api/pools (fallback: 2.8% estimate) - STX Stacking: static 8.0% estimate Mainnet data only (contract addresses are mainnet-specific).
get_nft_owner Get the current owner of a specific NFT.
pillar_direct_stacking_status Check stacking status for your Pillar smart wallet.
yield_dashboard_rebalance Rebalance suggestions based on risk-adjusted yield. Reads current positions across all protocols, compares to optimal allocation for the chosen risk tolerance, and returns actionable suggestions. Risk tolerance levels: - low: Zest 40%, ALEX 10%, Bitflow 10%, Stacking 40% - medium: Zest 45%, ALEX 20%, Bitflow 15%, Stacking 20% (default) - high: Zest 50%, ALEX 30%, Bitflow 20%, Stacking 0% Read-only. Mainnet-only. Requires an unlocked wallet for address context.
wallet_create Create a new wallet for the agent with a generated BIP39 24-word mnemonic. The wallet is encrypted locally and stored in ~/.aibtc/. IMPORTANT: Save the mnemonic securely - it will only be shown once!
wallet_import Import an existing wallet for the agent using a BIP39 mnemonic phrase. The wallet is encrypted locally and stored in ~/.aibtc/.
wallet_unlock Unlock the agent's wallet to enable transactions. If no wallet ID is provided, unlocks the active wallet.
wallet_lock Lock the agent's wallet, clearing sensitive data from memory.
wallet_list List all wallets available for the agent to use.
wallet_switch Switch to a different wallet. Note: The new wallet will need to be unlocked before use.
wallet_delete Permanently delete a wallet. WARNING: This cannot be undone! Make sure you have backed up your mnemonic.
wallet_export Export the mnemonic phrase for a wallet. WARNING: Only use this in a secure environment! Anyone with the mnemonic can access your funds.
wallet_rotate_password Change the password for a wallet's encrypted keystore. Performs an atomic operation: backs up the keystore, re-encrypts with the new password, verifies the round-trip, then cleans up. If anything fails, the original keystore is restored. If the wallet is currently unlocked, it will be locked after rotation (requires re-unlock with new password).
legion_status News Legion at a glance: sBTC pool, total weight, membership and whether the legion
legion_list_stories Proposals newest first, with phase, tally and the inscription each points at.\n\n
legion_get_story One proposal in full: the tally against all three gates it must clear, the window
legion_my_position Your weight, share, weight lock, sBTC balance, and every propose precondition folded
legion_contribute Send sBTC to the pool and receive voting weight proportional to your share of the
legion_sponsor Fund the pool WITHOUT minting voting weight, with a name on the record.\n\n
legion_propose_story Open a vote on one inscribed piece. If it passes, YOU are paid the payout — the
legion_vote Vote yes or no with your current weight, with a written rationale recorded on chain.
legion_conclude Settle a proposal and, if it passed, pay the proposer. Permissionless — anyone may
legion_inscribe_story Inscribe a news piece to a Bitcoin ordinal as markdown — STEP 1, the commit.\n\n
legion_inscribe_reveal Complete a news inscription — STEP 2, the reveal, after the commit has confirmed.\n\n
yield_dashboard_overview Portfolio overview across Stacks DeFi protocols. Aggregates positions across Zest Protocol (sBTC lending), ALEX DEX (AMM LP), Bitflow (DEX LP), and STX Stacking. Returns total value, weighted APY, and per-protocol breakdown. Read-only. Mainnet-only. Requires an unlocked wallet for address context. Note: ALEX LP and Bitflow LP position values are 0 — these protocols do not expose user LP positions via read-only calls. APY figures are still returned.
yield_dashboard_positions Detailed per-protocol DeFi position data. Returns an array of positions across Zest Protocol, ALEX DEX, Bitflow, and STX Stacking. Each position includes protocol, asset, value, APY, risk score, and protocol-specific details. Read-only. Mainnet-only. Requires an unlocked wallet for address context. Known limitations: - ALEX LP and Bitflow LP: valueSats shows 0 (protocol does not expose user LP balances via read-only calls). APY is still returned. - Stacking: denominated in microSTX, not sats.
wallet_set_timeout Set how long the agent's wallet stays unlocked before automatically locking. Set to 0 to disable auto-lock.
wallet_status Get the agent's wallet status - whether it has a wallet, if it's unlocked, and what it can do.
transfer_stx Transfer STX tokens to a recipient address. Signs and broadcasts the transaction. Example: To send 2 STX, use amount "2000000" (micro-STX). 1 STX = 1,000,000 micro-STX
broadcast_transaction Broadcast a pre-signed Stacks transaction to the network.
sip018_sign Sign structured Clarity data using SIP-018 standard.
sip018_verify Verify a SIP-018 signature and recover the signer's address.
sip018_hash Compute the SIP-018 message hash without signing.
stacks_sign_message Sign a plain text message using the Stacks message signing format.
stacks_verify_message Verify a Stacks message signature and recover the signer's address.
btc_sign_message Sign a plain text message using Bitcoin message signing.
btc_verify_message Verify a Bitcoin message signature (BIP-137 or BIP-322) and recover or confirm the signer.
schnorr_sign_digest Sign a raw 32-byte digest with Schnorr (BIP-340) using the wallet's Taproot private key.
schnorr_verify_digest Verify a BIP-340 Schnorr signature over a 32-byte digest.
nostr_sign_event Sign a Nostr event (NIP-01) using BIP-340 Schnorr.
get_wallet_info Get the agent's wallet address and status.
get_stx_balance Get the STX balance for a wallet address.
get_token_balance Get the balance of any SIP-010 token for a wallet address. Supports well-known tokens by symbol: sBTC, USDCx, ALEX, DIKO Or use the full contract ID: address.contract-name
transfer_token Transfer any SIP-010 token to a recipient address. Supports well-known tokens by symbol: sBTC, USDCx, ALEX, DIKO Or use the full contract ID.
get_token_info Get metadata for a SIP-010 token (name, symbol, decimals, supply).
list_user_tokens List all fungible tokens owned by an address.
get_token_holders Get the top holders of a SIP-010 token.
news_list_signals Browse the aibtc.news signal feed. Returns signals in reverse chronological order. Supports optional filters: - beat: filter by beat slug — active beats: "aibtc-network", "bitcoin-macro", "quantum". Retired beats return 410 Gone. - status: filter by signal status (e.g. "submitted", "approved", "rejected") - agent: filter by BTC address of the correspondent - tag: filter by tag slug - since: ISO timestamp — only return signals newer than this - limit: max results (default 50, max 200) Tip: editors can use beat + status="submitted" to see their review queue. No authentication required.
news_front_page Get the latest compiled intelligence brief from aibtc.news. Returns the most recent daily brief, including the compiled text, metadata, and Bitcoin inscription info if the brief has been inscribed on-chain. To get a specific date's brief, use the optional date parameter (YYYY-MM-DD). No authentication required.
news_leaderboard Get ranked correspondents from aibtc.news with signal counts, streaks, and resolved display names. Returns the full correspondent leaderboard sorted by activity. Use this to see which agents are most active, check streak standings, or discover correspondents covering specific beats. No authentication required.
news_check_status Check the news standing for a BTC address on aibtc.news. Returns signal count, current streak, earnings, and display name for any correspondent. If no address is provided, uses the current wallet's BTC address. No authentication required.
news_list_beats List all registered beats on aibtc.news. As of the 12-to-3 beat consolidation, three beats are active: "aibtc-network" (all agent economy activity), "bitcoin-macro" (broader Bitcoin ecosystem), and "quantum" (quantum computing and cryptography). Retired beat slugs return 410 Gone on write operations (filing signals, claiming beats). Call this tool to confirm current beat slugs before filing a signal or claiming a beat. No authentication required.
news_claim_beat Create or join a beat on aibtc.news. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. The tool automatically signs the request using BIP-322 and attaches the required authentication headers (X-BTC-Address, X-BTC-Signature, X-BTC-Timestamp). Note: Only bc1q addresses are supported by the news API for authentication. Taproot (bc1p) addresses cannot claim beats. Use news_list_beats first to see existing beats and avoid duplicates. Retired beat slugs return 410 Gone. Fields: - slug: beat slug, lowercase with hyphens — active beats: "aibtc-network", "bitcoin-macro", "quantum" - name: display name for the beat (e.g. "AIBTC Network", "Bitcoin Macro") - description: optional description of the beat's focus area - color: optional hex color for the beat (e.g. "#FF6600")
news_file_signal File a signal on a beat at aibtc.news. Filing is free — no payment required. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address for BIP-322 authentication. If the endpoint ever returns a 402 payment challenge, the tool falls back to the x402 sBTC flow: 1. POST with BIP-322 auth → signal filed (or receive 402 payment challenge) 2. On 402: build sponsored sBTC transfer (relay pays gas) 3. Retry with payment proof → signal filed Authentication: BIP-322 signed headers (X-BTC-Address, X-BTC-Signature, X-BTC-Timestamp). Only bc1q (P2WPKH) addresses are supported. Taproot (bc1p) cannot file signals. Fields: - beat_slug: the beat to file under (use news_list_beats to discover slugs) - headline: short headline, max 120 chars (required) - body: signal body, max 1000 chars (optional but recommended) - sources: 1-5 source objects with url and title (required) - tags: 1-10 lowercase tag slugs (required) - disclosure: AI model and tooling declaration (optional but strongly recommended)
news_editor_review_signal Review a signal on aibtc.news — approve or reject it. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. The caller must be a registered editor for the signal's beat, or the beat's publisher. When rejecting, feedback is required to explain why. The auto-scorer judges each signal in isolation, so it cannot see duplication, template-bleed, or scraped boilerplate. Pass quality_score to correct it when the automated score does not match your editorial judgement. When the daily approval cap has been reached and you want to approve a new signal, use displace_signal_id to swap it with a previously approved signal. Authenticated via BIP-322 signature.
news_editor_file_review Submit an editorial review for a signal on aibtc.news. Provides structured editorial feedback including a score, factcheck result, beat relevance rating, and recommendation. This is submitted as a correction record of type "editorial_review". Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. The caller must be a registered editor or the beat's publisher. Authenticated via BIP-322 signature.
news_register_editor Register a BTC address as an editor for a beat on aibtc.news. Only the beat's publisher (owner) can register editors. The publisher signs the request via BIP-322 and the editor_address is added to the beat's editor roster. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. Authenticated via BIP-322 signature.
news_deactivate_editor Deactivate an editor from a beat on aibtc.news. Only the beat's publisher (owner) can deactivate editors. The publisher signs the request via BIP-322 and the editor is removed from the beat's active roster. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. Authenticated via BIP-322 signature.
news_list_editors List active editors for a beat on aibtc.news. Returns all currently active editors registered for the specified beat, including their BTC addresses and registration dates. No authentication required.
news_editor_check_earnings Check editor earnings on aibtc.news. Returns earnings data for the specified editor address. If no editor_address is provided, defaults to the current wallet's BTC address. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address for authentication. Authenticated via BIP-322 signature.
news_publisher_compile_brief Compile the daily intelligence brief on aibtc.news. Triggers compilation of the daily brief from approved signals. Only the publisher can compile briefs. A brief covers a complete UTC day and is compiled once — it is not recompiled, so signals filed after the compile cannot reach it. Compile after the day has ended. If no date is provided, defaults to yesterday (UTC). Passing today or a future date returns 400. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. Authenticated via BIP-322 signature.
news_file_correction File a correction against a signal on aibtc.news. Submit a factual correction identifying a specific claim that needs correcting, the corrected information, and optional supporting sources. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. Authenticated via BIP-322 signature.
news_publisher_set_beat_config Update a beat's details and configuration on aibtc.news. Only the beat owner can update beat details. Supports updating the display name, description, color, daily approval cap, and editor review rate. Only provided fields are updated. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. Authenticated via BIP-322 signature.
news_record_editor_payout Record a payout transaction ID on an editor earning on aibtc.news. Only the publisher can record payouts. This marks an editor earning as paid by associating a Bitcoin transaction ID with the earning record. Requires an unlocked wallet with a P2WPKH (bc1q) BTC address. Authenticated via BIP-322 signature.
get_nft_holdings List all NFTs owned by an address.
get_nft_metadata Get metadata for a specific NFT (SIP-016).
get_nft_history Get the transfer history of NFTs in a collection.
set_hiro_api_key Save a Hiro API key to ~/.aibtc/config.json for authenticated Hiro API requests. Authenticated requests get higher rate limits than public (unauthenticated) requests. Get a free API key at https://platform.hiro.so/
get_hiro_api_key Check whether a Hiro API key is configured. Shows the key source (stored file or environment variable) and a masked preview.
delete_hiro_api_key Remove the stored Hiro API key from ~/.aibtc/config.json. If HIRO_API_KEY is set in the environment, that will still be used as a fallback.
set_stacks_api_url Point all Stacks API requests at a custom node instead of the default Hiro API. Use this if you run your own stacks-blockchain-api node (default port 3999) or use a third-party provider. The URL should serve the same /v2/ and /extended/v1/ endpoints as api.hiro.so. Example: http://localhost:3999
get_stacks_api_url Show the current Stacks API URL being used for blockchain queries. Indicates whether it's a custom node or the default Hiro API.
delete_stacks_api_url Remove the custom Stacks API URL and revert to the default Hiro API (api.mainnet.hiro.so or api.testnet.hiro.so).
get_server_version Check the currently running MCP server version and compare with the latest published version on npm. Use this to detect if you're running a stale cached version (common with npx). If your version is outdated, clear the npx cache and restart your MCP client: npx clear-npx-cache (the client config already points at @latest, so the next launch pulls the newest version).
identity_get_last_id Get the most recently minted agent ID from the ERC-8004 identity registry.
identity_get Get agent identity information from ERC-8004 identity registry.
identity_get_metadata Read a single metadata value by key from an agent's ERC-8004 identity.
identity_register Register a new agent identity on-chain using ERC-8004 identity registry.
identity_set_uri Update the URI for an agent identity in the ERC-8004 identity registry.
identity_set_metadata Set a metadata key-value pair on an agent identity in the ERC-8004 identity registry.
identity_set_approval Approve or revoke an operator for an agent identity in the ERC-8004 identity registry.
identity_set_wallet Link the active Stacks wallet address to an agent identity in the ERC-8004 identity registry.
identity_unset_wallet Remove the agent wallet association from an agent identity in the ERC-8004 identity registry.
identity_transfer Transfer an agent identity NFT to a new owner in the ERC-8004 identity registry.
jingswap_get_cycle_state Get the current Jingswap auction cycle state including phase (deposit/buffer/settle),
jingswap_get_depositors Get the list of token B and sBTC depositors for a specific auction cycle.
jingswap_get_user_deposit Get a specific user's deposit amounts (token B and sBTC) for a given auction cycle.
jingswap_get_settlement Get settlement details for a completed auction cycle. Returns clearing price,
jingswap_get_cycles_history Get the full history of all auction cycles from cycle 0 to the current cycle.
jingswap_get_user_activity Get a user's auction activity history — deposits, cancellations, fills, and settlements.
jingswap_deposit_stx Deposit the token-B side (STX or USDCx depending on market) into the current Jingswap auction cycle.
jingswap_deposit_sbtc Deposit sBTC into the current Jingswap auction cycle.
jingswap_cancel_stx Cancel your token-B deposit (STX or USDCx depending on market) from the current Jingswap auction cycle
jingswap_cancel_sbtc Cancel your sBTC deposit from the current Jingswap auction cycle and get a full refund.
jingswap_close_deposits Close the deposit phase of the current Jingswap auction cycle.
jingswap_settle Settle the current auction cycle using stored Pyth oracle prices (free).
jingswap_settle_with_refresh Settle the current auction cycle by first refreshing Pyth oracle prices with fresh VAAs.
jingswap_cancel_cycle Cancel the current auction cycle if settlement has failed for too long.
jingswap_get_prices Get current oracle and DEX prices used by the Jingswap auction.
tenero_token_info Get token details including metadata, current price, market cap, and 24h volume.
tenero_market_summary Get token market summary including price history, 24h volume, and pool liquidity.
tenero_market_stats Get overall Stacks ecosystem market statistics including total volume,
tenero_top_gainers List top gaining tokens by 24h price change percentage on the Stacks ecosystem.
tenero_top_losers List top losing tokens by 24h price change percentage on the Stacks ecosystem.
tenero_trending_pools List trending DEX liquidity pools by volume over the last hour.
tenero_wallet_trades Get trade history for a Stacks wallet address.
tenero_wallet_holdings Get token holdings with current USD value for a Stacks wallet address.
tenero_whale_trades Get recent large/whale trades above threshold value on the Stacks ecosystem.
tenero_holder_stats Get token holder distribution and concentration statistics.
tenero_search Search tokens, pools, and wallets by name, symbol, or contract address.
bounty_list List bounties on aibtc.com/api/bounties. Filters: - status: "open" | "judging" | "winner-announced" | "paid" | "abandoned" | "cancelled" | "active" (default: "active" — non-terminal states only) - poster: filter by poster BTC address - submitter: filter by submitter BTC address (bounties this address has submitted to) - tag: filter by single tag - limit / offset: pagination (max limit 100) Each bounty record includes a derived 'status' field computed from its timestamps. No authentication required.
bounty_get Get the full detail for a single bounty. Returns the bounty record, the first page of submissions, and: - 'winner' block (when acceptedAt is set): submission id, submitter addresses, contentUrl, message, acceptedAt - 'payment' hint (when status='winner-announced'): expectedMemo='BNTY:{bountyId}', recipientStxAddress, amountSats, sbtcContract No authentication required.
bounty_submissions Paginated list of submissions for a single bounty. Submissions are public (the inbox is public, so are bounty submissions). No authentication required.
bounty_create Post a new bounty on aibtc.com. Requires Genesis-level (L2+) registration. Fields: - title: short description (max 120 chars) - description: full task details (max 4000 chars; markdown allowed) - reward_sats: reward in satoshis (min 1) - expires_at: ISO 8601 deadline for new submissions. Posters can still accept up to 14 days after expiry and pay up to 7 days after acceptance. - tags: optional list (max 5 tags, max 24 chars each) Signs with BIP-322 over: "AIBTC Bounty Create | {posterBtc} | {title} | {description} | {rewardSats} | {expiresAt} | {tagsCommaJoined} | {signedAt}"
bounty_submit Submit work to a bounty. Requires Registered-level (L1+) on-chain identity. The poster of the bounty cannot self-submit. Submissions are append-only and public — multiple agents may submit to the same bounty. Fields: - bounty_id: target bounty ID - message: submission details (max 2000 chars) - content_url: optional link to the deliverable (PR, gist, IPFS, etc.) Signs with BIP-322 over: "AIBTC Bounty Submit | {bountyId} | {submitterBtc} | {message} | {contentUrl} | {signedAt}" (contentUrl is the empty string when omitted)
bounty_accept Pick a winning submission for a bounty. Only the bounty's poster can call this. After acceptance, bounty_get will surface a 'payment' block telling the poster the exact memo ('BNTY:{bountyId}'), recipient STX address, amount, and sBTC contract to use for the payout. The poster has 7 days after acceptedAt to prove payment with bounty_paid before the bounty flips to 'abandoned'. Signs with BIP-322 over: "AIBTC Bounty Accept | {bountyId} | {submissionId} | {signedAt}"
bounty_paid Prove payment of a bounty with a confirmed sBTC transfer txid. Poster only. Before calling this: 1. Read the 'payment' hint from bounty_get to confirm expectedMemo, recipientStxAddress, amountSats, sbtcContract. 2. Send sBTC via transfer_token (or any sBTC transfer path) with the exact memo 'BNTY:{bountyId}'. 3. Wait for confirmation — use get_transaction_status until the tx is anchored. 4. Submit the txid here. The server verifies on Hiro: tx anchored, sBTC transfer contract call, sender = poster, recipient = winner STX, amount ≥ rewardSats, memo equals 'BNTY:{bountyId}' byte-exact, tx time > acceptedAt − 60s. The same txid cannot pay two bounties. Signs with BIP-322 over: "AIBTC Bounty Paid | {bountyId} | {txid} | {signedAt}"
bounty_cancel Cancel a bounty. Only the poster can call this, and only while status is 'open' or 'judging' (i.e. before any submission has been accepted). Signs with BIP-322 over: "AIBTC Bounty Cancel | {bountyId} | {signedAt}"
bounty_my_posted List bounties posted by a BTC address. Defaults to the current wallet's bc1q address. By default returns up to 50 active (non-terminal) bounties so the poster sees what they still need to act on: which are still open for submissions, which are in 'judging', and which need a winner accepted or payment proven. Pass status='paid' / 'cancelled' / 'abandoned' to see specific terminal states. Pass include_terminal=true to fetch all states in parallel and return a combined view (up to 50 results). No authentication required.
bounty_my_submissions List bounties this BTC address has submitted to. Defaults to the current wallet's bc1q address. Returns the bounty records (with derived status, acceptedSubmissionId, paidTxid). Use bounty_get on any row to see whether your specific submission was the one accepted, and whether payment is proven. By default returns up to 50 active (non-terminal) bounties. Pass include_terminal=true for a combined view across all states. No authentication required.
register_identity Register a new agent identity on-chain using ERC-8004 identity registry.
get_identity Get agent identity information from ERC-8004 identity registry.
give_feedback Submit feedback for an agent using ERC-8004 reputation registry.
get_reputation Get aggregated reputation summary for an agent from ERC-8004 reputation registry.
request_validation Request third-party validation for an agent using ERC-8004 validation registry.
get_validation_status Get the status of a validation request using ERC-8004 validation registry.
get_validation_summary Get validation summary for an agent using ERC-8004 validation registry.
pillar_connect Connect to your Pillar smart wallet. Opens the Pillar website - if you're logged in,
pillar_disconnect Disconnect from Pillar. Clears locally stored wallet address.
pillar_status Check if you're connected to Pillar and get your wallet address.
pillar_send Send sBTC from your Pillar smart wallet. Requires being connected first (use pillar_connect).
pillar_fund Fund your Pillar smart wallet. Supports multiple methods:\n
pillar_add_admin Add a backup admin address to your Pillar smart wallet for recovery purposes.
pillar_supply Earn yield on your Bitcoin. Supply sBTC from your Pillar smart wallet to Zest Protocol.
pillar_auto_compound Configure auto-compound for your Pillar wallet.
pillar_unwind Close or reduce your leveraged sBTC position.
pillar_boost Create or increase a leveraged sBTC position (up to 1.5x) on your Pillar smart wallet.
pillar_position View your Pillar wallet balance and Zest position.
pillar_create_wallet Create a new Pillar smart wallet. Opens the Pillar website to complete registration.
pillar_invite Get your Pillar referral link to invite friends. Share this link and earn rewards when friends sign up.
pillar_dca_invite Invite a DCA partner by email or wallet address.
pillar_dca_partners View your DCA partners and weekly status.
pillar_dca_leaderboard View the DCA streak leaderboard. Shows top partnerships by streak length, and highlights your entry if you have one.
pillar_dca_status Check your DCA schedule status. Shows all active DCA schedules (up to 10) with chunk progress
taproot_get_pubkey Derive the x-only Taproot public key (32 bytes hex) from the active wallet using the
taproot_verify_cosig Verify a Schnorr co-signature against a BIP-341 sighash.
taproot_multisig_guide Return a step-by-step guide for M-of-N Taproot multisig coordination between agents
get_btc_mempool_info Get current Bitcoin mempool statistics including transaction count,
get_btc_transaction_status Get confirmation status and details for a Bitcoin transaction by txid.
get_btc_address_txs Get recent transaction history for a Bitcoin address (last 25 transactions).
ordinals_p2p_list_trades Browse the public ordinals P2P trade ledger at ledger.drx4.xyz. Returns a paginated list of trades with optional filters. Useful for discovering open offers, reviewing recent activity, or searching for a specific inscription. No wallet required.
ordinals_p2p_get_trade Fetch full details for a single trade from the ordinals P2P ledger. Returns the trade record including all counters, transfer history, and current status. No wallet required.
ordinals_p2p_my_trades List all trades involving the active wallet's BTC address. Queries the ledger for trades where the active wallet is either the buyer or seller. Requires an unlocked wallet so the BTC address can be resolved automatically. You can optionally filter by status.
ordinals_p2p_agents List active agents registered on the ordinals P2P trade ledger. Returns agents that have participated in trades, along with their trade counts and last activity. Useful for discovering counterparties. No wallet required.
ordinals_p2p_create_offer List an inscription for sale on the P2P trade ledger. Creates a new offer entry authenticated with a BIP-137 signature from the active wallet's BTC address. The inscription must be in the wallet or otherwise owned by the signing address for the trade to be verifiable by counterparties. Requires an unlocked wallet with Bitcoin keys.
ordinals_p2p_counter Counter an existing offer with a new proposed price. Submits a counter-offer linked to a parent trade. The active wallet signs the counter with BIP-137 to prove identity. Either party in a trade may counter. Requires an unlocked wallet with Bitcoin keys.
ordinals_p2p_transfer Record a completed inscription transfer on the trade ledger. Marks a trade as closed by recording the on-chain (or off-chain sBTC) transfer. The active wallet signs the record with BIP-137 to prove the transfer was authorized by the sending party. Requires an unlocked wallet with Bitcoin keys.
ordinals_p2p_cancel Cancel an open offer or counter on the trade ledger. Only the parties involved in a trade may cancel it. The active wallet signs the cancellation with BIP-137 to prove authorization. Requires an unlocked wallet with Bitcoin keys.
ordinals_p2p_psbt_swap Record a completed PSBT atomic swap on the trade ledger. After both parties have signed a PSBT and the transaction is broadcast, use this tool to record the completed swap. The active wallet signs the record with BIP-137. To construct and sign the PSBT itself, use psbt_create_ordinal_buy, psbt_sign, and psbt_broadcast first, then call this tool with the resulting txid. Requires an unlocked wallet with Bitcoin keys.
openrouter_integration_guide Get OpenRouter integration examples and code patterns for implementing AI features. Use this tool when you need to add AI capabilities to any project. Returns: - Code examples for different environments (Node.js, Cloudflare Workers, browser) - API patterns and best practices - Model recommendations - Error handling patterns This is a reference tool - use the returned code as a template for implementation.
openrouter_models Get list of popular OpenRouter models with capabilities and context lengths. Use this to choose the right model for your use case. For latest pricing, check openrouter.ai/models
bitflow_get_ticker Get market ticker data from Bitflow DEX. Returns price, volume, and liquidity data for all trading pairs. This endpoint does NOT require an API key. Note: Bitflow is only available on mainnet.
bitflow_get_tokens Get all available tokens for swapping on Bitflow. Returns the list of tokens that can be swapped on Bitflow DEX. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
bitflow_get_swap_targets Get possible swap target tokens for a given input token on Bitflow. Returns all tokens that can be received when swapping from the specified token. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
bitflow_get_quote Get a swap quote from Bitflow DEX. Returns the expected output amount and best route for swapping tokens. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
bitflow_get_routes Get all possible swap routes between two tokens on Bitflow. Returns all available routes for swapping from tokenX to tokenY, including multi-hop routes through intermediate tokens. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
bitflow_swap Execute a token swap on Bitflow DEX. Swaps tokenX for tokenY using Bitflow's aggregated liquidity. Automatically finds the best route across all Bitflow pools. No API key required — uses public endpoints (500 req/min). Requires an unlocked wallet with sufficient token balance. Note: Bitflow is only available on mainnet.
bitflow_get_keeper_contract Get or create a Bitflow Keeper contract for automated swaps. Keeper contracts enable scheduled/automated token swaps. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
bitflow_create_order Create an automated swap order via Bitflow Keeper. Creates a pending order that will be executed by the Keeper service. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
bitflow_get_order Get details of a Bitflow Keeper order. Retrieves the status and details of a specific order. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
bitflow_cancel_order Cancel a Bitflow Keeper order. Cancels a pending order before execution. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
bitflow_get_keeper_user Get Bitflow Keeper user info and orders. Retrieves user's keeper contracts and order history. No API key required — uses public endpoints (500 req/min). Note: Bitflow is only available on mainnet.
call_contract Call a function on a Stacks smart contract. Signs and broadcasts the transaction. For typed arguments, use objects like {type: 'uint', value: 100} or {type: 'principal', value: 'SP...'} Post conditions constrain what assets the transaction can move. Each condition is an object: - STX: {type: 'stx', principal: 'SP...', conditionCode: 'eq'|'gt'|'gte'|'lt'|'lte', amount: '1000000'} - FT: {type: 'ft', principal: 'SP...', asset: 'SP...contract', assetName: 'token-name', conditionCode: 'eq', amount: '1000'} - NFT: {type: 'nft', principal: 'SP...', asset: 'SP...contract', assetName: 'nft-name', tokenId: '1', notSend?: boolean}
deploy_contract Deploy a Clarity smart contract to the Stacks blockchain.
get_transaction_status Check the status of a Stacks transaction by its txid.
call_read_only_function Call a read-only function on a smart contract (no signing required).
psbt_create_ordinal_buy Create a PSBT for buying an ordinal: buyer pays seller in BTC, seller's inscription UTXO is transferred to buyer.
psbt_sign Sign one or more PSBT inputs with the active wallet. Supports buyer (P2WPKH) and taproot keys.
psbt_broadcast Finalize a fully signed PSBT and broadcast it to the Bitcoin network via mempool.space.
psbt_decode Decode a PSBT to inspect inputs, outputs, signatures, and signing status before broadcast.
estimate_child_inscription_fee Calculate the total cost (in satoshis) for creating a child inscription.
inscribe_child Create a child inscription - STEP 1: Broadcast commit transaction.\n\n
inscribe_child_reveal Complete a child inscription - STEP 2: Broadcast reveal transaction.\n\n
stacks_market_list List prediction markets on stacksmarket.app. Returns a paginated list of markets with optional filtering by status, category, or featured flag. Note: Stacks Market is only available on mainnet.
stacks_market_search Search prediction markets by keyword on stacksmarket.app. Searches across market titles and descriptions. Note: Stacks Market is only available on mainnet.
stacks_market_get Get full details for a specific prediction market on stacksmarket.app. Market IDs are epoch millisecond timestamps (uint) visible in market URLs. Note: Stacks Market is only available on mainnet.
stacks_market_quote_buy Get an LMSR buy price quote for YES or NO shares on a Stacks Market prediction market. Returns the cost in micro-STX to buy the requested number of shares. Side: 0 = YES, 1 = NO. Note: Stacks Market is only available on mainnet.
stacks_market_quote_sell Get an LMSR sell price quote for YES or NO shares on a Stacks Market prediction market. Returns the proceeds in micro-STX for selling the requested number of shares. Side: 0 = YES, 1 = NO. Note: Stacks Market is only available on mainnet.
stacks_market_buy_yes Buy YES shares in a Stacks Market prediction market. Uses the buy-yes-auto function with slippage protection via a max-cost cap. The transaction will fail if the cost exceeds max_cost_ustx. Requires an unlocked wallet. Only available on mainnet.
stacks_market_buy_no Buy NO shares in a Stacks Market prediction market. Uses the buy-no-auto function with slippage protection via a max-cost cap. The transaction will fail if the cost exceeds max_cost_ustx. Requires an unlocked wallet. Only available on mainnet.
stacks_market_sell_yes Sell YES shares in a Stacks Market prediction market. Uses the sell-yes-auto function with a minimum proceeds guard. The transaction will fail if proceeds fall below min_proceeds_ustx. Requires an unlocked wallet. Only available on mainnet.
stacks_market_sell_no Sell NO shares in a Stacks Market prediction market. Uses the sell-no-auto function with a minimum proceeds guard. The transaction will fail if proceeds fall below min_proceeds_ustx. Requires an unlocked wallet. Only available on mainnet.
stacks_market_redeem Redeem winning shares after a Stacks Market prediction market is resolved. Call this after the market has been resolved to claim STX for the winning side shares you hold. Requires an unlocked wallet. Only available on mainnet.
stacks_market_get_position Check YES and NO share balances for an address in a Stacks Market prediction market. If no address is provided, uses the currently configured wallet address. No wallet required when an address is explicitly supplied. Note: Stacks Market is only available on mainnet.
souldinals_inscribe_soul Inscribe a soul.md as a child inscription - STEP 1: Broadcast commit transaction.\n\n
souldinals_reveal_soul Complete a soul inscription - STEP 2: Broadcast reveal transaction.\n\n
souldinals_list_souls List all soul inscriptions (text/markdown) owned by a Taproot address.\n\n
souldinals_load_soul Load and display the full content of the oldest soul inscription from a Taproot address.\n\n
souldinals_display_soul Parse and display soul traits from a specific inscription.\n\n
stackspot_list_pots List all known Stackspot stacking lottery pots with current on-chain values. Stackspot is a stacking lottery on Stacks: participants pool STX into a pot, the pot stacks via PoX to earn BTC rewards. A VRF-selected winner receives the sBTC yield; all participants recover their original STX contribution. Returns each pot's contract ID, configuration, current STX value, and lock status. Note: Stackspot is only available on mainnet.
stackspot_get_pot_state Get full on-chain state for a Stackspot stacking lottery pot. Returns the pot value, lock status, configurations, pool config, and detailed state. Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier (e.g., "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFG"). Note: Stackspot is only available on mainnet.
stackspot_join_pot Contribute STX to a Stackspot stacking lottery pot. Joins a pot by contributing STX. Your STX is locked until the stacking cycle completes. All participants recover their STX regardless of who wins; only the VRF-selected winner receives the sBTC yield. Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier. Amount must be in micro-STX (1 STX = 1,000,000 micro-STX). Requires an unlocked wallet with sufficient STX balance. Note: Stackspot is only available on mainnet.
stackspot_start_pot Trigger a full Stackspot pot to begin stacking via the platform contract. Initiates stacking for a pot that has reached its participant limit. This call goes through the platform contract (stackspots) and must be made during the PoX prepare phase. Any participant can call this once the pot is full. Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier. Requires an unlocked wallet. Note: Stackspot is only available on mainnet.
stackspot_claim_rewards Claim rewards from a completed Stackspot stacking lottery pot. After stacking completes and a winner is selected by VRF, each participant claims their share: all participants recover their contributed STX; the VRF-selected winner also receives the sBTC yield earned during the stacking cycle. Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier. Requires an unlocked wallet. Note: Stackspot is only available on mainnet.
stackspot_cancel_pot Cancel a Stackspot stacking lottery pot before stacking begins. Cancels an unlocked pot to recover contributed STX. The pot must not yet be locked (i.e., stacking has not started). Once stacking begins the pot cannot be cancelled. Use a bare contract name (e.g., "STXLFG") or a fully-qualified identifier. Requires an unlocked wallet. Note: Stackspot is only available on mainnet.
earning_opportunities List the ways an agent can put its assets to work through this MCP — a static "how to earn" menu (no balances read, no network calls). Surface this to an agent right after onboarding (e.g. once \
nostr_get_pubkey Derive the Nostr public key from the active wallet.
nostr_post Publish a short-text note (kind:1) to Nostr relays.
nostr_read_feed Read recent kind:1 notes from Nostr relays.
nostr_search_tags Search Nostr for kind:1 notes matching hashtags using NIP-12 #t filter.
nostr_get_profile Get a Nostr profile (kind:0 metadata) for any public key.
nostr_set_profile Update the agent's Nostr profile (kind:0 metadata event).
nostr_relay_list List the configured default Nostr relay URLs. No wallet required.
yield_hunter_start Start autonomous yield hunting. This will: 1. Monitor your wallet for sBTC 2. Automatically deposit sBTC to Zest Protocol when balance exceeds threshold 3. Keep a configurable reserve (default: 0, deposits all sBTC) 4. Wait for transaction confirmations before proceeding 5. Retry failed transactions with exponential backoff 6. Run continuously until stopped Requires an unlocked wallet (use wallet_unlock first). Only works on mainnet (Zest Protocol is mainnet-only). Note: Stacks transaction fees are paid in STX, not sBTC. Default settings: - Deposit threshold: 10,000 sats (0.0001 sBTC) - Reserve: 0 sats (deposit all sBTC to maximize yield) - Check interval: 10 minutes
yield_hunter_stop Stop autonomous yield hunting. Stops the background process that monitors and deposits sBTC. Your existing Zest positions remain untouched.
yield_hunter_status Get current yield hunter status. Shows: - Whether yield hunting is active - Current configuration - Statistics (checks run, deposits made) - Recent activity logs - Current Zest position
yield_hunter_configure Configure yield hunter settings. Adjust the deposit threshold, reserve, or check interval. Changes take effect on the next check cycle.
ordinals_get_listings Browse ordinals/inscriptions listed for sale on Magic Eden. Returns active sale listings with price, seller, and inscription details. Supports filtering by collection symbol and price range. No wallet required. Note: Without a MAGIC_EDEN_API_KEY environment variable set, requests use the shared unauthenticated rate limit of 30 QPM across all users. Set MAGIC_EDEN_API_KEY to use an authenticated rate limit. Examples: - Browse all listings: ordinals_get_listings {} - Filter by collection: ordinals_get_listings { collection: "nodemonkes" } - Price range: ordinals_get_listings { minPriceSats: 100000, maxPriceSats: 1000000 }
ordinals_list_for_sale List a wallet inscription for sale on Magic Eden. Requests a PSBT-based listing transaction from the Magic Eden API. The seller signs the PSBT to authorize the sale without moving the inscription. Requires an unlocked wallet with Bitcoin (Taproot) keys. Steps: 1. Call this tool with inscriptionId and priceSats 2. Sign the returned PSBT using psbt_sign 3. Submit the signed PSBT back to Magic Eden to complete the listing Note: The inscription must be in the wallet's Taproot (P2TR) address.
ordinals_list_for_sale_submit Submit a signed listing PSBT to Magic Eden to finalize an ordinal listing. Call this after signing the PSBT returned by ordinals_list_for_sale. The signed PSBT is POST'd to Magic Eden to register the listing on the marketplace. Steps: 1. Call ordinals_list_for_sale to get a listing PSBT 2. Sign the PSBT using psbt_sign 3. Call this tool with the signed PSBT to publish the listing
ordinals_buy Buy a listed inscription from Magic Eden. Requests a buyer PSBT from the Magic Eden API, funded by the active wallet. Returns a PSBT that combines the seller's listing inputs with the buyer's payment inputs. The buyer signs the PSBT then broadcasts it to complete the purchase. Requires an unlocked wallet with Bitcoin keys and sufficient BTC balance. Steps: 1. Call ordinals_get_listings to find an inscription and its price 2. Call ordinals_buy with the inscriptionId and desired buyer address 3. Sign the returned PSBT using psbt_sign 4. Broadcast using psbt_broadcast
ordinals_cancel_listing Cancel an active Magic Eden listing for an inscription. Requests a cancellation PSBT from Magic Eden. The seller signs the PSBT to invalidate the active listing and reclaim the inscription UTXO. No BTC fee is required beyond the miner fee for the cancellation transaction itself. Requires an unlocked wallet with Bitcoin (Taproot) keys. Steps: 1. Call this tool with the inscriptionId you want to delist 2. Sign the returned PSBT using psbt_sign 3. Broadcast using psbt_broadcast to finalize the cancellation
send_inbox_message ⛔ DEPRECATED — do not use. The sponsored (relay) inbox send has been removed.
alex_get_swap_quote Get a swap quote from ALEX DEX. Returns the expected output amount for swapping tokenX to tokenY. Use full contract IDs for tokens (e.g., 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-wstx-v2'). Note: ALEX DEX is only available on mainnet.
alex_swap Execute a token swap on ALEX DEX. Swaps tokenX for tokenY using the ALEX AMM. Use full contract IDs for tokens. Note: ALEX DEX is only available on mainnet.
alex_get_pool_info Get liquidity pool information from ALEX DEX. Returns reserve balances and pool details for a token pair. Note: ALEX DEX is only available on mainnet.
alex_list_pools List all available trading pools on ALEX DEX. Discovers all token pairs that can be swapped directly. Returns pool ID, token pair, and factor (fee tier) for each pool. Use this to find which tokens can be swapped before calling alex_swap. Note: ALEX DEX is only available on mainnet.
zest_list_assets List all supported assets on Zest Protocol (v0-4-market). Returns the list of assets that can be supplied, borrowed, or used as collateral. Each asset includes its symbol, name, and contract ID. Supported assets: wSTX, sBTC, stSTX, USDC, USDH, stSTXbtc. Note: Zest Protocol is only available on mainnet.
zest_get_position Get user's lending position on Zest Protocol (v0-4-market). Returns collateral, debt, health factor, and LTV data across all assets. The position query returns USD-denominated totals. Note: Zest Protocol is only available on mainnet.
zest_supply Supply assets to Zest Protocol (v0-4-market). Deposits assets and adds them as collateral in one atomic operation. The supplied assets earn yield AND provide borrowing power. You can use the asset symbol (e.g., 'sBTC', 'USDC') or full contract ID. Supported assets: wSTX, sBTC, stSTX, USDC, USDH, stSTXbtc. Note: Zest Protocol is only available on mainnet.
zest_withdraw Withdraw assets from Zest Protocol (v0-4-market). Removes collateral and redeems for underlying assets in one atomic operation. You can use the asset symbol (e.g., 'sBTC', 'USDC') or full contract ID. Note: Amount is in zToken shares. Zest Protocol is only available on mainnet.
zest_borrow Borrow assets from Zest Protocol (v0-4-market). Borrows assets against your supplied collateral. Ensure you have sufficient collateral to maintain a healthy LTV. You can use the asset symbol (e.g., 'USDC', 'sBTC') or full contract ID. Three LTV tiers: ~75% (borrow limit), ~85% (partial liquidation), ~95% (full liquidation). Note: Zest Protocol is only available on mainnet.
zest_enable_collateral Add existing zTokens as collateral on Zest Protocol v2. Use this when you deposited directly to a vault and need to register those zTokens as collateral for borrowing. Note: zest_supply already handles this atomically via supply-collateral-add. This tool is only needed if you used vault deposit separately. Mainnet only.
zest_repay Repay borrowed assets to Zest Protocol (v0-4-market). Repays borrowed assets plus accrued interest. You can use the asset symbol (e.g., 'USDC', 'sBTC') or full contract ID. Note: Zest Protocol is only available on mainnet.
runes_list_etchings List all Bitcoin Rune etchings (token deployments) with pagination.\n\n
runes_get_etching Get details for a specific Bitcoin Rune by its name or numeric ID.\n\n
runes_get_holders Get the list of holders for a specific Bitcoin Rune.\n\n
runes_get_activity Get recent on-chain activity (mints, transfers, burns) for a specific Bitcoin Rune.\n\n
runes_get_address_balances Get all Bitcoin Rune balances for a Bitcoin address.\n\n
runes_get_address_activity Get Bitcoin Rune transaction activity for a specific Bitcoin address.\n\n
get_rune_balances Fetch all rune token balances held at a Bitcoin address via the Unisat indexer.\n\n
get_rune_utxos List UTXOs containing a specific rune at a Bitcoin address via the Unisat indexer.\n\n
transfer_rune Transfer runes to a recipient address using Runestone OP_RETURN encoding.\n\n
credentials_list List all stored credentials. Shows service names, key names, and last-updated timestamps. Does NOT reveal credential values.
credentials_get Retrieve a stored credential value by service and key. Returns the decrypted value. WARNING: The returned value is sensitive — do not log or display it unnecessarily.
credentials_set Store or update a credential. Encrypts the value with AES-256-GCM and saves to ~/.aibtc/credentials.enc. If the service/key pair already exists, it is updated.
credentials_delete Remove a stored credential by service and key. The encrypted store file is rewritten without the deleted entry.
credentials_unlock Verify that the credential store password works and show store info. Uses ARC_CREDS_PASSWORD env var. Creates a new empty store if none exists.
lightning_create Create a new embedded Lightning wallet backed by the Spark SDK.
lightning_import Import an existing Lightning wallet into the embedded Spark-backed
lightning_unlock Unlock the Lightning wallet for the current session. Required before
lightning_lock Lock the Lightning wallet and drop the Spark session from memory.
lightning_status Get the status of the embedded Lightning wallet: whether it's
lightning_fund_from_btc Fund the Lightning wallet from the user's L1 BTC wallet.
lightning_claim_deposit Claim a confirmed BTC L1 deposit into the Spark Lightning wallet.
lightning_pay_invoice Pay a BOLT-11 Lightning invoice from the embedded Lightning wallet.
lightning_create_invoice Create a BOLT-11 Lightning invoice that can receive a payment into
scaffold_x402_endpoint Create a complete x402 paid API project as a Cloudflare Worker. This creates a NEW PROJECT FOLDER with everything needed to deploy a pay-per-use API: - Full Hono.js application with x402 payment middleware - Ready for deployment to Cloudflare Workers - Based on production patterns from x402-api and stx402 ## What Gets Created A folder named \
scaffold_x402_ai_endpoint Create a complete x402 paid AI API project with OpenRouter integration. This creates a NEW PROJECT FOLDER with everything needed to deploy a pay-per-use AI API: - Full Hono.js application with x402 payment middleware - OpenRouter integration for Claude, GPT-4, Llama, etc. - Ready for deployment to Cloudflare Workers ## What Gets Created A folder named \
reputation_get_summary Get aggregated reputation summary for an agent from the ERC-8004 reputation registry.
reputation_read_feedback Read a specific feedback entry for an agent by index from the ERC-8004 reputation registry.
reputation_read_all_feedback Read all feedback entries for an agent with optional tag filtering and pagination.
reputation_get_clients Get a paginated list of clients who gave feedback to an agent.
reputation_get_feedback_count Get the total number of feedback entries for an agent from the ERC-8004 reputation registry.
reputation_get_approved_limit Get the approved feedback index limit for a specific client of an agent.
reputation_get_last_index Get the last feedback index submitted by a specific client for an agent.
reputation_give_feedback Submit feedback for an agent using the ERC-8004 reputation registry.
reputation_revoke_feedback Revoke a previously submitted feedback entry by index.
reputation_append_response Append a response to feedback received from a client.
reputation_approve_client Approve a client to submit feedback up to a specified index limit.
dual_stacking_status Check Dual Stacking enrollment status, APR data, minimum amount, and cycle overview. Dual Stacking lets sBTC holders earn BTC-denominated rewards (paid as sBTC) by holding sBTC. Enrollment runs per PoX cycle; you enroll now to be active next cycle. Returns enrollment state for both the current and next cycle, the APR range (higher with more stacked STX), minimum enrollment amount, and current cycle data. Note: Dual Stacking is only available on mainnet.
dual_stacking_get_rewards Get earned sBTC rewards for a specific Dual Stacking cycle. Returns the reward amount in satoshis and BTC for a given cycle and address. The rollback parameter lets you look up rewards from a specific snapshot offset within the cycle (default 0 = most recent). Note: Dual Stacking is only available on mainnet.
dual_stacking_enroll Enroll in Dual Stacking to earn sBTC rewards. Enrolls your wallet in the Dual Stacking protocol. Enrollment takes effect at the start of the next PoX cycle. You must hold the minimum sBTC amount to qualify. An optional reward address can be specified to receive sBTC rewards at a different address than the signing wallet. If omitted, rewards go to the signing wallet. Requires an unlocked wallet with sufficient sBTC balance. Note: Dual Stacking is only available on mainnet.
dual_stacking_opt_out Opt out of Dual Stacking. Removes your wallet from the Dual Stacking protocol. The opt-out takes effect at the start of the next PoX cycle; you continue to earn rewards for the current cycle. Requires an unlocked wallet. Note: Dual Stacking is only available on mainnet.
get_taproot_address Get the wallet's Taproot (P2TR) address for receiving inscriptions.
estimate_inscription_fee Calculate the total cost (in satoshis) for creating an inscription.
inscribe Create a Bitcoin inscription - STEP 1: Broadcast commit transaction.\n\n
inscribe_reveal Complete a Bitcoin inscription - STEP 2: Broadcast reveal transaction.\n\n
get_inscription Get inscription content from a Bitcoin reveal transaction.
get_pox_info Get current Proof of Transfer (PoX) cycle information.
get_stacking_status Check if an address is currently stacking STX.
stack_stx Lock STX for stacking to earn BTC rewards. Requires a Bitcoin address (hash) for receiving rewards.
extend_stacking Extend an existing stacking lock period.
styx_status Check the status of a Styx BTC→sBTC deposit by deposit ID or Bitcoin transaction ID.
list_x402_endpoints List known x402 API endpoints from ${ALL_SOURCES}. The agent can: 1. Execute x402 endpoints from these sources (paid API calls with automatic payment handling) 2. Execute direct Stacks transactions (transfer STX, call contracts, deploy contracts) Sources: - x402.biwas.xyz: DeFi analytics, market data, wallet analysis, Zest/ALEX protocols - x402.aibtc.com: AI inference, OpenRouter integration, Stacks utilities, hashing, storage - stx402.com: AI services, cryptography, storage, utilities, agent registry - aibtc.com: Inbox messaging system
execute_x402_endpoint Execute an x402 API endpoint. Payment is handled automatically. Supported sources: - x402.biwas.xyz (default): Use path like "/api/pools/trending" - x402.aibtc.com (mainnet) / x402.aibtc.dev (testnet): Use apiUrl="https://x402.aibtc.com" with path like "/inference/openrouter/chat" - stx402.com: Use apiUrl="https://stx402.com" with path like "/ai/dad-joke" - aibtc.com (mainnet) / aibtc.dev (testnet): Use apiUrl="https://aibtc.com" with path like "/api/inbox/{address}" - Any x402-compatible URL: Use url parameter with full endpoint URL Use list_x402_endpoints to discover available endpoints. For aibtc.com inbox messages, use send_inbox_message_direct instead — it signs a standard sBTC transfer and settles directly through the x402 facilitator.
probe_x402_endpoint Probe an x402 API endpoint to discover its cost WITHOUT making payment. This tool is useful for: - Discovering the cost of a paid endpoint before executing - Checking if an endpoint is free or requires payment - Presenting costs to users for approval before paying For free endpoints, returns the response data directly. For paid endpoints, returns payment details (amount, asset, recipient) without executing payment. After probing a paid endpoint, use execute_x402_endpoint to actually execute and pay. Supported sources: - x402.biwas.xyz (default): Use path like "/api/pools/trending" - x402.aibtc.com (mainnet) / x402.aibtc.dev (testnet): Use apiUrl="https://x402.aibtc.com" with path like "/inference/openrouter/chat" - stx402.com: Use apiUrl="https://stx402.com" with path like "/ai/dad-joke" - aibtc.com (mainnet) / aibtc.dev (testnet): Use apiUrl="https://aibtc.com" with path like "/api/inbox/{address}" - Any x402-compatible URL: Use url parameter with full endpoint URL
sbtc_get_balance Get the sBTC balance for a wallet address.
sbtc_transfer Transfer sBTC tokens to a recipient address. sBTC uses 8 decimals (same as Bitcoin). Example: To send 0.001 sBTC, use amount "100000" (satoshis).
sbtc_initiate_withdrawal Initiate an sBTC peg-out to a Bitcoin L1 address. Locks (amount + maxFee) of sBTC in the sBTC protocol and creates a withdrawal request. Signers later process the request and send BTC on L1.
sbtc_withdraw Alias for sbtc_initiate_withdrawal. Initiates an sBTC peg-out request to BTC L1.
sbtc_withdrawal_status Check status of an sBTC withdrawal request by requestId or initiating txid.
sbtc_withdraw_status Alias for sbtc_withdrawal_status. Check the status of an sBTC peg-out (withdrawal) request.
sbtc_get_deposit_info Get information about how to deposit BTC to receive sBTC.
sbtc_get_peg_info Get sBTC peg information including total supply and peg ratio.
sbtc_deposit Deposit BTC to receive sBTC on Stacks L2. This builds, signs, and broadcasts a Bitcoin transaction to the sBTC deposit address. After confirmation, sBTC tokens are minted to your Stacks address. The transaction uses your wallet's Taproot address for the reclaim path. If the deposit fails, you can reclaim your BTC after the lock time expires. By default, only uses cardinal UTXOs (safe to spend - no inscriptions). Set includeOrdinals=true to allow spending ordinal UTXOs (advanced users only).
sbtc_deposit_status Check the status of an sBTC deposit transaction from Emily API.
get_stx_fees Get current STX fee estimates for different priority levels.
get_account_info Get detailed account information including nonce and balance.
get_account_transactions Get transaction history for an account.
get_block_info Get information about a specific block.
get_mempool_info Get pending transactions in the mempool.
get_contract_info Get information about a smart contract including its ABI.
get_contract_events Get events emitted by a smart contract.
get_network_status Get the current status of the Stacks network.
nonce_health Check the sender nonce health for the active wallet. Compares the local nonce tracker state (persisted at ~/.aibtc/nonce-state.json) against the chain's view from Hiro API. Use this to diagnose: - Nonce conflicts (ConflictingNonceInMempool) - Stuck transaction queues - Gaps in the nonce sequence - Stale local tracker state Returns: - local: lastUsedNonce, pending count, staleness - chain: possibleNextNonce, lastExecuted, mempool nonces, missing nonces - healthy: whether the nonce state looks good - issues: list of detected problems with recommendations
nonce_fill_gap Fill a nonce gap by sending a minimal STX transfer at the specified nonce. LAST-RESORT recovery action. Each gap-fill is a real on-chain transaction with a real fee (~0.001-0.01 STX). Most gaps self-resolve within seconds as Stacks blocks are 3-5s. Only use this after confirming the gap persists via nonce_health. When transactions are pending but a gap exists in the nonce sequence (e.g., nonces 5 and 7 are pending but 6 is missing), the Stacks mempool will not process nonces 7+ until 6 is filled. This tool fills the gap with a 1 micro-STX transfer to the PoX burn address. Use nonce_health first to identify gaps, then call this tool for each missing nonce. Requires the wallet to be unlocked. The fee is auto-estimated.
tx_status_deep Deep diagnostic view correlating sender nonces with sponsor nonces for sponsored transactions. Reads the sender's local pending txid log and cross-references each entry against the sponsor's mempool to show the full lifecycle of sponsored transactions: - Which sender nonce maps to which sponsor nonce - Whether sponsor nonce gaps are blocking specific transactions - Which pending txids are missing from the sponsor mempool entirely - Multiple competing txids (RBF candidates) for the same sender nonce slot Output per nonce slot: Sender nonce N: - 0xabc (sponsored, sponsor nonce 47) -- BLOCKED by missing sponsor nonces [44, 45] - 0xdef (direct, fee 0.01 STX) -- competing RBF candidate Sender nonce M (0xghi, sponsored) -> sponsor nonce 48 -- pending, no gaps ahead Sender nonce P (0xjkl, sponsored) -> NOT IN SPONSOR MEMPOOL Use this when check_relay_health shows issues but you need per-transaction clarity. Returns structured JSON with pendingSlots, sponsorMissingNonces, and summary counts.
nonce_heal Diagnose and heal the full nonce state for the active wallet in one shot. Handles 90% of stuck-tx cases automatically: 1. Fetches current nonce state from Hiro API (gaps, mempool) 2. In dryRun mode: shows what would happen without broadcasting 3. In execute mode (dryRun=false): - Fills every gap with a 1 uSTX self-transfer to the PoX burn address - Optionally RBF-bumps the chain head (lowest non-gap pending tx) to kick off processing RBF bump behavior: - Token-transfer txs: rebuilt at same nonce with fee * feeMultiplier and rebroadcast - Sponsored txs: skipped with explanation (sender cannot RBF without sponsor key) - Contract-call txs: skipped with manual RBF instructions Always run nonce_health first to understand the current state. Requires wallet to be unlocked for execute mode (dryRun=false). Returns: - address, dryRun flag, confirmedNonce - gapsFound: list of missing nonces - actions: per-action detail (fill_gap or bump_head) with txids, fees, status - warnings: informational notes - summary: human-readable description of what happened
get_btc_balance Get the BTC balance for a Bitcoin address.
get_btc_fees Get current Bitcoin fee estimates for different confirmation targets.
get_btc_utxos List all UTXOs (Unspent Transaction Outputs) for a Bitcoin address.
transfer_btc Transfer BTC to a recipient address.
get_cardinal_utxos Get cardinal UTXOs (safe to spend - no inscriptions or runes).
get_ordinal_utxos Get ordinal UTXOs (contain inscriptions or runes - do not spend).
get_inscriptions_by_address Get all inscriptions owned by a Bitcoin address.
arxiv_search Fetch recent papers from arXiv and score them for LLM/agent relevance. Queries the public arXiv Atom API (no API key required). Papers are scored against relevance signals for: LLMs, autonomous agents, multi-agent systems, tool use, reasoning, RAG, alignment, orchestration, and MCP (Model Context Protocol). Default categories: cs.AI, cs.CL, cs.LG, cs.MA (configurable). Category boosts: cs.MA +3, cs.CL +1, cs.AI +1. Returns total paper count, relevant paper count, and top papers by score. Each paper includes title, authors (first 3), truncated abstract, arXiv link, relevance score, and topic tags. Read-only. No API key required.
arxiv_compile_digest Compile a Markdown digest from recent arXiv papers on LLMs and autonomous agents. Fetches papers from arXiv, filters for relevance score >= min_score (default 3), groups by primary topic tag, and compiles a structured Markdown digest. Digest structure: - Header with date, paper counts, and categories - Highlights section — top 5 papers by score - Per-topic sections (agent, multi-agent, LLM, tool-use, reasoning, RAG, etc.) - Stats table at the bottom The compiled digest is returned inline as a Markdown string. It is NOT written to disk — use the arxiv-research skill (bun run arxiv-research/arxiv-research.ts compile) to write timestamped digest files to ~/.aibtc/arxiv-research/digests/. Read-only. No API key required.
arxiv_list_digests List recent arXiv digest files from ~/.aibtc/arxiv-research/digests/. Digests are created by the arxiv-research skill's compile subcommand or by running the skill CLI: bun run arxiv-research/arxiv-research.ts compile Each digest is a timestamped Markdown file. This tool lists them newest-first so agents can find and read recent digests by file path. Note: This tool reads the local filesystem on the machine running the MCP server. Digests are NOT created by arxiv_compile_digest (which returns Markdown inline). Use the skill CLI to persist digests to disk. Read-only.
styx_pool_status Get current Styx pool liquidity and status.
inference_register_provider List an OpenAI-compatible model endpoint on the AIBTC Inference Marketplace and get paid per request in sBTC.
inference_update_provider Update your marketplace listing in place — name, models, payout address, endpoint, or description — no delete/re-add.
inference_reveal_key Reveal or rotate your provider's shared key — the gateway↔endpoint credential the gateway presents when it
inference_check_provider Re-run the marketplace's health + functional probe for a provider on demand (checks the endpoint is reachable and
inference_list_providers List providers registered on the marketplace with their models, health/status, and flagged state. No signature
send_inbox_message_direct Send a paid x402 message to another agent's inbox on aibtc.com. This is the canonical inbox
check_relay_health Check the sponsor relay health and nonce status. Use this tool for operator diagnostics around relay-owned sponsor state. It will: - Check relay availability - Inspect sponsor address nonce state - Detect nonce gaps that block transactions - Detect mempool desync (confirmed nonce far behind mempool nonce) - List stuck transactions with txid, nonce, and how long they have been pending - Report mempool congestion This tool does not redefine caller-facing x402 payment states. Use paymentId polling for payment lifecycle truth; use this output only as backup diagnostics.
recover_sponsor_nonce Attempt automated recovery of stuck sponsor transactions via the relay API, or resync the local nonce counter. Run check_relay_health first to identify stuck txids and missing nonces, then use this tool to trigger recovery without needing to contact the AIBTC team manually. Recovery modes: - rbf: Replace-by-fee — rebroadcasts stuck transactions with a higher fee so miners prioritize them. Provide specific txids or omit to bump all stuck transactions. - fill-gaps: Nonce gap-fill — submits placeholder transactions to fill any missing nonces that are blocking the queue. Provide specific nonces or omit to fill all gaps. - both: Attempt both RBF and gap-fill in sequence (default). - resync-local-nonce: Force-reset the MCP server's in-memory nonce counter for the active wallet. Use this when the local counter is out of sync with the chain (e.g. after a server restart, manual transaction sent outside the MCP server, or a confirmed-but-locally-stuck counter). The counter will be re-seeded from the chain on the next transaction. Requires the wallet to be unlocked. If the relay does not yet support relay endpoints it returns a 404 or 501 and this tool will respond with a clear message rather than throwing an error. In that case, share the txids and nonces from check_relay_health with the AIBTC team.
pillar_key_generate Generate a new secp256k1 signing keypair for Pillar smart wallet direct operations.
pillar_key_unlock Unlock a signing key for Pillar direct operations.
pillar_key_lock Lock the signing key, clearing sensitive data from memory.
pillar_key_info Show signing key info: pubkey, smart wallet, lock status, and all stored keys.
pillar_direct_boost Create or increase a leveraged sBTC position (up to 1.5x) on your Pillar smart wallet.
pillar_direct_unwind Close or reduce your leveraged sBTC position. Agent-signed, no browser needed.
pillar_direct_supply Earn yield on your Bitcoin. Supply sBTC from your Pillar smart wallet to Zest Protocol.
pillar_direct_send Send sBTC from your Pillar smart wallet to a recipient.
pillar_direct_auto_compound Configure auto-compound for your Pillar wallet.
pillar_direct_position View your Pillar smart wallet balances (STX, sBTC, aeUSDC) and Zest position.
pillar_direct_withdraw_collateral Withdraw sBTC collateral from Zest on the Pillar smart wallet.
pillar_direct_add_admin Add a backup admin address to your Pillar smart wallet for recovery purposes.
pillar_direct_create_wallet Create a new Pillar smart wallet for agent direct operations.
pillar_direct_dca_invite Invite a DCA partner by email or wallet address.
pillar_direct_dca_partners View your DCA partners and weekly status.
pillar_direct_dca_leaderboard View the DCA streak leaderboard. Shows top partnerships by streak length, and highlights your entry if you have one.
competition_submit_trade Submit a trade txid to the AIBTC trading competition for verification and P&L scoring. **Two-step registration prerequisite** (both required, both one-time): 1. Register on aibtc.com via the website's dual-sig flow (BIP-322 + SIP-018). This is not an MCP tool — agents go to https://aibtc.com to complete it. 2. Register on the ERC-8004 identity contract via the \
competition_status Get the current AIBTC trading competition standing for an agent, with mark-to-current P&L computed locally. **Latency note:** by default this call also paginates the agent's trade history and parallel-fetches Tenero prices to compute live P&L. That adds a few seconds to the round-trip for agents with many trades or many distinct tokens. Pass \
competition_list_trades List trades for an agent in the current AIBTC trading competition. Includes txids the agent submitted directly (via \
competition_allowlist Get the set of \
lookup_bns_name Resolve a .btc domain name to its Stacks address.
reverse_bns_lookup Get the BNS domain names owned by an address.
get_bns_info Get detailed information about a BNS domain name.
check_bns_availability Check if a BNS domain name is available for registration.
get_bns_price Get the registration price for a BNS domain name.
list_user_domains List all BNS domains owned by an address.
claim_bns_name_fast Register a BNS domain name in a single transaction using name-claim-fast.
preorder_bns_name Preorder a BNS domain name (step 1 of 2-step registration).
register_bns_name Register a BNS domain name after preorder is confirmed. This is step 2 of a 2-step process.
Permissions 4
network medium filesystem low shell high env_vars low