Monad is EVM compatible at the bytecode level, so all standard Ethereum development tools work out of the box without modification.
MetaMask
On node access details, click Connect wallet.Phantom
Phantom is a secure multi-chain wallet that supports Monad.- Install Phantom browser extension or mobile app.
- In Phantom, navigate to Settings > Developer Settings > Add Network.
- Enter the network details:
- Network name —
Monad Mainnet - RPC URL — your Chainstack endpoint
- Chain ID —
143 - Currency symbol —
MON - Block explorer URL —
https://monvision.io
- Network name —
- Click Save.
Backpack
Backpack is a next-level wallet and exchange that supports Monad.- Install Backpack browser extension or mobile app.
- Navigate to Settings > Networks > Add Custom Network.
- Enter the network details:
- Network name —
Monad Mainnet - RPC URL — your Chainstack endpoint
- Chain ID —
143 - Currency symbol —
MON - Block explorer URL —
https://monvision.io
- Network name —
- Save the configuration.
Rabby
Rabby is a non-custodial multi-chain wallet with network auto-detection and transaction risk alerts.- Install Rabby browser extension.
- In Rabby, navigate to Settings > Custom Network.
- Add your Chainstack endpoint with chain ID
143.
HaHa
HaHa is a smart wallet with DeFi integrations, account abstraction support, and hardware wallet compatibility.- Install HaHa browser extension or mobile app.
- Navigate to wallet settings and select Add Network.
- Enter the network details:
- Network name —
Monad Mainnet - RPC URL — your Chainstack endpoint
- Chain ID —
143 - Currency symbol —
MON - Block explorer URL —
https://monvision.io
- Network name —
- Save the configuration.
Hardhat
Configure Hardhat to deploy contracts and interact through your Monad nodes.- Install Hardhat and create a project.
-
Create a new environment in
hardhat.config.js:where- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS or WSS endpoint protected either with the key or password. See node access details.
- YOUR_PRIVATE_KEY — the private key of the account that you use to deploy the contract
-
Run
npx hardhat run scripts/deploy.js --network chainstackand Hardhat will deploy using Chainstack.
Remix IDE
To make Remix IDE interact with the network through a Chainstack node:- Get MetaMask and set it to interact through a Chainstack node. See Interacting through MetaMask.
- In Remix IDE, navigate to the Deploy tab. Select Injected Provider - MetaMask in Environment.
web3.py
Build DApps using web3.py and Monad nodes deployed with Chainstack.- Install web3.py.
- Connect over HTTP or WebSocket. See also EVM node connection: HTTP vs WebSocket.
HTTP
Use theHTTPProvider to connect to your node endpoint and get the latest block number:
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
- HOSTNAME — your node HTTPS endpoint hostname
- USERNAME — your node access username (for password-protected endpoints)
- PASSWORD — your node access password (for password-protected endpoints)
WebSocket
Use theWebsocketProvider object to connect to your node WSS endpoint and get the latest block number:
- YOUR_CHAINSTACK_ENDPOINT — your node WSS endpoint protected either with the key or password
- HOSTNAME — your node WSS endpoint hostname
- USERNAME — your node access username (for password-protected endpoints)
- PASSWORD — your node access password (for password-protected endpoints)
web3.php
Build DApps using web3.php and Monad nodes deployed with Chainstack.- Install web3.php.
-
Connect over HTTP:
where YOUR_CHAINSTACK_ENDPOINT is your node HTTPS endpoint protected either with the key or password
-
Use JSON-RPC methods to interact with the node.
Example to get the latest block number:
web3j
Build DApps using web3j and Monad nodes deployed with Chainstack. Use theHttpService object to connect to your node endpoint.
Example to get the latest block number:
- ENDPOINT — your node HTTPS endpoint protected either with the key or password
- USERNAME — your node access username (for password-protected endpoints)
- PASSWORD — your node access password (for password-protected endpoints)
ethers.js
Build DApps using ethers.js and Monad nodes deployed with Chainstack.- Install ethers.js.
- Connect over HTTP or WebSocket. See also EVM node connection: HTTP vs WebSocket.
HTTP
Use theJsonRpcProvider object to connect to your node endpoint and get the latest block number:
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
- USERNAME — your node access username (for password-protected endpoints)
- PASSWORD — your node access password (for password-protected endpoints)
-
NETWORK_ID — Monad network ID:
- Mainnet:
143 - Testnet:
10143
- Mainnet:
WebSocket
Use theWebSocketProvider object to connect to your node WSS endpoint and get the latest block number:
- YOUR_CHAINSTACK_ENDPOINT — your node WSS endpoint endpoint protected either with the key or password
-
NETWORK_ID — Monad network ID:
- Mainnet:
143 - Testnet:
10143
- Mainnet:
viem
Build DApps using viem and Monad nodes deployed with Chainstack.- Install viem.
- Connect over HTTP or WebSocket.
HTTP
Use thecreatePublicClient function to connect to your node endpoint and get the latest block number:
WebSocket
Use thecreatePublicClient function with WebSocket transport:
Brownie
- Install Brownie.
-
Use the
brownie networks addcommand with the node endpoint. For example, Monad mainnet:where-
ID — any name that you will use as the network tag to run a deployment. For example,
chainstack-mainnet. - NETWORK_NAME — any name that you want to identify the network by in the list of networks. For example, Mainnet (Chainstack).
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS or WSS endpoint protected either with the key or password
-
NETWORK_ID — Monad network ID:
- Mainnet:
143 - Testnet:
10143
- Mainnet:
-
ID — any name that you will use as the network tag to run a deployment. For example,
Foundry
- Install Foundry.
- Use
--rpc-urlto run the operation through your Chainstack node.
Forge
Useforge to develop, test, and deploy your smart contracts.
To deploy a contract:
- CONTRACT_NAME — name of the contract in the Solidity source code
- CONTRACT_PATH — path to your smart contract
- YOUR_PRIVATE_KEY — the private key to your funded account that you will use to deploy the contract.
- YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
Cast
Usecast to interact with the network and the deployed contracts.
To get the latest block number: