Zum Hauptinhalt springen
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"
}
Leiten Sie eine JSON-RPC-2.0-Anfrage (einzeln oder im Batch) an einen unterstützten Blockchain-Knoten weiter. Unterstützt sowohl API-Schlüssel- als auch x402-Wallet-Authentifizierung. Die Abrechnung erfolgt pro Credit und in Ihrem Venice-Guthaben — ein Zugang, eine Rechnung, jede der unten genannten Chains.

Authentifizierung

Dieser Endpoint unterstützt zwei Authentifizierungsmethoden:
  • API-Schlüssel: Standard-Bearer-Token-Authentifizierung über den Header Authorization: Bearer <key>.
  • x402-Wallet: Pay-as-you-go mit USDC-Credits aus einer Wallet auf Base oder Solana. Kein Venice-Konto erforderlich. Siehe den x402-Leitfaden für die Einrichtung.
Beide Methoden teilen sich dieselben Rate-Limits und die gleiche Abrechnung (Venice Credits).

Unterstützte Netzwerke

Siehe GET /crypto/rpc/networks für die aktuelle, maßgebliche Liste. Aktuelle Abdeckung:
FamilieMainnetTestnets
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

Request-Formate

Einzel-Request

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

Batch-Request

Ein Array mit bis zu 100 JSON-RPC-2.0-Objekten. Jedes Element wird unabhängig validiert; wenn eine Methode nicht unterstützt wird, wird der gesamte Batch mit 400 abgelehnt, und jeder fehlerhafte Methodenname wird in der Fehlermeldung aufgeführt.
[
  { "jsonrpc": "2.0", "method": "eth_chainId", "params": [], "id": 1 },
  { "jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 2 }
]

Unterstützte Methoden und Preisstufen

Methoden werden in drei Credit-Stufen eingeteilt. Verbrauchte Credits pro Aufruf = baseCredits[chain] × methodTier.
StufeMultiplikatorBeispielmethoden
Standardeth_call, eth_getBalance, eth_blockNumber, eth_sendRawTransaction, eth_getLogs, eth_getTransactionReceipt, eth_estimateGas, net_version, web3_clientVersion, ERC-4337 Bundler-Methoden (eth_sendUserOperation, eth_estimateUserOperationGas etc.), chain-spezifische Erweiterungen (zks_*, linea_*, bor_*, starknet_*)
Advancedtrace_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

Basis-Credits pro Chain

baseCreditsChains
20Ethereum + alle EVM-L2s oben (Base, Optimism, Arbitrum, Polygon, Linea, Avalanche, BSC, Blast) und Starknet
30zkSync Era

Kostenbeispiele

Bei Venice’s ~$6.25 × 10⁻⁷ pro Credit:
AufrufCreditsUSD-Kosten
eth_call auf Ethereum (20 × 1×)20$0.0000125
trace_transaction auf Ethereum (20 × 2×)40$0.0000250
trace_replayTransaction auf Ethereum (20 × 4×)80$0.0000500
eth_call auf zkSync (30 × 1×)30$0.0000188

Nicht unterstützt

  • WebSocket-only-Methoden (eth_subscribe, eth_unsubscribe) — dieser Proxy ist nur HTTP. Verwenden Sie stattdessen Polling oder wechseln Sie zu einem direkten WebSocket-Anbieter.
  • Stateful-Filter-Methoden (eth_newFilter, eth_getFilterChanges, eth_getFilterLogs, eth_uninstallFilter, eth_newBlockFilter, eth_newPendingTransactionFilter) — der Filter-Zustand ist an ein einzelnes Upstream-Backend gebunden und bricht bei einem load-balanced HTTP-Proxy unbemerkt zusammen. Verwenden Sie stattdessen eth_getLogs (stateless).
  • Miner-/Schlüsselverwaltungs-Methoden (eth_sign, eth_accounts, eth_mining, eth_hashrate, eth_getWork, eth_submitWork) — gehostete Provider-Endpoints halten keine privaten Schlüssel der Benutzer, daher liefern diese immer Fehler. Signieren Sie Transaktionen clientseitig und senden Sie sie über eth_sendRawTransaction.
  • Nicht zugeordnete Methoden — alles, was nicht explizit auf der Allowlist steht, gibt 400 zurück. Kontaktieren Sie den Support, um Ergänzungen anzufordern.

Per-Item-Batch-Abrechnung

Auch wenn die HTTP-Antwort 200 lautet, können einzelne Batch-Items mit einem JSON-RPC-error-Feld zurückkommen (z. B. ein Fehler wegen ungültiger Parameter oder eine auf der Ziel-Chain nicht unterstützte Methode). Venice rechnet diese Items mit 5 Credits pro Stück ab statt mit dem vollen Methoden-Tier — ein kleines Entgegenkommen für normale “API-Erkundungs”-Fehler.
// Batch-Request:
[
  { "jsonrpc": "2.0", "method": "eth_chainId",   "params": [],         "id": 1 },
  { "jsonrpc": "2.0", "method": "eth_getBalance","params": ["bad"],    "id": 2 }
]

// Antwort (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" } }
]
Das erste Item (Erfolg) wird mit 20 Credits berechnet, das zweite (RPC-Level-Fehler) mit 5, Summe = 25.

Rate-Limits

Maximale Anzahl von Anfragen pro Minute pro authentifiziertem Aufrufer:
StufeAnfragen/Minute
Standard100
Staff1.000
Wenn das Limit überschritten wird, gibt der Endpoint 429 mit einer customMessage und den Standard-Response-Headern X-RateLimit-* zurück.

Idempotenz

Setzen Sie den Request-Header Idempotency-Key auf einen beliebigen String, der [A-Za-z0-9_-]{1,255} entspricht, um sichere Wiederholungen zu ermöglichen. Die Antwort wird 24 Stunden lang gecacht, basierend auf (user, idempotency-key):
  • Das Wiederholen desselben Schlüssels mit demselben Body gibt die gecachte Antwort und den Response-Header Idempotent-Replayed: true zurück. Der Upstream wird nicht angesprochen, und es werden keine neuen Credits berechnet.
  • Das Wiederholen desselben Schlüssels mit einem anderen Body gibt 400 zurück, um stille Zustandsbeschädigung zu verhindern. Wählen Sie einen neuen Schlüssel für unterschiedliche Anfragen.

Response-Header

HeaderBeschreibung
X-Venice-RPC-CreditsCredits, die für diese Anfrage berechnet wurden. Bei Batch-Requests ist dies die Summe über alle Items.
X-Venice-RPC-Cost-USDDollar-Kosten mit 8 Dezimalstellen. Entspricht X-Venice-RPC-Credits × Preis pro Credit.
X-Request-ID32-Zeichen-Korrelations-ID. Geben Sie diese bei jeglicher Kommunikation mit dem Support an.
Idempotent-ReplayedVorhanden mit dem Wert "true", wenn die Antwort aus dem Idempotency-Cache stammt.
X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-ResetNur bei 429-Antworten gesetzt.

Forensisches Logging für Transaktions-Relays

Jeder Aufruf von eth_sendRawTransaction wird serverseitig mit dem Tx-Hash (keccak256 der Roh-Bytes), dem Netzwerk-Slug, der Request-ID und der aufrufenden User-ID protokolliert. Wir speichern den signierten Payload selbst nicht — der Hash kann aus der On-Chain-Quittung wiederhergestellt werden. Dieser Audit-Trail existiert, damit wir, falls der API-Schlüssel eines Kunden kompromittiert und für die Weiterleitung illegaler Transaktionen über unsere Infrastruktur verwendet wird, On-Chain-Aktivitäten dem verantwortlichen Konto zuordnen können.

Beispiel

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" }
Response-Header: X-Venice-RPC-Credits: 20, X-Venice-RPC-Cost-USD: 0.00001250, X-Request-ID: <nanoid>.

Postman-Collection

Eine sofort importierbare Postman-Collection mit 27 Beispielanfragen (Discovery, Standard/Advanced/Large-Aufrufe, Multi-Chain, Batching, Idempotenz, Fehlerfälle) ist in unserem öffentlichen Workspace verfügbar: Venice Crypto RPC — Postman Collection Setzen Sie die Collection-Variable apiKey auf Ihren Venice-API-Schlüssel und beginnen Sie sofort, Anfragen zu senden.

Autorisierungen

Authorization
string
header
erforderlich

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

Header

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}$
Beispiel:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

Pfadparameter

network
string
erforderlich

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

Beispiel:

"ethereum-mainnet"

Body

application/json
method
string
erforderlich

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

Beispiel:

"eth_chainId"

jsonrpc
enum<string>
Verfügbare Optionen:
2.0
Beispiel:

"2.0"

params
any[]

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

Beispiel:
[]
id

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

Beispiel:

1

Antwort

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

jsonrpc
string
Beispiel:

"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).