> ## Documentation Index
> Fetch the complete documentation index at: https://seilabs-docs-incorporate-sei-js-changes.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# @sei-js/registry

> Typed chain constants, RPC endpoints, token metadata, and wallet information for Sei

`@sei-js/registry` exports typed chain IDs, endpoints, token metadata, and wallet information for Pacific-1 and Atlantic-2. Network and wallet data comes from the official [sei-protocol/chain-registry](https://github.com/sei-protocol/chain-registry). Token metadata comes from the community-maintained [Seitrace asset list](https://github.com/Seitrace/sei-assetlist).

<Note>The package does not export Arctic-1 configuration, `GAS_INFO`, or IBC registry data. Arctic-1 can still appear elsewhere in the docs when it is configured directly.</Note>

## Installation

```bash theme={"dark"}
npm install @sei-js/registry
```

## CHAIN\_IDS

Canonical chain IDs for each Sei network:

```ts theme={"dark"}
import { CHAIN_IDS } from '@sei-js/registry';

CHAIN_IDS.mainnet  // 'pacific-1'
CHAIN_IDS.testnet  // 'atlantic-2'
```

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:

```ts theme={"dark"}
import { NETWORKS, type Network } from '@sei-js/registry';

// Network is the 'pacific-1' | 'atlantic-2' chain ID union
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 endpoint has `provider` and `url` fields. You can iterate through the available providers to implement fallback logic:

```ts theme={"dark"}
async function getWorkingRpc(network: Network) {
  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}`);
}
```

<Info>`@sei-js/registry` no longer exports gas metadata. For EVM transactions, use `eth_gasPrice` and `eth_estimateGas`. See [Gas and fees](/evm/evm-parity/gas-and-fees).</Info>

## TOKEN\_LIST

Token metadata per network includes names, symbols, base denominations, decimal exponents, images, and CoinGecko IDs:

<Warning>
  `TOKEN_LIST` filters assets whose base or denomination starts with `ibc/`, along with assets marked as ICS-20. The community asset list may still contain legacy tokenfactory entries for display or compatibility. Do not treat those entries as supported integration targets. Tokenfactory is not supported for new development.
</Warning>

```ts theme={"dark"}
import { TOKEN_LIST } from '@sei-js/registry';

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

// Find SEI
const sei = tokens.find(token => token.base === 'usei');

console.log(sei?.display); // 'sei'
console.log(sei?.denom_units);
```

Each token includes an `images` object with `png` and `svg` URLs suitable for display in wallet UIs or token pickers.

## CHAIN\_INFO

`CHAIN_INFO` contains mainnet metadata such as the `seid` binary name, Bech32 prefix, fee token, SLIP-44 coin type, and supported native wallets:

```ts theme={"dark"}
import { CHAIN_INFO } from '@sei-js/registry';

CHAIN_INFO.bech32_prefix     // 'sei'
CHAIN_INFO.slip44            // 118  (HD wallet coin type)
CHAIN_INFO.fee_token         // 'usei'
CHAIN_INFO.supported_wallets // ['keplr', 'coin98']

// 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`;
```

`supported_wallets` reflects the upstream chain registry. It is not an exhaustive list of wallets that can connect to Sei.

## WALLETS

Wallet metadata includes icons, URLs, and EVM or native capability flags:

```ts theme={"dark"}
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 keplr = WALLETS.find(w => w.identifier === 'keplr');
// { name: 'Keplr Wallet', url: 'https://www.keplr.app', capabilities: ['native', 'evm'], ... }
```

Useful for building wallet selector UIs that show icons and filter by capability.

## Supported networks

| Value         | Pacific-1 (mainnet)             | Atlantic-2 (testnet)             |
| ------------- | ------------------------------- | -------------------------------- |
| Chain ID      | `pacific-1`                     | `atlantic-2`                     |
| EVM chain ID  | 1329                            | 1328                             |
| EVM RPC       | `NETWORKS['pacific-1'].evm_rpc` | `NETWORKS['atlantic-2'].evm_rpc` |
| EVM WebSocket | `NETWORKS['pacific-1'].evm_ws`  | `NETWORKS['atlantic-2'].evm_ws`  |
