Monad · Beginner
How to deploy a smart contract on Monad (step by step, from the browser)
Deploy a Solidity smart contract to Monad testnet in under ten minutes using only a browser: add the network to MetaMask, get test MON, compile in Monsmith, and deploy with one click.
Deploying to Monad is the same motion as deploying to any EVM chain, with one pleasant difference: it is fast and nearly free. This guide uses Monsmith so the whole thing happens in a browser tab, but every step maps directly onto Hardhat or Foundry if you prefer a local toolchain.
Before you start
- A browser wallet such as MetaMask, Rabby, or Phantom.
- A Solidity contract, or the willingness to use a template.
- Nothing else. No Node.js, no compiler install, no RPC key.
Step 1: Add Monad testnet to your wallet
| Field | Value |
|---|---|
| Network name | Monad Testnet |
| RPC URL | https://testnet-rpc.monad.xyz |
| Chain ID | 10143 |
| Currency symbol | MON |
| Block explorer | https://testnet.monadexplorer.com |
Monsmith will prompt your wallet to add and switch to this network automatically when you press Deploy, so you can also skip this and let the tool do it.
Step 2: Get test MON from the faucet
Open https://faucet.monad.xyz, paste your address, and request tokens. Deploying a typical ERC-20 costs a small fraction of one MON, so a single faucet claim covers dozens of deployments.
Step 3: Write or paste your contract
Open monsmith.com/studio. The editor is Monaco (the same engine as VS Code) with Solidity highlighting and autocomplete. OpenZeppelin imports resolve without any package install. If you are starting from scratch, the ERC-20 template is a good first contract:
solidity// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyToken is ERC20, Ownable {
constructor(uint256 initialSupply)
ERC20("My Token", "MTK")
Ownable(msg.sender)
{
_mint(msg.sender, initialSupply);
}
function mint(address to, uint256 amount) external onlyOwner {
_mint(to, amount);
}
}Step 4: Compile
Press Compile. Errors show inline at the offending line. On success you get the ABI and bytecode, and the deploy console builds a form for the constructor arguments from the ABI, so you never hand-encode anything.
Step 5: Audit and profile before you deploy
This is the step most guides skip and the one that saves you. Run the security audit: it checks for reentrancy, missing access control, unchecked calls, and other known bug classes, and scores the risk. Then run the parallel profiler to see whether your contract's functions can execute concurrently on Monad or whether shared storage will serialise them.
Step 6: Deploy
Connect your wallet, enter constructor arguments (for the token above, an initial supply such as 1000000000000000000000000 for one million tokens with 18 decimals), and press Deploy. MetaMask shows the transaction; confirm it. Monad's 300 ms blocks mean the contract address appears almost immediately.
Step 7: Verify and interact
Click the explorer link to view the deployed contract. Back in Monsmith, the deploy console lists every function from the ABI so you can call mint, transfer, or balanceOf directly and watch the results.
Going to mainnet
The steps are identical with the mainnet RPC (https://rpc.monad.xyz, chain ID 143) and real MON. Before you do: get an independent audit for anything that holds value, and use Chain Fit at monsmith.com/compare to see exactly what deployment and each function call will cost.
Quick steps
- 1
Add Monad testnet to your wallet
In MetaMask choose Add network and enter RPC URL https://testnet-rpc.monad.xyz, chain ID 10143, currency symbol MON, and block explorer https://testnet.monadexplorer.com.
- 2
Get test MON
Visit https://faucet.monad.xyz, paste your wallet address, and request test tokens. They arrive within seconds.
- 3
Open Monsmith
Go to monsmith.com/studio. Paste your Solidity contract or pick a template such as ERC-20.
- 4
Compile
Press Compile. Fix any errors shown inline. The ABI and bytecode appear when compilation succeeds.
- 5
Audit and profile
Run the security audit and the parallel profiler. Address anything flagged as high risk before deploying.
- 6
Deploy
Connect your wallet, fill in constructor arguments, and press Deploy. Confirm the transaction in MetaMask.
- 7
Verify on the explorer
Open the contract address on the Monad testnet explorer to confirm the code is live, then call its functions from the deploy console.
Frequently asked questions
- Can I deploy to Monad without a wallet?
- No. Deployment is a signed transaction, so a wallet is required. Writing, compiling, auditing, and profiling in Monsmith need no wallet.
- How much does it cost to deploy a contract on Monad?
- On testnet it is free (faucet MON). On mainnet a typical ERC-20 deployment costs a tiny fraction of what it costs on Ethereum; Chain Fit at monsmith.com/compare shows the live figure.
- Can I use Remix to deploy on Monad?
- Yes, Remix works with Monad through MetaMask. Monsmith adds an AI audit, a parallel profiler, and Chain Fit on top of the same browser workflow.
Try it in Monsmith
Free, in the browser, no account. Compile, audit, profile, and deploy to Monad.
Open the studio