SPB Git

spb/coinexplorer Public MIT

Self-hosted, zero-API-key explorer for stablecoins and major crypto.

Python 60.3% HTML 23.6% JavaScript 8.1% CSS 6.8% SQL 1%
11.2 KB · 419 lines yaml
Raw Blame History
1# Author: Simon-Pierre Boucher2# Mail: contact@spboucher.ai3# Free public RPC endpoints — no API keys anywhere. All endpoints below were4# live-verified 2026-08-05 (EVM: eth_chainId; others: family-native health5# calls). The RpcPool rotates to the next endpoint on 429s/transport errors6# and on semantic getLogs refusals at minimum range.7#8# family:        picks the ingestion adapter (evm today; others land in D4)9# confirmations: blocks to trail behind head — cheap reorg protection10# max_range:     initial eth_getLogs block span; auto-halves when a node11#                answers "too many results / range too large"12# start_offset:  how far behind the safe head to start on a fresh DB13#                (full historical backfill on free RPCs is impractical —14#                 start recent, grow forward)15#16# Notes from endpoint survey (2026-08-05):17#   - 1rpc.io free tier is effectively dead ("usage limit" errors) — removed18#   - rpc.ankr.com requires keys on most chains now — avoided19#   - dRPC public: ~120k CU/min per IP, no Solana on free plan20#   - PublicNode: keyless fair-use, but no ZKsync/Kaia/WorldChain/HyperEVM2122chains:23  # ======================= EVM =======================24  ethereum:25    native: {symbol: ETH, min: 50, decimals: 18}      # whale-only native transfers26    family: evm27    chain_id: 128    block_time: 1229    confirmations: 630    max_range: 4031    start_offset: 300        # ~1 hour32    rpcs:33      - https://ethereum-rpc.publicnode.com34      - https://eth.drpc.org35      # eth.llamarpc.com dropped 2026-08-05: origin down (HTTP 521)3637  base:38    family: evm39    chain_id: 845340    block_time: 241    confirmations: 1042    max_range: 15043    start_offset: 1800       # ~1 hour44    rpcs:45      - https://mainnet.base.org46      - https://base-rpc.publicnode.com47      - https://base.drpc.org4849  arbitrum:50    family: evm51    chain_id: 4216152    block_time: 0.2553    confirmations: 4054    max_range: 40055    start_offset: 8000       # ~30 min (fast blocks)56    rpcs:57      - https://arb1.arbitrum.io/rpc58      - https://arbitrum-one-rpc.publicnode.com59      - https://arbitrum.drpc.org6061  optimism:62    family: evm63    chain_id: 1064    block_time: 265    confirmations: 1066    max_range: 15067    start_offset: 180068    rpcs:69      - https://mainnet.optimism.io70      - https://optimism-rpc.publicnode.com71      - https://optimism.drpc.org7273  polygon:74    native: {symbol: POL, min: 300000, decimals: 18}75    family: evm76    chain_id: 13777    block_time: 278    confirmations: 30        # Polygon PoS reorgs more than most79    max_range: 10080    start_offset: 180081    rpcs:82      - https://polygon-bor-rpc.publicnode.com83      - https://polygon.drpc.org84      # polygon-rpc.com dropped 2026-08-05: now answers "API key disabled"8586  bsc:87    native: {symbol: BNB, min: 500, decimals: 18}88    family: evm89    chain_id: 5690    block_time: 0.7591    confirmations: 1592    max_range: 10093    start_offset: 2400       # ~30 min94    rpcs:95      - https://bsc-rpc.publicnode.com      # first: dataseed refuses getLogs96      - https://bsc-dataseed.bnbchain.org97      - https://bsc.drpc.org9899  avalanche:100    native: {symbol: AVAX, min: 5000, decimals: 18}101    family: evm102    chain_id: 43114103    block_time: 2104    confirmations: 5         # Snowman consensus finalizes fast105    max_range: 200106    start_offset: 1800107    rpcs:108      - https://api.avax.network/ext/bc/C/rpc109      - https://avalanche-c-chain-rpc.publicnode.com110      - https://avalanche.drpc.org111112  celo:113    family: evm114    chain_id: 42220115    block_time: 1            # Celo is an OP-stack L2 now116    confirmations: 10117    max_range: 200118    start_offset: 3600119    rpcs:120      - https://forno.celo.org121      - https://celo-rpc.publicnode.com122      - https://celo.drpc.org123124  kaia:125    family: evm126    chain_id: 8217127    block_time: 1128    confirmations: 10129    max_range: 200130    start_offset: 3600131    rpcs:132      - https://public-en.node.kaia.io133      - https://kaia.drpc.org134135  ink:136    family: evm137    chain_id: 57073138    block_time: 1            # OP stack139    confirmations: 10140    max_range: 200141    start_offset: 3600142    rpcs:143      - https://rpc-gel.inkonchain.com144      - https://rpc-qnd.inkonchain.com145      - https://ink.drpc.org146147  scroll:148    family: evm149    chain_id: 534352150    block_time: 3151    confirmations: 10152    max_range: 150153    start_offset: 1200154    rpcs:155      - https://rpc.scroll.io156      - https://scroll-rpc.publicnode.com157      - https://scroll.drpc.org158159  linea:160    family: evm161    chain_id: 59144162    block_time: 2163    confirmations: 10164    max_range: 150165    start_offset: 1800166    rpcs:167      - https://rpc.linea.build168      - https://linea-rpc.publicnode.com169      - https://linea.drpc.org170171  mantle:172    family: evm173    chain_id: 5000174    block_time: 2175    confirmations: 10176    max_range: 150177    start_offset: 1800178    rpcs:179      - https://rpc.mantle.xyz180      - https://mantle-rpc.publicnode.com181      - https://mantle.drpc.org182183  gnosis:184    family: evm185    chain_id: 100186    block_time: 5187    confirmations: 10188    max_range: 100189    start_offset: 720190    rpcs:191      - https://rpc.gnosischain.com192      - https://gnosis-rpc.publicnode.com193      - https://gnosis.drpc.org194195  zksync:196    family: evm197    chain_id: 324198    block_time: 1199    confirmations: 10200    max_range: 200201    start_offset: 3600202    rpcs:203      - https://mainnet.era.zksync.io204      - https://zksync.drpc.org205206  blast:207    family: evm208    chain_id: 81457209    block_time: 2210    confirmations: 10211    max_range: 150212    start_offset: 1800213    rpcs:214      - https://rpc.blast.io215      - https://blast-rpc.publicnode.com216      - https://blast.drpc.org217218  unichain:219    family: evm220    chain_id: 130221    block_time: 1222    confirmations: 10223    max_range: 200224    start_offset: 3600225    rpcs:226      - https://mainnet.unichain.org227      - https://unichain-rpc.publicnode.com228      - https://unichain.drpc.org229230  world_chain:231    family: evm232    chain_id: 480233    block_time: 2234    confirmations: 10235    max_range: 150236    start_offset: 1800237    rpcs:238      - https://worldchain-mainnet.g.alchemy.com/public239      - https://worldchain-mainnet.gateway.tenderly.co240      - https://worldchain.drpc.org241242  sonic:243    family: evm244    chain_id: 146245    block_time: 0.5246    confirmations: 10247    max_range: 200248    start_offset: 3600249    rpcs:250      - https://rpc.soniclabs.com251      - https://sonic-rpc.publicnode.com252      - https://sonic.drpc.org253254  sei:255    family: evm            # Sei EVM view; native Cosmos side not indexed here256    chain_id: 1329257    block_time: 0.4258    confirmations: 5259    max_range: 200260    start_offset: 4000261    rpcs:262      - https://evm-rpc.sei-apis.com263      - https://sei-evm-rpc.publicnode.com264      - https://sei.drpc.org265266  hyperevm:267    family: evm268    chain_id: 999269    block_time: 1270    confirmations: 5271    max_range: 100           # official RPC rate limits are strict272    start_offset: 1800273    rpcs:274      - {url: "https://rpc.hyperliquid.xyz/evm", rps: 2, burst: 4}   # strict official limits275      - https://hyperliquid.drpc.org276      - https://rpc.hypurrscan.io277278  # ================ NON-EVM (adapters: Deliverable 4) ================279  tron:280    native: {symbol: TRX, min: 500000, decimals: 6}281    family: tron282    block_time: 3283    confirmations: 20        # ~solidity (SR 2/3) depth284    rpcs:285      - {url: "https://api.trongrid.io", rps: 3, burst: 5}   # keyless: dynamic throttle + 30s 403 penalty286      - https://tron-rpc.publicnode.com    # serves /wallet/* HTTP API keyless287    # bonus: https://tron-evm-rpc.publicnode.com speaks eth_-style JSON-RPC288289  solana:290    native: {symbol: SOL, min: 1000, decimals: 9}291    family: solana292    block_time: 0.4293    confirmations: 0         # index at 'finalized' commitment294    rpcs:295      - https://solana-rpc.publicnode.com        # best keyless option296      - {url: "https://api.mainnet-beta.solana.com", rps: 4, burst: 8}   # 100 req/10s/IP, 40/10s/method297298  ton:299    family: ton300    block_time: 5301    confirmations: 0302    rpcs:303      - {url: "https://toncenter.com/api/v3/", rps: 0.9, burst: 1}   # keyless: 1 req/s HARD limit304      - {url: "https://toncenter.com/api/v2/", rps: 0.9, burst: 1}305306  xrpl:307    family: xrpl308    block_time: 4            # ledger close time309    confirmations: 0         # validated ledgers are final310    rpcs:311      - https://s1.ripple.com:51234/312      - https://xrplcluster.com/313      - https://s2.ripple.com:51234/314315  stellar:316    family: stellar317    block_time: 5318    confirmations: 0319    rpcs:320      - {url: "https://horizon.stellar.org", rps: 0.9, burst: 3}   # ~3600 req/h/IP; only ~1y history321322  noble:323    family: cosmos324    block_time: 6325    confirmations: 0         # CometBFT instant finality326    rpcs:                    # CometBFT RPC327      - https://noble-rpc.polkachu.com328      - https://rpc.lavenderfive.com:443/noble329    rest:                    # LCD330      - https://noble-api.polkachu.com331      - https://rest.lavenderfive.com:443/noble332333  aptos:334    family: aptos335    block_time: 0.3336    confirmations: 0337    rpcs:338      - {url: "https://fullnode.mainnet.aptoslabs.com/v1", rps: 5, burst: 10}   # anonymous CU quota per IP339340  sui:341    family: sui342    block_time: 0.5          # checkpoint cadence343    confirmations: 0344    rpcs:345      - https://sui-rpc.publicnode.com              # classic JSON-RPC, keyless346      - https://graphql.mainnet.sui.io/graphql      # official GraphQL347    # official fullnode JSON-RPC shut down July 2026 — do not use348    # https://fullnode.mainnet.sui.io (gRPC only now)349350  algorand:351    family: algorand352    block_time: 2.8353    confirmations: 0354    rpcs:                    # algod355      - https://mainnet-api.4160.nodely.dev356    rest:                    # Nodely indexer357      - https://mainnet-idx.4160.nodely.dev358359  near:360    family: near361    block_time: 1.2362    confirmations: 0363    rpcs:364      - https://free.rpc.fastnear.com365      - https://near.drpc.org366      # rpc.mainnet.near.org is deprecated (Jun 2025) — do not rely on it367368  tezos:369    family: tezos370    block_time: 8371    confirmations: 2372    rpcs:373      - https://rpc.tzbeta.net374      - https://mainnet.smartpy.io375      - https://rpc.tzkt.io/mainnet376    rest:377      - https://api.tzkt.io               # TzKT indexer — ideal for FA2 transfers378379  hedera:380    family: hedera381    block_time: 2            # mirror-node "blocks"382    confirmations: 0383    rpcs:384      - {url: "https://mainnet-public.mirrornode.hedera.com", rps: 10, burst: 20}   # docs: ~50 req/s/IP; stay well under385386  starknet:387    family: starknet388    block_time: 30389    confirmations: 1390    rpcs:391      - https://starknet-rpc.publicnode.com   # spec v0.8392      - https://rpc.starknet.lava.build393394  polkadot_asset_hub:395    family: substrate396    block_time: 12397    confirmations: 0         # GRANDPA finality398    rpcs:399      - https://polkadot-asset-hub-rpc.polkadot.io400      - https://statemint.api.onfinality.io/public401402  eos:403    family: antelope404    block_time: 0.5405    confirmations: 336       # ~last irreversible block distance406    rpcs:407      - https://eos.greymass.com408      - https://eos.api.eosnation.io409410  bitcoin:411    family: bitcoin412    block_time: 600413    confirmations: 1414    start_offset: 3415    native: {symbol: BTC, min: 5, decimals: 8}   # record outputs >= 5 BTC416    rpcs:                                        # esplora-compatible REST417      - {url: "https://mempool.space/api", rps: 2, burst: 4}418      - {url: "https://blockstream.info/api", rps: 2, burst: 4}419