getEpochSchedule
Returns the epoch schedule information from the cluster's genesis configuration. This includes the number of slots per epoch, the leader schedule slot offset, and whether epochs start short and grow. This data is static for a given cluster and is useful for calculating epoch boundaries, predicting when epochs will change, and understanding the timing of stake activation and reward distribution.
Parameters
This method does not accept any parameters.
Response
Returns an object:
| Field | Type | Description |
|---|---|---|
slotsPerEpoch | u64 | Maximum number of slots in each epoch |
leaderScheduleSlotOffset | u64 | Number of slots before beginning of an epoch to calculate a leader schedule for that epoch |
warmup | bool | Whether epochs start short and grow |
firstNormalEpoch | u64 | First normal-length epoch (after warmup) |
firstNormalSlot | u64 | First slot of firstNormalEpoch |
Code Examples
cURL
1curl http://[IP_ADDRESS]:[PORT] -X POST -H "Content-Type: application/json" -d '{
2 "jsonrpc": "2.0",
3 "id": 1,
4 "method": "getEpochSchedule",
5 "params": []
6}'TypeScript
1const response = await fetch("http://[IP_ADDRESS]:[PORT]", {
2 method: "POST",
3 headers: { "Content-Type": "application/json" },
4 body: JSON.stringify({
5 jsonrpc: "2.0",
6 id: 1,
7 method: "getEpochSchedule",
8 params: []
9 }),
10});
11const { result } = await response.json();
12console.log("Slots per epoch:", result.slotsPerEpoch);Python
1import requests
2
3response = requests.post("http://[IP_ADDRESS]:[PORT]", json={
4 "jsonrpc": "2.0",
5 "id": 1,
6 "method": "getEpochSchedule",
7 "params": []
8})
9result = response.json()["result"]
10print(f"Slots per epoch: {result['slotsPerEpoch']}")Rust
1use reqwest::Client;
2use serde_json::json;
3
4#[tokio::main]
5async fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let client = Client::new();
7 let res = client.post("http://[IP_ADDRESS]:[PORT]")
8 .json(&json!({
9 "jsonrpc": "2.0",
10 "id": 1,
11 "method": "getEpochSchedule",
12 "params": []
13 }))
14 .send().await?
15 .text().await?;
16 println!("{}", res);
17 Ok(())
18}Example Response
1{
2 "jsonrpc": "2.0",
3 "result": {
4 "slotsPerEpoch": 432000,
5 "leaderScheduleSlotOffset": 432000,
6 "warmup": false,
7 "firstNormalEpoch": 0,
8 "firstNormalSlot": 0
9 },
10 "id": 1
11}