The fastest Base RPC that doesn’t watch you.
Azul is a privacy-first public RPC for Base. Zero logging, zero API keys, zero rate-limit gates behind a billing page. Drop it into your wallet, your viem config, or your indexer in one click.
Base
chainId 8453https://rpc.baseazul.devUse Azul in your wallet
One-click for MetaMask, Rabby, Coinbase Wallet. Step-by-step for the rest. Your IP and your wallet address never get logged.
Rabby
The power-user wallet — best transaction previews on Base / OP.
- 1Open Rabby and click the gear icon (bottom-right of the popup).
- 2Click "More" → "Modify RPC URL".
- 3Search for "Base" and click it.
- 4Replace the RPC URL with
https://rpc.baseazul.devand click "Save". - 5Rabby will ping the endpoint to verify chainId; done when you see a green check.
https://rpc.baseazul.devTransactions go straight through
No rate-limit throttle when the gas market gets hot. Submit, confirm, move on.
Your wallet isn’t a tracking surface
Most providers tie your IP to your wallet address on every read. Azul logs neither — ever.
dApps work, identically
Same UX, better infrastructure. Only thing that changes is whose servers your wallet pings.
Built for the hot path
Real numbers, real limits, real method coverage. No SLA, no marketing adjectives.
JSON-RPC method support
eth_* | Full | All standard reads, writes, filters, subscriptions |
net_* | Full | |
web3_* | Full | |
txpool_* | Full | Mempool inspection enabled |
debug_* | Partial | traceTransaction, traceCall, traceBlock — available on request |
trace_* | Off | Parity-style traces not exposed; use debug_trace* |
admin_* | Off | Operator-only namespace, never exposed publicly |
Limits & capabilities
- eth_getLogs range
- 10,000 blocks per call
- Batch size
- 100 requests per batch
- Max response
- 50 MB
- Node mode
- Full (recent ~hours of state)
- WebSocket
- Yes — subscribe to newHeads, logs
- Regions
- iad1 (Virginia) · sfo1 (San Francisco) · fra1 (Frankfurt)
- Rate limits
- None per-client — fair-use only
- CORS
- Permissive — works from any origin
- Authentication
- None — no API key, no token
Endpoints
https://rpc.baseazul.devwss://rpc.baseazul.devhttps://rpc.baseazul.devProduction best practices
- Pair Azul with a fallback (e.g.
mainnet.base.org). viem supports this withfallback([...])— first transport wins, second takes over on error. - Use batched JSON-RPC for fan-out reads (multicall, indexer warmup). One TLS handshake, lower tail latency.
- Subscribe via WebSocket for tip-follow loops instead of polling eth_blockNumber. Lower latency, less load on both sides.
- For
eth_getLogsover wide ranges, chunk to 10,000-block pages and parallelize. - Treat Azul as a public RPC — no SLA, no per-customer reservation. Run a backup endpoint behind a circuit breaker for any production read-path.
Drop-in code samples
Standard JSON-RPC. Same URL whether you’re calling from viem, ethers, web3.py, or curl.
curl -X POST https://rpc.baseazul.dev \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'How Azul compares
The default Base RPCs work in a pinch. The keyed ones track every read. Here’s the honest version.
| Provider | No logs | No API key | No rate limit | Archive | WebSocket | Cost |
|---|---|---|---|---|---|---|
Azul You are here | Yes | Yes | Yes | Partial | Yes | Free |
mainnet.base.org (Coinbase default) Operator privacy policy reserves the right to log | No | Yes | No | Partial | No | Free |
Infura / Alchemy / QuickNode (free tier) IP + wallet logging per published privacy policy | No | No | No | Yes | Yes | Free w/ key |
Other community RPCs Quality varies — chainlist score reflects this | Partial | Yes | Partial | Partial | Partial | Free |
Comparison reflects each provider’s publicly stated privacy and ToS posture as of publication. We do not audit third-party providers; verify their current policy before relying on it.
Frequently asked
Everything you’d want to know before pointing production traffic at a free public RPC.