Saltar al contenido principal

Referencia de la API RPC

Savitri Network expone una API JSON-RPC 2.0 sobre HTTP. Todas las solicitudes se envían como POST a / o /rpc.

Conexión

  • Endpoint predeterminado: http://127.0.0.1:8545/rpc
  • Protocolo: JSON-RPC 2.0 (sin endpoints REST)
  • TLS: No terminado por el servidor RPC. Usa un proxy inverso (nginx, Caddy) para producción.
  • CORS: Restringido a los orígenes localhost y 127.0.0.1 de forma predeterminada.

Limitación de Velocidad

LímiteValor
Global200 solicitudes/segundo
Por IP50 solicitudes/segundo
Tamaño máximo de lote100 solicitudes
Tamaño máximo del cuerpo1 MB

Superar los límites devuelve HTTP 429 (Demasiadas Solicitudes).

Formato de Solicitud

{
"jsonrpc": "2.0",
"method": "method_name",
"params": [],
"id": 1
}

Los parámetros pueden pasarse como array posicional u objeto con nombre.

Solicitudes en Lote

Envía un array de solicitudes para procesar múltiples llamadas en una sola solicitud HTTP:

[
{"jsonrpc": "2.0", "method": "savitri_blockNumber", "params": [], "id": 1},
{"jsonrpc": "2.0", "method": "savitri_health", "params": [], "id": 2}
]

Máximo 100 solicitudes por lote.

Códigos de Error

CódigoSignificado
-32700Error de análisis (JSON inválido)
-32600Solicitud inválida (no es JSON-RPC 2.0)
-32601Método no encontrado
-32602Parámetros inválidos
-32603Error interno del servidor
-32001Recurso no encontrado
-32002Servicio no disponible (almacenamiento/mempool)
-32003No implementado

Referencia de Métodos

Métodos de Cadena

MétodoParámetrosDescripción
chain_getBlockHeight[]Obtener la altura actual del bloque
savitri_blockNumber[]Alias de chain_getBlockHeight
chain_getBlock[height]Obtener bloque por altura
savitri_getBlockByHeight[height]Alias de chain_getBlock
chain_getBlockByNumber[height]Obtener bloque por altura
chain_getBlockByHash[hash]Obtener bloque por hash (escanea los últimos 1000 bloques)
chain_getLatestBlock[]Obtener el bloque más reciente
chain_getChainInfo[]Obtener metadatos de la cadena (id, nombre, altura, versión)
savitri_getBlockHash[height]Obtener el hash del bloque en la altura indicada

Métodos de Transacción

MétodoParámetrosDescripción
tx_sendTransaction[raw_tx_hex]Enviar transacción firmada
savitri_sendRawTransaction[raw_tx_hex]Alias de tx_sendTransaction
tx_getTransaction[hash]Obtener transacción por hash
savitri_getTransaction[hash]Alias de tx_getTransaction
tx_getTransactionReceipt[hash]Obtener recibo de transacción con estado
tx_getTransactionsByBlock[height]Obtener todas las transacciones de un bloque
tx_getPendingTransactions[]Listar transacciones pendientes en el mempool

Métodos de Cuenta

MétodoParámetrosDescripción
account_getAccount[address]Obtener saldo y nonce
savitri_getAccount[address]Alias de account_getAccount
account_getBalance[address]Obtener solo el saldo
account_getNonce[address]Obtener solo el nonce
account_getTokenBalance[address, token_id]Obtener saldo de token

Métodos de Red

MétodoParámetrosDescripción
net_version[]Obtener versión de red
net_peerCount[]Obtener número de pares conectados
net_listening[]Verificar si el nodo está escuchando
net_peers[]Listar pares conectados con puntuaciones
net_nodeInfo[]Obtener información del nodo (id, modo, pares, altura)

Métodos de Mempool

MétodoParámetrosDescripción
mempool_getSize[]Obtener conteos pendientes y en cola
mempool_getPendingTransactions[]Listar transacciones pendientes
mempool_getTransactionStatus[hash]Verificar si una transacción está en el mempool

Métodos de Consenso / PoU

MétodoParámetrosDescripción
pou_getConsensusState[]Obtener puntuación PoU local, líder, época
savitri_pouLocal[]Alias de pou_getConsensusState
savitri_pouPeers[]Obtener todas las puntuaciones PoU de los pares
pou_getValidators[]Listar validadores con puntuaciones
pou_getStakeInfo[address]Obtener información de stake para una dirección
pou_getEpochInfo[]Obtener detalles de la época actual
savitri_pouGroups[]Listar grupos PoU (solo masternode)
savitri_pouMasternodes[]Listar masternodes (solo masternode)
savitri_pouGroupNodes[group_id]Listar nodos de un grupo (solo masternode)

Métodos de Token

MétodoParámetrosDescripción
token_getTokenInfo[token_id]Obtener metadatos del token (nombre, símbolo, decimales, suministro)
token_getTokenBalance[address, token_id]Obtener saldo de token
token_getTokenTransfers[token_id]Obtener historial de transferencias

Métodos de Utilidad

MétodoParámetrosDescripción
savitri_health[]Verificación de estado (status, servicio, modo)
savitri_protocolVersion[]Obtener versión del protocolo
savitri_syncing[]Obtener estado de sincronización (bloque actual/más alto)
savitri_gasPrice[]Obtener precio actual del gas
savitri_estimateGas[]Estimar gas para una transacción
savitri_faucetClaim[address]Reclamar tokens de testnet (5 SAVT)

Métodos de Monolith

MétodoParámetrosDescripción
savitri_getMonolithHead[]Obtener los últimos metadatos del monolith
savitri_getMonolithsForRange[start, end]Obtener monoliths en un rango de altura
savitri_getMonolith[monolith_id]Obtener el bloque monolith completo

Tipos de Respuesta

Consulta Tipos de Respuesta para los esquemas JSON detallados de cada objeto de respuesta.