token

Detects token-related vulnerabilities in Solidity smart contracts using pattern-based detection rules.

66|17|Updated Jan 21, 2026
One-click install
npx skills add https://github.com/BitterSecurity/Vigilo --skill token-bittersecurity
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: token
Source: https://github.com/BitterSecurity/Vigilo/tree/main/packages/claude/skills/vulnerability-patterns/token
Command: npx skills add https://github.com/BitterSecurity/Vigilo --skill token-bittersecurity

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Smart contract auditors often miss vulnerabilities caused by non-standard token behaviors like fee-on-transfer, rebasing, and callback reentrancy, leading to exploitable accounting errors in protocols. ## Core Features & Use Cases - Vulnerability Pattern Library: Covers eight token weirdness categories including fee-on-transfer, rebasing tokens, ERC777/ERC721/ERC1155 callback reentrancy, missing return values, blacklist/pausable tokens, low decimals, and approval race conditions. - Detection Commands: Provides ready-to-use Grep patterns to locate vulnerable code constructs across Solidity codebases. - Token Compatibility Matrix: Maps common tokens (USDT, USDC, DAI, stETH, WBTC, PAXG, ERC777) against their behavioral quirks for quick reference. - Use Case: During a DeFi protocol audit, use this skill to check whether deposit functions measure actual received balances instead of assuming transfer amounts, catching fee-on-transfer accounting bugs. ## Quick Start Audit my Solidity contracts for token compatibility issues including fee-on-transfer, rebasing, and callback reentrancy vulnerabilities.

Frequently Asked Questions about token

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect fee-on-transfer token vulnerabilities in Solidity?▼

Check whether deposit functions assume the transferred amount equals the received amount. The secure pattern measures balanceOf before and after transferFrom and credits only the actual received difference, which protects against tokens like PAXG and STA that deduct fees.

What tokens cause reentrancy through transfer callbacks?▼

ERC777 tokens trigger tokensToSend and tokensReceived hooks, while ERC721 and ERC1155 safeTransfer functions invoke onERC721Received and onERC1155Received callbacks. State updates after these transfers allow reentrancy, so follow the checks-effects-interactions pattern.

Why does USDT break standard ERC20 transfer checks?▼

USDT does not return a boolean from transfer and transferFrom, so require statements checking the return value revert unexpectedly. Use OpenZeppelin SafeERC20 wrappers like safeTransferFrom to handle tokens with missing return values.

How should protocols handle rebasing tokens like stETH?▼

Protocols should track shares instead of absolute token amounts, since cached balances become stale when the token supply rebases. Convert deposited amounts to shares proportional to the current total balance and total shares.

What are the limitations of pattern-based token auditing?▼

Pattern matching identifies known token weirdness categories but cannot catch novel token behaviors or protocol-specific logic flaws. It covers documented cases like blacklist DoS and decimal precision errors but requires manual review for custom token implementations.