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 Node
https://vexscan.io/api/rpcDirect (seed)
http://51.255.80.34:9933Direct (remote 1)
http://144.91.94.235:9934Direct (remote 2)
http://5.189.133.215:9935The 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 parametersidRequest 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
| Code | Meaning |
|---|---|
| -32700 | Parse error |
| -32600 | Invalid request |
| -32601 | Method not found |
| -32602 | Invalid params |
| -32603 | Internal error |
Rate Limits
The public testnet has generous rate limits. For sustained high-throughput use, connect directly to a validator node.
| Endpoint | Limit | Max Connections |
|---|---|---|
| vexscan.io/api/rpc | 100 req/s per IP | 1,000 |
| Direct validator RPC | No limit | 4,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 blocksPython
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)