> ## Documentation Index
> Fetch the complete documentation index at: https://mantrachain.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# EVM Precompiles

> Precompiled contracts available in the MANTRA Chain EVM

Precompiled contracts (precompiles) are built-in contracts available at fixed addresses that provide functionality beyond what standard EVM opcodes offer. MANTRA Chain includes the standard Ethereum precompiles as well as custom precompiles that bridge the EVM with the underlying Cosmos SDK modules.

## Standard Ethereum Precompiles

These precompiles are part of the core Ethereum specification and are available on all EVM-compatible chains.

| Precompile | Address | Description |
| - | - | - |
| ECRecover | `0x0000000000000000000000000000000000000001` | Recovers the signer address from an ECDSA signature |
| SHA-256 | `0x0000000000000000000000000000000000000002` | Computes the SHA-256 hash of the input |
| RIPEMD-160 | `0x0000000000000000000000000000000000000003` | Computes the RIPEMD-160 hash of the input |
| Identity | `0x0000000000000000000000000000000000000004` | Returns the input data unchanged (used for memory copying) |
| ModExp (EIP-198) | `0x0000000000000000000000000000000000000005` | Performs modular exponentiation |
| ECAdd (alt\_bn128) | `0x0000000000000000000000000000000000000006` | Performs point addition on the alt\_bn128 elliptic curve |
| ECMul (alt\_bn128) | `0x0000000000000000000000000000000000000007` | Performs scalar multiplication on the alt\_bn128 elliptic curve |
| ECPairing (alt\_bn128) | `0x0000000000000000000000000000000000000008` | Performs pairing checks on the alt\_bn128 elliptic curve |
| BLAKE2F (EIP-152) | `0x0000000000000000000000000000000000000009` | Executes the BLAKE2b F compression function |

## MANTRA Stateless Precompiles

These custom precompiles extend the EVM with additional cryptographic and address-conversion utilities. They do not modify chain state.

| Precompile | Address | Description |
| - | - | - |
| P256 | `0x0000000000000000000000000000000000000100` | Verifies P-256 (secp256r1) elliptic curve signatures |
| Bech32 | `0x0000000000000000000000000000000000000400` | Converts between hex and Bech32 address formats |

## MANTRA Stateful Precompiles (Cosmos Modules)

These precompiles provide EVM access to Cosmos SDK module functionality. Because they interact with on-chain state, they can read and write data just like a regular smart contract call.

| Precompile | Address | Description |
| - | - | - |
| Staking | `0x0000000000000000000000000000000000000800` | Delegate, undelegate, and redelegate MANTRA to validators |
| Distribution | `0x0000000000000000000000000000000000000801` | Claim staking rewards and manage distribution parameters |
| ICS20 (IBC Transfer) | `0x0000000000000000000000000000000000000802` | Send cross-chain IBC token transfers from the EVM |
| Vesting | `0x0000000000000000000000000000000000000803` | Create and query vesting accounts |
| Bank | `0x0000000000000000000000000000000000000804` | Query balances and send native tokens |
| Gov | `0x0000000000000000000000000000000000000805` | Submit and vote on governance proposals |
| Slashing | `0x0000000000000000000000000000000000000806` | Query validator signing info and slashing parameters |

> [!NOTE]
>
> For details on how to interact with the Cosmos module precompiles from Solidity, see the [Using Precompiles](https://mantrachain.mintlify.site/developers/evm/using-precompiles.md) guide.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.