⌘/
Live
← Back to Docs

pRPC Integration

Technical

How we connect to real Xandeum pNodes via pnRPC

Real Data Integration

This platform connects to real Xandeum pnRPC endpoints on port 6000, not mock data. All storage metrics, uptime values, and performance data come directly from the Xandeum network.

Overview

The Xandeum network provides pNode data through a specialized RPC interface called pnRPC, which runs on port 6000 (distinct from the standard Solana RPC port 8899). This platform queries multiple seed nodes to retrieve live network data.

3

Seed Nodes

6000

pnRPC Port

4

RPC Methods

Seed Nodes

We query these known pNodes in order until one responds successfully:

1
192.190.136.28:6000
Primary
2
173.212.220.65:6000
Fallback
3
192.190.136.37:6000
Fallback

Implementation: See src/services/pnode.service.ts lines 250-257 for the seed node configuration and fallback logic.

RPC Methods

get-pods-with-stats

Primary

Primary data source - Returns all pNodes with storage, uptime, and performance metrics

Port 6000
Source:pnRPC Seed Nodes
View example response
{
  "jsonrpc": "2.0",
  "result": {
    "pods": [{
      "address": "192.190.136.28",
      "is_public": true,
      "pubkey": "6cXp...",
      "rpc_port": 8899,
      "storage_committed": 107374182400,
      "storage_usage_percent": 0.0000467,
      "storage_used": 5013504,
      "uptime": 1234567,
      "version": "2.0.15"
    }]
  },
  "id": 1
}

get-stats

Detailed metrics for a specific node - CPU, RAM, network packets, streams

Port 6000
Source:pnRPC Seed Nodes
View example response
{
  "jsonrpc": "2.0",
  "result": {
    "active_streams": 0,
    "cpu_percent": 12.5,
    "current_index": 0,
    "file_size": 107374182400,
    "last_updated": 1703000000,
    "packets_received": 1500000,
    "packets_sent": 1200000,
    "ram_total": 8589934592,
    "ram_used": 4294967296,
    "total_bytes": 5013504,
    "total_pages": 1024,
    "uptime": 1234567
  },
  "id": 1
}

getClusterNodes

Standard Solana RPC - Returns all cluster nodes with gossip, TPU, and RPC endpoints

Port 8899
Source:Xandeum RPC
View example response
{
  "jsonrpc": "2.0",
  "result": [{
    "pubkey": "6cXp...",
    "gossip": "192.190.136.28:8001",
    "tpu": "192.190.136.28:8003",
    "rpc": "192.190.136.28:8899",
    "version": "2.0.15",
    "featureSet": 123456789,
    "shredVersion": 1234
  }],
  "id": 1
}

getEpochInfo

Current epoch information - slot index, slots in epoch, transaction count

Port 8899
Source:Xandeum RPC
View example response
{
  "jsonrpc": "2.0",
  "result": {
    "absoluteSlot": 166598,
    "blockHeight": 166500,
    "epoch": 27,
    "slotIndex": 8598,
    "slotsInEpoch": 8192,
    "transactionCount": 22661093
  },
  "id": 1
}

Data Flow

1
Client Browser/api/prpcRequest pNode data
2
/api/prpcpnRPC Seed NodesForward to port 6000
3
Seed Node/api/prpcReturn pod list with stats
4
/api/prpcGeoIP ServiceEnrich with location data
5
/api/prpcClient BrowserReturn formatted pNodes

Real Data Retrieved

pubkey

Node public key for identification

address

IP address of the pNode

version

Software version running

storage_committed

Total storage capacity in bytes

storage_used

Used storage in bytes

storage_usage_percent

Utilization percentage

uptime

Uptime in seconds (real value)

cpu_percent

CPU utilization percentage

ram_used / ram_total

Memory usage

packets_sent / received

Network traffic

Error Handling & Fallbacks

  • Seed nodes are tried in order - if one fails, the next is attempted
  • 5-second timeout for get-pods, 10-second for get-pods-with-stats
  • Browser requests are proxied through /api/prpc to avoid CORS
  • React Query provides 30-second caching to reduce redundant requests

Code Reference

Key files implementing pRPC integration

src/services/pnode.service.tsMain pNode service with pnRPC calls
src/app/api/prpc/route.tsAPI proxy for CORS avoidance
src/services/geoip.service.tsGeoIP enrichment for node locations