diff --git a/assets/apps/openscan.png b/assets/apps/openscan.png index a745a68301..de7fb30085 100644 Binary files a/assets/apps/openscan.png and b/assets/apps/openscan.png differ diff --git a/assets/networks/11155420.svg b/assets/networks/11155420.svg new file mode 100644 index 0000000000..6e3d503666 --- /dev/null +++ b/assets/networks/11155420.svg @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/networks/421614.svg b/assets/networks/421614.svg new file mode 100644 index 0000000000..0be8e2667e --- /dev/null +++ b/assets/networks/421614.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/networks/43113.svg b/assets/networks/43113.svg new file mode 100644 index 0000000000..bdf6b82017 --- /dev/null +++ b/assets/networks/43113.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/networks/80002.svg b/assets/networks/80002.svg new file mode 100644 index 0000000000..89b9540402 --- /dev/null +++ b/assets/networks/80002.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/networks/84532.svg b/assets/networks/84532.svg new file mode 100644 index 0000000000..a9998140a2 --- /dev/null +++ b/assets/networks/84532.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/organizations/openscan.png b/assets/organizations/openscan.png index a745a68301..de7fb30085 100644 Binary files a/assets/organizations/openscan.png and b/assets/organizations/openscan.png differ diff --git a/assets/tokens/11155111/0x7439E9Bb6D8a84dd3A23fe621A30F95403F87fB9.png b/assets/tokens/11155111/0x7439E9Bb6D8a84dd3A23fe621A30F95403F87fB9.png index a745a68301..c56d873349 100644 Binary files a/assets/tokens/11155111/0x7439E9Bb6D8a84dd3A23fe621A30F95403F87fB9.png and b/assets/tokens/11155111/0x7439E9Bb6D8a84dd3A23fe621A30F95403F87fB9.png differ diff --git a/assets/tokens/11155111/0x93fCA4c6E2525C09c95269055B46f16b1459BF9d.png b/assets/tokens/11155111/0x93fCA4c6E2525C09c95269055B46f16b1459BF9d.png index a745a68301..c56d873349 100644 Binary files a/assets/tokens/11155111/0x93fCA4c6E2525C09c95269055B46f16b1459BF9d.png and b/assets/tokens/11155111/0x93fCA4c6E2525C09c95269055B46f16b1459BF9d.png differ diff --git a/assets/tokens/11155111/0xc21d97673B9E0B3AA53a06439F71fDc1facE393B.png b/assets/tokens/11155111/0xc21d97673B9E0B3AA53a06439F71fDc1facE393B.png index a745a68301..c56d873349 100644 Binary files a/assets/tokens/11155111/0xc21d97673B9E0B3AA53a06439F71fDc1facE393B.png and b/assets/tokens/11155111/0xc21d97673B9E0B3AA53a06439F71fDc1facE393B.png differ diff --git a/data/networks.json b/data/networks.json index b66c23529e..4a7213e99e 100644 --- a/data/networks.json +++ b/data/networks.json @@ -1,5 +1,5 @@ { - "updatedAt": "2025-12-01", + "updatedAt": "2026-04-21T12:50:03.113Z", "networks": [ { "type": "evm", @@ -262,6 +262,126 @@ } ] }, + { + "type": "evm", + "networkId": "eip155:421614", + "chainId": 421614, + "name": "Arbitrum Sepolia", + "shortName": "Arb Sepolia", + "description": "Arbitrum testnet for developers", + "currency": "ETH", + "color": "#28A0F0", + "isTestnet": true, + "logo": "assets/networks/421614.svg", + "links": [ + { + "name": "Bridge", + "url": "https://bridge.arbitrum.io", + "description": "Bridge from Sepolia" + }, + { + "name": "Docs", + "url": "https://docs.arbitrum.io", + "description": "Developer documentation" + } + ] + }, + { + "type": "evm", + "networkId": "eip155:11155420", + "chainId": 11155420, + "name": "Optimism Sepolia", + "shortName": "OP Sepolia", + "description": "Optimism testnet for developers", + "currency": "ETH", + "color": "#FF0420", + "isTestnet": true, + "logo": "assets/networks/11155420.svg", + "links": [ + { + "name": "Bridge", + "url": "https://app.optimism.io/bridge", + "description": "Bridge from Sepolia" + }, + { + "name": "Docs", + "url": "https://docs.optimism.io", + "description": "Developer documentation" + } + ] + }, + { + "type": "evm", + "networkId": "eip155:84532", + "chainId": 84532, + "name": "Base Sepolia", + "shortName": "Base Sepolia", + "description": "Base testnet for developers", + "currency": "ETH", + "color": "#0052FF", + "isTestnet": true, + "logo": "assets/networks/84532.svg", + "links": [ + { + "name": "Faucet", + "url": "https://www.coinbase.com/faucets/base-ethereum-sepolia-faucet", + "description": "Get testnet ETH" + }, + { + "name": "Docs", + "url": "https://docs.base.org", + "description": "Developer documentation" + } + ] + }, + { + "type": "evm", + "networkId": "eip155:80002", + "chainId": 80002, + "name": "Polygon Amoy", + "shortName": "Amoy", + "description": "Polygon testnet for developers", + "currency": "POL", + "color": "#8247E5", + "isTestnet": true, + "logo": "assets/networks/80002.svg", + "links": [ + { + "name": "Faucet", + "url": "https://faucet.polygon.technology", + "description": "Get testnet POL" + }, + { + "name": "Docs", + "url": "https://docs.polygon.technology", + "description": "Developer documentation" + } + ] + }, + { + "type": "evm", + "networkId": "eip155:43113", + "chainId": 43113, + "name": "Avalanche Fuji", + "shortName": "Fuji", + "description": "Avalanche testnet for developers", + "currency": "AVAX", + "color": "#E84142", + "isTestnet": true, + "logo": "assets/networks/43113.svg", + "links": [ + { + "name": "Faucet", + "url": "https://faucet.avax.network", + "description": "Get testnet AVAX" + }, + { + "name": "Docs", + "url": "https://docs.avax.network", + "description": "Developer documentation" + } + ] + }, { "type": "solana", "networkId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", diff --git a/data/rpcs/btc/mainnet.json b/data/rpcs/btc/mainnet.json index 61b03e27a1..26ae31d7e2 100644 --- a/data/rpcs/btc/mainnet.json +++ b/data/rpcs/btc/mainnet.json @@ -1,6 +1,6 @@ { "networkId": "bip122:000000000019d6689c085ae165831e93", - "updatedAt": "2026-02-12", + "updatedAt": "2026-04-21T12:46:10.004Z", "endpoints": [ { "url": "https://mempool.space/api", @@ -29,6 +29,13 @@ "isOpenSource": false, "provider": "dRPC", "isPublic": true + }, + { + "url": "https://bitcoin.api.onfinality.io/public", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "OnFinality", + "isPublic": true } ] } diff --git a/data/rpcs/btc/testnet4.json b/data/rpcs/btc/testnet4.json index 904737da65..876a2beb49 100644 --- a/data/rpcs/btc/testnet4.json +++ b/data/rpcs/btc/testnet4.json @@ -1,6 +1,6 @@ { "networkId": "bip122:00000000da84f2bafbbc53dee25a72ae", - "updatedAt": "2026-02-13", + "updatedAt": "2026-02-13T00:00:00Z", "endpoints": [ { "url": "https://mempool.space/testnet4/api", diff --git a/data/rpcs/evm/1.json b/data/rpcs/evm/1.json index 262df985ef..01cae73162 100644 --- a/data/rpcs/evm/1.json +++ b/data/rpcs/evm/1.json @@ -1,6 +1,6 @@ { "networkId": "eip155:1", - "updatedAt": "2026-02-22", + "updatedAt": "2026-04-21T12:42:33.164Z", "endpoints": [ { "url": "https://0xrpc.io/eth", @@ -65,20 +65,6 @@ "provider": "MEV Blocker", "isPublic": true }, - { - "url": "https://endpoints.omniatech.io/v1/eth/mainnet/public", - "tracking": "none", - "isOpenSource": false, - "provider": "Omnia", - "isPublic": true - }, - { - "url": "https://rpc.payload.de", - "tracking": "none", - "isOpenSource": false, - "provider": "Payload", - "isPublic": true - }, { "url": "https://eth.api.pocket.network", "tracking": "none", @@ -100,13 +86,6 @@ "provider": "Stakely", "isPublic": true }, - { - "url": "https://api.stateless.solutions/ethereum/v1/demo", - "tracking": "none", - "isOpenSource": false, - "provider": "Stateless", - "isPublic": true - }, { "url": "https://go.getblock.io/aefd01aa907c4805ba3c00a9e5b48c6b", "tracking": "none", @@ -114,62 +93,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://rpc.builder0x69.io", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://api.zmok.io/mainnet/oaen6dy8ff6hju9k", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.lokibuilder.xyz/wallet", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.polysplit.cloud/v1/chain/1", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.nodifi.ai/api/rpc/free", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.public.curie.radiumblock.co/http/ethereum", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.public.curie.radiumblock.co/ws/ethereum", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.fullsend.to", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://eth-mainnet.public.blastapi.io", "tracking": "limited", @@ -184,13 +107,6 @@ "provider": "BlockPI", "isPublic": true }, - { - "url": "https://eth-mainnet.diamondswap.org/rpc", - "tracking": "limited", - "isOpenSource": false, - "provider": "DiamondSwap", - "isPublic": true - }, { "url": "https://ethereum-public.nodies.app", "tracking": "limited", @@ -205,55 +121,6 @@ "provider": "OnFinality", "isPublic": true }, - { - "url": "https://rpc.poolz.finance/eth", - "tracking": "limited", - "isOpenSource": false, - "provider": "Poolz", - "isPublic": true - }, - { - "url": "https://public.stackup.sh/api/v1/node/ethereum-mainnet", - "tracking": "limited", - "isOpenSource": false, - "provider": "Stackup", - "isPublic": true - }, - { - "url": "https://ethereum.therpc.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "TheRPC", - "isPublic": true - }, - { - "url": "https://eth-mainnet-public.unifra.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unifra", - "isPublic": true - }, - { - "url": "https://rpc.graffiti.farm", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://eth-mainnet.4everland.org/v1/37fa9972c1b1cd5fab542c7bdd4cde2f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.owlracle.info/eth/70d38ce1826c4a60bb2a8e05a6c8b20f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://api-ethereum-mainnet-reth.n.dwellir.com/2ccf18bf-2916-4198-8856-42172854353c", "tracking": "limited", @@ -303,13 +170,6 @@ "provider": "MEV Blocker", "isPublic": true }, - { - "url": "https://rpc.notadegen.com/eth", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "NotADegen", - "isPublic": true - }, { "url": "https://ethereum.rpc.subquery.network/public", "tracking": "unspecified", @@ -317,27 +177,6 @@ "provider": "SubQuery", "isPublic": true }, - { - "url": "https://api.securerpc.com/v1", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://mainnet.eth.cloud.ava.do", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://ethereumnodelight.app.runonflux.io", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://eth-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "tracking": "unspecified", @@ -345,41 +184,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://main-light.eth.linkpool.io", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://api.mycryptoapi.com/eth", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.blocknative.com/boost", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://eth-mainnet.g.alchemy.com/v2/demo", - "tracking": "yes", - "isOpenSource": false, - "provider": "Alchemy", - "isPublic": true - }, - { - "url": "https://rpc.ankr.com/eth/c4cc6a8c87ec30258076de433ab2cf3d834228aae3fc4d76087873e4fea11635", - "tracking": "yes", - "isOpenSource": false, - "provider": "Ankr", - "isPublic": true - }, { "url": "https://mainnet.gateway.tenderly.co", "tracking": "yes", @@ -387,20 +191,6 @@ "provider": "Tenderly", "isPublic": true }, - { - "url": "https://virtual.mainnet.rpc.tenderly.co/7355b215-ef17-4e3e-8f64-d494284ef18a", - "tracking": "yes", - "isOpenSource": false, - "provider": "Tenderly", - "isPublic": true - }, - { - "url": "https://virtual.mainnet.rpc.tenderly.co/5804dcf7-70e6-4988-b2b0-3672193e0c91", - "tracking": "yes", - "isOpenSource": false, - "provider": "Tenderly", - "isPublic": true - }, { "url": "https://gateway.tenderly.co/public/mainnet", "tracking": "yes", @@ -443,13 +233,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://cloudflare-eth.com", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://openapi.bitstack.com/v1/wNFxbiJyQsSeLrX8RRCHi7NpRxrlErZk/DjShIqLishPCTB9HiMkPHXjUM9CNM9Na/ETH/mainnet", "tracking": "yes", @@ -464,27 +247,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://rpc.chain49.com/ethereum?api_key=14d1a8b86d8a4b4797938332394203dc", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://services.tokenview.io/vipapi/nodeservice/eth?apikey=qVHq2o6jpaakcw3lRstl", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://eth.nodeconnect.org", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://ethereum-mainnet.gateway.tatum.io", "tracking": "yes", diff --git a/data/rpcs/evm/10.json b/data/rpcs/evm/10.json index e2f01b9e6f..a4396dd04b 100644 --- a/data/rpcs/evm/10.json +++ b/data/rpcs/evm/10.json @@ -1,6 +1,6 @@ { "networkId": "eip155:10", - "updatedAt": "2026-02-22", + "updatedAt": "2026-04-21T12:32:57.564Z", "endpoints": [ { "url": "https://1rpc.io/op", @@ -23,27 +23,6 @@ "provider": "FastNode", "isPublic": true }, - { - "url": "https://optimism.meowrpc.com", - "tracking": "none", - "isOpenSource": false, - "provider": "MeowRPC", - "isPublic": true - }, - { - "url": "https://endpoints.omniatech.io/v1/op/mainnet/public", - "tracking": "none", - "isOpenSource": false, - "provider": "Omnia", - "isPublic": true - }, - { - "url": "https://optimism.api.pocket.network", - "tracking": "none", - "isOpenSource": false, - "provider": "Pocket Network", - "isPublic": true - }, { "url": "https://optimism-rpc.publicnode.com", "tracking": "none", @@ -51,20 +30,6 @@ "provider": "PublicNode", "isPublic": true }, - { - "url": "https://api.stateless.solutions/optimism/v1/demo", - "tracking": "none", - "isOpenSource": false, - "provider": "Stateless", - "isPublic": true - }, - { - "url": "https://optimism-mainnet.public.blastapi.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "Blast", - "isPublic": true - }, { "url": "https://optimism.public.blockpi.network/v1/rpc/public", "tracking": "limited", @@ -86,34 +51,6 @@ "provider": "OnFinality", "isPublic": true }, - { - "url": "https://public.stackup.sh/api/v1/node/optimism-mainnet", - "tracking": "limited", - "isOpenSource": false, - "provider": "Stackup", - "isPublic": true - }, - { - "url": "https://optimism.therpc.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "TheRPC", - "isPublic": true - }, - { - "url": "https://opt-mainnet.4everland.org/v1/37fa9972c1b1cd5fab542c7bdd4cde2f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.owlracle.info/opt/70d38ce1826c4a60bb2a8e05a6c8b20f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://api-optimism-mainnet-archive.n.dwellir.com/2ccf18bf-2916-4198-8856-42172854353c", "tracking": "limited", @@ -149,13 +86,6 @@ "provider": "SubQuery", "isPublic": true }, - { - "url": "https://opt-mainnet.g.alchemy.com/v2/demo", - "tracking": "yes", - "isOpenSource": false, - "provider": "Alchemy", - "isPublic": true - }, { "url": "https://optimism.gateway.tenderly.co", "tracking": "yes", @@ -170,13 +100,6 @@ "provider": "Tenderly", "isPublic": true }, - { - "url": "https://rpc.optimism.gateway.fm", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://optimism-mainnet.gateway.tatum.io", "tracking": "yes", @@ -190,20 +113,6 @@ "isOpenSource": false, "provider": "Unknown", "isPublic": true - }, - { - "url": "https://rpc.buildbear.io/esquivelfabian", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://optimism.lava.build", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true } ] } diff --git a/data/rpcs/evm/11155111.json b/data/rpcs/evm/11155111.json index 7ec17eabb8..1c569db224 100644 --- a/data/rpcs/evm/11155111.json +++ b/data/rpcs/evm/11155111.json @@ -1,6 +1,6 @@ { "networkId": "eip155:11155111", - "updatedAt": "2026-02-22", + "updatedAt": "2026-04-21T12:36:57.590Z", "endpoints": [ { "url": "https://0xrpc.io/sep", @@ -16,13 +16,6 @@ "provider": "1RPC", "isPublic": true }, - { - "url": "https://endpoints.omniatech.io/v1/eth/sepolia/public", - "tracking": "none", - "isOpenSource": false, - "provider": "Omnia", - "isPublic": true - }, { "url": "https://eth-sepolia-testnet.api.pocket.network", "tracking": "none", @@ -37,13 +30,6 @@ "provider": "PublicNode", "isPublic": true }, - { - "url": "https://eth-sepolia.public.blastapi.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "Blast", - "isPublic": true - }, { "url": "https://ethereum-sepolia-public.nodies.app", "tracking": "limited", @@ -58,41 +44,6 @@ "provider": "OnFinality", "isPublic": true }, - { - "url": "https://public.stackup.sh/api/v1/node/ethereum-sepolia", - "tracking": "limited", - "isOpenSource": false, - "provider": "Stackup", - "isPublic": true - }, - { - "url": "https://ethereum-sepolia.therpc.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "TheRPC", - "isPublic": true - }, - { - "url": "https://eth-sepolia-public.unifra.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unifra", - "isPublic": true - }, - { - "url": "https://eth-testnet.4everland.org/v1/37fa9972c1b1cd5fab542c7bdd4cde2f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.owlracle.info/sepolia/70d38ce1826c4a60bb2a8e05a6c8b20f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://rpc.sentio.xyz/sepolia", "tracking": "limited", @@ -107,13 +58,6 @@ "provider": "ZAN", "isPublic": true }, - { - "url": "https://eth-sepolia.g.alchemy.com/v2/WddzdzI2o9S3COdT73d5w6AIogbKq4X-", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Alchemy", - "isPublic": true - }, { "url": "https://sepolia.drpc.org", "tracking": "unspecified", @@ -121,27 +65,6 @@ "provider": "dRPC", "isPublic": true }, - { - "url": "https://rpc.notadegen.com/eth/sepolia", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "NotADegen", - "isPublic": true - }, - { - "url": "https://rpc.sepolia.org", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Sepolia", - "isPublic": true - }, - { - "url": "https://rpc2.sepolia.org", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Sepolia", - "isPublic": true - }, { "url": "https://ethereum-sepolia.rpc.subquery.network/public", "tracking": "unspecified", @@ -156,13 +79,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://eth-sepolia.g.alchemy.com/v2/demo", - "tracking": "yes", - "isOpenSource": false, - "provider": "Alchemy", - "isPublic": true - }, { "url": "https://sepolia.gateway.tenderly.co", "tracking": "yes", @@ -177,20 +93,6 @@ "provider": "Tenderly", "isPublic": true }, - { - "url": "https://sphinx.shardeum.org", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://dapps.shardeum.org", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://ethereum-sepolia.gateway.tatum.io", "tracking": "yes", diff --git a/data/rpcs/evm/11155420.json b/data/rpcs/evm/11155420.json new file mode 100644 index 0000000000..1a5f1774a4 --- /dev/null +++ b/data/rpcs/evm/11155420.json @@ -0,0 +1,48 @@ +{ + "networkId": "eip155:11155420", + "updatedAt": "2026-04-21T12:39:57.608Z", + "endpoints": [ + { + "url": "https://optimism-sepolia-public.nodies.app", + "tracking": "limited", + "isOpenSource": false, + "provider": "Nodies", + "isPublic": true + }, + { + "url": "https://optimism-sepolia.api.onfinality.io/public", + "tracking": "limited", + "isOpenSource": false, + "provider": "OnFinality", + "isPublic": true + }, + { + "url": "https://api.zan.top/opt-sepolia", + "tracking": "limited", + "isOpenSource": false, + "provider": "ZAN", + "isPublic": true + }, + { + "url": "https://optimism-sepolia.drpc.org", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "dRPC", + "isPublic": true + }, + { + "url": "https://sepolia.optimism.io", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "Optimism", + "isPublic": true + }, + { + "url": "https://optimism-sepolia.gateway.tenderly.co", + "tracking": "yes", + "isOpenSource": false, + "provider": "Tenderly", + "isPublic": true + } + ] +} diff --git a/data/rpcs/evm/137.json b/data/rpcs/evm/137.json index 7f40fcb09b..70e1b6b559 100644 --- a/data/rpcs/evm/137.json +++ b/data/rpcs/evm/137.json @@ -1,6 +1,6 @@ { "networkId": "eip155:137", - "updatedAt": "2026-02-22", + "updatedAt": "2026-04-21T12:34:57.574Z", "endpoints": [ { "url": "https://1rpc.io/matic", @@ -16,20 +16,6 @@ "provider": "dRPC", "isPublic": true }, - { - "url": "https://polygon.meowrpc.com", - "tracking": "none", - "isOpenSource": false, - "provider": "MeowRPC", - "isPublic": true - }, - { - "url": "https://endpoints.omniatech.io/v1/matic/mainnet/public", - "tracking": "none", - "isOpenSource": false, - "provider": "Omnia", - "isPublic": true - }, { "url": "https://poly.api.pocket.network", "tracking": "none", @@ -44,20 +30,6 @@ "provider": "PublicNode", "isPublic": true }, - { - "url": "https://rpc.ankr.com/polygon", - "tracking": "limited", - "isOpenSource": false, - "provider": "Ankr", - "isPublic": true - }, - { - "url": "https://polygon-mainnet.public.blastapi.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "Blast", - "isPublic": true - }, { "url": "https://polygon-public.nodies.app", "tracking": "limited", @@ -72,41 +44,6 @@ "provider": "OnFinality", "isPublic": true }, - { - "url": "https://rpc.poolz.finance/polygon", - "tracking": "limited", - "isOpenSource": false, - "provider": "Poolz", - "isPublic": true - }, - { - "url": "https://public.stackup.sh/api/v1/node/polygon-mainnet", - "tracking": "limited", - "isOpenSource": false, - "provider": "Stackup", - "isPublic": true - }, - { - "url": "https://polygon.therpc.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "TheRPC", - "isPublic": true - }, - { - "url": "https://polygon-mainnet.4everland.org/v1/37fa9972c1b1cd5fab542c7bdd4cde2f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.owlracle.info/poly/70d38ce1826c4a60bb2a8e05a6c8b20f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://rpc.sentio.xyz/matic", "tracking": "limited", @@ -128,13 +65,6 @@ "provider": "SubQuery", "isPublic": true }, - { - "url": "https://polygon-rpc.com", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://polygon-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "tracking": "unspecified", @@ -142,34 +72,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://rpc-mainnet.matic.network", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://matic-mainnet.chainstacklabs.com", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc-mainnet.maticvigil.com", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://matic-mainnet-full-rpc.bwarelabs.com", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://polygon-mainnet.g.alchemy.com/v2/demo", "tracking": "yes", @@ -205,13 +107,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://polygon.rpc.blxrbdn.com", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://polygon-mainnet.gateway.tatum.io", "tracking": "yes", diff --git a/data/rpcs/evm/42161.json b/data/rpcs/evm/42161.json index 22bfaf8859..c2019f8a13 100644 --- a/data/rpcs/evm/42161.json +++ b/data/rpcs/evm/42161.json @@ -1,6 +1,6 @@ { "networkId": "eip155:42161", - "updatedAt": "2026-02-22", + "updatedAt": "2026-04-21T12:31:57.558Z", "endpoints": [ { "url": "https://1rpc.io/arb", @@ -30,13 +30,6 @@ "provider": "MeowRPC", "isPublic": true }, - { - "url": "https://endpoints.omniatech.io/v1/arbitrum/one/public", - "tracking": "none", - "isOpenSource": false, - "provider": "Omnia", - "isPublic": true - }, { "url": "https://arb-one.api.pocket.network", "tracking": "none", @@ -51,13 +44,6 @@ "provider": "PublicNode", "isPublic": true }, - { - "url": "https://api.stateless.solutions/arbitrum-one/v1/demo", - "tracking": "none", - "isOpenSource": false, - "provider": "Stateless", - "isPublic": true - }, { "url": "https://arbitrum-one.public.blastapi.io", "tracking": "limited", @@ -86,41 +72,6 @@ "provider": "OnFinality", "isPublic": true }, - { - "url": "https://rpc.poolz.finance/arbitrum", - "tracking": "limited", - "isOpenSource": false, - "provider": "Poolz", - "isPublic": true - }, - { - "url": "https://public.stackup.sh/api/v1/node/arbitrum-one", - "tracking": "limited", - "isOpenSource": false, - "provider": "Stackup", - "isPublic": true - }, - { - "url": "https://arbitrum.therpc.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "TheRPC", - "isPublic": true - }, - { - "url": "https://arb-mainnet-public.unifra.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unifra", - "isPublic": true - }, - { - "url": "https://rpc.owlracle.info/arb/70d38ce1826c4a60bb2a8e05a6c8b20f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://api-arbitrum-mainnet-archive.n.dwellir.com/2ccf18bf-2916-4198-8856-42172854353c", "tracking": "limited", @@ -156,20 +107,6 @@ "provider": "SubQuery", "isPublic": true }, - { - "url": "https://arb-mainnet.g.alchemy.com/v2/demo", - "tracking": "yes", - "isOpenSource": false, - "provider": "Alchemy", - "isPublic": true - }, - { - "url": "https://rpc.ankr.com/arbitrum/c4cc6a8c87ec30258076de433ab2cf3d834228aae3fc4d76087873e4fea11635", - "tracking": "yes", - "isOpenSource": false, - "provider": "Ankr", - "isPublic": true - }, { "url": "https://arbitrum.gateway.tenderly.co", "tracking": "yes", @@ -177,13 +114,6 @@ "provider": "Tenderly", "isPublic": true }, - { - "url": "https://rpc.arb1.arbitrum.gateway.fm", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://arb1.lava.build", "tracking": "yes", diff --git a/data/rpcs/evm/421614.json b/data/rpcs/evm/421614.json new file mode 100644 index 0000000000..2d165d31fa --- /dev/null +++ b/data/rpcs/evm/421614.json @@ -0,0 +1,55 @@ +{ + "networkId": "eip155:421614", + "updatedAt": "2026-04-21T12:38:57.601Z", + "endpoints": [ + { + "url": "https://arbitrum-sepolia.drpc.org", + "tracking": "none", + "isOpenSource": false, + "provider": "dRPC", + "isPublic": true + }, + { + "url": "https://arbitrum-sepolia-testnet.api.pocket.network", + "tracking": "none", + "isOpenSource": false, + "provider": "Pocket Network", + "isPublic": true + }, + { + "url": "https://arbitrum-sepolia.api.onfinality.io/public", + "tracking": "limited", + "isOpenSource": false, + "provider": "OnFinality", + "isPublic": true + }, + { + "url": "https://api.zan.top/arb-sepolia", + "tracking": "limited", + "isOpenSource": false, + "provider": "ZAN", + "isPublic": true + }, + { + "url": "https://sepolia-rollup.arbitrum.io/rpc", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "Arbitrum", + "isPublic": true + }, + { + "url": "https://arbitrum-sepolia-rpc.publicnode.com", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "PublicNode", + "isPublic": true + }, + { + "url": "https://arbitrum-sepolia.gateway.tenderly.co", + "tracking": "yes", + "isOpenSource": false, + "provider": "Tenderly", + "isPublic": true + } + ] +} diff --git a/data/rpcs/evm/43113.json b/data/rpcs/evm/43113.json new file mode 100644 index 0000000000..a6f8a785f5 --- /dev/null +++ b/data/rpcs/evm/43113.json @@ -0,0 +1,34 @@ +{ + "networkId": "eip155:43113", + "updatedAt": "2026-04-21T12:42:57.625Z", + "endpoints": [ + { + "url": "https://avalanche-fuji.drpc.org", + "tracking": "none", + "isOpenSource": false, + "provider": "dRPC", + "isPublic": true + }, + { + "url": "https://avalanche-fuji-c-chain-rpc.publicnode.com", + "tracking": "none", + "isOpenSource": false, + "provider": "PublicNode", + "isPublic": true + }, + { + "url": "https://api.zan.top/avax-fuji/ext/bc/C/rpc", + "tracking": "limited", + "isOpenSource": false, + "provider": "ZAN", + "isPublic": true + }, + { + "url": "https://api.avax-test.network/ext/bc/C/rpc", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "Unknown", + "isPublic": true + } + ] +} diff --git a/data/rpcs/evm/43114.json b/data/rpcs/evm/43114.json index a543435b5e..8ea672af8e 100644 --- a/data/rpcs/evm/43114.json +++ b/data/rpcs/evm/43114.json @@ -1,47 +1,82 @@ { "networkId": "eip155:43114", - "updatedAt": "2026-03-04", + "updatedAt": "2026-04-21T12:35:57.579Z", "endpoints": [ { - "url": "https://api.avax.network/ext/bc/C/rpc", + "url": "https://1rpc.io/avax/c", "tracking": "none", "isOpenSource": false, - "provider": "Avalanche", + "provider": "1RPC", "isPublic": true }, { - "url": "https://avalanche-c-chain-rpc.publicnode.com", + "url": "https://avalanche.drpc.org", "tracking": "none", "isOpenSource": false, - "provider": "PublicNode", + "provider": "dRPC", "isPublic": true }, { - "url": "https://avax.meowrpc.com", + "url": "https://avax.api.pocket.network", "tracking": "none", "isOpenSource": false, - "provider": "MeowRPC", + "provider": "Pocket Network", "isPublic": true }, { - "url": "https://avalanche.drpc.org", + "url": "https://avalanche-c-chain-rpc.publicnode.com", "tracking": "none", "isOpenSource": false, - "provider": "dRPC", + "provider": "PublicNode", "isPublic": true }, { - "url": "https://1rpc.io/avax/c", - "tracking": "none", + "url": "https://avalanche-public.nodies.app/ext/bc/C/rpc", + "tracking": "limited", "isOpenSource": false, - "provider": "1RPC", + "provider": "Nodies", "isPublic": true }, { - "url": "https://avax-pokt.nodies.app/ext/bc/C/rpc", - "tracking": "none", + "url": "https://avalanche.api.onfinality.io/public/ext/bc/C/rpc", + "tracking": "limited", "isOpenSource": false, - "provider": "Nodies", + "provider": "OnFinality", + "isPublic": true + }, + { + "url": "https://rpc.sentio.xyz/avalanche", + "tracking": "limited", + "isOpenSource": false, + "provider": "Unknown", + "isPublic": true + }, + { + "url": "https://api.zan.top/avax-mainnet/ext/bc/C/rpc", + "tracking": "limited", + "isOpenSource": false, + "provider": "ZAN", + "isPublic": true + }, + { + "url": "https://api.avax.network/ext/bc/C/rpc", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "Unknown", + "isPublic": true + }, + { + "url": "https://avalanche-mainnet.gateway.tenderly.co", + "tracking": "yes", + "isOpenSource": false, + "provider": "Tenderly", + "isPublic": true + }, + { + "url": "https://spectrum-01.simplystaking.xyz/avalanche-mn-rpc/ext/bc/C/rpc", + "tracking": "yes", + "isOpenSource": false, + "provider": "Unknown", "isPublic": true } ] diff --git a/data/rpcs/evm/56.json b/data/rpcs/evm/56.json index 49f24b9cbb..0cb9d00211 100644 --- a/data/rpcs/evm/56.json +++ b/data/rpcs/evm/56.json @@ -1,6 +1,6 @@ { "networkId": "eip155:56", - "updatedAt": "2026-02-22", + "updatedAt": "2026-04-21T12:33:57.570Z", "endpoints": [ { "url": "https://1rpc.io/bnb", @@ -30,13 +30,6 @@ "provider": "FastNode", "isPublic": true }, - { - "url": "https://binance.llamarpc.com", - "tracking": "none", - "isOpenSource": true, - "provider": "LlamaNodes", - "isPublic": true - }, { "url": "https://bsc.meowrpc.com", "tracking": "none", @@ -44,13 +37,6 @@ "provider": "MeowRPC", "isPublic": true }, - { - "url": "https://endpoints.omniatech.io/v1/bsc/mainnet/public", - "tracking": "none", - "isOpenSource": false, - "provider": "Omnia", - "isPublic": true - }, { "url": "https://bsc.api.pocket.network", "tracking": "none", @@ -65,13 +51,6 @@ "provider": "PublicNode", "isPublic": true }, - { - "url": "https://rpc.polysplit.cloud/v1/chain/56", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://rpc-bsc.48.club", "tracking": "limited", @@ -93,13 +72,6 @@ "provider": "Blast", "isPublic": true }, - { - "url": "https://bsc.blockpi.network/v1/rpc/private", - "tracking": "limited", - "isOpenSource": false, - "provider": "BlockPI", - "isPublic": true - }, { "url": "https://binance-smart-chain-public.nodies.app", "tracking": "limited", @@ -114,27 +86,6 @@ "provider": "OnFinality", "isPublic": true }, - { - "url": "https://rpc.poolz.finance/bsc", - "tracking": "limited", - "isOpenSource": false, - "provider": "Poolz", - "isPublic": true - }, - { - "url": "https://public.stackup.sh/api/v1/node/bsc-mainnet", - "tracking": "limited", - "isOpenSource": false, - "provider": "Stackup", - "isPublic": true - }, - { - "url": "https://bsc.therpc.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "TheRPC", - "isPublic": true - }, { "url": "https://go.getblock.io/cc778cdbdf5c4b028ec9456e0e6c0cf3", "tracking": "limited", @@ -142,20 +93,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://bsc-mainnet.4everland.org/v1/37fa9972c1b1cd5fab542c7bdd4cde2f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://rpc.owlracle.info/bsc/70d38ce1826c4a60bb2a8e05a6c8b20f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://api-bsc-mainnet-full.n.dwellir.com/2ccf18bf-2916-4198-8856-42172854353c", "tracking": "limited", @@ -275,27 +212,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://bsc-dataseed6.dict.life", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://bscrpc.com", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, - { - "url": "https://bsc.rpcgator.com", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://bsc-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "tracking": "unspecified", @@ -303,13 +219,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://nodes.vefinetwork.org/smartchain", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://bsc-mainnet.nodereal.io/v1/64a9df0874fb4a93b9d0a3849de012d3", "tracking": "yes", @@ -331,26 +240,12 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://services.tokenview.io/vipapi/nodeservice/bsc?apikey=gVFJX5OyPdc2kHH7youg", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://bsc-mainnet.gateway.tatum.io", "tracking": "yes", "isOpenSource": false, "provider": "Unknown", "isPublic": true - }, - { - "url": "https://public-bsc.nownodes.io", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true } ] } diff --git a/data/rpcs/evm/80002.json b/data/rpcs/evm/80002.json new file mode 100644 index 0000000000..47a33c1303 --- /dev/null +++ b/data/rpcs/evm/80002.json @@ -0,0 +1,62 @@ +{ + "networkId": "eip155:80002", + "updatedAt": "2026-04-21T12:41:57.620Z", + "endpoints": [ + { + "url": "https://polygon-amoy.drpc.org", + "tracking": "none", + "isOpenSource": false, + "provider": "dRPC", + "isPublic": true + }, + { + "url": "https://polygon-amoy-public.nodies.app", + "tracking": "limited", + "isOpenSource": false, + "provider": "Nodies", + "isPublic": true + }, + { + "url": "https://polygon-amoy.api.onfinality.io/public", + "tracking": "limited", + "isOpenSource": false, + "provider": "OnFinality", + "isPublic": true + }, + { + "url": "https://api.zan.top/polygon-amoy", + "tracking": "limited", + "isOpenSource": false, + "provider": "ZAN", + "isPublic": true + }, + { + "url": "https://polygon-amoy-bor-rpc.publicnode.com", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "PublicNode", + "isPublic": true + }, + { + "url": "https://rpc-amoy.polygon.technology", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "Unknown", + "isPublic": true + }, + { + "url": "https://polygon-amoy.gateway.tenderly.co", + "tracking": "yes", + "isOpenSource": false, + "provider": "Tenderly", + "isPublic": true + }, + { + "url": "https://polygon-amoy.gateway.tatum.io", + "tracking": "yes", + "isOpenSource": false, + "provider": "Unknown", + "isPublic": true + } + ] +} diff --git a/data/rpcs/evm/8453.json b/data/rpcs/evm/8453.json index d57c683e92..a57e66c6b6 100644 --- a/data/rpcs/evm/8453.json +++ b/data/rpcs/evm/8453.json @@ -1,6 +1,6 @@ { "networkId": "eip155:8453", - "updatedAt": "2026-02-22", + "updatedAt": "2026-04-21T12:30:57.548Z", "endpoints": [ { "url": "https://1rpc.io/base", @@ -30,13 +30,6 @@ "provider": "MeowRPC", "isPublic": true }, - { - "url": "https://endpoints.omniatech.io/v1/base/mainnet/public", - "tracking": "none", - "isOpenSource": false, - "provider": "Omnia", - "isPublic": true - }, { "url": "https://base.api.pocket.network", "tracking": "none", @@ -51,13 +44,6 @@ "provider": "PublicNode", "isPublic": true }, - { - "url": "https://rpcbase.hairylabs.io/rpc", - "tracking": "none", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://base-mainnet.public.blastapi.io", "tracking": "limited", @@ -72,13 +58,6 @@ "provider": "BlockPI", "isPublic": true }, - { - "url": "https://base-mainnet.diamondswap.org/rpc", - "tracking": "limited", - "isOpenSource": false, - "provider": "DiamondSwap", - "isPublic": true - }, { "url": "https://base-public.nodies.app", "tracking": "limited", @@ -86,41 +65,6 @@ "provider": "Nodies", "isPublic": true }, - { - "url": "https://base.api.onfinality.io/public", - "tracking": "limited", - "isOpenSource": false, - "provider": "OnFinality", - "isPublic": true - }, - { - "url": "https://rpc.poolz.finance/base", - "tracking": "limited", - "isOpenSource": false, - "provider": "Poolz", - "isPublic": true - }, - { - "url": "https://public.stackup.sh/api/v1/node/base-mainnet", - "tracking": "limited", - "isOpenSource": false, - "provider": "Stackup", - "isPublic": true - }, - { - "url": "https://base.therpc.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "TheRPC", - "isPublic": true - }, - { - "url": "https://rpc.owlracle.info/base/70d38ce1826c4a60bb2a8e05a6c8b20f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://api-base-mainnet-archive.n.dwellir.com/2ccf18bf-2916-4198-8856-42172854353c", "tracking": "limited", @@ -156,13 +100,6 @@ "provider": "Base", "isPublic": true }, - { - "url": "https://rpc.notadegen.com/base", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "NotADegen", - "isPublic": true - }, { "url": "https://base.rpc.subquery.network/public", "tracking": "unspecified", @@ -170,13 +107,6 @@ "provider": "SubQuery", "isPublic": true }, - { - "url": "https://li-fi-base.intustechno.workers.dev/rpc", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://base.gateway.tenderly.co", "tracking": "yes", @@ -205,13 +135,6 @@ "provider": "Unknown", "isPublic": true }, - { - "url": "https://rpc.numa.network/base", - "tracking": "yes", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://base.rpc.blxrbdn.com", "tracking": "yes", diff --git a/data/rpcs/evm/84532.json b/data/rpcs/evm/84532.json new file mode 100644 index 0000000000..9392ee93c6 --- /dev/null +++ b/data/rpcs/evm/84532.json @@ -0,0 +1,55 @@ +{ + "networkId": "eip155:84532", + "updatedAt": "2026-04-21T12:40:57.612Z", + "endpoints": [ + { + "url": "https://base-sepolia.drpc.org", + "tracking": "none", + "isOpenSource": false, + "provider": "dRPC", + "isPublic": true + }, + { + "url": "https://base-testnet.api.pocket.network", + "tracking": "none", + "isOpenSource": false, + "provider": "Pocket Network", + "isPublic": true + }, + { + "url": "https://base-sepolia-public.nodies.app", + "tracking": "limited", + "isOpenSource": false, + "provider": "Nodies", + "isPublic": true + }, + { + "url": "https://rpc.sentio.xyz/base-sepolia", + "tracking": "limited", + "isOpenSource": false, + "provider": "Unknown", + "isPublic": true + }, + { + "url": "https://sepolia.base.org", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "Base", + "isPublic": true + }, + { + "url": "https://base-sepolia-rpc.publicnode.com", + "tracking": "unspecified", + "isOpenSource": false, + "provider": "PublicNode", + "isPublic": true + }, + { + "url": "https://base-sepolia.gateway.tenderly.co", + "tracking": "yes", + "isOpenSource": false, + "provider": "Tenderly", + "isPublic": true + } + ] +} diff --git a/data/rpcs/evm/97.json b/data/rpcs/evm/97.json index 7ea42b7aec..35b7d991e7 100644 --- a/data/rpcs/evm/97.json +++ b/data/rpcs/evm/97.json @@ -1,6 +1,6 @@ { "networkId": "eip155:97", - "updatedAt": "2026-02-22", + "updatedAt": "2026-04-21T12:37:57.596Z", "endpoints": [ { "url": "https://bsc-testnet.drpc.org", @@ -9,13 +9,6 @@ "provider": "dRPC", "isPublic": true }, - { - "url": "https://endpoints.omniatech.io/v1/bsc/testnet/public", - "tracking": "none", - "isOpenSource": false, - "provider": "Omnia", - "isPublic": true - }, { "url": "https://bsc-testnet-rpc.publicnode.com", "tracking": "none", @@ -23,13 +16,6 @@ "provider": "PublicNode", "isPublic": true }, - { - "url": "https://bsc-testnet.public.blastapi.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "Blast", - "isPublic": true - }, { "url": "https://bnb-testnet.api.onfinality.io/public", "tracking": "limited", @@ -37,27 +23,6 @@ "provider": "OnFinality", "isPublic": true }, - { - "url": "https://public.stackup.sh/api/v1/node/bsc-testnet", - "tracking": "limited", - "isOpenSource": false, - "provider": "Stackup", - "isPublic": true - }, - { - "url": "https://bsc-testnet.therpc.io", - "tracking": "limited", - "isOpenSource": false, - "provider": "TheRPC", - "isPublic": true - }, - { - "url": "https://bsc-testnet.4everland.org/v1/37fa9972c1b1cd5fab542c7bdd4cde2f", - "tracking": "limited", - "isOpenSource": false, - "provider": "Unknown", - "isPublic": true - }, { "url": "https://rpc.sentio.xyz/bsc-testnet", "tracking": "limited", @@ -113,13 +78,6 @@ "isOpenSource": false, "provider": "BNB Chain", "isPublic": true - }, - { - "url": "https://bsctestapi.terminet.io/rpc", - "tracking": "unspecified", - "isOpenSource": false, - "provider": "Terminet", - "isPublic": true } ] } diff --git a/data/rpcs/solana/devnet.json b/data/rpcs/solana/devnet.json index 54743e3df4..7749656519 100644 --- a/data/rpcs/solana/devnet.json +++ b/data/rpcs/solana/devnet.json @@ -1,6 +1,6 @@ { "networkId": "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", - "updatedAt": "2026-04-07", + "updatedAt": "2026-04-07T00:00:00Z", "endpoints": [ { "url": "https://api.devnet.solana.com", diff --git a/data/rpcs/solana/mainnet.json b/data/rpcs/solana/mainnet.json index 244306473c..f36d4dfacb 100644 --- a/data/rpcs/solana/mainnet.json +++ b/data/rpcs/solana/mainnet.json @@ -1,6 +1,6 @@ { "networkId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", - "updatedAt": "2026-04-07", + "updatedAt": "2026-04-07T00:00:00Z", "endpoints": [ { "url": "https://api.mainnet-beta.solana.com", diff --git a/data/rpcs/solana/testnet.json b/data/rpcs/solana/testnet.json index 6f240d5aec..69fbe8357f 100644 --- a/data/rpcs/solana/testnet.json +++ b/data/rpcs/solana/testnet.json @@ -1,6 +1,6 @@ { "networkId": "solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z", - "updatedAt": "2026-04-07", + "updatedAt": "2026-04-07T00:00:00Z", "endpoints": [ { "url": "https://api.testnet.solana.com", diff --git a/package.json b/package.json index ba9c6e16af..e3eb8dff4c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openscan/metadata", - "version": "1.2.0-alpha.0", + "version": "1.2.1-alpha.0", "repository": { "type": "git", "url": "https://github.com/openscan-explorer/explorer-metadata" diff --git a/schemas/rpc.schema.json b/schemas/rpc.schema.json index fa73d4294e..a78f6f80eb 100644 --- a/schemas/rpc.schema.json +++ b/schemas/rpc.schema.json @@ -13,8 +13,8 @@ }, "updatedAt": { "type": "string", - "format": "date", - "description": "Last update date (YYYY-MM-DD)" + "format": "date-time", + "description": "Last update timestamp (ISO 8601)" }, "endpoints": { "type": "array", diff --git a/scripts/import-rpcs.ts b/scripts/import-rpcs.ts index 375babc631..0ff3087e9e 100644 --- a/scripts/import-rpcs.ts +++ b/scripts/import-rpcs.ts @@ -47,6 +47,47 @@ interface RpcEndpoint { isPublic: boolean; } +const REQUEST_TIMEOUT_MS = 10_000; +const TOTAL_BUDGET_MS = 60_000; + +async function measureLatency(url: string): Promise { + const deadline = Date.now() + TOTAL_BUDGET_MS; + const body = JSON.stringify({ + jsonrpc: "2.0", + id: 1, + method: "eth_blockNumber", + params: [], + }); + + while (Date.now() < deadline) { + const remaining = deadline - Date.now(); + const timeout = Math.min(REQUEST_TIMEOUT_MS, remaining); + if (timeout <= 0) break; + + const controller = new AbortController(); + const timer = setTimeout(() => controller.abort(), timeout); + const start = Date.now(); + + try { + const res = await fetch(url, { + method: "POST", + headers: { "content-type": "application/json" }, + body, + signal: controller.signal, + }); + clearTimeout(timer); + if (!res.ok) continue; + const json = (await res.json()) as { result?: string; error?: unknown }; + if (json.error || typeof json.result !== "string") continue; + return Date.now() - start; + } catch { + clearTimeout(timer); + } + } + + return null; +} + // Map known RPC providers by URL patterns function getProvider(url: string): string | undefined { const patterns: Record = { @@ -152,8 +193,17 @@ async function importFromChainlist(): Promise { return true; }); + // Probe endpoints in parallel; drop any that don't respond within budget + const latencies = await Promise.all( + uniqueEndpoints.map((ep) => measureLatency(ep.url)), + ); + const liveEndpoints = uniqueEndpoints.filter( + (_, i) => latencies[i] !== null, + ); + const dead = uniqueEndpoints.length - liveEndpoints.length; + // Sort: prefer tracking "none" first, then by provider name - uniqueEndpoints.sort((a, b) => { + liveEndpoints.sort((a, b) => { const trackingOrder = { none: 0, limited: 1, unspecified: 2, yes: 3 }; const aOrder = trackingOrder[a.tracking as keyof typeof trackingOrder] ?? 2; @@ -166,16 +216,17 @@ async function importFromChainlist(): Promise { const networkId = `eip155:${chainId}`; const output = { networkId, - updatedAt: new Date().toISOString().split("T")[0], - endpoints: uniqueEndpoints, + updatedAt: new Date().toISOString(), + endpoints: liveEndpoints, }; const filePath = path.join(RPCS_DIR, `${chainId}.json`); fs.writeFileSync(filePath, `${JSON.stringify(output, null, 2)}\n`); const dupes = endpoints.length - uniqueEndpoints.length; const dupeNote = dupes > 0 ? ` (${dupes} duplicates removed)` : ""; + const deadNote = dead > 0 ? ` (${dead} unresponsive removed)` : ""; console.log( - ` Chain ${chainId} (${network.name}): Imported ${uniqueEndpoints.length} endpoints${dupeNote}`, + ` Chain ${chainId} (${network.name}): Imported ${liveEndpoints.length} endpoints${dupeNote}${deadNote}`, ); }