Skip to main content
Precompiles are smart contract interfaces deployed at fixed addresses where the implementation runs as native Go code rather than EVM bytecode. In standard Ethereum, precompiles are stateless and handle things like signature verification and hashing. In Cosmos EVM, they can also be stateful — reading from and writing to Cosmos SDK module state outside the EVM. This is what makes them powerful: a smart contract can call the staking precompile to delegate tokens, the governance precompile to submit a proposal, or the IBC precompile to send tokens cross-chain — all using a standard Solidity interface, all within a single transaction. Precompiles act as a window into the Cosmos SDK: when a precompile is invoked, execution routes from the EVM through the corresponding Cosmos SDK module and returns the result to the EVM for continued execution. Gas is metered across both environments.
All precompile contracts should use Ethereum’s standard 18 decimals.Although typical Cosmos chains use 6 decimals, EVM chains should use 18 decimals. Always check your chain’s decimal precision before interacting with a precompile.

Built-in Precompiles

PrecompileAddressPurposeReference
P2560x0000000000000000000000000000000000000100P-256 elliptic curve signature verificationDetails
Bech320x0000000000000000000000000000000000000400Address format conversion between Ethereum hex and Cosmos bech32Details
Staking0x0000000000000000000000000000000000000800Validator operations, delegation, and staking rewardsDetails
Distribution0x0000000000000000000000000000000000000801Staking rewards and community pool managementDetails
ICS200x0000000000000000000000000000000000000802Cross-chain token transfers via IBCDetails
Bank0x0000000000000000000000000000000000000804ERC20-style access to native Cosmos SDK tokensDetails
Governance0x0000000000000000000000000000000000000805On-chain governance proposals and votingDetails
Slashing0x0000000000000000000000000000000000000806Validator slashing and jail managementDetails
ICS020x0000000000000000000000000000000000000807IBC light client queriesSource
ERC20Dynamic per tokenStandard ERC20 interface for native Cosmos tokensDetails
WERC20Dynamic per tokenWrapped native token functionalityDetails
Chain builders can control which precompiles are active and add their own. See the Precompile Configuration guide for details.