Quickstart

Get a key, prove it with npx rpcedge doctor, then make your first Solana RPC call.

This quickstart takes you from zero to a verified first call. Prefer the CLI doctor - it checks auth, health, and next steps without wiring URLs by hand.

1. Get an API key

Start a plan in the dashboard or request access in Telegram. Access is issued as a UUID API key:

10bcb316-cd81-47d2-89c4-375354a8c54f

Treat the key like a password. Never put it in prompts, commits, or chat logs.

export RPCEDGE_KEY=YOUR_UUID_KEY
npx rpcedge@latest doctor
npx rpcedge@latest health --json

Or save the key for later sessions:

npx rpcedge@latest config set-key YOUR_UUID_KEY
npx rpcedge@latest whoami

The CLI ships from the open rpcedge-toolkit (rpcedge on npm). For coding agents:

claude mcp add rpcedge -- npx rpcedge-mcp@latest
# ensure RPCEDGE_KEY is in the host environment

Machine-readable integration map: rpcedge.com/skills.md.

3. Authenticate (any client)

HTTP and WebSocket clients can use a query parameter, which matches normal Solana SDK endpoint patterns:

https://rpc.rpcedge.com?key=YOUR_UUID_KEY
wss://rpc.rpcedge.com?key=YOUR_UUID_KEY

Server-side HTTP clients can also use headers:

Authorization: Bearer YOUR_UUID_KEY
x-api-key: YOUR_UUID_KEY

Yellowstone gRPC uses metadata headers:

grpc.rpcedge.com:443
x-api-key: YOUR_UUID_KEY

4. Code paths

TypeScript SDK

pnpm add rpcedge-sdk
hello.ts
import { RpcEdge } from "rpcedge-sdk";
 
const edge = await RpcEdge.fromEnv(); // reads RPCEDGE_KEY
console.log(await edge.getSlot());
console.log((await edge.health()).summary);

Raw fetch

hello-fetch.ts
const ENDPOINT = "https://rpc.rpcedge.com?key=YOUR_UUID_KEY";
 
const res = await fetch(ENDPOINT, {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "getSlot",
    params: [{ commitment: "processed" }],
  }),
});
 
console.log(await res.json());

Python

hello.py
import os
import requests
 
ENDPOINT = f"https://rpc.rpcedge.com?key={os.environ['RPCEDGE_KEY']}"
 
res = requests.post(ENDPOINT, json={
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getSlot",
    "params": [{"commitment": "processed"}],
})
print(res.json())

5. Next steps