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.
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.)