5/5
## Bridging to ZkSync In this lesson, we are going to learn how to bridge funds from the Sepolia Testnet to the ZkSync Sepolia Testnet. First, we need to connect our wallet. We will connect via Metamask. Then, in Metamask, go to "Edit Networks" and ensure the following are selected: * ZkSync Sepolia Testnet * Sepolia Then, hit the "Update" button, and then "Connect". Now, we will see an error message. This is due to the fact that we are on the wrong chain in our wallet. If we open the "Menu" tab, we will see an option to change the network. We will select "ZkSync Sepolia Testnet" from the menu. Our interface now looks like a standard bridging app, and we will type in the amount we want to bridge. Then, we will hit "Continue", and we are asked to confirm our transaction. After confirming, we will have to wait approximately 15 minutes for our funds to appear on the ZkSync network. Let's look at our configuration file and see what we've added: ```toml [networks.sepolia-zkSync] url = "$ZKSYNC_SEPOLIA_RPC_URL" chain_id = 300 save_to_db = false default_account_name = "default" explorer_uri = "https://explorer.sepolia.era.zkSync.dev" explorer_type = "zkSyncExplorer" is_zkSync = true ``` We've also added the explorer type, which is "zkSyncExplorer". Next, we'll go to our deploy script, and make sure the following are correct: ```python from src import favorites from moccasin.boa.tools import VyperContract from moccasin.config import get_active_network def deploy_favorites() -> VyperContract: favorites_contract: VyperContract = favorites.deploy() starting_number: int = favorites_contract.retrieve() print(f"Starting number is: {starting_number}") favorites_contract.store(77) ending_number: int = favorites_contract.retrieve() print(f"Ending number is: {ending_number}") active_network = get_active_network() if active_network.has_explorer(): result = active_network.mocassin.verify(favorites_contract) result.wait_for_verification() return favorites_contract def moccasin_main() -> VyperContract: return deploy_favorites() ``` Now, we are going to deploy our smart contract to the ZkSync Sepolia Testnet. We will run the following in the terminal: ```bash python deploy.py ``` This will deploy our contract, and then verify it on the ZkSync Sepolia Testnet. We will then see a new transaction in our Metamask wallet, and our funds will be available to us on ZkSync!
In this lesson, we are going to learn how to bridge funds from the Sepolia Testnet to the ZkSync Sepolia Testnet.
First, we need to connect our wallet. We will connect via Metamask.
Then, in Metamask, go to "Edit Networks" and ensure the following are selected:
ZkSync Sepolia Testnet
Sepolia
Then, hit the "Update" button, and then "Connect".
Now, we will see an error message. This is due to the fact that we are on the wrong chain in our wallet. If we open the "Menu" tab, we will see an option to change the network.
We will select "ZkSync Sepolia Testnet" from the menu.
Our interface now looks like a standard bridging app, and we will type in the amount we want to bridge.
Then, we will hit "Continue", and we are asked to confirm our transaction. After confirming, we will have to wait approximately 15 minutes for our funds to appear on the ZkSync network.
Let's look at our configuration file and see what we've added:
We've also added the explorer type, which is "zkSyncExplorer".
Next, we'll go to our deploy script, and make sure the following are correct:
Now, we are going to deploy our smart contract to the ZkSync Sepolia Testnet. We will run the following in the terminal:
This will deploy our contract, and then verify it on the ZkSync Sepolia Testnet.
We will then see a new transaction in our Metamask wallet, and our funds will be available to us on ZkSync!
A comprehensive guide to bridging funds from the Sepolia testnet to the zkSync Sepolia testnet. Learn how to connect your MetaMask wallet, bridge your test ETH, and verify your smart contract on zkSync.
Previous lesson
Previous
Next lesson
Next
Give us feedback
Course Overview
About the course
Python basics
Introduction to Web3.py
Introduction to Titanoboa
Introduction to Moccasin
How to create an ERC-20
How to test Python code and Vyper smart contract
How to deploy Vyper smart contracts on ZKsync using Moccasin
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
On-chain Data Analyst
$59,000 - $139,000 (avg. salary)
DeFi Developer
$75,000 - $200,000 (avg. salary)
Smart Contract Engineer
$100,000 - $150,000 (avg. salary)
Web3 developer
$60,000 - $150,000 (avg. salary)
Web3 Developer Relations
$85,000 - $125,000 (avg. salary)
Last updated on June 10, 2025
Duration: 2h 20min
Duration: 1h 51min
Duration: 58min
Duration: 2h 23min
Duration: 53min
Duration: 2h 24min
Duration: 28min
Duration: 1h 54min
Duration: 11min
Course Overview
About the course
Python basics
Introduction to Web3.py
Introduction to Titanoboa
Introduction to Moccasin
How to create an ERC-20
How to test Python code and Vyper smart contract
How to deploy Vyper smart contracts on ZKsync using Moccasin
Smart Contract Auditor
$100,000 - $200,000 (avg. salary)
On-chain Data Analyst
$59,000 - $139,000 (avg. salary)
DeFi Developer
$75,000 - $200,000 (avg. salary)
Smart Contract Engineer
$100,000 - $150,000 (avg. salary)
Web3 developer
$60,000 - $150,000 (avg. salary)
Web3 Developer Relations
$85,000 - $125,000 (avg. salary)
Last updated on June 10, 2025