Skip to content

txtx/surfpool

Surfpool is the best place to train before surfing Solana

🌊 Overview

Surfpool is your drop-in replacement for solana-test-validator, designed for builders who want to work with real mainnet state — without downloading the entire chain.

But Surfpool goes further: it introduces Infrastructure as Code for Solana, empowering developers to define, deploy, and operate both on-chain and off-chain infrastructure declaratively and reproducibly.

It’s built local-first and offline-ready, so you can spin up networks on your laptop — and then promote the exact same setup to the cloud when it’s showtime.

Surfpool in action: 101 Series

Surfpool 101 series

💡 Key Features

🪄 Drop-in replacement for solana-test-validator

Spin up local networks that mirror mainnet state instantly — no 2 TB snapshots, no heavy setup (yes, even runs on a Raspberry Pi). Surfpool has been battle-tested by hundreds of developers with existing Solana tools — including solana-cli, anchor, and Kit — so you can plug it into your workflow without changing a thing.

🧩 IDL-to-SQL

Transform your on-chain IDL into a fully queryable SQL schema. Surfpool’s IDL-to-SQL engine bridges programs and databases — automatically generating tables and syncing chain data to local SQLite/Postgres for instant indexing and analytics.

🛡️ Infrastructure as Code (IaC) for Web3

Define your stack once — then deploy and tweak it thousands of times before mainnet, with minimal friction. Inspired by Terraform, Surfpool’s IaC makes your setup reproducible by design: your local environment is optimized for speed and feedback, while production is optimized for safety and scales gracefully.

🎮 Cheatcodes for Builders

Simulate, debug, and replay transactions — all without touching mainnet. Includes Stream Oracles, Universal Faucet, Transaction Inspector, and Time Travel for fast, fearless experimentation.

☁️ Surfpool Studio → Surfpool Cloud

Surfpool Studio is your local dashboard to visualize, inspect, and manage your networks in real time. Surfpool Cloud extends that same experience to the cloud — letting you index mainnet data and run large-scale simulations with the same developer experience. It’s serverless, backend-as-a-service, and built for analytics at scale.

Installation

Install pre-built binaries:

# macOS (Homebrew)
brew install txtx/taps/surfpool

# Updating surfpool for Homebrew users
brew tap txtx/taps
brew reinstall surfpool

# Linux (Snap Store)
# Note: there have been errors updating the Snap Store to the latest version
# While this is being resolved, Linux users should install from source

Install from source:

# Clone repo
git clone https://github.com/txtx/surfpool.git

# Set repo as current directory
cd surfpool

# Build
cargo surfpool-install

Surfpool can also be used through our public docker image:

docker run surfpool/surfpool --version

Verify installation:

surfpool --version

Usage

Start a local Solana network with:

surfpool start

If inside an Anchor project, Surfpool will:

  • Automatically generate infrastructure as code (similar to Terraform).

  • Deploy your Solana programs to the local network.

  • Provide a clean, structured environment to iterate safely.

The command:

surfpool start --help

Is documenting all the options available.

Crypto Infrastructure as Code: A New Standard in Web3

Infrastructure as code (IaC) transforms how teams deploy and operate Solana programs:

  • Declarative & Reproducible – Clearly defines environments, making deployments consistent.

  • Auditable – Security teams can review not just the code of your Solana programs, but the way you will be deploying and operating your protocol.

  • Seamless Transition to Mainnet – Test with the exact infrastructure that will go live.

With Surfpool, every developer learns to deploy Solana programs the right way—scalable, secure, and production-ready from day one.

🤖 MCP

  • Surfpool is getting agentic friendly, thanks to a built-in MCP. We'll be adding more tools over time, the first use case we're covering is "Start a local network with 10 users loaded with SOL, USDC, JUP and TRUMP tokens" (#130 - @BretasArthur1, @lgalabru)
  • To get started, make surfpool available globally by opening the command palette (Cmd/Ctrl + Shift + P) and selecting > Cursor Settings > MCP > Add new global MCP server:
{
  "mcpServers": {
    "surfpool": {
      "command": "surfpool",
      "args": ["mcp"]
    }
  }
}

Architecture & How to Contribute

Surfpool is built on the low-level solana-svm API, utilizing the excellent LiteSVM wrapper. This approach provides greater flexibility and significantly faster boot times, ensuring a smooth developer experience.

We are actively developing Surfpool and welcome contributions from the community. If you'd like to get involved, here’s how:

Your contributions help shape the future of Surfpool, making it an essential tool for Solana developers worldwide.

About

Surfpool is where developers start their Solana journey.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 18