Parameters
This method does not accept any parameters
Returns
- result
An object with the following fields:
- firstNormalEpoch
The first normal-length epoch, log2(slotsPerEpoch) - log2(MINIMUM_SLOTS_PER_EPOCH)
- firstNormalSlot
The slot number of the first normal slot. MINIMUM_SLOTS_PER_EPOCH * (2.pow(firstNormalEpoch) - 1)
- leaderScheduleSlotOffset
The number of slots before beginning of an epoch to calculate a leader schedule for that epoch
- slotsPerEpoch
The maximum number of slots in each epoch
- warmup
Whether epochs start short and grow
Request
1curl https://docs-demo.solana-mainnet.quiknode.pro/ \2-X POST \3-H "Content-Type: application/json" \4--data '{"jsonrpc":"2.0","id":1, "method":"getEpochSchedule"}'
1curl https://docs-demo.solana-mainnet.quiknode.pro/ \2-X POST \3-H "Content-Type: application/json" \4--data '{"jsonrpc":"2.0","id":1, "method":"getEpochSchedule"}'
1require "uri"2require "json"3require "net/http"45url = URI("https://docs-demo.solana-mainnet.quiknode.pro/")67https = Net::HTTP.new(url.host, url.port)8https.use_ssl = true910request = Net::HTTP::Post.new(url)11request["Content-Type"] = "application/json"12request.body = JSON.dump({13"jsonrpc": "2.0",14"id": 1,15"method": "getEpochSchedule"16})1718response = https.request(request)19puts response.read_body20
1require "uri"2require "json"3require "net/http"45url = URI("https://docs-demo.solana-mainnet.quiknode.pro/")67https = Net::HTTP.new(url.host, url.port)8https.use_ssl = true910request = Net::HTTP::Post.new(url)11request["Content-Type"] = "application/json"12request.body = JSON.dump({13"jsonrpc": "2.0",14"id": 1,15"method": "getEpochSchedule"16})1718response = https.request(request)19puts response.read_body20
1const web3 = require("@solana/web3.js");2(async () => {3const solana = new web3.Connection("https://docs-demo.solana-mainnet.quiknode.pro/");4console.log(await solana.getEpochSchedule());5})();6
1const web3 = require("@solana/web3.js");2(async () => {3const solana = new web3.Connection("https://docs-demo.solana-mainnet.quiknode.pro/");4console.log(await solana.getEpochSchedule());5})();6
1import { createSolanaRpc } from "@solana/kit";23(async () => {4const solanaRpc = createSolanaRpc("https://docs-demo.solana-mainnet.quiknode.pro/");56try {7const epochSchedule = await solanaRpc.getEpochSchedule().send();8console.log(epochSchedule);9} catch (error) {10console.error("Error fetching epoch schedule:", error);11}12})();
1import { createSolanaRpc } from "@solana/kit";23(async () => {4const solanaRpc = createSolanaRpc("https://docs-demo.solana-mainnet.quiknode.pro/");56try {7const epochSchedule = await solanaRpc.getEpochSchedule().send();8console.log(epochSchedule);9} catch (error) {10console.error("Error fetching epoch schedule:", error);11}12})();
1from solana.rpc.api import Client2solana_client = Client("https://docs-demo.solana-mainnet.quiknode.pro/")3print(solana_client.get_epoch_schedule())
1from solana.rpc.api import Client2solana_client = Client("https://docs-demo.solana-mainnet.quiknode.pro/")3print(solana_client.get_epoch_schedule())
1use reqwest::header;2use reqwest::Client;3use std::error::Error;45#[tokio::main]6async fn main() -> Result<(), Box<dyn Error>> {7let mut headers = header::HeaderMap::new();8headers.insert("Content-Type", "application/json".parse().unwrap());910let client = Client::new();11let json_data = r#"12{13"jsonrpc": "2.0",14"id": 1,15"method": "getEpochSchedule"16}17"#;18let response = client19.post("https://docs-demo.solana-mainnet.quiknode.pro/")20.headers(headers)21.body(json_data)22.send()23.await?;2425let body = response.text().await?;26println!("{}", body);2728Ok(())29}
1use reqwest::header;2use reqwest::Client;3use std::error::Error;45#[tokio::main]6async fn main() -> Result<(), Box<dyn Error>> {7let mut headers = header::HeaderMap::new();8headers.insert("Content-Type", "application/json".parse().unwrap());910let client = Client::new();11let json_data = r#"12{13"jsonrpc": "2.0",14"id": 1,15"method": "getEpochSchedule"16}17"#;18let response = client19.post("https://docs-demo.solana-mainnet.quiknode.pro/")20.headers(headers)21.body(json_data)22.send()23.await?;2425let body = response.text().await?;26println!("{}", body);2728Ok(())29}
1import { QuicknodeSdk } from '@quicknode/sdk'23const qn = new QuicknodeSdk({})45const result = await qn.rpc.call(6'getEpochSchedule',7[],8undefined,9'https://docs-demo.solana-mainnet.quiknode.pro/'10)1112console.log(result)
1import { QuicknodeSdk } from '@quicknode/sdk'23const qn = new QuicknodeSdk({})45const result = await qn.rpc.call(6'getEpochSchedule',7[],8undefined,9'https://docs-demo.solana-mainnet.quiknode.pro/'10)1112console.log(result)
1import asyncio2from quicknode_sdk import QuicknodeSdk, SdkFullConfig34async def main():5qn = QuicknodeSdk(SdkFullConfig(api_key=None))6result = await qn.rpc.call(7"getEpochSchedule",8[],9endpoint_url="https://docs-demo.solana-mainnet.quiknode.pro/",10)11print(result)1213asyncio.run(main())
1import asyncio2from quicknode_sdk import QuicknodeSdk, SdkFullConfig34async def main():5qn = QuicknodeSdk(SdkFullConfig(api_key=None))6result = await qn.rpc.call(7"getEpochSchedule",8[],9endpoint_url="https://docs-demo.solana-mainnet.quiknode.pro/",10)11print(result)1213asyncio.run(main())
1require "quicknode_sdk"23qn = QuicknodeSdk::SDK.from_config(api_key: nil)45result = qn.rpc.call(6method: "getEpochSchedule",7params: [],8endpoint_url: "https://docs-demo.solana-mainnet.quiknode.pro/"9)1011puts result
1require "quicknode_sdk"23qn = QuicknodeSdk::SDK.from_config(api_key: nil)45result = qn.rpc.call(6method: "getEpochSchedule",7params: [],8endpoint_url: "https://docs-demo.solana-mainnet.quiknode.pro/"9)1011puts result
1use quicknode_sdk::{QuicknodeSdk, SdkFullConfig};23#[tokio::main]4async fn main() -> Result<(), Box<dyn std::error::Error>> {5let qn = QuicknodeSdk::new(&SdkFullConfig::keyless())?;6let result = qn7.rpc8.call(9"getEpochSchedule",10Some(serde_json::json!([])),11None,12Some("https://docs-demo.solana-mainnet.quiknode.pro/".into()),13)14.await?;1516println!("{result}");17Ok(())18}
1use quicknode_sdk::{QuicknodeSdk, SdkFullConfig};23#[tokio::main]4async fn main() -> Result<(), Box<dyn std::error::Error>> {5let qn = QuicknodeSdk::new(&SdkFullConfig::keyless())?;6let result = qn7.rpc8.call(9"getEpochSchedule",10Some(serde_json::json!([])),11None,12Some("https://docs-demo.solana-mainnet.quiknode.pro/".into()),13)14.await?;1516println!("{result}");17Ok(())18}
Response
1{2"jsonrpc": "2.0",3"result": {4"firstNormalEpoch": 0,5"firstNormalSlot": 0,6"leaderScheduleSlotOffset": 432000,7"slotsPerEpoch": 432000,8"warmup": false9},10"id": 111}
1{2"jsonrpc": "2.0",3"result": {4"firstNormalEpoch": 0,5"firstNormalSlot": 0,6"leaderScheduleSlotOffset": 432000,7"slotsPerEpoch": 432000,8"warmup": false9},10"id": 111}
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free