Providers

Providers

Nineteen provider classes behind one contract. Pick one to see its auth and its endpoints and what it maps. And the traps.

Every provider answers the same ten questions with the same shapes. What changes underneath is the API, where the key travels, how a page says there's a next one, and which operations exist at all. The pages are short on purpose. The part worth reading is the gotcha list on each one, because that's where the afternoons go.

listProviders()19 providers · registry order
Operations
Etherscankey10 chains
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: served
  • tok: served
  • trf: served
  • gas: served
  • blk: served
8 of 10
Blockscoutnone10 chains
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: served
  • tok: served
  • trf: served
  • gas: served
  • blk: served
8 of 10
Blockchairoptional7 chains
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
4 of 10
Mempoolnone3 chains
  • bal: served
  • his: served
  • tx: served
  • utx: served
  • key: served
  • con: absent
  • tok: absent
  • trf: absent
  • gas: served
  • blk: served
7 of 10
Blockstreamnone1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: served
  • key: served
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
6 of 10
Solscankey1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
4 of 10
Heliuskey1 chain
  • bal: absent
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: absent
  • tok: served
  • trf: absent
  • gas: absent
  • blk: absent
3 of 10
TONAPInone1 chain
  • bal: served
  • his: served
  • tx: absent
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: absent
2 of 10
TRONSCANkey1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
4 of 10
Aptos Explorernone1 chain
  • bal: absent
  • his: absent
  • tx: absent
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: absent
0 of 10
Blockberrykey1 chain
  • bal: served
  • his: served
  • tx: absent
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: absent
2 of 10
Koiosnone1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: absent
  • tok: served
  • trf: absent
  • gas: absent
  • blk: absent
4 of 10
Arweave gatewaynone1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
4 of 10
dcrdatanone1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
4 of 10
Horizonnone1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: absent
  • key: absent
  • con: absent
  • tok: served
  • trf: served
  • gas: served
  • blk: served
7 of 10
WhatsOnChainoptional1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: served
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
5 of 10
Blockbooknone1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: served
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
5 of 10
Haskoinnone1 chain
  • bal: served
  • his: served
  • tx: served
  • utx: served
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
5 of 10
eCash Explorernone1 chain
  • bal: absent
  • his: served
  • tx: absent
  • utx: absent
  • key: absent
  • con: absent
  • tok: absent
  • trf: absent
  • gas: absent
  • blk: served
2 of 10
read from builtins / no networkcreate("<key>") loads one

Four families

EVM, ten chains each. Etherscan and Blockscout each serve ten EVM chains and every operation. Etherscan needs a key and answers in one v2 endpoint with a chain id; Blockscout needs nothing and has one host per chain. With a key you get Etherscan first, without one Blockscout, and either way a rate limit on the first moves the read to the other.

Bitcoin and its relatives. Mempool for Bitcoin, Litecoin and Pepecoin through mempool.space and its siblings, Blockstream for Bitcoin through the Esplora API as an independent second backend, Blockchair for Bitcoin, Bitcoin Cash, Litecoin, Dogecoin, Ethereum, eCash and Zcash through one dashboard API, dcrdata for Decred through Insight, WhatsOnChain for Bitcoin SV, Blockbook for Bitcoin Gold through btgexplorer.com, and Haskoin for Bitcoin Cash through api.haskoin.com. eCash Explorer reads eCash history and blocks from explorer.e.cash and leaves the balance to Blockchair. Mempool, Blockstream, WhatsOnChain, Blockbook and Haskoin are the only ones with unspent outputs.

One chain, with a key. Solscan and Helius on Solana, TRONSCAN on TRON, Blockberry on Sui. Each throws UnsupportedChainError for any other chain and AuthError without its key.

One chain, no key. TONAPI, Koios on Cardano, the Arweave gateway and Horizon on Stellar. And Aptos, which is registered, honest and empty.

Adding one

A new backend is one class, one key, one entry in builtins and one line in the build config. Custom providers walks through it; the registry test refuses a provider that skips a step.