MCP · bitcoin + ethereum / mainnet
Ask the ledger.
Statechange ships an MCP server, so the ledger is queryable in plain language by any AI assistant — Claude Code, Claude Desktop, or your own agents. This console is one of those clients. Every answer below is produced by the same six read-only tools, across both indexed chains, and shows you the calls it made.
Questions this ledger can answer. Pick one, or write your own.
Answers are grounded in tool results only — no figure comes from the model's own recollection. Each one carries its verification standing: whether the balance is merely committed with invariants passed, or additionally reconciled against the node's own commitment — Bitcoin Core's UTXO-set commitment on Bitcoin, eth_getProof-attested anchor baselines on Ethereum.
Six tools, and the stamps that come with them.
The MCP server is a thin protocol adapter over the read-only query API — no logic is duplicated, and every result is the API's JSON verbatim. Its real content is the tool descriptions, which teach a connecting agent what the verification stamps mean and when to reach for which tool.
balanceWhat does this address hold, now or at any height?
Summed from deltas, broken down by dimension (liquid, immature). Takes an asset, so ERC-20 balances come from the same tool as native ones.
proof_of_balanceProve it.
Every delta whose sum IS the balance, each with provenance to the causing transaction or protocol rule.
depositsWhat came into this deposit address?
Gross incoming flows over a height range — a same-block sweep does not net them away.
unspent_outputsWhat UTXOs does it hold right now?
txid, vout, value, height, and whether each output is liquid or immature. Bitcoin only — there is no UTXO set on Ethereum.
coverageHow live and how proven is the ledger?
Balanced and reconciled watermarks with block hashes, delta counts, open taints, suspense residual. Per chain.
open_exceptionsAnything you're not sure about?
Open investigations with the agent's diagnosis, plus recently healed history ranges and why they were revised.
Point your own agent at it — project-scoped registration, one entry:
{
"mcpServers": {
"statechange": {
"command": "node",
"args": ["indexer/dist/src/mcp/server.js"],
"env": { "STATECHANGE_API_URL": "http://127.0.0.1:8787" }
}
}
}Want this pointed at your own reconciliation?
We are working with a first cohort of custody and exchange teams on Bitcoin, Ethereum, Solana, Tron, and Cosmos.