FlowIndex
$ transfer.cdc
1import FungibleToken from 0xf233dcee88fe0abe
2import FlowToken from 0x1654653399040a61
3 
4transaction(amount: UFix64, to: Address) {
5 prepare(signer: auth(BorrowValue) &Account) {
6 let vault <- signer
7 .storage.borrow<...>()
8 .withdraw(amount)
9 recipient.deposit(from: <- vault)
10 }
11}
> RESULT
Passed1,204 comp
BALANCE CHANGES
0x1654...0a61-10.0 FLOW
0xf8d6...20c7+10.0 FLOW
PWR
MENU
Simulate VM-2000
▪ BRIGHT
▪ CNTRST

// FEATURES

Mainnet Fork

Fork real mainnet state via Flow Emulator. Your simulation runs against actual on-chain data.

Snapshot Isolation

Every simulation creates a snapshot, executes, then reverts. Zero side effects.

Balance Detection

Automatically parses token transfer events to show balance deltas per address.

Zero Risk Preview

See balance changes, events, and errors — before signing anything.

// HOW IT WORKS
01

Write Code

// write or pick a template

02

Simulate

// fork mainnet, execute, revert

03

Verify & Send

// check results, then send for real

// PLAYGROUND

Try it now

Initializing playground...
Simulator VM
// REST API

Programmatic Access

Use the simulate endpoint directly from your scripts, CI pipelines, or dApps. Full API docs →

$ REQUEST
curl -X POST https://simulate.flowindex.io/api/simulate \
  -H "Content-Type: application/json" \
  -d '{
    "cadence": "transaction(amount: UFix64) { ... }",
    "arguments": [{"type": "UFix64", "value": "10.0"}],
    "authorizers": ["0x1654653399040a61"],
    "payer": "0x1654653399040a61"
  }'
> RESPONSE
{
  "success": true,
  "events": [...],
  "balanceChanges": [
    { "address": "1654653399040a61", "token": "FlowToken", "delta": "-10.0" },
    { "address": "f8d6e0586b0a20c7", "token": "FlowToken", "delta": "+10.0" }
  ],
  "computationUsed": 1204
}