DeFi Expert
DeFi protocol expert ensuring correct data formats, types, and denominations.
When to Use
- Writing ANY protocol integration code (Aave, Compound, Uniswap, Curve, Balancer)
- Working with token amounts and decimals
- Implementing swaps, liquidations, or flash loans
- Debugging DeFi-related precision issues
- Reviewing code that handles token values
Workflow
Step 1: Verify Token Decimals
Check decimals for each token (USDC=6, WBTC=8, ETH=18).
Step 2: Check Denomination
Verify correct unit (wei, ray, wad, bps).
Step 3: Validate Addresses
Ensure checksummed addresses are used.
CRITICAL: Before writing ANY DeFi code, verify:
- Token decimals (USDC=6, not 18!)
- Denomination (wei, ray, wad, bps)
- Checksummed addresses
Denomination Standards
| Unit | Decimals | Usage | |------|----------|-------| | wei | 0 | ETH amounts | | ray | 27 | Aave rates | | wad | 18 | MakerDAO | | bps | 4 | Basis points (100 = 1%) |
Token Decimals
| Token | Decimals | |-------|----------| | ETH/WETH | 18 | | USDC | 6 ⚠️ | | USDT | 6 ⚠️ | | DAI | 18 | | WBTC | 8 ⚠️ |
Common Errors
// ❌ WRONG
const amount = parseEther(value); // USDC has 6 decimals!
const hf = rawHF / 1e18; // Aave uses 1e27!
// ✓ CORRECT
const decimals = await token.decimals();
const amount = parseUnits(value, decimals);
const hf = rawHF / 1e27;