[00]product / replay

frozen mainnet · dedicated environment

Solana mainnet,
paused on a frame.

Reproduce the bug at the exact slot it happened. Stage a program upgrade against today's mainnet accounts. Decide a protocol change with evidence instead of a hunch.

Replay is your own Solana mainnet, frozen at any snapshot and yours alone — boot it, drive it slot by slot, splice transactions, patch accounts, deploy programs, and read every byte back over the full JSON-RPC, WebSocket, and Geyser your tools already speak. Nothing to rewrite.

Dedicated environmentFrom $1,599 / monthValidator version of your choice
k256Replay
connected

replay-us-east

Active

US East · Pro · agave v4.0.1

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

[01]the work it erases

The hours you stop losing.

Three jobs that used to cost a day each and a fragile setup.

Replay collapses every one to the same loop: boot, drive, read. On a throwaway fork of real mainnet you can run ten times before lunch — no prod risk, no flaky local repro, no waiting on anyone.

Incident response

Reproduce it on demand — not by luck.

The old way

Spin up a local validator, hand-craft the surrounding state, fail to reproduce, beg an operator for a database dump, give up.

With Replay

Boot the snapshot from before the incident, splice the offending transaction, watch the bank. The fork is throwaway — run the repro ten times until you see it.

Program upgrades

Catch the regression before your users do.

The old way

Test against empty local-validator state, deploy, and meet the regression in production when a real account hits the path you never modeled.

With Replay

Deploy the candidate .so against today's actual accounts, run the workloads that break things, and catch the regression here — not in the post-mortem.

Protocol research

Make the call with proof behind it.

The old way

Argue from theory in a doc, or risk the parameter live on mainnet and hope the model held.

With Replay

Splice the proposed transactions, advance the chain, read the result. Compare three approaches before any of them touch production.

[02]boot · the snapshot picker

Pick any moment. Start from the real state.

One click on a slot, one click on Start. You are now Solana mainnet at that exact frame, with no other tenants.

Cached snapshots skip the network fetch, then still extract and index locally. Uncached ones fetch first. Pick the compatibility version. Pick a Geyser plugin (or none). The Replay environment that comes up is isolated to you, in the region you chose.

k256Replay
Replay/replay-us-east/Console

replay-us-eastActive

US East · Pro · agave v4.0.1

API explorerconnected Stop validator

Boot

Pick a snapshot and start the local replay validator.

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

Boot From Snapshot

Select a snapshot slot to boot the replay validator

Refresh
Search by slot number…
Bootable slots · 5
  • 418,908,370

    27s ago · 84.2 GB

    Cached
  • 418,876,800

    9m ago · 84.1 GB

    Cached
  • 418,832,500

    32m ago · 83.9 GB

    Cached
  • 418,791,200

    1h ago · 83.7 GB

    Stream
  • 418,733,400

    2h ago · 83.5 GB

    Stream
Advanced: Custom Slot

Geyser plugin

Optional. Loads a Solana Geyser plugin alongside the validator for this boot. Pick a bundled preset, upload your own .so + config.json, or leave off for a vanilla validator.

Noneactive

vanilla validator, JSON-RPC + WebSocket only

Yellowstone gRPC

bundled preset · gRPC endpoint after boot

Custom upload

your .so + config.json · endpoint shown after boot

Validator is currently running

Booting will stop the current validator and rebuild replay state from the selected snapshot.

Reboot validator
[03]accounts · the production address book

Inspect every account at that exact slot.

USDC. Jupiter. Your wallet. The Raydium AMM that broke at 9pm. Open the address, see the bank's actual answer.

The sidebar is your production address book — quick-add chips for the programs you'll always need, paste-anywhere input for the ones you won't. The detail panel reads the bank: owner, balance, data size, rent epoch, raw bytes. Mutate lamports, owner, data, or executable in-place — every patch is labeled, and the moment one lands the environment flips to a labeled local fork. Re-boot to return to canonical mainnet.

k256Replay
Replay/replay-us-east/Console

replay-us-eastActive

US East · Pro · agave v4.0.1

API explorerconnected Stop validator

Accounts

Inspect, mutate, and deploy programs to accounts on the local fork.

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

Deploy programNewDev-only

Tokenkeg…623VQ5DA

Program

TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

RefreshExplorer

Owner

BPF Loader (v2)recognized program

BPFLoader2111111111111111111111111111111111

Balance
5.6782 SOL

5,678,237,313 lamports

Data size
130.94 KB

134,080 bytes

Rent epoch
Rent-exempt

u64::MAX sentinel — never charged

Account Data

134,080 bytes

HEXASCIIRAW ADD IDL
00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00   .ELF........
00000010  03 00 f7 00 01 00 00 00  d8 f9 00 00 00 00 00 00   ............
00000020  40 00 00 00 00 00 00 00  80 09 02 00 00 00 00 00   @...........
00000030  00 00 00 00 40 00 38 00  04 00 40 00 09 00 08 00   ....@.8...@..
00000040  01 00 00 00 05 00 00 00  20 01 00 00 00 00 00 00   ............
00000050  20 01 00 00 00 00 00 00  20 01 00 00 00 00 00 00   ............
00000060  60 b9 01 00 00 00 00 00  60 b9 01 00 00 00 00 00   '.......'.....
00000070  00 10 00 00 00 00 00 00  01 00 00 00 06 00 00 00   ............

…133,568 more bytes (download for full data)

Actions

Mutations are applied directly to the local fork — they bypass normal Solana authority. Re-boot the snapshot to revert.

Set lamports Transfer Modify data Close account
[04]advance · splice transactions in

Splice your transactions into the canonical stream.

Append at block_end. Inject after a known signature. Replace the transaction at slot index 14.

Eight anchors. One queue. Run advance and canonical mainnet blocks stream in, with your transactions woven in at the slot you asked for. Replay walks forward block-by-block — canonical, then yours, then canonical again — exactly the order it applies them. Cancel any time and inspect what landed.

k256Replay
Replay/replay-us-east/Console

replay-us-eastActive

US East · Pro · agave v4.0.1

API explorerconnected Stop validator

Advance

Replay mainnet blocks into the local validator, or send a custom transaction.

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

Advance Validator

Move the replay validator forward, with optional custom splices.

Send txAdvance

Current Slot

418,908,412

Shred Version

50093

Target Slot

418,908,500+88 slots
+1+2+5+10+50+100
Advanced Settings

Inject operator-supplied VersionedTransactions into upstream blocks at chosen anchor points. Each splice targets a single slot in (current, target].

Append at end of blockslot 418,908,420

block_end

signed by WALLET · JUP6Lk…NyVTaV4

ours
Inject after Raydium swapslot 418,908,447

after_signature · 5fH8wK…XzQ7P

replace LP token amount · 3pNa6w…rTzYk

ours
Replace tx at slot index 14slot 418,908,478

replace_index · ix #14

modified signer + amount · 8mRkLp…wQz3D

modified
Add splice
Advance Validator
[05]blocks · your replay chain

Every block. Every transaction. Including the one you added.

Walk the chain forward from your boot point. 1,446 txs in a block, your splice at index 10, the fee at 1,005,000 lamports.

Filter by signature or any pubkey in the tx — recipient, signer, program. The list reflects your replay chain, not upstream mainnet, so the tx you spliced in at slot 418,908,420 sits exactly where you put it. Click any row for the decoded instructions, log messages, and pre/post balances.

k256Replay
Replay/replay-us-east/Console

replay-us-eastActive

US East · Pro · agave v4.0.1

API explorerconnected Stop validator

Blocks

Browse confirmed blocks and inspect transactions on the local validator.

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

Slot

418908420
Load slot

Find by transaction signature

base58 signature…
Find tx
jump to current slot (418,908,412) refresh·workbench2,553 fixtures · 5 slots·140 MB / 5 GB·clear

Slot

418,908,420

Parent slot

418,908,419

Block height

397,000,050

Transactions

1,255 + 191 err / 1,446

Blockhash

# FykHTQkha8t7eHDAdLYxCKpEqPAwCuHr18wuek16GFX8

block time: 5/17/2026, 6:14:02 PM

filter by sig or pubkey…
page 1 / 29
  • 0PMXyVcmpdT34Z9YfbvTUJ5JW5YAKvyCGNNjqZrDEnTKUF6DR4vxefWDQzLVdAJBHNW2VS4v1bEzMX4ftDDxzYYgL
  • 15cBbxrnkszXXoZy8pvCkmxhNHJ9CzJuYzibJLQcscFwn6r2aCUQ7ztnoZHTNhiiu72EZ4dqso4koa6CioT2JbHnS
  • 2RGTr4gD1dPRX2MzRZMTytFZuy8XVXm8Gcc4DgdpLWe9rwAV9D6kdksbKzUv38gsad9rvP7c1KVXimGMeHXRpE5y
  • 34Lc5tED7tKtn7wkqPRP4i4RaG9ArzRCafq1skc2r96GC42ZEpRajqmM3HUbD5R5K5rgazLMBqUAiUZc4MZSqxds8S
  • 45TceA34JWotUCEeSAx9ewELmo5pAqTinCWwCjLAqYNR9s4YpKwdGHQ2DWTNTV3fzXBmfnz1gAdD347fui6JRFf3g
  • 53XapaApeV8qTa1CYVfKj6DMseGXubjnPm4AzUwY17XYxSWdYjVxd57Tmuj6EK3UH9ShNngiaWeGv36VLjwc2g5Du
  • 62HWPNAH1ijDweyB8aNs1LEwdqA2QqGoFbWMW3ZhxsFdQ6lZfL4a1xE7uLzHQYgLWSUM6xBhRuxSExbPCuMmp61aFW
  • 77PYeKVVBBTvWyWEsHLi1hBe9wNRm85Z91dKkYZaPsQamTad1f1At3FzGLgA9A9mkGgT2zXNKZ145HiAmerxUvYC
  • 82Yqf3xZBbCgX9p4z5UNyMR1vGQK2tPwL8aH7eXjK3mNzBdT6cRY1uV4sP9tQrLnA8mEhKjF2WxBpDcZ4NHsTqVRy
  • 96KqRpA8WHbMyL2zXg3vN1eFt5cBdQ7uPrJ9oS4iH8eWxKj2nM3sV1aB7tY5cZqL4wRhUfPxN6yE9oDmCb3JsKtVe
  • 104ApAhJaV1AiHziFgPHXxgzN7AP8omaWBFfL9E6hUPz8h2im6Wz1MFpzrvJAT9SUzkaMyscS1N5EcJmq75UboiDDXours
[06]state diff · what every transaction actually did

Down to the byte. Every account it touched.

Click any committed tx and the State diff tab shows the exact pre/post account state the validator wrote — lamports, owner, data — with a hex view that highlights the bytes that changed.

Every non-vote transaction your replay session executes is captured as a state-diff fixture: writable rows side-by-side with role-only rows, lamport movements stacked, owner changes inline, and a hex diff for any account whose data moved. Identical wire shape on the API (GET /fixtures/tx/:sig), the MCP tool (replay_fixture_get), and the k256-replay CLI (k256-replay diff <sig>) — drop the same signature into any one and you'll see the same diff. Iterate fearlessly: clear the cache, advance again, diff again. A 5 GiB FIFO bound and a process-lifetime evicted/oversized/cleared counter keep you honest about what's still in the session.

k256Replay
Replay/replay-us-east/Console

replay-us-eastActive

US East · Pro · agave v4.0.1

API explorerconnected Stop validator

Blocks

Browse confirmed blocks and inspect transactions on the local validator.

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

  • 104ApAhJaV1AiHziFgPHXxgzN7AP8omaWBFfL9E6hUPz8h2im6Wz1MFpzrvJAT9SUzkaMyscS1N5EcJmq75UboiDDXours
OverviewBalancesIxLogsDiffJSON
successcompletefee1,005,000 lamportscu59,737changed4unchanged0unknown0
Open CheckpointsOpen AccountsOpen AdvanceCopy JSONCopy JSON carries this fixture context into patch or splice work.

row 0

5ZzguzMcqkJx
changed
fee payersignerwritableinstruction
Lamports
311,943,205306,943,205
Owner
1111…1111
Data
same

row 1

9nVVwyXrSc1V
changed
writableinstruction
Lamports
9,243,352,2409,248,102,240
Owner
9B6F…2ft9
Data
len 165

row 2

5oKEXgYV7PDb
changed
writableinstruction
Lamports
324,637,281324,887,281
Owner
Toke…Q5DA
Data
len 165

row 3

Tokenk3VQ5DA
role only
readonlyinvokedinstruction
Lamports
Owner
Data
not captured

row 4

JUP6LkyVTaV4
role only
readonlyinvokedinstruction
Lamports
Owner
Data
not captured

row 5

Hp53XERNXQKp
changed
writableinstruction
Lamports
5,436,9555,436,955
Owner
whir…tyCc
Data
len 653
row 5Hp53XQKp· 14 bytes differ· owner whirtyCchexascii
decodedwhirlpool.WhirlpoolAnchor on-chain

whirlpools_config

pubkey

Pre
2Lec…P2NQ
Post
2Lec…P2NQ

whirlpool_bump

[u8;1]

Pre
[fe]
Post
[fe]

tick_spacing

u16

Pre
128
Post
128

fee_tier_index_seed

[u8;2]

Pre
[80 00]
Post
[80 00]

fee_rate

u16

Pre
10,000
Post
10,000

protocol_fee_rate

u16

Pre
1,300
Post
1,300

liquidity

u128

Pre
271,030,330,806
Post
271,030,330,806

sqrt_price

u128

changed
Pre
8,949,020,920,635,578,298
Post
8,949,106,042,015,710,954

tick_current_index

i32

Pre
-14,468
Post
-14,468

protocol_fee_owed_a

u64

Pre
236,334,893
Post
236,334,893

protocol_fee_owed_b

u64

changed
Pre
53,452,578
Post
53,454,220
pre653 bytes
0x00003f95d10ce180630913e441f83913ca68
0x0010b0634fb025fdeaa88737e84110d1255e
0x0020357b3377ddee1ccdfe80008000102714
0x003005b6a5aa1a3f00000000000000000000
0x004000bad705061d4f317c00000000000000
0x0050007cc7ffff2d27160e00000000229f2f
0x00600300000004b37e5663ebe915d810b2
post653 bytes
0x00003f95d10ce180630913e441f83913ca68
0x0010b0634fb025fdeaa88737e84110d1255e
0x0020357b3377ddee1ccdfe80008000102714
0x003005b6a5aa1a3f00000000000000000000
0x0040006afea5e3879c317c00000000000000
0x0050007cc7ffff2d27160e000000008ca52f
0x00600300000004b37e5663ebe915d810b2
[07]checkpoints · save the moment, snap back

Save any moment. Snap back to it in an instant.

Checkpoint before a risky splice. Try three approaches. Return to the exact state you started from — as many times as you want.

Every checkpoint is a complete, independent save of your environment at that slot. Restoring is instant. Keep as many as you need — name them, restore any one, delete the ones you're done with. Experiment without fear: there's always a way back to a known-good state.

k256Replay
Replay/replay-us-east/Console

replay-us-eastActive

US East · Pro · agave v4.0.1

API explorerconnected Stop validator

Checkpoints

Save the fork at a point in time, then restore (replay) it instantly — over and over.

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

Save a checkpoint

Save the exact state of your environment at this moment. Restore it later — instantly, as many times as you like.

Restore slot: 418,908,412. The slot is saved as checkpoint metadata, separate from your label.

Saving briefly pauses the node while the checkpoint is captured; the moment it's ready you can restore (instant) or save again.

Label (optional) — e.g. before-experiment
Save checkpoint

Saved checkpoints

Refresh
  • before-experiment

    Restore slot

    418,908,412

    Saved

    2m ago

    Checkpoint id

    before_experiment

    Restore
  • post-splice

    Restore slot

    418,908,420

    Saved

    just now

    Checkpoint id

    post_splice

    Restore
  • clean-boot

    Restore slot

    418,908,370

    Saved

    14m ago

    Checkpoint id

    clean_boot

    Restore
[08]rpc · point your tools at it

Full JSON-RPC, WebSocket, and Geyser.

Every read endpoint your existing tools already speak — hidden until you reveal and copy it.

@solana/web3.js, anchor, solana-cli, your indexer, your bots, your dashboards. Reveal the direct endpoint when you need it, copy the curl, and treat that URL like an operational secret. Subscribe to slotSubscribe, then advance the fork to produce the next local slot. Yellowstone gRPC is one switch away on boot. Nothing to rewrite.

k256Replay
Replay/replay-us-east/Console

replay-us-eastActive

US East · Pro · agave v4.0.1

API explorerconnected Stop validator

RPC

Copy endpoint snippets and run common validator RPC checks.

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

Validator endpoints

Show endpoints
HTTP<copied replay RPC endpoint>
WS<copied replay PubSub endpoint>
gRPC<copied replay Geyser endpoint>

Yellowstone does not expose gRPC reflection on this endpoint. Use a Yellowstone client/protobuf example instead of grpcurl list. Streams are quiet while the fork is idle; run an advance to produce slot, transaction, block, or account updates.

Standard Solana JSON-RPC. Point any client (web3.js, Anchor, solana-cli) at this URL — read methods return state from the local replay fork (snapshot + your /advances + patches + materializations).

Direct endpoint URLs stay hidden by default for screenshots and are outside the workspace bearer once copied.

Six things to know before pointing a client at these endpoints

Account

shared across the account-bearing calls

EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
USDC mintwSOL mintSystem ProgramToken Program

getSlot

Return the validator's current slot.

curl Run
curl -s "$REPLAY_RPC_ENDPOINT" \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getSlot","params":[{"commitment":"processed"}]}' | jq

getAccountInfo

Look up the account above at the replay slot. Returns null if it doesn't exist.

curl Run
curl -s "$REPLAY_RPC_ENDPOINT" \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getAccountInfo","params":["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",{"encoding":"jsonParsed"}]}' | jq

getBalance

Return the lamport balance of the account above.

curl Run
curl -s "$REPLAY_RPC_ENDPOINT" \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"getBalance","params":["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",{"commitment":"processed"}]}' | jq
[09]history · the audit trail

Every advance, recorded.

Start slot, target slot, duration, status. Twenty most recent jobs, in memory.

Skim what ran, expand a row for the exit code, the finality choice, and the full job ID. The signal you want when you're iterating on a splice plan and need to know which run produced which state.

k256Replay
Replay/replay-us-east/Console

replay-us-eastActive

US East · Pro · agave v4.0.1

API explorerconnected Stop validator

History

Advance jobs, local mutations, and durable audit rows for this environment.

Validator ready at slot 418,908,412

uptime 48m 16s

Current slot
418,908,412+2

advanced 2 slots since boot

Snapshot slot
418,908,370

boot point of the local fork

Phase
ready

RPC accepting queries

Shred version
50093

JSON-RPC accepting queries

History

Advance jobs, local mutations, and durable audit rows for this environment

Refresh
Showing
8

8 loaded

Advance
2

slot jobs

Mutations
3

patches + splices

Audit
3

durable environment rows

Filters

Search loaded history

Account, program, signature, slot, status...

Event type

All events

Filters apply to the rows already loaded by the console. Use Copy JSON for the exact route payload behind an event.

Advance jobs2 / 2

Recent slot advances for this runtime session.

  1. Slots

    418,908,412 → 418,908,500

    Duration

    4.1s

    Status

    Done

    req a34f9c
  2. Slots

    418,908,370 → 418,908,412

    Duration

    1.9s

    Status

    Done

    req 7b10e2

Local mutations3 / 3

Account patches, transaction splices, and program deploys recorded by the fork.

Transaction splice

slot 418,908,420

2w38yYfzXVLduAqEFLJBQPtKS2joCJykC9XrbGyU...

Time

just now

Duration

182ms

Request ID

req c8e441

append_at_endindex 10signature indexed

Account patch

slot 418,908,412

5Zzguz4NsSRFxGkHfM4FmsFpGZiCDtY72zH2jzMcqkJx

Time

2m ago

Duration

41ms

Request ID

req 0fd2b7

lamportsdata bytesowner unchanged

Durable audit trail3 / 3

Gateway audit rows scoped to this environment. Restore rewinds fork state; these rows remain.

Checkpoint saved

accepted

before-experiment

Actor

workspace

Time

2m ago

Request ID

req 4f2db1

checkpoint_saverestore_slot 418,908,412

Checkpoint restored

accepted

clean-boot

Actor

workspace

Time

14m ago

Request ID

req a90df8

checkpoint_restoreenvironment row
[10]api · http and mcp, one bearer

Drive Replay from your agent. Or curl.

One API host. api.k256.xyz. Org key in, pick your environment by id — over HTTP for scripts, or Model Context Protocol for AI agents. Same token, same contract, every verb.

Cursor, Claude (Code & Desktop), Codex CLI, VS Code — paste one snippet and your agent can boot, advance, splice, patch, and inspect on its own.

Cursor

~/.cursor/mcp.json

Claude

claude mcp add ...

Codex CLI

codex mcp add ...

VS Code

.vscode/mcp.json
[11]questions developers ask
Is this really mainnet, or a simulation?
Real. It is a managed Replay environment restored from an actual mainnet snapshot you pick — at the protocol layer it is mainnet, frozen at that slot. getAccountInfo on any address returns exactly what the chain held at that moment, down to the bytes.
Is my work isolated — and can I throw it away?
Every environment is isolated to your workspace in the region you choose, with no other tenants and no public consensus to keep up with. Splice, patch, and deploy freely; a reboot drops every mutation and returns you to canonical mainnet. Nobody else sees your fork.
Will my existing tools and CI work unchanged?
Yes. It exposes Solana JSON-RPC, WebSocket PubSub, and Geyser endpoints in the same wire formats your stack already targets. The one thing to know: the chain only moves forward when you advance it, so anything that polls for new slots waits until you say go.
What's the boundary between mainnet and my fork?
Reads before any mutation match mainnet at the snapshot slot. The moment you patch an account, deploy a program, or splice a transaction, the UI flips a label and you're on a clearly-marked local fork — so you always know which state you're reading.

private access · invite only

Stop rebuilding mainnet by hand.

Teams who debug production Solana, ship program upgrades, or do protocol work already lose hours to ad-hoc fork setups. Replay collapses that to one click and one URL.

pricing

$1,599/ month

Dedicated environment. One region. One operator.

  • Validator version of your choice
  • Snapshots cached
  • Full RPC + WS + Geyser
  • Public IP, your DNS
  • Unlimited splices and patches

before checkout

Billing
$1,599/month per dedicated environment. Checkout shows the selected units before payment; the in-app cancel flow shows refund impact before confirmation.
Endpoint boundary
Workspace API keys protect the managed HTTP and MCP surfaces. Direct RPC, WebSocket, and Geyser URLs stay hidden by default and become operational secrets once revealed or copied.
Lifecycle
Reboot returns a mutated fork to canonical mainnet at the boot point. Checkpoints are saved inside the environment until you delete or restore them.
Support
Invite-only access. If you need fixed retention, procurement terms, or an SLA, talk to us before checkout.
Want to talk first?