MetaMask

On node access details, click Add to MetaMask.

caver-js

caver-js is a JavaScript library enabling developers to interact with a Klaytn node via HTTP connection. It supports all Klaytn APIs.

1

Install caver-js.

2

Connect over HTTP.

const Caver = require("caver-js");
const caver = new Caver("YOUR_CHAINSTACK_ENDPOINT");

async function getData() {
  const blockNumber = await caver.rpc.klay.getBlockNumber();
  console.log(blockNumber);
}

getData();

web3.js

Build DApps using web3.js and Klaytn 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 Klaytn 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 Extension for Kaia

See Ethers.js Extension for Kaia.

Hardhat

Configure Hardhat to deploy contracts and interact through your Klaytn 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 Klaytn 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