Available precompiles:
This page shows Bank, Staking, Governance, Distribution, JSON, and Solo. The other precompiles have their own pages: CosmWasm, Address, Pointer contracts for both pointer precompiles, and P256.
@sei-js/precompiles@3 is ESM-only and matches the Sei Chain v6.6.1 ABIs. Import raw *_PRECOMPILE_ABI constants from the package root, @sei-js/precompiles/precompiles, or @sei-js/precompiles/viem. Import the ethers factories from @sei-js/precompiles/ethers. The package does not expose VIEM_*_PRECOMPILE_ABI aliases. It re-exports the viem sei and seiTestnet definitions and also exports seiLocal (chain ID 713714, http://localhost:8545). The package requires viem 2.55.16 or newer.Setup
Bank precompile
eth_getBalance returns only the EVM-side SEI balance. The Bank precompile lets you query the native SEI (usei) bank balance for an address:
Staking precompile
Delegate, undelegate, and query staking state:Governance precompile
Vote on an active governance proposal:Distribution precompile
Claim staking rewards from a validator:JSON precompile
Parse JSON data in EVM contracts or dApps. This is useful for oracle responses, NFT metadata, and structured payloads:Solo precompile
Claim a Solo migration payload. Both functions take the signed payload asbytes and return a boolean:
claimSpecific with the same argument shape.
Common patterns
Error handling
Wrap precompile calls in try/catch and check for specific error codes:Batch read operations
Fetch multiple precompile values in parallel:Gas limits
Precompile calls that write state need enough gas. UseestimateContractGas instead of a hard-coded value:
viem