RPC Methods Reference
Complete reference for all X1 Blockchain RPC methods with detailed parameters, responses, and examples
RPC Methods Reference
Complete reference documentation for all X1 Blockchain JSON-RPC methods available through FortiBlox Nexus.
Authentication
All RPC methods require authentication via API key in the request header.
Endpoint: POST https://nexus.fortiblox.com/rpc
Authentication Header:
X-API-Key: fbx_YOUR_API_KEYAccount Methods
getAccountInfo
Returns all information associated with an account.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier for matching responses |
| method | string | Yes | Method name: "getAccountInfo" |
| params | array | Yes | Request parameters array |
params[0] - Account Address:
- Type:
string - Description: Base58-encoded account public key
- Example:
"9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g"
params[1] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Level of commitment ("processed" | "confirmed" | "finalized")- Default: "confirmed"
encoding(string, optional): Encoding for account data ("base58" | "base64" | "base64+zstd" | "jsonParsed")- Default: "base64"
dataSlice(object, optional): Limit returned account dataoffset(number): Byte offset to start readinglength(number): Number of bytes to return
minContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| context.apiVersion | string | API version |
| context.slot | number | Slot at which data was retrieved |
| value | object | null | Account information or null if account doesn't exist |
| value.data | array | string | Account data in requested encoding |
| value.executable | boolean | Whether account is executable (program) |
| value.lamports | number | Balance in lamports |
| value.owner | string | Base58-encoded public key of program owning account |
| value.rentEpoch | number | Epoch at which rent is next due |
| value.space | number | Data size allocated to account |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getAccountInfo",
"params": [
"9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g",
{
"encoding": "base64",
"commitment": "confirmed"
}
]
}'// Using fetch API
const API_KEY = process.env.FORTIBLOX_API_KEY;
const endpoint = 'https://nexus.fortiblox.com/rpc';
async function getAccountInfo(publicKey) {
const response = await fetch(endpoint, {
method: 'POST',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'getAccountInfo',
params: [
publicKey,
{
encoding: 'base64',
commitment: 'confirmed'
}
]
})
});
const data = await response.json();
if (data.error) {
throw new Error(data.error.message);
}
return data.result;
}
// Usage
const accountInfo = await getAccountInfo('9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g');
console.log('Account balance:', accountInfo.value.lamports);import os
import requests
API_KEY = os.getenv('FORTIBLOX_API_KEY')
ENDPOINT = 'https://nexus.fortiblox.com/rpc'
def get_account_info(public_key: str):
"""Get account information for a given public key"""
response = requests.post(
ENDPOINT,
headers={
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
json={
'jsonrpc': '2.0',
'id': 1,
'method': 'getAccountInfo',
'params': [
public_key,
{
'encoding': 'base64',
'commitment': 'confirmed'
}
]
}
)
data = response.json()
if 'error' in data:
raise Exception(data['error']['message'])
return data['result']
# Usage
account_info = get_account_info('9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g')
print(f"Account balance: {account_info['value']['lamports']}")use reqwest;
use serde_json::{json, Value};
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = env::var("FORTIBLOX_API_KEY")?;
let endpoint = "https://nexus.fortiblox.com/rpc";
let account_info = get_account_info(
endpoint,
&api_key,
"9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g"
).await?;
println!("Account balance: {}", account_info["value"]["lamports"]);
Ok(())
}
async fn get_account_info(
endpoint: &str,
api_key: &str,
public_key: &str
) -> Result<Value, Box<dyn std::error::Error>> {
let client = reqwest::Client::new();
// Build RPC request
let request_body = json!({
"jsonrpc": "2.0",
"id": 1,
"method": "getAccountInfo",
"params": [
public_key,
{
"encoding": "base64",
"commitment": "confirmed"
}
]
});
// Make request with API key header
let response = client
.post(endpoint)
.header("X-API-Key", api_key)
.header("Content-Type", "application/json")
.json(&request_body)
.send()
.await?;
let data: Value = response.json().await?;
// Check for errors
if let Some(error) = data.get("error") {
return Err(error["message"].as_str().unwrap().into());
}
Ok(data["result"].clone())
}package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
type RPCRequest struct {
JsonRPC string `json:"jsonrpc"`
ID int `json:"id"`
Method string `json:"method"`
Params []interface{} `json:"params"`
}
type RPCResponse struct {
JsonRPC string `json:"jsonrpc"`
ID int `json:"id"`
Result interface{} `json:"result"`
Error *RPCError `json:"error,omitempty"`
}
type RPCError struct {
Code int `json:"code"`
Message string `json:"message"`
}
func getAccountInfo(publicKey string) (interface{}, error) {
apiKey := os.Getenv("FORTIBLOX_API_KEY")
endpoint := "https://nexus.fortiblox.com/rpc"
// Build RPC request
requestBody := RPCRequest{
JsonRPC: "2.0",
ID: 1,
Method: "getAccountInfo",
Params: []interface{}{
publicKey,
map[string]interface{}{
"encoding": "base64",
"commitment": "confirmed",
},
},
}
// Marshal to JSON
jsonData, err := json.Marshal(requestBody)
if err != nil {
return nil, err
}
// Create HTTP request
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(jsonData))
if err != nil {
return nil, err
}
// Add headers
req.Header.Set("X-API-Key", apiKey)
req.Header.Set("Content-Type", "application/json")
// Make request
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
// Read response
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}
// Parse response
var rpcResp RPCResponse
if err := json.Unmarshal(body, &rpcResp); err != nil {
return nil, err
}
// Check for errors
if rpcResp.Error != nil {
return nil, fmt.Errorf("RPC error: %s", rpcResp.Error.Message)
}
return rpcResp.Result, nil
}
func main() {
accountInfo, err := getAccountInfo("9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g")
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("Account info: %+v\n", accountInfo)
}Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"context": {
"apiVersion": "1.18.0",
"slot": 123456789
},
"value": {
"data": ["", "base64"],
"executable": false,
"lamports": 5000000000,
"owner": "11111111111111111111111111111111",
"rentEpoch": 361,
"space": 0
}
},
"id": 1
}Credits: 1
getBalance
Returns the balance of an account in lamports.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getBalance" |
| params | array | Yes | Request parameters array |
params[0] - Account Address:
- Type:
string - Description: Base58-encoded account public key
- Example:
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
params[1] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment level ("processed" | "confirmed" | "finalized")- Default: "confirmed"
minContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| context.apiVersion | string | API version |
| context.slot | number | Slot at which balance was retrieved |
| value | number | Account balance in lamports (1 SOL = 1,000,000,000 lamports) |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
]
}'const API_KEY = process.env.FORTIBLOX_API_KEY;
const endpoint = 'https://nexus.fortiblox.com/rpc';
async function getBalance(publicKey) {
const response = await fetch(endpoint, {
method: 'POST',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'getBalance',
params: [publicKey]
})
});
const data = await response.json();
if (data.error) {
throw new Error(data.error.message);
}
// Convert lamports to SOL
const lamports = data.result.value;
const sol = lamports / 1_000_000_000;
return { lamports, sol };
}
// Usage
const balance = await getBalance('vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg');
console.log(`Balance: ${balance.sol} SOL (${balance.lamports} lamports)`);import os
import requests
API_KEY = os.getenv('FORTIBLOX_API_KEY')
ENDPOINT = 'https://nexus.fortiblox.com/rpc'
def get_balance(public_key: str) -> dict:
"""Get account balance in lamports and SOL"""
response = requests.post(
ENDPOINT,
headers={
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
json={
'jsonrpc': '2.0',
'id': 1,
'method': 'getBalance',
'params': [public_key]
}
)
data = response.json()
if 'error' in data:
raise Exception(data['error']['message'])
# Convert lamports to SOL (1 SOL = 1,000,000,000 lamports)
lamports = data['result']['value']
sol = lamports / 1_000_000_000
return {'lamports': lamports, 'sol': sol}
# Usage
balance = get_balance('vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg')
print(f"Balance: {balance['sol']} SOL ({balance['lamports']} lamports)")use reqwest;
use serde_json::{json, Value};
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = env::var("FORTIBLOX_API_KEY")?;
let endpoint = "https://nexus.fortiblox.com/rpc";
let balance = get_balance(
endpoint,
&api_key,
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
).await?;
let lamports = balance["value"].as_u64().unwrap();
let sol = lamports as f64 / 1_000_000_000.0;
println!("Balance: {} SOL ({} lamports)", sol, lamports);
Ok(())
}
async fn get_balance(
endpoint: &str,
api_key: &str,
public_key: &str
) -> Result<Value, Box<dyn std::error::Error>> {
let client = reqwest::Client::new();
let request_body = json!({
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [public_key]
});
let response = client
.post(endpoint)
.header("X-API-Key", api_key)
.header("Content-Type", "application/json")
.json(&request_body)
.send()
.await?;
let data: Value = response.json().await?;
if let Some(error) = data.get("error") {
return Err(error["message"].as_str().unwrap().into());
}
Ok(data["result"].clone())
}package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
)
func getBalance(publicKey string) (uint64, error) {
apiKey := os.Getenv("FORTIBLOX_API_KEY")
endpoint := "https://nexus.fortiblox.com/rpc"
// Build RPC request
requestBody := map[string]interface{}{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": []interface{}{publicKey},
}
jsonData, err := json.Marshal(requestBody)
if err != nil {
return 0, err
}
// Create HTTP request
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(jsonData))
if err != nil {
return 0, err
}
req.Header.Set("X-API-Key", apiKey)
req.Header.Set("Content-Type", "application/json")
// Make request
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return 0, err
}
defer resp.Body.Close()
// Read response
body, err := io.ReadAll(resp.Body)
if err != nil {
return 0, err
}
// Parse response
var result struct {
Result struct {
Value uint64 `json:"value"`
} `json:"result"`
Error *struct {
Message string `json:"message"`
} `json:"error"`
}
if err := json.Unmarshal(body, &result); err != nil {
return 0, err
}
if result.Error != nil {
return 0, fmt.Errorf("RPC error: %s", result.Error.Message)
}
return result.Result.Value, nil
}
func main() {
lamports, err := getBalance("vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg")
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
// Convert lamports to SOL (1 SOL = 1,000,000,000 lamports)
sol := float64(lamports) / 1_000_000_000
fmt.Printf("Balance: %.9f SOL (%d lamports)\n", sol, lamports)
}Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"context": {
"apiVersion": "1.18.0",
"slot": 123456789
},
"value": 1500000000
},
"id": 1
}Credits: 1
getMultipleAccounts
Returns information for multiple accounts at once.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getMultipleAccounts" |
| params | array | Yes | Request parameters array |
params[0] - Account Addresses:
- Type:
array<string> - Description: Array of base58-encoded account public keys
- Max Length: 100 accounts per request
- Example:
["account1...", "account2...", "account3..."]
params[1] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelencoding(string, optional): Encoding for account datadataSlice(object, optional): Limit returned account dataminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| context.slot | number | Slot at which data was retrieved |
| value | array | Array of account info objects (null for non-existent accounts) |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getMultipleAccounts",
"params": [
[
"9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g",
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
],
{
"encoding": "base64"
}
]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 123456789
},
"value": [
{
"data": ["", "base64"],
"executable": false,
"lamports": 5000000000,
"owner": "11111111111111111111111111111111",
"rentEpoch": 361
},
{
"data": ["", "base64"],
"executable": false,
"lamports": 1500000000,
"owner": "11111111111111111111111111111111",
"rentEpoch": 361
}
]
},
"id": 1
}Credits: 3
Block Methods
getBlock
Returns block information for a given slot.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getBlock" |
| params | array | Yes | Request parameters array |
params[0] - Slot:
- Type:
number - Description: Slot number to retrieve block for
- Example:
123456789
params[1] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): "confirmed" or "finalized" (processed not supported)- Default: "finalized"
encoding(string, optional): Transaction encoding ("json" | "jsonParsed" | "base58" | "base64")- Default: "json"
maxSupportedTransactionVersion(number, optional): Max transaction version to return- Set to 0 for versioned transactions support
transactionDetails(string, optional): Level of transaction detail ("full" | "accounts" | "signatures" | "none")- Default: "full"
rewards(boolean, optional): Whether to include rewards- Default: true
Response Schema:
| Field | Type | Description |
|---|---|---|
| blockHeight | number | Block height |
| blockTime | number | Estimated production time (Unix timestamp) |
| blockhash | string | Block hash |
| parentSlot | number | Parent slot number |
| previousBlockhash | string | Previous block hash |
| transactions | array | Array of transaction objects |
| rewards | array | Block rewards (if requested) |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlock",
"params": [
123456789,
{
"encoding": "json",
"maxSupportedTransactionVersion": 0,
"transactionDetails": "full",
"rewards": true
}
]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"blockHeight": 123456000,
"blockTime": 1699564800,
"blockhash": "3Eq21vXNB5s86c62bVuUfTeaMif1N2kUqRPBmGRJhyTA",
"parentSlot": 123456788,
"previousBlockhash": "mfcyqEXB3DnHXki6KjjmZck6YjmZLvpAByy2fj4nh6B",
"transactions": [
{
"meta": {
"err": null,
"fee": 5000,
"innerInstructions": [],
"logMessages": [],
"postBalances": [499995000, 26858640],
"postTokenBalances": [],
"preBalances": [500000000, 26858640],
"preTokenBalances": [],
"rewards": [],
"status": {"Ok": null}
},
"transaction": {
"message": {
"accountKeys": [
"3UVYmECPPMZSCqWKfENfuoTv51fTDTWicX9xmBD2euKe",
"AjozzgE83A3x1sHNUR64hfH7zaEBWeMaFuAN9kQgujrc"
],
"header": {
"numReadonlySignedAccounts": 0,
"numReadonlyUnsignedAccounts": 1,
"numRequiredSignatures": 1
},
"instructions": [],
"recentBlockhash": "mfcyqEXB3DnHXki6KjjmZck6YjmZLvpAByy2fj4nh6B"
},
"signatures": [
"2nBhEBYYvfaAe16UMNqRHre4YNSskvuYgx3M6E4JP1oDYvZEJHvoPzyUidNgNX5r9sTyN1J9UxtbCXy2rqYcuyuv"
]
}
}
],
"rewards": []
},
"id": 1
}Credits: 5
getBlockHeight
Returns the current block height.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getBlockHeight" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | number | Current block height |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlockHeight"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": 123456000,
"id": 1
}Credits: 1
getBlockTime
Returns the estimated production time of a block as a Unix timestamp.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getBlockTime" |
| params | array | Yes | Request parameters array |
params[0] - Slot:
- Type:
number - Description: Slot number to get block time for
- Example:
123456789
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | number | null | Estimated production time as Unix timestamp (seconds since epoch), or null if timestamp is not available |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlockTime",
"params": [123456789]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": 1699564800,
"id": 1
}Credits: 1
getBlocks
Returns a list of confirmed blocks between two slots.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getBlocks" |
| params | array | Yes | Request parameters array |
params[0] - Start Slot:
- Type:
number - Description: Start slot (inclusive)
- Example:
100
params[1] - End Slot (optional):
- Type:
number - Description: End slot (inclusive). If not provided, returns blocks from start_slot to current slot
- Example:
200
params[2] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): "confirmed" or "finalized"- Default: "finalized"
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | array<number> | Array of slot numbers for confirmed blocks in the range |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlocks",
"params": [100, 200]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": [
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 114, 115, 116, 117, 118, 119
],
"id": 1
}Credits: 1
getBlocksWithLimit
Returns a list of confirmed blocks starting at a given slot, limited to a specific number.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getBlocksWithLimit" |
| params | array | Yes | Request parameters array |
params[0] - Start Slot:
- Type:
number - Description: Start slot (inclusive)
- Example:
100
params[1] - Limit:
- Type:
number - Description: Maximum number of blocks to return (max 500,000)
- Example:
10
params[2] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): "confirmed" or "finalized"- Default: "finalized"
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | array<number> | Array of slot numbers for confirmed blocks, up to the specified limit |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlocksWithLimit",
"params": [100, 10]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109],
"id": 1
}Credits: 1
getFirstAvailableBlock
Returns the slot of the lowest confirmed block that has not been purged from the ledger.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getFirstAvailableBlock" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | number | Slot number of the first available block |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getFirstAvailableBlock"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": 1,
"id": 1
}Credits: 1
Transaction Methods
getTransaction
Returns transaction details for a given signature.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getTransaction" |
| params | array | Yes | Request parameters array |
params[0] - Transaction Signature:
- Type:
string - Description: Base58-encoded transaction signature
- Example:
"5j7s6NiJS3JAkvgkoc18WVAsiSaci2pxB2A6ueCJP4tprA2TFg9wSyTLeYouxPBJEMzJinENTkpA52YStRW5Dia7"
params[1] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): "confirmed" or "finalized"- Default: "finalized"
encoding(string, optional): Transaction encoding ("json" | "jsonParsed" | "base58" | "base64")- Default: "json"
maxSupportedTransactionVersion(number, optional): Max transaction version- Set to 0 for versioned transactions
Response Schema:
| Field | Type | Description |
|---|---|---|
| slot | number | Slot in which transaction was processed |
| blockTime | number | Estimated production time (Unix timestamp) |
| transaction | object | Transaction object with message and signatures |
| meta | object | Transaction status metadata |
| meta.err | object | null | Error if transaction failed, null if succeeded |
| meta.fee | number | Transaction fee in lamports |
| meta.preBalances | array | Account balances before transaction |
| meta.postBalances | array | Account balances after transaction |
| meta.logMessages | array | Log messages from transaction |
| meta.innerInstructions | array | Inner instructions |
| meta.rewards | array | Rewards data |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTransaction",
"params": [
"5j7s6NiJS3JAkvgkoc18WVAsiSaci2pxB2A6ueCJP4tprA2TFg9wSyTLeYouxPBJEMzJinENTkpA52YStRW5Dia7",
{
"encoding": "json",
"maxSupportedTransactionVersion": 0
}
]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"slot": 123456789,
"blockTime": 1699564800,
"transaction": {
"message": {
"accountKeys": [
"3UVYmECPPMZSCqWKfENfuoTv51fTDTWicX9xmBD2euKe",
"AjozzgE83A3x1sHNUR64hfH7zaEBWeMaFuAN9kQgujrc"
],
"header": {
"numReadonlySignedAccounts": 0,
"numReadonlyUnsignedAccounts": 1,
"numRequiredSignatures": 1
},
"instructions": [],
"recentBlockhash": "mfcyqEXB3DnHXki6KjjmZck6YjmZLvpAByy2fj4nh6B"
},
"signatures": [
"5j7s6NiJS3JAkvgkoc18WVAsiSaci2pxB2A6ueCJP4tprA2TFg9wSyTLeYouxPBJEMzJinENTkpA52YStRW5Dia7"
]
},
"meta": {
"err": null,
"fee": 5000,
"innerInstructions": [],
"logMessages": [],
"postBalances": [499995000, 26858640],
"postTokenBalances": [],
"preBalances": [500000000, 26858640],
"preTokenBalances": [],
"rewards": [],
"status": {"Ok": null}
}
},
"id": 1
}Credits: 5
sendTransaction
Submits a signed transaction to the blockchain.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "sendTransaction" |
| params | array | Yes | Request parameters array |
params[0] - Transaction Data:
- Type:
string - Description: Fully-signed transaction as base58 or base64 encoded string
- Format: Serialized, signed transaction
params[1] - Configuration (optional):
- Type:
object - Fields:
encoding(string, optional): Encoding of transaction data ("base58" | "base64")- Default: "base58"
skipPreflight(boolean, optional): Skip preflight transaction checks- Default: false
preflightCommitment(string, optional): Commitment level for preflight- Default: "finalized"
maxRetries(number, optional): Maximum retries for transactionminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | string | Transaction signature (base58-encoded) |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "sendTransaction",
"params": [
"4hXTCkRzt9WyecNzV1XPgCDfGAZzQKNxLXgynz5QDuWWPSAZBZSHptvWRL3BjCvzUXRdKvHL2b7yGrRQcWyaqsaBCncVG7BFggS8w9snUts67BSh3EqKpXLUm5UMHfD7ZBe9GhARjbNQMLJ1QD3Spr6oMTBU6EhdB4RD8CP2xUxr2u3d6fos36PD98XS6oX8TQjLpsMwncs5DAMiD4nNnR8NBfyghGCWvCVifVwvA8B8TJxE1aiyiv2L429BCWfyzAme5sZW8rDb14NeCQHhZbtNqfXhcp2tAnaAT",
{
"encoding": "base58"
}
]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": "2id3YC2jK9G5Wo2phDx4gJVAew8DcY5NAojnVuao8rkxwPYPe8cSwE5GzhEgJA2y8fVjDEo6iR6ykBvDxrTQrtpb",
"id": 1
}Credits: 10
getSignaturesForAddress
Returns confirmed signatures for transactions involving an address, ordered from newest to oldest.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getSignaturesForAddress" |
| params | array | Yes | Request parameters array |
params[0] - Account Address:
- Type:
string - Description: Base58-encoded account address to query
- Example:
"Vote111111111111111111111111111111111111111"
params[1] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment level- Default: "finalized"
limit(number, optional): Maximum number of signatures to return (1-1000)- Default: 1000
before(string, optional): Start searching backwards from this transaction signatureuntil(string, optional): Search until this transaction signature is reachedminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | array | Array of transaction signature information objects |
| result[].signature | string | Transaction signature (base58-encoded) |
| result[].slot | number | Slot containing the transaction |
| result[].err | object | null | Error if transaction failed, null if succeeded |
| result[].memo | string | null | Memo associated with the transaction, if any |
| result[].blockTime | number | null | Estimated production time (Unix timestamp) |
| result[].confirmationStatus | string | Confirmation status ("finalized" | "confirmed" | "processed") |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSignaturesForAddress",
"params": [
"Vote111111111111111111111111111111111111111",
{
"limit": 10
}
]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": [
{
"signature": "5h6xBEauJ3PK6SWCZ1PGjBvj8vHdmdHzdvpHg2RMnvjCCBSFcmZWKJw7xR9gmTmLhb9Q8YbHxnhF2o5aMK3pTjjd",
"slot": 123456789,
"err": null,
"memo": null,
"blockTime": 1699564800,
"confirmationStatus": "finalized"
},
{
"signature": "2nBhEBYYvfaAe16UMNqRHre4YNSskvuYgx3M6E4JP1oDYvZEJHvoPzyUidNgNX5r9sTyN1J9UxtbCXy2rqYcuyuv",
"slot": 123456788,
"err": null,
"memo": null,
"blockTime": 1699564799,
"confirmationStatus": "finalized"
}
],
"id": 1
}Credits: 5
Network Methods
getHealth
Returns the current health status of the node.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getHealth" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | string | "ok" if node is healthy |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getHealth"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": "ok",
"id": 1
}Credits: 1
getSlot
Returns the current slot.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getSlot" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | number | Current slot number |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSlot"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": 123456789,
"id": 1
}Credits: 1
getLatestBlockhash
Returns the latest blockhash.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getLatestBlockhash" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| context.slot | number | Slot at which blockhash was retrieved |
| value.blockhash | string | Latest blockhash (base58-encoded) |
| value.lastValidBlockHeight | number | Last block height at which blockhash is valid |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getLatestBlockhash",
"params": [
{
"commitment": "confirmed"
}
]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 123456789
},
"value": {
"blockhash": "EkSnNWid2cvwEVnVx9aBqawnmiCNiDgp3gUdkDPTKN1N",
"lastValidBlockHeight": 123456999
}
},
"id": 1
}Credits: 1
getVersion
Returns the current Solana version running on the node.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getVersion" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result.solana-core | string | Software version of solana-core |
| result.feature-set | number | Unique identifier of the current software's feature set |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getVersion"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"solana-core": "1.18.0",
"feature-set": 3241752015
},
"id": 1
}Credits: 1
getGenesisHash
Returns the genesis hash for the blockchain.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getGenesisHash" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | string | Genesis hash (base58-encoded) |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getGenesisHash"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d",
"id": 1
}Credits: 1
getEpochInfo
Returns information about the current epoch.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getEpochInfo" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| result.absoluteSlot | number | Current absolute slot |
| result.blockHeight | number | Current block height |
| result.epoch | number | Current epoch |
| result.slotIndex | number | Current slot relative to the start of the current epoch |
| result.slotsInEpoch | number | Number of slots in this epoch |
| result.transactionCount | number | null | Total number of transactions processed without error since genesis |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getEpochInfo"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"absoluteSlot": 123456789,
"blockHeight": 123456000,
"epoch": 285,
"slotIndex": 123789,
"slotsInEpoch": 432000,
"transactionCount": 98765432100
},
"id": 1
}Credits: 1
getClusterNodes
Returns information about all the nodes participating in the cluster.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getClusterNodes" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | array | Array of cluster node information objects |
| result[].pubkey | string | Node public key (base58-encoded) |
| result[].gossip | string | null | Gossip network address |
| result[].tpu | string | null | TPU (Transaction Processing Unit) network address |
| result[].rpc | string | null | JSON RPC network address, or null if not available |
| result[].version | string | null | Software version, or null if not available |
| result[].featureSet | number | null | Feature set identifier, or null if not available |
| result[].shredVersion | number | null | Shred version, or null if not available |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getClusterNodes"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": [
{
"pubkey": "5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on",
"gossip": "10.239.6.48:8001",
"tpu": "10.239.6.48:8004",
"rpc": "10.239.6.48:8899",
"version": "1.18.0",
"featureSet": 3241752015,
"shredVersion": 63523
}
],
"id": 1
}Credits: 1
getEpochSchedule
Returns the epoch schedule information from this cluster's genesis config.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getEpochSchedule" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result.slotsPerEpoch | number | Maximum number of slots in each epoch |
| result.leaderScheduleSlotOffset | number | Number of slots before epoch start to calculate leader schedule |
| result.warmup | boolean | Whether epochs start short and grow |
| result.firstNormalEpoch | number | First normal-length epoch, log2(slotsPerEpoch) - log2(MINIMUM_SLOTS_PER_EPOCH) |
| result.firstNormalSlot | number | First normal-length slot |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getEpochSchedule"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"slotsPerEpoch": 432000,
"leaderScheduleSlotOffset": 432000,
"warmup": true,
"firstNormalEpoch": 14,
"firstNormalSlot": 524256
},
"id": 1
}Credits: 1
getIdentity
Returns the identity public key for the current node.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getIdentity" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result.identity | string | Identity public key of the node (base58-encoded) |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getIdentity"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"identity": "5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on"
},
"id": 1
}Credits: 1
getInflationGovernor
Returns the current inflation governor configuration.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getInflationGovernor" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment level
Response Schema:
| Field | Type | Description |
|---|---|---|
| result.initial | number | Initial inflation percentage from time 0 |
| result.terminal | number | Terminal inflation percentage |
| result.taper | number | Rate per year at which inflation is lowered |
| result.foundation | number | Percentage of total inflation allocated to foundation |
| result.foundationTerm | number | Duration of foundation pool inflation in years |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getInflationGovernor"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"initial": 0.08,
"terminal": 0.015,
"taper": 0.15,
"foundation": 0.05,
"foundationTerm": 7.0
},
"id": 1
}Credits: 1
getInflationRate
Returns the specific inflation values for the current epoch.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getInflationRate" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result.total | number | Total inflation rate |
| result.validator | number | Inflation rate allocated to validators |
| result.foundation | number | Inflation rate allocated to foundation |
| result.epoch | number | Epoch for which these inflation values are valid |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getInflationRate"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"total": 0.08,
"validator": 0.076,
"foundation": 0.004,
"epoch": 285
},
"id": 1
}Credits: 1
getLargestAccounts
Returns the 20 largest accounts by lamport balance.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getLargestAccounts" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelfilter(string, optional): Filter results by account type ("circulating" | "nonCirculating")
Response Schema:
| Field | Type | Description |
|---|---|---|
| context.slot | number | Slot at which data was retrieved |
| value | array | Array of account objects |
| value[].address | string | Base58-encoded address of the account |
| value[].lamports | number | Number of lamports in the account |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getLargestAccounts"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 123456789
},
"value": [
{
"address": "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
"lamports": 10000000000000000
},
{
"address": "EDNd1ycsydWYwVmrYZvqYazFqwk1QjBgAUKFjBoz1jKP",
"lamports": 5000000000000000
}
]
},
"id": 1
}Credits: 2
getLeaderSchedule
Returns the leader schedule for an epoch.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getLeaderSchedule" |
| params | array | No | Optional parameters array |
params[0] - Slot (optional):
- Type:
number - Description: Slot to fetch leader schedule for (current epoch if omitted)
params[1] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelidentity(string, optional): Validator identity to filter results (base58-encoded)
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | object | null | Dictionary of validator identities to their slot indices, or null if not available |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getLeaderSchedule",
"params": [
null,
{
"identity": "5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on"
}
]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on": [
0, 1, 2, 3, 4, 8, 9, 10, 11, 12
]
},
"id": 1
}Credits: 2
getMaxRetransmitSlot
Returns the maximum slot seen from retransmit stage.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getMaxRetransmitSlot" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | number | Maximum slot number |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getMaxRetransmitSlot"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": 123456789,
"id": 1
}Credits: 1
getMaxShredInsertSlot
Returns the maximum slot seen from the shred insert stage.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getMaxShredInsertSlot" |
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | number | Maximum slot number |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getMaxShredInsertSlot"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": 123456789,
"id": 1
}Credits: 1
getRecentPerformanceSamples
Returns a list of recent performance samples, ordered by slot from newest to oldest.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getRecentPerformanceSamples" |
| params | array | No | Optional parameters array |
params[0] - Limit (optional):
- Type:
number - Description: Number of samples to return (max 720)
- Default: 720
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | array | Array of performance sample objects |
| result[].slot | number | Slot number |
| result[].numTransactions | number | Number of transactions processed in the slot |
| result[].numSlots | number | Number of slots in the sample period |
| result[].samplePeriodSecs | number | Number of seconds in the sample period |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getRecentPerformanceSamples",
"params": [5]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": [
{
"slot": 123456789,
"numTransactions": 3500,
"numSlots": 60,
"samplePeriodSecs": 30
},
{
"slot": 123456729,
"numTransactions": 3450,
"numSlots": 60,
"samplePeriodSecs": 30
}
],
"id": 1
}Credits: 1
getRecentPrioritizationFees
Returns a list of prioritization fees from recent blocks.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getRecentPrioritizationFees" |
| params | array | No | Optional parameters array |
params[0] - Account Addresses (optional):
- Type:
array<string> - Description: Array of account addresses (base58-encoded) to filter by, max 128 accounts
- Example:
["11111111111111111111111111111111"]
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | array | Array of prioritization fee objects |
| result[].slot | number | Slot in which the fee was observed |
| result[].prioritizationFee | number | Per-compute-unit fee paid by at least one transaction in the slot, in micro-lamports |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getRecentPrioritizationFees",
"params": [
["11111111111111111111111111111111"]
]
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": [
{
"slot": 123456789,
"prioritizationFee": 1000
},
{
"slot": 123456788,
"prioritizationFee": 950
},
{
"slot": 123456787,
"prioritizationFee": 1050
}
],
"id": 1
}Credits: 1
getSlotLeader
Returns the current slot leader.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getSlotLeader" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | string | Node identity public key (base58-encoded) of the current slot leader |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSlotLeader"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": "5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on",
"id": 1
}Credits: 1
getStakeMinimumDelegation
Returns the stake minimum delegation amount, in lamports.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getStakeMinimumDelegation" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment level
Response Schema:
| Field | Type | Description |
|---|---|---|
| context.slot | number | Slot at which data was retrieved |
| value | number | Minimum stake delegation amount in lamports |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getStakeMinimumDelegation"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 123456789
},
"value": 1000000000
},
"id": 1
}Credits: 1
getSupply
Returns information about the current supply of tokens.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getSupply" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelexcludeNonCirculatingAccountsList(boolean, optional): Exclude list of non-circulating accounts- Default: false
Response Schema:
| Field | Type | Description |
|---|---|---|
| context.slot | number | Slot at which data was retrieved |
| value.total | number | Total supply in lamports |
| value.circulating | number | Circulating supply in lamports |
| value.nonCirculating | number | Non-circulating supply in lamports |
| value.nonCirculatingAccounts | array<string> | Array of non-circulating account addresses (if not excluded) |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSupply"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 123456789
},
"value": {
"total": 500000000000000000,
"circulating": 450000000000000000,
"nonCirculating": 50000000000000000,
"nonCirculatingAccounts": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
"EDNd1ycsydWYwVmrYZvqYazFqwk1QjBgAUKFjBoz1jKP"
]
}
},
"id": 1
}Credits: 1
getTransactionCount
Returns the current transaction count from the ledger.
HTTP Method: POST
Endpoint: https://nexus.fortiblox.com/rpc
Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| jsonrpc | string | Yes | JSON-RPC version (must be "2.0") |
| id | number/string | Yes | Request identifier |
| method | string | Yes | Method name: "getTransactionCount" |
| params | array | No | Optional configuration object |
params[0] - Configuration (optional):
- Type:
object - Fields:
commitment(string, optional): Commitment levelminContextSlot(number, optional): Minimum slot for request context
Response Schema:
| Field | Type | Description |
|---|---|---|
| result | number | Total transaction count |
Example Request:
curl -X POST https://nexus.fortiblox.com/rpc \
-H "X-API-Key: fbx_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getTransactionCount"
}'Example Response (200 OK):
{
"jsonrpc": "2.0",
"result": 98765432100,
"id": 1
}Credits: 1
Error Responses
All RPC methods may return standard JSON-RPC errors:
Invalid Request
{
"jsonrpc": "2.0",
"error": {
"code": -32600,
"message": "Invalid Request"
},
"id": null
}Method Not Found
{
"jsonrpc": "2.0",
"error": {
"code": -32601,
"message": "Method not found"
},
"id": 1
}Invalid Params
{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Invalid params"
},
"id": 1
}Internal Error
{
"jsonrpc": "2.0",
"error": {
"code": -32603,
"message": "Internal error",
"data": {
"err": "error details here"
}
},
"id": 1
}Rate Limits and Credits
All methods consume credits based on their complexity:
| Method Type | Credits | Examples |
|---|---|---|
| Simple reads | 1 | getHealth, getSlot, getBalance, getBlockHeight |
| Account queries | 1-3 | getAccountInfo (1), getMultipleAccounts (3) |
| Heavy queries | 5 | getBlock, getTransaction |
| Transactions | 10 | sendTransaction, simulateTransaction |
Rate limits apply based on your tier. See Pricing Guide for details.