Trade the spread nobody else measures.
Sub-block latency on a 100ms chain, and the premium/discount signal that nobody else computes.
The parts you keep working around.
By the time a block publishes, the sequencer has known for tens of milliseconds — and every provider is polling RPC instead of reading the feed.
The onchain price of a stock token and the price of the underlying equity disagree by construction, and no vendor publishes the spread.
Liquidity is split across an AMM, a propAMM and two perp venues, so no single venue's quote means anything on its own.
How the platform answers, point by point.
Waiting for block publication
Sequencer-feed stream with explicit SEQUENCED / INCLUDED / FINALIZED state, so you choose your own latency-certainty tradeoff
No premium signal
Four-way price reconciliation emitting premium in basis points, per instrument, continuously
Fragmented liquidity
Consolidated quote across every venue with aggregate depth at 10, 50 and 100 bps
Sub-block latency, published unedited.
The measured gap between a transaction appearing on the sequencer feed and landing in a block, with the p99 on the chart rather than hidden behind a p50.
Stream delivery overheadp50 / p95 / p99 · ms · log scale
Worst window in range: p99 114.09 ms (16:00). Percentiles are published unedited, and degraded windows stay on the chart. Illustrative series in the published-benchmark format.
Archive row · trades dataset
manual Parquet / CSV / JSONL export
Live message · StreamSwaps
stream.robinhoodrpc.io:443 · gRPC
Hover a field. It is the same field, byte for byte, on both sides. Raw export fields stay aligned with the stream field model.
The tape, subscribed.
One gRPC stream carries every venue, with premium snapshotted at execution and confirmation state on every print. Backfill and live arrive through the same interface.
Read the docsimport grpcfrom rhrpc.v1 import tape_pb2, tape_pb2_grpc channel = grpc.secure_channel( "grpc.robinhoodrpc.io:443", grpc.ssl_channel_credentials(),)metadata = (("authorization", "Bearer YOUR_KEY"),) # Consolidated tape across every venue, backfill then live.stub = tape_pb2_grpc.TapeStub(channel)for print_ in stub.StreamTape( tape_pb2.StreamTapeRequest(token_symbols=["AAPL"]), metadata=metadata,): # premium_bps is snapshotted at execution, not recomputed later if abs(float(print_.premium_bps_at_print.value)) > 25: signal(print_)The plan that fits.
Scale
$200/moRecommendedgRPC streaming, full history, and every sink.
Scale adds gRPC streaming, the sequencer feed, and consolidated quotes. Desks needing private throughput or a dedicated region go Enterprise.
Compare both plansPut the premium under your model.
Scale adds gRPC, the sequencer feed and consolidated quotes. Start free and upgrade when latency starts mattering.