Deploy a Smart Contract
Deploy a smart contract on Unichain using Foundry and verify it on Uniscan.
Deploy a smart contract on Unichain with Foundry, then verify the deployment on Uniscan.
Requirements
ETH on Unichain is required. See Get Funds on Unichain.
-
The guide uses foundry for deployments. Install it by running:
curl -L https://foundry.paradigm.xyz | bashTo verify the installation:
forge --version -
Add Unichain to yourÂ
foundry.toml[rpc_endpoints] unichain =Â "https://sepolia.unichain.org"
Steps to Deploy
Due to the EVM-equivalence of Unichain, foundry commands should work as expected. The major difference is the network URL. In most cases, using --rpc-url unichain is sufficient
1. Navigate to your smart contract project
cd path/to/your/project2. Deploy a smart contract
Your private key should have ETH on the Unichain network. A transaction will be created, and requires a gas fee.
forge create src/{YourContract}.sol:{ContractName} --rpc-url unichain --private-key {YourPrivateKey}3. Verify the contract
Obtain an API key from Uniscan Sepolia.
There are two options to verify your contract:
- During deployment
- After deployment
During deployment provide additional flags:
--etherscan-api-key {API_KEY} --verifyAfter deployment:
forge verify-contract \
--chain-id 1301 \
--num-of-optimizations 200 \
--watch \
--constructor-args $(cast abi-encode "constructor(string,string,uint256,uint256)" "ForgeUSD" "FUSD" 18 1000000000000000000000) \
--etherscan-api-key {your_etherscan_api_key} \
--compiler-version {v0.8.20+commit.a1b79de} \
{the_contract_address} \
src/{YourContract}.sol:{ContractName}Additional information here or other deployment options
Example Deployment
See Deploy a SuperchainERC20Â token.
Best Practices
Verification
Verifying during deployment is recommended because compilation parameters are known at deployment time.
Scripting
For complex deployments (multiple contracts, complex constructor arguments, or create-and-call patterns), use Foundry's Solidity scripting.