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
typescript
// ❌ 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;