Yellowstone gRPC

Yellowstone Client Setup

Configure TLS and authentication for TypeScript, Python, Go, and Rust clients.

Connect to:

grpc.nln.clr3.org:443

Use TLS. Send your key through x-token with the Yellowstone TypeScript SDK or x-api-key with raw gRPC metadata.

TypeScript

npm install @triton-one/yellowstone-grpc
import Client from "@triton-one/yellowstone-grpc" const client = new Client(  "https://grpc.nln.clr3.org:443",  process.env.NLN_API_KEY,  { grpcMaxDecodingMessageSize: 64 * 1024 * 1024 },) await client.connect()const response = await client.ping(1)console.log(response.count)

Call connect() before any unary or streaming method.

Python

Generate Python modules from geyser.proto and its Google proto imports.

python -m pip install grpcio grpcio-tools protobuf python -m grpc_tools.protoc \  -I ./proto \  --python_out=. \  --grpc_python_out=. \  ./proto/geyser.proto
import grpcimport geyser_pb2 as pbimport geyser_pb2_grpc as rpc channel = grpc.secure_channel(    "grpc.nln.clr3.org:443",    grpc.ssl_channel_credentials(),)client = rpc.GeyserStub(channel)metadata = [("x-api-key", "YOUR_API_KEY")] response = client.Ping(pb.PingRequest(count=1), metadata=metadata)print(response.count)

Go

Use the generated Yellowstone Go package. Create transport credentials from the system root certificate pool. Attach x-api-key metadata to the outgoing context.

ctx := metadata.AppendToOutgoingContext(    context.Background(),    "x-api-key",    os.Getenv("NLN_API_KEY"),)

Rust

Use tonic with the generated Yellowstone client.

let channel = tonic::transport::Channel::from_static(    "https://grpc.nln.clr3.org:443").connect().await?;

Add x-api-key to each request metadata map before sending.

Verify the connection

Run Ping first. A successful response echoes your integer count. UNAUTHENTICATED means the header is missing or invalid.