Yellowstone gRPC

Slot Subscriptions

Track slot progression and chain state. A slot represents a ~400ms period during which a leader can produce a block. Essential for understanding confirmations and synchronizing with the blockchain.

Filter Fields

filter_by_commitmentoptional bool

When true, only receive updates matching the request's commitment level. Reduces update volume.

interslot_updatesoptional bool

When true, receive updates during slot progression for a more granular view of the slot lifecycle.

Filter Definition

Request Filter
Protobuf
message SubscribeRequestFilterSlots {
  optional bool filter_by_commitment = 1;
  optional bool interslot_updates = 2;
}

Response Structure

Response
Protobuf
message SubscribeUpdateSlot {
  uint64 slot = 1;
  optional uint64 parent = 2;
  SlotStatus status = 3;
  optional string dead_error = 4;
}

enum SlotStatus {
  SLOT_PROCESSED = 0;
  SLOT_CONFIRMED = 1;
  SLOT_FINALIZED = 2;
  SLOT_FIRST_SHRED_RECEIVED = 3;
  SLOT_COMPLETED = 4;
  SLOT_CREATED_BANK = 5;
  SLOT_DEAD = 6;
}

Example

Stream confirmed slot updates
Rust
SubscribeRequest {
    slots: HashMap::from([(
        "confirmed_slots".to_string(),
        SubscribeRequestFilterSlots {
            filter_by_commitment: Some(true),
        },
    )]),
    commitment: Some(CommitmentLevel::Confirmed as i32),
    ..Default::default()
}