# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.creditcoin.org/wallets/advanced/precompiled-smart-contracts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
