# L2 Precompiles

A special type of smart contract built directly into the EVM that executes common cryptographic operations with greater efficiency than contracts written in high-level languages like Solidity

Note that the support for these precompiles may change as the Zircuit proof system evolves. They should be used with caution. If you have any questions, please reach out via discord.

## EVM Precompiles

List of precompiles for both Zircuit Mainnet and Garfield Testnet:

| Contract Name           | Address |
| ----------------------- | ------- |
| ECRecover               | 0x01    |
| SHA256                  | 0x02    |
| RIPEMD                  | 0x03    |
| Identity                | 0x04    |
| ModExp                  | 0x05    |
| ECAdd                   | 0x06    |
| ECScalarMul             | 0x07    |
| ECPairing               | 0x08    |
| BLAKE2b                 | 0x09    |
| Point evaluation        | 0x0a    |
| BLS12\_G1ADD            | 0x0b    |
| BLS12\_G1MSM            | 0x0c    |
| BLS12\_G2ADD            | 0x0d    |
| BLS12\_G2MSM            | 0x0e    |
| BLS12\_PAIRING\_CHECK   | 0x0f    |
| BLS12\_MAP\_FP\_TO\_G1  | 0x10    |
| BLS12\_MAP\_FP2\_TO\_G2 | 0x11    |
| P256VERIFY              | 0x100   |
