> For the complete documentation index, see [llms.txt](https://docs.creditcoin.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.creditcoin.org/wallets/advanced/precompiled-smart-contracts.md).

# Precompiled Smart Contracts

Precompiles are built-in Ethereum functions designed to handle heavy cryptographic tasks more efficiently than standard smart contracts. By residing at predefined addresses, these native implementations reduce gas costs and execution time for operations that are normally too computationally intensive for the runtime environment to process.

Below is the list of precompiled smart contracts supported by Creditcoin3:

<table data-full-width="true"><thead><tr><th>Precompile</th><th>Address</th><th>Description</th><th>Supported on</th></tr></thead><tbody><tr><td>ECRecover</td><td><code>0x0000000000000000000000000000000000000001</code></td><td>Recovers the public key associated with a signature</td><td>Mainnet + Testnet</td></tr><tr><td>Sha256</td><td><code>0x0000000000000000000000000000000000000002</code></td><td>Implements the SHA-256 hash function</td><td>Mainnet + Testnet</td></tr><tr><td>Ripemd160</td><td><code>0x0000000000000000000000000000000000000003</code></td><td>Implements the RIPEMD-160 hash function</td><td>Mainnet + Testnet</td></tr><tr><td>Identity</td><td><code>0x0000000000000000000000000000000000000004</code></td><td>Data copy function (returns input as output)</td><td>Mainnet + Testnet</td></tr><tr><td>Modexp</td><td><code>0x0000000000000000000000000000000000000005</code></td><td>Modular exponentiation</td><td>Mainnet + Testnet</td></tr><tr><td>Bn128Add</td><td><code>0x0000000000000000000000000000000000000006</code></td><td>Addition on the <a href="https://eips.ethereum.org/EIPS/eip-196">alt_bn128 curve</a></td><td>Mainnet + Testnet </td></tr><tr><td>Bn128Mul</td><td><code>0x0000000000000000000000000000000000000007</code></td><td>Multiplication on the <a href="https://eips.ethereum.org/EIPS/eip-196">alt_bn128 curve</a></td><td>Mainnet + Testnet </td></tr><tr><td>Bn128Pairing</td><td><code>0x0000000000000000000000000000000000000008</code></td><td>Pairing check on the <a href="https://eips.ethereum.org/EIPS/eip-196">alt_bn128 curve</a></td><td>Mainnet + Testnet </td></tr><tr><td>Sha3FIPS256</td><td><code>0x0000000000000000000000000000000000000400</code></td><td>Implements the SHA3-256 standard as specified in FIPS202</td><td>Mainnet + Testnet</td></tr><tr><td><p></p><p>ECRecoverPublicKey</p></td><td><code>0x0000000000000000000000000000000000000401</code></td><td>Similar to ECRecover, but returns the pubkey (not the corresponding Ethereum address)</td><td>Mainnet + Testnet</td></tr><tr><td>SubstrateTransfer</td><td><code>0x0000000000000000000000000000000000000Fd1</code></td><td>Precompile exposing a pallet_balance as an ERC20.</td><td>Mainnet + Testnet</td></tr><tr><td>Sr25519Verifier</td><td><code>0x00000000000000000000000000000000000013B9</code></td><td>Precompile for verifying Substrate sr25519 signatures.</td><td>Mainnet + Testnet </td></tr><tr><td>Ed25519Verifier</td><td><code>0x00000000000000000000000000000000000013BA</code></td><td>Precompile for verifying ed25519 signatures.</td><td>Mainnet + Testnet</td></tr></tbody></table>
