FortiBlox LogoFortiBlox Docs
NexusRPC Nodes

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_KEY

Account Methods

getAccountInfo

Returns all information associated with an account.

HTTP Method: POST

Endpoint: https://nexus.fortiblox.com/rpc

Request Parameters:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier for matching responses
methodstringYesMethod name: "getAccountInfo"
paramsarrayYesRequest 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 data
      • offset (number): Byte offset to start reading
      • length (number): Number of bytes to return
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
context.apiVersionstringAPI version
context.slotnumberSlot at which data was retrieved
valueobject | nullAccount information or null if account doesn't exist
value.dataarray | stringAccount data in requested encoding
value.executablebooleanWhether account is executable (program)
value.lamportsnumberBalance in lamports
value.ownerstringBase58-encoded public key of program owning account
value.rentEpochnumberEpoch at which rent is next due
value.spacenumberData 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getBalance"
paramsarrayYesRequest 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:

FieldTypeDescription
context.apiVersionstringAPI version
context.slotnumberSlot at which balance was retrieved
valuenumberAccount 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getMultipleAccounts"
paramsarrayYesRequest 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 level
    • encoding (string, optional): Encoding for account data
    • dataSlice (object, optional): Limit returned account data
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
context.slotnumberSlot at which data was retrieved
valuearrayArray 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getBlock"
paramsarrayYesRequest 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:

FieldTypeDescription
blockHeightnumberBlock height
blockTimenumberEstimated production time (Unix timestamp)
blockhashstringBlock hash
parentSlotnumberParent slot number
previousBlockhashstringPrevious block hash
transactionsarrayArray of transaction objects
rewardsarrayBlock 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getBlockHeight"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
resultnumberCurrent 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getBlockTime"
paramsarrayYesRequest parameters array

params[0] - Slot:

  • Type: number
  • Description: Slot number to get block time for
  • Example: 123456789

Response Schema:

FieldTypeDescription
resultnumber | nullEstimated 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getBlocks"
paramsarrayYesRequest 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:

FieldTypeDescription
resultarray<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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getBlocksWithLimit"
paramsarrayYesRequest 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:

FieldTypeDescription
resultarray<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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getFirstAvailableBlock"

Response Schema:

FieldTypeDescription
resultnumberSlot 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getTransaction"
paramsarrayYesRequest 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:

FieldTypeDescription
slotnumberSlot in which transaction was processed
blockTimenumberEstimated production time (Unix timestamp)
transactionobjectTransaction object with message and signatures
metaobjectTransaction status metadata
meta.errobject | nullError if transaction failed, null if succeeded
meta.feenumberTransaction fee in lamports
meta.preBalancesarrayAccount balances before transaction
meta.postBalancesarrayAccount balances after transaction
meta.logMessagesarrayLog messages from transaction
meta.innerInstructionsarrayInner instructions
meta.rewardsarrayRewards 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "sendTransaction"
paramsarrayYesRequest 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 transaction
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
resultstringTransaction 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getSignaturesForAddress"
paramsarrayYesRequest 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 signature
    • until (string, optional): Search until this transaction signature is reached
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
resultarrayArray of transaction signature information objects
result[].signaturestringTransaction signature (base58-encoded)
result[].slotnumberSlot containing the transaction
result[].errobject | nullError if transaction failed, null if succeeded
result[].memostring | nullMemo associated with the transaction, if any
result[].blockTimenumber | nullEstimated production time (Unix timestamp)
result[].confirmationStatusstringConfirmation 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getHealth"

Response Schema:

FieldTypeDescription
resultstring"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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getSlot"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
resultnumberCurrent 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getLatestBlockhash"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
context.slotnumberSlot at which blockhash was retrieved
value.blockhashstringLatest blockhash (base58-encoded)
value.lastValidBlockHeightnumberLast 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getVersion"

Response Schema:

FieldTypeDescription
result.solana-corestringSoftware version of solana-core
result.feature-setnumberUnique 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getGenesisHash"

Response Schema:

FieldTypeDescription
resultstringGenesis 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getEpochInfo"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
result.absoluteSlotnumberCurrent absolute slot
result.blockHeightnumberCurrent block height
result.epochnumberCurrent epoch
result.slotIndexnumberCurrent slot relative to the start of the current epoch
result.slotsInEpochnumberNumber of slots in this epoch
result.transactionCountnumber | nullTotal 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getClusterNodes"

Response Schema:

FieldTypeDescription
resultarrayArray of cluster node information objects
result[].pubkeystringNode public key (base58-encoded)
result[].gossipstring | nullGossip network address
result[].tpustring | nullTPU (Transaction Processing Unit) network address
result[].rpcstring | nullJSON RPC network address, or null if not available
result[].versionstring | nullSoftware version, or null if not available
result[].featureSetnumber | nullFeature set identifier, or null if not available
result[].shredVersionnumber | nullShred 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getEpochSchedule"

Response Schema:

FieldTypeDescription
result.slotsPerEpochnumberMaximum number of slots in each epoch
result.leaderScheduleSlotOffsetnumberNumber of slots before epoch start to calculate leader schedule
result.warmupbooleanWhether epochs start short and grow
result.firstNormalEpochnumberFirst normal-length epoch, log2(slotsPerEpoch) - log2(MINIMUM_SLOTS_PER_EPOCH)
result.firstNormalSlotnumberFirst 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getIdentity"

Response Schema:

FieldTypeDescription
result.identitystringIdentity 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getInflationGovernor"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level

Response Schema:

FieldTypeDescription
result.initialnumberInitial inflation percentage from time 0
result.terminalnumberTerminal inflation percentage
result.tapernumberRate per year at which inflation is lowered
result.foundationnumberPercentage of total inflation allocated to foundation
result.foundationTermnumberDuration 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getInflationRate"

Response Schema:

FieldTypeDescription
result.totalnumberTotal inflation rate
result.validatornumberInflation rate allocated to validators
result.foundationnumberInflation rate allocated to foundation
result.epochnumberEpoch 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getLargestAccounts"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level
    • filter (string, optional): Filter results by account type ("circulating" | "nonCirculating")

Response Schema:

FieldTypeDescription
context.slotnumberSlot at which data was retrieved
valuearrayArray of account objects
value[].addressstringBase58-encoded address of the account
value[].lamportsnumberNumber 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getLeaderSchedule"
paramsarrayNoOptional 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 level
    • identity (string, optional): Validator identity to filter results (base58-encoded)

Response Schema:

FieldTypeDescription
resultobject | nullDictionary 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getMaxRetransmitSlot"

Response Schema:

FieldTypeDescription
resultnumberMaximum 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getMaxShredInsertSlot"

Response Schema:

FieldTypeDescription
resultnumberMaximum 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getRecentPerformanceSamples"
paramsarrayNoOptional parameters array

params[0] - Limit (optional):

  • Type: number
  • Description: Number of samples to return (max 720)
  • Default: 720

Response Schema:

FieldTypeDescription
resultarrayArray of performance sample objects
result[].slotnumberSlot number
result[].numTransactionsnumberNumber of transactions processed in the slot
result[].numSlotsnumberNumber of slots in the sample period
result[].samplePeriodSecsnumberNumber 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getRecentPrioritizationFees"
paramsarrayNoOptional 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:

FieldTypeDescription
resultarrayArray of prioritization fee objects
result[].slotnumberSlot in which the fee was observed
result[].prioritizationFeenumberPer-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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getSlotLeader"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
resultstringNode 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getStakeMinimumDelegation"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level

Response Schema:

FieldTypeDescription
context.slotnumberSlot at which data was retrieved
valuenumberMinimum 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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getSupply"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level
    • excludeNonCirculatingAccountsList (boolean, optional): Exclude list of non-circulating accounts
      • Default: false

Response Schema:

FieldTypeDescription
context.slotnumberSlot at which data was retrieved
value.totalnumberTotal supply in lamports
value.circulatingnumberCirculating supply in lamports
value.nonCirculatingnumberNon-circulating supply in lamports
value.nonCirculatingAccountsarray<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:

ParameterTypeRequiredDescription
jsonrpcstringYesJSON-RPC version (must be "2.0")
idnumber/stringYesRequest identifier
methodstringYesMethod name: "getTransactionCount"
paramsarrayNoOptional configuration object

params[0] - Configuration (optional):

  • Type: object
  • Fields:
    • commitment (string, optional): Commitment level
    • minContextSlot (number, optional): Minimum slot for request context

Response Schema:

FieldTypeDescription
resultnumberTotal 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 TypeCreditsExamples
Simple reads1getHealth, getSlot, getBalance, getBlockHeight
Account queries1-3getAccountInfo (1), getMultipleAccounts (3)
Heavy queries5getBlock, getTransaction
Transactions10sendTransaction, simulateTransaction

Rate limits apply based on your tier. See Pricing Guide for details.


Additional Resources