Moonbeam
Find a complete list of tools on the Moonbeam docs.
Substrate tools
Polkadot's Substrate provides a powerful toolkit for building and managing custom blockchains within the Moonbeam ecosystem. Key components include modular pallets, forkless upgrades, and native interoperability.
Find the Substrate tools in the Moonbeam docs.
MetaMask
On node access details, click Add to MetaMask.
web3.js
Build DApps using web3.js and Moonbeam nodes deployed with Chainstack.
- Install web3.js.
- Connect over HTTP.
HTTP
Use the HttpProvider
object to connect to your node HTTPS endpoint and get the latest block number:
const {Web3} = require('web3');
const web3 = new Web3(new Web3.providers.HttpProvider('YOUR_CHAINSTACK_ENDPOINT'));
web3.eth.getBlockNumber().then(console.log);
where YOUR_CHAINSTACK_ENDPOINT
is your node HTTPS endpoint protected either with the key or password.
web3.py
Build DApps using web3.py and Moonbeam nodes deployed with Chainstack.
- Install web3.py.
- Connect over HTTP. See also EVM node connection: HTTP vs WebSocket.
HTTP
Use the HTTPProvider
to connect to your node endpoint and get the latest block number.
from web3 import Web3
web3 = Web3(Web3.HTTPProvider('YOUR_CHAINSTACK_ENDPOINT'))
print(web3.eth.blockNumber)
from web3 import Web3
web3 = Web3(Web3.HTTPProvider('https://%s:%s@%s'% ("USERNAME", "PASSWORD", "HOSTNAME")))
print(web3.eth.blockNumber)
where
- 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)
See also node access details.
ethers.js
Build DApps using ethers.js and Moonbeam nodes deployed with Chainstack.
- Install ethers.js.
- Connect over HTTP. See also EVM node connection: HTTP vs WebSocket.
HTTP
Use the JsonRpcProvider
object to connect to your node endpoint and get the latest block number:
const { ethers } = require("ethers");
var urlInfo = {
url: 'YOUR_CHAINSTACK_ENDPOINT'
};
var provider = new ethers.JsonRpcProvider(urlInfo.url, NETWORK_ID);
provider.getBlockNumber().then(console.log);
where
- 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 — Moonbeam network ID:
- Moonbeam Mainnet:
1284
- Moonbeam Mainnet:
See also node access details.
Hardhat
Configure Hardhat to deploy contracts and interact through your Moonbeam nodes.
-
Install Hardhat and create a project.
-
Create a new environment in
hardhat.config.js
:require("@nomiclabs/hardhat-waffle"); ... module.exports = { solidity: "0.7.3", networks: { chainstack: { url: "YOUR_CHAINSTACK_ENDPOINT", accounts: ["YOUR_PRIVATE_KEY"] }, } };
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 chainstack
and Hardhat will deploy using Chainstack.
See also Forking EVM-compatible mainnet with Hardhat.
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.
This will engage MetaMask and make Remix IDE interact with the network through a Chainstack node.
web3.php
Build DApps using web3.php and Moonbeam nodes deployed with Chainstack.
-
Install web3.php.
-
Connect over HTTP:
<?php require_once "vendor/autoload.php"; use Web3\Web3; use Web3\Providers\HttpProvider; use Web3\RequestManagers\HttpRequestManager; $web3 = new Web3(new HttpProvider(new HttpRequestManager("YOUR_CHAINSTACK_ENDPOINT", 5))); ?>
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:
<?php require_once "vendor/autoload.php"; use Web3\Web3; use Web3\Providers\HttpProvider; use Web3\RequestManagers\HttpRequestManager; $web3 = new Web3(new HttpProvider(new HttpRequestManager("YOUR_CHAINSTACK_ENDPOINT", 5))); $eth = $web3->eth; $eth->blockNumber(function ($err, $data) { print "$data \n"; }); ?>
Foundry
- Install Foundry.
- Use
--rpc-url
to run the operation through your Chainstack node.
Forge
Use forge
to develop, test, and deploy your smart contracts.
To deploy a contract:
forge create CONTRACT_NAME --contracts CONTRACT_PATH --private-key YOUR_PRIVATE_KEY --rpc-url YOUR_CHAINSTACK_ENDPOINT
where
- 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
Use cast
to interact with the network and the deployed contracts.
To get the latest block number:
cast block-number --rpc-url YOUR_CHAINSTACK_ENDPOINT
where YOUR_CHAINSTACK_ENDPOINT
is your node HTTPS endpoint protected either with the key or password
Updated 6 months ago