{"serverId":"mcp-registry/ai.firmbrain/x402-services","tools":[{"name":"board_get","fixed":{"name":"board_get","description":"Shared blackboard: read one key or list all keys+entries. Send { board, token, key? }. [x402 paid tool — price $0.003; POST /api/board/get]","inputSchema":{"type":"object","required":["board","token"],"properties":{"key":{"type":"string","description":"Key to read; omit to list all"},"board":{"type":"string","description":"Board name"},"token":{"type":"string","description":"Your secret token"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":121,"tokensAfter":121},{"name":"board_set","fixed":{"name":"board_set","description":"Shared blackboard: set a versioned key on a multi-writer board. Send { board, token, key, value }. [x402 paid tool — price $0.003; POST /api/board/set]","inputSchema":{"type":"object","required":["board","token","key","value"],"properties":{"key":{"type":"string","description":"Entry key"},"board":{"type":"string","description":"Board name"},"token":{"type":"string","description":"Your secret token"},"value":{"type":"array","description":"JSON value"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"catalysts_search","fixed":{"name":"catalysts_search","description":"Find protocols that have tracked token-unlock schedules, by name substring. Send { query }. Use the returned slug with catalysts/unlocks. [x402 paid tool — price $0.005; POST /api/catalysts/search]","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max results, default 20 (max 100)"},"query":{"type":"string","description":"Name substring, e.g. \"arb\""}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"counter","fixed":{"name":"counter","description":"Atomic counter: increment-and-return a named counter (collision-free running totals & IDs across agent runs). Send { name, token, by? }. [x402 paid tool — price $0.003; POST /api/counter]","inputSchema":{"type":"object","required":["name","token"],"properties":{"by":{"type":"number","description":"Increment amount, default 1"},"name":{"type":"string","description":"Counter name (1-128 chars)"},"token":{"type":"string","description":"Your secret token (claims the counter)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":143,"tokensAfter":143},{"name":"cron_explain","fixed":{"name":"cron_explain","description":"Explain a cron expression: the next N run times in a timezone. Send { expression, count?, timezone? }. [x402 paid tool — price $0.003; POST /api/cron/explain]","inputSchema":{"type":"object","required":["expression"],"properties":{"count":{"type":"number","description":"How many next runs, default 5"},"timezone":{"type":"string","description":"IANA tz"},"expression":{"type":"string","description":"5-field cron expression"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"crypto_convert","fixed":{"name":"crypto_convert","description":"Convert an amount between any two crypto/fiat assets at live rates. Send { amount, from, to }, e.g. convert 1.5 ETH to USDC. Instant FX for agents pricing on-chain actions. [x402 paid tool — price $0.003; POST /api/crypto/convert]","inputSchema":{"type":"object","required":["amount","from","to"],"properties":{"to":{"type":"string","description":"Target ticker, e.g. USDC"},"from":{"type":"string","description":"Source ticker, e.g. ETH"},"amount":{"type":"number","description":"Amount of the 'from' asset"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":154,"tokensAfter":154},{"name":"deadman_ping","fixed":{"name":"deadman_ping","description":"Dead-man's switch: heartbeat to keep the switch from firing. Send { id, token }. [x402 paid tool — price $0.003; POST /api/deadman/ping]","inputSchema":{"type":"object","required":["id","token"],"properties":{"id":{"type":"string","description":"Switch id"},"token":{"type":"string","description":"Your secret token"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100},{"name":"escrow_create","fixed":{"name":"escrow_create","description":"Create an agent-to-agent conditional-payment agreement: payer, payee, amount, release condition, deadline — returns an id both parties track. Send { token, payer, payee, amountUsdc, condition, deadline? }. Coordination + resolution layer for A2A commerce (registry, not fund custody). [x402 paid tool — price $0.05; POST /api/escrow/create]","inputSchema":{"type":"object","required":["token","payer","payee","amountUsdc","condition"],"properties":{"payee":{"type":"string","description":"0x payee address"},"payer":{"type":"string","description":"0x payer address"},"token":{"type":"string","description":"Secret (>=8 chars) authorizing later resolution"},"deadline":{"type":"string","description":"ISO deadline"},"condition":{"type":"string","description":"Plain-English release condition"},"amountUsdc":{"type":"number","description":"Amount in USDC"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":249,"tokensAfter":249},{"name":"escrow_list","fixed":{"name":"escrow_list","description":"List conditional-payment agreements for your token (yours) or a party address (involving that address). Send { token } or { party }. [x402 paid tool — price $0.005; POST /api/escrow/list]","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max results"},"party":{"type":"string","description":"0x address involved"},"token":{"type":"string","description":"Your creator secret"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"escrow_resolve","fixed":{"name":"escrow_resolve","description":"Resolve a conditional-payment agreement: the creator marks 'release' (pay payee) or 'refund' (return to payer); returns a settlement instruction to execute over x402. Send { id, token, outcome, note? }. [x402 paid tool — price $0.05; POST /api/escrow/resolve]","inputSchema":{"type":"object","required":["id","token","outcome"],"properties":{"id":{"type":"string","description":"Escrow id"},"note":{"type":"string","description":"Resolution note"},"token":{"type":"string","description":"Creator secret"},"outcome":{"type":"string","description":"release or refund"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":170,"tokensAfter":170},{"name":"escrow_status","fixed":{"name":"escrow_status","description":"Check the state of a conditional-payment agreement (pending/released/refunded/expired). Send { id }. [x402 paid tool — price $0.005; POST /api/escrow/status]","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Escrow id from escrow/create"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"exec_gas","fixed":{"name":"exec_gas","description":"Live gas prices across major chains (Base, Ethereum, Arbitrum, Optimism, Polygon, BSC) with estimated USD cost of a swap. Send { chains? }. Time and route transactions for the cheapest execution. [x402 paid tool — price $0.005; POST /api/exec/gas]","inputSchema":{"type":"object","required":[],"properties":{"chains":{"type":"array","description":"Optional array of chains; defaults to all supported"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"exec_quote","fixed":{"name":"exec_quote","description":"Best-route swap quote across DEXes (KyberSwap aggregator): expected output, USD in/out, price impact %, gas cost, and the DEXes routed through. Send { chain, tokenIn, tokenOut, amountIn } (amountIn in smallest units). Quote only — never executes. Pre-trade routing for trading agents. [x402 paid tool — price $0.05; POST /api/exec/quote]","inputSchema":{"type":"object","required":["tokenIn","tokenOut","amountIn"],"properties":{"chain":{"type":"string","description":"base (default), ethereum, arbitrum, polygon, optimism, bsc, avax"},"tokenIn":{"type":"string","description":"0x token address to sell"},"amountIn":{"type":"string","description":"Amount to sell in smallest units (wei)"},"tokenOut":{"type":"string","description":"0x token address to buy"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":222,"tokensAfter":222},{"name":"exec_sandwich","fixed":{"name":"exec_sandwich","description":"Sandwich / MEV risk score for a planned swap, from price impact and trade size, with concrete mitigations (private RPC, tighter slippage, order splitting). Send { chain, tokenIn, tokenOut, amountIn }. Trade without getting sandwiched. [x402 paid tool — price $0.05; POST /api/exec/sandwich]","inputSchema":{"type":"object","required":["tokenIn","tokenOut","amountIn"],"properties":{"chain":{"type":"string","description":"Chain, default base"},"tokenIn":{"type":"string","description":"0x token to sell"},"amountIn":{"type":"string","description":"Amount in smallest units"},"tokenOut":{"type":"string","description":"0x token to buy"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":189,"tokensAfter":189},{"name":"exec_slippage","fixed":{"name":"exec_slippage","description":"Recommended max slippage for a planned swap based on live price impact plus a buffer, with a rating. Send { chain, tokenIn, tokenOut, amountIn }. Avoid failed txns and overpaying on slippage. [x402 paid tool — price $0.005; POST /api/exec/slippage]","inputSchema":{"type":"object","required":["tokenIn","tokenOut","amountIn"],"properties":{"chain":{"type":"string","description":"Chain, default base"},"tokenIn":{"type":"string","description":"0x token to sell"},"amountIn":{"type":"string","description":"Amount in smallest units"},"tokenOut":{"type":"string","description":"0x token to buy"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"inbox_create","fixed":{"name":"inbox_create","description":"Webhook inbox: get a disposable URL that captures inbound POSTs for you to poll. Send { token }. [x402 paid tool — price $0.003; POST /api/inbox/create]","inputSchema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","description":"Your secret token (gates polling)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":94,"tokensAfter":94},{"name":"lending_health","fixed":{"name":"lending_health","description":"Aave v3 position health: health factor, collateral, debt, liquidation buffer, and a risk verdict for a wallet. Send { address, chain? }. Know your liquidation risk before it hits. [x402 paid tool — price $0.05; POST /api/lending/health]","inputSchema":{"type":"object","required":["address"],"properties":{"chain":{"type":"string","description":"base (default), ethereum, arbitrum, optimism, polygon"},"address":{"type":"string","description":"0x wallet address"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":141,"tokensAfter":141},{"name":"links_check","fixed":{"name":"links_check","description":"Batch link-liveness: check up to 50 URLs return 200 (dead-link detection). Send { urls: [..] }. [x402 paid tool — price $0.003; POST /api/links/check]","inputSchema":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","description":"Array of 1-50 URL strings"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"memory_get","fixed":{"name":"memory_get","description":"Agent Memory: read a stored value by key, or omit key to list all keys in your namespace. Send { ns, token, key? }. [x402 paid tool — price $0.003; POST /api/memory/get]","inputSchema":{"type":"object","required":["ns","token"],"properties":{"ns":{"type":"string","description":"Your namespace"},"key":{"type":"string","description":"Key to read; omit to list keys"},"token":{"type":"string","description":"Your secret token"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"memory_set","fixed":{"name":"memory_set","description":"Agent Memory: durable key-value storage that survives between agent runs. Write a JSON value (16KB max) under a key. First write to a namespace claims it with your secret token. Send { ns, token, key, value }. [x402 paid tool — price $0.003; POST /api/memory/set]","inputSchema":{"type":"object","required":["ns","token","key","value"],"properties":{"ns":{"type":"string","description":"Your namespace (1-128 chars)"},"key":{"type":"string","description":"Key to store under"},"token":{"type":"string","description":"Your secret token; set on first write, required after"},"value":{"type":"array","description":"Any JSON value, 16KB max"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":189,"tokensAfter":189},{"name":"perps_movers","fixed":{"name":"perps_movers","description":"Perp funding extremes: coins with the highest funding (crowded longs) and lowest/negative funding (crowded shorts) — squeeze and mean-reversion signals. Send { limit? }. Momentum & contrarian radar for perp traders. [x402 paid tool — price $0.005; POST /api/perps/movers]","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max per side, default 10 (max 40)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"pubsub_publish","fixed":{"name":"pubsub_publish","description":"Pub/sub: publish a message to a topic. Send { topic, token, data }. [x402 paid tool — price $0.003; POST /api/pubsub/publish]","inputSchema":{"type":"object","required":["topic","token","data"],"properties":{"data":{"type":"array","description":"Message payload"},"token":{"type":"string","description":"Your secret token"},"topic":{"type":"string","description":"Topic name"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"read","fixed":{"name":"read","description":"Fetch any public web page and return clean, LLM-ready markdown (plus title and final URL). Send { url }. We handle fetching, redirects, and noise-stripping. [x402 paid tool — price $0.003; POST /api/read]","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public http(s) URL to read"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"read_structured","fixed":{"name":"read_structured","description":"Fetch any public web page and return structured JSON: title, meta description, headings, links, text preview. Send { url }. [x402 paid tool — price $0.003; POST /api/read/structured]","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public http(s) URL to extract"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"rh_new_listings","fixed":{"name":"rh_new_listings","description":"Freshest tokens on Robinhood Chain: the newest tokenized stocks/RWAs to appear on-chain, deduped to first-seen per symbol, with age, price, liquidity, and a tokenized-equity flag. Send { limit?, equityOnly? }. First-mover asset alerts for agents that want in on new listings before the crowd. [x402 paid tool — price $0.005; POST /api/rh/new-listings]","inputSchema":{"type":"object","required":[],"properties":{"limit":{"type":"number","description":"Max listings, default 15 (max 40)"},"equityOnly":{"type":"boolean","description":"Only tokenized-stock-style symbols (default false)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"rhchain_token_transfers","fixed":{"name":"rhchain_token_transfers","description":"Robinhood Chain ERC-20 transfer history for an address: token, amount, counterparties, method, timestamps. Send { address }. [x402 paid tool — price $0.005; POST /api/rhchain/token-transfers]","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"0x address"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"schedule","fixed":{"name":"schedule","description":"Webhook Scheduler: schedule a future HTTP callback. At fireAt, we call your url with the payload. Agents' alarm clock for async work. Send { token, url, fireAt (ISO-8601), payload?, method? }. [x402 paid tool — price $0.003; POST /api/schedule]","inputSchema":{"type":"object","required":["token","url","fireAt"],"properties":{"url":{"type":"string","description":"Public http(s) callback URL"},"token":{"type":"string","description":"Your secret token (gates status reads)"},"fireAt":{"type":"string","description":"ISO-8601 time to fire (max 30 days out)"},"method":{"type":"string","description":"POST (default) or GET"},"payload":{"type":"array","description":"JSON body to POST (16KB max)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":204,"tokensAfter":204},{"name":"schedule_cron","fixed":{"name":"schedule_cron","description":"Recurring webhook: fire your URL on a cron schedule (repeats). Send { token, url, cron, payload?, method? }. [x402 paid tool — price $0.003; POST /api/schedule/cron]","inputSchema":{"type":"object","required":["token","url","cron"],"properties":{"url":{"type":"string","description":"Public callback URL"},"cron":{"type":"string","description":"5-field cron expression (UTC)"},"token":{"type":"string","description":"Your secret token"},"method":{"type":"string","description":"POST or GET"},"payload":{"type":"array","description":"JSON body to POST"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"schedule_status","fixed":{"name":"schedule_status","description":"Webhook Scheduler: check a scheduled job's status and last delivery result. Send { token, id }. [x402 paid tool — price $0.003; POST /api/schedule/status]","inputSchema":{"type":"object","required":["token","id"],"properties":{"id":{"type":"string","description":"Job id from POST /api/schedule"},"token":{"type":"string","description":"Your secret token"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"snipe_search","fixed":{"name":"snipe_search","description":"Search tokens and trading pairs across all chains by name, symbol, or address, ranked with price, liquidity, and 24h volume. Send { query, limit? }. Find the right contract fast before sniping. [x402 paid tool — price $0.005; POST /api/snipe/search]","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"number","description":"Max results, default 10 (max 30)"},"query":{"type":"string","description":"Token name, symbol, or contract address"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":143,"tokensAfter":143},{"name":"sol_rug_check","fixed":{"name":"sol_rug_check","description":"Authoritative rug/safety report for a Solana token (rugcheck.xyz): normalized risk score, whether mint & freeze authority are renounced, LP locked %, top-5 and top-10 holder concentration, named risk flags, and a plain verdict. Send { mint }. The safety gate before sniping any Solana token. [x402 paid tool — price $0.05; POST /api/sol/rug-check]","inputSchema":{"type":"object","required":["mint"],"properties":{"mint":{"type":"string","description":"Solana token mint address"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"ton_transfers","fixed":{"name":"ton_transfers","description":"Recent activity/transfers for a TON address (events + action types). Send { address, limit? }. [x402 paid tool — price $0.005; POST /api/ton/transfers]","inputSchema":{"type":"object","required":["address"],"properties":{"limit":{"type":"number","description":"Max events 1-50"},"address":{"type":"string","description":"TON address"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105}],"toolsChanged":32,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}