# Development on EVM-layer

### General information

If you are a developer familiar with the EVM ecosystem, you will feel right at home: developing on Aleph Zero EVM will allow you to reuse all of the practices you are used to, including available tooling and integrations.

Importantly, even though the gas token of the network is AZERO, from a developer's standpoint it's identical to using ETH on other EVM chains: all of the methods work like you'd expect them to (including transfers, checking balances, payable functions, gas estimations etc.)

Below you'll find a quick rundown of all information required to start developing dApps and solutions on the Aleph Zero EVM chain.

### RPC Endpoints

For programmatic access to Aleph Zero EVM you can use one of the following RPC endpoints:

#### Testnet

* <https://rpc.alephzero-testnet.gelato.digital>
* <https://alephzero-sepolia.drpc.org>
* wss\://ws.alephzero-testnet.gelato.digital
* wss\://alephzero-sepolia.drpc.org

#### Mainnet

* <https://rpc.alephzero.raas.gelato.cloud>
* <https://alephzero.drpc.org>
* wss\://ws.alephzero.raas.gelato.cloud
* wss\://alephzero.drpc.org

### Faucet

A PoW faucet for the testnet is available under the link <https://drpc.org/faucet/alephzero> -- if you find yourself in the need for more tokens than the faucet is able to provide, contact us on [discord](https://discord.com/invite/alephzero).

### Block Explorer

The Blockscout explorer is available:

* Testnet: <https://evm-explorer-testnet.alephzero.org/>
* Mainnet: <https://evm-explorer.alephzero.org/>

### ChainId

* Testnet: **2039**
* Mainnet: **41455**

### Stable Coins

Official contracts on mainnet:

* USDC (canonical bridge) [0x18d25B4e18165c97e1285212e5d1f80eDD6d3Aa7](https://evm-explorer.alephzero.org/token/0x18d25B4e18165c97e1285212e5d1f80eDD6d3Aa7)
* USDT (canonical bridge) [0xD648529D4803d3467bA8850577BEd4e4b8Ae583C](https://evm-explorer.alephzero.org/token/0xD648529D4803d3467bA8850577BEd4e4b8Ae583C)

### Wrapped native token (wAZERO)

For the implementation deployed by the Aleph Zero Team, including ABI and bytecode, please see the [wAZERO repo](https://github.com/Cardinal-Cryptography/wAZERO-evm). The contract addresses are:

* Testnet: `0xcC1141eEd15EB519b08cA38A2Ee75AB8025F0DA9`
* Mainnet: `0xb7Da55D7040ef9C887e20374D76A88F93A59119E`

{% hint style="danger" %}
This is a Solidity implementation deployed on the EVM L2, not to be confused with the [ink! implementation](https://github.com/Cardinal-Cryptography/wAZERO) deployed on the Aleph Zero Layer 1 chain.
{% endhint %}

### Bridges

There are a few options, depending on your target network and the use case:

* The ['canonical' bridge](https://bridge.gelato.network/bridge/aleph-zero-evm), between Ethereum and Aleph Zero EVM.
  * And its version that doesn't require you to hold AZERO on Ethereum, the [ERC20 Bridge](https://erc20bridge.alephzero.org).
* The [Common/MOST bridge](https://app.common.fi/bridge) between Ethereum, Aleph Zero EVM and Aleph Zero WASM.
* The [Across Bridge](https://app.across.to/bridge), supporting many different networks, including Arbitrum, Base, Ethereum,, Optimism, Scroll, etc.
* The [Hyperlane Bridge](https://docs.hyperlane.xyz/) for integrating cross-chain flows into your apps.

### Other Details

For other technical details of the Aleph Zero EVM testnet we refer to&#x20;

* Testnet: <https://raas.gelato.network/rollups/details/public/aleph-zero-evm-testnet>
* Mainnet: <https://raas.gelato.network/rollups/details/public/aleph-zero-evm>

### Contract verification

In order to verify contracts, you can use Blockscout's API with Hardhat or Foundry, or verify them directly on the [Blockscout page](https://evm-explorer.alephzero.org/contract-verification). If you're using Hardhat or Foundry, it's important to set:

* the verifier url to `https://evm-explorer.alephzero.org/api` (for Mainnet)
* `https://evm-explorer-testnet.alephzero.org/api` (for Testnet)
* the verifier to `blockscout`

For example, if you'd like to verify your contract on the Aleph Zero EVM Testnet using Foundry, here are the params you'd pass to the `verify-contract` command:

<pre><code><strong>--chain-id 2039 --verifier-url https://evm-explorer-testnet.alephzero.org/api --verifier blockscout
</strong></code></pre>

{% hint style="info" %}
You **don't** need an API key for verification using Hardhat or Foundry. In Hardhat, you can set the key to any string.
{% endhint %}

### Available integrations

{% hint style="info" %}
This list will keep growing for a few months since the launch. If you don't see a tool you'd like to use, please reach out to us on [discord](https://discord.com/invite/alephzero).
{% endhint %}

* **Thirdweb**
  * Testnet: <https://thirdweb.com/aleph-zero-testnet>
  * Mainnet: <https://thirdweb.com/aleph-zero-evm>
* **Gnosis Safe/Profotire**:
  * <https://alephzero-safe.protofire.io/>
* **Subsquid**:
  * <https://v2.archive.subsquid.io/network/aleph-zero-evm-mainnet>
* **Goldsky**: you'll need to use the chain slug `alephzero-testnet` for Testnet, and `alephzero-evm` for Mainnet.

### Resources for SC development on EVM chains

1. [Solidity by example](https://solidity-by-example.org/)
2. [Solidity documentation](https://docs.soliditylang.org/en/v0.8.26/)
3. [Hardhat tutorial](https://hardhat.org/tutorial), currently the most popular Solidity framework
4. [Foundry book](https://book.getfoundry.sh/getting-started/installation), a faster alternative to Hardhat
5. [Basic frontend app](https://create-react-app.dev/)
6. [OpenZeppelin for tokens, utils and more](https://docs.openzeppelin.com/learn/developing-smart-contracts)
7. [OpenZeppelin Wizard](https://wizard.openzeppelin.com/), allowing you to construct basic tokens using a UI
8. [Ethernaut](https://ethernaut.openzeppelin.com/), an educational game where you 'hack' smart contracts

### Developing ZK-apps

1. Circom and snarkjs tutorial <https://docs.circom.io/>&#x20;
2. Basic background on ZK for developers <https://docs.circom.io/background/background/#zero-knowledge-proofs>&#x20;
