Home
try it · demo mode

End-to-end drain and recovery , in your browser

One click runs the full pipeline: wrap → simulated drain → watchtower freeze → dual-signature claim → arbitration verdict → 65-second timelock → recovery. Your wallet signs the user-side steps; the server plays watchtower + arbitration using a testnet burner key.

Prep

Connect a wallet and get testnet USDC.

idle
Wallet connected—
Enough test USDC or gUSD— USDC · — gUSD

Live balances

Your wallet (victim)— gUSD
Drainer 0x…dead— gUSD
Fresh payout wallet— gUSD
Payout wallet↗
Generated fresh in your browser for this session. Key never leaves this tab.

What this proves

  • Freeze bit is on the B20 precompile, not our contract logic.
  • Every payout is a redirection to a fresh wallet — contract enforced.
  • Recovery is atomic burn + re-mint. gUSD supply invariant holds.
  • Only the pre-drain remaining balance recovers; the 100 that reached the drainer stays lost. (Fixed when seizeWithMemo activates on Base.)