Deploy a Smart Contract on zkSync Era
This guide will show you how to deploy any smart contract to the zkSync Era network.
By the end, you'll learn how to create a simple NFT Drop smart contract, deploy it to the zkSync Era Testnet, and mint an NFT on the smart contract. Once you get the hang of the flow on testnet, you can deploy it to zkSync Era Mainnet!
Let's get started!
What is the zkSync Blockchain?
zkSync Era is the layer 2 protocol that scales Ethereum's security and values through zero-knowledge cryptography. We believe that the single most impactful way we can make this world better is by increasing people's freedom, and today, freedom relies on cryptography. The mission of zkSync is to accelerate the mass adoption of crypto for personal sovereignty.
Create a smart contract on zkSync
To begin, head to the Contracts page in your thirdweb Dashboard and hit Deploy Contract:
You will be taken to the thirdweb Explore page — where you can browse smart contracts built by the top protocols in web3 and deploy them in just a few clicks!
Note: You can also use the thirdweb CLI to set up a smart contract environment by running the below command from your terminal:
npx thirdweb create contract
This will take you through an easy-to-follow flow of steps for you to create your contract. Learn more about this in our CLI guide.
Otherwise, let's get back to Explore:
Here, select your smart contract of choice. For this guide, we're going to use the NFT Drop (ERC721) contract to create our NFT collection:
Set up your smart contract with an image, name, description, etc., and configure which wallet address will receive the funds from primary and secondary sales:
Our smart contracts are deployable to any EVM chain, so let's deploy this to the zkSync Era Testnet!
Add the zkSync Era Testnet network to your dashboard & wallet
To deploy a smart contract to zkSync Era we first need to add it as a network to the Dashboard.
To do this, click on the chain dropdown.
Search for "zkSync" and select zkSync Era testnet:
Once you have selected the network. This will prompt you to switch your network to zkSync Era Testnet.
Now, let's deploy the smart contract on the zkSync Era Testnet! But before that, we need testnet funds.
Get zkSync Era testnet ETH in your wallet
Once you have added the zkSync Era Testnet to your wallet. Navigate to the faucet and Connect your wallet.
Once you have connected your wallet you will be able to request funds from the faucet
Click on "Request Funds from Faucet" and you will receive this success message:
Finally, once the transaction goes through you will see the funds in your wallet
Deploy a smart contract to the zkSync blockchain
Now that you have your zkSync Era testnet ETH, let's go back to the thirdweb Dashboard where we were building our NFT Drop contract.
We have already filled out the metadata so click on "Deploy Now" after selecting the chain. It will prompt you to two transactions, you have to approve them.
And you're done! You have just deployed to the zkSync Era Testnet.
Calling Smart Contract Functions
Let's see how we can use the smart contract by calling some functions on it, such as minting an NFT into our collection!
From the Explorer
tab, you can view all of the available functions on your smart contract and execute them directly from your connected wallet:
Setting Up Our NFT Collection
In our example, we created an NFT drop smart contract, so we'll quickly set it up and mint our first NFT by performing the following steps:
- Lazy mint a batch of NFTs.
- Configuring our claim conditions.
- Mint an NFT from the drop!
Once we've set up our NFTs, we can click the Claim
button in the NFTs
tab to mint our first NFT, and voilà! We just minted an NFT on the zkSync Era testnet!
What's Next?
Now that you've deployed your smart contract, you can use our SDK to build a web3 application! Where users can connect their wallets and interact with the functions of your smart contracts. Learn more from our guide below:
Need help?
For support, join the official thirdweb Discord server or share your thoughts on our feedback board.