Crypto RPC
Proxy a JSON-RPC request to a supported blockchain node and bill per credit.
Request shapes
- Single request: a JSON-RPC 2.0 object (
{ "jsonrpc":"2.0", "method":"…", "params":[…], "id":1 }). - Batch: an array of up to 100 JSON-RPC 2.0 objects. If any item references an unsupported method, the entire batch is rejected with 400 and the offending methods are listed.
Supported methods
Methods are classified into three pricing tiers:
- Standard (1×):
eth_call,eth_getBalance,eth_blockNumber,eth_sendRawTransaction,eth_getLogs,net_version,web3_clientVersion, ERC-4337 bundler methods (eth_sendUserOperation, etc.), and chain-family extensions (zks_*,linea_*,bor_*,starknet_*). - Advanced (2×):
trace_*,debug_*,txpool_inspect,txpool_status,arbtrace_*. - Large (4×):
trace_replayBlockTransactions,trace_replayTransaction,txpool_content,arbtrace_replay*.
Stateful filter methods (eth_newFilter, eth_getFilterChanges, eth_uninstallFilter, etc.) are not supported — they break on a load-balanced HTTP proxy because filter state is pinned to a single upstream backend. Use eth_getLogs instead.
WebSocket-only methods (eth_subscribe, eth_unsubscribe) return 400 because this proxy is HTTP-only.
Pricing
Credits consumed per call = baseCredits[chain] × methodTier. baseCredits is 20 for most EVM chains (Ethereum, Base, Optimism, Arbitrum, Polygon, Linea, Avalanche, BSC, Blast) and Starknet; 30 for zkSync Era. The USD price per credit is ~7e-7 — a single standard EVM call costs ≈ 0.000056.
Per-request errors at the JSON-RPC layer (HTTP 200 with an error field in a response item) are billed at 5 credits instead of the full method tier — a small concession for methods not supported on a given chain or bad-parameter responses.
Rate limits
Two caps apply per caller:
- Requests per minute: 100 on the paid tier, 1000 on the staff tier.
- Credits per rolling 24 hours: 10,000,000 on the paid tier, 100,000,000 on the staff tier.
When either cap is exceeded, the request returns 429 with a
customMessageidentifying which cap tripped. The per-minute cap also sets theX-RateLimit-*response headers.
Idempotency
Set the Idempotency-Key request header to any string matching [A-Za-z0-9_-]{1,255} to enable safe retries. The response is cached for 24 hours keyed on (user, idempotency-key); replaying the same key with the same body returns the cached response with Idempotent-Replayed: true. Reusing the same key with a different body returns 400 to prevent silent corruption.
Authentication: This endpoint accepts either a Bearer API key or a SIGN-IN-WITH-X header for x402 wallet-based authentication. The legacy X-Sign-In-With-X header is also accepted during migration. When using x402, a 402 Payment Required response indicates insufficient balance and includes top-up instructions.
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.
Unterstützte Netzwerke
SieheGET /crypto/rpc/networks für die aktuelle, maßgebliche Liste. Aktuelle Abdeckung:
| Familie | Mainnet | Testnets |
|---|---|---|
| Ethereum | ethereum-mainnet | ethereum-sepolia, ethereum-holesky |
| Polygon | polygon-mainnet | polygon-amoy |
| Arbitrum | arbitrum-mainnet | arbitrum-sepolia |
| Optimism | optimism-mainnet | optimism-sepolia |
| Base | base-mainnet | base-sepolia |
| Linea | linea-mainnet | linea-sepolia |
| Avalanche C-Chain | avalanche-mainnet | avalanche-fuji |
| BNB Smart Chain | bsc-mainnet | bsc-testnet |
| Blast | blast-mainnet | blast-sepolia |
| zkSync Era | zksync-mainnet | zksync-sepolia |
| Starknet | starknet-mainnet | starknet-sepolia |
Request-Formate
Einzel-Request
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 mit400 abgelehnt, und jeder fehlerhafte Methodenname wird in der Fehlermeldung aufgeführt.
Unterstützte Methoden und Preisstufen
Methoden werden in drei Credit-Stufen eingeteilt. Verbrauchte Credits pro Aufruf =baseCredits[chain] × methodTier.
| Stufe | Multiplikator | Beispielmethoden |
|---|---|---|
| Standard | 1× | eth_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_*) |
| Advanced | 2× | trace_block, trace_call, trace_transaction, debug_traceCall, debug_traceTransaction, debug_traceBlockByHash, txpool_inspect, txpool_status, arbtrace_* |
| Large | 4× | trace_replayBlockTransactions, trace_replayTransaction, txpool_content, arbtrace_replayTransaction, arbtrace_replayBlockTransactions |
Basis-Credits pro Chain
| baseCredits | Chains |
|---|---|
| 20 | Ethereum + alle EVM-L2s oben (Base, Optimism, Arbitrum, Polygon, Linea, Avalanche, BSC, Blast) und Starknet |
| 30 | zkSync Era |
Kostenbeispiele
Bei Venice’s~$6.25 × 10⁻⁷ pro Credit:
| Aufruf | Credits | USD-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 stattdesseneth_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 übereth_sendRawTransaction. - Nicht zugeordnete Methoden — alles, was nicht explizit auf der Allowlist steht, gibt
400zurück. Kontaktieren Sie den Support, um Ergänzungen anzufordern.
Per-Item-Batch-Abrechnung
Auch wenn die HTTP-Antwort200 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.
= 25.
Rate-Limits
Maximale Anzahl von Anfragen pro Minute pro authentifiziertem Aufrufer:| Stufe | Anfragen/Minute |
|---|---|
| Standard | 100 |
| Staff | 1.000 |
429 mit einer customMessage und den Standard-Response-Headern X-RateLimit-* zurück.
Idempotenz
Setzen Sie den Request-HeaderIdempotency-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: truezurück. Der Upstream wird nicht angesprochen, und es werden keine neuen Credits berechnet. - Das Wiederholen desselben Schlüssels mit einem anderen Body gibt
400zurück, um stille Zustandsbeschädigung zu verhindern. Wählen Sie einen neuen Schlüssel für unterschiedliche Anfragen.
Response-Header
| Header | Beschreibung |
|---|---|
X-Venice-RPC-Credits | Credits, die für diese Anfrage berechnet wurden. Bei Batch-Requests ist dies die Summe über alle Items. |
X-Venice-RPC-Cost-USD | Dollar-Kosten mit 8 Dezimalstellen. Entspricht X-Venice-RPC-Credits × Preis pro Credit. |
X-Request-ID | 32-Zeichen-Korrelations-ID. Geben Sie diese bei jeglicher Kommunikation mit dem Support an. |
Idempotent-Replayed | Vorhanden mit dem Wert "true", wenn die Antwort aus dem Idempotency-Cache stammt. |
X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset | Nur bei 429-Antworten gesetzt. |
Forensisches Logging für Transaktions-Relays
Jeder Aufruf voneth_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
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-VariableapiKey auf Ihren Venice-API-Schlüssel und beginnen Sie sofort, Anfragen zu senden.Autorisierungen
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Header
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.
^[A-Za-z0-9_-]{1,255}$"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
Pfadparameter
Venice-side network slug. Call GET /api/v1/crypto/rpc/networks for the current list.
"ethereum-mainnet"
Body
- object
- object[]
JSON-RPC method name. See the "Supported methods" section of the endpoint description for the classification into 1×/2×/4× pricing tiers.
"eth_chainId"
2.0 "2.0"
Method parameters. Shape depends on the method; see the upstream chain documentation.
[]Caller-supplied request ID echoed back in the response. Required for batch request correlation.
1
Antwort
JSON-RPC response forwarded from the upstream node. Content-Type is forced to application/json regardless of upstream headers.