Skip to main content
To use Foundry to build smart contracts on Abstract, use the foundry-zksync fork.

YouTube Tutorial: Get Started with Foundry

Watch a step-by-step tutorial on how to get started with Foundry.

1. Install the foundry-zksync fork

This installation overrides any existing forge and cast binaries in ~/.foundry. To revert to the standard foundry installation, follow the Foundry installation guide. You can swap between the two installations at any time.
1

Install foundry-zksync

Install the foundryup-zksync fork:
Run foundryup-zksync to install forge, cast, and anvil:
You may need to restart your terminal session after installation to continue.
Restart your terminal session.
To add the foundry binary to your PATH, run the following command:
Replace <your-username-here> with the correct path to your home directory.
The libusb library may need to be installed manually on macOS. Run the following command to install the library:
2

Verify installation

A helpful command to check if the installation was successful is:
If installed successfully, 20 lines of --zksync options will be displayed.

2. Create a new project

Create a new project with forge and change directory into the project.

3. Modify Foundry configuration

Update your foundry.toml file to include the following options:
To use system contracts, set the enable_eravm_extensions flag in [profile.default.zksync] to true.

4. Write a smart contract

Modify the src/Counter.sol file to include the following smart contract:

5. Compile the smart contract

Use the zksolc compiler (installed in the above steps) to compile smart contracts for Abstract:
You should now see the compiled smart contracts in the generated zkout directory.

6. Deploy the smart contract

Add your private key

Create a new wallet keystore.
Enter your wallet’s private key when prompted and provide a password to encrypt it.
We recommend not to use a private key associated with real funds. Create a new wallet for this step.
2

Get ETH in the deployer account

The deployer account requires ETH to deploy a smart contract.
  • Testnet: Claim ETH via a faucet, or bridge ETH from Sepolia.
  • Mainnet: Use a bridge to transfer ETH to Abstract mainnet.
3

Get an Abscan API key (Mainnet only)

Follow the Abscan documentation to get an API key to verify your smart contracts on the block explorer. This is recommended; but not required.

Deploy your smart contract

Run the following command to deploy your smart contracts:
Note: Replace the contract path, address, and Abscan API key with your own.If successful, the output should look similar to the below output, and you can view your contract on a block explorer.