Aller au contenu principal

Référence de l'API RPC

Le réseau Savitri expose une API JSON-RPC 2.0 via HTTP. Toutes les requêtes sont envoyées en POST à / ou /rpc.

Connexion

  • Point d'accès par défaut : http://127.0.0.1:8545/rpc
  • Protocole : JSON-RPC 2.0 (pas de points d'accès REST)
  • TLS : Non pris en charge directement par le serveur RPC. Utilisez un proxy inverse (nginx, Caddy) en production.
  • CORS : Restreint aux origines localhost et 127.0.0.1 par défaut.

Limitation de Débit

LimiteValeur
Globale200 requêtes/seconde
Par IP50 requêtes/seconde
Taille maximale d'un lot100 requêtes
Taille maximale du corps1 Mo

Le dépassement des limites renvoie HTTP 429 (Trop de requêtes).

Format de Requête

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

Les paramètres peuvent être passés sous forme de tableau positionnel ou d'objet nommé.

Requêtes par Lot

Envoyez un tableau de requêtes pour traiter plusieurs appels dans une seule requête HTTP :

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

Maximum 100 requêtes par lot.

Codes d'Erreur

CodeSignification
-32700Erreur d'analyse (JSON invalide)
-32600Requête invalide (pas JSON-RPC 2.0)
-32601Méthode introuvable
-32602Paramètres invalides
-32603Erreur interne du serveur
-32001Ressource introuvable
-32002Service indisponible (stockage/mempool)
-32003Non implémenté

Référence des Méthodes

Méthodes de Chaîne

MéthodeParamètresDescription
chain_getBlockHeight[]Obtenir la hauteur de bloc actuelle
savitri_blockNumber[]Alias de chain_getBlockHeight
chain_getBlock[height]Obtenir un bloc par hauteur
savitri_getBlockByHeight[height]Alias de chain_getBlock
chain_getBlockByNumber[height]Obtenir un bloc par hauteur
chain_getBlockByHash[hash]Obtenir un bloc par hash (analyse les 1000 derniers blocs)
chain_getLatestBlock[]Obtenir le bloc le plus récent
chain_getChainInfo[]Obtenir les métadonnées de la chaîne (id, nom, hauteur, version)
savitri_getBlockHash[height]Obtenir le hash du bloc à une hauteur donnée

Méthodes de Transaction

MéthodeParamètresDescription
tx_sendTransaction[raw_tx_hex]Soumettre une transaction signée
savitri_sendRawTransaction[raw_tx_hex]Alias de tx_sendTransaction
tx_getTransaction[hash]Obtenir une transaction par hash
savitri_getTransaction[hash]Alias de tx_getTransaction
tx_getTransactionReceipt[hash]Obtenir le reçu de transaction avec statut
tx_getTransactionsByBlock[height]Obtenir toutes les transactions d'un bloc
tx_getPendingTransactions[]Lister les transactions en attente dans le mempool

Méthodes de Compte

MéthodeParamètresDescription
account_getAccount[address]Obtenir le solde et le nonce
savitri_getAccount[address]Alias de account_getAccount
account_getBalance[address]Obtenir le solde uniquement
account_getNonce[address]Obtenir le nonce uniquement
account_getTokenBalance[address, token_id]Obtenir le solde de jeton

Méthodes Réseau

MéthodeParamètresDescription
net_version[]Obtenir la version du réseau
net_peerCount[]Obtenir le nombre de pairs connectés
net_listening[]Vérifier si le nœud écoute
net_peers[]Lister les pairs connectés avec leurs scores
net_nodeInfo[]Obtenir les infos du nœud (id, mode, pairs, hauteur)

Méthodes Mempool

MéthodeParamètresDescription
mempool_getSize[]Obtenir le nombre de transactions en attente et en file
mempool_getPendingTransactions[]Lister les transactions en attente
mempool_getTransactionStatus[hash]Vérifier si une transaction est dans le mempool

Méthodes Consensus / PoU

MéthodeParamètresDescription
pou_getConsensusState[]Obtenir le score PoU local, le leader, l'époque
savitri_pouLocal[]Alias de pou_getConsensusState
savitri_pouPeers[]Obtenir tous les scores PoU des pairs
pou_getValidators[]Lister les validateurs avec leurs scores
pou_getStakeInfo[address]Obtenir les infos de mise pour une adresse
pou_getEpochInfo[]Obtenir les détails de l'époque actuelle
savitri_pouGroups[]Lister les groupes PoU (masternode uniquement)
savitri_pouMasternodes[]Lister les masternodes (masternode uniquement)
savitri_pouGroupNodes[group_id]Lister les nœuds d'un groupe (masternode uniquement)

Méthodes de Jetons

MéthodeParamètresDescription
token_getTokenInfo[token_id]Obtenir les métadonnées d'un jeton (nom, symbole, décimales, offre)
token_getTokenBalance[address, token_id]Obtenir le solde d'un jeton
token_getTokenTransfers[token_id]Obtenir l'historique des transferts

Méthodes Utilitaires

MéthodeParamètresDescription
savitri_health[]Vérification de l'état (statut, service, mode)
savitri_protocolVersion[]Obtenir la version du protocole
savitri_syncing[]Obtenir le statut de synchronisation (bloc actuel/plus élevé)
savitri_gasPrice[]Obtenir le prix du gaz actuel
savitri_estimateGas[]Estimer le gaz pour une transaction
savitri_faucetClaim[address]Réclamer des jetons de réseau de test (5 SAVT)

Méthodes Monolith

MéthodeParamètresDescription
savitri_getMonolithHead[]Obtenir les dernières métadonnées monolith
savitri_getMonolithsForRange[start, end]Obtenir les monolithes dans une plage de hauteurs
savitri_getMonolith[monolith_id]Obtenir le bloc monolith complet

Types de Réponse

Voir Types de Réponse pour les schémas JSON détaillés de chaque objet de réponse.