Dormant Approval Cleaner
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Dormant Approval Cleaner helps you identify and revoke token approvals that have gone unused for a long time. Many users grant approvals to dApps and exchanges, then never use them again—but the approval remains active indefinitely, exposing your wallet to potential risk. This tool scans your active allowances and operator approvals, checks the last on-chain transaction involving each spender, and flags those that have been dormant for a user-defined period (e.g., 90 days). You can then revoke individual approvals or clean all dormant ones in a single batch.
HOW TO USE
Connect your EVM wallet and select the network. Enter the token contract addresses you want to scan—one per line—and set the dormancy threshold in days (default is 90). Click "Scan for dormant approvals". The tool fetches all active approvals for those tokens, then looks up the most recent on-chain transaction (transfer or approval change) involving each spender. The results table shows each approval with its last used date and a "Dormant" or "Active" badge. Use "Revoke dormant only" to clear all approvals that haven't been used in the threshold period, or "Revoke all" to reset everything regardless of activity.
TECHNICAL MECHANISM
The tool combines log scanning with on-chain state verification and historical transaction analysis. It first collects active approvals by querying Approval and ApprovalForAll events, walking backwards in adaptive chunks that automatically halve when hitting RPC block range limits—ensuring scans complete even on restrictive providers. It then verifies each spender's current allowance using allowance() or isApprovedForAll(). To determine dormancy, it searches for Transfer and Approval events involving the spender and the owner's address, finds the most recent block, and retrieves its timestamp. If the time since that transaction exceeds the user-defined threshold, the approval is marked dormant. Revocations are performed sequentially using approve(spender, 0) or setApprovalForAll(spender, false), with progress feedback.
WHAT IT CANNOT SEE
This tool cannot detect usage of approvals that occurred off-chain (e.g., signed messages that were never submitted) or through private mempool transactions that are not indexed. It relies entirely on on-chain transaction history to determine dormancy—if a spender used the approval in a way that did not emit a standard Transfer or Approval event, that usage will not be recorded. The tool does not monitor pending transactions or future usage, and it cannot detect approvals granted through proxy contracts, delegate-call patterns, or non-standard token implementations. It also does not scan across multiple chains simultaneously.
PLEASE NOTE
Dormancy is determined by on-chain activity involving the specific spender and the owner's address. If a spender has been active with other wallets but not with yours, the approval will still be marked dormant. Always verify the results before revoking, and ensure you have sufficient native tokens to pay for the revocation transactions. This tool is for EVM chains only and does not support non-EVM networks.