Replacing the native AERO token with an exogenous token in Aerodrome is technically feasible due to the protocol's modular architecture. However, this integration requires careful consideration of interface compatibility, minting mechanisms, governance implications, and economic effects. This document provides a comprehensive analysis of all considerations for such an integration.
The exogenous token MUST implement the IAero interface:
interface IAero is IERC20 {
function mint(address account, uint256 amount) external returns (bool);
function minter() external view returns (address);
}Reference: /home/jordan/Documents/dev/crypto/aragon/aerodrome/contracts/interfaces/IAero.sol
Critical Requirement: The token must allow the Aerodrome Minter contract to have exclusive minting rights.
Current Implementation:
function mint(address account, uint256 amount) external returns (bool) {
if (msg.sender != minter) revert NotMinter();
_mint(account, amount);
return true;
}Reference: /home/jordan/Documents/dev/crypto/aragon/aerodrome/contracts/Aero.sol:27-31
Considerations:
- If the exogenous token has existing minting logic, it must be compatible
- Multiple minters could break Aerodrome's emission schedule
- Pre-existing supply affects inflation calculations
No contracts have hardcoded AERO addresses. Token references flow through:
- VotingEscrow → stores token address
- Minter → reads from VotingEscrow:
aero = IAero(IVotingEscrow(_ve).token()) - Voter → reads from VotingEscrow:
rewardToken = IVotingEscrow(_ve).token() - RewardsDistributor → reads from VotingEscrow:
token = ve.token()
Reference: /home/jordan/Documents/dev/crypto/aragon/aerodrome/contracts/Minter.sol:69
If the exogenous token has existing supply:
- Inflation Rate Changes: Emission calculations based on total supply will differ
- Dilution Effects: Existing holders face different dilution than intended
- Growth Calculations: Anti-dilution formulas assume starting from zero
Growth Formula Impact:
_growth = (((_minted * (_aeroTotal - _veTotal)) / _aeroTotal) *
(_aeroTotal - _veTotal)) / _aeroTotal / 2;Reference: /home/jordan/Documents/dev/crypto/aragon/aerodrome/contracts/Minter.sol:139
Considerations:
- Existing token holders vs new participants
- Fair launch vs pre-mine implications
- Initial liquidity and voting power concentration
If the token has utility outside Aerodrome:
- Competing Incentives: Users may prefer external uses over locking
- Price Volatility: External factors affect LP incentives
- Liquidity Fragmentation: Token liquidity split across ecosystems
Critical Issue: Aerodrome governance would not control token minting if external governance exists.
Potential Conflicts:
- External governance could mint tokens outside emission schedule
- Aerodrome's inflation assumptions could be violated
- Tail emission governance becomes meaningless
Considerations:
- Token upgrades must maintain IAero interface
- Breaking changes could halt Aerodrome operations
- Coordination required between two governance systems
If exogenous token has:
- Pause Functionality: Could freeze Aerodrome operations
- Blacklist Features: Could block protocol contracts
- Admin Functions: Could interfere with emissions
Required changes:
// Deploy exogenous token (must implement IAero)
const token = await ExogenousToken.deploy();
// Ensure Minter can mint
await token.setMinter(minter.address);
// Deploy VotingEscrow with token
const ve = await VotingEscrow.deploy(token.address, ...);The token MUST be compatible with OpenZeppelin's SafeERC20:
- Cannot revert on
transferfailure (should return false) - Must emit proper Transfer events
- Standard ERC20 compliance required
Current AERO uses ERC20Permit for gasless approvals:
- If not supported, some integrations may need updates
- Frontend changes required for approval flows
- Gas optimization benefits lost
Reference: /home/jordan/Documents/dev/crypto/aragon/aerodrome/contracts/Aero.sol:12
If using an ERC20Votes token with delegation:
Issue: Votes could be counted in both systems
- ERC20Votes: Direct token voting
- VotingEscrow: veNFT-based voting
Solution Options:
- Disable ERC20Votes when locked in VotingEscrow
- Use only one voting system
- Implement careful accounting to prevent double-counting
Current Limitation: Tokens in liquidity pools cannot delegate without pool contract support.
Potential Solution:
// Modified pool contract
function delegateTokens(address delegatee) external onlyGovernance {
IERC20Votes(token).delegate(delegatee);
}Challenges:
- Requires modifying all pool contracts
- Gas costs for delegation transactions
- Complexity in tracking delegations
Must decide between:
- Option A: Use veNFT voting only (current system)
- Option B: Combine ERC20Votes + veNFT voting
- Option C: Use ERC20Votes only (major redesign)
Requirements:
- Audit minting logic for vulnerabilities
- Verify no hidden minting functions
- Check for upgradability risks
Critical Tests:
- Minting permissions and restrictions
- Emission schedule calculations with pre-existing supply
- Edge cases in growth calculations
- SafeERC20 compatibility
Plan for:
- Token contract compromise
- External governance attacks
- Minting key loss or theft
- Audit exogenous token for compatibility
- Deploy test environment
- Verify all integrations
- Deploy fresh Aerodrome contracts with exogenous token
- Transfer minting rights to Minter contract
- Initialize emission schedule
- Enable token swaps if migrating existing deployment
- Migrate liquidity and positions
- Transfer governance control
- Loss of Minting Control: External governance could break emissions
- Interface Incompatibility: Token changes could break protocol
- Economic Misalignment: External utility conflicts with Aerodrome incentives
- Double Voting: ERC20Votes + veNFT overlap
- Delegation Complexity: Pool delegation implementation challenges
- Supply Assumptions: Pre-existing supply affects calculations
- Gas Costs: Potential increase without ERC20Permit
- UI Updates: Frontend changes for different token
- User Education: Explaining new token mechanics
- Minimal pre-existing supply
- No external minting rights
- No pause/blacklist functions
- ERC20Permit support
- Simple, immutable design
- Disable token-based voting when locked
- Implement delegation at veNFT level only
- Avoid complex delegation schemes in pools
- Ensure Aerodrome governance has ultimate minting control
- Establish clear coordination with external governance
- Define emergency procedures and controls
Integrating an exogenous token into Aerodrome is technically feasible but requires careful consideration of minting control, governance alignment, and economic implications. The protocol's modular architecture supports token replacement, but success depends on choosing a compatible token and properly managing the complex interactions between emission schedules, voting systems, and external token utility. The most critical requirement is maintaining exclusive minting control to preserve Aerodrome's emission schedule integrity.