Skip to Content
Introduction

Wharfnet

One-command localnet for EVM, Solana, Starknet, Bitcoin, Litecoin & zkSync — boot every chain your app touches with a single command, fund accounts from a unified faucet, and get standard test tokens deployed at known addresses, then wire it into your integration tests and CI pipelines.

zsh — wharfnet
$ wharfnet up
 booting your chains + block explorers…
   anvil-1     http://127.0.0.1:8545      evm
   anvil-2     http://127.0.0.1:8546      evm
   starknet-1  http://127.0.0.1:5050/rpc  starknet
   solana-1    http://127.0.0.1:8899      solana
   bitcoin-1   http://127.0.0.1:18443     bitcoin
   litecoin-1  http://127.0.0.1:19443     litecoin
   zksync-1    http://127.0.0.1:8011      zksync
  ready in 4.8s — funded dev accounts, test tokens, explorers

$ wharfnet faucet evm 0x70997970…79C8 1000 --token USDC
   anvil-1: minted 1,000 USDC
   anvil-2: minted 1,000 USDC

wharfnet is the local harbor for your chains. It packages the stitching that cross-chain and multi-VM teams do by hand — an EVM node, a Solana validator, a Starknet devnet, a Bitcoin and Litecoin regtest node, a zkSync node, plus a custom faucet and glue scripts — into one opinionated, reproducible tool.

One command, many chains

EVM, Starknet, Solana, Bitcoin/Litecoin, and zkSync boot together behind one config, one manifest, one status.

Included by default

Funded accounts, fixed-address test tokens, a faucet, chain control, and forking.

Reproducible by default

Deterministic every boot — identical accounts and token addresses for CI.

Uniform across VMs

The same verbs work whether the chain is EVM, Starknet, Solana, Bitcoin, Litecoin, or zkSync.

Unified faucet

One faucet command tops up native coin and every test token on any chain.

CI-friendly

Runs from pinned Docker images; up waits for readiness, down tears it all down.

Test-utils library

Import wharfnet::testkit to read endpoints, accounts, and ABIs into Rust tests.

Using wharfnet locally

A single wharfnet up boots EVM, Starknet, Solana, Bitcoin/Litecoin, and zkSync chains side by side — each with funded dev accounts and, where the chain supports them, test tokens at fixed addresses and a built-in block explorer:

wharfnet up # chains + a block explorer each wharfnet up --bare # just the chains wharfnet status # what's running, with RPC URLs and accounts

Everything is deterministic by default, so tests and CI get an identical environment every run — with opt-in persistence when you want to pick up where you left off.

Get started:

  • Getting Started — install, boot, and configure
  • Chains — every supported chain at a glance, then one guide each:
    • EVM — Anvil, test tokens, canonical contracts, chain control
    • Starknet — starknet-devnet, Cairo test tokens, forking
    • Solana — surfpool, SPL tokens, WebSocket RPC, Studio explorer
    • Bitcoin — bitcoind regtest, funded coinbase wallet, faucet, btc-rpc-explorer
    • Litecoin — litecoind regtest, funded coinbase wallet, faucet, ltc-rpc-explorer
    • zkSync — anvil-zksync, funded dev accounts, native-ETH faucet, chain control, forking
Last updated on