Surfpool
πŸ„Drop-in replacement for solana-test-validator

Solana Mainnet simulations for
|

Fork Mainnet accounts. Test with cheatcodes. Deploy with Infrastructure as Code.

Documentation
$curl -sL https://run.surfpool.run/ | bash
Terminal
SLOT372,690EPOCH911β—‹
β”‚
deploy.tx
1
2
3
4
5
action "deploy_price_feed" "svm::deploy_program" {
description = "Deploy price_feed program"
program = svm::get_program_from_anchor_project("price_feed")
authority = signer.authority
}
01 β€” SIMULATE

Test like it's Mainnet

Fork any Mainnet state to your local machine. Surfpool gives you the full power of Solana without the cost or risk.

Forking mainnet...
βœ“Token Program
Mainnet forking

Clone any account, program, or token balance from Mainnet. Test against real state without spending real SOL.

RPC Cheatcodes:
surfnet_setAccount
surfnet_timeTravel
surfnet_setTokenBalance
surfnet_resetNetwork
Powerful cheatcodes

Manipulate time, set balances, reset state. Surfnet RPC methods give you full control over your local network.

Faucet:
SOL
USDC
USDT
BONK
Universal faucet

Get any token from one placeβ€”SOL, USDC, USDT, BONK, and more. No more hunting for testnet tokens.

β”Œβ”€ Dashboard ─┐
β”‚ Slot: 1234 β”‚
β”‚ TXs: 42 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Real-time dashboard

Watch transactions, inspect accounts, and debug programs in real-time with the Surfpool Studio interface.

02 β€” CHEATCODES

Full control over your network

Surfnet exposes special RPC methods that give you superpowers. Manipulate state, travel through time, and test edge cases that would be impossible on a real network.

⏰Time travel β€” advance clock or warp to any slot
πŸ’°Set balances β€” SOL or any SPL token
πŸ“¦Clone programs β€” from any network
πŸ”„Reset state β€” start fresh anytime

Full RPC compatibility. Standard Solana RPC methods work out of the box. Cheatcodes are additive β€” they don't break existing tooling.

cheatcodes
Available
$ curl -X POST localhost:8899
surfnet_setTokenAccount
owner: ABAq2R9...MG8
mint: EPjFW...Cky
amount: 1,000,000 USDC
Success βœ“
03 β€” DEPLOY

Web3 meets Infrastructure-as-Code

When run inside an Anchor or Pinocchio project, Surfpool generates Infrastructure-as-Code, seamlessly deploying and upgrading your programs.

deploy.tx
# Deploy program to devnet
addon "svm" {
network = "devnet"
}
action "deploy" "svm::deploy_program" {
program_path = "./target/deploy/my_program.so"
signer = signer.deployer
}
IDL-to-SQL pipeline

Surfpool introduces a unique IDL-to-SQL pipeline, allowing developers to keep their data in sync with deployments.

Designed local-first

On-disk keypairs work for local tests but spell disaster on mainnetβ€”$2B lost yearly to compromised private keys. Use multisig, and best practices.

Composable actions

Chain deployments, transfers, and program calls. Build complex workflows from simple, reusable primitives.

04 β€” OBSERVE

In-Depth visibility

Surfpool Studio provides a level of detail unparalleled in Solana development. Inspect bytes before and after transactions, profile compute units, and debug at the instruction level.

1
Byte-level diffs
See exactly what changed before and after each transaction
2
CU profiling
Profile compute unit consumption at the instruction level
3
Transaction inspector
Decoded instructions, logs, and account changes in one view
Embedded
Studio runs automatically with surfpool. No separate install needed.
localhost:8488
Open in your browser to start exploring.
http://localhost:18488
Surfpool Studio Transaction Inspector showing CU profiling, account state transitions, and byte-level diffs