MCP server
Coinset runs a read-only Model Context Protocol server that lets AI agents (Claude, Cursor, and anything else that speaks MCP) query the Chia blockchain through Coinset — balances, transactions, coins, assets, offers, blocks, the mempool, fees, and live price, plus local CLVM and offer tooling.
It is read-only: no keys, no signing, no push_tx / push_offer. A single endpoint serves both
mainnet and testnet11 — you pick the network per request.
Endpoint: https://mcp.coinset.org/
Quick start
- Add the server to your MCP client config (see below).
- Reconnect / reload MCP in your client.
- Ask a question, e.g. "What's the XCH balance of
xch1…, in USD?"
Connect your client
The server speaks the Streamable HTTP MCP transport. The URL is always
https://mcp.coinset.org/.
Cursor
Create or edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):
{
"mcpServers": {
"coinset": {
"url": "https://mcp.coinset.org/"
}
}
}
Then enable / refresh coinset under Settings → MCP.
Claude Code
claude mcp add --transport http coinset https://mcp.coinset.org/
Claude Desktop
Claude Desktop currently speaks stdio, so front the URL with a remote shim in
claude_desktop_config.json:
{
"mcpServers": {
"coinset": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.coinset.org/"]
}
}
}
VS Code
Create .vscode/mcp.json:
{
"servers": {
"coinset": {
"type": "http",
"url": "https://mcp.coinset.org/"
}
}
}
Anything else that speaks MCP
Point it at the Streamable HTTP URL https://mcp.coinset.org/.
Choosing a network
One connection reaches both chains. Every chain-querying tool takes an optional network:
network: "mainnet"(the default) ornetwork: "testnet11".- If you pass a
txch1…/xch1…address, the network is inferred from its prefix. - Passing a
networkthat conflicts with an address prefix returns anetwork_mismatcherror.
Tools
Chain & blocks — get_chain_state, get_block, get_block_changes, list_reorgs
Coins — find_coins, compute_coin_id
Wallet / address — get_address_balance, list_address_assets, get_clawback_coins
Transactions — get_transaction, list_transactions, wait_for_confirmation
Assets — get_asset_info, get_asset_coins
Offers — get_offer, list_offers, decode_offer
Mempool & fees — mempool, estimate_fee
Pricing — get_price
Utilities — search, convert_address
Inspection & CLVM — inspect, clvm
Conventions:
- Addresses (
xch1…/txch1…) and0x-hex puzzle hashes are interchangeable inputs. - Amounts are in mojos (1 XCH = 1,000,000,000,000 mojos; 1 CAT = 1,000 mojos).
- List tools accept
limit,cursor, andorder. list_transactions(byaddress) merges pending mempool transactions wheninclude_pendingis true, tagging each result with itsstatus.
For the exact request/response schemas behind these tools, see the API reference.
Prompts
Pre-built prompts your client can invoke directly:
network_status— current chain state and XCH priceaddress_summary— balances, assets, recent activity, USD valuetransaction_summary— transfers, swaps, and fee for a transactionoffer_summary— what an offer gives vs. receivesblock_summary— block details and notable coins
Resources
Read-only reference material the agent can pull in:
coinset://guide/operating-rulescoinset://reference/puzzle-mod-hashescoinset://reference/conditionscoinset://reference/openapi
Example prompts
What's the current Chia chain state — peak height and mempool size?
What's the XCH balance of
xch1…? Convert it to USD.
Decode this offer and tell me what I give vs. get:
offer1…
Compare the mainnet and testnet11 peak heights right now.
What kind of coin is
0x…? Pull its puzzle and parsed conditions.
What it isn't
- A wallet. No private keys, no signing, no
push_tx/push_offer. - A full node. It queries Coinset's indexed view of the chain.
- A realtime stream. It serves snapshot data (use polling or Coinset webhooks for live events).