Blockchain.com Solana API

SOL blockchain endpoints

Operations 7

POST /x402/sol/blocks Get latest blocks (paid via x402) #
POST /x402/sol/block Get block by slot (paid via x402) #
POST /x402/sol/transaction Get parsed transaction with movements (paid via x402) #
POST /x402/sol/transaction/instructions Get parsed transaction with unpacked instructions (paid via x402) #
POST /x402/sol/transaction/raw Get raw Solana RPC transaction response (paid via x402) #
POST /x402/sol/address Get address info and recent transactions (paid via x402) #
POST /x402/sol/address/tokens Get token balances for an address (paid via x402) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/blockchain-7-solana-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

blockchain-7-solana-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Blockchain 7 Solana API
  version: 1.0.0
  contact:
    email: api@blockchain.com
  x-guidance: Free endpoints under /public/* return blockchain explorer data (Solana, Bitcoin, Bitcoin Cash and Ethereum blocks, transactions, addresses and token balances) plus Bitcoin network charts, no payment required. Every endpoint also has an AI-agent-facing, pay-per-call mirror under /public/x402/* with an identical request/response shape, gated by x402 payment (see each paid operation's x-payment-info and 402 response). Use the free path for normal API access; use the x402/ path when paying per-request as an autonomous agent.
  description: 'Operations tagged Solana across 2 of this provider''s published API definitions: blockchain-7-api-ucp.json, blockchain-7-api-acp.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.blockchain.info/explorer-gateway-kt
security:
- ApiKeyAuth: []
- {}
tags:
- name: Solana
  description: SOL blockchain endpoints
paths:
  /x402/sol/blocks:
    post:
      summary: Get latest blocks (paid via x402)
      operationId: getLatestBlocksX402
      x-x402-price: 2000
      tags:
      - Solana
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetLatestBlocksRequest'
            example:
              network: SOL
              limit: 10
      responses:
        '200':
          description: Latest blocks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLatestBlocksResponse'
        '500':
          $ref: '#/components/responses/Error'
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.002000'
        protocols:
        - x402: {}
    servers:
    - url: https://api.blockchain.info/explorer-gateway-kt
  /x402/sol/block:
    post:
      summary: Get block by slot (paid via x402)
      operationId: getBlockX402
      x-x402-price: 3000
      tags:
      - Solana
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetBlockRequest'
            example:
              network: SOL
              blockId: 280000000
      responses:
        '200':
          description: Block details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBlockResponse'
        '500':
          $ref: '#/components/responses/Error'
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.003000'
        protocols:
        - x402: {}
    servers:
    - url: https://api.blockchain.info/explorer-gateway-kt
  /x402/sol/transaction:
    post:
      summary: Get parsed transaction with movements (paid via x402)
      operationId: getTransactionX402
      x-x402-price: 1000
      tags:
      - Solana
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetTransactionRequest'
            example:
              network: SOL
              txId: 4SMDZ7oiVvTyae1FrH2a4Li3hNNigZzc4s7QPiiGHk9xDsoSTPFbUSrV5KcRSDesj2BE11gvq8ua4DL3f5HFKxaW
      responses:
        '200':
          description: Parsed transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionResponse'
        '500':
          $ref: '#/components/responses/Error'
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.001000'
        protocols:
        - x402: {}
    servers:
    - url: https://api.blockchain.info/explorer-gateway-kt
  /x402/sol/transaction/instructions:
    post:
      summary: Get parsed transaction with unpacked instructions (paid via x402)
      operationId: getTransactionInstructionsX402
      x-x402-price: 1500
      tags:
      - Solana
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetTransactionRequest'
            example:
              network: SOL
              txId: 4SMDZ7oiVvTyae1FrH2a4Li3hNNigZzc4s7QPiiGHk9xDsoSTPFbUSrV5KcRSDesj2BE11gvq8ua4DL3f5HFKxaW
      responses:
        '200':
          description: Parsed transaction with instructions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionInstructionsResponse'
        '404':
          $ref: '#/components/responses/Error'
        '500':
          $ref: '#/components/responses/Error'
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.001500'
        protocols:
        - x402: {}
    servers:
    - url: https://api.blockchain.info/explorer-gateway-kt
  /x402/sol/transaction/raw:
    post:
      summary: Get raw Solana RPC transaction response (paid via x402)
      operationId: getTransactionRawX402
      x-x402-price: 1000
      tags:
      - Solana
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetTransactionRequest'
            example:
              network: SOL
              txId: 4SMDZ7oiVvTyae1FrH2a4Li3hNNigZzc4s7QPiiGHk9xDsoSTPFbUSrV5KcRSDesj2BE11gvq8ua4DL3f5HFKxaW
      responses:
        '200':
          description: Raw Solana transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RawTransaction'
        '500':
          $ref: '#/components/responses/Error'
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.001000'
        protocols:
        - x402: {}
    servers:
    - url: https://api.blockchain.info/explorer-gateway-kt
  /x402/sol/address:
    post:
      summary: Get address info and recent transactions (paid via x402)
      operationId: getAddressX402
      x-x402-price: 1500
      tags:
      - Solana
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetAddressRequest'
            example:
              network: SOL
              address: 4Qkev8aNZcqFNSRkR37YKd3MagFStkvv9k8gqn87gSo
              limit: 10
      responses:
        '200':
          description: Address details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAddressResponse'
        '500':
          $ref: '#/components/responses/Error'
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.001500'
        protocols:
        - x402: {}
    servers:
    - url: https://api.blockchain.info/explorer-gateway-kt
  /x402/sol/address/tokens:
    post:
      summary: Get token balances for an address (paid via x402)
      operationId: getAddressTokensX402
      x-x402-price: 1000
      tags:
      - Solana
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetAddressTokensRequest'
            example:
              network: SOL
              address: 4Qkev8aNZcqFNSRkR37YKd3MagFStkvv9k8gqn87gSo
      responses:
        '200':
          description: Token balances for the address
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAddressTokensResponse'
        '500':
          $ref: '#/components/responses/Error'
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.001000'
        protocols:
        - x402: {}
    servers:
    - url: https://api.blockchain.info/explorer-gateway-kt
components:
  schemas:
    RawTransaction:
      type: object
      required:
      - transaction
      - meta
      properties:
        version:
          nullable: true
          description: '"legacy", or a numeric version (0 = v0, 1 = v1, mainnet since epoch 1035)'
          oneOf:
          - type: string
          - type: integer
          example: 0
        transaction:
          type: object
          properties:
            signatures:
              type: array
              items:
                type: string
            message:
              type: object
              properties:
                accountKeys:
                  type: array
                  items:
                    type: string
                instructions:
                  type: array
                  items:
                    type: object
                    properties:
                      accounts:
                        type: array
                        items:
                          type: integer
                      data:
                        type: string
                      programIdIndex:
                        type: integer
                      stackHeight:
                        type: integer
                        nullable: true
                transactionConfig:
                  type: object
                  nullable: true
                  description: 'Present only on Solana v1 transactions (SIMD-0296/SIMD-0385, mainnet since epoch 1035). Replaces the legacy/v0 ComputeBudget111... instructions and holds the effective compute budget configuration for the transaction. When it is present, any ComputeBudget111... instruction still carried in the message is a no-op ignored by the runtime.

                    '
                  properties:
                    computeUnitLimit:
                      type: integer
                      format: int64
                      nullable: true
                    heapSize:
                      type: integer
                      format: int64
                      nullable: true
                    loadedAccountsDataSizeLimit:
                      type: integer
                      format: int64
                      nullable: true
                    priorityFee:
                      type: integer
                      format: int64
                      nullable: true
                      description: Absolute lamports (not micro-lamports per compute unit, unlike v0's SetComputeUnitPrice).
        meta:
          type: object
          properties:
            fee:
              type: integer
              format: int64
            preBalances:
              type: array
              items:
                type: integer
                format: int64
            postBalances:
              type: array
              items:
                type: integer
                format: int64
            preTokenBalances:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/TokenBalance'
            postTokenBalances:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/TokenBalance'
            loadedAddresses:
              nullable: true
              type: object
              properties:
                writable:
                  type: array
                  items:
                    type: string
                readonly:
                  type: array
                  items:
                    type: string
            err:
              nullable: true
        blockTime:
          type: integer
          format: int64
          nullable: true
        slot:
          type: integer
          format: int64
          nullable: true
    GetTransactionRequest:
      type: object
      required:
      - network
      - txId
      properties:
        network:
          type: string
          example: SOL
        txId:
          type: string
    GetLatestBlocksResponse:
      type: object
      required:
      - currentBlockId
      - blocks
      properties:
        currentBlockId:
          type: integer
          format: int64
        blocks:
          type: array
          items:
            $ref: '#/components/schemas/BlockSummary'
    GetTransactionInstructionsResponse:
      type: object
      required:
      - instructions
      properties:
        instructions:
          type: array
          items:
            $ref: '#/components/schemas/ParsedInstruction'
    Movement:
      type: object
      required:
      - identifier
      - address
      - amount
      - type
      properties:
        identifier:
          type: string
          description: '"native" for SOL, mint address for SPL tokens'
          example: native
        symbol:
          type: string
          nullable: true
          description: Token symbol (e.g. "SOL", "USDC"); null if unknown
          example: SOL
        address:
          type: string
        amount:
          type: string
          description: Absolute amount in base units (lamports / token decimals)
        type:
          type: string
          enum:
          - sent
          - received
    ErrorResponse:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
              example: FETCH_ERROR
            message:
              type: string
              example: Transaction not found
    GetBlockRequest:
      type: object
      required:
      - network
      - blockId
      properties:
        network:
          type: string
          example: SOL
        blockId:
          type: integer
          format: int64
    GetAddressResponse:
      type: object
      required:
      - address
      - balance
      - transactions
      properties:
        address:
          type: string
        balance:
          type: integer
          format: int64
          description: Balance in lamports
        owner:
          type: string
          nullable: true
          description: Program that owns this account
        executable:
          type: boolean
          nullable: true
        rentEpoch:
          type: integer
          format: int64
          nullable: true
          description: Next epoch when rent is due; null means rent-exempt
        space:
          type: integer
          format: int64
          nullable: true
          description: Account data size in bytes
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/AddressTransaction'
        nextPageCursor:
          type: string
          nullable: true
          description: Pass as "before" in the next request to fetch older transactions; null means no more pages
    ParsedInstruction:
      type: object
      required:
      - programId
      - accounts
      - data
      properties:
        programId:
          type: string
          description: Program account address
        programName:
          type: string
          nullable: true
          description: Human-readable program name (e.g. "System Program", "SPL Token")
        instructionType:
          type: string
          nullable: true
          description: 'Decoded instruction type (e.g. "Transfer", "InitializeAccount"). "TransactionConfig" marks the synthetic entry carrying the effective v1 compute budget; "NoOp" marks a ComputeBudget111... instruction that the runtime ignored because transactionConfig supersedes it.

            '
        accounts:
          type: array
          items:
            type: string
          description: Ordered list of account addresses involved in the instruction
        data:
          type: string
          description: Raw instruction data in base58
        parsed:
          type: object
          nullable: true
          additionalProperties:
            type: string
          description: Key-value pairs decoded from instruction data; keys vary by instructionType
    BlockReward:
      type: object
      required:
      - pubkey
      - amount
      properties:
        pubkey:
          type: string
        amount:
          type: integer
          format: int64
          description: Amount in lamports
        rewardType:
          type: string
          nullable: true
          example: Fee
    BlockSummary:
      type: object
      required:
      - blockId
      - hash
      - transactionCount
      - parentBlockId
      - totalRewards
      properties:
        blockId:
          type: integer
          format: int64
        hash:
          type: string
        timestamp:
          type: integer
          format: int64
          nullable: true
        height:
          type: integer
          format: int64
          nullable: true
        transactionCount:
          type: integer
        parentBlockId:
          type: integer
          format: int64
        totalRewards:
          type: integer
          format: int64
          description: Sum of all reward lamports distributed in this block
    GetBlockResponse:
      type: object
      required:
      - blockId
      - hash
      - parentHash
      - parentBlockId
      - transactionCount
      - successfulTransactionCount
      - totalAmountSent
      - transactions
      - rewards
      - totalComputeUnitsConsumed
      - transactionCostUtilization
      - reservedComputeUnits
      - reservedComputeUnitsUtilization
      - epoch
      properties:
        blockId:
          type: integer
          format: int64
        hash:
          type: string
        parentHash:
          type: string
        parentBlockId:
          type: integer
          format: int64
        timestamp:
          type: integer
          format: int64
          nullable: true
        height:
          type: integer
          format: int64
          nullable: true
        transactionCount:
          type: integer
        successfulTransactionCount:
          type: integer
        totalAmountSent:
          type: integer
          format: int64
          description: Sum of all outgoing lamports in successful transactions
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/GetTransactionResponse'
        rewards:
          type: array
          items:
            $ref: '#/components/schemas/BlockReward'
        totalComputeUnitsConsumed:
          type: integer
          format: int64
          description: Sum of compute units consumed by all transactions in the block
        transactionCostUtilization:
          type: number
          format: double
          description: 'Percentage of the block compute limit consumed (0–100+). Limit is epoch-dependent: <770 → 48M, 770–821 → 50M, ≥822 → 60M CU'
          example: 46.1
        reservedComputeUnits:
          type: integer
          format: int64
          description: 'Sum of compute unit limits requested by all transactions - from transactionConfig.computeUnitLimit on v1 transactions, or ComputeBudget::SetComputeUnitLimit on legacy/v0 transactions. A transaction that declares neither is estimated per instruction (3,000 CU per builtin, 200,000 per SBF program, capped at 1,400,000 per tx). Can exceed the block limit.

            '
        reservedComputeUnitsUtilization:
          type: number
          format: double
          description: Percentage of the block compute limit reserved by all transactions (reservedComputeUnits / blockComputeLimit * 100)
          example: 52.3
        epoch:
          type: integer
          format: int64
          description: Solana epoch this block belongs to (slot / 432,000)
    GetAddressTokensRequest:
      type: object
      required:
      - network
      - address
      properties:
        network:
          type: string
          example: SOL
        address:
          type: string
    GetLatestBlocksRequest:
      type: object
      required:
      - network
      properties:
        network:
          type: string
          example: SOL
        limit:
          type: integer
          default: 10
          minimum: 1
          maximum: 20
    GetTransactionResponse:
      type: object
      required:
      - txId
      - status
      - movements
      - computeUnitsConsumed
      - reservedComputeUnits
      - computeUnitsUtilization
      properties:
        txId:
          type: string
        blockId:
          type: integer
          format: int64
          nullable: true
        timestamp:
          type: integer
          format: int64
          nullable: true
        fee:
          type: integer
          format: int64
          nullable: true
        status:
          type: string
          enum:
          - success
          - failed
        feePayer:
          type: string
          nullable: true
        movements:
          type: array
          items:
            $ref: '#/components/schemas/Movement'
        computeUnitsConsumed:
          type: integer
          format: int64
          description: Actual compute units consumed by this transaction
        reservedComputeUnits:
          type: integer
          format: int64
          description: 'Requested compute unit limit - from transactionConfig.computeUnitLimit on v1 transactions, or ComputeBudget::SetComputeUnitLimit on legacy/v0 transactions (defaults to a builtin/SBF heuristic if neither is set)

            '
        computeUnitsUtilization:
          type: number
          format: double
          description: Percentage of reserved compute units actually consumed (computeUnitsConsumed / reservedComputeUnits * 100)
          example: 75.3
        version:
          type: string
          nullable: true
          description: '"legacy", "0" (v0), or "1" (v1, mainnet since epoch 1035). Null if the RPC response omitted it.'
          example: '0'
    TokenBalance:
      type: object
      required:
      - accountIndex
      - mint
      - uiTokenAmount
      properties:
        accountIndex:
          type: integer
        mint:
          type: string
        owner:
          type: string
          nullable: true
        programId:
          type: string
          nullable: true
        uiTokenAmount:
          type: object
          properties:
            amount:
              type: string
            decimals:
              type: integer
            uiAmountString:
              type: string
    AddressTransaction:
      type: object
      required:
      - txId
      - blockId
      properties:
        txId:
          type: string
        blockId:
          type: integer
          format: int64
        timestamp:
          type: integer
          format: int64
          nullable: true
        confirmationStatus:
          type: string
          nullable: true
          enum:
          - processed
          - confirmed
          - finalized
        memo:
          type: string
          nullable: true
        feePayer:
          type: string
          nullable: true
        fee:
          type: integer
          format: int64
          nullable: true
        status:
          type: string
          nullable: true
          enum:
          - success
          - failed
    GetAddressRequest:
      type: object
      required:
      - network
      - address
      properties:
        network:
          type: string
          example: SOL
        address:
          type: string
        limit:
          type: integer
          default: 10
          minimum: 1
          maximum: 50
        before:
          type: string
          nullable: true
          description: Transaction signature cursor — returns transactions older than this value
    TokenAccount:
      type: object
      required:
      - wallet
      - mint
      - balance
      - decimals
      properties:
        wallet:
          type: string
          description: Token account address
        mint:
          type: string
          description: Token mint address
        balance:
          type: string
          description: Raw token balance in base units
        decimals:
          type: integer
        symbol:
          type: string
          nullable: true
        uri:
          type: string
          nullable: true
          description: Metadata URI for the token (e.g. link to JSON with name/image)
    GetAddressTokensResponse:
      type: object
      required:
      - tokens
      properties:
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/TokenAccount'
  responses:
    Error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Explorer-Auth-Key
      description: Optional. Provide your Explorer API key in the `X-Explorer-Auth-Key` header. Requests sent without a key use the default (unauthenticated) rate limits.
x-refined-from:
- blockchain-7-api-ucp.json
- blockchain-7-api-acp.json