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
| Name | Type | Description |
|---|---|---|
| commitment | CommitmentLevel | Optional. The commitment level: processed, confirmed, or finalized. |
Response
| Field | Type | Description |
|---|---|---|
| slot | uint64 | The 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}