PIPE SOLANA
Use Pipe’s Solana data endpoints.
Snapshots, the ledger, shreds, account changes, the bank stream, JSON-RPC and fee analytics from Pipe’s mainnet producer. Every endpoint answers without a key at the free public tier; a key from a paid plan raises your limits.
Connect
The endpoints are served from http://186.233.184.235:8080. Send a key as Authorization: Bearer psol_…, or in an X-Pipe-Key header. Indexes, manifests and status files (index.json, manifest.json, status.json) need no key.
export PIPE_SOLANA=http://186.233.184.235:8080
export PIPE_SOLANA_KEY='<your psol_ key>'Check a key at any time: the answer lists its plan, its limits for each endpoint group and what it has used today and this month.
curl -fsS -H "Authorization: Bearer $PIPE_SOLANA_KEY" "$PIPE_SOLANA/access/key.json"This address answers plain HTTP today, so a key crosses the network as written. Use keys from machines you control, give each machine its own key, and revoke a key you think was exposed.
Plans, keys and billing
Plans are prepaid 30-day periods, paid from your infrastructure credit. Stake tiers share one line: you hold one tier at a time, and a tier bought while another runs starts when the current period ends. Each data feed is a line of its own: hold any combination of feeds, beside a tier or alone. The dashboard buys a tier and several feeds in one checkout, one purchase per line, each confirmed on its own. Buying the same plan again extends its line; nothing renews by itself, and periods can be prepaid up to a year ahead.
A key serves one line for its whole life. A stake-tier key follows your current tier; a feed key serves only its feed’s endpoint groups, so each feed you hold needs its own key: with a tier and three feeds, create four keys. Rate limits and monthly quotas apply to each key, and each plan includes a number of active keys. A key works while its line has a paid period; requests without a key get the free public tier. Keys last 30 to 730 days, and a revoked key stops working within about 30 seconds.
Overage is off unless you set a monthly cap. With a cap, a key that has used its monthly quota keeps working at the published per-GiB rate until the cap for that UTC month is reached. Every purchase and cap change needs your explicit consent, and a retried purchase never charges twice.
Open Solana data to buy a plan, create keys and see usage, or compare plans and prices.
Endpoints
Each endpoint belongs to an access group. Stake-tier keys reach every group; a feed key reaches only the groups of its feed. Replace <slot> and the other placeholders with values from the index files.
Snapshots
Access groupsnapshotsFull and incremental snapshot archives from Pipe’s mainnet producer, each with a SHA-256 file. The index lists them with their slots, hashes and sizes.
/snapshots/index.json/snapshots/snapshot-<slot>-<hash>.tar.zst/snapshots/incremental-snapshot-<base>-<slot>-<hash>.tar.zst/snapshots/<archive>.tar.zst.sha256
curl -fsS "$PIPE_SOLANA/snapshots/index.json" | jq -r '.snapshots[0].url'
curl -fL -C - -H "Authorization: Bearer $PIPE_SOLANA_KEY" -O "$PIPE_SOLANA/snapshots/snapshot-<slot>-<hash>.tar.zst"Ledger
Access groupledgerEvery shred the producer stored for a rooted slot, after erasure recovery and repair, with a JSON summary beside it.
/ledger/index.json/ledger/<slot>.bin/ledger/<slot>.json
curl -fsS -H "Authorization: Bearer $PIPE_SOLANA_KEY" -o <slot>.bin "$PIPE_SOLANA/ledger/<slot>.bin"Shreds by slot
Access groupshredsPer-slot shred files for catching up to the tip. <bucket> is the slot divided by 1,000, rounded down.
/shreds/index.json/shreds/<bucket>/manifest.json/shreds/<bucket>/<slot>.bin
curl -fsS -H "Authorization: Bearer $PIPE_SOLANA_KEY" -o <slot>.bin "$PIPE_SOLANA/shreds/<bucket>/<slot>.bin"Live shreds
Access groupliveA stream of the newest shreds from <slot> on: frames of slot (u64), length (u16) and shred bytes, little-endian. A zero-length frame is a heartbeat.
/shreds/live?from=<slot>
curl -fsS -N -H "Authorization: Bearer $PIPE_SOLANA_KEY" "$PIPE_SOLANA/shreds/live?from=<slot>" > live.binAccount changes
Access groupchangesOne zlib-compressed batch of account changes per rooted slot, with the inputs to its bank hash.
/changes/index.json/changes/<bucket>/manifest.json/changes/<bucket>/<slot>.chg
curl -fsS -H "Authorization: Bearer $PIPE_SOLANA_KEY" -o <slot>.chg "$PIPE_SOLANA/changes/<bucket>/<slot>.chg"Bank stream
Access groupstreamServer-Sent Events with the producer’s bank hash for each slot beside mainnet’s, for divergence alerts. Reconnect with Last-Event-ID to resume.
/bank/stream?from=<slot>
curl -fsS -N -H "Authorization: Bearer $PIPE_SOLANA_KEY" "$PIPE_SOLANA/bank/stream?from=<slot>"Bank states
Access groupbankThe same per-slot states for up to 1,000 slots at a time. The status file is free.
/bank/stream.json?from=<slot>&to=<slot>/bank/stream/status.json
curl -fsS -H "Authorization: Bearer $PIPE_SOLANA_KEY" "$PIPE_SOLANA/bank/stream.json?from=<slot>&to=<slot>"JSON-RPC
Access grouprpcSolana JSON-RPC methods answered from Pipe’s execution of mainnet.
POST /rpc
curl -fsS -H "Authorization: Bearer $PIPE_SOLANA_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}' "$PIPE_SOLANA/rpc"Fees and programs
Access groupanalyticsCompute-unit prices, utilization, fees and contended accounts by slot, and the programs mainnet invoked. The program index is free.
/fees/recent.json/fees/slots.json?from=<slot>&to=<slot>/fees/accounts.json?window=150/programs/index.json/programs/elf/<sha256>.so
curl -fsS -H "Authorization: Bearer $PIPE_SOLANA_KEY" "$PIPE_SOLANA/fees/recent.json"Limits and errors
Refusals are JSON: {"error": "…", "reason": "…"}.
| Status | Meaning | What to do |
|---|---|---|
| 401 | The key is unknown, expired or revoked, or its line has no paid period. | Check the key with /access/key.json and your plan in the dashboard. |
| 403 | The key’s plan does not include this endpoint group. | Use a stake-tier key, or the feed that serves it. |
| 429 | The key passed its request rate, or used its daily or monthly quota. | Wait for Retry-After, or set an overage cap for quota. |
| 503 | The key service or the server’s connection limits are busy. | Retry with backoff. |