Chainstack Solana Node API

Chainstack-managed Solana JSON-RPC nodes (mainnet, devnet, testnet) covering 52+ documented RPC methods plus Yellowstone gRPC Geyser plugin for real-time account, transaction, and slot streaming. Trader Node available for low-latency mempool access.

OpenAPI Specification

chainstack-solana-node-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Chainstack Solana Node API
  version: 1.0.0
  description: Chainstack-managed RPC node API for the Solana blockchain. Endpoints follow the canonical JSON-RPC over HTTPS
    interface for the network. Authenticate against your Chainstack node's per-node URL (e.g. https://nd-XXX-XXX-XXX.p2pify.com/<key>).
    Merged from the Chainstack Developer Portal per-method fragments at https://github.com/chainstack/dev-portal/tree/main/openapi/solana_node_api.
  contact:
    name: Chainstack API Support
    email: [email protected]
  license:
    name: Chainstack Terms
    url: https://chainstack.com/terms-of-service/
servers:
- url: https://{node_id}.p2pify.com/{api_key}
  description: Chainstack-managed node endpoint
  variables:
    node_id:
      default: nd-000-000-000
      description: Your Chainstack node identifier
    api_key:
      default: <api-key>
      description: Per-node access key
tags:
- name: General
paths:
  /getAccountInfo:
    post:
      tags:
      - General
      summary: getAccountInfo
      operationId: getAccountInfo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getAccountInfo
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      description: The public key of the account
                      default: 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
                    - type: object
                      properties:
                        encoding:
                          type: string
                          default: jsonParsed
                        commitment:
                          type: string
                          default: finalized
                  default:
                  - 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
                  - encoding: jsonParsed
                    commitment: finalized
      responses:
        '200':
          description: Account information
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /getBalance:
    post:
      tags:
      - General
      summary: getBalance
      operationId: getBalance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getBalance
                params:
                  type: array
                  items:
                    type: string
                    description: The public key of the account
                    default: 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
                  default:
                  - 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
      responses:
        '200':
          description: Account balance
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /getBlock:
    post:
      tags:
      - General
      summary: getBlock
      operationId: getBlock
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getBlock
                params:
                  type: array
                  items:
                    oneOf:
                    - type: integer
                      description: The slot of the block
                      default: 239462061
                    - type: object
                      properties:
                        encoding:
                          type: string
                          default: jsonParsed
                        maxSupportedTransactionVersion:
                          type: integer
                          default: 0
                  default:
                  - 239462061
                  - encoding: jsonParsed
                    maxSupportedTransactionVersion: 0
      responses:
        '200':
          description: Block details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /getBlockCommitment:
    post:
      tags:
      - General
      summary: getBlockCommitment
      operationId: getBlockCommitment
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getBlockCommitment
                params:
                  type: array
                  items:
                    type: integer
                    description: The slot of the block
                    default: 166974442
                  default:
                  - 166974442
      responses:
        '200':
          description: Block commitment details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /getBlockHeight:
    post:
      tags:
      - General
      summary: getBlockHeight
      operationId: getBlockHeight
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getBlockHeight
      responses:
        '200':
          description: Block height
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: integer
  /getBlockProduction:
    post:
      tags:
      - General
      summary: getBlockProduction
      operationId: getBlockProduction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getBlockProduction
      responses:
        '200':
          description: Block production details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
  /getBlockTime:
    post:
      tags:
      - General
      summary: getBlockTime
      operationId: getBlockTime
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getBlockTime
                params:
                  type: array
                  items:
                    type: integer
                    description: The slot of the block
                    default: 166974442
                  default:
                  - 166974442
      responses:
        '200':
          description: Block time details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: integer
  /getBlocks:
    post:
      tags:
      - General
      summary: getBlocks
      operationId: getBlocks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getBlocks
                params:
                  type: array
                  items:
                    type: integer
                    description: The start slot of the blocks
                    default: 166974442
                  default:
                  - 166974442
      responses:
        '200':
          description: Blocks details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: array
                    items:
                      type: integer
  /getBlocksWithLimit:
    post:
      tags:
      - General
      summary: getBlocksWithLimit
      operationId: getBlocksWithLimit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getBlocksWithLimit
                params:
                  type: array
                  items:
                    type: integer
                    description: The start slot of the blocks and the maximum number of blocks
                    default: 166974442
                  default:
                  - 166974442
                  - 100
      responses:
        '200':
          description: Blocks details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: array
                    items:
                      type: integer
  /getClusterNodes:
    post:
      tags:
      - General
      summary: getClusterNodes
      operationId: getClusterNodes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getClusterNodes
      responses:
        '200':
          description: Cluster nodes details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        pubkey:
                          type: string
                        gossip:
                          type: string
                        tpu:
                          type: string
                        rpc:
                          type: string
                        version:
                          type: string
  /getEpochInfo:
    post:
      tags:
      - General
      summary: getEpochInfo
      operationId: getEpochInfo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getEpochInfo
      responses:
        '200':
          description: Epoch info details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    properties:
                      absoluteSlot:
                        type: integer
                      blockHeight:
                        type: integer
                      epoch:
                        type: integer
                      slotIndex:
                        type: integer
                      slotsInEpoch:
                        type: integer
  /getEpochSchedule:
    post:
      tags:
      - General
      summary: getEpochSchedule
      operationId: getEpochSchedule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getEpochSchedule
      responses:
        '200':
          description: Epoch schedule details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    properties:
                      slotsPerEpoch:
                        type: integer
                      leaderScheduleSlotOffset:
                        type: integer
                      warmup:
                        type: boolean
                      firstNormalEpoch:
                        type: integer
                      firstNormalSlot:
                        type: integer
  /getFeeForMessage:
    post:
      tags:
      - General
      summary: getFeeForMessage
      operationId: getFeeForMessage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getFeeForMessage
                params:
                  type: array
                  items:
                    anyOf:
                    - type: string
                      description: The serialized message
                      default: AQABA36MCIdgv94d3c8ywX8gm4JC7lKq8TH6zYjQ6ixtCwbyhwEgP0xzGjSa7QhxjYGUHwUPDgYsz9S8Mb/9c7ejFiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOnEi/spkCilDriqSI6o2AneB2xk65o4Xm9EM+yGyiPAQICAAEMAgAAAADKmjsAAAAA
                    - type: object
                      properties:
                        commitment:
                          type: string
                          default: finalized
                  default:
                  - AQABA36MCIdgv94d3c8ywX8gm4JC7lKq8TH6zYjQ6ixtCwbyhwEgP0xzGjSa7QhxjYGUHwUPDgYsz9S8Mb/9c7ejFiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOnEi/spkCilDriqSI6o2AneB2xk65o4Xm9EM+yGyiPAQICAAEMAgAAAADKmjsAAAAA
                  - commitment: finalized
      responses:
        '200':
          description: Fee details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: integer
  /getFirstAvailableBlock:
    post:
      tags:
      - General
      summary: getFirstAvailableBlock
      operationId: getFirstAvailableBlock
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getFirstAvailableBlock
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: First available block details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: integer
  /getGenesisHash:
    post:
      tags:
      - General
      summary: getGenesisHash
      operationId: getGenesisHash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getGenesisHash
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: Genesis hash details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
  /getHealth:
    post:
      tags:
      - General
      summary: getHealth
      operationId: getHealth
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getHealth
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: Node health status
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: string
                    description: Returns 'ok' if the node is healthy
  /getHighestSnapshotSlot:
    post:
      tags:
      - General
      summary: getHighestSnapshotSlot
      operationId: getHighestSnapshotSlot
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getHighestSnapshotSlot
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: Highest snapshot slot details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: integer
  /getIdentity:
    post:
      tags:
      - General
      summary: getIdentity
      operationId: getIdentity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getIdentity
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: Identity details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    properties:
                      identity:
                        type: string
  /getInflationGovernor:
    post:
      tags:
      - General
      summary: getInflationGovernor
      operationId: getInflationGovernor
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getInflationGovernor
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: Inflation governor details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    properties:
                      foundation:
                        type: number
                      foundationTerm:
                        type: number
                      initial:
                        type: number
                      taper:
                        type: number
                      terminal:
                        type: number
  /getInflationRate:
    post:
      tags:
      - General
      summary: getInflationRate
      operationId: getInflationRate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getInflationRate
                params:
                  type: array
                  default: []
      responses:
        '200':
          description: Inflation rate details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    properties:
                      epoch:
                        type: integer
                      foundation:
                        type: number
                      total:
                        type: number
                      validator:
                        type: number
  /getInflationReward:
    post:
      tags:
      - General
      summary: getInflationReward
      operationId: getInflationReward
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getInflationReward
                params:
                  type: array
                  default:
                  - - 6D2jqw9hyVCpppZexquxa74Fn33rJzzBx38T58VucHx9
                  - epoch: 554
      responses:
        '200':
          description: Inflation reward details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        epoch:
                          type: integer
                        effectiveSlot:
                          type: integer
                        amount:
                          type: integer
                        postBalance:
                          type: integer
  /getLargestAccounts:
    post:
      tags:
      - General
      summary: getLargestAccounts
      operationId: getLargestAccounts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getLargestAccounts
                params:
                  type: array
                  items:
                    type: object
                    properties:
                      filter:
                        type: string
                        default: circulating
      responses:
        '200':
          description: Largest accounts details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        lamports:
                          type: integer
                        address:
                          type: string
  /getLatestBlockhash:
    post:
      tags:
      - General
      summary: getLatestBlockhash
      operationId: getLatestBlockhash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getLatestBlockhash
                params:
                  type: array
      responses:
        '200':
          description: Latest blockhash details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    properties:
                      blockhash:
                        type: string
                      feeCalculator:
                        type: object
                        properties:
                          lamportsPerSignature:
                            type: integer
  /getLeaderSchedule:
    post:
      tags:
      - General
      summary: getLeaderSchedule
      operationId: getLeaderSchedule
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getLeaderSchedule
                params:
                  type: array
      responses:
        '200':
          description: Leader schedule details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: integer
  /getMaxRetransmitSlot:
    post:
      tags:
      - General
      summary: getMaxRetransmitSlot
      operationId: getMaxRetransmitSlot
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: getMaxRetransmitSlot
                params:
                  type: array
      responses:
        '200':
          description: Max retransmit slot details
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: integer
  /getMaxShredInsertSlot:
    post:
      tags:
      - General
      summary: getMaxShredInsertSlot
      operationId: g

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/chainstack/refs/heads/main/openapi/chainstack-solana-node-api-openapi.yml