When you swap or stake a token, you often approve a contract to spend it on your behalf. Many wallets default to "unlimited approval," letting that contract move any amount of that token, forever, without asking again. That's convenient, but if the contract is ever exploited or malicious, your entire token balance is exposed, not just the amount you intended to trade. A safer habit is approving only what you need and periodically reviewing and revoking old approvals you no longer use.
What an approval actually does
When a token lives on a blockchain that supports smart contracts, you usually cannot just hand it to another contract the way you'd hand cash to a cashier. Instead, the token has its own rules, and one of those rules is called an approval. An approval is a permission slip you sign that tells the token's contract, "this other contract is allowed to move up to this amount of my tokens." Only after that permission exists can a swap service, staking pool, or lending protocol actually pull tokens out of your wallet to complete the action you asked for.
Why unlimited approval became the default
Imagine a hypothetical token called ABC. If you wanted to trade 50 ABC today and another 30 ABC next week, a contract with only "50 ABC" worth of permission would need a brand new approval for the second trade. Each approval is its own transaction, which costs a small network fee and takes a moment to confirm. To avoid asking you to repeat that step every time, many wallets and apps default to requesting permission for an enormous, effectively unlimited amount, so the contract can keep acting on your behalf indefinitely without bothering you again.
The hidden exposure this creates
The catch is that the approval does not expire when your intended trade is done, and it is not limited to the amount you actually used. If you approved a contract for unlimited ABC to make a 50 ABC swap, that same contract technically still has permission to move your entire ABC balance, today, next month, or next year, until you manually revoke it. If that contract is later found to have a bug, or if its ownership keys are stolen, or if it was designed to be malicious from the start, anyone controlling it could drain every ABC token you hold, not just the 50 you intended to risk. This has nothing to do with your private keys being compromised; the approval itself is the open door.
How traders can reduce this risk
A more cautious habit is setting a custom approval amount close to what you actually plan to use, rather than accepting the unlimited default when a wallet offers that choice. Some wallets and interfaces let you edit the requested amount before signing. It takes a few extra seconds and may mean approving again later, but it limits the maximum possible loss from any single compromised contract to roughly what you approved, not your full holdings.
It is also worth periodically reviewing which contracts currently hold approvals from your wallet and revoking the ones you no longer use. Many wallet interfaces and block explorers offer a way to see a list of active approvals per token. Revoking an unused approval is itself a small transaction with a minor fee, but it closes a door you forgot was open, especially for apps you tried once and never used again.
Keeping this in perspective
Approval hygiene is one small piece of a broader security routine, not a replacement for it. It works alongside other habits like double checking contract addresses, being skeptical of unfamiliar apps asking for broad permissions, and never sharing your private keys or seed phrase. No single habit guarantees safety, and even careful users can still be exposed to risks they could not have reasonably foreseen. Treating approvals as something to actively manage, rather than a one time setup step, is simply a reasonable part of handling your own funds in a system where you are your own custodian.
