Skip to main content
This page documents the core HTTP JSON-RPC methods available in the Agave validator. All methods use JSON-RPC 2.0 specification over HTTP POST.

Account Methods

getAccountInfo

Returns account information for a given public key. Method: getAccountInfo
pubkey
string
required
Account public key as base-58 encoded string
config
object
Configuration object
encoding
string
Encoding format: base58, base64, base64+zstd, jsonParsed
dataSlice
object
Request a slice of account data
offset
integer
Byte offset to start slice
length
integer
Number of bytes to return
commitment
string
Commitment level: processed, confirmed, finalized (default: finalized)
minContextSlot
integer
Minimum slot to evaluate request
Response:
context
object
slot
integer
Slot number used for the query
value
object | null
Account information or null if account doesn’t exist
lamports
integer
Account balance in lamports
owner
string
Base-58 encoded public key of the program owner
data
array | string
Account data, format depends on encoding parameter
executable
boolean
Whether the account is executable
rentEpoch
integer
Epoch at which account will next owe rent
Request
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getAccountInfo",
  "params": [
    "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
    {
      "encoding": "base64"
    }
  ]
}'
Response
{
  "jsonrpc": "2.0",
  "result": {
    "context": {
      "slot": 123456789
    },
    "value": {
      "lamports": 1000000000,
      "owner": "11111111111111111111111111111111",
      "data": ["", "base64"],
      "executable": false,
      "rentEpoch": 361
    }
  },
  "id": 1
}

getBalance

Returns the lamport balance of an account. Method: getBalance
pubkey
string
required
Account public key as base-58 encoded string
config
object
Configuration object
commitment
string
Commitment level (default: finalized)
minContextSlot
integer
Minimum slot to evaluate request
Response:
context
object
slot
integer
Slot number used for the query
value
integer
Account balance in lamports
Request
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBalance",
  "params": [
    "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
  ]
}'
Response
{
  "jsonrpc": "2.0",
  "result": {
    "context": {
      "slot": 123456789
    },
    "value": 1000000000
  },
  "id": 1
}

Block Methods

getBlock

Returns identity and transaction information about a confirmed block. Method: getBlock
slot
integer
required
Slot number to query
config
object
Configuration object
encoding
string
Encoding for transaction data: json, jsonParsed, base58, base64 (default: json)
transactionDetails
string
Level of transaction detail: full, accounts, signatures, none (default: full)
rewards
boolean
Whether to populate rewards array (default: true)
commitment
string
Commitment level: confirmed, finalized (default: finalized)
maxSupportedTransactionVersion
integer
Max transaction version to return (0 for legacy only)
Response:
blockhash
string
Blockhash of this block
previousBlockhash
string
Blockhash of parent block
parentSlot
integer
Slot index of parent block
blockTime
integer | null
Estimated production time as Unix timestamp
blockHeight
integer
Number of blocks beneath this block
transactions
array
Array of transaction objects
rewards
array
Block rewards
Request
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlock",
  "params": [
    430,
    {
      "encoding": "json",
      "maxSupportedTransactionVersion": 0,
      "transactionDetails": "full",
      "rewards": false
    }
  ]
}'

getBlockHeight

Returns the current block height of the node. Method: getBlockHeight
config
object
Configuration object
commitment
string
Commitment level (default: finalized)
minContextSlot
integer
Minimum slot to evaluate request
Response:
result
integer
Current block height
Request
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getBlockHeight"
}'
Response
{
  "jsonrpc": "2.0",
  "result": 123456789,
  "id": 1
}

Transaction Methods

getTransaction

Returns transaction details for a confirmed transaction. Method: getTransaction
signature
string
required
Transaction signature as base-58 encoded string
config
object
Configuration object
encoding
string
Encoding for returned data: json, jsonParsed, base58, base64 (default: json)
commitment
string
Commitment level: confirmed, finalized (default: finalized)
maxSupportedTransactionVersion
integer
Max transaction version to return
Response:
slot
integer
Slot this transaction was processed in
transaction
object
Transaction object
blockTime
integer | null
Estimated production time as Unix timestamp
meta
object | null
Transaction status metadata
err
object | null
Error if transaction failed, null if succeeded
fee
integer
Fee in lamports
preBalances
array
Array of account balances before transaction
postBalances
array
Array of account balances after transaction
logMessages
array
Array of log messages
Request
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getTransaction",
  "params": [
    "2nBhEBYYvfaAe16UMNqRHre4YNSskvuYgx3M6E4JP1oDYvZEJHvoPzyUidNgNX5r9sTyN1J9UxtbCXy2rqYcuyuv",
    {
      "encoding": "json",
      "maxSupportedTransactionVersion": 0
    }
  ]
}'

sendTransaction

Submits a signed transaction to the cluster for processing. Method: sendTransaction
transaction
string
required
Fully-signed transaction as encoded string
config
object
Configuration object
skipPreflight
boolean
Skip preflight transaction checks (default: false)
preflightCommitment
string
Commitment level for preflight (default: finalized)
encoding
string
Encoding for transaction: base58, base64 (default: base58)
maxRetries
integer
Maximum retry attempts by RPC node
minContextSlot
integer
Minimum slot for preflight checks
Response:
result
string
Transaction signature as base-58 encoded string
Request
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sendTransaction",
  "params": [
    "4hXTCkRzt9WyecNzV1XPgCDfGAZzQKNxLXgynz5QDuWWPSAZBZSHptvWRL3BjCvzUXRdKvHL2b7yGrRQcWyaqsaBCncVG7BFggS8w9snUts67BSh3EqKpXLUm5UMHfD7ZBe9GhARjbNQMLJ1QD3Spr6oMTBU6EhdB4RD8CP2xUxr2u3d6fos36PD98XS6oX8TQjLpsMwncs5DAMiD4nNnR8NBfyghGCWvCVifVwvA8B8TJxE1aiyiv2L429BCWfyzAme5sZW8rDb14NeCQHhZbtNqfXhcp2tAnaAT",
    {
      "encoding": "base58"
    }
  ]
}'
Response
{
  "jsonrpc": "2.0",
  "result": "2id3YC2jK9G5Wo2phDx4gJVAew8DcY5NAojnVuao8rkxwPYPe8cSwE5GzhEgJA2y8fVjDEo6iR6ykBvDxrTQrtpb",
  "id": 1
}

simulateTransaction

Simulates sending a transaction without actually submitting it. Method: simulateTransaction
transaction
string
required
Transaction as encoded string (need not be signed)
config
object
Configuration object
sigVerify
boolean
Whether to verify signatures (default: false)
commitment
string
Commitment level (default: finalized)
encoding
string
Encoding: base58, base64 (default: base58)
replaceRecentBlockhash
boolean
Replace recent blockhash with simulated one (default: false)
accounts
object
Accounts configuration for returning specific account states
encoding
string
Encoding for account data
addresses
array
Array of account addresses to return
minContextSlot
integer
Minimum slot for simulation
Response:
context
object
slot
integer
Slot simulation was performed at
value
object
err
object | null
Error if simulation failed, null if succeeded
logs
array | null
Array of log messages
accounts
array | null
Array of accounts (if requested)
unitsConsumed
integer
Number of compute units consumed
returnData
object | null
Return data from the transaction
Request
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "simulateTransaction",
  "params": [
    "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDArczbMia1tLmq7zz4DinMNN0pJ1JtLdqIJPUw3YrGCzYAMHBsgN27lcgB6H2WQvFgyZuJYHa46puOQo9yQ8CVQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp20C7Wj2aiuk5TReAXo+VTVg8QTHjs0UjNMMKCvpzZ+ABAgEBARU=",
    {
      "encoding": "base64"
    }
  ]
}'
Response
{
  "jsonrpc": "2.0",
  "result": {
    "context": {
      "slot": 123456789
    },
    "value": {
      "err": null,
      "logs": [
        "Program 11111111111111111111111111111111 invoke [1]",
        "Program 11111111111111111111111111111111 success"
      ],
      "accounts": null,
      "unitsConsumed": 150,
      "returnData": null
    }
  },
  "id": 1
}

Additional Methods

getMultipleAccounts

Returns account information for multiple accounts (max 100). Method: getMultipleAccounts

getProgramAccounts

Returns all accounts owned by a program. Method: getProgramAccounts

getSignaturesForAddress

Returns confirmed signatures for transactions involving an address. Method: getSignaturesForAddress

getLatestBlockhash

Returns the latest blockhash. Method: getLatestBlockhash

getSlot

Returns the current slot the node is processing. Method: getSlot

getEpochInfo

Returns information about the current epoch. Method: getEpochInfo

getVersion

Returns the current Solana version. Method: getVersion

getHealth

Returns the health status of the node. Method: getHealth

Source Code References

The HTTP JSON-RPC methods are implemented in:
  • Core traits: rpc/src/rpc.rs (lines 2707-3607)
  • Minimal API: rpc_minimal module (lines 2705-2944)
  • Full API: rpc_full module (lines 3455-3607)
  • Accounts API: rpc_accounts module (lines 3157-3285)
  • Request processor: JsonRpcRequestProcessor structure (lines 235-256)