One workspace, every wallet
Illustrative preview — not live dataDUST1 · Dev Wallet 1
0x196f…38A5DUST3 · Airdrop Wallet
0x1B7E…b3c3DUST5 · Hackathon Wallet
0xB9b2…9E2FWallet cleanup is a manual, unreadable chore
Fragmented wallets
Dust and stray balances spread across dev, airdrop, and hackathon wallets with no single view.
Repeated signing
Cleaning up by hand means a fresh approval and a fresh transaction for every token, in every wallet.
Unreadable calldata
Most wallets show a hex blob at signing time — not what leaves, what arrives, or where it goes.
Forgotten approvals
Unlimited allowances granted months ago and never revoked stay live long after you stopped using them.
How it works
Scan
Read balances directly from Monad — every connected wallet, every token.
Decide
Assign sell, consolidate, discard, burn, or revoke to each asset.
Review
See exactly what leaves, what arrives, and every permission granted.
Execute
Sign once per wallet; each wallet's transactions run in its own graph.
Verify
The final report is built from finalized on-chain evidence, not local state.
Built for Monad
Each connected wallet is its own independent execution graph: its transactions run in strict nonce order, one after another, inside that wallet. Separate wallets can each have a transaction in flight on Monad at the same time — that is separate wallet graphs progressing concurrently, not one transaction executing several operations in parallel. TIDYR never claims a single executeSweep call performs parallel work; it claims that independent wallets don't have to wait on each other.
Security model
Exact Permit2 permissions
Every signature authorizes Permit2 to pull exactly the amount of exactly the token in the plan — never an unlimited allowance, never a different token.
Closed adapter model
SweepExecutor only ever calls two constructor-fixed adapters (PancakeV2, UniswapV3). There is no registry and no way to name an arbitrary adapter address in a plan.
Simulation and calldata verification
Before you sign, the encoded transaction is decoded and compared field-by-field against what you approved, and simulated against live chain state.
Finalized on-chain reports
The cleanup report is rebuilt from indexed chain events after execution — never from an optimistic local success flag.