Yellowstone Client Setup

Connect to:

text
geyser.sol.cubestech.online:443:443

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

TypeScript

bash
npm install @triton-one/yellowstone-grpc
typescript
import Client from "@triton-one/yellowstone-grpc"

const client = new Client(
  "geyser.sol.cubestech.online:443:443",
  process.env.NODE_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.

bash
python -m pip install grpcio grpcio-tools protobuf

python -m grpc_tools.protoc \
  -I ./proto \
  --python_out=. \
  --grpc_python_out=. \
  ./proto/geyser.proto
python
import grpc
import geyser_pb2 as pb
import geyser_pb2_grpc as rpc

channel = grpc.secure_channel(
    "geyser.sol.cubestech.online:443: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.

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

Rust

Use tonic with the generated Yellowstone client.

rust
let channel = tonic::transport::Channel::from_static(
    "geyser.sol.cubestech.online:443: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.