Skip to main content
Sei precompiles are special smart contracts deployed at fixed addresses that expose native Sei functionality to EVM applications. They can be called like any standard smart contract using viem, ethers, or wagmi.
Available Precompiles:
The IBC and Oracle precompiles are not exported by @sei-js/precompiles. IBC is disabled in both directions, and native Oracle queries are retired. Calls to either precompile cannot succeed on live Sei. See IBC is disabled and Oracle Precompile (Retired).
Import the raw *_PRECOMPILE_ABI constants for both Viem and Ethers.js. The package does not expose the old VIEM_*_PRECOMPILE_ABI aliases.

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:

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. Use estimateGas rather than hard-coding:
viem

Full Working Example

A Node.js script that delegates SEI and then casts a governance vote:
Run with:

Next Steps

For full ABI reference and all available functions on each precompile: