> ## Documentation Index
> Fetch the complete documentation index at: https://docs.venice.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Crypto RPC

> Discover supported blockchain networks and send JSON-RPC requests through Venice with API key or x402 wallet authentication.

Venice Crypto RPC is an HTTP proxy for reading blockchain state and relaying signed transactions. It uses the same Venice API key or x402 wallet authentication as other paid Venice endpoints, so your application does not need a separate account with an RPC provider.

Venice never holds your private keys. Sign transactions in your application and submit the signed payload with `eth_sendRawTransaction`.

## Discover Supported Networks

Fetch the current list of network slugs:

```bash theme={"system"}
curl https://api.venice.ai/api/v1/crypto/rpc/networks
```

The discovery endpoint is public and requires no authentication. Its response is authoritative; use one of the returned slugs as `{network}` in the RPC endpoint.

## Send an RPC Request

Send a JSON-RPC 2.0 request to the selected network:

```bash theme={"system"}
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_blockNumber",
    "params": [],
    "id": 1
  }'
```

The proxy supports single requests and batches of up to 100 requests. Supported methods, pricing tiers, and availability vary; consult the [Crypto RPC API reference](/api-reference/endpoint/crypto/rpc) before relying on a method.

## Read and Write Workflows

### Read Chain State

Use methods such as `eth_blockNumber`, `eth_getBalance`, `eth_call`, and `eth_getLogs` to query public chain data. Batch related calls when they target the same network.

### Relay a Transaction

<Steps>
  <Step title="Build the transaction">
    Read the account nonce, fee data, and gas estimate from the target network.
  </Step>

  <Step title="Sign locally">
    Sign with your application's wallet library. Never send a private key or seed phrase to Venice.
  </Step>

  <Step title="Submit the signed payload">
    Call `eth_sendRawTransaction` and set an `Idempotency-Key` header so retries do not create a second billable relay.
  </Step>

  <Step title="Check the receipt">
    Poll `eth_getTransactionReceipt` until the transaction is included, then inspect its status.
  </Step>
</Steps>

## Safe Retries

Set an idempotency key on requests that may be retried, especially transaction relays:

```bash theme={"system"}
-H "Idempotency-Key: transaction-123"
```

Venice caches the response for 24 hours. Reusing the key with the same request body returns the cached response without another charge; reusing it with a different body returns an error.

## Important Constraints

* The proxy is HTTP-only and does not support WebSocket subscriptions.
* Stateful filter methods are not supported; use stateless methods such as `eth_getLogs`.
* Venice does not hold keys or expose signing methods.
* Methods outside the allowlist return an error.
* Inspect `X-Venice-RPC-Credits` and `X-Venice-RPC-Cost-USD` to track request cost.

## Related Resources

* [Supported Networks API](/api-reference/endpoint/crypto/networks)
* [Crypto RPC API Reference](/api-reference/endpoint/crypto/rpc)
* [Crypto RPC for Agents](/guides/integrations/crypto-rpc-agents)
* [x402 Wallet Authentication](/guides/integrations/x402-venice-api)
