Bitcoin
Bitcoin reaches the Gateway as Bitcoin Core-style JSON-RPC over HTTP, covering chain, block, and transaction reads. Its native asset is BTC.
Networks and hosts
| Network | JSON-RPC Host |
|---|---|
| Mainnet | btc-jsonrpc |
| Testnet | btc-testnet-jsonrpc |
Bitcoin carries no EVM chain ID, so network identity is confirmed from the response body rather than from a chain-ID call. Copy the complete Access Point from the dashboard.
The Gateway wraps Bitcoin Core calls in a strict JSON-RPC 2.0 envelope: jsonrpc must be "2.0", method a non-empty string, and params an array or object. Clients written against a node’s own HTTP interface may need their envelope adjusted; the method names and parameters stay the same.
Provider coverage
Testnet coverage is thinner than Mainnet here, and dRPC reaches Bitcoin Mainnet only.
| Provider | Mainnet | Testnet |
|---|---|---|
| Alchemy | Yes | Yes |
| QuickNode | Yes | Yes |
| Chainstack | Yes | Yes |
| dRPC | Yes | No |
| Tenderly | No | No |
For a Bitcoin Testnet Route built on dRPC alone, add a second Provider or register the node as a manual Endpoint.
Reads without an Endpoint
Three UTXO request shapes check the shared cache first:
getblockchaininfowith parameters omitted or[];getblockhashwith a single non-negative block height;getblockwith a block hash and verbosity3.
Verbosity 3 is the only accepted form, so a request using 0, 1, or 2 continues to the Route. The two-step pattern of getblockhash followed by getblock therefore stays inside the cached set. See Endpoint-free RPC.
Verify the network
curl '<bitcoin_access_point>' \
-H 'Authorization: Bearer <app_api_key>' \
-H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"getblockchaininfo","params":[]}'chain reads main on Mainnet and is normally test on Testnet. This call can be answered from the shared cache, so confirm your own upstream through its health check and the Route state instead of treating the response as proof that the Endpoint is live.
Coverage boundary
One JSON-RPC 2.0 object per HTTP POST. Wallet methods, the transaction index, pruning depth, and mempool visibility depend entirely on how the upstream node was configured — a pruned node cannot serve historical blocks regardless of routing. Manage wallets in the upstream, and keep Mainnet and Testnet on independent Routes.
See Errors and recovery for Gateway error codes and Endpoints for inventory management.