Developer hub

Plain HTTP. Every chain.

JSON-RPC over HTTPS to Tron, BSC, and opBNB. Tron keys also get the Tron Native HTTP API. Use the official @znd/sdk or plain fetch — your key lives in the URL path, no signing.

Quickstart

Sign up, copy the URL, POST.

That's the whole flow. Replace <region> with the one closest to your users.

quickstart.sh
# Replace <region> with one of:
# us-east · us-west · eu-west · asia-southeast · sa-east · me-south · af-south

export ZNODE_KEY=brpc_xxxxxxxxxxxxxxxxxx

curl https://us-east-rpc.znode.dev/v1/$ZNODE_KEY/jsonrpc \
  -H "content-type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
Networks

Three live, more on the way.

Each key is pinned to one chain and one region. Create more keys for more pairs.

T

Tron

Live

Mainnet with JSON-RPC (eth_*) and the full Tron HTTP API proxied through the same key.

Network IDtron-mainnet
JSON-RPCTron Native API
B

BNB Smart Chain

Live

BSC mainnet (chain ID 56) with archive node access. Standard EVM JSON-RPC methods.

Network IDbsc-mainnet
JSON-RPCArchive
o

opBNB

Live

BNB Chain's OP-Stack L2 (chain ID 204). EVM-compatible, same surface as BSC.

Network IDopbnb-mainnet
JSON-RPC
E

Ethereum

Soon

Mainnet, Sepolia, and Holesky on the roadmap.

Network IDethereum-mainnet
JSON-RPCArchive
S

Solana

Soon

Mainnet and devnet on the roadmap.

Network IDsolana-mainnet
JSON-RPC
A

Avalanche

Soon

C-Chain mainnet and Fuji testnet on the roadmap.

Network IDavalanche-mainnet
JSON-RPC
Regions

Edge in 7 places.

Pick a region when you create a key — the gateway URL becomes https://<region>-rpc.znode.dev.

US East · Virginia

Subdomainus-east-rpc.znode.dev

US West · California

Subdomainus-west-rpc.znode.dev

Europe · Frankfurt

Subdomaineu-west-rpc.znode.dev

Asia Pacific · Singapore

Subdomainasia-southeast-rpc.znode.dev

South America · São Paulo

Subdomainsa-east-rpc.znode.dev

Middle East · Dubai

Subdomainme-south-rpc.znode.dev

Africa · Cape Town

Subdomainaf-south-rpc.znode.dev
Examples

Copy. Paste. Ship.

No SDK to install — every example is plain fetch.

EVM JSON-RPC

Standard EVM call on BSC, opBNB, or Tron.

// With @znd/sdk — typed, BigInt-aware
import { ZNodeClient } from "@znd/sdk";

const client = new ZNodeClient({
  apiKey: process.env.ZNODE_KEY!,
  region: "us-east",
});

const balance = await client.getBalance("0x742d35Cc...");
console.log("balance (wei):", balance);

// Or with plain fetch — no install
const r = await fetch(
  `https://us-east-rpc.znode.dev/v1/${process.env.ZNODE_KEY}/jsonrpc`,
  {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify({
      jsonrpc: "2.0",
      id: 1,
      method: "eth_getBalance",
      params: ["0x742d35Cc...", "latest"],
    }),
  },
);
const { result } = await r.json();

Tron Native API

Tron HTTP API proxied — wallet, contract, transaction.

// Tron Native HTTP API — TRON-prefixed keys only
import { ZNodeClient } from "@znd/sdk";

const client = new ZNodeClient({
  apiKey: process.env.TRON_KEY!,
  region: "us-east",
});

// Typed Tron helpers
const block   = await client.tron_getNowBlock();
const account = await client.tron_getAccount("TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf");
const balance = await client.tron_getAccountBalance("TXYZop...");

Batch requests

Send an array of JSON-RPC calls in one POST.

// Batch JSON-RPC — same /jsonrpc endpoint, body is an array
const batch = [
  { jsonrpc: "2.0", id: 1, method: "eth_blockNumber", params: [] },
  { jsonrpc: "2.0", id: 2, method: "eth_gasPrice",   params: [] },
];

const r = await fetch(
  `https://us-east-rpc.znode.dev/v1/${process.env.ZNODE_KEY}/jsonrpc`,
  {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify(batch),
  },
);

const [block, gas] = await r.json();