diff --git a/check-health.sh b/check-health.sh index 33ee284b..02db18f3 100755 --- a/check-health.sh +++ b/check-health.sh @@ -189,12 +189,12 @@ if [ $? -eq 0 ]; then response3=$(cat "$response_file3") if $is_starknet; then - latest_block_timestamp_decimal3=$(echo "$response3" | jq -r '.result.timestamp') + ref_num=$(echo "$response3" | jq -r '.result.block_number // empty') elif $is_aztec; then - latest_block_timestamp_decimal3=$(echo "$response3" | jq -r '.result.header.globalVariables.timestamp') + ref_num=$(echo "$response3" | jq -r '.result.header.globalVariables.blockNumber // empty') else - latest_block_timestamp3=$(echo "$response3" | jq -r '.result.timestamp') - latest_block_timestamp_decimal3=$((16#${latest_block_timestamp3#0x})) + ref_num_hex=$(echo "$response3" | jq -r '.result.number // empty') + ref_num=$([ -n "$ref_num_hex" ] && printf '%d' "$ref_num_hex" 2>/dev/null) fi # echo "refer: $latest_block_timestamp_decimal3" @@ -205,25 +205,35 @@ if [ $? -eq 0 ]; then response4=$(cat "$response_file4") if $is_starknet; then - latest_block_timestamp_decimal4=$(echo "$response4" | jq -r '.result.timestamp') + local_num=$(echo "$response4" | jq -r '.result.block_number // empty') elif $is_aztec; then - latest_block_timestamp_decimal4=$(echo "$response4" | jq -r '.result.header.globalVariables.timestamp') + local_num=$(echo "$response4" | jq -r '.result.header.globalVariables.blockNumber // empty') else - latest_block_timestamp4=$(echo "$response4" | jq -r '.result.timestamp') - latest_block_timestamp_decimal4=$((16#${latest_block_timestamp4#0x})) + local_num_hex=$(echo "$response4" | jq -r '.result.number // empty') + local_num=$([ -n "$local_num_hex" ] && printf '%d' "$local_num_hex" 2>/dev/null) fi #echo "local: $latest_block_timestamp_decimal4" rm "$response_file4" - time_difference3=$(echo "scale=6; (${latest_block_timestamp_decimal3} - ${request_time3}) - (${latest_block_timestamp_decimal4} - ${request_time4})" | bc) - - #echo "diff after network latency: $time_difference3 s" - - if (( $(echo "$time_difference3 < 2" | bc -l) )); then + # Lag in BLOCKS between the reference head and the local head + # (positive => local behind). Compare against dRPC's own per-chain + # thresholds (LAGGING_LAG / SYNCING_LAG from chains.yaml via + # sync-status.sh) so our status matches the dRPC gateway's view. + # dRPC uses the two thresholds inconsistently (sometimes + # lagging /dev/null 2>&1; then + # Skip and try the next reference URL when the response is a JSON-RPC error OR has a + # null result (a lagging endpoint that doesn't have the requested block/data yet). + # Without the result==null check the first endpoint's {"result":null} was accepted as + # success and the remaining fallback URLs were never tried. + if cat "$temp_file" | jq -e 'has("error") or (.result == null)' > /dev/null 2>&1; then continue # Try the next URL fi diff --git a/reference-rpc-endpoint.json b/reference-rpc-endpoint.json index 0d968ed8..7932732d 100644 --- a/reference-rpc-endpoint.json +++ b/reference-rpc-endpoint.json @@ -1,12 +1,18 @@ { "bitcoin": { "protocol": "bitcoin", + "block_time_ms": 600000, + "lagging_lag": 1, + "syncing_lag": 3, "urls": [ "https://bitcoin.drpc.org" ] }, "bitcoin-testnet": { "protocol": "bitcoin", + "block_time_ms": 600000, + "lagging_lag": 1, + "syncing_lag": 3, "urls": [ "https://bitcoin-testnet.drpc.org" ] @@ -14,6 +20,9 @@ "ethereum": { "protocol": "eth", "id": 1, + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://api.mycryptoapi.com/eth", "https://cloudflare-eth.com", @@ -34,6 +43,9 @@ "sepolia": { "protocol": "eth", "id": 11155111, + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://rpc.sepolia.org", "https://rpc2.sepolia.org", @@ -47,6 +59,9 @@ "holesky": { "protocol": "eth", "id": 17000, + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://rpc.holesky.ethpandaops.io", "https://ethereum-holesky-rpc.publicnode.com", @@ -57,6 +72,9 @@ "hoodi": { "protocol": "eth", "id": 560048, + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://rpc.hoodi.ethpandaops.io", "https://hoodi.drpc.org" @@ -65,6 +83,9 @@ "ethereum-classic": { "protocol": "eth", "id": 61, + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://etc.rivet.link", "https://besu-at.etc-network.info", @@ -77,6 +98,9 @@ "fantom": { "protocol": "eth", "id": 250, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.ftm.tools", "https://fantom-rpc.publicnode.com", @@ -86,6 +110,9 @@ "fantom-testnet": { "protocol": "eth", "id": 4002, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.testnet.fantom.network", "https://fantom-testnet-rpc.publicnode.com", @@ -95,6 +122,9 @@ "polygon": { "protocol": "eth", "id": 137, + "block_time_ms": 2700, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://polygon.drpc.org", "https://rpc-mainnet.matic.quiknode.pro", @@ -107,6 +137,9 @@ "polygon-amoy": { "protocol": "eth", "id": 80002, + "block_time_ms": 2700, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc-amoy.polygon.technology", "https://polygon-amoy-bor-rpc.publicnode.com", @@ -116,6 +149,9 @@ "arbitrum": { "protocol": "eth", "id": 42161, + "block_time_ms": 260, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}", "https://arb1.arbitrum.io/rpc", @@ -127,6 +163,9 @@ "arbitrum-sepolia": { "protocol": "eth", "id": 421614, + "block_time_ms": 260, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://sepolia-rollup.arbitrum.io/rpc", "https://arbitrum-sepolia-rpc.publicnode.com", @@ -136,6 +175,9 @@ "optimism": { "protocol": "eth", "id": 10, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://mainnet.optimism.io", "https://optimism-rpc.publicnode.com", @@ -146,6 +188,9 @@ "optimism-sepolia": { "protocol": "eth", "id": 11155420, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://sepolia.optimism.io", "https://optimism-sepolia.drpc.org" @@ -154,6 +199,9 @@ "bsc": { "protocol": "eth", "id": 56, + "block_time_ms": 750, + "lagging_lag": 50, + "syncing_lag": 1000, "urls": [ "https://bsc-dataseed1.bnbchain.org", "https://bsc-dataseed2.bnbchain.org", @@ -174,6 +222,9 @@ "bsc-testnet": { "protocol": "eth", "id": 97, + "block_time_ms": 750, + "lagging_lag": 50, + "syncing_lag": 1000, "urls": [ "https://data-seed-prebsc-1-s1.bnbchain.org:8545", "https://data-seed-prebsc-2-s1.bnbchain.org:8545", @@ -188,6 +239,9 @@ "polygon-zkevm": { "protocol": "eth", "id": 1101, + "block_time_ms": 2700, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://zkevm-rpc.com", "https://polygon-zkevm.drpc.org" @@ -196,6 +250,9 @@ "polygon-zkevm-cardona": { "protocol": "eth", "id": 2442, + "block_time_ms": 60000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.cardona.zkevm-rpc.com", "https://polygon-zkevm-cardona.drpc.org" @@ -204,6 +261,9 @@ "arbitrum-nova": { "protocol": "eth", "id": 42170, + "block_time_ms": 260, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://nova.arbitrum.io/rpc", "https://arbitrum-nova-rpc.publicnode.com", @@ -213,6 +273,9 @@ "zksync": { "protocol": "eth", "id": 324, + "block_time_ms": 5000, + "lagging_lag": 50, + "syncing_lag": 70, "urls": [ "https://mainnet.era.zksync.io", "https://zksync.drpc.org" @@ -221,6 +284,9 @@ "zksync-sepolia": { "protocol": "eth", "id": 300, + "block_time_ms": 5000, + "lagging_lag": 50, + "syncing_lag": 70, "urls": [ "https://sepolia.era.zksync.dev", "https://zksync-sepolia.drpc.org" @@ -229,6 +295,9 @@ "base": { "protocol": "eth", "id": 8453, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://mainnet.base.org/", "https://developer-access-mainnet.base.org/", @@ -242,6 +311,9 @@ "base-sepolia": { "protocol": "eth", "id": 84532, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://sepolia.base.org", "https://base-sepolia-rpc.publicnode.com", @@ -251,6 +323,9 @@ "linea": { "protocol": "eth", "id": 59144, + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://rpc.linea.build", "https://linea-rpc.publicnode.com", @@ -260,6 +335,9 @@ "linea-sepolia": { "protocol": "eth", "id": 59141, + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://rpc.sepolia.linea.build", "https://linea-sepolia-rpc.publicnode.com", @@ -269,6 +347,9 @@ "gnosis": { "protocol": "eth", "id": 100, + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.gnosischain.com", "https://rpc.gnosis.gateway.fm", @@ -286,6 +367,9 @@ "gnosis-chiado": { "protocol": "eth", "id": 10200, + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.chiadochain.net", "https://rpc.chiado.gnosis.gateway.fm", @@ -296,6 +380,9 @@ "avalanche": { "protocol": "eth", "id": 43114, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://api.avax.network/ext/bc/C/rpc", "https://avalanche-c-chain-rpc.publicnode.com", @@ -305,6 +392,9 @@ "avalanche-fuji": { "protocol": "eth", "id": 43113, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://api.avax-test.network/ext/bc/C/rpc", "https://avalanche-fuji-c-chain-rpc.publicnode.com", @@ -314,6 +404,9 @@ "aurora": { "protocol": "eth", "id": 1313161554, + "block_time_ms": 1000, + "lagging_lag": 40, + "syncing_lag": 80, "urls": [ "https://mainnet.aurora.dev", "https://aurora.drpc.org" @@ -322,6 +415,9 @@ "aurora-testnet": { "protocol": "eth", "id": 1313161555, + "block_time_ms": 1000, + "lagging_lag": 40, + "syncing_lag": 80, "urls": [ "https://testnet.aurora.dev/", "https://aurora-testnet.drpc.org" @@ -330,6 +426,9 @@ "mantle": { "protocol": "eth", "id": 5000, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.mantle.xyz", "https://mantle-rpc.publicnode.com", @@ -339,6 +438,9 @@ "mantle-sepolia": { "protocol": "eth", "id": 5003, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.sepolia.mantle.xyz", "https://mantle-sepolia.drpc.org" @@ -347,6 +449,9 @@ "klaytn": { "protocol": "eth", "id": 8217, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://public-en.node.kaia.io", "https://klaytn.drpc.org" @@ -355,6 +460,9 @@ "klaytn-baobab": { "protocol": "eth", "id": 1001, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://public-en-kairos.node.kaia.io", "https://klaytn-baobab.drpc.org" @@ -363,6 +471,9 @@ "celo": { "protocol": "eth", "id": 42220, + "block_time_ms": 1000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://forno.celo.org", "https://celo.drpc.org" @@ -371,6 +482,9 @@ "celo-alfajores": { "protocol": "eth", "id": 44787, + "block_time_ms": 1000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://alfajores-forno.celo-testnet.org", "https://celo-alfajores.drpc.org" @@ -379,6 +493,9 @@ "celo-sepolia": { "protocol": "eth", "id": 11142220, + "block_time_ms": 1000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://forno.celo-sepolia.celo-testnet.org" ] @@ -386,6 +503,9 @@ "moonbeam": { "protocol": "eth", "id": 1284, + "block_time_ms": 6000, + "lagging_lag": 10, + "syncing_lag": 15, "urls": [ "https://rpc.api.moonbeam.network", "https://moonbeam.public.blastapi.io", @@ -399,6 +519,9 @@ "moonbase-alpha": { "protocol": "eth", "id": 1287, + "block_time_ms": 6000, + "lagging_lag": 10, + "syncing_lag": 15, "urls": [ "https://rpc.api.moonbase.moonbeam.network", "https://moonbase-alpha.public.blastapi.io", @@ -411,6 +534,9 @@ "moonriver": { "protocol": "eth", "id": 1285, + "block_time_ms": 6000, + "lagging_lag": 10, + "syncing_lag": 15, "urls": [ "https://rpc.api.moonriver.moonbeam.network", "https://moonriver.public.blastapi.io", @@ -424,6 +550,9 @@ "scroll-sepolia": { "protocol": "eth", "id": 534351, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://sepolia-rpc.scroll.io", "https://rpc.ankr.com/scroll_sepolia_testnet", @@ -436,6 +565,9 @@ "scroll": { "protocol": "eth", "id": 534352, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.scroll.io", "https://rpc.ankr.com/scroll", @@ -447,6 +579,9 @@ "cronos": { "protocol": "eth", "id": 25, + "block_time_ms": 5000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://evm.cronos.org", "https://cronos-evm-rpc.publicnode.com", @@ -456,6 +591,9 @@ "cronos-testnet": { "protocol": "eth", "id": 338, + "block_time_ms": 5000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://evm-t3.cronos.org", "https://cronos-testnet.drpc.org" @@ -464,6 +602,9 @@ "metis": { "protocol": "eth", "id": 1088, + "block_time_ms": 30000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://andromeda.metis.io/?owner=1088", "https://metis.drpc.org", @@ -473,6 +614,9 @@ "metis-sepolia": { "protocol": "eth", "id": 59902, + "block_time_ms": 30000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://metis-sepolia.drpc.org" ] @@ -480,6 +624,9 @@ "opbnb": { "protocol": "eth", "id": 204, + "block_time_ms": 500, + "lagging_lag": 200, + "syncing_lag": 400, "urls": [ "https://opbnb-mainnet-rpc.bnbchain.org", "https://opbnb-mainnet.nodereal.io/v1/64a9df0874fb4a93b9d0a3849de012d3", @@ -491,6 +638,9 @@ "opbnb-testnet": { "protocol": "eth", "id": 5611, + "block_time_ms": 500, + "lagging_lag": 200, + "syncing_lag": 400, "urls": [ "https://opbnb-testnet-rpc.bnbchain.org", "https://opbnb-testnet.nodereal.io/v1/64a9df0874fb4a93b9d0a3849de012d3", @@ -502,6 +652,9 @@ "kava": { "protocol": "eth", "id": 2222, + "block_time_ms": 6000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://evm.kava.io", "https://kava-rpc.gateway.pokt.network", @@ -515,6 +668,9 @@ "kava-testnet": { "protocol": "eth", "id": 2221, + "block_time_ms": 6000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://evm.testnet.kava.io", "https://kava-evm-testnet.rpc.thirdweb.com", @@ -523,6 +679,9 @@ }, "starknet": { "protocol": "starknet", + "block_time_ms": 20000, + "lagging_lag": 1, + "syncing_lag": 5, "urls": [ "https://starknet.api.onfinality.io/public" ], @@ -530,6 +689,9 @@ }, "starknet-sepolia": { "protocol": "starknet", + "block_time_ms": 20000, + "lagging_lag": 1, + "syncing_lag": 5, "urls": [ "https://rpc.starknet-testnet.lava.build" ], @@ -538,6 +700,9 @@ "immutable-zkevm": { "protocol": "eth", "id": 13371, + "block_time_ms": 2000, + "lagging_lag": 1, + "syncing_lag": 5, "urls": [ "https://rpc.immutable.com" ] @@ -545,36 +710,54 @@ "immutable-zkevm-testnet": { "protocol": "eth", "id": 13473, + "block_time_ms": 2000, + "lagging_lag": 1, + "syncing_lag": 5, "urls": [ "https://rpc.testnet.immutable.com" ] }, "vara": { "protocol": "polkadot", + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://vara.drpc.org" ] }, "vara-testnet": { "protocol": "polkadot", + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://vara-testnet.drpc.org" ] }, "solana": { "protocol": "solana", + "block_time_ms": 400, + "lagging_lag": 100, + "syncing_lag": 1000, "urls": [ "https://solana.drpc.org" ] }, "solana-testnet": { "protocol": "solana", + "block_time_ms": 400, + "lagging_lag": 100, + "syncing_lag": 1000, "urls": [ "https://solana-testnet.drpc.org" ] }, "solana-devnet": { "protocol": "solana", + "block_time_ms": 400, + "lagging_lag": 100, + "syncing_lag": 1000, "urls": [ "https://solana-devnet.drpc.org" ] @@ -582,6 +765,9 @@ "haqq": { "protocol": "eth", "id": 11235, + "block_time_ms": 5900, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.eth.haqq.network", "https://haqq-evm-rpc.publicnode.com", @@ -591,6 +777,9 @@ "haqq-testnet": { "protocol": "eth", "id": 54211, + "block_time_ms": 5900, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.eth.testedge2.haqq.network", "https://haqq-testnet.drpc.org" @@ -599,6 +788,9 @@ "filecoin": { "protocol": "eth", "id": 314, + "block_time_ms": 60000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://api.node.glif.io/", "https://rpc.ankr.com/filecoin", @@ -610,6 +802,9 @@ "filecoin-calibration": { "protocol": "eth", "id": 314159, + "block_time_ms": 60000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://api.calibration.node.glif.io/rpc/v1", "https://rpc.ankr.com/filecoin_testnet", @@ -622,6 +817,9 @@ "fuse": { "protocol": "eth", "id": 122, + "block_time_ms": 5000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.fuse.io", "https://fuse.drpc.org" @@ -630,6 +828,9 @@ "taiko": { "protocol": "eth", "id": 167000, + "block_time_ms": 150000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://rpc.mainnet.taiko.xyz", "https://taiko-rpc.publicnode.com", @@ -639,6 +840,9 @@ "taiko-hoodi": { "protocol": "eth", "id": 167013, + "block_time_ms": 30000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://rpc.hoodi.taiko.xyz", "https://taiko-hoodi.drpc.org" @@ -647,6 +851,9 @@ "taiko-hekla": { "protocol": "eth", "id": 167009, + "block_time_ms": 30000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://taiko-hekla.drpc.org" ] @@ -654,6 +861,9 @@ "oktc": { "protocol": "eth", "id": 66, + "block_time_ms": 2000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://exchainrpc.okex.org", "https://okc-mainnet.gateway.pokt.network/v1/lb/6275309bea1b320039c893ff", @@ -663,6 +873,9 @@ "oktc-testnet": { "protocol": "eth", "id": 65, + "block_time_ms": 2000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://exchaintestrpc.okex.org", "https://oktc-testnet.drpc.org" @@ -671,6 +884,9 @@ "manta-pacific": { "protocol": "eth", "id": 169, + "block_time_ms": 10000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://pacific-rpc.manta.network/http", "https://manta-pacific.drpc.org" @@ -679,6 +895,9 @@ "manta-pacific-sepolia": { "protocol": "eth", "id": 3441006, + "block_time_ms": 10000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://pacific-rpc.sepolia-testnet.manta.network/http", "https://manta-pacific-sepolia.drpc.org" @@ -687,6 +906,9 @@ "alephzero": { "protocol": "eth", "id": 41455, + "block_time_ms": 60000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.alephzero.raas.gelato.cloud", "https://alephzero.drpc.org" @@ -695,6 +917,9 @@ "alephzero-sepolia": { "protocol": "eth", "id": 2039, + "block_time_ms": 60000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.alephzero-testnet.gelato.digital", "https://alephzero-sepolia.drpc.org" @@ -703,6 +928,9 @@ "everclear": { "protocol": "eth", "id": 25327, + "block_time_ms": 60000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.everclear.raas.gelato.cloud", "https://everclear.drpc.org" @@ -711,6 +939,9 @@ "everclear-sepolia": { "protocol": "eth", "id": 6398, + "block_time_ms": 60000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.connext-sepolia.gelato.digital/", "https://everclear-sepolia.drpc.org" @@ -719,6 +950,9 @@ "harmony-0": { "protocol": "eth", "id": 1666600000, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://api.harmony.one", "https://a.api.s0.t.hmny.io", @@ -731,6 +965,9 @@ "harmony-1": { "protocol": "eth", "id": 1666600001, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://api.s1.t.hmny.io", "https://harmony-1.drpc.org" @@ -739,6 +976,9 @@ "berachain": { "protocol": "eth", "id": 80094, + "block_time_ms": 6000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.berachain.com", "https://berachain-rpc.publicnode.com", @@ -749,6 +989,9 @@ "bartio": { "protocol": "eth", "id": 80084, + "block_time_ms": 6000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://bartio.drpc.org" ] @@ -756,6 +999,9 @@ "berachain-bepolia": { "protocol": "eth", "id": 80069, + "block_time_ms": 6000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://bepolia.rpc.berachain.com", "https://berachain-bepolia.drpc.org" @@ -764,6 +1010,9 @@ "blast": { "protocol": "eth", "id": 81457, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.blast.io", "https://rpc.ankr.com/blast", @@ -777,6 +1026,9 @@ "blast-sepolia": { "protocol": "eth", "id": 168587773, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://sepolia.blast.io", "https://blast-sepolia.drpc.org" @@ -785,6 +1037,9 @@ "lisk": { "protocol": "eth", "id": 1135, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.api.lisk.com", "https://lisk.drpc.org" @@ -793,6 +1048,9 @@ "lisk-sepolia": { "protocol": "eth", "id": 4202, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.sepolia-api.lisk.com", "https://lisk-sepolia.drpc.org" @@ -801,6 +1059,9 @@ "zora": { "protocol": "eth", "id": 7777777, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.zora.energy/", "https://zora.drpc.org" @@ -809,6 +1070,9 @@ "zora-sepolia": { "protocol": "eth", "id": 999999999, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://sepolia.rpc.zora.energy", "https://zora-sepolia.drpc.org" @@ -817,6 +1081,9 @@ "mode": { "protocol": "eth", "id": 34443, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://mainnet.mode.network", "https://mode.drpc.org" @@ -825,6 +1092,9 @@ "mode-testnet": { "protocol": "eth", "id": 919, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://sepolia.mode.network", "https://mode-testnet.drpc.org" @@ -833,6 +1103,9 @@ "evmos": { "protocol": "eth", "id": 9001, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://evmos.lava.build", "https://evmos-evm-rpc.publicnode.com", @@ -842,6 +1115,9 @@ "evmos-testnet": { "protocol": "eth", "id": 9000, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://evmos-testnet.lava.build", "https://eth.bd.evmos.dev:8545", @@ -852,6 +1128,9 @@ "ronin": { "protocol": "eth", "id": 2020, + "block_time_ms": 3000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://ronin.lgns.net/rpc" ] @@ -859,6 +1138,9 @@ "ronin-saigon": { "protocol": "eth", "id": 202601, + "block_time_ms": 3000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://ronin-testnet.gateway.tenderly.co" ] @@ -866,6 +1148,9 @@ "neon-evm": { "protocol": "eth", "id": 245022934, + "block_time_ms": 500, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://neon-proxy-mainnet.solana.p2p.org", "https://neon-evm.drpc.org" @@ -874,6 +1159,9 @@ "neon-evm-devnet": { "protocol": "eth", "id": 245022926, + "block_time_ms": 500, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://devnet.neonevm.org", "https://neon-evm-devnet.drpc.org" @@ -882,6 +1170,9 @@ "boba-eth": { "protocol": "eth", "id": 288, + "block_time_ms": 60000, + "lagging_lag": 1, + "syncing_lag": 5, "urls": [ "https://mainnet.boba.network", "https://replica.boba.network", @@ -893,6 +1184,9 @@ "boba-bnb": { "protocol": "eth", "id": 56288, + "block_time_ms": 60000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://bnb.boba.network", "https://boba-bnb.gateway.tenderly.co/", @@ -904,6 +1198,9 @@ "heco": { "protocol": "eth", "id": 128, + "block_time_ms": 3000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://http-mainnet.hecochain.com", "https://heco.drpc.org" @@ -912,6 +1209,9 @@ "heco-testnet": { "protocol": "eth", "id": 256, + "block_time_ms": 3000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://http-testnet.hecochain.com", "https://heco-testnet.drpc.org" @@ -920,6 +1220,9 @@ "playnance": { "protocol": "eth", "id": 1829, + "block_time_ms": 15000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.playblock.io", "https://playnance.drpc.org" @@ -928,6 +1231,9 @@ "playnance-testnet": { "protocol": "eth", "id": 80998896642, + "block_time_ms": 15000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://playnance-testnet.drpc.org" ] @@ -935,6 +1241,9 @@ "zeta-chain": { "protocol": "eth", "id": 7000, + "block_time_ms": 6000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://zetachain-evm.blockpi.network/v1/rpc/public", "https://zetachain-mainnet.g.allthatnode.com/archive/evm", @@ -946,6 +1255,9 @@ "zeta-chain-testnet": { "protocol": "eth", "id": 7001, + "block_time_ms": 6000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://zetachain-athens-evm.blockpi.network/v1/rpc/public", "https://zetachain-testnet.public.blastapi.io", @@ -957,6 +1269,9 @@ "bittorrent": { "protocol": "eth", "id": 199, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.bt.io", "https://bittorrent.drpc.org" @@ -965,6 +1280,9 @@ "bittorrent-testnet": { "protocol": "eth", "id": 1029, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://pre-rpc.bt.io", "https://bittorrent-testnet.drpc.org" @@ -973,6 +1291,9 @@ "thundercore": { "protocol": "eth", "id": 108, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://mainnet-rpc.thundercore.com", "https://mainnet-rpc.thundertoken.net", @@ -983,6 +1304,9 @@ "thundercore-testnet": { "protocol": "eth", "id": 18, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://testnet-rpc.thundercore.com", "https://thundercore-testnet.drpc.org" @@ -991,6 +1315,9 @@ "core": { "protocol": "eth", "id": 1116, + "block_time_ms": 3000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.coredao.org/", "https://rpc-core.icecreamswap.com", @@ -1000,6 +1327,9 @@ "core-testnet": { "protocol": "eth", "id": 1115, + "block_time_ms": 3000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.test.btcs.network" ] @@ -1007,6 +1337,9 @@ "telos": { "protocol": "eth", "id": 40, + "block_time_ms": 300, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.telos.net", "https://telos.drpc.org" @@ -1015,6 +1348,9 @@ "telos-testnet": { "protocol": "eth", "id": 41, + "block_time_ms": 300, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.telos.net", "https://telos-testnet.drpc.org" @@ -1022,18 +1358,27 @@ }, "near": { "protocol": "near", + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://near.drpc.org" ] }, "near-testnet": { "protocol": "near", + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://near-testnet.drpc.org" ] }, "near-betanet": { "protocol": "near", + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://near-betanet.drpc.org" ] @@ -1041,6 +1386,9 @@ "opcelestia-raspberry-testnet": { "protocol": "eth", "id": 123420111, + "block_time_ms": 15000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.opcelestia-raspberry.gelato.digital", "https://opcelestia-raspberry-testnet.drpc.org" @@ -1049,6 +1397,9 @@ "arb-blueberry-testnet": { "protocol": "eth", "id": 88153591557, + "block_time_ms": 15000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.arb-blueberry.gelato.digital", "https://arb-blueberry-testnet.drpc.org" @@ -1057,6 +1408,9 @@ "polygon-blackberry-testnet": { "protocol": "eth", "id": 94204209, + "block_time_ms": 15000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.polygon-blackberry.gelato.digital", "https://polygon-blackberry-testnet.drpc.org" @@ -1065,6 +1419,9 @@ "dymension": { "protocol": "eth", "id": 1100, + "block_time_ms": 4000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://dymension-evm.blockpi.network/v1/rpc/public", "https://dymension-evm-rpc.publicnode.com", @@ -1073,24 +1430,36 @@ }, "eth-beacon-chain": { "protocol": "eth-beacon-chain", + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://eth-beacon-chain.drpc.org" ] }, "eth-beacon-chain-sepolia": { "protocol": "eth-beacon-chain", + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://eth-beacon-chain-sepolia.drpc.org" ] }, "eth-beacon-chain-holesky": { "protocol": "eth-beacon-chain", + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://eth-beacon-chain-holesky.drpc.org" ] }, "eth-beacon-chain-hoodi": { "protocol": "eth-beacon-chain", + "block_time_ms": 12000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://eth-beacon-chain-hoodi.drpc.org" ] @@ -1098,6 +1467,9 @@ "real": { "protocol": "eth", "id": 111188, + "block_time_ms": 15000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.realforreal.gelato.digital", "https://tangible-real.gateway.tenderly.co", @@ -1106,48 +1478,72 @@ }, "cosmos-hub": { "protocol": "cosmos", + "block_time_ms": 6000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://cosmos-hub.drpc.org" ] }, "cosmos-hub-testnet": { "protocol": "cosmos", + "block_time_ms": 6000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://cosmos-hub-testnet.drpc.org" ] }, "axelar": { "protocol": "cosmos", + "block_time_ms": 6000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://axelar.drpc.org" ] }, "axelar-testnet": { "protocol": "cosmos", + "block_time_ms": 6000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://axelar-testnet.drpc.org" ] }, "osmosis": { "protocol": "cosmos", + "block_time_ms": 2000, + "lagging_lag": 2, + "syncing_lag": 10, "urls": [ "https://osmosis.drpc.org" ] }, "osmosis-testnet": { "protocol": "cosmos", + "block_time_ms": 2000, + "lagging_lag": 2, + "syncing_lag": 10, "urls": [ "https://osmosis-testnet.drpc.org" ] }, "neutron": { "protocol": "cosmos", + "block_time_ms": 6000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://neutron.drpc.org" ] }, "neutron-testnet": { "protocol": "cosmos", + "block_time_ms": 6000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://neutron-testnet.drpc.org" ] @@ -1155,6 +1551,9 @@ "rootstock": { "protocol": "eth", "id": 30, + "block_time_ms": 45000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://public-node.rsk.co", "https://mycrypto.rsk.co", @@ -1164,6 +1563,9 @@ "rootstock-testnet": { "protocol": "eth", "id": 31, + "block_time_ms": 45000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://public-node.testnet.rsk.co", "https://mycrypto.testnet.rsk.co", @@ -1173,6 +1575,9 @@ "open-campus-codex-sepolia": { "protocol": "eth", "id": 656476, + "block_time_ms": 1200000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.open-campus-codex.gelato.digital", "https://open-campus-codex-sepolia.drpc.org" @@ -1181,6 +1586,9 @@ "gameswift-testnet": { "protocol": "eth", "id": 10888, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc-testnet.gameswift.io", "https://gameswift-testnet.drpc.org" @@ -1189,6 +1597,9 @@ "zircuit-mainnet": { "protocol": "eth", "id": 48900, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://mainnet.zircuit.com", "https://zircuit-mainnet.drpc.org" @@ -1197,6 +1608,9 @@ "zircuit-testnet": { "protocol": "eth", "id": 48899, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://zircuit-testnet.drpc.org" ] @@ -1204,6 +1618,9 @@ "zircuit-garfield-testnet": { "protocol": "eth", "id": 48898, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://garfield-testnet.zircuit.com/", "https://zircuit-garfield-testnet.drpc.org" @@ -1211,12 +1628,18 @@ }, "avail": { "protocol": "polkadot", + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://avail.drpc.org" ] }, "avail-testnet": { "protocol": "polkadot", + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://avail-testnet.drpc.org" ] @@ -1224,6 +1647,9 @@ "fraxtal-testnet": { "protocol": "eth", "id": 2523, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.testnet.frax.com", "https://fraxtal-testnet.drpc.org" @@ -1232,6 +1658,9 @@ "fraxtal": { "protocol": "eth", "id": 252, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.frax.com", "https://fraxtal-rpc.publicnode.com", @@ -1241,6 +1670,9 @@ "tron": { "protocol": "eth", "id": 728126428, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.ankr.com/tron_jsonrpc", "https://api.trongrid.io/jsonrpc", @@ -1250,6 +1682,9 @@ "tron-shasta": { "protocol": "eth", "id": 2494104990, + "block_time_ms": 2000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://api.shasta.trongrid.io/jsonrpc", "https://tron-shasta.drpc.org" @@ -1258,6 +1693,9 @@ "kroma": { "protocol": "eth", "id": 255, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://api.kroma.network", "https://rpc-kroma.rockx.com", @@ -1267,6 +1705,9 @@ "kroma-sepolia": { "protocol": "eth", "id": 2358, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://api.sepolia.kroma.network", "https://kroma-sepolia.drpc.org" @@ -1275,6 +1716,9 @@ "wemix": { "protocol": "eth", "id": 1111, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://api.wemix.com", "https://wemix.drpc.org" @@ -1283,6 +1727,9 @@ "wemix-testnet": { "protocol": "eth", "id": 1112, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://api.test.wemix.com", "https://wemix-testnet.drpc.org" @@ -1290,12 +1737,18 @@ }, "polkadot": { "protocol": "polkadot", + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://polkadot.drpc.org" ] }, "kusama": { "protocol": "polkadot", + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://kusama.drpc.org" ] @@ -1303,6 +1756,9 @@ "metall2": { "protocol": "eth", "id": 1750, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.metall2.com", "https://metall2.drpc.org" @@ -1311,6 +1767,9 @@ "metall2-testnet": { "protocol": "eth", "id": 1740, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://testnet.rpc.metall2.com", "https://metall2-testnet.drpc.org" @@ -1319,6 +1778,9 @@ "bob": { "protocol": "eth", "id": 60808, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.gobob.xyz", "https://bob-mainnet.public.blastapi.io", @@ -1328,6 +1790,9 @@ "bob-testnet": { "protocol": "eth", "id": 808813, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://bob-sepolia.rpc.gobob.xyz", "https://bob-testnet.drpc.org" @@ -1336,6 +1801,9 @@ "goat-testnet3": { "protocol": "eth", "id": 48816, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet3.goat.network" ] @@ -1343,6 +1811,9 @@ "goat-mainnet-alpha": { "protocol": "eth", "id": 2345, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.goat.network", "https://goat-mainnet-alpha.drpc.org" @@ -1351,6 +1822,9 @@ "snaxchain": { "protocol": "eth", "id": 2192, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://mainnet.snaxchain.io", "https://snaxchain.drpc.org" @@ -1359,6 +1833,9 @@ "xlayer": { "protocol": "eth", "id": 196, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.xlayer.tech", "https://xlayerrpc.okx.com", @@ -1368,6 +1845,9 @@ "xlayer-testnet": { "protocol": "eth", "id": 1952, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://testrpc.xlayer.tech" ] @@ -1375,6 +1855,9 @@ "sei": { "protocol": "eth", "id": 1329, + "block_time_ms": 200, + "lagging_lag": 30, + "syncing_lag": 100, "urls": [ "https://evm-rpc.sei-apis.com", "https://sei.drpc.org" @@ -1383,6 +1866,9 @@ "sei-devnet": { "protocol": "eth", "id": 713715, + "block_time_ms": 200, + "lagging_lag": 30, + "syncing_lag": 100, "urls": [ "https://evm-rpc-arctic-1.sei-apis.com", "https://evm-rpc.arctic-1.seinetwork.io", @@ -1392,6 +1878,9 @@ "sei-testnet": { "protocol": "eth", "id": 1328, + "block_time_ms": 200, + "lagging_lag": 30, + "syncing_lag": 100, "urls": [ "https://evm-rpc-testnet.sei-apis.com", "https://sei-testnet.drpc.org" @@ -1399,12 +1888,18 @@ }, "ton": { "protocol": "ton", + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://ton.drpc.org" ] }, "ton-testnet": { "protocol": "ton", + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://ton-testnet.drpc.org" ] @@ -1412,6 +1907,9 @@ "sonic-testnet": { "protocol": "eth", "id": 57054, + "block_time_ms": 300, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.blaze.soniclabs.com", "https://sonic-blaze-rpc.publicnode.com", @@ -1421,6 +1919,9 @@ "sonic-testnet-v2": { "protocol": "eth", "id": 14601, + "block_time_ms": 300, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.soniclabs.com" ] @@ -1428,6 +1929,9 @@ "sonic": { "protocol": "eth", "id": 146, + "block_time_ms": 300, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.soniclabs.com", "https://sonic-rpc.publicnode.com", @@ -1437,6 +1941,9 @@ "lens-testnet": { "protocol": "eth", "id": 37111, + "block_time_ms": 60000, + "lagging_lag": 50, + "syncing_lag": 70, "urls": [ "https://rpc.testnet.lens.dev", "https://lens-testnet.drpc.org" @@ -1445,6 +1952,9 @@ "lens": { "protocol": "eth", "id": 232, + "block_time_ms": 5000, + "lagging_lag": 50, + "syncing_lag": 70, "urls": [ "https://rpc.lens.xyz", "https://lens.drpc.org" @@ -1453,6 +1963,9 @@ "unichain": { "protocol": "eth", "id": 130, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://mainnet.unichain.org", "https://unichain-rpc.publicnode.com", @@ -1462,6 +1975,9 @@ "unichain-sepolia": { "protocol": "eth", "id": 1301, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://sepolia.unichain.org", "https://unichain-sepolia-rpc.publicnode.com", @@ -1471,6 +1987,9 @@ "apechain": { "protocol": "eth", "id": 33139, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://rpc.apechain.com", "https://apechain.drpc.org" @@ -1479,6 +1998,9 @@ "apechain-curtis": { "protocol": "eth", "id": 33111, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://rpc.curtis.apechain.com", "https://apechain-curtis.drpc.org" @@ -1487,6 +2009,9 @@ "soneium": { "protocol": "eth", "id": 1868, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://rpc.soneium.org", "https://soneium.drpc.org" @@ -1495,6 +2020,9 @@ "soneium-minato": { "protocol": "eth", "id": 1946, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://rpc.minato.soneium.org", "https://soneium-minato.drpc.org" @@ -1503,6 +2031,9 @@ "zero": { "protocol": "eth", "id": 543210, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://rpc.zerion.io/v1/zero", "https://zero.drpc.org" @@ -1511,6 +2042,9 @@ "worldchain": { "protocol": "eth", "id": 480, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://worldchain-mainnet.g.alchemy.com/public", "https://480.rpc.thirdweb.com", @@ -1521,6 +2055,9 @@ "worldchain-sepolia": { "protocol": "eth", "id": 4801, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://worldchain-sepolia.g.alchemy.com/public", "https://4801.rpc.thirdweb.com", @@ -1531,6 +2068,9 @@ "cronos-zkevm": { "protocol": "eth", "id": 388, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://mainnet.zkevm.cronos.org", "https://cronos-zkevm.drpc.org" @@ -1539,6 +2079,9 @@ "cronos-zkevm-testnet": { "protocol": "eth", "id": 240, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://testnet.zkevm.cronos.org", "https://cronos-zkevm-testnet.drpc.org" @@ -1547,6 +2090,9 @@ "viction": { "protocol": "eth", "id": 88, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://rpc.viction.xyz", "https://viction.drpc.org" @@ -1555,6 +2101,9 @@ "viction-testnet": { "protocol": "eth", "id": 89, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://rpc-testnet.viction.xyz", "https://viction-testnet.drpc.org" @@ -1563,6 +2112,9 @@ "megaeth": { "protocol": "eth", "id": 4326, + "block_time_ms": 1000, + "lagging_lag": 40, + "syncing_lag": 80, "urls": [ "https://mainnet.megaeth.com/rpc", "https://megaeth.drpc.org" @@ -1571,6 +2123,9 @@ "megaeth-testnet": { "protocol": "eth", "id": 6343, + "block_time_ms": 1000, + "lagging_lag": 40, + "syncing_lag": 80, "urls": [ "https://carrot.megaeth.com/rpc", "https://megaeth-testnet.drpc.org" @@ -1579,6 +2134,9 @@ "megaeth-deprecated": { "protocol": "eth", "id": 6342, + "block_time_ms": 1000, + "lagging_lag": 40, + "syncing_lag": 80, "urls": [ "https://megaeth-deprecated.drpc.org" ] @@ -1586,6 +2144,9 @@ "0g-mainnet": { "protocol": "eth", "id": 16661, + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://evmrpc.0g.ai", "https://0g-mainnet.drpc.org" @@ -1594,6 +2155,9 @@ "0g-newton-testnet": { "protocol": "eth", "id": 16600, + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://0g-newton-testnet.drpc.org" ] @@ -1601,6 +2165,9 @@ "0g-galileo-testnet": { "protocol": "eth", "id": 16602, + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://evmrpc-testnet.0g.ai" ] @@ -1608,6 +2175,9 @@ "superseed": { "protocol": "eth", "id": 5330, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://mainnet.superseed.xyz", "https://superseed.drpc.org" @@ -1616,6 +2186,9 @@ "superseed-sepolia": { "protocol": "eth", "id": 53302, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://sepolia.superseed.xyz", "https://superseed-sepolia.drpc.org" @@ -1624,6 +2197,9 @@ "ink": { "protocol": "eth", "id": 57073, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc-gel.inkonchain.com", "https://rpc-qnd.inkonchain.com", @@ -1633,6 +2209,9 @@ "ink-sepolia": { "protocol": "eth", "id": 763373, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc-gel-sepolia.inkonchain.com", "https://ink-sepolia.drpc.org" @@ -1641,6 +2220,9 @@ "abstract": { "protocol": "eth", "id": 2741, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://api.mainnet.abs.xyz", "https://abstract.drpc.org" @@ -1649,6 +2231,9 @@ "abstract-sepolia": { "protocol": "eth", "id": 11124, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://api.testnet.abs.xyz", "https://abstract-sepolia.drpc.org" @@ -1657,6 +2242,9 @@ "hashkey": { "protocol": "eth", "id": 177, + "block_time_ms": 2000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://mainnet.hsk.xyz", "https://hashkey.drpc.org" @@ -1665,6 +2253,9 @@ "hashkey-testnet": { "protocol": "eth", "id": 133, + "block_time_ms": 2000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://testnet.hsk.xyz" ] @@ -1672,6 +2263,9 @@ "gravity-alpha": { "protocol": "eth", "id": 1625, + "block_time_ms": 200, + "lagging_lag": 30, + "syncing_lag": 100, "urls": [ "https://rpc.gravity.xyz", "https://rpc.ankr.com/gravity", @@ -1681,6 +2275,9 @@ "gravity-alpha-sepolia": { "protocol": "eth", "id": 13505, + "block_time_ms": 200, + "lagging_lag": 30, + "syncing_lag": 100, "urls": [ "https://rpc-sepolia.gravity.xyz", "https://gravity-alpha-sepolia.drpc.org" @@ -1689,6 +2286,9 @@ "hyperliquid": { "protocol": "eth", "id": 999, + "block_time_ms": 200, + "lagging_lag": 30, + "syncing_lag": 100, "urls": [ "https://rpc.hyperliquid.xyz/evm" ] @@ -1696,6 +2296,9 @@ "hyperliquid-testnet": { "protocol": "eth", "id": 998, + "block_time_ms": 200, + "lagging_lag": 30, + "syncing_lag": 100, "urls": [ "https://api.hyperliquid-testnet.xyz/evm", "https://hyperliquid-testnet.drpc.org" @@ -1704,6 +2307,9 @@ "merlin": { "protocol": "eth", "id": 4200, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.merlinchain.io", "https://merlin-mainnet-enterprise.unifra.io", @@ -1714,6 +2320,9 @@ "merlin-testnet": { "protocol": "eth", "id": 686868, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.wonnetwork.org", "https://merlin-testnet.drpc.org" @@ -1722,6 +2331,9 @@ "mezo": { "protocol": "eth", "id": 31612, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc_evm-mezo.imperator.co", "https://mezo-mainnet.boar.network", @@ -1733,6 +2345,9 @@ "mezo-testnet": { "protocol": "eth", "id": 31611, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.test.mezo.org", "https://mezo-testnet.drpc.org" @@ -1741,6 +2356,9 @@ "plume": { "protocol": "eth", "id": 98866, + "block_time_ms": 400, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.plume.org", "https://plume.drpc.org" @@ -1749,6 +2367,9 @@ "plume-testnet": { "protocol": "eth", "id": 98867, + "block_time_ms": 400, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://testnet-rpc.plume.org", "https://plume-testnet.drpc.org" @@ -1757,6 +2378,9 @@ "monad-mainnet": { "protocol": "eth", "id": 143, + "block_time_ms": 1000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.monad.xyz", "https://monad-mainnet.drpc.org" @@ -1765,6 +2389,9 @@ "monad-testnet": { "protocol": "eth", "id": 10143, + "block_time_ms": 1000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://testnet-rpc.monad.xyz", "https://monad-testnet.drpc.org" @@ -1772,48 +2399,72 @@ }, "dogecoin": { "protocol": "bitcoin", + "block_time_ms": 60000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://dogecoin.drpc.org" ] }, "dogecoin-testnet": { "protocol": "bitcoin", + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://dogecoin-testnet.drpc.org" ] }, "litecoin": { "protocol": "bitcoin", + "block_time_ms": 180000, + "lagging_lag": 2, + "syncing_lag": 5, "urls": [ "https://litecoin.drpc.org" ] }, "litecoin-testnet": { "protocol": "bitcoin", + "block_time_ms": 180000, + "lagging_lag": 2, + "syncing_lag": 5, "urls": [ "https://litecoin-testnet.drpc.org" ] }, "bitcoin-cash": { "protocol": "bitcoin", + "block_time_ms": 600000, + "lagging_lag": 1, + "syncing_lag": 3, "urls": [ "https://bitcoin-cash.drpc.org" ] }, "bitcoin-cash-testnet": { "protocol": "bitcoin", + "block_time_ms": 600000, + "lagging_lag": 1, + "syncing_lag": 3, "urls": [ "https://bitcoin-cash-testnet.drpc.org" ] }, "ripple": { "protocol": "ripple", + "block_time_ms": 4000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://ripple.drpc.org" ] }, "ripple-testnet": { "protocol": "ripple", + "block_time_ms": 4000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://ripple-testnet.drpc.org" ] @@ -1821,6 +2472,9 @@ "swell": { "protocol": "eth", "id": 1923, + "block_time_ms": 2000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://swell-mainnet.alt.technology", "https://rpc.ankr.com/swell", @@ -1830,6 +2484,9 @@ "swell-testnet": { "protocol": "eth", "id": 1924, + "block_time_ms": 2000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://swell-testnet.alt.technology", "https://rpc.ankr.com/swell-testnet", @@ -1838,12 +2495,18 @@ }, "kadena": { "protocol": "kadena", + "block_time_ms": 3000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://kadena.drpc.org" ] }, "kadena-testnet": { "protocol": "kadena", + "block_time_ms": 3000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://kadena-testnet.drpc.org" ] @@ -1851,6 +2514,9 @@ "ozean-poseidon-testnet": { "protocol": "eth", "id": 31911, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://ozean-poseidon-testnet.drpc.org" ] @@ -1858,6 +2524,9 @@ "hemi": { "protocol": "eth", "id": 43111, + "block_time_ms": 12000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://rpc.hemi.network/rpc", "https://hemi.drpc.org" @@ -1866,6 +2535,9 @@ "hemi-testnet": { "protocol": "eth", "id": 743111, + "block_time_ms": 12000, + "lagging_lag": 20, + "syncing_lag": 10, "urls": [ "https://testnet.rpc.hemi.network/rpc", "https://hemi-testnet.drpc.org" @@ -1873,12 +2545,18 @@ }, "gnosis-beacon-chain": { "protocol": "eth-beacon-chain", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://gnosis-beacon-chain.drpc.org" ] }, "gnosis-chiado-beacon-chain": { "protocol": "eth-beacon-chain", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://gnosis-chiado-beacon-chain.drpc.org" ] @@ -1886,6 +2564,9 @@ "shibarium": { "protocol": "eth", "id": 109, + "block_time_ms": 5000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.shibrpc.com", "https://shib.nownodes.io", @@ -1895,6 +2576,9 @@ "plasma": { "protocol": "eth", "id": 9745, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.plasma.to", "https://plasma.drpc.org" @@ -1903,6 +2587,9 @@ "plasma-testnet": { "protocol": "eth", "id": 9746, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://testnet-rpc.plasma.to", "https://plasma-testnet.drpc.org" @@ -1911,6 +2598,9 @@ "katana": { "protocol": "eth", "id": 747474, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.katana.network", "https://katana.gateway.tenderly.co/", @@ -1921,6 +2611,9 @@ "katana-testnet": { "protocol": "eth", "id": 737373, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc-bokuto.katanarpc.com", "https://katana-testnet.drpc.org" @@ -1929,6 +2622,9 @@ "doma": { "protocol": "eth", "id": 97477, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.doma.xyz", "https://doma.drpc.org" @@ -1937,6 +2633,9 @@ "doma-testnet": { "protocol": "eth", "id": 97476, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc-testnet.doma.xyz", "https://doma-testnet.drpc.org" @@ -1945,6 +2644,9 @@ "sophon": { "protocol": "eth", "id": 50104, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.sophon.xyz", "https://sophon.drpc.org" @@ -1953,6 +2655,9 @@ "sophon-testnet": { "protocol": "eth", "id": 531050104, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.sophon.xyz", "https://sophon-testnet.drpc.org" @@ -1961,6 +2666,9 @@ "arc": { "protocol": "eth", "id": 5042, + "block_time_ms": 1000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://arc.drpc.org" ] @@ -1968,6 +2676,9 @@ "arc-testnet": { "protocol": "eth", "id": 5042002, + "block_time_ms": 1000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.testnet.arc.network", "https://rpc.quicknode.testnet.arc.network", @@ -1978,6 +2689,9 @@ "dogeos-testnet": { "protocol": "eth", "id": 6281971, + "block_time_ms": 3000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://dogeos-testnet.drpc.org" ] @@ -1985,6 +2699,9 @@ "somnia": { "protocol": "eth", "id": 5031, + "block_time_ms": 100, + "lagging_lag": 40, + "syncing_lag": 80, "urls": [ "https://api.infra.mainnet.somnia.network", "https://somnia.drpc.org" @@ -1993,6 +2710,9 @@ "somnia-testnet": { "protocol": "eth", "id": 50312, + "block_time_ms": 100, + "lagging_lag": 40, + "syncing_lag": 80, "urls": [ "https://dream-rpc.somnia.network", "https://somnia-testnet.drpc.org" @@ -2001,6 +2721,9 @@ "bittensor": { "protocol": "eth", "id": 964, + "block_time_ms": 12000, + "lagging_lag": 2, + "syncing_lag": 10, "urls": [ "https://lite.chain.opentensor.ai", "https://bittensor.drpc.org" @@ -2009,6 +2732,9 @@ "bittensor-testnet": { "protocol": "eth", "id": 945, + "block_time_ms": 12000, + "lagging_lag": 2, + "syncing_lag": 10, "urls": [ "https://test.chain.opentensor.ai", "https://bittensor-testnet.drpc.org" @@ -2017,6 +2743,9 @@ "iotex": { "protocol": "eth", "id": 4689, + "block_time_ms": 2500, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://babel-api.mainnet.iotex.io", "https://iotex.drpc.org" @@ -2025,6 +2754,9 @@ "iotex-testnet": { "protocol": "eth", "id": 4690, + "block_time_ms": 2500, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://babel-api.testnet.iotex.io", "https://iotex-testnet.drpc.org" @@ -2033,6 +2765,9 @@ "xrpl": { "protocol": "eth", "id": 1440000, + "block_time_ms": 4000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.xrplevm.org", "https://xrpl.drpc.org" @@ -2041,6 +2776,9 @@ "xrpl-testnet": { "protocol": "eth", "id": 1449000, + "block_time_ms": 4000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.xrplevm.org", "https://xrpl-testnet.drpc.org" @@ -2049,6 +2787,9 @@ "xrpl-devnet": { "protocol": "eth", "id": 1440002, + "block_time_ms": 4000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.devnet.xrplevm.org", "https://xrpl-devnet.drpc.org" @@ -2057,6 +2798,9 @@ "tempo-mainnet": { "protocol": "eth", "id": 4217, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.mainnet.tempo.xyz", "https://tempo-mainnet.drpc.org" @@ -2065,6 +2809,9 @@ "tempo-testnet": { "protocol": "eth", "id": 42429, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.tempo.xyz", "https://tempo-testnet.drpc.org" @@ -2073,6 +2820,9 @@ "tempo-moderato-testnet": { "protocol": "eth", "id": 42431, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.moderato.tempo.xyz", "https://tempo-moderato-testnet.drpc.org" @@ -2081,6 +2831,9 @@ "xdc": { "protocol": "eth", "id": 50, + "block_time_ms": 2500, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://erpc.xinfin.network", "https://rpc.xinfin.network", @@ -2095,6 +2848,9 @@ "xdc-testnet": { "protocol": "eth", "id": 51, + "block_time_ms": 2500, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://rpc.apothem.network", "https://erpc.apothem.network", @@ -2105,6 +2861,9 @@ "creditcoin": { "protocol": "eth", "id": 102030, + "block_time_ms": 15000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://mainnet3.creditcoin.network", "https://creditcoin.drpc.org" @@ -2113,6 +2872,9 @@ "creditcoin-testnet": { "protocol": "eth", "id": 102031, + "block_time_ms": 15000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://rpc.cc3-testnet.creditcoin.network", "https://creditcoin-testnet.drpc.org" @@ -2121,6 +2883,9 @@ "creditcoin-devnet": { "protocol": "eth", "id": 102032, + "block_time_ms": 15000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://rpc.cc3-devnet.creditcoin.network", "https://creditcoin-devnet.drpc.org" @@ -2129,6 +2894,9 @@ "flare": { "protocol": "eth", "id": 14, + "block_time_ms": 1500, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://flare-api.flare.network/ext/C/rpc", "https://flare.rpc.thirdweb.com", @@ -2145,6 +2913,9 @@ "flare-testnet": { "protocol": "eth", "id": 114, + "block_time_ms": 1500, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://coston2-api.flare.network/ext/C/rpc", "https://flare-testnet-coston2.rpc.thirdweb.com", @@ -2159,6 +2930,9 @@ "oasys": { "protocol": "eth", "id": 248, + "block_time_ms": 6000, + "lagging_lag": 3, + "syncing_lag": 15, "urls": [ "https://rpc.mainnet.oasys.games", "https://oasys.drpc.org" @@ -2167,6 +2941,9 @@ "oasys-testnet": { "protocol": "eth", "id": 9372, + "block_time_ms": 6000, + "lagging_lag": 3, + "syncing_lag": 15, "urls": [ "https://rpc.testnet.oasys.games", "https://oasys-testnet.drpc.org" @@ -2175,6 +2952,9 @@ "songbird": { "protocol": "eth", "id": 19, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://songbird-api.flare.network/ext/C/rpc", "https://01-gravelines-006-01.rpc.tatum.io/ext/bc/C/rpc", @@ -2189,6 +2969,9 @@ "songbird-testnet": { "protocol": "eth", "id": 16, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://coston-api.flare.network/ext/C/rpc", "https://songbird-testnet-coston.rpc.thirdweb.com", @@ -2202,6 +2985,9 @@ "story": { "protocol": "eth", "id": 1514, + "block_time_ms": 2500, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://mainnet.storyrpc.io", "https://story.drpc.org" @@ -2210,6 +2996,9 @@ "story-testnet": { "protocol": "eth", "id": 1513, + "block_time_ms": 2500, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://testnet.storyrpc.io", "https://story-testnet.drpc.org" @@ -2218,6 +3007,9 @@ "story-aeneid-testnet": { "protocol": "eth", "id": 1315, + "block_time_ms": 2500, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://aeneid.storyrpc.io", "https://story-aeneid-testnet.drpc.org" @@ -2226,6 +3018,9 @@ "vechain": { "protocol": "eth", "id": 100009, + "block_time_ms": 10000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc-mainnet.vechain.energy", "https://vechain.drpc.org" @@ -2234,6 +3029,9 @@ "vechain-testnet": { "protocol": "eth", "id": 100010, + "block_time_ms": 10000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc-testnet.vechain.energy", "https://vechain-testnet.drpc.org" @@ -2241,192 +3039,288 @@ }, "babylon": { "protocol": "cosmos", + "block_time_ms": 10000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://babylon.drpc.org" ] }, "babylon-testnet": { "protocol": "cosmos", + "block_time_ms": 10000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://babylon-testnet.drpc.org" ] }, "agoric": { "protocol": "cosmos", + "block_time_ms": 5000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://agoric.drpc.org" ] }, "coreum": { "protocol": "cosmos", + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://coreum.drpc.org" ] }, "coreum-testnet": { "protocol": "cosmos", + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://coreum-testnet.drpc.org" ] }, "fetch-ai": { "protocol": "cosmos", + "block_time_ms": 6000, + "lagging_lag": 3, + "syncing_lag": 15, "urls": [ "https://fetch-ai.drpc.org" ] }, "provenance": { "protocol": "cosmos", + "block_time_ms": 5000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://provenance.drpc.org" ] }, "initia": { "protocol": "cosmos", + "block_time_ms": 2000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://initia.drpc.org" ] }, "injective": { "protocol": "cosmos", + "block_time_ms": 700, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://injective.drpc.org" ] }, "injective-testnet": { "protocol": "cosmos", + "block_time_ms": 700, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://injective-testnet.drpc.org" ] }, "mantra": { "protocol": "cosmos", + "block_time_ms": 3000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://mantra.drpc.org" ] }, "bitcoinsv": { "protocol": "bitcoin", + "block_time_ms": 60000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://bitcoinsv.drpc.org" ] }, "bitcoinsv-testnet": { "protocol": "bitcoin", + "block_time_ms": 60000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://bitcoinsv-testnet.drpc.org" ] }, "dash": { "protocol": "bitcoin", + "block_time_ms": 60000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://dash.drpc.org" ] }, "dash-testnet": { "protocol": "bitcoin", + "block_time_ms": 60000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://dash-testnet.drpc.org" ] }, "digibyte": { "protocol": "bitcoin", + "block_time_ms": 15000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://digibyte.drpc.org" ] }, "digibyte-testnet": { "protocol": "bitcoin", + "block_time_ms": 15000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://digibyte-testnet.drpc.org" ] }, "verge": { "protocol": "bitcoin", + "block_time_ms": 30000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://verge.drpc.org" ] }, "verge-testnet": { "protocol": "bitcoin", + "block_time_ms": 30000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://verge-testnet.drpc.org" ] }, "zcash": { "protocol": "bitcoin", + "block_time_ms": 75000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://zcash.drpc.org" ] }, "zcash-testnet": { "protocol": "bitcoin", + "block_time_ms": 75000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://zcash-testnet.drpc.org" ] }, "polymesh": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://polymesh.drpc.org" ] }, "polymesh-testnet": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://polymesh-testnet.drpc.org" ] }, "westend": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://westend.drpc.org" ] }, "westend-asset-hub": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://westend-asset-hub.drpc.org" ] }, "paseo": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://paseo.drpc.org" ] }, "paseo-asset-hub": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://paseo-asset-hub.drpc.org" ] }, "polkadot-asset-hub": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://polkadot-asset-hub.drpc.org" ] }, "zkverify": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://zkverify.drpc.org" ] }, "zkverify-testnet": { "protocol": "polkadot", + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://zkverify-testnet.drpc.org" ] }, "aztec-mainnet": { "protocol": "aztec", + "block_time_ms": 36000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://aztec-mainnet.drpc.org" ] }, "aztec-testnet": { "protocol": "aztec", + "block_time_ms": 36000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.aztec-labs.com" ], @@ -2434,6 +3328,9 @@ }, "aztec-devnet": { "protocol": "aztec", + "block_time_ms": 36000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://v4-devnet-2.aztec-labs.com/" ], @@ -2442,6 +3339,9 @@ "moca": { "protocol": "eth", "id": 2288, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://moca.drpc.org" ] @@ -2449,12 +3349,18 @@ "moca-testnet": { "protocol": "eth", "id": 222888, + "block_time_ms": 1000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://moca-testnet.drpc.org" ] }, "lambda": { "protocol": "app", + "block_time_ms": 1000, + "lagging_lag": 0, + "syncing_lag": 0, "urls": [ "https://lambda.drpc.org" ] @@ -2462,6 +3368,9 @@ "morph": { "protocol": "eth", "id": 2818, + "block_time_ms": 1000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://rpc.morphl2.io", "https://rpc-quicknode.morphl2.io", @@ -2471,6 +3380,9 @@ "morph-hoodi": { "protocol": "eth", "id": 2910, + "block_time_ms": 1000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://morph-hoodi.drpc.org" ] @@ -2478,6 +3390,9 @@ "robinhood": { "protocol": "eth", "id": 4663, + "block_time_ms": 250, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://robinhood.drpc.org" ] @@ -2485,6 +3400,9 @@ "robinhood-testnet": { "protocol": "eth", "id": 46630, + "block_time_ms": 250, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.chain.robinhood.com/rpc", "https://robinhood-testnet.drpc.org" @@ -2493,6 +3411,9 @@ "tac": { "protocol": "eth", "id": 239, + "block_time_ms": 1000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://rpc.tac.build", "https://rpc.ankr.com/tac", @@ -2503,6 +3424,9 @@ "tac-spb": { "protocol": "eth", "id": 2391, + "block_time_ms": 1000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://spb.rpc.tac.build", "https://rpc.ankr.com/tac_spb", @@ -2513,6 +3437,9 @@ "tea": { "protocol": "eth", "id": 6122, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://tea.drpc.org" ] @@ -2520,6 +3447,9 @@ "tea-sepolia": { "protocol": "eth", "id": 10218, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://tea-sepolia.g.alchemy.com/public", "https://tea-sepolia.drpc.org" @@ -2527,18 +3457,27 @@ }, "algorand": { "protocol": "avm", + "block_time_ms": 3000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://algorand.drpc.org" ] }, "algorand-testnet": { "protocol": "avm", + "block_time_ms": 3000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://algorand-testnet.drpc.org" ] }, "algorand-betanet": { "protocol": "avm", + "block_time_ms": 3000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://algorand-betanet.drpc.org" ] @@ -2546,6 +3485,9 @@ "orderly": { "protocol": "eth", "id": 291, + "block_time_ms": 2000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://rpc.orderly.network", "https://orderly.drpc.org" @@ -2554,6 +3496,9 @@ "orderly-testnet": { "protocol": "eth", "id": 4460, + "block_time_ms": 2000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://testnet-rpc.orderly.org", "https://orderly-testnet.drpc.org" @@ -2562,6 +3507,9 @@ "abcore": { "protocol": "eth", "id": 36888, + "block_time_ms": 3000, + "lagging_lag": 2, + "syncing_lag": 6, "urls": [ "https://rpc.core.ab.org", "https://rpc1.core.ab.org", @@ -2571,6 +3519,9 @@ "bsquared": { "protocol": "eth", "id": 223, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://mainnet.b2-rpc.com", "https://rpc.bsquared.network", @@ -2583,6 +3534,9 @@ "adi": { "protocol": "eth", "id": 36900, + "block_time_ms": 10000, + "lagging_lag": 4, + "syncing_lag": 12, "urls": [ "https://rpc.adifoundation.ai", "https://adi.drpc.org" @@ -2591,6 +3545,9 @@ "stable": { "protocol": "eth", "id": 988, + "block_time_ms": 700, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.stable.xyz", "https://stable.drpc.org" @@ -2599,6 +3556,9 @@ "stable-testnet": { "protocol": "eth", "id": 2201, + "block_time_ms": 700, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.stable.xyz", "https://stable-testnet.drpc.org" @@ -2607,6 +3567,9 @@ "jovay": { "protocol": "eth", "id": 5734951, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.jovay.io", "https://api.zan.top/node/v1/jovay/mainnet/${ZAN_API_KEY}", @@ -2616,6 +3579,9 @@ "jovay-sepolia": { "protocol": "eth", "id": 2019775, + "block_time_ms": 3000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://api.zan.top/public/jovay-testnet", "https://api.zan.top/node/v1/jovay/testnet/${ZAN_API_KEY}", @@ -2625,6 +3591,9 @@ "pharos": { "protocol": "eth", "id": 1672, + "block_time_ms": 1000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://pharos.drpc.org" ] @@ -2632,6 +3601,9 @@ "pharos-testnet": { "protocol": "eth", "id": 688688, + "block_time_ms": 1000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://pharos-testnet.drpc.org" ] @@ -2639,6 +3611,9 @@ "pharos-atlantic-testnet": { "protocol": "eth", "id": 688689, + "block_time_ms": 1000, + "lagging_lag": 10, + "syncing_lag": 20, "urls": [ "https://pharos-atlantic-testnet.drpc.org" ] @@ -2646,6 +3621,9 @@ "edge": { "protocol": "eth", "id": 3343, + "block_time_ms": 30000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://edge-mainnet.g.alchemy.com/public", "https://edge.drpc.org" @@ -2654,6 +3632,9 @@ "edge-testnet": { "protocol": "eth", "id": 33431, + "block_time_ms": 30000, + "lagging_lag": 1, + "syncing_lag": 6, "urls": [ "https://edge-testnet.g.alchemy.com/public", "https://edge-testnet.drpc.org" @@ -2662,6 +3643,9 @@ "botanix": { "protocol": "eth", "id": 3637, + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://rpc.botanixlabs.com", "https://botanix.drpc.org" @@ -2670,6 +3654,9 @@ "botanix-testnet": { "protocol": "eth", "id": 3636, + "block_time_ms": 6000, + "lagging_lag": 5, + "syncing_lag": 10, "urls": [ "https://node.botanixlabs.dev", "https://botanix-testnet.drpc.org" @@ -2678,6 +3665,9 @@ "kite": { "protocol": "eth", "id": 2366, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.gokite.ai", "https://kite.drpc.org" @@ -2686,6 +3676,9 @@ "humanity": { "protocol": "eth", "id": 6985385, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://humanity-mainnet.g.alchemy.com/public", "https://humanity.drpc.org" @@ -2694,6 +3687,9 @@ "humanity-testnet": { "protocol": "eth", "id": 7080969, + "block_time_ms": 2000, + "lagging_lag": 20, + "syncing_lag": 40, "urls": [ "https://rpc.testnet.humanity.org", "https://humanity-testnet.g.alchemy.com/public", diff --git a/reference-rpc-endpoint.sh b/reference-rpc-endpoint.sh index da1fa644..eb3a964d 100755 --- a/reference-rpc-endpoint.sh +++ b/reference-rpc-endpoint.sh @@ -44,6 +44,51 @@ if [ "$1" = "--protocol" ]; then exit 0 fi +# Look up the expected block time (milliseconds) for a registry key (drpc slug) or chain id. +# Used by sync-status.sh / check-health.sh to scale the lag thresholds per chain. +if [ "$1" = "--block-time-ms" ]; then + if [ $# -lt 2 ]; then + echo "Usage: $0 --block-time-ms " + exit 1 + fi + key="$2" + # Try by slug first + bt=$(jq -r --arg k "$key" '.[$k].block_time_ms // empty' "$json_file" 2>/dev/null) + if [ -z "$bt" ]; then + # Fall back to lookup by chain id (decimal; convert hex) + idk="$key" + [[ "$idk" == 0x* ]] && idk=$(printf "%d" "$idk" 2>/dev/null) + if [[ "$idk" =~ ^[0-9]+$ ]]; then + bt=$(jq -r --arg id "$idk" 'first(.[] | select(.id == ($id | tonumber)) | .block_time_ms) // empty' "$json_file" 2>/dev/null) + fi + fi + [ -z "$bt" ] && exit 1 + echo "$bt" + exit 0 +fi + +# Look up the dRPC lag thresholds (in BLOCKS) for a registry key (slug) or chain id. +# Prints " ". Used by sync-status.sh -> check-health.sh so our +# online/lagging/syncing status matches the dRPC gateway's per-chain lag model. +if [ "$1" = "--lags" ]; then + if [ $# -lt 2 ]; then + echo "Usage: $0 --lags " + exit 1 + fi + key="$2" + lags=$(jq -r --arg k "$key" 'if (.[$k].lagging_lag != null and .[$k].syncing_lag != null) then "\(.[$k].lagging_lag) \(.[$k].syncing_lag)" else empty end' "$json_file" 2>/dev/null) + if [ -z "$lags" ]; then + idk="$key" + [[ "$idk" == 0x* ]] && idk=$(printf "%d" "$idk" 2>/dev/null) + if [[ "$idk" =~ ^[0-9]+$ ]]; then + lags=$(jq -r --arg id "$idk" 'first(.[] | select(.id == ($id | tonumber)) | select(.lagging_lag != null and .syncing_lag != null) | "\(.lagging_lag) \(.syncing_lag)") // empty' "$json_file" 2>/dev/null) + fi + fi + [ -z "$lags" ] && exit 1 + echo "$lags" + exit 0 +fi + # Look up by rollup_version (for Aztec: version from result.header.globalVariables.version) if [ "$1" = "--rollup-version" ]; then if [ $# -lt 2 ]; then diff --git a/sync-status.sh b/sync-status.sh index 9ffa5d68..699a233d 100755 --- a/sync-status.sh +++ b/sync-status.sh @@ -158,6 +158,24 @@ for path in $pathlist; do fi fi + # Per-chain dRPC lag thresholds (in blocks) so check-health.sh reports + # online/lagging/syncing the same way the dRPC gateway does (homogeneous status). + # Resolve by drpc slug first, then by chain id; empty => check-health uses its + # built-in defaults. + lags="" + if [ -n "$chain_slug" ]; then + lags=$($BASEPATH/reference-rpc-endpoint.sh --lags "$chain_slug" 2>/dev/null) || lags="" + fi + if [ -z "$lags" ] && [ -n "$chain_id_decimal" ]; then + lags=$($BASEPATH/reference-rpc-endpoint.sh --lags "$chain_id_decimal" 2>/dev/null) || lags="" + fi + if [ -n "$lags" ]; then + export LAGGING_LAG="${lags%% *}" + export SYNCING_LAG="${lags##* }" + else + unset LAGGING_LAG SYNCING_LAG + fi + # Call the health check script with RPC_URL, ref, and chain-type flag if $is_aztec; then $BASEPATH/check-health.sh "$RPC_URL" --aztec $ref