@sei-js is a set of TypeScript packages for building EVM applications on Sei. Use the packages for Sei-specific functionality, and use standard EVM libraries such as Viem or Ethers.js for everything else.
Sei is EVM-compatible, so you can also use Foundry, Hardhat, Wagmi, and other Ethereum tooling. @sei-js adds precompile ABIs, chain definitions, wallet integration, network metadata, scaffolding, and an MCP server.
@sei-js is open source. Contribute at github.com/sei-protocol/sei-js.
Current npm majors are ESM-only:
@sei-js/precompiles@3, @sei-js/registry@2, @sei-js/create-sei@2, @sei-js/sei-global-wallet@2, and @sei-js/mcp-server@1. Use import. require() does not resolve these packages. @sei-js/precompiles needs Viem 2.55.16 or newer. The MCP server needs Node.js 20 or newer. @sei-js/ledger is not part of the current monorepo.Why @sei-js?
- Typed ABIs and addresses for Sei precompiles
- Viem’s Pacific-1 and Atlantic-2 chain definitions re-exported for convenience, plus a
seiLocaldefinition for local nodes - Packages that work with standard EVM libraries
Packages
@sei-js/precompiles
Import precompile addresses and raw*_PRECOMPILE_ABI constants from the package root, @sei-js/precompiles/precompiles, or @sei-js/precompiles/viem. Ethers factories live on @sei-js/precompiles/ethers.
Viem owns the sei and seiTestnet chain definitions, so import those from viem/chains. The root and viem entrypoints re-export them if you would rather use a single import, and they also export seiLocal for a local node.
@sei-js/create-sei
Create a Next.js dApp with wallet integration, TypeScript, and Sei network configuration.@sei-js/sei-global-wallet
Add the EIP-6963 compatible Sei Global Wallet to a dApp.@sei-js/registry
Use typed chain IDs, RPC endpoints, token metadata, and wallet information for Pacific-1 and Atlantic-2.@sei-js/mcp-server
Connect an MCP-compatible AI assistant to Sei for blockchain queries, contract interactions, and documentation search.Deprecated packages
The five packages above are the entire current monorepo. Every other@sei-js package is deprecated on npm and no longer maintained. If one of these appears in your package.json, migrate off it.
The last four covered Cosmos SDK access, which is deprecated under SIP-3. Build on the EVM instead.
Quick start
Generate a new Sei dApp:Examples
End-to-end code examples using viem and ethers with Sei:viem Quickstart
Read chain data, send transactions, and interact with contracts in a Node.js script or backend.
ethers v6 Quickstart
The same patterns using ethers v6, including browser provider and event listening.
Wagmi + React
Connect wallets, read balances, and write contracts in a React app using Wagmi hooks.
ERC-20 Interaction
Read metadata, check balances, transfer tokens, approve spenders, and query transfer history.
ERC-721 Interaction
Check ownership, transfer NFTs, manage approvals, and watch transfer events.
ERC-1155 Interaction
Batch balance queries, single and batch transfers, operator approvals, and event watching.
Multicall
Batch multiple contract reads into a single RPC call with Multicall3 and viem/ethers/wagmi.
Pointer Contracts
Look up pointer addresses for existing CW20 and CW721 contracts, then interact with them through ERC interfaces.
Sei Precompiles
Native balances, staking, rewards, and governance voting from JavaScript.
Deploy and Verify
Deploy contracts with viem, ethers, Foundry, or Hardhat and verify on Seiscan via Sourcify.
Transaction Lifecycle
Send transactions, wait for receipts, and decode event logs.
Error Handling
Decode reverts, handle wallet rejections, and retry transient RPC failures.
Community and support
- Discord: Join the Sei developer community
- GitHub Issues: Report bugs and request features