Celo
Find a complete list of tools on the Celo docs.
MetaMask
On node access details, click Add to MetaMask.
web3.js
Build DApps using web3.js and Celo 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 Celo 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 Celo 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 — Celo network ID:
- Celo Mainnet:
42220
- Celo Mainnet:
See also node access details.
Hardhat
Configure Hardhat to deploy contracts and interact through your Celo 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 Celo 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