Forking in Remix - Remix Tutorial 12
By EatTheBlocks
Share:
Remix VM and Forking Explanation
Key Concepts: Remix VM, Blockchain State, Forking (Remix VM, Mainnet), Deployment, Smart Contracts, Environment Customization, Workspace Management, Mainnet Forking for Testing.
Saving Blockchain State
- The Remix IDE allows saving the state of a local blockchain.
- Process:
- Deploy a smart contract to a customized Remix VM environment (e.g., Shanghai).
- Modify the contract's state (e.g., calling the
storefunction with a value of 10). - Remix automatically creates a
.statesfolder in the file explorer. - This folder contains subfolders for each local blockchain environment (e.g., Shanghai VM).
- Each environment folder contains a JSON file representing the blockchain's state.
- Workspace Management: The entire workspace, including the
.statesfolder, can be pushed to an external repository (e.g., GitHub). This allows sharing and restoring the blockchain state. - Reference: For details on workspace management with Git, refer to the Remix video on Git integration.
Forking the Remix VM
- Forking the Remix VM creates an isolated copy of the current blockchain state.
- Process:
- In the Deploy tab, click the "fork" icon above the environment dropdown.
- This creates a new, independent Remix VM environment.
- Changes made in the forked environment do not affect the original Remix VM.
- Benefits: Enables experimentation and testing without altering the original blockchain state.
- Management:
- Forked environments appear in the environment dropdown.
- They can be removed from the list via the "Customize" option in the environment dropdown.
- Forked environments can also be deleted entirely.
Forking Mainnet on Remix
- Forking Mainnet allows testing smart contracts against real-world data and the current state of the Ethereum Mainnet.
- Example: Testing a contract that interacts with the USDC smart contract.
- Process:
- Contract Definition: Define a smart contract that interacts with a Mainnet contract (e.g., USDC). The example contract includes a function to retrieve the USDC balance of a given address.
- Environment Setup:
- Go to the Deploy tab.
- Open the environment dropdown and click "Customize."
- Enable the Mainnet Fork option.
- Select the Mainnet Fork environment in the dropdown.
- Deployment: Deploy the contract to the Mainnet Fork environment.
- Execution: Call the function to retrieve the USDC balance of a specific address (e.g., the top USDC holder).
- Result: The function returns the actual USDC balance of the specified address on the Ethereum Mainnet at the time of the fork.
- Benefits: Enables realistic testing and debugging of smart contracts before deploying to Mainnet.
Conclusion
The Remix IDE provides powerful tools for managing blockchain state and testing smart contracts. Saving blockchain states allows for reproducibility and collaboration. Forking the Remix VM enables isolated testing environments. Forking Mainnet allows developers to test their contracts against real-world data, improving the reliability and security of their deployments.
Chat with this Video
AI-PoweredLoad the transcript when you're ready to chat so the initial page stays lighter.
Related Videos

Shocking video shows moment paramedics are hit by Israel in 'double-tap' strike
Sky News

Inside Jeffrey Epstein's Network of Power
Bloomberg Originals

Trump's supporters furious over Trump smartphone scam.
ABC News In-depth

Throwing out the first pitch for the Rockies for STEM Day!
Sick Science!

Samsung union suspends strike after reaching tentative pay deal • FRANCE 24 English
FRANCE 24 English

OH SH*T! The Banks are Dumping AI Loans!
Steven Van Metre

SixDegrees.com Founder Andrew Weinreich On Social Media Addiction
Forbes