Solana Transactions API
Methods for sending, simulating, and querying transactions
Methods for sending, simulating, and querying transactions
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/solana-transactions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Solana JSON-RPC Accounts Transactions 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: Transactions
description: Methods for sending, simulating, and querying transactions
paths:
/sendTransaction:
post:
operationId: sendTransaction
summary: sendTransaction
description: Submits a signed transaction to the cluster for processing. This method does not alter the transaction in any way; it relays the transaction created by clients to the node as-is.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
sendTransaction:
summary: Send a signed transaction
value:
jsonrpc: '2.0'
id: 1
method: sendTransaction
params:
- 4hXTCkRzt9WyecNzV1XPgCDfGAZzQKNxLXgynz5QDuWWPSAZBZSHptvWRL3BjCvzUXRdKvHL2b7yGrRQcWyaqsaBCncVG7BFqseSr4sQs3GT
- encoding: base58
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionSignatureResponse'
x-solana-method: sendTransaction
x-solana-docs: https://solana.com/docs/rpc/http/sendtransaction
/simulateTransaction:
post:
operationId: simulateTransaction
summary: simulateTransaction
description: Simulate sending a transaction. Returns simulated transaction results including logs and account state changes without broadcasting to the network.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
simulateTransaction:
summary: Simulate a transaction without broadcasting
value:
jsonrpc: '2.0'
id: 1
method: simulateTransaction
params:
- 4hXTCkRzt9WyecNzV1XPgCDfGAZzQKNxLXgynz5QDuWWPSAZBZSHptvWRL3BjCvzUXRdKvHL2b7yGrRQcWyaqsaBCncVG7BFqseSr4sQs3GT
- sigVerify: true
commitment: finalized
encoding: base64
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/SimulateTransactionResponse'
x-solana-method: simulateTransaction
x-solana-docs: https://solana.com/docs/rpc/http/simulatetransaction
/getTransaction:
post:
operationId: getTransaction
summary: getTransaction
description: Returns transaction details for a confirmed transaction.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getTransaction:
summary: Get a transaction by its signature
value:
jsonrpc: '2.0'
id: 1
method: getTransaction
params:
- 2nBhEBYYvfaAe16UMNqRHre4YNSskvuYgx3M6E4JP1oDYvZEJHvoPzyUidNgNX5r9sTyzdqDT8yCJAKNUFGJMfmv
- encoding: jsonParsed
commitment: finalized
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionDetailResponse'
x-solana-method: getTransaction
x-solana-docs: https://solana.com/docs/rpc/http/gettransaction
/getSignaturesForAddress:
post:
operationId: getSignaturesForAddress
summary: getSignaturesForAddress
description: Returns confirmed signatures for transactions involving an address backwards in time from the provided signature or most recent confirmed block.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getSignaturesForAddress:
summary: Get transaction signatures for an address
value:
jsonrpc: '2.0'
id: 1
method: getSignaturesForAddress
params:
- Vote111111111111111111111111111111111111111p8bN
- limit: 10
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/SignaturesForAddressResponse'
x-solana-method: getSignaturesForAddress
x-solana-docs: https://solana.com/docs/rpc/http/getsignaturesforaddress
/getSignatureStatuses:
post:
operationId: getSignatureStatuses
summary: getSignatureStatuses
description: Returns the statuses of a list of signatures. Unless the searchTransactionHistory configuration parameter is included, this method only searches the recent status cache of signatures, which retains statuses for all active slots plus MAX_RECENT_BLOCKHASHES rooted slots.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getSignatureStatuses:
summary: Get confirmation statuses for multiple signatures
value:
jsonrpc: '2.0'
id: 1
method: getSignatureStatuses
params:
- - 5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW
- 5j7s6NiJS3JAkvgkoc18WVAsiSaci2pxB2A6ueCJP4tprA2TFg9wSyTLeYouxPBJEMzJinENTkpA52YStRW5Dia7
- searchTransactionHistory: true
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/SignatureStatusesResponse'
x-solana-method: getSignatureStatuses
x-solana-docs: https://solana.com/docs/rpc/http/getsignaturestatuses
/getFeeForMessage:
post:
operationId: getFeeForMessage
summary: getFeeForMessage
description: Get the fee the network will charge for a particular Message.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getFeeForMessage:
summary: Get network fee for a message
value:
jsonrpc: '2.0'
id: 1
method: getFeeForMessage
params:
- AQABAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAA
- commitment: confirmed
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/FeeForMessageResponse'
x-solana-method: getFeeForMessage
x-solana-docs: https://solana.com/docs/rpc/http/getfeeformessage
/getLatestBlockhash:
post:
operationId: getLatestBlockhash
summary: getLatestBlockhash
description: Returns the latest blockhash and last valid block height for a transaction.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getLatestBlockhash:
summary: Get the most recent blockhash
value:
jsonrpc: '2.0'
id: 1
method: getLatestBlockhash
params:
- commitment: processed
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/LatestBlockhashResponse'
x-solana-method: getLatestBlockhash
x-solana-docs: https://solana.com/docs/rpc/http/getlatestblockhash
/isBlockhashValid:
post:
operationId: isBlockhashValid
summary: isBlockhashValid
description: Returns whether a blockhash is still valid or has expired.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
isBlockhashValid:
summary: Check if a blockhash is still valid
value:
jsonrpc: '2.0'
id: 1
method: isBlockhashValid
params:
- J7rBdtiSetEfpFike1CT9hXP3icWT9QKe8BKA7qJt6eZ
- commitment: processed
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/BooleanResponse'
x-solana-method: isBlockhashValid
x-solana-docs: https://solana.com/docs/rpc/http/isblockhashvalid
/getRecentPrioritizationFees:
post:
operationId: getRecentPrioritizationFees
summary: getRecentPrioritizationFees
description: Returns a list of prioritization fees from recent blocks. Currently, a node's prioritization-fee cache stores data from up to 150 blocks.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getRecentPrioritizationFees:
summary: Get recent prioritization fees
value:
jsonrpc: '2.0'
id: 1
method: getRecentPrioritizationFees
params:
- - CxELquR1gPP8wHe33gZ4QxqGB3sZ9RSwsJ2KshVewkFY
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/PrioritizationFeesResponse'
x-solana-method: getRecentPrioritizationFees
x-solana-docs: https://solana.com/docs/rpc/http/getrecentprioritizationfees
/getTransactionCount:
post:
operationId: getTransactionCount
summary: getTransactionCount
description: Returns the current Transaction count from the ledger.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
getTransactionCount:
summary: Get total processed transaction count
value:
jsonrpc: '2.0'
id: 1
method: getTransactionCount
params: []
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/CountResponse'
x-solana-method: getTransactionCount
x-solana-docs: https://solana.com/docs/rpc/http/gettransactioncount
/requestAirdrop:
post:
operationId: requestAirdrop
summary: requestAirdrop
description: Requests an airdrop of lamports to a public key. Only available on Devnet and Testnet.
tags:
- Transactions
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/JsonRpcRequest'
examples:
requestAirdrop:
summary: Request 1 SOL airdrop on Devnet
value:
jsonrpc: '2.0'
id: 1
method: requestAirdrop
params:
- 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri
- 1000000000
responses:
'200':
description: Successful JSON-RPC response
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionSignatureResponse'
x-solana-method: requestAirdrop
x-solana-docs: https://solana.com/docs/rpc/http/requestairdrop
components:
schemas:
TransactionSignatureResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type: string
description: Transaction signature (base58-encoded)
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
PrioritizationFeesResponse:
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: The slot in which the fee was observed
prioritizationFee:
type: integer
format: int64
description: The per-compute-unit fee paid by at least one successfully landed transaction
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'
RpcContext:
type: object
properties:
slot:
type: integer
format: int64
description: The slot at which the operation was evaluated
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: {}
SimulateTransactionResponse:
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:
err:
description: Error if transaction failed
logs:
type:
- array
- 'null'
items:
type: string
description: Array of log messages the transaction instructions output
accounts:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/AccountInfo'
unitsConsumed:
type: integer
format: int64
description: Number of compute budget units consumed during processing
error:
$ref: '#/components/schemas/JsonRpcError'
BooleanResponse:
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: boolean
error:
$ref: '#/components/schemas/JsonRpcError'
FeeForMessageResponse:
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:
- integer
- 'null'
format: int64
description: Fee in lamports (null if blockhash has expired)
error:
$ref: '#/components/schemas/JsonRpcError'
LatestBlockhashResponse:
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:
blockhash:
type: string
description: Base58-encoded hash of the block
lastValidBlockHeight:
type: integer
format: int64
description: Last block height at which blockhash will be valid
error:
$ref: '#/components/schemas/JsonRpcError'
SignatureStatusesResponse:
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: array
items:
type:
- object
- 'null'
properties:
slot:
type: integer
format: int64
confirmations:
type:
- integer
- 'null'
description: Number of blocks since signature confirmation, null if rooted
err:
description: Error if transaction failed
confirmationStatus:
type:
- string
- 'null'
enum:
- processed
- confirmed
- finalized
error:
$ref: '#/components/schemas/JsonRpcError'
SignaturesForAddressResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type: array
items:
type: object
properties:
signature:
type: string
description: Base58-encoded transaction signature
slot:
type: integer
format: int64
description: The slot that contains the block with the transaction
err:
description: Error if transaction failed
memo:
type:
- string
- 'null'
description: Memo associated with the transaction
blockTime:
type:
- integer
- 'null'
format: int64
description: Estimated production time as Unix timestamp
confirmationStatus:
type:
- string
- 'null'
description: The transaction's cluster confirmation status
error:
$ref: '#/components/schemas/JsonRpcError'
TransactionDetailResponse:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
oneOf:
- type: integer
- type: string
result:
type:
- object
- 'null'
properties:
slot:
type: integer
format: int64
description: The slot this transaction was processed in
transaction:
type: object
description: Transaction object in requested encoding
blockTime:
type:
- integer
- 'null'
format: int64
description: Estimated production time as Unix timestamp
meta:
type:
- object
- 'null'
properties:
err: {}
fee:
type: integer
format: int64
description: Fee this transaction was charged, in lamports
preBalances:
type: array
items:
type: integer
format: int64
postBalances:
type: array
items:
type: integer
format: int64
logMessages:
type:
- array
- 'null'
items:
type: string
error:
$ref: '#/components/schemas/JsonRpcError'
AccountInfo:
type: object
properties:
lamports:
type: integer
format: int64
description: Number of lamports assigned to this account
owner:
type: string
description: Base58-encoded public key of the program that owns this account
data:
description: Data associated with the account (encoded or parsed)
oneOf:
- type: string
- type: array
items:
type: string
- type: object
executable:
type: boolean
description: Whether this account contains a program and is strictly read-only
rentEpoch:
type: integer
format: int64
description: The epoch at which this account will next owe rent
space:
type: integer
description: The data size of the account
externalDocs:
description: Solana RPC HTTP Methods Documentation
url: https://solana.com/docs/rpc/http