ample.sh mainnet · slot 334,812,907 p50 18.4ms
docs ↗ dashboard
§ 01 / hero performance infrastructure · solana live

Stream shreds. Route the packets that land the block.

p50 18 ms ingress land 99.94 % tput 91k shreds/s regions ewr · fra · ams · sgp

ample.sh is the data plane for Solana teams who care about the 99th percentile. Shred-level ingestion, decoded streams, and dual-path transaction delivery — built on the same primitives validators use, exposed where you actually need them.

  • shred-level access — not wrapped RPC
  • landing rate measured per program, per region, per slot
  • open source where it matters · proprietary where it pays
FIG·01 live · shred → decode → route → land
recording 4,812 pps
00leader
01shreds
02decoder
03router
04delivery
p5018.7ms
p9941.2ms
landed2,471
dropped0
§ 02 · trusted by — teams who measure the 99th percentile 14 of 32 top searchers · 6 of top 10 validators
mango/v4
drift
jupiter
phoenix
kamino
marginfi
tensor
orca
raydium
meteora
backpack
zeta
pyth
switchboard
§ 03 · manifesto

we ship at the layer below RPC.

Solana runs on microseconds. Most infra wraps RPC and calls that a product. We work at the wire — shreds, streams, routing — so the apps on top inherit the network's actual speed, not a proxy of it.

  1. P · 01

    Latency is a product surface.

    A 50 ms gap is the difference between a fill and a miss. We treat the p99 as a feature, not a footnote, and publish it with the SLA.

  2. P · 02

    Don't share memory with the validator.

    Geyser plugins live in the validator's process. One bad plugin slows the whole network. We offload to a proxy so the validator stays cold-paged and predictable.

  3. P · 03

    Two paths, one promise.

    Jito wins under congestion. Staked relay wins on average. We ship both, route automatically, and surface per-path land rate so you can audit every signature.

  4. P · 04

    Open source where it matters.

    The proxy is Apache-licensed because the network benefits when validators run inspectable software. The decoder and router are commercial because they fund the work.

  5. P · 05

    Numbers we publish, not numbers we pick.

    Rolling 90-day windows, raw CSVs, same node, same hour. If a benchmark only works in a press release, we don't put it in one.

§ 04 · architecture

the path a transaction actually takes

Five layers. No middleware tax. Drop in at the layer you care about — and only that one.

  1. L0
    Validator
    turbine · leader schedule · QUIC ingress
    92%util
  2. L1
    Geyser Proxy oss
    offload · zero-plugin · fan-out
    78%util
  3. L2
    Shred Ingress
    udp · 4 regions · 12 nodes
    88%util
  4. L3
    Decoder
    structured · typed · indexed
    66%util
  5. L4
    Dual-path Sender
    jito + staked relay · auto
    95%land
FIG·02 · global ingest map 4 regions live
  • ewrus-east · newark17ms3.4 Gb
  • fraeu-central · frankfurt19ms2.9 Gb
  • amseu-west · amsterdam18ms3.8 Gb
  • sgpap-south · singapore22ms2.3 Gb
§ 05 · products

five instruments, one rack

Each product is independently consumable. Use one. Use all five. Drop in at the layer that buys you the most time.

01 · OSS apache-2.0 github.com/ample/geyser-proxy running · v1.8.0

Geyser Proxy.
Offload the validator's data plane.

Drop-in config, zero plugin overhead on the validator host. Stream account, slot, and transaction events to as many consumers as you want — without touching the box that's earning your stake.

  • latencyfan-out hop< 1 ms
  • cpuvalidator host overhead0%
  • consumersper proxy instanceunlimited
  • licensefork, run, redistributeapache-2.0
UNIT·01geyser-proxy · validator → fan-out
version1.8.0
stars2,184
consumers5
overhead0%
02 · INGRESS shred · udp 91k shreds/s

Shred Ingress / Egress.
Closer to the leader than the competition.

Stream raw shreds in, publish them out, across four regions. The same firehose validators see — exposed to the apps that need it. No polling, no batching tax.

  • p50leader → ingest18 ms
  • p99leader → ingest41 ms
  • regionsewr · fra · ams · sgp4 / 4
  • capacityper region, sustained12 Gbps
UNIT·02shred-ingress · global beams
protocoludp · 9100
throughput12.4 Gbps
retention72 h
authjwt · ip-allow
03 · DECODE typed schemas 4.8k rps

Decoded Shred API.
Bytes in. Structures out.

Skip the parsing. Subscribe to accounts, instructions, and reconstructed blocks as they emerge — typed, indexed, and filterable. Protobuf schemas, gRPC + WebSocket + REST.

  • protocolspick what fitsgrpc · ws · rest
  • schemastyped, versionedprotobuf v2
  • filtersprogram · account · signerserver-side
  • decode lagshred → struct3 ms
UNIT·03raw shred → typed structure
decode lag3 ms
schemas42
workers12
formatprotobuf v2
04 · YIELD 1,284 epochs settled on-chain receipts

Validator Monetization.
Revenue tools for the people running the network.

Shred resale, priority lanes, MEV share. Transparent payouts settled per epoch with on-chain receipts. Per-validator dashboards. No middleman accounting.

  • payoutper epoch · on-chainautomatic
  • sharevalidator take rate82–94%
  • auditper-slot, per-signaturepublic
  • historyepochs settled to date1,284
UNIT·04per-epoch yield · last 12
last epoch+118.4 SOL
90d avg+82.1 SOL
validators42
share88%
05 · SEND jito · staked relay 99.94% land

Transaction Sender.
Two paths. One promise.

Dual-path delivery across Jito and staked relays. Auto-fallback, retry with fresh blockhash, land-rate telemetry per program and per wallet. Every signature traced end-to-end.

  • pathsjito · staked · autoboth
  • land rate90-day median99.94%
  • retryblockhash refresh≤ 3 attempts
  • traceper signature, per slotfull
UNIT·05dual-path · jito + staked relay
jito99.81%
staked99.97%
retry0.13%
traceper-sig
§ 06 · sequence

how a transaction actually lands

A real wire-level trace, time-axis on the left. Click a step or scrub to see the system at that microsecond.

FIG·03 · trace · 5ZkP…1qN t+000.0ms auto · 1×
  1. +0.0ms client.send()signed · blockhash fresh
  2. +2.4ms router.decidejito + staked · parallel
  3. +18.1ms leader-3a7ctx in turbine
  4. +24.7ms shred → ingestams-3 · udp
  5. +27.6ms decoder.parsetyped · ack
  6. +412ms block landedstaked relay won · slot 334812907
scrub 0%
§ 07 · benchmarks

numbers we publish, not numbers we pick

Rolling 90-day windows. CSVs on the docs site. Last refreshed 2 min ago.

CH·01 · ingest latency · last 24h 18.4ms p50 · 41.2ms p99
60ms 40ms 20ms
00:0004:0008:0012:0016:0020:00now
p50 ingestlast 24h
18.4ms
p99 ingestlast 24h
41.2ms
landedtx · 24h
214M
throughputshreds/s
91k/s
CH·02 · landing rate 99.94%
99.94 % LANDED
  • jito · 99.97
  • staked · 99.81
  • retry · 0.13
  • dropped · 0.06
CH·03 · throughput by region 12.4 Gbps
  • ewr3.4 Gb
  • fra2.9 Gb
  • ams3.8 Gb
  • sgp2.3 Gb
CH·04 · ingest latency vs. public RPC measured · same node · same hour
  • ample shred ingress18 ms
  • premium rpc · A142 ms
  • premium rpc · B187 ms
  • public rpc312 ms
§ 08 · pricing

pricing for people who read invoices

Three tiers. Real bandwidth allowances. No "contact us" wall on anything you'd actually pay for.

buildfree

Hobby

$0/mo · forever

For prototypes, side-projects, indie searchers learning the wire.

  • 1 region · ams
  • 10 Mbps shred ingress
  • 1k decoded rps · burst
  • 100k tx-sender / month
  • SLA · best-effort
  • support · community
start free →
operatecustom

Enterprise

talk· quoted by throughput

For exchanges, market-makers, validators running their own routing tier.

  • dedicated regions · co-lo possible
  • capacity · custom Gbps
  • private decoder fleet
  • tx-sender · unlimited
  • SLA · 99.99% · contractual
  • support · dedicated · 1h · 24/7
talk to engineering →
§ 09 · sdk

three lines, one stream

First-class TypeScript, Rust, Python & Go. Plain HTTP & gRPC work too — bring your own client.

subscribe to decoded shreds
// install · npm i @ample/sdk
import { Ample } from "@ample/sdk";

const ample = new Ample({
  apiKey: process.env.AMPLE_KEY,
  region: "ams",
});

for await (const tx of ample.shreds.subscribe({
  programs: ["JUP6Lk...", "whirL..."],
})) {
  console.log(tx.signer, tx.slot, tx.accounts.length);
}
§ 10 · validators

42 validators · 1,284 epochs · settled on-chain

Top partners by stake. Yields are 90-day rolling, net of validator commission. Receipts on-chain.

rankvalidatorstakeyield · 90dtrendshare
01Helius·node-3a HEL3a…7Wx2.41M SOL+118.4 SOL/e▲ 4.2%trace ↗
02Triton·main TRI4q…1Lm1.88M SOL+96.7 SOL/e▲ 2.1%trace ↗
03Figment FIG7n…Q2x1.62M SOL+89.2 SOL/e— 0.2%trace ↗
04Chorus One CHO9p…3Mn1.41M SOL+84.5 SOL/e▲ 1.8%trace ↗
05P2P·validators P2P4k…8Vx1.22M SOL+78.1 SOL/e▼ 0.6%trace ↗
06Everstake EVS2m…Y4n1.04M SOL+72.8 SOL/e▲ 0.9%trace ↗
§ 11 · notes

field notes from the data plane

Engineering teardowns, not marketing. We publish the CSVs.

post · engineering2026.03.28· 12 min

Routing shreds in 18ms: what the p99 actually costs

A teardown of ingest-to-decode latency across four regions, with flamegraphs from our UDP path and a frank accounting of where we still lose microseconds. Includes the bench we use internally and the CSVs you can reproduce.

by m. okonkwo2,418 readsdiscuss on lobste.rs
post · validators2026.03.14· 9 min

Why we gave up on Geyser plugins (and what replaces them)

post · research2026.02.21· 14 min

Dual-path sending, measured: 12 weeks of land-rate data

changelog2026.02.05· 6 min

v4.2 — region-aware routing, schema v2, faster decoder

post · post-mortem2026.01.18· 7 min

sgp-2 packet loss · 90 seconds · the receipts

view all · medium.com/ample ↗ rss · atom · /feed.xml
§ 12 · status

everything's a system that can fail

90-day uptime · transparent incident log · RSS feed.

all systems normal90d uptime 99.982%
  • shred ingress99.99
  • geyser proxy99.97
  • decoded shred api99.96
  • transaction sender99.99
  • validator payouts100.00
recent deploys · log tailtail -f /var/log/ample
[ok]  2026-04-25 11:42  release v4.2.0 · region-aware routing rolled out · ams-3 first, no rollback
[info] 2026-04-23 09:11  ingest fra-1 · capacity expanded 12→16 Gbps
[ok]  2026-04-21 02:48  decoder pool · hot path patched · -34% cpu on AVX-512
[warn] 2026-04-19 18:02  sgp-2 · transient packet loss (0.4%) · auto-failover to sgp-1 · 90s
[ok]  2026-04-15 14:30  sender · jito relay v0.18 · land rate +0.4pp
[info] 2026-04-12 07:20  ewr-1 · firmware upgrade · zero downtime
[ok]  2026-04-09 23:55  geyser-proxy v1.8.0 cut · github.com/ample/geyser-proxy
dateseveritysummaryduration
2026.04.19 warn sgp-2 transient packet loss · 0.4% · auto-failover to sgp-1root cause: upstream peer route flap · auto-resolved 90 s
2026.03.04 incident ewr-1 ingest dropout · 1.8% land-rate dip on jito pathroot cause: PSU failure · hardware swap · post-mortem published 14 m
2026.02.11 warn decoder schema v2 migration · ws stream re-published with deprecation headerscheduled · clients on v1 fell back automatically 2 m
2026.01.22 ok fra-1 capacity expansion · zero-downtime cutoverroutine · pre-announced 72h 0 s
§ 13 · contact

open a session

For technical decision-makers. We reply within one business day. Press / from anywhere to focus this form.

ample@console — /contact · tty0 connected

~ $ ssh talk@ample.sh

welcome. tell us what you're building — we reply within one business day.

or book 20 min ↗ discord ↗ telegram ↗ press + to send