MetaMask

On node access details, click Add to MetaMask.

web3.js

Build DApps using web3.js and opBNB nodes deployed with Chainstack.

1

Install web3.js.

2

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 opBNB nodes deployed with Chainstack.

1

Install web3.py.

2

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)

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 opBNB nodes deployed with Chainstack.

1

Install ethers.js.

2

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 — opBNB network ID:
    • opBNB Mainnet: 204

See also node access details.

Hardhat

Configure Hardhat to deploy contracts and interact through your opBNB nodes.

1

Install Hardhat and create a project.

2

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
3

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:

1

Get MetaMask and set it to interact through a Chainstack node. See Interacting through MetaMask.

2

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 opBNB nodes deployed with Chainstack.

1

Install web3.php.

2

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

3

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

1

Install Foundry.

2

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