Appearance
Solana methods
Solana methods provide a powerful way to interact with the Solana blockchain, allowing users to retrieve or modify account data, transaction details, and on-chain information. By calling specific methods, you can query the current state of an account using its public key, obtaining crucial details such as the account’s balance in lamports, its ownership, associated program, and data encoding formats. These methods also support configurable options, such as choosing the encoding for account data (e.g., base58, base64, or jsonParsed), and filtering results with parameters like dataSlice. Whether you’re interested in fetching metadata about an account, examining transaction histories, or adjusting account-related settings, Solana methods offer a seamless and efficient way to access and manage blockchain data.
getAccountInfo ()
Establish a connection via JSON-RPC.getAccountInfo
Description
Returns all information associated with the account of the provided Pubkey.
Parameters
Pubkey (string)
Pubkey of the account to query, as a base-58 encoded string.
Config (object, optional)
Optional configuration object containing the following optional fields:
Commitment (optional)
encoding (string)
Encoding for Account data, options include:"base58"
: Limited to Account data of less than 129 bytes."base64"
: Returns base64 encoded data for Account data of any size."base64+zstd"
: Compresses the Account data using Zstandard and base64-encodes the result."jsonParsed"
: Attempts to use program-specific parsers for a human-readable format. If unavailable, falls back to"base64"
.
dataSlice (object, optional)
Limits the returned account data using:offset
(usize)length
(usize)
Only available for"base58"
,"base64"
, or"base64+zstd"
encodings.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"id": 1,
"jsonrpc": "2.0",
"method": "getAccountInfo",
"params": [
"your-account-public-key", // Replace with the actual account public key
{
"encoding": "base58" // Optional encoding configuration, can be "base58", "base64", "jsonParsed", etc.
}
]
}
'
Response
json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"context": {
"slot": 123456
},
"value": {
"data": [
"11116bv5nS2h3y12kDvhgfhgGcKLSjQgX6BeV7u1FrjeJcKfsHRTPuR3oZ1EioKtYGiYxpxMG5vpbZLsbcBYBEmZZcMKaSoGx9JZeAuWf",
"base58"
],
"executable": false,
"lamports": 16756300000,
"owner": "111111111776461111111111111111111",
"rentEpoch": 2
}
}
}
getBlockTime ()
Establish a connection via JSON-RPC.getBlockTime
Description
Returns the estimated block time for a given block on the Solana blockchain.
Parameters
BlockSlot (integer) The block slot number for which to retrieve the estimated block time.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"id": 1,
"jsonrpc": "2.0",
"method": "getBlockTime",
"params": [
123456 // Replace with the actual block slot number
]
}'
Response
json
{
"jsonrpc": "2.0",
"id": 1,
"result": 162450400 // Unix timestamp representing the block time
}
getTransaction ()
Establish a connection via JSON-RPC.getTransaction
Description
Fetches detailed information about a specific transaction on the Solana blockchain using its signature.
Parameters
Signature (string) The transaction signature (SHA-256 hash) of the transaction to query.
Config (object, optional) Optional configuration object containing the following optional fields:
Commitment (optional) encoding (string) Encoding options similar to getAccountInfo method.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"id": 1,
"jsonrpc": "2.0",
"method": "getTransaction",
"params": [
"your-transaction-signature", // Replace with the actual transaction signature
{
"encoding": "jsonParsed" // Optional encoding configuration
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"slot": 123456,
"transaction": {
"message": {
"accountKeys": [
"your-public-key",
"recipient-public-key"
],
"instructions": [
{
"programIdIndex": 1,
"data": "base64-encoded-data"
}
]
},
"meta": {
"fee": 7000,
"status": "Success"
}
}
}
}
getBalance ()
Establish a connection via JSON-RPC.getBalance
Description
Fetches the lamport balance of the account associated with the provided Pubkey on the Solana blockchain.
Parameters
Pubkey (string, required)
The base-58 encoded public key of the account to query for the balance.Config (object, optional)
Optional configuration object containing the following fields:- commitment (string, optional)
The commitment level for the request, such asfinalized
,confirmed
, orprocessed
. - minContextSlot (number, optional)
The minimum slot that the request can be evaluated at.
- commitment (string, optional)
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 12
},
"value": 0
},
"id": 4
}
getBlock ()
Establish a connection via JSON-RPC.getBlock
Description
Returns identity and transaction information about a confirmed block in the Solana blockchain ledger.
Parameters
slot (u64, required)
The slot number of the block to query, provided as a 64-bit unsigned integer.Config (object, optional)
Optional configuration object containing the following fields:- commitment (string, optional)
Default:finalized
The commitment level for the request (other options:processed
is not supported). - encoding (string, optional)
Default:json
The encoding format for each returned transaction. Possible values:json
,jsonParsed
,base58
,base64
. - transactionDetails (string, optional)
Default:full
The level of transaction detail to return. Possible values:full
,accounts
,signatures
,none
. - maxSupportedTransactionVersion (number, optional)
The maximum transaction version to return in the response. - rewards (bool, optional)
Whether to include rewards in the response. If not provided, rewards are included by default.
- commitment (string, optional)
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d ' {
"jsonrpc": "2.0",
"id": 1,
"method": "getBlock",
"params": [
123456,
{
"commitment": "finalized",
"encoding": "jsonParsed",
"transactionDetails": "full",
"rewards": true
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"blockhash": "5K99j9DJygYXhZPpGExbdtY8F9VggEqLQ8sLf2a8j9g1",
"previousBlockhash": "11111111111111111111111111111111",
"parentSlot": 123455,
"transactions": [
{
"transaction": {
"message": {
"accountKeys": [
"your-public-key",
"recipient-public-key"
],
"instructions": [
{
"programIdIndex": 1,
"data": "base64-encoded-data"
}
]
},
"meta": {
"err": null,
"fee": 7000,
"preBalances": [1000000000, 2000000000],
"postBalances": [999995000, 2000005000]
}
},
"signatures": [
"signature1",
"signature2"
]
}
],
"rewards": [
{
"pubkey": "reward-public-key",
"lamports": 3000,
"postBalance": 100500,
"rewardType": "fee",
"commission": 0
}
],
"blockTime": 1634799322,
"blockHeight": 123456
}
}
getBlockCommitment ()
Establish a connection via JSON-RPC.getBlockCommitment
Description
Returns the commitment for a specific block in the Solana blockchain, providing information on the amount of cluster stake in lamports that voted on the block at different depths.
Parameters
- slot (u64, required)
The block number, identified by its slot, provided as a 64-bit unsigned integer.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlockCommitment",
"params":[5]
}'
Response
json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"commitment": [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 10, 32
],
"totalStake": 42
}
}
getBlockHeight ()
Establish a connection via JSON-RPC.getBlockHeight
Description
Returns the current block height of the Solana blockchain node.
Parameters
commitment (string, optional)
The level of commitment for the request. It determines the finality of the block height returned.minContextSlot (number, optional)
The minimum slot number that the request can be evaluated at.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getBlockHeight"
}'
Response
json
{
"jsonrpc": "2.0",
"result": 1234,
"id": 1
}
getBlockProduction ()
Establish a connection via JSON-RPC.getBlockProduction
Description
Returns recent block production information for the current or previous epoch.
Parameters
commitment (string, optional)
Defines the level of commitment for the request, indicating the finality of the block production data.identity (string, optional)
Filter the results to only include block production for a specific validator, identified by its base-58 encoded string.range (object, optional)
Defines the slot range for which block production data should be returned. If not provided, defaults to the current epoch.- firstSlot (u64): First slot to include in the range (inclusive).
- lastSlot (u64, optional): Last slot to include in the range (inclusive). Defaults to the highest slot if not provided.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d ' {
"jsonrpc":"2.0",
"id":1,
"method":"getBlockProduction"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 9887
},
"value": {
"byIdentity": {
"85iYT5RuzRTDgjyRa3cP8SYhM2j21fj7NhfJ3peu1DPr": [9888, 9886]
},
"range": {
"firstSlot": 0,
"lastSlot": 9887
}
}
},
"id": 1
}
getBlocks ()
Establish a connection via JSON-RPC.getBlocks
Description
Returns a list of confirmed blocks between two specified slots.
Parameters
start_slot (u64, required)
The starting slot number, as a u64 integer.end_slot (u64, optional)
The ending slot number, as a u64 integer. Must be no more than 500,000 slots higher than thestart_slot
.commitment (string, optional)
Specifies the commitment level for the request.
Default:finalized
"processed" is not supported.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlocks",
"params": [
5, 10
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": [5, 6, 7, 8, 9, 10],
"id": 1
}
getBlocksWithLimit ()
Establish a connection via JSON-RPC.getBlocksWithLimit
Description
Returns a list of confirmed blocks starting from the specified slot, up to a given limit.
Parameters
start_slot (u64, required)
The starting slot number, as a u64 integer.limit (u64, required)
The maximum number of blocks to return, as a u64 integer. This value must not exceed 500,000 blocks higher than thestart_slot
.commitment (string, optional)
Specifies the commitment level for the request.
Default:finalized
"processed" is not supported.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id":1,
"method":"getBlocksWithLimit",
"params":[5, 3]
}'
Response
json
{
"jsonrpc": "2.0",
"result": [5, 6, 7],
"id": 1
}
getClusterNodes ()
Establish a connection via JSON-RPC.getClusterNodes
Description
Returns information about all the nodes participating in the cluster.
Parameters
- None
Result
The result is an array of JSON objects, each containing the following subfields:
- pubkey (string): The node's public key, as a base-58 encoded string.
- gossip (string|null): The gossip network address for the node.
- tpu (string|null): The TPU network address for the node.
- rpc (string|null): The JSON RPC network address for the node, or null if the JSON RPC service is not enabled.
- version (string|null): The software version of the node, or null if the version information is not available.
- featureSet (u32|null): The unique identifier of the node's feature set.
- shredVersion (u16|null): The shred version the node has been configured to use.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getClusterNodes"
}'
Response
json
{
"jsonrpc": "2.0",
"result": [
{
"gossip": "10.239.6.48:8001",
"pubkey": "9QzsJf7LPLj8GkXbYT3LFDKqsj2hHG7TA3xinJHu8epQ",
"rpc": "10.239.6.48:8899",
"tpu": "10.239.6.48:8856",
"version": "1.0.0 c375ce1f"
}
],
"id": 1
}
getEpochInfo ()
Establish a connection via JSON-RPC.getEpochInfo
Description
Returns information about the current epoch.
Parameters
- object (optional)
Configuration object containing the following fields:- commitment (string, optional): Defines the commitment level (finalized, confirmed, or processed).
- minContextSlot (number, optional): The minimum slot that the request can be evaluated at.
Result
The result is an object with the following fields:
- absoluteSlot (u64): The current slot.
- blockHeight (u64): The current block height.
- epoch (u64): The current epoch.
- slotIndex (u64): The current slot relative to the start of the current epoch.
- slotsInEpoch (u64): The number of slots in this epoch.
- transactionCount (u64|null): Total number of transactions processed without error since genesis.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getEpochInfo"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"absoluteSlot": 166668,
"blockHeight": 166511,
"epoch": 27,
"slotIndex": 2790,
"slotsInEpoch": 8192,
"transactionCount": 22645693
},
"id": 1
}
getEpochSchedule ()
Establish a connection via JSON-RPC.getEpochSchedule
Description
Returns the epoch schedule information from this cluster's genesis config.
Parameters
- None
Result
The result is an object with the following fields:
- slotsPerEpoch (u64): The maximum number of slots in each epoch.
- leaderScheduleSlotOffset (u64): The number of slots before the beginning of an epoch to calculate a leader schedule for that epoch.
- warmup (bool): Whether epochs start short and grow.
- firstNormalEpoch (u64): The first normal-length epoch, calculated as log2(slotsPerEpoch) - log2(MINIMUM_SLOTS_PER_EPOCH).
- firstNormalSlot (u64): MINIMUM_SLOTS_PER_EPOCH * (2.pow(firstNormalEpoch) - 1).
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getEpochSchedule"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"firstNormalEpoch": 8,
"firstNormalSlot": 8160,
"leaderScheduleSlotOffset": 8192,
"slotsPerEpoch": 8192,
"warmup": true
},
"id": 1
}
getFeeForMessage ()
Establish a connection via JSON-RPC.getFeeForMessage
Description
Returns the fee the network will charge for a particular Message.
Version Restriction
This method is only available in solana-core v1.9 or newer. Please use getFees
for solana-core v1.8 and below.
Parameters
string (required): The Base-64 encoded Message for which the fee is being calculated.
object (optional): Configuration object containing the following fields:
- commitment (string, optional): The commitment level for the request. Example values:
"finalized"
,"processed"
,"confirmed"
. - minContextSlot (number, optional): The minimum slot that the request can be evaluated at.
- commitment (string, optional): The commitment level for the request. Example values:
Result
The result will be a u64 integer representing the fee corresponding to the message at the specified blockhash. If no fee can be determined, the result will be null
.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"id":1,
"jsonrpc":"2.0",
"method":"getFeeForMessage",
"params":[
"AQABAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAA",
{
"commitment":"processed"
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 5068
},
"value": 5000
},
"id": 1
}
getFirstAvailableBlock ()
Establish a connection via JSON-RPC.getFirstAvailableBlock
Description
Returns the slot of the lowest confirmed block that has not been purged from the ledger.
Parameters
- None
Result
The result will be a u64 integer representing the slot of the lowest confirmed block that has not been purged from the ledger.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getFirstAvailableBlock"
}'
Response
json
{
"jsonrpc": "2.0",
"result": 258000,
"id": 1
}
getGenesisHash ()
Establish a connection via JSON-RPC.getGenesisHash
Description
Returns the genesis hash.
Parameters
- None
Result
The result will be a string representing a hash in base-58 encoded format.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0","id":1,
"method":"getGenesisHash"
}'
Response
json
{
"jsonrpc": "2.0",
"result": "GH7ome3EiwEr7tu9JuTh2dpYWBJK3z69Xm1ZE3MEE6JC",
"id": 1
}
getHighestSnapshotSlot ()
Establish a connection via JSON-RPC.getHighestSnapshotSlot
Description
Returns the highest slot information that the node has snapshots for. This will find the highest full snapshot slot, and the highest incremental snapshot slot based on the full snapshot slot, if there is one.
Version Restriction
This method is only available in solana-core v1.9 or newer. Please use getSnapshotSlot
for solana-core v1.8 and below.
Parameters
- None
Result
When the node has a snapshot, this returns a JSON object with the following fields:
- full:
<u64>
- Highest full snapshot slot - incremental:
<u64|null>
- Highest incremental snapshot slot based on full
If the node has no snapshot, an error message is returned.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getHighestSnapshotSlot"
}'
Result when the node has a snapshot
json
{
"jsonrpc": "2.0",
"result": {
"full": 100,
"incremental": 110
},
"id": 1
}
Result when the node has no snapshot
json
{
"jsonrpc": "2.0",
"error": {
"code": -32008,
"message": "No snapshot"
},
"id": 1
}
getIdentity ()
Establish a connection via JSON-RPC.getIdentity
Description
Returns the identity pubkey for the current node.
Parameters
- None
Result
The result field will be a JSON object with the following fields:
- identity: The identity pubkey of the current node (as a base-58 encoded string).
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getIdentity"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"identity": "2r1F4iWqVcb8M1DbAjQuFpebkQHY9hcVU4WuW2DJBppN"
},
"id": 1
}
getInflationGovernor ()
Establish a connection via JSON-RPC.getInflationGovernor
Description
Returns the current inflation governor.
Parameters
- object (optional)
Configuration object containing the following fields:- commitment (optional): Defines the commitment level for the request.
Result
The result field will be a JSON object with the following fields:
- initial: The initial inflation percentage from time 0.
- terminal: Terminal inflation percentage.
- taper: The rate per year at which inflation is lowered. (Rate reduction is derived using the target slot time in the genesis config).
- foundation: Percentage of total inflation allocated to the foundation.
- foundationTerm: Duration of foundation pool inflation in years.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getInflationGovernor"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"foundation": 0.05,
"foundationTerm": 7,
"initial": 0.15,
"taper": 0.15,
"terminal": 0.015
},
"id": 1
}
getInflationRate ()
Establish a connection via JSON-RPC.getInflationRate
Description
Returns the specific inflation values for the current epoch.
Parameters
- None
Result
The result field will be a JSON object with the following fields:
- total: Total inflation for the epoch.
- validator: Inflation allocated to validators.
- foundation: Inflation allocated to the foundation.
- epoch: The epoch for which these values are valid.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getInflationRate"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"epoch": 100,
"foundation": 0.001,
"total": 0.149,
"validator": 0.148
},
"id": 1
}
getInflationReward ()
Establish a connection via JSON-RPC.getInflationReward
Description
Returns the inflation / staking reward for a list of addresses for a specific epoch.
Parameters
array (optional)
An array of addresses to query, as base-58 encoded strings.object (optional)
- commitment (string, optional)
The commitment level for the query. - epoch (u64, optional)
The epoch for which the reward occurs. If omitted, the previous epoch will be used. - minContextSlot (number, optional)
The minimum slot that the request can be evaluated at.
- commitment (string, optional)
Result
The result field will be a JSON array with the following fields:
- epoch: The epoch for which the reward occurred.
- effectiveSlot: The slot in which the rewards are effective.
- amount: Reward amount in lamports.
- postBalance: Post balance of the account in lamports.
- commission (u8|undefined): The vote account commission when the reward was credited.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getInflationReward",
"params": [
[
"6dmNQ5jwLeLk5REvio1JcMshcbvkYMwy26sJ8pbkvStu",
"BGsqMegLpV6n6Ve146sSX2dTjUMj3M92HnU8BbNRMhF2"
],
{"epoch": 2}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": [
{
"amount": 2500,
"effectiveSlot": 224,
"epoch": 2,
"postBalance": 499999442500
},
null
],
"id": 1
}
getLargestAccounts ()
Establish a connection via JSON-RPC.getLargestAccounts
Description
Returns the 20 largest accounts, by lamport balance (results may be cached up to two hours).
Parameters
- object (optional)
- commitment (string, optional)
The commitment level for the query. - filter (string, optional)
Filter results by account type.
Possible values:circulating
,nonCirculating
.
- commitment (string, optional)
Result
The result will be a JSON object containing a value
field which is an array of objects with the following fields:
- address: Base-58 encoded address of the account.
- lamports: Number of lamports in the account, represented as a u64 value.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getLargestAccounts"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 54
},
"value": [
{
"lamports": 999974,
"address": "99P8ZgtJYe1buSK8JXkvpLh8xPsCFuLYhz9hQFNw93WJ"
},
{
"lamports": 42,
"address": "uPwWLo16MVehpyWqsLkK3Ka8nLowWvAHbBChqv2FZeL"
},
{
"lamports": 42,
"address": "aYJCgU7REfu3XF8b3QhkqgqQvLizx8zxuLBHA25PzDS"
},
{
"lamports": 42,
"address": "CTvHVtQ4gd4gUcw3bdVgZJJqApXE9nCbbbP4VTS5wE1D"
},
{
"lamports": 20,
"address": "4fq3xJ6kfrh9RkJQsmVd5gNMvJbuSHfErywvEjNQDPxu"
},
{
"lamports": 4,
"address": "AXJADheGVp9cruP8WYu46oNkRbeASngN5fPCMVGQqNHa"
},
{
"lamports": 2,
"address": "8NT8yS6LiwNprgW4yM1jPPow7CwRUotddBVkrkWgYp24"
},
{
"lamports": 1,
"address": "SysvarEpochSchedu1e111111111111111111111111"
},
{
"lamports": 1,
"address": "11111111111111111111111111111111"
},
{
"lamports": 1,
"address": "Stake11111111111111111111111111111111111111"
},
{
"lamports": 1,
"address": "SysvarC1ock11111111111111111111111111111111"
},
{
"lamports": 1,
"address": "StakeConfig11111111111111111111111111111111"
},
{
"lamports": 1,
"address": "SysvarRent111111111111111111111111111111111"
},
{
"lamports": 1,
"address": "Config1111111111111111111111111111111111111"
},
{
"lamports": 1,
"address": "SysvarStakeHistory1111111111111111111111111"
},
{
"lamports": 1,
"address": "SysvarRecentB1ockHashes11111111111111111111"
},
{
"lamports": 1,
"address": "SysvarFees111111111111111111111111111111111"
},
{
"lamports": 1,
"address": "Vote111111111111111111111111111111111111111"
}
]
},
"id": 1
}
getLatestBlockhash ()
Establish a connection via JSON-RPC.getLatestBlockhash
Description
Returns the latest blockhash.
This method is only available in solana-core v1.9 or newer. For solana-core v1.8 and below, use getRecentBlockhash
.
Parameters
- object (optional)
- commitment (string, optional)
The commitment level for the query. - minContextSlot (number, optional)
The minimum slot that the request can be evaluated at.
- commitment (string, optional)
Result
The result will be a JSON object containing the following fields:
- blockhash: The blockhash as a base-58 encoded string.
- lastValidBlockHeight: The last block height at which the blockhash will be valid.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getLatestBlockhash",
"params": [
{
"commitment": "processed"
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 2792
},
"value": {
"blockhash": "EkSnNWid2cvwEVnVx9aBqawnmiCNiDgp3gUdkDPTKN1N",
"lastValidBlockHeight": 3090
}
},
"id": 1
}
getLeaderSchedule ()
Establish a connection via JSON-RPC.getLeaderSchedule
Description
Returns the leader schedule for an epoch.
Parameters
u64 (optional)
- The slot for which to fetch the leader schedule. If not specified, the leader schedule for the current epoch will be fetched.
object (optional)
Configuration object containing the following fields:- commitment (string, optional)
The commitment level for the query. - identity (string, optional)
A specific validator identity (base-58 encoded) to return results for.
- commitment (string, optional)
Result
The result will either be:
- null: If the requested epoch is not found, or
- object: A dictionary where the keys are base-58 encoded validator identities, and the values are lists of leader slot indices corresponding to those validators (indices are relative to the first slot in the requested epoch).
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getLeaderSchedule",
"params": [
null,
{
"identity": "4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F"
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F": [
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63
]
},
"id": 1
}
getMaxRetransmitSlot ()
Establish a connection via JSON-RPC.getMaxRetransmitSlot
Description
Returns the maximum slot seen from the retransmit stage.
Parameters
- None: This method does not require any parameters.
Result
A u64 value representing the slot number.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getMaxRetransmitSlot"
}'
Response
json
{
"jsonrpc": "2.0",
"result": 1234,
"id": 1
}
getMaxShredInsertSlot ()
Establish a connection via JSON-RPC.getMaxShredInsertSlot
Description
Returns the maximum slot seen after the shred insert stage.
Parameters
- None: This method does not require any parameters.
Result
A u64 value representing the slot number.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getMaxShredInsertSlot"
}'
Response
json
{
"jsonrpc": "2.0",
"result": 1234,
"id": 1
}
getMinimumBalanceForRentExemption ()
Establish a connection via JSON-RPC.getMinimumBalanceForRentExemption
Description
Returns the minimum balance required for an account to be rent-exempt.
Parameters
usize (optional): The account's data length.
object (optional): Configuration object containing:
- commitment: Optional, specifies the commitment level.
Result
A u64 value representing the minimum lamports required in the account to remain rent-free.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getMinimumBalanceForRentExemption",
"params": [50]
}'
Response
json
{
"jsonrpc": "2.0",
"result": 500,
"id": 1
}
getMultipleAccounts ()
Establish a connection via JSON-RPC.getMultipleAccounts
Description
Returns the account information for a list of Pubkeys.
Parameters
array (required): An array of Pubkeys to query, as base-58 encoded strings (up to a maximum of 100).
object (optional): Configuration object containing:
- commitment (optional): Specifies the commitment level.
- minContextSlot (optional): Minimum slot at which the request can be evaluated.
- dataSlice (optional): Request a slice of the account's data.
- length: Number of bytes to return.
- offset: Byte offset from which to start reading.
- Note: Data slicing is available for base58, base64, or base64+zstd encodings.
- encoding (optional, default: base64): Encoding format for the returned account data. Possible values:
jsonParsed
base58
base64
base64+zstd
Result
The result will be a JSON object with the following structure:
- value: An array of results, with each result containing:
- null: If the account at that Pubkey doesn't exist.
- object: A JSON object with:
- lamports: Number of lamports assigned to this account, as a u64.
- owner: Base-58 encoded Pubkey of the program this account is assigned to.
- data: Account data, either as encoded binary data or JSON format (depending on encoding).
- executable: Boolean indicating if the account contains a program (read-only).
- rentEpoch: The epoch at which this account will next owe rent, as a u64.
- space: The data size of the account.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getMultipleAccounts",
"params": [
[
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
"4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA"
],
{
"encoding": "base58"
}
]
}
'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"apiVersion": "2.0.15",
"slot": 341197247
},
"value": [
{
"data": ["", "base58"],
"executable": false,
"lamports": 88849814690250,
"owner": "11111111111111111111111111111111",
"rentEpoch": 18446744073709551615,
"space": 0
},
{
"data": ["", "base58"],
"executable": false,
"lamports": 998763433,
"owner": "2WRuhE4GJFoE23DYzp2ij6ZnuQ8p9mJeU6gDgfsjR4or",
"rentEpoch": 18446744073709551615,
"space": 0
}
]
},
"id": 1
}
getProgramAccounts ()
Establish a connection via JSON-RPC.getProgramAccounts
Description
Returns all accounts owned by the provided program Pubkey.
Parameters
string (required): The Pubkey of the program, as a base-58 encoded string.
object (optional): Configuration object containing:
- commitment (optional): Specifies the commitment level.
- minContextSlot (optional): The minimum slot that the request can be evaluated at.
- withContext (optional): Boolean flag to wrap the result in an
RpcResponse
JSON object. - encoding (optional, default:
json
): Encoding format for the returned account data. Possible values:jsonParsed
base58
base64
base64+zstd
- dataSlice (optional): Request a slice of the account's data.
- length: Number of bytes to return.
- offset: Byte offset from which to start reading.
- Note: Data slicing is available for
base58
,base64
, orbase64+zstd
encodings.
- filters (optional): Filter results using up to 4 filter objects.
- Info: The resultant account(s) must meet all filter criteria to be included in the returned results.
Result
The result will be a JSON object with the following structure:
- pubkey: The account Pubkey as a base-58 encoded string.
- account: A JSON object with:
- lamports: Number of lamports assigned to this account, as a u64.
- owner: Base-58 encoded Pubkey of the program this account has been assigned to.
- data: Data associated with the account, either as encoded binary data or in JSON format, depending on the encoding parameter.
- executable: Boolean indicating if the account contains a program (read-only).
- rentEpoch: The epoch at which this account will next owe rent, as a u64.
- space: The data size of the account.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getProgramAccounts",
"params": [
"5WaVbp6A1eAhAAYayBwvWFL2Ff6EXvhj82Xcv52bd4gf", // Example Program Pubkey
{
"encoding": "jsonParsed",
"withContext": true
}
]
}
'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"apiVersion": "2.0.15",
"slot": 341197247
},
"value": [
{
"pubkey": "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
"account": {
"lamports": 88849814690250,
"owner": "11111111111111111111111111111111",
"data": ["", "base58"],
"executable": false,
"rentEpoch": 18446744073709551615,
"space": 0
}
},
{
"pubkey": "4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA",
"account": {
"lamports": 998763433,
"owner": "2WRuhE4GJFoE23DYzp2ij6ZnuQ8p9mJeU6gDgfsjR4or",
"data": ["", "base58"],
"executable": false,
"rentEpoch": 18446744073709551615,
"space": 0
}
}
]
},
"id": 1
}
getRecentPerformanceSamples ()
Establish a connection via JSON-RPC.getRecentPerformanceSamples
Description
Returns a list of recent performance samples, in reverse slot order. Performance samples are taken every 60 seconds and include the number of transactions and slots that occur in a given time window.
Parameters
- limit (optional, default: 720): The number of samples to return (maximum 720).
Result
The result will be an array of RpcPerfSample
objects with the following fields:
- slot: The slot in which the sample was taken (u64).
- numTransactions: The number of transactions processed during the sample period (u64).
- numSlots: The number of slots completed during the sample period (u64).
- samplePeriodSecs: The number of seconds in a sample window (u16).
- numNonVoteTransactions: The number of non-vote transactions processed during the sample period (u64).
- Note:
numNonVoteTransactions
is present starting with v1.15. To get the number of voting transactions, compute:numTransactions - numNonVoteTransactions
- Note:
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getRecentPerformanceSamples",
"params": [4]
}
'
Response
json
{
"jsonrpc": "2.0",
"result": [
{
"numSlots": 126,
"numTransactions": 126,
"numNonVoteTransactions": 1,
"samplePeriodSecs": 60,
"slot": 348125
},
{
"numSlots": 126,
"numTransactions": 126,
"numNonVoteTransactions": 1,
"samplePeriodSecs": 60,
"slot": 347999
},
{
"numSlots": 125,
"numTransactions": 125,
"numNonVoteTransactions": 0,
"samplePeriodSecs": 60,
"slot": 347873
},
{
"numSlots": 125,
"numTransactions": 125,
"numNonVoteTransactions": 0,
"samplePeriodSecs": 60,
"slot": 347748
}
],
"id": 1
}
getRecentPrioritizationFees ()
Establish a connection via JSON-RPC.getRecentPrioritizationFees
Description
Returns a list of prioritization fees from recent blocks.
Additional Info
- A node's prioritization-fee cache stores data from up to 150 blocks.
Parameters
- array (optional):
An array of account addresses (up to a maximum of 128), as base-58 encoded strings.- If provided, the response will reflect a fee to land a transaction locking all of the specified accounts as writable.
Result
An array of RpcPrioritizationFee<object>
with the following fields:
- slot:
<u64>
The slot in which the fee was observed. - prioritizationFee:
<u64>
The per-compute-unit fee paid by at least one successfully landed transaction, specified in increments of micro-lamports (0.000001 lamports).
Request Code Sample
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getRecentPrioritizationFees",
"params": [
["CxELquR1gPP8wHe33gZ4QxqGB3sZ9RSwsJ2KshVewkFY"]
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": [
{
"slot": 348125,
"prioritizationFee": 0
},
{
"slot": 348126,
"prioritizationFee": 1000
},
{
"slot": 348127,
"prioritizationFee": 500
},
{
"slot": 348128,
"prioritizationFee": 0
},
{
"slot": 348129,
"prioritizationFee": 1234
}
],
"id": 1
}
getSignatureStatuses ()
Establish a connection via JSON-RPC.getSignatureStatuses
Description
Returns the statuses of a list of transaction signatures. Each signature must correspond to the first signature of a transaction (txid).
Additional Info
- Without the
searchTransactionHistory
configuration, this method only searches the recent status cache, which retains statuses for active slots plusMAX_RECENT_BLOCKHASHES
rooted slots.
Parameters
array (required):
An array of transaction signatures to confirm, as base-58 encoded strings (up to a maximum of 256).object (optional):
Configuration object containing:- searchTransactionHistory (
bool
, optional):true
: The Solana node searches its ledger cache for signatures not found in the recent status cache.
- searchTransactionHistory (
Result
An array of RpcResponse<object>
consisting of either:
null
: Unknown transaction<object>
:- slot:
<u64>
The slot where the transaction was processed. - confirmations:
<usize|null>
Number of blocks since signature confirmation.null
: If rooted and finalized by a supermajority of the cluster.
- err:
<object|null>
Error if the transaction failed;null
if it succeeded. - confirmationStatus:
<string|null>
Cluster confirmation status (processed
,confirmed
, orfinalized
). - DEPRECATED: status:
<object>
"Ok": null
: Transaction was successful."Err": <ERR>
: Transaction failed withTransactionError
.
- slot:
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSignatureStatuses",
"params": [
[
"5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW"
],
{
"searchTransactionHistory": true
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 82
},
"value": [
{
"slot": 48,
"confirmations": null,
"err": null,
"status": {
"Ok": null
},
"confirmationStatus": "finalized"
},
null
]
},
"id": 1
}
getSignaturesForAddress ()
Establish a connection via JSON-RPC.getSignaturesForAddress
Description
Returns transaction signatures for confirmed transactions that include the given account address in their accountKeys
list.
The search retrieves signatures backwards in time, starting from the provided signature or the most recent confirmed block.
Parameters
string (required):
Account address as a base-58 encoded string.object (optional):
Configuration object containing the following fields:- commitment (
string
, optional):
Specify the cluster confirmation commitment level (processed
,confirmed
,finalized
). - minContextSlot (
number
, optional):
Minimum slot that the request can be evaluated at. - limit (
number
, optional):
Maximum transaction signatures to return (default: 1,000; range: 1-1,000). - before (
string
, optional):
Start searching backwards from this transaction signature.
If not provided, the search starts from the latest confirmed block. - until (
string
, optional):
Search until this transaction signature, stopping if found before thelimit
is reached.
- commitment (
Result
An array of <object>
ordered from newest to oldest transactions, with the following fields:
- signature:
<string>
Transaction signature as a base-58 encoded string. - slot:
<u64>
The slot containing the block with the transaction. - err:
<object|null>
Error details if the transaction failed;null
if it succeeded. - memo:
<string|null>
Memo associated with the transaction;null
if no memo is present. - blockTime:
<i64|null>
Estimated production time of the transaction as a Unix timestamp (in seconds).null
if not available. - confirmationStatus:
<string|null>
Cluster confirmation status (processed
,confirmed
, orfinalized
).
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSignaturesForAddress",
"params": [
"Vote111111111111111111111111111111111111111",
{
"limit": 1
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": [
{
"err": null,
"memo": null,
"signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vDdWG3KpwATGy1ARAXFSDwt8GFXM7W5Ncn16wmqokgpiKRLuS83KUxyZyv2sUYv",
"slot": 114,
"blockTime": null
}
],
"id": 1
}
getSlot ()
Establish a connection via JSON-RPC.getSlot
Description
Returns the current slot that has reached the given or default commitment level.
Parameters
- object (optional):
Configuration object containing the following fields:- commitment (
string
, optional):
Specify the cluster confirmation commitment level (processed
,confirmed
, orfinalized
). - minContextSlot (
number
, optional):
Minimum slot that the request can be evaluated at.
- commitment (
Result
A single value representing the current slot as <u64>
.
Request Code Sample
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSlot"
}'
Response
json
{
"jsonrpc": "2.0",
"result": 1234,
"id": 1
}
getSlotLeader ()
Establish a connection via JSON-RPC.getSlotLeader
Description
Returns the current slot leader's identity Pubkey.
Parameters
- object (optional):
Configuration object containing the following fields:- commitment (
string
, optional):
Specify the cluster confirmation commitment level (processed
,confirmed
, orfinalized
). - minContextSlot (
number
, optional):
Minimum slot that the request can be evaluated at.
- commitment (
Result
A string representing the node's identity Pubkey as a base-58 encoded string.
Request Code Sample
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSlotLeader"
}'
Response
json
{
"jsonrpc": "2.0",
"result": "ENvAW7JScgYq6o4zKZwewtkzzJgDzuJAFxYasvmEQdpS",
"id": 1
}
getSupply ()
Establish a connection via JSON-RPC.getSupply
Description
Returns information about the current supply, including total, circulating, and non-circulating supply.
Parameters
- object (optional):
Configuration object containing the following fields:- commitment (optional): Specifies the level of commitment desired (e.g., "processed", "confirmed", "finalized").
- excludeNonCirculatingAccountsList (optional,
bool
):
Excludes non-circulating accounts list from the response iftrue
.
Result
An RpcResponse
JSON object containing:
- context:
- slot (
u64
): The slot at which the request was evaluated.
- slot (
- value:
- total (
u64
): Total supply in lamports. - circulating (
u64
): Circulating supply in lamports. - nonCirculating (
u64
): Non-circulating supply in lamports. - nonCirculatingAccounts (
array<string>
):
An array of account addresses for non-circulating accounts. This array is empty ifexcludeNonCirculatingAccountsList
is set totrue
.
- total (
Request Code Sample
To get information about the current supply:
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSupply"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 1114
},
"value": {
"circulating": 16000,
"nonCirculating": 1000000,
"nonCirculatingAccounts": [
"FEy8pTbP5fEoqMV1GdTz83byuA8EKByqYat1PKDgVAq5",
"9huDUZfxoJ7wGMTffUE7vh1xePqef7gyrLJu9NApncqA",
"3mi1GmwEE3zo2jmfDuzvjSX9ovRXsDUKHvsntpkhuLJ9",
"BYxEJTDerkaRWBem3XgnVcdhppktBXa2HbkHPKj2Ui4Z"
],
"total": 1016000
}
},
"id": 1
}
getTokenAccountBalance ()
Establish a connection via JSON-RPC.getTokenAccountBalance
Description
Returns the token balance of an SPL Token account.
Parameters
string (required):
The public key of the token account to query, as a base-58 encoded string.object (optional):
Configuration object containing the following fields:- commitment (optional): Specifies the level of commitment desired (e.g., "processed", "confirmed", "finalized").
Result
An RpcResponse
JSON object containing:
- context:
- slot (
u64
): The slot at which the request was evaluated.
- slot (
- value:
- amount (
string
): The raw token balance without decimals, as a string representation ofu64
. - decimals (
u8
): Number of base 10 digits to the right of the decimal point. - uiAmount (
number|null
) [DEPRECATED]: The balance using mint-prescribed decimals. - uiAmountString (
string
): The balance as a string, using mint-prescribed decimals.
- amount (
Request Code Sample
To get the balance of a token account:
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenAccountBalance",
"params": [
"7fUAJdStEuGbc3sM84cKRL6yYaaSstyLSU4ve5oovLS7"
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 1114
},
"value": {
"amount": "9864",
"decimals": 2,
"uiAmount": 98.64,
"uiAmountString": "98.64"
}
},
"id": 1
}
getTokenAccountsByDelegate ()
Establish a connection via JSON-RPC.getTokenAccountsByDelegate
Description
Returns all SPL Token accounts approved by a given delegate.
Parameters
string (required):
The public key of the delegate account, as a base-58 encoded string.object (optional):
JSON object with one of the following fields:- mint (
string
): The public key of a specific token Mint to limit accounts to, as a base-58 encoded string. - programId (
string
): The public key of the Token program that owns the accounts, as a base-58 encoded string.
- mint (
object (optional):
Configuration object containing the following fields:- commitment (
string
): Specifies the level of commitment desired (e.g., "processed", "confirmed", "finalized"). - minContextSlot (
number
): The minimum slot that the request can be evaluated at. - dataSlice (
object
): Request a slice of the account's data:- length (
usize
): Number of bytes to return. - offset (
usize
): Byte offset from which to start reading.
- length (
- encoding (
string
): Encoding format for account data. Possible values:base58
,base64
,base64+zstd
,jsonParsed
.
- commitment (
Result
An RpcResponse
JSON object containing:
- context:
- slot (
u64
): The slot at which the request was evaluated.
- slot (
- value:
- An array of objects, each containing:
- pubkey (
string
): The account public key as a base-58 encoded string. - account (
object
): Contains:- lamports (
u64
): Number of lamports assigned to the account. - owner (
string
): Public key of the program owning the account. - data (
object
): Token state data associated with the account, either as encoded binary data or JSON. - executable (
bool
): Indicates if the account contains a program. - rentEpoch (
u64
): Epoch at which the account will next owe rent. - space (
u64
): The data size of the account.
- lamports (
- pubkey (
- An array of objects, each containing:
Request
To query token accounts approved by a delegate:
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenAccountsByDelegate",
"params": [
"4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T",
{
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"encoding": "jsonParsed"
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 1114
},
"value": [
{
"pubkey": "28YTZEwqtMHWrhWcvv34se7pjS7wctgqzCPB3gReCFKp",
"account": {
"lamports": 1724540,
"owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"data": {
"program": "spl-token",
"parsed": {
"info": {
"tokenAmount": {
"amount": "1",
"decimals": 1,
"uiAmount": 0.1,
"uiAmountString": "0.1"
},
"delegate": "4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T",
"delegatedAmount": {
"amount": "1",
"decimals": 1,
"uiAmount": 0.1,
"uiAmountString": "0.1"
},
"state": "initialized",
"isNative": false,
"mint": "3wyAj7Rt1TWVPZVteFJPLa26JmLvdb1CAKEFZm3NY75E",
"owner": "CnPoSPKXu7wJqxe59Fs72tkBeALovhsCxYeFwPCQH9TD"
},
"type": "account"
},
"space": 165
},
"executable": false,
"rentEpoch": 4,
"space": 165
}
}
]
},
"id": 1
}
getTokenLargestAccounts ()
Establish a connection via JSON-RPC.getTokenLargestAccounts
Description
Returns the 20 largest accounts of a particular SPL Token type.
Parameters
Pubkey (string)
Pubkey of the token Mint to query, as a base-58 encoded string.
Config (object, optional)
Optional configuration object containing the following optional field:
- Commitment (string, optional)
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenLargestAccounts",
"params": [
"3wyAj7Rt1TWVPZVteFJPLa26JmLvdb1CAKEFZm3NY75E" // Replace with the token Mint pubkey
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 1114
},
"value": [
{
"address": "FYjHNoFtSQ5uijKrZFyYAxvEr87hsKXkXcxkcmkBAf4r",
"amount": "771",
"decimals": 2,
"uiAmount": 7.71,
"uiAmountString": "7.71"
},
{
"address": "BnsywxTcaYeNUtzrPxQUvzAWxfzZe3ZLUJ4wMMuLESnu",
"amount": "229",
"decimals": 2,
"uiAmount": 2.29,
"uiAmountString": "2.29"
}
]
},
"id": 1
}
getTokenAccountsByOwner ()
Establish a connection via JSON-RPC.getTokenAccountsByOwner
Description
Returns all SPL Token accounts by token owner.
Parameters
Owner (Pubkey) (string, required)
Pubkey of the token account delegate to query, as a base-58 encoded string.
Filter (Object, required)
A JSON object with one of the following fields:
- mint (string)
Pubkey of the specific token Mint to limit accounts to, as a base-58 encoded string. - programId (string)
Pubkey of the Token program that owns the accounts, as a base-58 encoded string.
Config (Object, optional)
An optional configuration object containing:
- commitment (string, optional)
The level of commitment desired. - minContextSlot (number, optional)
The minimum slot at which the request can be evaluated. - dataSlice (object, optional)
Request a slice of the account's data:- length (usize): Number of bytes to return.
- offset (usize): Byte offset from which to start reading.
- encoding (string, optional)
Format for account data. Supported values:base58
base64
base64+zstd
jsonParsed
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenAccountsByOwner",
"params": [
"A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd",
{
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"encoding": "jsonParsed"
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"apiVersion": "2.0.15",
"slot": 346543933
},
"value": [
{
"account": {
"data": {
"parsed": {
"info": {
"isNative": false,
"mint": "2cHr7QS3xfuSV8wdxo3ztuF4xbiarF6Nrgx3qpx3HzXR",
"owner": "A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd",
"state": "initialized",
"tokenAmount": {
"amount": "420000000000000",
"decimals": 6,
"uiAmount": 420000000.0,
"uiAmountString": "420000000"
}
},
"type": "account"
},
"program": "spl-token",
"space": 165
},
"executable": false,
"lamports": 2039280,
"owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"rentEpoch": 18446744073709551615,
"space": 165
},
"pubkey": "BGocb4GEpbTFm8UFV2VsDSaBXHELPfAXrvd4vtt8QWrA"
}
]
},
"id": 1
}
getStakeMinimumDelegation()
Establish a connection via JSON-RPC.getStakeMinimumDelegation
Description
Returns the stake minimum delegation amount in lamports on the Solana blockchain.
This method provides information on the minimum stake amount required for delegation, which is useful for setting up staking operations.
Parameters
- commitment (string, optional):
The level of commitment desired. If omitted, the default commitment level will be used.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getStakeMinimumDelegation"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 501
},
"value": 1000000000
},
"id": 1
}
isBlockhashValid()
Establish a connection via JSON-RPC.isBlockhashValid
ℹ️ Description
Returns whether a blockhash is still valid or not.
Version Restriction:
This method is only available in solana-core v1.9
or newer. Please use getFeeCalculatorForBlockhash
for solana-core v1.8
and below.
Parameters
blockhash (string, required)
The blockhash of the block to evaluate, as a base-58 encoded string.
Config (object, optional)
Optional configuration object containing the following fields:
- commitment (string, optional)
Defines the level of commitment for the transaction. - minContextSlot (number, optional)
The minimum slot that the request can be evaluated at.
Result
- value (bool): Returns
true
if the blockhash is still valid, otherwisefalse
.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"id":45,
"jsonrpc":"2.0",
"method":"isBlockhashValid",
"params":[
"J7rBdM6AecPDEZp8aPq5iPSNKVkU5Q76F3oAV4eW5wsW",
{"commitment":"processed"}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 2483
},
"value": false
},
"id": 1
}
getTokenSupply ()
Establish a connection via JSON-RPC.getTokenSupply
ℹ️ Description
Returns the total supply of an SPL Token type.
Parameters
Mint (Pubkey) (string, required)
Pubkey of the token Mint to query, as a base-58 encoded string.
Config (Object, optional)
An optional configuration object containing:
- commitment (string, optional)
The level of commitment desired. Supported values:processed
confirmed
finalized
Result
The result is an RpcResponse
JSON object with the following fields:
Context
- slot (number): The slot at which the query was evaluated.
Value
- amount (string): The raw total token supply without applying decimals, represented as a string.
- decimals (number): Number of decimal places for the token Mint.
- uiAmount (number | null): (Deprecated) The total supply after applying decimals.
- uiAmountString (string): The total supply as a string after applying decimals.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenSupply",
"params": [
"3wyAj7Rt1TWVPZVteFJPLa26JmLvdb1CAKEFZm3NY75E"
]
}
'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 1114
},
"value": {
"amount": "100000",
"decimals": 2,
"uiAmount": 1000,
"uiAmountString": "1000"
}
},
"id": 1
}
getTransactionCount()
Establish a connection via JSON-RPC.getTransactionCount
ℹ️ Description
Returns the current transaction count from the ledger.
Parameters
Config (object, optional)
Optional configuration object containing the following fields:
- Commitment (string, optional)
Defines the level of commitment for the transaction. - minContextSlot (number, optional)
The minimum slot that the request can be evaluated at.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTransactionCount"
}'
Response
json
{
"jsonrpc": "2.0",
"result": 268,
"id": 1
}
getVersion()
Establish a connection via JSON-RPC.getVersion
ℹ️ Description
Returns the current Solana version running on the node.
Parameters
None
Result
The result field will be a JSON object with the following fields:
- solana-core (string): Software version of solana-core.
- feature-set (u32): Unique identifier of the current software's feature set.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getVersion"
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"feature-set": 2891131721,
"solana-core": "1.16.7"
},
"id": 1
}
getVoteAccounts()
Establish a connection via JSON-RPC.getVoteAccounts
ℹ️ Description
Returns the account info and associated stake for all the voting accounts in the current bank.
Parameters
Config (object, optional)
Optional configuration object containing the following fields:
- Commitment (string, optional)
Defines the level of commitment for the transaction. - votePubkey (string, optional)
Only return results for this validator vote address (base-58 encoded). - keepUnstakedDelinquents (bool, optional)
Do not filter out delinquent validators with no stake. - delinquentSlotDistance (u64, optional)
Specify the number of slots behind the tip that a validator must fall to be considered delinquent. (Note: It is not recommended to specify this argument for consistency between ecosystem products.)
Result
The result field will be a JSON object of current and delinquent accounts, each containing an array of JSON objects with the following sub-fields:
- votePubkey (string): Vote account address, as base-58 encoded string.
- nodePubkey (string): Validator identity, as base-58 encoded string.
- activatedStake (u64): The stake, in lamports, delegated to this vote account and active in this epoch.
- epochVoteAccount (bool): Whether the vote account is staked for this epoch.
- commission (number): Percentage (0-100) of rewards payout owed to the vote account.
- lastVote (u64): Most recent slot voted on by this vote account.
- epochCredits (array): Latest history of earned credits for up to five epochs, as an array of arrays containing:
[epoch, credits, previousCredits]
. - rootSlot (u64): Current root slot for this vote account.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getVoteAccounts",
"params": [
{
"votePubkey": "3ZT31jkAGhUaw8jsy4bTknwBMP8i4Eueh52By4zXcsVw"
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"current": [
{
"commission": 0,
"epochVoteAccount": true,
"epochCredits": [
[1, 64, 0],
[2, 192, 64]
],
"nodePubkey": "B97CCUW3AEZFGy6uUg6zUdnNYvnVq5VG8PUtb2HayTDD",
"lastVote": 147,
"activatedStake": 42,
"votePubkey": "3ZT31jkAGhUaw8jsy4bTknwBMP8i4Eueh52By4zXcsVw"
}
],
"delinquent": []
},
"id": 1
}
minimumLedgerSlot()
Establish a connection via JSON-RPC.minimumLedgerSlot
ℹ️ Description
Returns the lowest slot that the node has information about in its ledger.
Info:
This value may increase over time if the node is configured to purge older ledger data.
Parameters
None
Result
- result (u64): The minimum ledger slot number.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "minimumLedgerSlot"
}'
Response
json
{
"jsonrpc": "2.0",
"result": 1234,
"id": 1
}
requestAirdrop()
Establish a connection via JSON-RPC.requestAirdrop
ℹ️ Description
Requests an airdrop of lamports to a Pubkey.
Parameters
- pubkey (string, required): Pubkey of the account to receive lamports, as a base-58 encoded string.
- lamports (integer, required): Number of lamports to airdrop, as a "u64".
- configuration object (optional): Configuration object containing the following fields:
- commitment (string, optional)
Result
- result (string): Transaction signature of the airdrop, as a base-58 encoded string.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1,
"method": "requestAirdrop",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
1000000000
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW",
"id": 1
}
sendTransaction()
Establish a connection via JSON-RPC.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.
- A successful response from this method does not guarantee the transaction is processed or confirmed by the cluster.
- Use
getSignatureStatuses
to ensure a transaction is processed and confirmed.
Before submitting, the following preflight checks are performed:
- The transaction signatures are verified.
- The transaction is simulated against the bank slot specified by the preflight commitment.
Parameters
- transaction (string, required): Fully signed transaction, as an encoded string.
- configuration object (optional): Configuration object containing the following fields:
- encoding (string, optional): Default: base58. Encoding used for the transaction data. Values: base58 (slow, DEPRECATED), or base64.
- skipPreflight (bool, optional): Default: false. When true, skip the preflight transaction checks.
- preflightCommitment (string, optional): Default: finalized. Commitment level to use for preflight.
- maxRetries (usize, optional): Maximum number of times for the RPC node to retry sending the transaction to the leader.
- minContextSlot (number, optional): Set the minimum slot at which to perform preflight transaction checks.
Result
- result (string): First transaction signature embedded in the transaction, as a base-58 encoded string (transaction id).
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1,
"method": "sendTransaction",
"params": [
"base58EncodedTransaction",
{
"encoding": "base64",
"skipPreflight": false,
"preflightCommitment": "finalized"
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": "4aXkMABzD7vZT4gF6uDh5B5F6sftdRRx4Tbn1Ra59mUu9Gxj4kqkwymW3Zy78n2hZ7fX79PBy3DPJKg7vmdEDZGJ",
"id": 1
}
simulateTransaction()
Establish a connection via JSON-RPC.simulateTransaction
ℹ️ Description
Simulates sending a transaction.
The transaction must have a valid blockhash, but it is not required to be signed.
Parameters
- transaction (string, required): Transaction, as an encoded string.
- configuration object (optional): Configuration object containing the following fields:
- commitment (string, optional): Default:
finalized
. Commitment level to simulate the transaction at. - sigVerify (bool, optional): If true, the transaction signatures will be verified (conflicts with
replaceRecentBlockhash
). - replaceRecentBlockhash (bool, optional): If true, the transaction recent blockhash will be replaced with the most recent blockhash. (conflicts with
sigVerify
). - minContextSlot (number, optional): The minimum slot that the request can be evaluated at.
- encoding (string, optional): Default:
base58
. Encoding used for the transaction data. Values:base58
(slow, DEPRECATED), orbase64
. - innerInstructions (bool, optional): If true, the response will include inner instructions.
- accounts (object, optional): Accounts configuration object containing the following fields:
- addresses (array): An array of accounts to return, as base-58 encoded strings.
- encoding (string): Default:
base64
. Encoding for returned account data. Values:base64
,base58
,base64+zstd
,jsonParsed
.
- commitment (string, optional): Default:
Result
The result will be an RpcResponse JSON object with the following fields:
- err: Error if transaction failed, null if transaction succeeded.
- logs: Array of log messages the transaction instructions output during execution, null if simulation failed before the transaction was able to execute.
- accounts: Array of accounts with the same length as the accounts.addresses array in the request.
- If the account doesn't exist or if
err
is not null,null
. - Otherwise, a JSON object containing:
- lamports: Number of lamports assigned to this account.
- owner: Base-58 encoded Pubkey of the program this account has been assigned to.
- data: Data associated with the account, either as encoded binary data or JSON format.
- executable: Boolean indicating if the account contains a program.
- rentEpoch: The epoch at which this account will next owe rent.
- unitsConsumed: The number of compute budget units consumed during the processing of this transaction.
- returnData: The most recent return data generated by an instruction in the transaction.
- innerInstructions: Defined only if
innerInstructions
was set to true.
- If the account doesn't exist or if
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "simulateTransaction",
"params": [
"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDArczbMia1tLmq7zz4DinMNN0pJ1JtLdqIJPUw3YrGCzYAMHBsgN27lcgB6H2WQvFgyZuJYHa46puOQo9yQ8CVQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp20C7Wj2aiuk5TReAXo+VTVg8QTHjs0UjNMMKCvpzZ+ABAgEBARU=",
{
"encoding": "base64"
}
]
}'
Response
json
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 218
},
"value": {
"err": null,
"accounts": null,
"logs": [
"Program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri invoke [1]",
"Program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri consumed 2366 of 1400000 compute units",
"Program return: 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri KgAAAAAAAAA=",
"Program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri success"
],
"returnData": {
"data": ["Kg==", "base64"],
"programId": "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
},
"unitsConsumed": 2366
}
},
"id": 1
}
getSlotLeaders ()
Establish a connection via JSON-RPC.getSlotLeaders
ℹ️ Description
Returns the slot leaders for a given slot range.
Parameters
u64 (required):
- Start slot (inclusive), as a 64-bit unsigned integer.
u64 (required):
- Limit, as a 64-bit unsigned integer (range: 1–5,000).
Result
An array of node identity public keys as base-58 encoded strings, representing the slot leaders in the specified range.
Request Code Sample
If the current slot is #99, query the next 10 leaders with the following request:
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSlotLeaders",
"params": [100, 10]
}'
Response
json
{
"jsonrpc": "2.0",
"result": [
"ChorusmmK7i1AxXeiTtQgQZhQNiXYU84ULeaYF1EH15n",
"ChorusmmK7i1AxXeiTtQgQZhQNiXYU84ULeaYF1EH15n",
"ChorusmmK7i1AxXeiTtQgQZhQNiXYU84ULeaYF1EH15n",
"ChorusmmK7i1AxXeiTtQgQZhQNiXYU84ULeaYF1EH15n",
"Awes4Tr6TX8JDzEhCZY2QVNimT6iD1zWHzf1vNyGvpLM",
"Awes4Tr6TX8JDzEhCZY2QVNimT6iD1zWHzf1vNyGvpLM",
"Awes4Tr6TX8JDzEhCZY2QVNimT6iD1zWHzf1vNyGvpLM",
"Awes4Tr6TX8JDzEhCZY2QVNimT6iD1zWHzf1vNyGvpLM",
"DWvDTSh3qfn88UoQTEKRV2JnLt5jtJAVoiCo3ivtMwXP",
"DWvDTSh3qfn88UoQTEKRV2JnLt5jtJAVoiCo3ivtMwXP"
],
"id": 1
}
getHealth ()
Establish a connection via JSON-RPC.getHealth
ℹ️ Description
Returns the current health of the node. A healthy node is one that is within HEALTH_CHECK_SLOT_DISTANCE
slots of the latest cluster confirmed slot.
Parameters
- None
Result
- If the node is healthy:
"ok"
- If the node is unhealthy, a JSON RPC error response is returned. The specifics of the error response are unstable and may change in the future.
Request
bash
curl https://api.nolimitnodes.com/solana?api_key=<your-api-key> \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"getHealth"
}'
Healthy Response
json
{
"jsonrpc": "2.0",
"result": "ok",
"id": 1
}
Unhealthy Response
json
{
"jsonrpc": "2.0",
"error": {
"code": -32005,
"message": "Node is unhealthy",
"data": {}
},
"id": 1
}