Skip to main content
QBTC exposes two HTTP surfaces a developer will use:
  • 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/stats and /stats/supply for numbers. The /stats/overview script_type_counts are inconsistent mid-scan (it can report P2PK: 24), and utxo_count overcounts. Treat overview counts as order-of-magnitude only.
  • reused_sat for P2PK is negative — a known aggregation bug. The count, reused_count, and total_sat fields are sound.
  • count is an address/script count, not a UTXO count. A reused script maps to multiple UTXOs, so the P2PK UTXO count is ≥ the reported count.
  • 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_block age, 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 custom x/qbtc parameters are not served by the public gateway. The canonical values live in constants/constants.go:

See also

Last modified on June 23, 2026