Precompiles are predefined functions that are integrated at the protocol level but exposed as EVM smart contract interfaces. Many precompiles provide access to Cosmos SDK module functionality for EVM applications and clients to easily leverage.
Precompile | Address | Purpose | Reference |
---|---|---|---|
Bank | 0x0000000000000000000000000000000000000804 | ERC20-style access to native Cosmos SDK tokens | Details |
Bech32 | 0x0000000000000000000000000000000000000400 | Address format conversion between Ethereum hex and Cosmos bech32 | Details |
Staking | 0x0000000000000000000000000000000000000800 | Validator operations, delegation, and staking rewards | Details |
Distribution | 0x0000000000000000000000000000000000000801 | Staking rewards and community pool management | Details |
ERC20 | Dynamic per token | Standard ERC20 functionality for native Cosmos tokens | Details |
Governance | 0x0000000000000000000000000000000000000805 | On-chain governance proposals and voting | Details |
ICS20 | 0x0000000000000000000000000000000000000802 | Cross-chain token transfers via IBC | Details |
WERC20 | Dynamic per token | Wrapped native token functionality | Details |
Slashing | 0x0000000000000000000000000000000000000806 | Validator slashing and jail management | Details |
P256 | 0x0000000000000000000000000000000000000100 | P-256 elliptic curve cryptographic operations | Details |
1000000000000000000
(1 token in wei) will be interpreted as 1 trillion tokensactive_static_precompiles
parameter controls which precompiles are activated at network launch.
evmd/precompiles.go:122
precompiles/common/interfaces.go
:
BankKeeper
: Account balances, token transfers, metadataStakingKeeper
: Validator operations, delegations, bond denomDistributionKeeper
: Reward withdrawals and distributionSlashingKeeper
: Validator slashing informationTransferKeeper
: IBC transfer operationsChannelKeeper
: IBC channel and connection queriesERC20Keeper
: Token pair mappings and conversionsactive_static_precompiles
parameter: