Skip to main content
Lumera Protocol enables eight standard precompiles from the Cosmos EVM v0.6.0 framework. They expose core Cosmos SDK modules to Solidity, so contracts can stake, vote, claim rewards, convert addresses, and move tokens over IBC without leaving the EVM. The set is registered in app/evm/precompiles.go and uses the upstream implementations from the cosmos/evm repo. The EVM is live on testnet (lumera-testnet-2) only. Mainnet runs v1.12.0 and gains the EVM with its upgrade.
The Vesting precompile (0x0000000000000000000000000000000000000803) is intentionally excluded. The current Cosmos EVM default registry does not provide an implementation for it.

Shared types

Precompiles that accept pagination or return coins share these Solidity types.
Types.sol

P256

Verifies NIST P-256 (secp256r1) signatures per EIP-7212. This curve backs WebAuthn passkeys, hardware security modules, and mobile secure enclaves, so contracts can verify signatures from those devices on chain. There is no Solidity interface. Call it with a raw STATICCALL and exactly 160 bytes of input. It returns uint256(1) as 32 bytes on success and empty data on failure.

Bech32

Converts addresses between hex (EIP-55) and Bech32 (Cosmos) formats. Use it whenever a contract needs to hand a lumera1... address to a Cosmos-native module or display one to users.
Bech32I.sol

Staking

Full EVM interface to the Cosmos SDK staking module. Contracts can create validators, manage delegations, and read staking state. Transaction methods. Query methods. It emits the events CreateValidator, Delegate, Unbond, Redelegate, CancelUnbondingDelegation, and EditValidator.

Distribution

Handles staking reward distribution. Contracts can claim rewards, set withdrawal addresses, and read reward balances. Transaction methods. Query methods.

ICS20

Sends IBC fungible token transfers directly from Solidity. This is the primary way EVM contracts move tokens across chains. The single transaction method is transfer(string, string, string, uint256, address, string, Height, uint64, string) with these parameters. Query methods are denom(string), denoms(PageRequest), and denomHash(string) for denomination traces. It emits an IBCTransfer event.

Bank

Read-only queries for native token balances and supply. It exposes no transaction methods. Token transfers use the normal EVM transfer path or the other precompiles.
IBank.sol

Gov

Full EVM interface to the Cosmos SDK governance module. Contracts can submit proposals, deposit, vote, and read governance state. Transaction methods. The VoteOption enum values are Unspecified(0), Yes(1), Abstain(2), No(3), and NoWithVeto(4). Query methods.

Slashing

Manages validator jail status. A validator can unjail itself from the EVM, and any contract can read signing info.
ISlashing.sol

Address summary

The full upstream reference with every interface file lives in the cosmos/evm precompiles source and the Lumera standard precompiles doc.

Next steps

Action precompile

Drive Cascade and Sense actions from your contracts.

SuperNode precompile

Read SuperNode state and metrics on chain.

Deploy with Remix

Deploy and test a contract against Lumera testnet.