soroban-guard

Paste a contract,
run sixteen checks

The same suite the CLI runs, signed by your own wallet. There is no soroban-guard server: this page talks to Soroban RPC directly, and your secret key never leaves the extension.

Start a run

How a run works

  1. Connect a wallet

    Freighter signs every write. Your secret key stays in the extension — this page never sees it, and never asks for it.

  2. Name a contract

    Any deployed SEP-41 token on testnet that your wallet holds — or the demo token, whose faucet gives any wallet the five units a full run spends. Leave the counterparty empty and the page tries to create the second account for the run; if it cannot, the four checks that need one say so.

  3. Approve each write

    Five members are read, eleven are exercised. Each write is a real transaction you approve in Freighter, and burn and burn_from each destroy one unit for good.

  4. Read the verdicts

    Sixteen rows, each with the clause it asserts and the numbers behind it. Copy the whole thing as CHECKS.md or JSON.

Before you run this

  • It signs real transactions. Each write is one approval prompt in Freighter, and burn and burn_from destroy a unit for good.
  • Your wallet needs testnet XLM and a balance of the token. A classic Stellar asset also needs a trustline. On the demo token, the faucet button supplies the balance. A row of UNVERIFIABLE usually means an unfunded wallet rather than a faulty contract.

56 characters, starting with C. No token of your own? — the vulnerable fixture, with a faucet so any wallet can run all sixteen.

A second account to receive transfers and hold allowances. Leave it empty and the page tries to create a temporary one for the run, signs as it, and at the end tries to send any units it received back to your wallet. If it cannot be set up, the run goes ahead without it. Name an address here instead and the four checks that must be signed by the spender say what they would need.

Not connected.

Or run it from a terminal

The same sixteen checks, from a terminal: no wallet prompts, keys from the environment, and a CHECKS.md or JSON report with an exit code a CI pipeline can gate on.

See the CLI