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.
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
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