Skip to content
Back to skills

Token Approval Safety

ASecurity

Guide to ERC-20 token approvals — how they work, why unlimited approvals are risky, how to check and revoke approvals, and best practices. Use when helping users manage approvals, audit wallet security, or understand approval-related risks.

  • 7 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added June 7, 2026
ai-agentsrustgofrontendsecurity

Security analysis

A100/100

Scanned June 7, 2026

npx -y skills add nirholas/three-ui --skill token-approval-safety --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Token Approval Safety?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Token Approval Safety
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nirholas-token-approval-safety/badge)](https://www.skillsdirectory.com/skills/nirholas-token-approval-safety)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: token-approval-safety
description: Guide to ERC-20 token approvals — how they work, why unlimited approvals are risky, how to check and revoke approvals, and best practices. Use when helping users manage approvals, audit wallet security, or understand approval-related risks.
license: MIT
metadata:
  category: security
  difficulty: intermediate
  author: clawhub
  tags: [security, token-approval-safety]
---

# Token Approval Safety Guide

Token approvals are one of the most overlooked security risks in DeFi. This guide helps AI agents protect users from approval-related attacks.

## How Approvals Work

When you interact with a DeFi protocol, you must first "approve" it to spend your tokens:

```
1. You call approve(spenderAddress, amount) on the token contract
2. The spender (DEX, protocol) can now transfer up to `amount` of your tokens
3. When you swap/deposit, the protocol calls transferFrom() to move your tokens
```

### The Problem: Unlimited Approvals

Most DeFi UIs request **unlimited approval** (`type(uint256).max`):
- Saves gas on future interactions (no re-approval needed)
- But: the protocol can spend ALL your tokens FOREVER
- If the protocol gets hacked, attackers drain your tokens via the approval

## Risk Levels

| Approval Type | Risk | When to Use |
|--------------|------|-------------|
| Exact amount | Low | Large deposits, untrusted protocols |
| Limited amount | Medium | Regular use with trusted protocols |
| Unlimited | High | Only with battle-tested protocols (Uniswap, Aave) |
| Permit (EIP-2612) | Medium | Gasless approvals, common in modern DeFi |

## How to Check Approvals

### On-Chain (Direct)

Query the token contract: `allowance(ownerAddress, spenderAddress)`

### Tools

| Tool | URL | Features |
|------|-----|----------|
| Revoke.cash | https://revoke.cash | Most popular, multi-chain |
| Etherscan Token Approvals | https://etherscan.io/tokenapprovalchecker | Ethereum-only |
| Arbiscan | https://arbiscan.io/tokenapprovalchecker | Arbitrum |

### What to Look For

- **Unlimited approvals** to contracts you no longer use
- **Approvals to unknown contracts** you don't recognize
- **Old approvals** from months/years ago
- **Approvals for valuable tokens** (USDC, USDT, WETH)

## Revoking Approvals

Revoking sets the allowance to 0:

```
approve(spenderAddress, 0)
```

**Cost**: Small gas fee per revocation

**When to revoke**:
- After you're done using a protocol
- If a protocol announces a security incident
- During regular security checkups (monthly recommended)
- Before a token migration or contract upgrade

## Common Attack Vectors

### 1. Approval Phishing

Attacker tricks you into approving a malicious contract:
- Fake DEX frontends
- Phishing links disguised as protocol UIs
- "Claim airdrop" scam sites

**Prevention**: Always verify the contract address before approving

### 2. Compromised Protocol

If a protocol with your approval gets hacked:
- Attacker can drain your approved tokens immediately
- They don't need your private key — just the approval

**Prevention**: Use exact-amount approvals, revoke unused approvals

### 3. Permit Signature Phishing

EIP-2612 permits are signed off-chain (no gas). Attackers can trick you into signing a permit that grants them unlimited approval:

- Looks like a harmless "sign this message" request
- Actually authorizes token spending
- No on-chain transaction to alert you

**Prevention**: Read what you're signing carefully, use wallets that show permit details

## Best Practices

### For Regular Users

1. **Use exact-amount approvals** when possible
2. **Review approvals monthly** using Revoke.cash
3. **Revoke approvals to protocols you no longer use**
4. **Use a dedicated DeFi wallet** — don't hold all tokens where you approve
5. **Read approval prompts** — check the spender address matches the expected protocol

### For Frequent DeFi Users

1. **Separate hot/cold wallets** — cold wallet for storage, hot wallet for DeFi
2. **Batch revocations** when gas is low
3. **Prefer EIP-2612 permits** for modern protocols (single-use)
4. **Set up alerts** for large approval events on your address
5. **Audit before depositing large amounts** — check existing approvals first

### Approval Hygiene Checklist

- [ ] Check all active approvals at least monthly
- [ ] Revoke any approvals to contracts you don't recognize
- [ ] Revoke approvals to protocols you've stopped using
- [ ] Use exact amounts for new approvals when available
- [ ] Verify contract addresses on block explorers before approving

## Agent Tips

When helping users with approvals:
1. **Always warn about unlimited approvals** — suggest exact-amount when possible
2. **Before any large DeFi interaction** — suggest checking existing approvals
3. **After security incidents** — immediately recommend revoking approvals to affected protocol
4. **New users** — explain approvals before their first DeFi transaction
5. **Gas consideration** — revocations cost gas, batch them when gas is low

## Links

- Revoke.cash: https://revoke.cash
- Etherscan Approval Checker: https://etherscan.io/tokenapprovalchecker
- Sperax (secure DeFi on Arbitrum): https://app.sperax.io

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.