Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2327 commits
Select commit Hold shift + click to select a range
4c63a5c
Update extraRpcs.js (#2372)
konstantinrm Jan 7, 2026
50cad6c
add midl (#2279)
VanjaRo Jan 7, 2026
ea85975
Remove some 0xRPC.io endpoints (#2384)
0xRPC Jan 8, 2026
3ef0605
Add Japan Open Chain Mainnet (#2387)
cuonghx-dev Jan 8, 2026
f91fc78
Add Svptestnet chain 2517 and mainnet 2518 (#2390)
Zerppen Jan 8, 2026
648f987
Add HairyLabs free public RPC for PulseChain (369) (#2391)
MajorMonty Jan 8, 2026
d5e0d84
Deprecate CoreDAO Testnet 1115 and Remove Deprecated RPC Endpoints (#…
ggcore0 Jan 8, 2026
7cfc3a1
feat: Add new RPC endpoint for Story mainnet (#2367)
dev-minsu Jan 8, 2026
31459ff
Add Dolphinet Mainnet to Chainlist (#2375)
AaronGuan Jan 8, 2026
f8314c5
Add Dolphinet Testnet chain data (#2376)
AaronGuan Jan 8, 2026
81d9370
feat: Blockmaze protocol testnet (#2394)
pk0852 Jan 8, 2026
57c459d
Add TBURN Mainnet (Chain ID 5800) to Chainlist (#2395)
trustburn79-droid Jan 8, 2026
8bf88fd
Add Kalichain configuration for chain ID 6533 (#2292)
Kalichain Jan 8, 2026
231f6c1
add pharos mainnet (#2337)
Index0011 Jan 8, 2026
039a040
add HyperCluster 838838 (#2399)
ryderhiew Jan 13, 2026
47b581b
Add megaeth (#2414)
0xBreadguy Jan 16, 2026
609a525
Update NativeCurrencySymbol of Stable Testnet (#2410)
highonrice Jan 16, 2026
42e4ac2
Update link to RPC and explorer (#2411)
VorobevSA Jan 16, 2026
cb19e1a
opn mainnet chain id 222 (#2415)
deepak-zeeve Jan 16, 2026
84b1f11
add missing chainIds
realdealshaman Jan 16, 2026
75ed01c
Adds Polkadot EVM Details (#2412)
albertov19 Jan 20, 2026
596a865
Add: ITRocket Story mainnet and testnet endpoints (#2416)
itrocket-team Jan 20, 2026
bbcf6c5
Remove GasHawk from list (#2417)
pfedan Jan 20, 2026
23e208c
Add HairyLabs Base RPC and fix privacy policy URL (#2422)
MajorMonty Jan 20, 2026
83adb7b
add RISE Mainnet and Testnet (#2423)
awesamarth Jan 20, 2026
dc2f104
Add new chain XGR Mainnet (#2421)
oliverboehm-xgr Jan 23, 2026
379bfe8
Add QELT blockchain mainnet and testnet (#2430)
PRQELT Jan 23, 2026
18c2466
update xlayer to x layer
realdealshaman Jan 23, 2026
00f6059
add new additionalChainRegistry file and fix existing
realdealshaman Jan 23, 2026
36d6bdf
add rpcs
realdealshaman Jan 23, 2026
3cc8b8d
remvoe 195 listings
realdealshaman Jan 23, 2026
4c9f9ed
New RPC link in Bc Hyper Mainnet (#2408)
akashhalder3 Jan 26, 2026
84dc2a0
Removed deprecated Horizen testnet (#2419)
saratnt Jan 26, 2026
a7f2e8e
Add Cosmostation RPC for Pharos Atlantic Testnet (#2425)
Kwonhyukjoon Jan 26, 2026
0684a9a
add rpc (#2431)
Kemperino Jan 26, 2026
7502407
Add XGR Testnet and Icon (#2435)
oliverboehm-xgr Jan 26, 2026
677588c
Add BNX Smart Chain (chainId 7777) (#2436)
satlykkarakulow09-collab Jan 26, 2026
5ebeec4
2429 (#2441)
Define101 Jan 27, 2026
7fcdda2
Add YuuChain (chainId 19001) (#2438)
regal619 Jan 28, 2026
53640b3
Fix QELT mainnet and testnet: Add chainIds mapping and update icon fo…
PRQELT Jan 28, 2026
355c5cf
add chain
realdealshaman Jan 30, 2026
e08ac5a
fix chain slug
realdealshaman Jan 30, 2026
c8399d5
Add Ankr RPC for Somnia (#2407)
emmaodia Feb 2, 2026
7772fbc
Add: Sentio free public RPC (#2428)
frozenluo Feb 2, 2026
1966395
add Ethereum RPC via Ankr (NodeInfra) (#2432)
rechnerfarm26-a11y Feb 2, 2026
cc9820b
add Polygon RPC via Ankr (NodeInfra) (#2433)
rechnerfarm26-a11y Feb 2, 2026
0f44b13
Fix Alpen Testnet II RPC and faucet URLs (#2439)
stefanopepe Feb 2, 2026
169ff18
Add XYBERCHAIN Testnet (chainId 9194) (#2446)
Lightspeedke Feb 2, 2026
ce954cc
chainid-13390.js (#2447)
MEECHAIN1 Feb 2, 2026
ab78cd2
Add Datachain Rope (chainId: 314159) (#2449)
KazeONGUENE Feb 2, 2026
a46e4e3
Add Fanatico L1 blockchain (Chain ID: 11111111111) (#2452)
FanaticoSeba Feb 2, 2026
1dbfc24
fix: update Creator Chain testnet (#2454)
bxpana Feb 2, 2026
acb4f6e
Add ByteChain Mainnet (9933) and Testnet (3399) (#2457)
bytexcglobal Feb 2, 2026
a9726dd
remove chains not listed on defillama
realdealshaman Feb 2, 2026
b6ebbe8
include privacy statements in additionalchainregistries
realdealshaman Feb 2, 2026
ca3aed3
fix chainid 1952
realdealshaman Feb 2, 2026
43be65e
use lowercase for file name
realdealshaman Feb 3, 2026
1e759cd
feat: add creator chain mainnet (#2455)
bxpana Feb 5, 2026
66a76fb
Remove 0xrpc gno node (#2456)
0xRPC Feb 5, 2026
a01938b
Create chainid-61564.js (#2461)
iced-lemontea Feb 5, 2026
efd039b
Update native currency details for chainid-1919 (#2467)
Turkchain1919 Feb 5, 2026
9d25f37
feat: add MSC chain 5577 to additionalChainRegistry (#2471)
CryptoCoder00001 Feb 5, 2026
a1df24a
Add chainId-1330.js (#2472)
mkd951 Feb 5, 2026
e374d0d
mimicate 2473 (#2475)
Define101 Feb 5, 2026
006907e
Add LuxePorts Network (LXP) RPC endpoints - Chain ID 1122 (#2460)
LXPDevs Feb 9, 2026
2832c2a
Add Mandala Chain Mainnet (20010) & Testnet (20011) (#2465)
yoghantara08 Feb 9, 2026
863f54e
Add chainid-5108.js (#2477)
solutionprovider25 Feb 9, 2026
5e36f53
feat: add Gelatine Network (61564) (#2480)
iced-lemontea Feb 9, 2026
565a6dd
feat: Add Ronin Saigon Testnet (202601) (#2481)
dwi Feb 9, 2026
29b983b
pyra chain (#2483)
RoseFlower3224 Feb 9, 2026
5c87b78
Rename chainId-1330.js to chainid-1330.js (its not visible in chainli…
mkd951 Feb 10, 2026
b8afc85
add dRPC RPC endpoints for MegaETH mainnet (#2492)
dRPCMarketing Feb 10, 2026
77f6ff6
Add configuration for ION Network (chainId 1143) (#2488)
pourbahrami Feb 12, 2026
67b9144
Link the service provider's website (the company/protocol/individual …
shu-unifra Feb 12, 2026
45fcacd
Add INRI CHAIN (chainId 3777) (#2490)
inrichain Feb 12, 2026
9db07c0
add: BlockDAG Mainnet Network (#2493)
urkishan Feb 12, 2026
f96ffd3
feat: Add Dilithium3 Testnet (Chain ID 30939) privacy statement and R…
solandecabras Feb 12, 2026
4d17f2d
feat: add robinhood chain testnet (#2496)
robinhood-gilbert Feb 12, 2026
b53811d
add BOT Chain Mainnet chainid 677 (#2498)
brokes6 Feb 12, 2026
179bbcd
add BOT Chain Mainnet(677) RPC (#2499)
brokes6 Feb 13, 2026
9149f56
Fix HairyLabs PulseChain RPC URL (#2502)
K1ckb0XDev Feb 13, 2026
f13abc2
Create chainid-4217.js (#2504)
dRPCMarketing Feb 13, 2026
7076be2
Fix invalid export (#2505)
Caranell Feb 13, 2026
3f3ed6c
add icon change
realdealshaman Feb 16, 2026
48eb699
icon check
realdealshaman Feb 16, 2026
8086b9c
fix icon
realdealshaman Feb 17, 2026
df8ba6d
Replace old WadzChain to Rebranded W Chain for both Mainnet and Testn…
tripsy-eth Feb 17, 2026
6023007
Add Aztec Mainnet (677868) (#2506)
dRPCMarketing Feb 18, 2026
65aece2
Add Advance Blockchain Mainnet (chainId 892) (#2508)
007bharatsingh Feb 18, 2026
8358d62
Added onfinality plasma endpoint (#2509)
FiveKG Feb 18, 2026
60ef4a6
feat: added stakely story json rpc, removed evmos and somnia json rpc…
trikunai Feb 18, 2026
7e072e9
feat: add Infinite Improbability Drive mainnet and testnet (#2514)
teh-woman-in-red42 Feb 18, 2026
5009271
Add Tajirchain Devnet configuration (#2515)
faizan-macromodule Feb 18, 2026
056b537
Add dRPC RPC endpoints for Moca mainnet and testnet (#2507)
dRPCMarketing Feb 23, 2026
b2335a3
Change native currency symbol from BTC to IBVM (#2516)
Aashishquest Feb 23, 2026
5ada99b
PandaSea mainnet (#2518)
MeghaZeeve Feb 23, 2026
20280ba
Add chainId 3945 to additionalChainRegistry (#2519)
alecjames-dot Feb 23, 2026
4f9c99d
Add PropTech Mainnet (Chain ID: 88788) (#2530)
FurqaanISmileTechnologies Feb 26, 2026
a6aa4e4
Add BitBadges Mainnet (50024) and Testnet (50025) (#2528)
trevormil Feb 26, 2026
8c37fd8
Change native currency symbol from BTC to IBVM (#2527)
IBVM-official Feb 26, 2026
a56d76d
Update Bot Chain(677) Rpc (#2526)
brokes6 Feb 26, 2026
bf5c250
Add Huginn Tech RPC endpoints for Monad mainnet and testnet (#2521)
s0urledd Mar 2, 2026
c4c7a97
Add iTani Network Chain (ITN) Mainnet and Testnet (#2522)
itanidreams-dev Mar 2, 2026
810648b
Add Bery chain (Chain ID 8379) - EVM-compatible BFT blockchain at ber…
RoshanRaghavander Mar 2, 2026
a19c012
feat: add Omega Mainnet to the additional chain registry (#2524)
Ozelea Mar 2, 2026
6c92548
Add Mars Credit (110110) RPC endpoints (#2529)
lifeofjer Mar 2, 2026
019e337
Add Tractsafe Network / Create chainid-99566.js. (#2533)
Tractsafe Mar 2, 2026
1f522bc
Added onfinality zksync seplia endpoint (#2534)
FiveKG Mar 2, 2026
58fb542
Add Igra Mainnet (chainId 38833) to additionalChainRegistry (#2535)
bitnician Mar 2, 2026
b0b1048
Delete constants/additionalChainRegistry/chainid-2892.js (#2536)
stefanopepe Mar 2, 2026
ec416b7
Add ZugChain Testnet (Chain ID: 824642) (#2537)
ZugChainLabs Mar 2, 2026
0956ea3
fix (#2540)
Define101 Mar 2, 2026
144ce3a
add #2001 (#2541)
Define101 Mar 2, 2026
aafcfad
Add BIE Chain (chainId: 1342) (#2352)
bie202512-droid Mar 2, 2026
8292794
BrickChain (#2368)
entaiafrica Mar 2, 2026
adfac19
add shibarium (#2550)
Define101 Mar 4, 2026
4448286
add new id
realdealshaman Mar 5, 2026
5225493
add qie id
realdealshaman Mar 6, 2026
4c068fe
feat(chains): agregar FST Smart Chain chainId 2034 (#2542)
osedhelu Mar 9, 2026
eafa40a
update mars rpc (#2546)
ceze Mar 9, 2026
0d90da0
feat: add chain IDs 270 and 2700 to additionalChainRegistry (#2547)
nol4lej Mar 9, 2026
b7082d3
Update chainid-7890.js (#2548)
PANCHAINNETWORK Mar 9, 2026
8ef9f9d
Create chainid-511.js (#2549)
fyrochain Mar 9, 2026
09475d8
Add NeutronX Mainnet (Chain ID 2070) (#2551)
StasFQ Mar 9, 2026
f55e09c
Add EGoldChain Mainnet (Chain ID: 1932) (#2553)
lexthai24 Mar 9, 2026
fc85db0
Add Tajirchain Testnet configuration (#2554)
faizan-macromodule Mar 9, 2026
01dcc32
Update Turkchain naming and RPC URLs (#2555)
Turkchain1919 Mar 9, 2026
57e73a0
Add JITO Public Network RPC endpoint (#2559)
Codejain1 Mar 9, 2026
55c2bf9
update explorer
realdealshaman Mar 12, 2026
d3f1e02
Add Quantum Blockchain (QBC) RPC — Chain ID 3303 (#2561)
BlockArtica Mar 12, 2026
50f5321
Add ArmaChain Testnet (Chain ID 2028) (#2565)
anteyko-labs Mar 12, 2026
0a18ee2
add-mirasmanda-mainnet (#2569)
jovanikos Mar 18, 2026
8323020
Add BotCash Sovereign L2 (#2572)
calypsocharm Mar 18, 2026
5b016e2
add Fluent mainnet (#2577)
Scott-Canning Mar 18, 2026
1bef38e
Feat/add fst smart chain 2034 (#2573)
osedhelu Mar 23, 2026
1e9494a
Add Gravity Longevity Testnet (chainId 7771625) (#2574)
richard-galxe Mar 23, 2026
872ccda
Add SPACE OS Testnet (Chain ID 800000) (#2576)
SPACEOS-Info Mar 23, 2026
670afa7
Added Liquify's HypeEVM and MegaETH RPC Nodes (#2578)
kieron-liquify Mar 23, 2026
b80c127
Add Cincoin Blockchain (CIN) RPC — Chain ID 39500 (#2579)
CaioRutka Mar 23, 2026
a11bef1
Create chainid-20260131.js (#2580)
Mar 23, 2026
520f131
Create chainid-984.js (#2583)
zeeve-shubham Mar 23, 2026
aa5c5c1
fix: update chain and currency names from OPN to IOPN in chainid-222.…
zeeve-shubham Mar 23, 2026
117423a
Add Qubitcoin chain (Chain ID: 3303) (#2584)
BlockArtica Mar 23, 2026
43d7bd6
feat: add Citrate Testnet (chain ID 40204) (#2586)
SaulBuilds Mar 23, 2026
ac84acb
Add monad endpoints, fix privacy policy. (#2564)
htwtech Mar 23, 2026
d3af8a8
Revert "Added Liquify's HypeEVM and MegaETH RPC Nodes (#2578)" (#2587)
Define101 Mar 23, 2026
fddc10c
fix: add rootstock testnet chain id (#2596)
ahsan-javaiid Mar 27, 2026
0e03681
Update extraRpcs.js for Kite AI chain (Chainlist ID : 2366) (#2589)
vikkite Mar 31, 2026
5cff015
Add GenLayer Testnets (Chain ID 4221) (#2592)
rasca Mar 31, 2026
a7b16a3
feat: battlechain testnet (#2593)
PatrickAlphaC Mar 31, 2026
ce0208e
remove https://evmos.api.onfinality.io/public api from list (#2601)
leoonf Mar 31, 2026
69300be
Add JOA Chain (chainId: 1191) (#2607)
King11919 Mar 31, 2026
9598dbb
Create chainid-505.js (#2608)
dotOneSmartChain Mar 31, 2026
0be49d9
Add NovaMoney chain configuration file (#2611)
SucrePro Mar 31, 2026
84bb92a
Add public RPC endpoints for Infinite and QL1 (#2603)
Ms-chihuahua Apr 6, 2026
8c32f79
Add FONChain Mainnet (FSC) - ChainID 201022 (#2606)
fonmark888 Apr 6, 2026
6a5a67d
feat: update iTani Network Chain (chainId 1229800785) RPC and add ext…
itanidreams-dev Apr 6, 2026
b107526
Add NV-CHAIN (73790) to extraRpcs (#2612)
neurovatic Apr 6, 2026
9dc19b9
Add Tipschain registry data for chain ID 19251925 (#2614)
tipspay-dev Apr 6, 2026
ae81b2f
feat: add CChain (2500) metadata and RPC endpoints (#2615)
consciousness-dev Apr 6, 2026
4dc00aa
Add Anannta Chain (1082) (#2616)
developeranannta Apr 6, 2026
5801961
Add Ventures Blockchain (chainid-77717) (#2617)
nkanunueric Apr 6, 2026
7513352
Add Igra Testnet (chainId 38836) to additionalChainRegistry (#2619)
bitnician Apr 6, 2026
acae788
Add HairyLabs WebSocket RPC for PulseChain (369) (#2620)
K1ckb0XDev Apr 6, 2026
bfc122a
Add Tron Classic (chainId 30485) registry and extra RPC (#2621)
trxclassic Apr 6, 2026
ab429bb
ADD MOC Blockchain (#2622)
Giaky76 Apr 6, 2026
8451f5f
Fix build (#2625)
Caranell Apr 6, 2026
5bd4c0f
Add VinuChain mainnet (207) and testnet (206) (#2624)
ElemontCapital Apr 15, 2026
b079287
Add ClawCoin (chain ID 11111111) (#2618)
iwannacc Apr 15, 2026
838324e
PR to add Anubis Testnet (#2626)
Vekkl Apr 15, 2026
7449d10
feat: add NetX Mainnet (287) and NetX Testnet (587) RPCs (#2629)
0xA2618 Apr 15, 2026
245c079
remove deprecated public blockpi rpc "https://oasys.blockpi.network/v…
blockpi019 Apr 15, 2026
0b52733
feat: add Xenea Ubusuna Testnet (chain ID 1096) (#2613)
phongho01 Apr 15, 2026
009ca4f
feat: update iTani Network Chain (1229800785) - add node RPC and expl…
itanidreams-dev Apr 15, 2026
d7d927f
Add support for new blockchain integration and update related RPC end…
ShamirSecret Apr 15, 2026
5d36cc8
Create chainid-36000.js (#2636)
sklazer Apr 15, 2026
954a336
Add litvm liteforge testnet (#2637)
DenSmolonski Apr 15, 2026
532ff46
Add BesaChain network configurations (#2638)
besalabs Apr 15, 2026
71c7605
feat: add LIBERTAS Mainnet (chainId 7474) (#2640)
volya089-bot Apr 15, 2026
03f6664
Update TBURN Mainnet (5800) with icon and RPC endpoints (#2641)
trustburn79-droid Apr 15, 2026
26c15b2
Add Vexidus Testnet (chainId 1618032) (#2642)
vexidus-labs Apr 15, 2026
f2548e3
Add TPIX Chain (chainId: 4289) to additionalChainRegistry (#2643)
xjanova Apr 15, 2026
1acfe7d
Add TAAQO Mainnet (Chain ID 5566) (#2644)
sumit-kotiya789 Apr 15, 2026
fe0928a
Add Oxin Chain (4457) (#2645)
oxinchain Apr 15, 2026
e336732
feat: add Seven Chain (chainId 70007) (#2647)
umairkhan2582 Apr 15, 2026
23cbeb8
Revert "Add BesaChain network configurations (#2638)" (#2652)
Define101 Apr 15, 2026
c3b0c2c
Add Flashnet Mainnet (21021) and Flashnet Testnet (21022) (#2648)
poplexity Apr 17, 2026
dc64d5f
Add QTSCHAIN Network chain-88868.json (#2649)
QTSCHAIN Apr 17, 2026
c9492b4
Add MIZUHIKI Testnet Awaji (chainId 6497) (#2651)
nikitakent Apr 17, 2026
dba9f06
Update PRC on chainid-1082.js (#2653)
developeranannta Apr 17, 2026
af22625
Revert: Remove countzero RPC endpoint from HyperEVM (chain 999) (#2655)
c0un7-zero Apr 17, 2026
2513195
Pecu Novus Network Onboarding (#2656)
dev-lv-megahoot Apr 17, 2026
6d836ce
Add Nexus Mainnet (chain ID 3946) to additionalChainRegistry (#2659)
alecjames-dot Apr 17, 2026
2bff0e2
Revert "Add QTSCHAIN Network chain-88868.json (#2649)" (#2662)
Define101 Apr 17, 2026
04526fd
add 88868 (#2664)
Define101 Apr 17, 2026
8557f03
Add SwiftNodes RPC endpoints for 35 EVM chains (#2654)
swiftnodes Apr 24, 2026
41440f3
Add INFRA-testnet chain data (#2663)
Devops-rechian Apr 24, 2026
8e6aed5
Add Satelink RPC for Polygon Amoy (#2665)
Satelink-Protocol Apr 24, 2026
fe89a91
feat: add AiFi (3600) metadata and RPC endpoints (#2666)
devubuntux-creator Apr 24, 2026
abd16ed
Add AICChain Mainnet and Testnet to chainlist (#2669)
AICChain-labs Apr 24, 2026
5570d6d
feat: add Tempo Mainnet (#2673)
o-az Apr 24, 2026
76504c2
fix: update USDC native currency decimals to 18 for Arc testnet (#2674)
0xjohnk Apr 24, 2026
6f8cee3
feat: add Fenine testnet (#2675)
avenbreaks Apr 24, 2026
a819e9f
Update Parallax (2110) RPC & logo (#2672)
andrepatta Apr 24, 2026
7291dd9
Fix syntax (#2688)
Caranell Apr 25, 2026
353376e
fix: Tempo currency (#2685)
o-az Apr 29, 2026
0c498fb
Update extraRpcs.js with private polygon rpc (#2686)
drwtsn95 Apr 29, 2026
b0f9761
add PopDEX mainnet,testnet (#2693)
david9104online Apr 29, 2026
8b98986
Create chainid-19998.js (#2695)
superaichain Apr 29, 2026
f636f12
Add OriginStake Pharos Mainnet RPC (#2684)
mrspir Apr 29, 2026
435fe29
Add Ruby Chain Testnet (chainId 1810) (#2697)
ElektrumSAS Apr 29, 2026
2de7f3d
Add Arc (chain ID 5042) to additionalChainRegistry (#2670)
0xjohnk May 5, 2026
359a274
Update extraRpcs.js (#2687)
0xPhithe May 5, 2026
44e04fe
Fix chain 988 slug: seda -> stable (#2700)
tarun-khatri May 5, 2026
74f9d91
Add Rayls Mainnet configuration (#2701)
AlexJupiter May 5, 2026
d4b6d35
Revert "Update extraRpcs.js (#2687)" (#2710)
Define101 May 5, 2026
aee88f6
feat: update sentio rpc nodes, add more rpc nodes (#2706)
frozenluo May 5, 2026
62d5fbf
Add Sentrix Chain (mainnet 7119, testnet 7120) (#2707)
satyakwok May 5, 2026
96df89e
Fix invalid chain id (#2711)
Caranell May 5, 2026
1fe8c2e
use pnpm (#2737)
mintdart May 12, 2026
83ad450
Fix MegaETH mainnet chain metadata (#2742)
crumb-trail May 13, 2026
f142e1b
fix(sentrix): testnet explorer URL + EIP3091 compliance (#2715)
satyakwok May 13, 2026
c2f0355
Add TradeXcele Chain (chainId 47294) (#2717)
tradexcele May 13, 2026
bbe74b4
Update MeeChain 13390 RPC and network metadata (#2719)
MEECHAIN1 May 13, 2026
f121e55
Add Mars Chain Testnet (chainId 704852) (#2712)
mars-chain123 May 13, 2026
3120038
Add Sentrix mainnet (7119) to chainIds slug map (#2714)
satyakwok May 13, 2026
1ff5376
Removed SubQuery's Extinct RPCs (#2720)
Danielvul May 13, 2026
1f60c82
Removed Story RPC (#2722)
dev-minsu May 13, 2026
97b2a61
feat: add NVNM EVM configuration (#2723)
BigtoMantraDev May 13, 2026
364cda3
Add Goliath - chain id 327 (#2727)
onyxcoindev May 14, 2026
136338c
Fix github workflow for pnpm (#2756)
Caranell May 16, 2026
880e390
fix chain name
realdealshaman May 17, 2026
cde7314
fix location
realdealshaman May 17, 2026
d0c3da3
Add rpcfree.com RPC endpoints for Ethereum, Base, Polygon, Arbitrum (…
etoxdev May 18, 2026
609b2b7
Add LightchainAI mainnet & testnet support (#2740)
lightchainaidev May 18, 2026
ea7629f
Add BEXChain (chainId 140586) registry entry (#2741)
bexchainteam May 18, 2026
535cedf
Add chainid-343 configuration for Capital Exchange SE (#2743)
capitalexchange May 18, 2026
525a01c
update ronin mainnet explorer + remove inactive rpc (#2744)
SM-Trung-Le May 18, 2026
de31afa
add Autheo Mainnet chainId 2127 (#2745)
kapil-zeeve May 18, 2026
1f08ecd
Add APChain mainnet (#2746)
luofenghang May 18, 2026
cc54f49
Remove llamanodes rpcs (#2749)
Caranell May 20, 2026
edca140
Fix EB-Chain (Chain ID: 8721) - remove EIP1559, update infoURL (#2750)
kikaE2B May 20, 2026
c7acee3
feat(chain): add ROON Mainnet (chainId 1492) to additional registry (…
roonchain-labs May 20, 2026
297b954
remove LlamaNodes RPCs (#2753)
0xsign May 20, 2026
e77c292
Add AXION Mainnet (Chain ID 303030) (#2758)
axionteam645 May 20, 2026
e898c95
Add Tea Mainnet (chainId 6122) (#2729)
angysinghdhillon May 20, 2026
9c2bcfa
fix (#2778)
Define101 May 20, 2026
883b506
Add NodeFlare public RPC endpoints for 8 chains (#2779)
BabyScope May 20, 2026
fe3cd91
add TreasureNet Aurora chain 5570 override (#2733)
chriszhao1988 May 20, 2026
3c6a76b
2721/2718 (#2785)
Define101 May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
278 changes: 278 additions & 0 deletions .github/scripts/validate-chain-files.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,278 @@
import path from 'path';
import { fetchWithCache } from '../../utils/fetch.js';
import fs from 'fs';

const isExtracRpcsFileChanged = (process.env.EXTRA_RPC_CHANGED || '').trim().length > 0;
const addedOrModified = process.env.FILES_CHANGED.split(' ');

// Function to write to step summary
function writeToStepSummary(content) {
if (process.env.GITHUB_STEP_SUMMARY) {
try {
fs.appendFileSync(process.env.GITHUB_STEP_SUMMARY, content + '\n');
} catch (error) {
console.error('Failed to write to step summary:', error.message);
}
}
}

// Function to write errors to a file that persists between steps
function writeErrorsToFile(errors) {
try {
const errorContent = errors.join('\n');
fs.writeFileSync('/tmp/validation-errors.txt', errorContent);
console.log('Errors written to /tmp/validation-errors.txt');
} catch (error) {
console.error('Failed to write errors to file:', error.message);
}
}

// Main async function to run validation
async function runValidation() {
// Collect all errors
const errors = [];

if (isExtracRpcsFileChanged) {
try {
await validateExtracRpcs();
} catch (error) {
errors.push(error.message);
writeToStepSummary(`❌ ${error.message}`);
}
}

// Process chain files sequentially to avoid overwhelming the system
for (const filePath of addedOrModified) {
if (filePath.trim()) {
try {
await validateChainFile(filePath);
} catch (error) {
errors.push(error.message);
writeToStepSummary(`❌ ${error.message}`);
}
}
}

// If there are errors, throw them all at once
if (errors.length > 0) {
const errorSummary = errors.join('\n');
writeToStepSummary(`\n## Validation Summary\n\n${errors.length} validation error(s) found:\n\n${errorSummary}`);
writeErrorsToFile(errors);
throw new Error(`Validation failed with ${errors.length} error(s):\n${errorSummary}`);
}

// Write success message to step summary
writeToStepSummary('✅ All chain files validated successfully!');
}

// Run the validation
runValidation().catch(error => {
console.error('Validation failed:', error.message);
process.exit(1);
});

const rpcTrackingSet = new Set(['none', 'limited', 'yes', 'unspecified']);

// Validate chainid-*.js files
async function validateChainFile(filePath) {
filePath = filePath.trim();
const filename = path.basename(filePath);
try {
if (!filename.startsWith('chainid-') || !filename.endsWith('.js')) {
throw new Error(`${filePath} does not match chainid-*.js pattern`);
}
const { data } = await import(path.join('..', '..', filePath))
const { features, faucets, nativeCurrency, explorers, parent, } = data;

if (typeof data !== 'object' || !data)
throw new Error('Data should be an object: ')

numberCheck(data, 'chainId', true);
numberCheck(data, 'networkId', true);
stringCheck(data, 'name', true);
stringCheck(data, 'shortName', true);
stringCheck(data, 'chain', true);
stringCheck(data, 'icon');
stringCheck(data, 'infoURL')
stringCheck(data, 'title')

stringCheck(nativeCurrency, 'name', true);
stringCheck(nativeCurrency, 'symbol', true);
numberCheck(nativeCurrency, 'decimals', true);

if (typeof explorers === 'object') {
if (!Array.isArray(explorers)) {
throw new Error('Explorers should be an array');
}
explorers.forEach((explorer) => {
stringCheck(explorer, 'name', true);
stringCheck(explorer, 'url', true);
stringCheck(explorer, 'standard');
});
}

if (typeof features === 'object') {
if (!Array.isArray(features)) {
throw new Error('Features should be an array');
}
features.forEach((feature) => {
stringCheck(feature, 'name', true);
});
}

if (Array.isArray(faucets)) {
faucets.forEach((faucet) => {
if (typeof faucet !== 'string') {
throw new Error('Faucets should be an array of strings');
}
});
}

if (!Array.isArray(data.rpc) || data.rpc.length === 0) {
throw new Error('RPCs should be a non-empty array');
}

data.rpc.map(validateRPC)

const { chainIdConfigMap, } = await getChainlistConfig();

if (chainIdConfigMap[data.chainId]) {
console.warn(`Chain ID ${data.chainId} already exists in chainlist.org/rpcs.json`);
if (chainIdConfigMap[data.chainId].shortName !== data.shortName)
throw new Error(`Chain ID ${data.chainId} already exists with a different shortName: ${chainIdConfigMap[data.chainId].shortName}`);

if (chainIdConfigMap[data.chainId].name !== data.name)
throw new Error(`Chain ID ${data.chainId} already exists with a different name: ${chainIdConfigMap[data.chainId].name}`);
}

if (parent) {
stringCheck(parent, 'type', true);
stringCheck(parent, 'chain', true);
if (Array.isArray(parent.bridges)) {
parent.bridges.forEach((bridge) => {
stringCheck(bridge, 'url', true);
});
}
if (!parent.chain.startsWith('eip155-')) {
throw new Error(`Parent chain should start with eip155-: ${parent.chain}`);
}
const parentChainId = parent.chain.split('-')[1]
if (!chainIdConfigMap[parentChainId]) {
throw new Error(`Parent chain ${parentChainId} does not exist in chainlist.org/rpcs.json`);
}
}

} catch (e) {
throw new Error(`Validation failed for ${filename}: ${e.message}`);
}
}

async function validateExtracRpcs() {
try {
const { default: extraRpcs } = await import(path.join('..', '..', 'constants/extraRpcs.js'));
Object.entries(extraRpcs).forEach(([chainId, config]) => {
validateRPCConfig(config, chainId);
})
} catch (e) {
throw new Error(`extracRpcs.js import failed: ${e.message}`);
}
}

function validateRPCConfig(config, configId) {
if (typeof config !== 'object') throw new Error('RPC config should be an object');
if (!Array.isArray(config.rpcs)) throw new Error('RPC config rpc should be an array');
config.rpcs.map(validateRPC)

if (config.hasOwnProperty('rpcWorking') && typeof config.rpcWorking !== 'boolean') {
throw new Error('RPC rpcWorking should be a boolean ' + configId);
}

if (config.hasOwnProperty('websiteDead') && typeof config.websiteDead !== 'boolean' && typeof config.websiteDead !== 'string') {
throw new Error('RPC websiteDead should be a boolean ' + configId);
}

}

function validateRPC(rpc) {
if (typeof rpc === 'string' && rpc.length) return;
if (typeof rpc !== 'object') throw new Error('RPC should be an object')
if (typeof rpc.url !== 'string') throw new Error('RPC url should be a string' + JSON.stringify(rpc));

if (rpc.hasOwnProperty('tracking')) {
if (typeof rpc.tracking !== 'string') {
throw new Error('RPC tracking should be a string ' + rpc.url);
}
if (!rpcTrackingSet.has(rpc.tracking)) {
throw new Error('Unknown rpc tracking status ' + rpc.url);
}
}

if (rpc.hasOwnProperty('trackingDetails') && typeof rpc.trackingDetails !== 'string') {
throw new Error('RPC trackingDetails should be a string ' + rpc.url);
}

if (rpc.hasOwnProperty('name') && typeof rpc.name !== 'string') {
throw new Error('RPC name should be a string ' + rpc.url);
}

}

let chainlistConfig

function getChainlistConfig() {
if (!chainlistConfig) chainlistConfig = _getChainlistConfig()

return chainlistConfig

async function _getChainlistConfig() {
const rpcInfo = await fetchWithCache('https://chainlist.org/rpcs.json')
console.log('Fetched RPC info from chainlist.org/rpcs.json')
const chainIdConfigMap = {}
const shortNameChainIdMap = {}
const nameChainIdMap = {}
rpcInfo.forEach((chain) => {
if (chain.chainId === undefined || chain.name === undefined || chain.shortName === undefined) {
return
}
chainIdConfigMap[chain.chainId] = {
name: chain.name,
shortName: chain.shortName,
rpc: chain.rpc,
website: chain.website,
icon: chain.icon,
tracking: chain.tracking,
trackingDetails: chain.trackingDetails,
}
shortNameChainIdMap[chain.shortName] = chain.chainId
nameChainIdMap[chain.name] = chain.chainId
})

return {
chainIdConfigMap,
shortNameChainIdMap,
nameChainIdMap,
}
}
}

function stringCheck(obj, field, isMandatory = false) {
if (typeof obj !== 'object' || !obj) throw new Error(`Chain ${field} should be an object`);

if (isMandatory && !obj.hasOwnProperty(field)) {
throw new Error(`Chain ${field} is mandatory`);
}
if (obj.hasOwnProperty(field) && typeof obj[field] !== 'string') {
throw new Error(`Chain ${field} is not a string`);
}
}

function numberCheck(obj, field, isMandatory = false) {
if (typeof obj !== 'object' || !obj) throw new Error(`Chain ${field} should be an object`);

if (isMandatory && !obj.hasOwnProperty(field)) {
throw new Error(`Chain ${field} is mandatory`);
}
if (obj.hasOwnProperty(field) && typeof obj[field] !== 'number') {
throw new Error(`Chain ${field} is not a number`);
}
}
27 changes: 27 additions & 0 deletions .github/workflows/check-duplicate-keys.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Check Duplicate Keys

on:
pull_request:
paths:
- 'constants/extraRpcs.js'
- 'constants/chainIds.js'
push:
branches:
- main
paths:
- 'constants/extraRpcs.js'
- 'constants/chainIds.js'

jobs:
check-duplicates:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'

- name: Check for duplicate keys
run: node tests/check-duplicate-keys.js
64 changes: 64 additions & 0 deletions .github/workflows/validate-chain-files.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Validate Chain Files

on:
pull_request_target:
paths:
- 'constants/additionalChainRegistry/*'
- 'constants/extraRpcs.js'

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 100

- name: Enable Corepack
run: corepack enable

- name: Set changed files
id: files
run: |
echo "FILES_CHANGED=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep 'constants/additionalChainRegistry/' | tr '\n' ' ' | sed 's/ $//' || true)" >> $GITHUB_ENV
echo "EXTRA_RPC_CHANGED=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | grep 'constants/extraRpcs.js' | tr '\n' ' ' | sed 's/ $//' || true)" >> $GITHUB_ENV

- name: Validate chain and extracRpcs files
run: |
node -v
echo "Files changed: $FILES_CHANGED"
echo "Extra RPC files changed: $EXTRA_RPC_CHANGED"
if [ -z "$FILES_CHANGED" ] && [ -z "$EXTRA_RPC_CHANGED" ]; then
echo "No relevant files changed."
exit 0
fi
pnpm install --frozen-lockfile
ONLY_LIST_FILE=true pnpm run build
node .github/scripts/validate-chain-files.js

env:
FILES_CHANGED: ${{ env.FILES_CHANGED }}
EXTRA_RPC_CHANGED: ${{ env.EXTRA_RPC_CHANGED }}

- name: Comment on PR if validation fails
if: failure()
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
let errorContent = 'See workflow logs for details.';

try {
if (fs.existsSync('/tmp/validation-errors.txt')) {
errorContent = fs.readFileSync('/tmp/validation-errors.txt', 'utf8');
}
} catch (error) {
console.log('Could not read validation errors file:', error.message);
}

github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: "Validation failed for chain files. Please check the workflow logs for details.\n\nError message:\n```\n" + errorContent + "\n```"
})
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# generated files
constants/additionalChainRegistry/list.js

# dependencies
/node_modules
/.pnp
Expand Down Expand Up @@ -29,6 +32,10 @@ yarn-error.log*
.env.development.local
.env.test.local
.env.production.local
.env

# vercel
.vercel

# others
build.log
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
sitemap.xml.js
.next
out
public
Loading