Passer au contenu principal
POST
/
crypto
/
rpc
/
{network}
curl --request POST \
  --url https://api.venice.ai/api/v1/crypto/rpc/{network} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "method": "eth_chainId",
  "params": [],
  "id": 1
}
'
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x1"
}
Transmet une requête JSON-RPC 2.0 (simple ou batch) à un nœud blockchain pris en charge. Prend en charge l’authentification par clé API et par portefeuille x402. La facturation se fait par crédit et est libellée dans votre solde Venice — un seul identifiant, une seule facture, pour toutes les chaînes ci-dessous.

Authentification

Cet endpoint prend en charge deux méthodes d’authentification :
  • Clé API : Authentification Bearer token standard via l’en-tête Authorization: Bearer <key>.
  • Portefeuille x402 : Paiement à l’utilisation avec des crédits USDC depuis un portefeuille sur Base ou Solana. Aucun compte Venice requis. Voir le guide x402 pour la configuration.
Les deux méthodes partagent les mêmes limites de débit et la même facturation (crédits Venice).

Réseaux pris en charge

Voir GET /crypto/rpc/networks pour la liste actuelle qui fait autorité. Couverture actuelle :
FamilleMainnetTestnets
Ethereumethereum-mainnetethereum-sepolia, ethereum-holesky
Polygonpolygon-mainnetpolygon-amoy
Arbitrumarbitrum-mainnetarbitrum-sepolia
Optimismoptimism-mainnetoptimism-sepolia
Basebase-mainnetbase-sepolia
Linealinea-mainnetlinea-sepolia
Avalanche C-Chainavalanche-mainnetavalanche-fuji
BNB Smart Chainbsc-mainnetbsc-testnet
Blastblast-mainnetblast-sepolia
zkSync Erazksync-mainnetzksync-sepolia
Starknetstarknet-mainnetstarknet-sepolia

Format des requêtes

Requête simple

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

Requête en batch

Un tableau de jusqu’à 100 objets JSON-RPC 2.0. Chaque élément est validé indépendamment ; si une méthode n’est pas prise en charge, l’ensemble du batch est rejeté avec un 400 et chaque nom de méthode fautive est listé dans le message d’erreur.
[
  { "jsonrpc": "2.0", "method": "eth_chainId", "params": [], "id": 1 },
  { "jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 2 }
]

Méthodes prises en charge et niveaux de tarification

Les méthodes sont classées en trois niveaux de crédit. Crédits consommés par appel = baseCredits[chain] × methodTier.
NiveauMultiplicateurExemples de méthodes
Standardeth_call, eth_getBalance, eth_blockNumber, eth_sendRawTransaction, eth_getLogs, eth_getTransactionReceipt, eth_estimateGas, net_version, web3_clientVersion, méthodes bundler ERC-4337 (eth_sendUserOperation, eth_estimateUserOperationGas, etc.), extensions spécifiques aux chaînes (zks_*, linea_*, bor_*, starknet_*)
Avancétrace_block, trace_call, trace_transaction, debug_traceCall, debug_traceTransaction, debug_traceBlockByHash, txpool_inspect, txpool_status, arbtrace_*
Largetrace_replayBlockTransactions, trace_replayTransaction, txpool_content, arbtrace_replayTransaction, arbtrace_replayBlockTransactions

Crédits de base par chaîne

baseCreditsChaînes
20Ethereum + tous les L2 EVM ci-dessus (Base, Optimism, Arbitrum, Polygon, Linea, Avalanche, BSC, Blast) et Starknet
30zkSync Era

Exemples de coût

Au tarif Venice de ~6,25 × 10⁻⁷ $ par crédit :
AppelCréditsCoût USD
eth_call sur Ethereum (20 × 1×)200,0000125 $
trace_transaction sur Ethereum (20 × 2×)400,0000250 $
trace_replayTransaction sur Ethereum (20 × 4×)800,0000500 $
eth_call sur zkSync (30 × 1×)300,0000188 $

Non pris en charge

  • Méthodes WebSocket uniquement (eth_subscribe, eth_unsubscribe) — ce proxy est HTTP uniquement. Faites du polling à la place, ou passez à un fournisseur WebSocket direct.
  • Méthodes de filtre avec état (eth_newFilter, eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter, eth_newBlockFilter, eth_newPendingTransactionFilter) — l’état du filtre est attaché à un seul backend en amont et se brise silencieusement sur un proxy HTTP à équilibrage de charge. Utilisez eth_getLogs (sans état) à la place.
  • Méthodes de minage / détention de clés (eth_sign, eth_accounts, eth_mining, eth_hashrate, eth_getWork, eth_submitWork) — les endpoints de fournisseurs hébergés ne détiennent pas les clés privées des utilisateurs, donc ces appels échouent toujours. Signez les transactions côté client et soumettez via eth_sendRawTransaction.
  • Méthodes non mappées — tout ce qui n’est pas explicitement sur la liste autorisée renvoie 400. Contactez le support pour demander des ajouts.

Facturation par élément de batch

Même lorsque la réponse HTTP est 200, des éléments individuels du batch peuvent renvoyer un champ error JSON-RPC (par exemple, une erreur de paramètres ou une méthode non prise en charge sur la chaîne cible). Venice facture ces éléments à 5 crédits chacun plutôt qu’au niveau complet de la méthode — une petite concession pour les erreurs normales d’« exploration de l’API ».
// Requête batch :
[
  { "jsonrpc": "2.0", "method": "eth_chainId",   "params": [],         "id": 1 },
  { "jsonrpc": "2.0", "method": "eth_getBalance","params": ["bad"],    "id": 2 }
]

// Réponse (HTTP 200, X-Venice-RPC-Credits: 25):
[
  { "jsonrpc": "2.0", "id": 1, "result": "0x1" },
  { "jsonrpc": "2.0", "id": 2, "error": { "code": -32602, "message": "invalid params" } }
]
Le premier élément (succès) facture 20 crédits, le second (erreur au niveau RPC) facture 5, somme = 25.

Limites de débit

Plafond de requêtes par minute par appelant authentifié :
NiveauRequêtes/minute
Standard100
Staff1 000
Lorsque le plafond est dépassé, l’endpoint renvoie 429 avec un customMessage et les en-têtes de réponse standard X-RateLimit-*.

Idempotence

Définissez l’en-tête de requête Idempotency-Key à toute chaîne correspondant à [A-Za-z0-9_-]{1,255} pour permettre des relances sécurisées. La réponse est mise en cache pendant 24 heures avec la clé (user, idempotency-key) :
  • Rejouer la même clé avec le même corps renvoie la réponse mise en cache et un en-tête de réponse Idempotent-Replayed: true. L’amont n’est pas sollicité et aucun nouveau crédit n’est facturé.
  • Rejouer la même clé avec un corps différent renvoie 400 pour empêcher la corruption silencieuse d’état. Choisissez une nouvelle clé pour des requêtes distinctes.

En-têtes de réponse

En-têteDescription
X-Venice-RPC-CreditsCrédits facturés pour cette requête. Sur les requêtes en batch, c’est la somme sur tous les éléments.
X-Venice-RPC-Cost-USDCoût en dollars à 8 décimales. Égal à X-Venice-RPC-Credits × prix par crédit.
X-Request-IDID de corrélation de 32 caractères. À inclure dans toute correspondance avec le support.
Idempotent-ReplayedPrésent avec la valeur "true" lorsque la réponse provient du cache d’idempotence.
X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-ResetDéfinis uniquement sur les réponses 429.

Journalisation forensique des relais de transactions

Chaque appel à eth_sendRawTransaction est journalisé côté serveur avec le hash de la transaction (keccak256 des octets bruts), le slug de réseau, l’ID de requête et l’ID de l’utilisateur appelant. Nous ne conservons pas la charge utile signée elle-même — le hash est récupérable depuis le reçu on-chain. Cette piste d’audit existe pour que, si la clé API d’un client est compromise et utilisée pour relayer des transactions illicites via notre infrastructure, nous puissions corréler l’activité on-chain avec le compte responsable.

Exemple

curl https://api.venice.ai/api/v1/crypto/rpc/ethereum-mainnet \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_chainId",
    "params": [],
    "id": 1
  }'
{ "jsonrpc": "2.0", "id": 1, "result": "0x1" }
En-têtes de réponse : X-Venice-RPC-Credits: 20, X-Venice-RPC-Cost-USD: 0.00001250, X-Request-ID: <nanoid>.

Collection Postman

Une collection Postman prête à importer avec 27 exemples de requêtes (découverte, appels standard/avancé/large, multi-chaîne, batching, idempotence, cas d’erreur) est disponible dans notre workspace public : Venice Crypto RPC — Collection Postman Définissez la variable de collection apiKey sur votre clé API Venice et commencez à envoyer des requêtes immédiatement.

Autorisations

Authorization
string
header
requis

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

En-têtes

Idempotency-Key
string

Optional idempotency key for safe retries. Pattern: [A-Za-z0-9_-]{1,255}. Retrying within 24 hours with the same key + same body replays the cached response with Idempotent-Replayed: true. Same key + different body returns 400.

Pattern: ^[A-Za-z0-9_-]{1,255}$
Exemple:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

Paramètres de chemin

network
string
requis

Venice-side network slug. Call GET /api/v1/crypto/rpc/networks for the current list.

Exemple:

"ethereum-mainnet"

Corps

application/json
method
string
requis

JSON-RPC method name. See the "Supported methods" section of the endpoint description for the classification into 1×/2×/4× pricing tiers.

Exemple:

"eth_chainId"

jsonrpc
enum<string>
Options disponibles:
2.0
Exemple:

"2.0"

params
any[]

Method parameters. Shape depends on the method; see the upstream chain documentation.

Exemple:
[]
id

Caller-supplied request ID echoed back in the response. Required for batch request correlation.

Exemple:

1

Réponse

JSON-RPC response forwarded from the upstream node. Content-Type is forced to application/json regardless of upstream headers.

jsonrpc
string
Exemple:

"2.0"

id
result
any

Method-dependent result. Present on success.

error
object

JSON-RPC error object. Present on per-request failure (HTTP status is still 200 in that case).