Solana Blocks API
Methods for querying blocks, slots, and ledger information
Methods for querying blocks, slots, and ledger information
openapi: 3.0.3
info:
title: Solana JSON-RPC Accounts Blocks API
description: Solana exposes a JSON-RPC 2.0 API over HTTP and WebSocket for querying accounts, transactions, programs, token balances, blocks, and cluster state, as well as submitting and simulating transactions. Three public clusters are available — Mainnet (https://api.mainnet.solana.com), Devnet (https://api.devnet.solana.com), and Testnet (https://api.testnet.solana.com) — with dedicated API nodes for each environment. All requests use HTTP POST with a JSON-RPC 2.0 request body.
version: '2.0'
contact:
name: Solana Developer Resources
url: https://solana.com/developers
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
termsOfService: https://solana.com/tos
servers:
- url: https://api.mainnet.solana.com
description: Solana Mainnet
- url: https://api.devnet.solana.com
description: Solana Devnet
- url: https://api.testnet.solana.com
description: Solana Testnet
tags:
- name: Blocks
description: Methods for querying blocks, slots, and ledger information
paths:
/getBlock:
post:
operationId: getBlock
summary: getBlock
description: Returns identity and transaction information about a confirmed block in the ledger.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getBlock:
summary: Get confirmed block at a given slot
value:
jsonrpc: '2.0'
id: 1
method: getBlock
params:
- 430
- encoding: json
transactionDetails: full
maxSupportedTransactionVersion: 0
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/BlockResponse'
x-solana-method: getBlock
x-solana-docs: https://solana.com/docs/rpc/http/getblock
/getBlockCommitment:
post:
operationId: getBlockCommitment
summary: getBlockCommitment
description: Returns commitment for particular block.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getBlockCommitment:
summary: Get commitment level for a block slot
value:
jsonrpc: '2.0'
id: 1
method: getBlockCommitment
params:
- 5
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/BlockCommitmentResponse'
x-solana-method: getBlockCommitment
x-solana-docs: https://solana.com/docs/rpc/http/getblockcommitment
/getBlockHeight:
post:
operationId: getBlockHeight
summary: getBlockHeight
description: Returns the current block height of the node.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getBlockHeight:
summary: Get current block height
value:
jsonrpc: '2.0'
id: 1
method: getBlockHeight
params:
- commitment: confirmed
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/CountResponse'
x-solana-method: getBlockHeight
x-solana-docs: https://solana.com/docs/rpc/http/getblockheight
/getBlockProduction:
post:
operationId: getBlockProduction
summary: getBlockProduction
description: Returns recent block production information from the current or previous epoch.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getBlockProduction:
summary: Get recent block production information
value:
jsonrpc: '2.0'
id: 1
method: getBlockProduction
params: []
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/BlockProductionResponse'
x-solana-method: getBlockProduction
x-solana-docs: https://solana.com/docs/rpc/http/getblockproduction
/getBlocks:
post:
operationId: getBlocks
summary: getBlocks
description: Returns a list of confirmed blocks between two slots.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getBlocks:
summary: Get confirmed blocks in a slot range
value:
jsonrpc: '2.0'
id: 1
method: getBlocks
params:
- 5
- 10
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/SlotsListResponse'
x-solana-method: getBlocks
x-solana-docs: https://solana.com/docs/rpc/http/getblocks
/getBlocksWithLimit:
post:
operationId: getBlocksWithLimit
summary: getBlocksWithLimit
description: Returns a list of confirmed blocks starting at the given slot.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getBlocksWithLimit:
summary: Get a limited list of blocks starting at a slot
value:
jsonrpc: '2.0'
id: 1
method: getBlocksWithLimit
params:
- 5
- 3
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/SlotsListResponse'
x-solana-method: getBlocksWithLimit
x-solana-docs: https://solana.com/docs/rpc/http/getblockswithlimit
/getBlockTime:
post:
operationId: getBlockTime
summary: getBlockTime
description: Returns the estimated production time of a confirmed block.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getBlockTime:
summary: Get estimated production time for a confirmed block
value:
jsonrpc: '2.0'
id: 1
method: getBlockTime
params:
- 5
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/UnixTimestampResponse'
x-solana-method: getBlockTime
x-solana-docs: https://solana.com/docs/rpc/http/getblocktime
/getFirstAvailableBlock:
post:
operationId: getFirstAvailableBlock
summary: getFirstAvailableBlock
description: Returns the slot of the lowest confirmed block that has not been purged from the ledger.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getFirstAvailableBlock:
summary: Get lowest available block on the ledger
value:
jsonrpc: '2.0'
id: 1
method: getFirstAvailableBlock
params: []
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/CountResponse'
x-solana-method: getFirstAvailableBlock
x-solana-docs: https://solana.com/docs/rpc/http/getfirstavailableblock
/getRecentPerformanceSamples:
post:
operationId: getRecentPerformanceSamples
summary: getRecentPerformanceSamples
description: Returns a list of recent performance samples, in reverse slot order. Performance samples are taken every 60 seconds and include the number of transactions and slots that occur in a given time window.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getRecentPerformanceSamples:
summary: Get recent performance samples
value:
jsonrpc: '2.0'
id: 1
method: getRecentPerformanceSamples
params:
- 4
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/PerformanceSamplesResponse'
x-solana-method: getRecentPerformanceSamples
x-solana-docs: https://solana.com/docs/rpc/http/getrecentperformancesamples
/minimumLedgerSlot:
post:
operationId: minimumLedgerSlot
summary: minimumLedgerSlot
description: Returns the lowest slot that the node has information about in its ledger.
tags:
- Blocks
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
minimumLedgerSlot:
summary: Get minimum slot the node retains
value:
jsonrpc: '2.0'
id: 1
method: minimumLedgerSlot
params: []
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/CountResponse'
x-solana-method: minimumLedgerSlot
x-solana-docs: https://solana.com/docs/rpc/http/minimumledgerslot
components:
schemas:
UnixTimestampResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type: integer
format: int64
nullable: true
description: Estimated production time as Unix timestamp (seconds since epoch)
error:
$ref: '#/components/schemas/JsonRpcError'
SlotsListResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type: array
items:
type: integer
format: int64
description: List of confirmed slot numbers
error:
$ref: '#/components/schemas/JsonRpcError'
BlockProductionResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type: object
properties:
context:
$ref: '#/components/schemas/RpcContext'
value:
type: object
properties:
byIdentity:
type: object
additionalProperties:
type: array
items:
type: integer
format: int64
description: Dictionary of validator identities to [numLeaderSlots, numBlocksProduced]
range:
type: object
properties:
firstSlot:
type: integer
format: int64
lastSlot:
type: integer
format: int64
error:
$ref: '#/components/schemas/JsonRpcError'
CountResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type: integer
format: int64
description: Numeric count or slot value
error:
$ref: '#/components/schemas/JsonRpcError'
BlockResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
nullable: true
type: object
properties:
blockhash:
type: string
description: Base58-encoded blockhash of this block
previousBlockhash:
type: string
description: Base58-encoded blockhash of the parent block
parentSlot:
type: integer
format: int64
description: The slot index of this block's parent
transactions:
type: array
items:
type: object
signatures:
type: array
items:
type: string
rewards:
type: array
nullable: true
items:
type: object
properties:
pubkey:
type: string
lamports:
type: integer
format: int64
postBalance:
type: integer
format: int64
rewardType:
type: string
enum:
- fee
- rent
- voting
- staking
blockTime:
type: integer
format: int64
nullable: true
blockHeight:
type: integer
format: int64
nullable: true
error:
$ref: '#/components/schemas/JsonRpcError'
RpcContext:
type: object
properties:
slot:
type: integer
format: int64
description: The slot at which the operation was evaluated
PerformanceSamplesResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type: array
items:
type: object
properties:
slot:
type: integer
format: int64
description: Slot in which sample was taken at
numTransactions:
type: integer
format: int64
description: Number of transactions in sample
numNonVoteTransactions:
type: integer
format: int64
description: Number of non-vote transactions in sample
numSlots:
type: integer
format: int64
description: Number of slots in sample
samplePeriodSecs:
type: integer
description: Number of seconds in a sample window
error:
$ref: '#/components/schemas/JsonRpcError'
BlockCommitmentResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type: object
properties:
commitment:
type: array
nullable: true
items:
type: integer
format: int64
description: Commitment array or null if block is unknown
totalStake:
type: integer
format: int64
description: Total active stake in the current epoch
error:
$ref: '#/components/schemas/JsonRpcError'
JsonRpcError:
type: object
properties:
code:
type: integer
description: Error code
message:
type: string
description: Human-readable error message
data:
description: Additional error data
JsonRpcRequest:
type: object
required:
- jsonrpc
- id
- method
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: JSON-RPC protocol version
example: '2.0'
id:
oneOf:
- type: integer
- type: string
description: Client-provided identifier for the request
example: 1
method:
type: string
description: The JSON-RPC method name
example: getBalance
params:
type: array
description: Method-specific parameters
items:
oneOf:
- type: string
- type: integer
- type: boolean
- type: object
- type: array
items: {}
externalDocs:
description: Solana RPC HTTP Methods Documentation
url: https://solana.com/docs/rpc/http