Movement is a modular blockchain network based on the Move language, offering a development framework for building decentralized applications. This guide provides an in-depth exploration of its two testnets—M1 and M2—and walks you through deploying smart contracts on both.
What Is Movement?
Movement is a modular blockchain platform that leverages the Move language. It provides tools and frameworks for developers to build scalable and efficient decentralized applications. As of December 2023, Movement operates two testnets: M1 and M2.
Key Features of M1
- Avalanche Subnet Integration: Utilizes Avalanche's subnet infrastructure.
- Aptos Compatibility: Supports Aptos and aims to include Sui compatibility in the future.
- Move VM: Executes Move-based smart contracts.
- Fractal Support: Allows deployment of Solidity smart contracts.
- Snowman Consensus: Ensures high throughput and low latency.
Key Features of M2
- Ethereum L2: Functions as a Layer 2 solution for Ethereum.
- Sui Compatibility: Fully compatible with Sui’s Move VM.
- Celestia for Data Availability: Uses Celestia as its DA layer.
- Future Adaptability: M2 will be repurposed once M1 achieves Sui compatibility.
With Move VM and Avalanche’s consensus, Movement achieves over 140,000 TPS, making it a promising platform for high-performance applications.
Getting Started with M2
For developers familiar with EVM-based chains but new to Sui, M2 offers an excellent entry point. Below is a step-by-step guide to deploying a Move-based smart contract on M2.
1. Set Up a Sui Wallet
- Install the Sui Wallet Chrome extension.
Configure the custom RPC for M2 testnet:
https://devnet.m2.movementlabs.xyz
2. Acquire Testnet Tokens
- Request MOV tokens from the Movement faucet.
3. Prepare the Development Environment
- Use VS Code with Dev Containers.
Pull the Docker image and start the container:
docker run -it -v "$(pwd):/workspace" mvlbs/m1-cli /bin/bashCreate a new Sui Move project:
movement sui move new your_project_name
4. Write and Deploy a Move Contract
- Place your
.movefiles in/sources. Deploy using:
movement sui client publish --gas-budget 20000000Resolve dependency errors by running:
sui client publish --gas-budget 20000000 --skip-dependency-verification
5. Mint an NFT
Call the
mintfunction:sui client call --package your_package_id --module devnet_nft --function mint --gas-budget 10000000 --args "NFT Name" "Description" "https://example.com/image.png"
Testing M1 with Solidity Smart Contracts
M1 supports EVM-compatible smart contracts. Here’s how to deploy one:
1. Add M1 to Your EVM Wallet
- Network Name: Movement M1 Testnet
- RPC URL:
https://mevm.devnet.m1.movementlabs.xyz/v1 - Chain ID: (Check official docs)
- Currency Symbol: MOV
2. Fund Your Wallet
- Use the M1 faucet to get testnet MOV.
3. Deploy via Remix
- Compile an ERC721 contract in Remix.
- Connect your wallet and deploy using the "Injected Provider" option.
FAQ
Q1: What is Movement’s consensus mechanism?
Movement uses Snowman Consensus for M1 (Avalanche-based) and integrates Celestia for M2’s data availability.
Q2: Can I use Solidity on Movement?
Yes! M1 supports Solidity smart contracts via Fractal, while M2 focuses on Move-based applications.
Q3: How do I troubleshoot deployment errors?
Ensure dependencies match on-chain versions or use --skip-dependency-verification as a temporary fix.
👉 Discover more about Movement’s ecosystem
👉 Join the Movement developer community
Movement’s testnets showcase its potential as a high-throughput, modular blockchain. While still in development, its dual compatibility with Move and EVM makes it a platform to watch. Stay tuned for updates as Movement progresses toward mainnet!