API del explorador

xrs-node 0.1.1puerto 50008

JSON-RPC 2.0 en /, REST bajo /v2.

Base

Basehttp://<host>:50008
Envoltorio{"success":true,"data":…}
Error{"success":false,"error":"…"}, HTTP 200
Las listas añaden"pagination":{total,page,page_size,total_pages}
page_size1–100
Historial de cuentapage_size ≤ 200, page ≤ 50, cursor before
Rutas de registroafter / next_after, 32 por página
Búsquedas por firma o hashlos últimos 1,000 bloques
/v2/block/slot/{n}llega al disco
CORS*

JSON-RPC

MétodoParámetrosResultado
getBalance[address]{context:{slot}, value: lamports}
getAccountInfo[address]value:{lamports, owner:"system", executable:false, stake, isValidator}
getSlot—último slot
getBlockHeight—altura de la cadena
getLatestBlockhash, alias getRecentBlockhash—value:{blockhash: hex, lastValidBlockHeight: slot + 150}
getBlock[slot]{blockhash, parentSlot, blockTime, blockHeight, transactions: cuenta}
getTransaction[signature]{slot, blockTime, meta:{err, fee, instructionOutcomes}, transaction}
getSignaturesForAddress[address, {limit}]una fila por recibo, el más reciente primero; limit ≤ 200
getHealth—"ok"
getVersion—{"solana-core": "1.0.0", "xeriscoin": "1.0.0"}, fijo en el código
curl -s -X POST http://138.197.116.81:50008/ \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"getLatestBlockhash"}' # {"jsonrpc":"2.0","id":1,"result":{"context":{"slot":…},"value":{"blockhash":"<hex>","lastValidBlockHeight":…}}}
jsonrpc e id son obligatorios. Los errores llegan en result.error, nunca en el nivel superior. Connection de @solana/web3.js falla aquí: sendTransaction, requestAirdrop, getEpochInfo responden Unknown method.

REST v2

/v2/statsaltura, slot, totales, tps_estimate
/v2/blocks?page=&page_size=más recientes primero; hash hex
/v2/block/slot/{slot}detalle del bloque; las filas dicen included
/v2/block/hash/{hash}igual, solo memoria
/v2/transactions?page=&page_size=más recientes primero
/v2/tx/{signature}status, instructions[], confirmations
/v2/account/{address}balance, stake, is_validator; nunca 404
/v2/account/{address}/transactions?page=&page_size=&before=recibos; cursor
/v2/validatorsstake, stake_percentage, blocks_proposed
/v2/tokens?after=&limit=tokens; next_after
/v2/token/{id}/holdersholders[], holder_count
/v2/rwatokens RWA
/v2/rwa/{id}token, rwa, contract, holders
/v2/contractscontract_id, type, owner, is_active
/v2/contract/{id}?page=&page_size=contract; registros paginados, límite 32
/v2/poolsreserve_a, reserve_b, fee_bps; precios como strings

Las rutas heredadas /blocks, /balances, /stakes y /wallet/{address} siguen respondiendo, sin envoltorio.

curl -s 'http://138.197.116.81:50008/v2/account/<address>/transactions?page_size=5' # {"success":true,"data":[…],"pagination":{"total":…,"page":1,"page_size":5,"total_pages":…},"cursor":…}

Estado de la transacción

confirmedtodas las instrucciones confirmadas
partialalgunas
failedninguna, o el pagador no cubrió la comisión
includeden un bloque; resultado no indexado
Almacén de recibosmeta.errinstructionOutcomes
ninguno"OutcomeUnknown"null
sin filas"ExecutionFailed"[]
todas oknull[{index, ok:true}…]
alguna falló{"InstructionError":[index,"ExecutionFailed"]}lista completa

confirmations es current_slot − block_slot. Pasados 64 el bloque es final en la ruta pública. Envío: POST /submit; formato: sobre.

Formas

GET /v2/stats { "success": true, "data": { "block_height": usize, "current_slot": u64, "total_transactions": usize, "total_accounts": usize, "total_staked": u64, "validator_count": usize, "tps_estimate": f64 } }
GET /v2/tx/{signature} { "success": true, "data": { "signature": "<base58>", "block_slot": u64, "block_hash": "<hex>", "poh_timestamp": u128, "from": "<str>", "to": "<str>", "amount": u64, "amount_xrs": f64, "tx_type": "<str>", "details": object | null, "status": "confirmed" | "partial" | "failed" | "included", "instructions": [ { "index": u32, "status": "confirmed" | "failed" } ], "confirmations": u64 } }
GET /v2/account/{address} { "success": true, "data": { "address": "<str>", "balance": u64, "balance_xrs": f64, "stake": u64, "is_validator": bool, "blocks_proposed": u64 } }

Unidades

poh_timestampUnix ms
blockTimeUnix s
amountlamports
amount_xrsXRS
amount en attest_reputationpuntuación
amount en oracle_submitvalor
amount en open_dispute, dispute_dealfianza
amount en open_channeldepósito

tx_type es contract_call:<method> en las vistas en vivo y contract_call en los recibos; el historial de cuenta antepone sent: o received:.