Documentation
Precompiles

Precompiles

This section provides useful information about the default set of precompiles in the Ethereum Virtual Machine (EVM). If you're interested in creating your own custom precompiles, you can check out the Creating Custom Precompiles section for tutorials and information. It's important to note that a precompile in the EVM doesn't necessarily need to have an associated Cosmos module. Precompiles can be used to access anything that's implemented on the node, but the most common use case is to use precompiles to access Cosmos modules.

Default Ethereum Precompile Information

Information below is from evm.codes (opens in a new tab).

AddressNameMinimum GasInputOutputDescription
0x01ecRecover3000hash, v, r, spublicAddressElliptic curve digital signature algorithm (ECDSA) public key recovery function
0x02SHA2-25660datahashHash function
0x03RIPEMD-160600datahashHash function
0x04identity15datadataReturns the input
0x05modexp200Bsize, Esize, Msize, B, E, MvalueArbitrary-precision exponentiation under modulo
0x06ecAdd150x1, y1, x2, y2x, yPoint addition (ADD) on the elliptic curve alt_bn128
0x07ecMul6000x1, y1, sx, yScalar multiplication (MUL) on the elliptic curve alt_bn128
0x08ecPairing45000x1, y1, x2, y2, ..., xk, yksuccessBilinear function on groups on the elliptic curve alt_bn128
0x09blake2f0rounds, h, m, t, fhCompression function F used in the BLAKE2 cryptographic hashing algorithm

Interacting With Precompile Contracts

To interact with a precompile contract, you must use the Ethereum Virtual Machine (EVM). The EVM is the only way to access precompiles. If you're interested in learning more about how to interact with precompiles, you can check out the Interacting With Precompiles section for more information.