VexScan
Testnet

API Documentation

Vexidus uses the JSON-RPC 2.0 protocol. All endpoints are available over HTTP POST. No authentication is required for the public testnet.

Connection

The public testnet RPC is available at the following endpoints:

Seed Nodehttps://vexscan.io/api/rpc
Direct (seed)http://51.255.80.34:9933
Direct (remote 1)http://144.91.94.235:9934
Direct (remote 2)http://5.189.133.215:9935

The VexScan proxy (/api/rpc) is recommended for browser-based applications as it handles CORS.

Request Format

All requests use HTTP POST with a JSON body following the JSON-RPC 2.0 specification:

{
  "jsonrpc": "2.0",
  "method": "vex_getBalance",
  "params": ["0x000000000000000000000000000000000000000000000000000000000000001", "VXS"],
  "id": 1
}
jsonrpcAlways "2.0"
methodThe RPC method name (e.g., "vex_getBalance")
paramsArray of positional parameters
idRequest identifier (integer or string)

Response Format

// Success
{
  "jsonrpc": "2.0",
  "result": "161800000000000000",
  "id": 1
}

// Error
{
  "jsonrpc": "2.0",
  "error": { "code": -32602, "message": "Invalid params" },
  "id": 1
}

Error Codes

CodeMeaning
-32700Parse error
-32600Invalid request
-32601Method not found
-32602Invalid params
-32603Internal error

Rate Limits

The public testnet has generous rate limits. For sustained high-throughput use, connect directly to a validator node.

EndpointLimitMax Connections
vexscan.io/api/rpc100 req/s per IP1,000
Direct validator RPCNo limit4,096

Examples

cURL

curl -X POST https://vexscan.io/api/rpc \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"vex_getNetworkStats","params":[],"id":1}'

JavaScript (fetch)

const res = await fetch('https://vexscan.io/api/rpc', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'vex_getRecentBlocks',
    params: [10],
    id: 1,
  }),
});
const { result } = await res.json();
console.log(result); // Array of recent blocks

Python

import requests

resp = requests.post("https://vexscan.io/api/rpc", json={
    "jsonrpc": "2.0",
    "method": "vex_getBalance",
    "params": ["0x0000000000000000000000000000000000000000000000000000000000000001", "VXS"],
    "id": 1,
})
print(resp.json()["result"])  # Balance in raw units (9 decimals)

See Also