GetSlot

Returns the current slot the node is processing.

Type: unary

Overview

GetSlot returns the current slot being processed by the Solana node. Slots are the fundamental time unit in Solana (approximately 400ms each). This method is essential for tracking chain progress with high precision.

HFT systems commonly poll this endpoint to synchronize their internal state with the cluster and to detect slot skips or leader schedule changes.

Parameters

NameTypeDescription
commitmentCommitmentLevelOptional. The commitment level: processed, confirmed, or finalized.

Response

FieldTypeDescription
slotuint64The current slot number

Usage Examples

Node.js

1const grpc = require('@grpc/grpc-js');
2const protoLoader = require('@grpc/proto-loader');
3
4const packageDef = protoLoader.loadSync('geyser.proto', {
5  keepCase: true, longs: String, enums: String, defaults: true, oneofs: true
6});
7const proto = grpc.loadPackageDefinition(packageDef).geyser;
8const client = new proto.Geyser('[IP_ADDRESS]:[PORT]', grpc.credentials.createInsecure());
9
10client.getSlot({}, (err, response) => {
11  if (err) { console.error(err); return; }
12  console.log('Response:', response);
13});

Rust

1use yellowstone_grpc_proto::geyser::geyser_client::GeyserClient;
2use tonic::transport::Channel;
3
4#[tokio::main]
5async fn main() -> Result<(), Box<dyn std::error::Error>> {
6    let channel = Channel::from_static("http://[IP_ADDRESS]:[PORT]")
7        .connect().await?;
8    let mut client = GeyserClient::new(channel);
9
10    let response = client.getSlot(tonic::Request::new(())).await?;
11    println!("Response: {:?}", response.into_inner());
12
13    Ok(())
14}