Free guide · Francisco Arrieta · 6 min

Cap what a smart contract can spend

Set a spending limit when you connect a wallet, revoke the unlimited approvals you already granted, and confirm the cap holds

Approving a token isn’t a payment. It’s a standing permission, and the amount is usually set to unlimited because that’s what the site asked for.

Think about opening a tab at a bar. You hand over your card once, and from then on they can charge it. Not once, not for the drink you’re holding, but whenever, until you go back and close it. That’s convenient, and it works because you can see the bar and you’re going to walk past it on your way out.

A token approval is the same shape. You sign once, and a contract can move that token out of your wallet from then on. The difference is there’s no closing time. Nobody hands the card back at the end of the night. The permission sits there after you’ve stopped using the site, after you’ve forgotten the site, after the team behind it has moved on to something else.

And the amount is the part people miss. An approval carries a number, which is how much that contract can take. Sites almost always ask for an unlimited one, so they don’t have to interrupt you again later. That’s a real convenience and it’s also a permanent open tab.

An approval isn’t a payment. It’s a standing permission.

Before you start

You need a wallet with some approval history, and a little ETH for gas. This uses Ethereum and MetaMask because that’s the common case, and the idea is the same on other chains and wallets even where the buttons aren’t.

Two words, once. An approval is you letting a contract move a token on your behalf. The allowance is the number attached to it, meaning how much it’s still allowed to move.


Step 1

See what you’ve already signed

Go to etherscan.io/tokenapprovalchecker, paste your address into the search bar, and search.

You’ll get a list of contracts that can currently move tokens out of your wallet, with the token and the allowance next to each one. No wallet connection needed for this part. You’re just reading public data, the same as anyone else could.

Most people are surprised twice here. Once by how many there are, and once by names they don’t recognize from sites they used a year ago and never thought about again.


Step 2

Read one of them properly

Pick a line and look at the allowance column rather than skimming past it.

An allowance is a running number, not a fixed grant. If you approved 100,000 of a token and the contract has since moved 95,000, the allowance shows 5,000 remaining. An unlimited approval never counts down, because there’s nothing to count down from.

Ask one question per line: do I still use this? For most of the list the honest answer is no, and that’s the whole job of this guide.


Step 3

Revoke the ones you don’t use

Click Connect to Web3 and connect your wallet, then use the Revoke button on a contract you’re finished with.

Revoking is a transaction, which means it costs gas. That’s worth saying plainly rather than burying: clearing out a long list isn’t free, and on a busy day it isn’t cheap. Start with the ones holding real value or unlimited allowances, and leave the dust.

Underneath, revoking sets the allowance to zero. It isn’t a special undo, it’s the same permission written again with a different number.


Step 4

Set the number yourself next time

This is the part that stops the list growing back.

When a site asks for an approval, MetaMask shows you a spending cap screen rather than accepting whatever the site asked for. In the extension, click the pencil icon to edit the amount, type what you actually need, and click Confirm. On mobile you choose between your own value, Max, which uses your current balance, and Use site suggestion, which is the site’s number, then Next and Approve.

Type the amount for the trade you’re about to make. If you’re swapping 200 of something, approve 200. You’ll be asked again next time, which is the cost, and next time is a fine time to be asked.

Use site suggestion is the one to be deliberate about. It’s usually the unlimited value, and it’s usually presented as the smooth path.


Step 5

Check the chain, not the dialog

Wallet dialogs describe what they’re about to do. The chain records what happened. Those are different things and only one of them is the boundary.

After you set a cap, go back to etherscan.io/tokenapprovalchecker and look up your address again. The allowance for that contract should read the number you typed, not unlimited.

Do it once, properly, the first time. If what you typed and what’s recorded don’t match, you’ve learned something far more useful than a tidy approvals list.


Step 6

Put it on a schedule

Approvals accumulate the way browser tabs do. You don’t decide to have forty, you just never closed any.

Once a quarter, open the checker and clear anything you haven’t used since last time. It takes a few minutes and gas. Put it next to something you already do, like the day you do invoices, so it isn’t a thing you have to remember on its own.


A boundary worth knowing about

Revoking protects what you still hold. It does nothing about what already moved.

If a contract had an unlimited allowance and used it, revoking afterwards changes nothing about that. This is a guide about closing an open door, not about getting anything back through it. Worth understanding before you feel finished.

Two smaller edges. Approvals are per token, per contract, per chain, so the same site you use on two networks is two separate permissions and the checker only shows you the chain you’re looking at. And NFT collection approvals work differently: they’re usually all-or-nothing for a whole collection rather than an amount, so a cap isn’t available and revoking is the only lever.


If you have staff

A shared or company wallet needs one person who owns the approval list. Nobody owns it by default, which means it grows for years and gets reviewed the week after something goes wrong.

Write down which contracts are meant to be approved and why. A list of approvals nobody can explain is indistinguishable from a list of approvals nobody should have, and telling those apart in a hurry is not a thing you want to be doing.


The short version

  1. etherscan.io/tokenapprovalchecker, paste your address, read the list
  2. Look at the allowance column, then ask whether you still use each one
  3. Connect to Web3, then Revoke what you don’t. It costs gas, so start with the valuable ones
  4. Next approval, use the pencil icon to set the amount you actually need, not the site’s suggestion
  5. Look the address up again and confirm the recorded allowance matches what you typed
  6. Once a quarter, clear the list again

Sources

Written August 2026. Wallet and explorer steps checked against the Etherscan and MetaMask documentation on 23 August 2026.

Prints to PDF from your browser — colours and all.