Skip to main content

Documentation Index

Fetch the complete documentation index at: https://seilabs-docs-evm-reference-and-sei-js-examples.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

@sei-js/registry is a typed reference package for Sei chain metadata — RPC endpoints, token lists, gas parameters, wallet info, and more. It pulls from the official sei-protocol/chain-registry and is kept in sync as a git submodule.

Install

npm install @sei-js/registry

CHAIN_IDS

Canonical chain IDs for each Sei network:
import { CHAIN_IDS } from '@sei-js/registry';

CHAIN_IDS.mainnet  // 'pacific-1'
CHAIN_IDS.testnet  // 'atlantic-2'
CHAIN_IDS.devnet   // 'arctic-1'
Use these constants anywhere you reference a Sei network by chain ID to avoid hardcoding strings.

NETWORKS

RPC, REST, gRPC, EVM RPC, WebSocket, and explorer endpoints for each network:
import { NETWORKS } from '@sei-js/registry';

const mainnet = NETWORKS['pacific-1'];

// Pick the first available EVM RPC endpoint
const evmRpc = mainnet.evm_rpc?.[0].url;

// Pick the first available WebSocket endpoint
const evmWs = mainnet.evm_ws?.[0].url;

// Pick a Cosmos REST endpoint
const rest = mainnet.rest[0].url;
Each entry has provider (name) and url fields. Multiple providers are listed per category — iterate to implement fallback logic:
async function getWorkingRpc(network: 'pacific-1' | 'atlantic-2' | 'arctic-1') {
  const endpoints = NETWORKS[network].evm_rpc ?? [];
  for (const endpoint of endpoints) {
    try {
      const res = await fetch(endpoint.url, {
        method: 'POST',
        headers: { 'content-type': 'application/json' },
        body: JSON.stringify({ jsonrpc: '2.0', method: 'eth_blockNumber', params: [], id: 1 }),
      });
      if (res.ok) return endpoint.url;
    } catch {}
  }
  throw new Error(`No working EVM RPC found for ${network}`);
}

TOKEN_LIST

Token registry per network — name, symbol, base denom, decimal exponents, images, and CoinGecko IDs:
import { TOKEN_LIST } from '@sei-js/registry';

// All tokens on mainnet
const tokens = TOKEN_LIST['pacific-1'];

// Find SEI
const sei = tokens.find(t => t.symbol === 'SEI');
// { base: 'usei', display: 'sei', denom_units: [{ denom: 'usei', exponent: 0 }, { denom: 'sei', exponent: 6 }] }

// Convert a raw usei amount to display amount
function toDisplayAmount(usei: bigint, token: typeof sei): string {
  const exp = token.denom_units.find(u => u.denom === token.display)?.exponent ?? 6;
  return (Number(usei) / 10 ** exp).toString();
}

// Look up a token by its on-chain denom
function findByDenom(denom: string) {
  return TOKEN_LIST['pacific-1'].find(t => t.base === denom);
}
Each token includes an images object with png and svg URLs suitable for display in wallet UIs or token pickers.

GAS_INFO

Minimum gas price and module-specific adjustments per network:
import { GAS_INFO } from '@sei-js/registry';

const { denom, min_gas_price } = GAS_INFO['pacific-1'];
// denom: 'usei', min_gas_price: 0.02

// Calculate the minimum fee for a given gas limit
function minFee(gasLimit: number): string {
  const { min_gas_price, denom } = GAS_INFO['pacific-1'];
  return `${Math.ceil(gasLimit * min_gas_price)}${denom}`;
}
The min_gas_price here is the Cosmos-side gas floor. For EVM transactions, always use eth_gasPrice or eth_estimateGas — the on-chain EVM gas floor is governed separately and can change. See Gas and Fees.

CHAIN_INFO

Basic chain metadata: daemon name, Bech32 prefix, HD path coin type, and supported wallets:
import { CHAIN_INFO } from '@sei-js/registry';

CHAIN_INFO.bech32_prefix     // 'sei'
CHAIN_INFO.slip44            // 118  (HD wallet coin type)
CHAIN_INFO.supported_wallets // ['fin', 'compass', 'leap', 'keplr']

// Validate a Cosmos-side Sei address format
function isSeiAddress(address: string): boolean {
  return address.startsWith(CHAIN_INFO.bech32_prefix + '1');
}

// Derive the HD path for key generation
const path = `m/44'/${CHAIN_INFO.slip44}'/0'/0/0`;

WALLETS

Wallet metadata including icons, URLs, and EVM/native capability flags:
import { WALLETS } from '@sei-js/registry';

// All wallets that support EVM
const evmWallets = WALLETS.filter(w => w.capabilities.includes('evm'));

// Find a specific wallet for displaying its icon
const compass = WALLETS.find(w => w.identifier === 'compass');
// { name: 'Compass Wallet', icon: 'https://...jpeg', url: 'https://compasswallet.io/', capabilities: ['native', 'evm'] }
Useful for building wallet selector UIs that show icons and filter by capability.

Network Reference

Constantpacific-1 (mainnet)atlantic-2 (testnet)arctic-1 (devnet)
Chain IDpacific-1atlantic-2arctic-1
EVM Chain ID13291328713715
EVM RPCNETWORKS['pacific-1'].evm_rpcNETWORKS['atlantic-2'].evm_rpcNETWORKS['arctic-1'].evm_rpc
EVM WSNETWORKS['pacific-1'].evm_wsNETWORKS['atlantic-2'].evm_wsNETWORKS['arctic-1'].evm_ws