Connect to Ink Mainnet and Ink Testnet through geo-balanced infrastructure that scales with request volume and routes traffic for reliable access across regions. Global Nodes serve archive data, and paid plans add debug_* and trace_* APIs.
Run Ink workloads on isolated op-reth infrastructure across all Chainstack locations, with single-tenant resources and greater control over node configuration.
Build with managed Ink RPC endpoints designed for sustained DeFi and consumer application traffic. Get standard Ethereum JSON-RPC and WebSocket on an OP Stack chain built by Kraken, part of the Optimism Superchain — chain ID 57073 on Mainnet and 763373 on Ink Testnet.
SOC 2 Type II and ISO 27001 certified.
Ink is an Ethereum L2 on the OP Stack, so the Ethereum tools you already use work against your Chainstack node.
Use standard Ethereum JSON-RPC with ethers.js, viem, web3.py, Hardhat, Foundry, and MetaMask. Ink uses ETH for gas and produces a block about every second.
Global Nodes serve archive data, and paid plans add debug_* and trace_* APIs. Dedicated Nodes run op-reth on isolated resources.
Subscribe to new blocks over WSS with eth_subscribe. Ink pending transactions stay with the sequencer, so pending-transaction subscriptions deliver nothing.
Test on Ink Testnet (chain ID 763373) on Global Nodes, with HTTPS and WSS endpoints, before you deploy to Mainnet.
Copy your endpoint from Access and credentials in the console, then run any of these.
const { JsonRpcProvider, formatEther } = require("ethers");
const provider = new JsonRpcProvider("CHAINSTACK_NODE_URL");
async function main() {
const network = await provider.getNetwork();
console.log("Chain ID:", network.chainId.toString());
const block = await provider.getBlockNumber();
console.log("Block:", block);
const balance = await provider.getBalance("0x4200000000000000000000000000000000000016");
console.log("Balance:", formatEther(balance), "ETH");
}
main();from web3 import Web3
web3 = Web3(Web3.HTTPProvider("CHAINSTACK_NODE_URL"))
print("Connected:", web3.is_connected())
print("Chain ID:", web3.eth.chain_id)
print("Block:", web3.eth.block_number)
address = Web3.to_checksum_address("0x4200000000000000000000000000000000000016")
balance = web3.eth.get_balance(address)
print("Balance:", web3.from_wei(balance, "ether"), "ETH")cast chain-id --rpc-url CHAINSTACK_NODE_URL cast block-number --rpc-url CHAINSTACK_NODE_URL cast balance 0x4200000000000000000000000000000000000016 --ether --rpc-url CHAINSTACK_NODE_URL
Run high-volume production workloads with flat monthly billing based on your selected requests per second tier.
Keep infrastructure costs predictable as DeFi and consumer application traffic grows.
Run Ink workloads on production-grade infrastructure with stable latency, predictable capacity, and reliable resources on Chainstack.
Get isolated infrastructure for production workloads that require predictable resources, advanced configuration, and consistent performance at scale.
Ink runs the op-reth execution client and exposes the standard Ethereum JSON-RPC and WebSocket API. Use ethers.js, web3.py, or any standard EVM SDK. Ink Mainnet has chain ID 57073, 1-second block times, and ETH as its gas token. Ink Testnet (chain ID 763373) is available on Global Nodes. Global Nodes serve Ink Mainnet with archive data and both debug_* and trace_* namespaces on paid plans. Ink has no public mempool, so eth_subscribe("newPendingTransactions") and eth_newPendingTransactionFilter return an ID but deliver nothing. Filters created on a Global Node live on one backend, so poll eth_getLogs over an explicit block range or hold a WebSocket subscription instead.
You can also access Ink through the Chainstack MCP server — query onchain data, deploy nodes, and search Chainstack docs from Claude, Cursor, Windsurf, ChatGPT, Codex, Pi, Gemini, or any MCP-compatible or SKILL-compatible AI agent.