Skip to content

Repository files navigation

@w3-kit/registry

CI npm License: MIT

Chain, token, Solana program, and ABI registry for web3 development.

Install

npm install @w3-kit/registry

Usage

import {
  getChain,
  getToken,
  getAllChains,
  getChainsByEcosystem,
  getSolanaProgram,
  getSolanaProgramByAddress,
} from "@w3-kit/registry";

// Get a chain by ID
const ethereum = getChain(1);

// Get all EVM chains
const evmChains = getChainsByEcosystem("evm");

// Get a token by symbol
const usdc = getToken("USDC");

// Get a Solana program by key
const splTokenProgram = getSolanaProgram("spl-token");

// Reverse lookup a Solana program deployment
const raydium = getSolanaProgramByAddress(
  "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8",
  "mainnet-beta",
);

Validation

Registry data is validated in CI before merge. Run the validation gate locally with:

npm run validate

The validator checks schema shape, URLs, chain references, duplicate identifiers, and ecosystem-specific token identifiers.

RPC fallbacks

chain.rpcUrls remains a string[] for backwards compatibility. Each chain also exposes at least two structured rpcEndpoints, with the endpoint URL, provider name, and a public flag so consumers can select public fallbacks explicitly:

const chain = getChain(1);
const publicRpcs = chain?.rpcEndpoints.filter((rpc) => rpc.public) ?? [];

These endpoints are best-effort public services for development, examples, and fallback access. They may be rate-limited or unavailable and should not be treated as production infrastructure. Applications should provide their own managed RPC endpoint for production traffic.

Stablecoin addresses

USDC, USDT, and DAI entries use the issuer's native deployment when one is published for a supported chain, or the canonical contract recorded by that chain's block explorer. Testnet addresses are for testing only. A token is not added to a chain when the issuer does not publish a deployment there; the registry does not use placeholder or guessed addresses.

Some registered networks do not have all three assets: Solana Devnet has no canonical USDT or DAI deployment, and the registry has no reliable DAI deployment for Sui or Aptos. Defunct Multichain assets on Fantom and Binance-Peg/DAI.e entries without issuer-native backing are also omitted. Those omissions are intentional and should be treated as unavailable data rather than as permission to substitute an unrelated token.

Primary sources:

API

Function Description
getAllChains() Get all chains
getChain(chainId) Get chain by ID
getChainsByEcosystem(eco) Filter chains by ecosystem
getAllTokens() Get all tokens
getToken(symbol) Get token by symbol
getTokensByChain(chainId) Get tokens on a chain
getAllSolanaPrograms() Get all registered Solana programs
getSolanaProgram(key) Get Solana program by stable key
getSolanaProgramsByCluster(cluster) Filter Solana programs by cluster
getSolanaProgramByAddress(programId, cluster) Reverse lookup a Solana program deployment

Types

import type {
  Chain,
  Token,
  SolanaProgram,
  SolanaCluster,
  ChainId,
  Address,
} from "@w3-kit/registry";

Architecture

Uses Domain-Driven Design (DDD) with domain, application, and infrastructure layers. See CONTRIBUTING.md for details.

Part of the w3-kit ecosystem

License

MIT

Releases

Packages

Contributors

Languages