Read
RPC, streaming, DAS and history.
Live streams that reach you in 100 microseconds, and every transaction since epoch 0. No dedicated nodes.
console.zerocopy.sh
Connected
First byte to socket
100 µs
p50, rolling 24 h
p99 10 ms
0 drops
* Sample stream, same wire format.
- 14:32:07.000swapSOL to USDC90 µs
- 14:32:07.041transferUSDC110 µs
- 14:32:07.082swapBONK to SOL100 µs
- 14:32:07.123mintcompressed NFT80 µs
- 14:32:07.164swapJUP to USDC120 µs
- 14:32:07.205transferSOL100 µs
- 14:32:07.246swapRAY to USDC90 µs
- 14:32:07.287stakedelegate110 µs
- 14:32:07.328swapWIF to SOL100 µs
- 14:32:07.369transferJitoSOL100 µs
- 14:32:07.410burncompressed NFT80 µs
- 14:32:07.451swapUSDT to USDC110 µs
- 100 µs
- Median time to your socket
- 71
- Methods on one endpoint
- 5
- Regions
- 0
- First epoch on record
RPC
Standard JSON-RPC
Standard JSON-RPC over HTTPS, answered from servers colocated next to the major slot leaders.
- transport
- HTTPS
- methods
- 71
- edge
- next to the leaders
* One endpoint answers every method; no proprietary client.
quickstart.ts
TypeScriptimport { ZeroCopy } from '@zerocopy/sdk'
const zc = new ZeroCopy('stream.zerocopy.sh')
for await (const tx of zc.stream({ mints: true })) {
console.log(zc.age(tx)) // 100 µs
}* Same client for streams, queries, and replays.
gRPC streaming
Live streams
Every transaction and account change on Solana, narrowed down to only the ones you asked for.
- delivery
- 100 µs
- measured with
- GeyserBench
- filters
- our side
* Measured with GeyserBench against Helius and Triton: first in 99% of cases.
First in 99% of cases
Method: GeyserBenchzerocopy
p50 0.1 msp99 10 msFirstHelius
p50 3.2 msp99 40.2 msTriton
p50 3.8 msp99 33.2 msp50p99
DAS API
Token and NFT lookups
Digital Asset Standard methods: asset lookups, collections, and transfers in single calls, compressed NFTs included.
- methods
- getAsset & more
- covers
- tokens and NFTs
- indexing
- our side
* Index kept on our side; nothing to run.
das.zerocopy.sh
getAsset- Mint
- 2xKD…9fAq
- Collection
- compressed: SMC2
- Owner
- 5hJ3…q9Fz
- Delegate
- none
- Supply
- 10,000
* Sample response. Compressed NFTs included.
Historical data
Archive and replay
The full record since epoch 0. Query any epoch range, or replay it back through the same connection at any speed.
- entries
- every one
- order
- as written
- backfill
- a setting
* Live and historical share one client; a backfill is a setting.
history.zerocopy.sh
GET /v1/historyEpoch 0
Epoch 1021
- Covers
- Epoch 0 to 1021
- Query
- Any epoch range
- Replay
- At any speed
- Cost
- One flat rate
* Every entry since epoch 0, streamed back in order.
Included
Everything, on every key.
Nothing on this page is gated behind a plan. Where the field gates it, the table says so.
| Item | zerocopy | Helius | Triton |
|---|---|---|---|
| gRPC on mainnet | Any key | From the $499 plan | Any deposit |
| WebSocket | Any key, same filters | Enhanced from $499 | Any deposit |
| Asset lookups, per 1M | $35 | $50 | $50 plus bandwidth |
| Streaming, per TB | $56 | $100 | $80 |
| Replay | Any window since epoch 0 | The last 24 hours | Any epoch |
| Rate without a plan | 50 a second | 10 a second | 120 a second |
| Dedicated node needed | Never | For the fastest tier | For unmetered gRPC |
* Helius and Triton figures are their published pay-as-you-go terms, read 2 September 2026.
The index
71 methods, one endpoint
Method reference.
{
"jsonrpc": "2.0",
"id": 1,
"method": "getAccountInfo",
"params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri", { "encoding": "base64", "commitment": "processed" }]
}{ "context": { "slot": 331027404 }, "value": { "lamports": 88849814690250, "owner": "11111111111111111111111111111111", "data": ["", "base64"], "executable": false, "rentEpoch": 1021, "space": 0 } }* The standard Solana method set, answered from the colocation. Payload shapes, with values shortened. Commitment, encoding and filter options are the standard ones, and the same client reads the live tail and the full record.
Questions
Before you write in.
Do I need a dedicated node?
How is the latency measured?
How far back does history go?
gRPC or WebSocket?
What counts as a query?
Get a key.
One endpoint serves the live tail and the full record. Point a client at it and measure.