CRYPTO

31 Approvals, 40 Minutes, 2 I Kept — the Revoke.cash Cleanup of My MetaMask

My MetaMask held 31 standing approvals. Revoke.cash listed them in four minutes. Twenty-nine got revoked, $11.40 in gas. One infinite USDC approval belonged to a marketplace dead since 2022. I kept two, both bounded: Uniswap and my bridge. The wallet guards $6,240 on two capped permissions.

Tallulah Renner
Staff Writer
June 17, 2026 · 4 min read

Thirty-one. That is how many standing approvals my browser wallet had handed out to smart contracts, counted on a Saturday in June at my kitchen table with revoke.cash open on the laptop and a muffin I never got around to eating.

The wallet held $6,240 that mornin', $3,800 of it in USDC and the rest in ETH, which meant every one of those 31 approvals was a live pipe from somebody else's contract to my balance. An approval is permission that does not expire. Infinite approval is permission that does not expire and does not cap. Security trackers log tens of millions of dollars a year drained through malicious approvals and signatures, and I was holding thirty-one of 'em, several older than my daughter's shoes.

The scariest line on the list was not a scam site and did not look dangerous at all. It was an infinite USDC approval to a marketplace that shut down in 2022, whose domain now forwards to a parking page selling ads for other people's crypto. Live permission, dead company. I left two approvals standing that day on purpose, and the reasons for those two are the most useful part of this.

the four-minute listing

Revoke.cash reads the public approval records tied to your address and lists 'em, which took about four minutes for all 31. No sign-up, no seed phrase, read-only til you choose to spend gas on a revoke. I scrolled the list twice with coffee goin' cold, the way I scroll a credit card statement, except a credit card has never given a stranger standing permission to empty it at will. The list had entries from 2021. Two thousand twenty-one.

the dead marketplace

The 2022 approval was the one I kept circling. A marketplace I used for maybe six weeks had granted itself unlimited access to my USDC, standard practice at checkout, one click, no reckoned, and the marketplace died the following winter. The contract still exists on-chain. Contracts do not die when companies do, they just sit there with their permissions attached, one private-key leak away from becoming somebody else's payday. Nothing happened to me. Nothing had to happen. The permission was simply still live, attached to an address I had not visited in four years.

infinite means infinite

The word unlimited on 14 of those 31 approvals deserves its own paragraph. Unlimited does not mean up to what I deposit. It means the full balance, whenever the contract calls, for as long as the approval stands, including balances I add years later. New USDC I deposited after 2022 was covered by that old marketplace approval automatically, because approvals attach to the token balance, not to a snapshot of it. Fourteen contracts could have taken all of it. The odds were low. The exposure was total.

twenty-nine revokes, eleven dollars

For the cross-check, Etherscan runs its own token-approval tool under the account menu, and it listed the same 31 from the chain's side, which matters because a second ledger of the same debts is how yknow the first one is honest. Both lists agreed. One entry Etherscan showed in a form I had not seen before, an allowance denominated in exact USDC instead of the word unlimited, which turned out to be the bridge's cap showing thru. Reading the same permissions through two lenses took ten extra minutes and bought me the only real peace available in this niche: verification without a brand to trust.

The cleanup itself: 29 revokes, each one a modest transaction telling a contract its permission is cancelled, gas totaling $11.40 on a quiet Saturday mornin' when the network was cheap. OpenSea went. Blur's bid approvals went. Two dead NFT venues went, a 2021 airdrop claimer went, a minting page from the week my son was born went, and fourteen unlimited allowances came down to zero. The whole list took 40 minutes including a coffee refill and one gas-fee stall. The muffin lost.

the two I kept

Two approvals survived, and both survived on paper. The Uniswap Universal Router keeps a standing approval cuz I swap about $100 a week, and re-approving every Friday would cost more in fees and clicks than the risk is worth on a wallet that only ever holds what it is about to trade. The bridge to my cold storage keeps a capped approval, $1,000 maximum, cuz capping turns an emergency top-up into a one-click errand instead of a 20-minute setup. Bounded risk, real use. That is the whole test the other 29 failed.

the quarterly rule

New house rule, on the calendar since that Saturday: first weekend of every quarter, 15 minutes, revoke.cash, no exceptions and no muffins. New approvals come in exact amounts only, never unlimited, because the click that saves 30 seconds on a mint is the same click that writes a blank check. My wife asked what happens if I forget the calendar. The calendar does not forget, that is what it is for, and the quarterly review is currently two reviews deep with a perfect record.

the cold muffin

The muffin went in the trash around noon, cold and unearned. The wallet weighs less now, $6,240 guarded by two bounded permissions instead of thirty-one blank checks, and the quarterly reminder sits on the same calendar as my dental cleanings, which is the correct neighborhood for it. Thirty-one approvals took four years to accumulate and forty minutes to dismantle. That is it. That is the whole cleanup.