Available Precompiles:
This page shows Bank, Staking, Governance, Distribution, JSON, and Solo. The rest are covered on their own pages: CosmWasm, Address, Pointer contracts for both pointer precompiles, and P256.
@sei-js/precompiles@3 is ESM-only and matches Sei Chain v6.6.1 ABIs. Import raw *_PRECOMPILE_ABI constants from the package root, @sei-js/precompiles/precompiles, or @sei-js/precompiles/viem. Ethers factories are on @sei-js/precompiles/ethers. The package does not expose VIEM_*_PRECOMPILE_ABI aliases. It re-exports Viem’s sei and seiTestnet definitions and also exports seiLocal (chain ID 713714, http://localhost:8545). Viem 2.55.16 or newer is required.Setup
Bank Precompile
eth_getBalance only returns 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 within EVM contracts or dApps. This is useful for processing 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 to claim a single payload rather than everything available to the address.
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 rather than hard-coding:
viem