Skip to Content
Quickstart

Quickstart

From zero to a running fork you can drive.

Boot the fork

This starts the gRPC server on 127.0.0.1:9000, JSON-RPC on http://127.0.0.1:9123, and Studio on http://127.0.0.1:9124.

galene start

This forks mainnet by default. To fork testnet, devnet, localnet, or a private fullnode, set fork.rpc in galene.toml.

Mint a million USDC

Open another shell. Fabricate a coin and give it an owner.

Reflection is on, so grpcurl needs no .proto files.

grpcurl -plaintext -d '{ "coin_symbol": "USDC", "amount": 1000000000, "recipient": "0x<address>" }' localhost:9000 galene.v1.CheatcodeService/Faucet

Read it back over StateService.

grpcurl -plaintext -d '{"owner":"0x<address>"}' \ localhost:9000 sui.rpc.v2.StateService/ListBalances

Fork a real on-chain object

Pull a live object into the engine. Use any object id from the network you fork, like a pool or registry your app depends on. It isn’t local yet, so the fork fetches it on demand and the object comes back at its real on-chain version.

grpcurl -plaintext -d '{"object_id":"0x<a live object id>"}' \ localhost:9000 sui.rpc.v2.LedgerService/GetObject

A package id works too. galene_forkObject (or CheatcodeService/ForkObject) on a package forks its whole dependency closure, so the Move VM can call into it right away.

Everything here also works over JSON-RPC on :9123. Sui is moving off JSON-RPC, so the examples lead with gRPC.

Open the dashboard

galene studio

Submitting a full transaction? galene_executeTransactionBlock forks every object the transaction needs before it runs. You do not fork them by hand. See the cheatcode reference.

Replay a past transaction

Replay any past transaction locally. You get its full object and trace artifacts.

galene replay <tx-digest>

Then render its object graph, one command at a time.

galene graph <tx-digest>

Next steps

Last updated on