Rewards Harvesting
Overview
The iAERO Protocol Reward Swapper is a powerful automation tool that transforms the tedious process of managing dozens of reward tokens into a single click. Instead of manually swapping 50+ different tokens every week—dealing with approvals, finding routes, monitoring slippage, and tracking dust balances—you can now convert everything to USDC or compound it back into iAERO instantly.
Time savings: ~2 hours per week → ~10 seconds ⚡
Industry First: A Feature Others Haven't Built
To our knowledge, iAERO Protocol is the first and only liquid staking protocol to offer automated batch reward swapping at this scale and sophistication.
Why Is This Unique?
Most liquid staking protocols stop at claiming rewards:
Lido, Rocket Pool, Frax: Rewards come in a single token (ETH, rETH, etc.)
Yearn, Convex: Multi-token rewards, but no batch conversion tools
Beefy, Harvest: Auto-compound single tokens, but can't handle diverse reward streams
Standard veNFT protocols: Leave users to manually manage everything
iAERO is different because:
✅ We deal with 50+ different reward tokens weekly (the complexity problem)
✅ We built intelligent routing across multiple DEXs
✅ We handle scam filtering, FOT tokens, and edge cases automatically
✅ We provide one-click conversion to either stables (USDC) or compounding (iAERO)
✅ We make it economically viable through batching and gas optimization
💡 Competitive Insight: Most protocols avoid this problem by simplifying their reward structure to a single token. We embraced the complexity because we participate in Aerodrome's full incentive ecosystem—which means more yield sources, but also more tokens to manage. Instead of limiting our yield potential, we built the tooling to handle the complexity. The result? You get maximum yields with minimum effort. No other protocol offers this combination.
Why Haven't Others Done This?
Building a production-grade multi-token batch swapper is hard:
Quote aggregation across DEXs with different interfaces
Dynamic slippage calculation based on token value and liquidity
Failure recovery when some tokens can't be swapped
Gas optimization through intelligent batching
Security through whitelisting and validation
Scam token filtering to protect users
Fee-on-transfer token support (many tokens charge fees on transfer)
Stale quote handling (crypto prices change every second)
Most protocols either:
Don't have this problem (single token rewards)
Have the problem but leave it to users
Tried to build it and gave up due to complexity
We invested the engineering time because we believe user experience matters. Your time is valuable. Manual reward management is a tax on your attention and productivity.
This isn't just a nice-to-have feature—it's a fundamental reimagining of how reward management should work in DeFi.
⚠️ Critical: How Token Swapping Works
IMPORTANT: The "Claim & Convert" and "Sweep Wallet" operations will swap ALL tokens in your wallet that are registered in the protocol's token registry—not just newly claimed rewards.
What gets swapped:
✅ Newly claimed rewards from the current week
✅ Leftover tokens from previous weeks
✅ Dust amounts you've accumulated
✅ Any token you're manually holding that's in the registry
If you want to HOLD a specific token: You must move it to a different wallet address BEFORE using the swap functions. The protocol cannot distinguish between "rewards I want to swap" and "tokens I'm intentionally holding."
Example scenario:
You claim 100 AERO as rewards
You already have 500 AERO in your wallet from last week that you're saving
You click "Claim & Convert to USDC"
Result: ALL 600 AERO will be swapped to USDC
Why it works this way: The batch swapper checks your wallet balance for all registered tokens and swaps everything it finds. This is by design—it ensures you never leave dust behind and truly "one-click" converts everything to your target asset.
The Problem We Solved
When you stake iAERO, you earn rewards from Aerodrome's voting incentives. This is fantastic for yields, but creates an operational challenge:
Traditional Reward Management (The Old Way):
Claim rewards across multiple pools ⏱️ 5 minutes
Identify what tokens you received 🔍 3 minutes
Check each token's value and liquidity 💰 5 minutes
Find optimal swap routes for each token 🗺️ 10 minutes
Approve each token individually 📝 20 minutes (if doing them all)
Execute 50+ individual swaps 🔄 60+ minutes
Deal with failed transactions and slippage 😤 10-30 minutes
Track dust amounts too small to swap 🧹 5 minutes
Total: 2-3 hours of tedious work every single week.
And you'd likely skip tokens worth less than $5 because the gas fees and time weren't worth it. That's yield left on the table.
The Solution: Intelligent Batch Swapping
Our Reward Swapper automates this entire process with sophisticated on-chain orchestration:
One-Click Operations:
1. Claim & Convert to USDC
Claims all pending rewards from the distributor
Swaps everything to USDC automatically
Sends clean stables to your wallet
Perfect for taking profits or DCA strategies
2. Claim & Compound
Claims all pending rewards
Converts everything to iAERO
Maximizes long-term accumulation
3. Sweep Wallet (Advanced)
Swaps reward tokens already in your wallet
No claiming required
Useful for accumulated dust or external rewards
Converts everything to USDC
⚠️ Important Note on Token Selection: The system swaps ALL tokens in your wallet that are in the protocol's registry. It does not distinguish between:
Rewards you just claimed this week
Tokens you've been holding from previous weeks
Tokens you acquired externally and deposited to this wallet
If you want to keep certain tokens (e.g., manually managing AERO for other purposes), move them to a different wallet address before clicking "Claim & Convert" or "Sweep Wallet."
What Happens Under the Hood:
Registry Scan 🔍
Checks all known reward tokens from the protocol registry
Identifies what you have in distributor + wallet
Pre-Screening 🛡️
Filters out scam tokens with no price data
Validates token contracts are legitimate
Prevents wasting gas on worthless tokens
Smart Routing 🗺️
Fetches real-time quotes from 0x aggregator
Calculates optimal slippage for each token
Routes through best available DEX (Aerodrome, Uniswap V3, or aggregator)
Batched Execution ⚡
Processes 8 tokens per transaction
Simulates each swap before executing
Continues even if some tokens fail
Reports exactly what succeeded vs failed
Safety Checks ✅
Validates quotes aren't stale
Adjusts slippage based on token value and liquidity
Skips tokens with excessive price impact
Ensures minimum output amounts
Token Approvals: What You Need to Know
How Approvals Work
Before the Reward Swapper can swap a token, it needs your permission (approval) to spend that token on your behalf. This is standard for all DeFi protocols.
Two Approval Strategies:
Strategy 1: Infinite Approval (Recommended)
Approve each token for maximum amount (2^256-1)
Only needs to be done once per token, ever
Future swaps happen instantly without re-approval
Saves ~$0.50-$2 in gas fees per token, per swap
Strategy 2: Exact Amount Approval
Approve only the specific amount you're swapping
Requires re-approval every single time
More transactions = more gas fees
More tedious but maximum control
The First-Time Experience
When you first use the swapper:
The frontend will automatically request approvals for any tokens that need them. You'll see transactions like:
After initial setup, if you chose infinite approvals, future swaps just work—no approval pop-ups, no extra transactions, no delays.
Is Infinite Approval Safe? (Yes, Here's Why)
You might reasonably worry: "If I approve infinite amounts, can the contract steal my tokens?"
The answer is NO, and here's exactly why:
1. Smart Contract Architecture 🏗️
The Reward Swapper contract is designed with multiple security layers:
Access Controls:
Only whitelisted addresses can call swap functions
Owner cannot arbitrarily swap user tokens
No functions that allow owner to transfer your tokens directly
Whitelisted Operations Only:
Only approved DEX routers can be used (Aerodrome, Uniswap V3, 0x, 1inch, Odos)
Only approved function selectors are callable
Only approved output tokens are allowed (USDC, iAERO, AERO, etc.)
Built-In Safety Mechanisms:
2. Allowance Reset After Each Swap 🔄
This is critical: After every swap, the contract resets the allowance back to zero:
This means:
Even if a router is compromised, it can only use tokens during an active swap
Your infinite approval to the swapper doesn't translate to infinite approval to external protocols
The swapper only grants temporary, transaction-scoped approvals to routers
3. You Control Execution 🎮
The swapper cannot act on its own. Every swap requires:
You initiate the transaction
You sign with your wallet
The transaction executes your plan
Tokens go where you specified (recipient)
The contract has zero ability to:
Initiate swaps on its own ❌
Send your tokens to arbitrary addresses ❌
Change swap parameters mid-flight ❌
Access your tokens when you're not actively using it ❌
4. Open Source & Audited 📖
Full contract source code is available
Logic is transparent and verifiable
Uses battle-tested OpenZeppelin libraries
No hidden backdoors or admin functions that touch user funds
Community can audit every line
5. Comparison to Manual Swapping ⚖️
When you manually swap on Aerodrome or Uniswap:
You approve tokens to their router contracts
Those approvals often persist indefinitely
You're trusting those protocols just as much
The Reward Swapper actually adds an extra layer of validation because it only allows pre-approved routers and functions.
What You're Actually Trusting
With infinite approval, you're trusting:
✅ The Reward Swapper contract won't have exploitable bugs
✅ The owner won't add malicious routers to the whitelist
✅ The underlying DEXs (Aerodrome, Uniswap) won't have exploits
Note: You're already trusting #3 every time you use those DEXs directly.
Real-World Time Savings: A Case Study
Let's compare a typical week for an iAERO staker:
Scenario: 50 Reward Tokens Worth $500 Total
Manual Swapping (Old Way):
Check what rewards you have
5 min
$0
Identify valuable vs dust tokens
5 min
$0
Find swap routes for 50 tokens
10 min
$0
Approve 20 new tokens individually
30 min
~$0.2
Execute 50 separate swaps
60 min
~$5
Deal with 5 failed transactions
15 min
~$0.5
Track dust (<$1 each)
5 min
$0
TOTAL
130 min
~$5.7
Reward Swapper (New Way):
Click "Claim & Convert to USDC"
5 sec
$0
Wait for approval transactions (first time only)
2 min
~$0.2
Wait for batched swap execution
30 sec
~$3
TOTAL (First Time)
3 min
~$3.2
TOTAL (Every Time After)
35 sec
~$3
The Long-Term Picture
Over a year of weekly claims:
Manual:
Time: 130 min × 52 weeks = 113 hours (nearly 5 full days!)
Reward Swapper:
Time: 3 min first week + (35 sec × 51 weeks) = 33 minutes total
Savings:
Time saved: 112.5 hours
Sanity saved: Priceless 😌
Advanced Features
1. Intelligent Slippage Management 🎯
The swapper doesn't use a one-size-fits-all slippage setting. Instead:
High-value tokens (>$100):
Uses 1.5-2% slippage
Worth optimizing for best price
Lower risk of MEV
Medium-value tokens ($20-$100):
Uses 3-5% slippage
Balanced approach
Acceptable MEV risk for speed
Low-value tokens ($5-$20):
Uses 5-10% slippage
Getting it done matters more than perfect price
Skip if price impact too high
Dust tokens (<$5):
Uses up to 15% slippage
Just get rid of it
Skip entirely if liquidity is terrible
This optimization means you get the best execution for valuable tokens while still converting dust that would otherwise sit in your wallet forever.
2. Fee-on-Transfer Token Support 🛡️
Some reward tokens charge fees when transferred (like reflection tokens). The swapper handles this:
Uses
useAll: trueflagChecks actual balance received, not quoted amount
Adjusts swap amounts accordingly
Prevents "insufficient balance" errors
3. Pre-Flight Simulation ✈️
Before executing the full plan, the system:
Simulates each individual swap
Identifies which swaps will fail
Removes failing swaps from the batch
Only executes swaps that will succeed
This means you never waste gas on doomed transactions.
4. Graceful Failure Recovery 🔄
If a batch has some failing swaps:
Successful swaps still complete
Failed swaps are logged with reason
You get partial execution
Can retry failed tokens later
Contract continues processing remaining tokens
5. Scam Token Filtering 🚫
The pre-screening phase automatically filters out:
Tokens with no price data (likely scams)
Tokens with zero liquidity
Tokens that fail contract validation
Honeypot contracts
This protects you from wasting gas trying to swap worthless tokens or getting rugged during a swap.
User Experience Flow
For First-Time Users:
1. Claim & Convert to USDC (Full Process)
For Returning Users:
Failed Token Reporting
When swaps fail, you get a detailed console report:
This transparency helps you:
Understand what went wrong
Decide whether to retry later
Identify permanently broken tokens
Maintain a clean token registry
Gas Optimization
The Reward Swapper is highly gas-efficient:
Batch Processing
Processes 8 tokens per transaction
Amortizes gas overhead across multiple swaps
Cheaper than 8 individual transactions
Smart Multicall Usage
Balance checks happen in parallel
Approval checks bundled together
Minimizes RPC calls
Dust Floor Protection
Skips tokens below configured minimum ($0.01 default)
Prevents wasting gas on meaningless amounts
Configurable per-token if needed
Security Considerations
What's Protected ✅
Access Control: Only authorized callers can execute plans
Output Validation: Only whitelisted output tokens allowed
Router Validation: Only approved DEXs can be used
Selector Validation: Only whitelisted function calls allowed
Reentrancy Protection: ReentrancyGuard on all entry points
Slippage Protection: Configurable per-swap slippage limits
Amount Validation: Quoted amounts must match actual amounts
Allowance Hygiene: Allowances reset to zero after each swap
What You Should Know ⚠️
Smart Contract Risk: Like all DeFi, there's inherent smart contract risk
DEX Risk: Swaps depend on underlying DEX security (Aerodrome, Uniswap, etc.)
Price Oracle Risk: Relies on 0x price quotes for routing
MEV Risk: Large swaps may be subject to MEV (but individual reward amounts are typically small)
Best Practices
✅ Start Small: Test with smaller amounts first
✅ Monitor First Swap: Watch the console logs during your first swap
✅ Check Output: Verify you received expected amounts in USDC/iAERO
✅ Review Failed Tokens: Check the console for any failures
✅ Keep Registry Clean: Remove permanently broken tokens from registry
FAQ
Q: Why do I need to approve tokens?
A: This is a fundamental requirement of ERC-20 tokens. Any protocol that wants to move your tokens needs explicit permission. There's no way around this—it's baked into the Ethereum token standard.
Q: Should I use infinite approval or exact amounts?
A: Infinite approval is recommended for these reasons:
One-time setup per token
Massive gas savings over time
The contract is designed with this use case in mind
Security protections make it safe
However, if you prefer maximum control, exact amounts work fine—just be prepared for frequent re-approvals.
Q: What if a swap fails?
A: The swapper uses graceful failure recovery:
Other swaps in the batch still execute
Failed swap is logged with reason
You can retry later if desired
Contract continues processing remaining tokens
No funds are lost—they stay in your wallet
Q: Can I choose which tokens to swap?
A: Currently, the one-click operations swap all eligible tokens. If you want granular control:
Use the "Claim All" button first
Then manually swap individual tokens
Or use the individual "Claim" buttons per token
A future update may add token selection to the swapper.
Q: What happens to dust amounts?
A: Tokens below the dust floor ($0.01 by default) are automatically skipped. This prevents wasting gas on amounts that aren't worth the transaction cost.
If you accumulate dust over time and want to sweep it, the "Sweep Wallet" function will attempt to convert even small amounts when you're doing a batch anyway.
Q: Why did some tokens get filtered out?
A: The pre-screening phase filters:
Scam tokens with no price data
Zero-liquidity tokens
Broken contract addresses
Honeypot contracts
This protects you from wasting gas and potentially dangerous tokens.
Q: How often should I use this?
A: Most users swap rewards weekly after epoch ends (Thursday after 12pm UTC). But you can:
Accumulate for multiple weeks to reduce transaction frequency
Swap immediately if you need liquidity
Let dust accumulate and sweep monthly
There's no requirement to swap on any schedule.
Q: What's the difference between "Claim & Convert" and "Sweep Wallet"?
A:
Claim & Convert:
Claims pending rewards from the distributor contract
Then swaps ALL tokens in your wallet (both newly claimed + any pre-existing holdings)
Use when you have pending rewards to claim
⚠️ WARNING: This will swap ALL tokens in the registry, including tokens you were holding from previous weeks
Sweep Wallet:
Only swaps tokens already in your wallet
Doesn't claim anything from distributor
Use for accumulated dust or external rewards
Faster (no claim transaction needed)
Same behavior as "Claim & Convert" regarding which tokens get swapped (ALL tokens in registry)
Key Point: Both operations swap ALL tokens found in your wallet that are in the protocol's registry. If you want to hold a specific token (e.g., manually managing your AERO), you must move it to a different wallet address BEFORE using either operation.
Q: Why don't other liquid staking protocols have this feature?
A: Great question! There are a few reasons:
1. They don't have the problem (yet):
Most protocols simplify by only distributing rewards in 1-2 tokens
This limits yield potential but avoids complexity
Easier to build, but leaves money on the table
2. They tried and couldn't solve it:
Building a production-grade batch swapper is engineering-intensive
Requires handling: quote aggregation, dynamic slippage, failure recovery, scam tokens, FOT tokens, gas optimization, and more
Many protocols started building this and gave up
3. They don't prioritize UX:
Some protocols assume users will handle it themselves
"Not our problem" approach to reward management
Focus on protocol mechanics, not user experience
4. They didn't want to invest the resources:
This feature required significant development time
Smart contract complexity increases audit costs
Ongoing maintenance as DEXs and aggregators evolve
iAERO's Philosophy: We believe user experience is a feature, not a luxury. We participate in Aerodrome's full incentive ecosystem (50+ reward tokens), which maximizes yields. But we also believe you shouldn't need a computer science degree to manage those yields.
So we built the tooling. And now we have a competitive advantage—users who try it don't want to go back to manual swapping.
The result? We're the only protocol where "claim rewards" actually means "get USDC in your wallet" or "get more iAERO staked"—not "get 47 random tokens you now need to deal with."
Q: Is this better than manually swapping valuable tokens?
A: For tokens worth >$100, you might get slightly better execution by manually routing through Aerodrome or finding the optimal path yourself.
But the time savings, convenience, and gas efficiency usually outweigh the potential 0.1-0.5% better execution you might achieve manually.
For most users, the answer is yes, this is better, especially when you factor in your time value.
One more consideration: If you're manually managing some tokens (e.g., accumulating AERO to stake elsewhere), you'll need to move them to a separate wallet before using the Reward Swapper. The system doesn't know which tokens you want to keep vs. swap—it treats ALL tokens in your wallet as "rewards to convert."
Tips & Tricks
1. Batch Your Weekly Claims 📅
Instead of claiming every day, wait until Thursday after the epoch ends and claim everything at once. You'll:
Have more rewards to swap (better routes)
Pay gas once instead of multiple times
Spend 35 seconds instead of hours
2. Use "Sweep Wallet" for External Rewards 🧹
If you receive tokens from other sources (airdrops, other protocols, etc.), you can add them to the registry and use "Sweep Wallet" to convert them along with your iAERO rewards.
3. Monitor the Console 🖥️
The console logs provide valuable insights:
Which tokens succeeded
Why tokens failed
Price impact for each token
Slippage used per swap
Coming Soon: Advanced Features
We're constantly improving the Reward Swapper. Future enhancements may include:
🎯 Token Selection UI: Pick which tokens to swap
⚙️ Custom Slippage: Override automatic slippage per token
🔄 Auto-Compound Scheduling: Set it and forget it
💎 NFT Reward Support: Handle NFT rewards automatically
🌐 Multi-Chain Support: Swap rewards across chains
Conclusion: Setting the Standard for DeFi UX
The Reward Swapper represents a fundamental shift in how DeFi reward management works—and iAERO is leading this change.
While other protocols leave users to wrestle with dozens of reward tokens manually, we asked: "What if we actually built the tooling users need?"
The result is the first and only automated batch reward conversion system that handles the full complexity of multi-token yield farming:
50+ tokens per week
Multiple DEX integrations
Intelligent routing and slippage
Scam protection and failure recovery
Gas optimization through batching
The Competitive Moat
This isn't just a feature—it's a competitive advantage:
Other protocols can't easily copy this (it took significant engineering investment)
Users who experience it won't want to go back (like going from dial-up to broadband)
It compounds over time (every week saves another 2 hours)
It attracts power users (sophisticated DeFi participants value their time)
Why This Matters for the Protocol
Users who don't have to spend 2 hours per week managing rewards are:
✅ More likely to stake long-term (less friction = more stickiness)
✅ More likely to compound (one-click compounding is frictionless)
✅ More likely to recommend iAERO to others (word-of-mouth growth)
✅ Less likely to churn to competitors (even if yields are similar elsewhere)
User experience is a moat. And right now, we have the best reward management UX in DeFi.
By the Numbers
Instead of treating you like a full-time portfolio manager who loves spending hours on mundane token swaps, we treat you like what you are: someone who wants to maximize yields with minimum hassle.
Annual Impact:
⏱️ 112 hours saved (nearly 5 full days of your life back)
🧠 Zero cognitive overhead (no more "I should swap my rewards... later")
🗑️ Zero dust left behind (every dollar of yield captured)
😌 Dramatically less frustration (no more failed transactions or slippage hunting)
Cost:
~3 minutes first-time setup
~35 seconds every week after
That's a 19,300% time efficiency improvement (from 130 min to 35 sec).
If your time is worth $15/hr (minimum wage), you're saving $1,680 in time value
Total annual benefit: ~$4,780
For free. Because we believe DeFi should work for you, not the other way around.
The Vision
This is just the beginning. The Reward Swapper proves that DeFi protocols CAN prioritize user experience without sacrificing decentralization or security.
As other protocols wake up to this reality, we'll already be 10 steps ahead, building the next set of tools that make complex DeFi simple.
Because at the end of the day, the best protocol isn't the one with the highest APY—it's the one you actually enjoy using.
Welcome to veAERO 2.0. Welcome to actually enjoying DeFi again. Welcome to having your time back. 🚀
Quick Reference
One-Click Actions
Claim & Convert to USDC
Claims all rewards + swaps to USDC
Taking profits, paying bills, DCA
Claim & Compound
Claims all rewards + swaps to iAERO + restakes
Long-term accumulation, max gains
Sweep Wallet
Swaps all tokens in wallet (no claim)
Cleaning up dust, external rewards
Time Required
First time (with approvals)
~3 minutes
Subsequent swaps
~35 seconds
Manual approach (comparison)
~2 hours
Questions or issues? Check the console logs first—they'll tell you exactly what happened. If something seems wrong, reach out in Discord or create a GitHub issue with the console output.
Happy swapping! 🎉
Last updated: November 2025 Smart Contract: RewardSwapper.sol Documentation: docs.iaero.finance
Last updated