Verified. Fast.
RPC-compatible.

Every block verified against the proposer's signature. Every receipt verified against the committed receipts root. Served from process memory at the chain tip — live: ~100µs tip serving. The numbers on this page are our production metrics, not claims.

Unlimited requests. No compute-unit math. Flat subscription; fair use is an RPS cap, not a meter. And your Ponder or indexer points at it with zero code change.

current hot head (block)
head delta across vantages
block arrival → servable, p50
eth_blockNumber serve, p50
eth_getTransactionReceipt serve, p50
receipts verified at tip
continuous eval cases passing
live from production Prometheus, updated every 30s · serve times are in-process; add network RTT (≈10–30 ms within Europe) for end-to-end

Materially better RPC — not cheaper RPC

One product promise: when anything on our hot path degrades, you get higher latency — never wrong data, never downtime.

Live

Fully validated. Never wrong.

Every block is hash-verified against the proposer's signature; every receipt is verified against the committed receipts root — nothing is trusted from a single peer. On any degradation we fall back to proxied truth from the upstream data lake: latency degrades, correctness never. By design, and proven in production.

Live

Tip latency nobody can deliver

Our own p2p networking ingests blocks at consensus-gossip speed; receipts are fetched and root-verified over devp2p within ~200ms of the block. Hot answers serve in microseconds from process memory — the live strip above is measuring it right now, on the box you'd be querying.

Rolling out

Throughput nobody can deliver

A prefetching cache tier built for indexer access patterns: range-scan detection per API key, log-filter fingerprints, optimistic prefetch ahead of your backfill. Bulk-cheap storage behind it, point-fast reads in front. Currently historical queries proxy to the data lake (~150–250ms); the cache tier is in active development.

Method coverage — the honest table

Latencies are measured on the live production gateway (journaled, 2026-06-11), not benchmarked in a lab. Hot serving covers the freshest ~2,000 blocks; anything older falls through to the historical tier with the same answer.

MethodTierMeasured latencyNotes
eth_blockNumberHOT~100µshot head, gossip-fed; staleness-guarded
eth_getBlockByNumber / ByHashHOT~0.5msfull blocks incl. transactions, at the tip
eth_getTransactionByHashHOT~120µstx-hash index over the hot window
eth_getTransactionReceiptHOT135–300µsreceipts-root-verified via devp2p, merged ~200ms after the block
eth_getLogs (tip ranges)HOT~0.2–1.4msbloom-proven negatives ~0.2ms; verified positive matches ~1ms
eth_chainIdHOTlocalconstant
eth_getBlockByNumber / eth_getLogs (historical)PROXIED~150–250msdata-lake proxy today; prefetch cache rolling out
eth_getBlockReceiptsPROXIED~150–250ms
eth_getTransactionByBlockNumberAndIndexPROXIED~150–250ms
trace_block, debug_traceBlockBy*PROXIED~150–250ms
eth_call, eth_estimateGas, eth_getBalance, eth_getCode, eth_getStorageAt, eth_getTransactionCountSTUBn/aAwaiting state backend. During beta these return deterministic synthetic responses (recognizable, never real chain state). Do not use them yet — the real state tier swaps in behind the same interface.
eth_subscribe / filter methods (WebSocket subscriptions)NOT YETreturns -32601
eth_sendRawTransactionNOT YETread-focused service; tx submission on the roadmap
eth_gasPrice, eth_maxPriorityFeePerGas, eth_feeHistoryNOT YETreturns -32601

Why we publish this table: indexer and backend developers churn instantly on dishonest coverage claims. If a method is stubbed or missing, we say so here before you find out in production. Methods not listed return -32601.

Running Ponder or another indexer?

Point your indexer at us — zero code change. Standard JSON-RPC means your existing getLogs backfill and live-tail loop just work, and the live tail gets consistent latest semantics with clean reorg behavior from the hot tier. The prefetch cache tier is being designed around exactly this access pattern: stride detection on your range scans, log-filter fingerprints, prefetch ahead of your backfill.

Benchmark pending

Ponder-shaped backfill benchmark

USDC Transfer logs over 1M+ historical blocks through this public endpoint — p50/p99 per request, total scan throughput, cache hit rate, vs a direct data-lake baseline. Baseline measurement in progress; the before/after numbers will be published here, live from the same metrics pipeline as the strip above.

Pricing — flat. No compute units.

Flat subscription, unlimited usage, no compute-unit accounting. Fair use is enforced the only honest way — RPS and concurrency caps. Networks are the axis, not request meters. Closed beta: keys are issued manually while we onboard, and no billing is collected during beta.

Free

$0
key required — request access
  • 25 requests / second
  • 1 API key
  • Ethereum mainnet
  • Full method surface — the honest coverage table above
  • Community support
Request access

Enterprise

Call us
Portal-aligned network-count pricing
  • N networks included + ~$300/mo per additional network you pick
  • Dedicated edges + region pinning
  • Contractual 99.99% SLA
  • Custom prefetch profiles
  • VPC / private peering
  • White-label option
  • State tier + proof endpoints as they land
Talk to us

Quickstart

Endpoint: https://34.34.113.189.sslip.io/v1/evm/1 — Ethereum mainnet, Bearer auth. Replace <YOUR_KEY> with your beta key.

Latest block (hot, served from memory):

curl -s https://34.34.113.189.sslip.io/v1/evm/1 \
  -H 'Authorization: Bearer <YOUR_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["latest",false]}'

Transaction receipt (root-verified at the tip):

curl -s https://34.34.113.189.sslip.io/v1/evm/1 \
  -H 'Authorization: Bearer <YOUR_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"eth_getTransactionReceipt","params":["0x<TX_HASH>"]}'

Logs (USDT Transfer events in a recent range):

curl -s https://34.34.113.189.sslip.io/v1/evm/1 \
  -H 'Authorization: Bearer <YOUR_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":3,"method":"eth_getLogs","params":[{"fromBlock":"latest","address":"0xdAC17F958D2ee523a2206206994597C13D831ec7","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]}]}'

viem — custom transport URL with the auth header:

import { createPublicClient, http } from 'viem'
import { mainnet } from 'viem/chains'

const client = createPublicClient({
  chain: mainnet,
  transport: http('https://34.34.113.189.sslip.io/v1/evm/1', {
    fetchOptions: { headers: { Authorization: 'Bearer <YOUR_KEY>' } },
  }),
})

const block = await client.getBlockNumber() // served hot, microseconds in-box