- The Bitcoin risk indexer (
https://api.qbtc.net) — indexes the real Bitcoin UTXO set (the claimable universe). Its data is valid for mainnet planning today. - The QBTC chain — standard Cosmos SDK REST/gRPC. The hosted gateway below points at the current public testnet and will change when mainnet relaunches.
Testnet vs. mainnet. The Bitcoin indexer reflects real Bitcoin and is stable. The chain endpoints are a private testnet (chain ID
qbtc, started 2026-03-14): the host, chain ID, and on-chain state (currently ~150 QBTC supply, empty Reserve) all change at mainnet relaunch. Treat chain endpoints as illustrative, not durable.Bitcoin risk indexer — https://api.qbtc.net
A FastAPI service that indexes Bitcoin’s UTXO set and classifies it by script type and address reuse. The SPA at indexer.qbtc.net is a viewer over this API. The full machine-readable spec is at /openapi.json.
Example: the vulnerable-set breakdown
P2PK outputs put the public key permanently on-chain, so the whole cohort (~217k scripts, ~1.70M BTC) is quantum-exposed. Reused P2PKH / P2WPKH addresses (where the public key has been revealed by a prior spend) add several million BTC more. See The Quantum Threat and Quantum Risk Assessment for how these map to QBTC’s claim and governance-reclamation paths.
Example: a UTXO record
Data-quality notes
- Use
/address/statsand/stats/supplyfor numbers. The/stats/overviewscript_type_countsare inconsistent mid-scan (it can reportP2PK: 24), andutxo_countovercounts. Treat overview counts as order-of-magnitude only. reused_satfor P2PK is negative — a known aggregation bug. Thecount,reused_count, andtotal_satfields are sound.countis an address/script count, not a UTXO count. A reused script maps to multiple UTXOs, so the P2PK UTXO count is ≥ the reportedcount.- There is no dormant / age-filter endpoint. The “>17-year exposed-key” selection that feeds a governance reclamation proposal is an off-chain query over
script_pub_type+created_blockage, not an API call.
QBTC chain access
For production integrations, run your own node and query its local Cosmos SDK REST (:1317) and gRPC (:9090) — see Running a Node. Your node’s chain ID is whatever the genesis declares (currently qbtc).
For quick reads against the current public testnet without standing up a node, a hosted Cosmos REST gateway is available:
Routing quirk: only standard Cosmos REST is proxied
The gateway forwards standard Cosmos SDK module queries under/cosmos/... and nothing else:
CometBFT RPC methods and the custom
x/qbtc module routes are not exposed through this gateway. To read them, query your own node directly, or read the constants from source (next section).
Example: chain tip and supply
Chain parameters (read from source)
The customx/qbtc parameters are not served by the public gateway. The canonical values live in constants/constants.go:
See also
- Architecture, how the chain and indexer fit together.
- Claim Mechanism, the claim message and proof flow.
- Running a Node, to expose your own REST/gRPC.
- Chain repository, the source of truth.