UNPKG

@elizaos/plugin-aave

Version:

ElizaOS plugin for Aave Protocol - DeFi lending and borrowing

216 lines (170 loc) 4.63 kB
# @elizaos/plugin-aave A comprehensive Aave V3 Protocol integration plugin for ElizaOS that enables DeFi lending and borrowing operations across 16+ supported networks. ## Features - **Multi-Chain Support**: Ethereum, Polygon, Avalanche, Arbitrum, Optimism, Base, BNB Chain, and more - **DeFi Operations**: Supply, borrow, repay, and withdraw assets - **Portfolio Management**: Monitor health factors and liquidation risks - **Market Data**: Real-time APYs and protocol statistics - **Natural Language**: Intuitive command interface ## Installation ```bash bun add @elizaos/plugin-aave ``` ## Configuration ```env # RPC URLs (at least one required) ETHEREUM_RPC_URL=https://eth.llamarpc.com POLYGON_RPC_URL=https://polygon-rpc.com ARBITRUM_RPC_URL=https://arb1.arbitrum.io/rpc OPTIMISM_RPC_URL=https://mainnet.optimism.io BASE_RPC_URL=https://mainnet.base.org # Optional WALLET_PRIVATE_KEY=your_private_key_here AAVE_DEFAULT_CHAIN=ethereum HEALTH_FACTOR_ALERT=1.5 ``` ## Supported Networks | Network | Chain ID | Native | Status | |---------|----------|--------|--------| | Ethereum | 1 | ETH | Mainnet | | Polygon | 137 | MATIC | Mainnet | | Avalanche | 43114 | AVAX | Mainnet | | Arbitrum One | 42161 | ETH | Mainnet | | Optimism | 10 | ETH | Mainnet | | Base | 8453 | ETH | Mainnet | | BNB Chain | 56 | BNB | Mainnet | | Gnosis Chain | 100 | xDAI | Mainnet | | + 8 more networks including testnets | | | | ## Usage ### Register the Plugin ```typescript import { aavePlugin } from '@elizaos/plugin-aave'; agent.registerPlugin(aavePlugin); ``` ### Available Actions #### Supply Assets ```typescript // Natural language "Supply 1000 USDC to Aave on Ethereum" "Lend 0.5 ETH to Aave on Arbitrum" // Action format { action: "AAVE_SUPPLY", options: { asset: "USDC", amount: "1000", chain: "ethereum", enableAsCollateral: true } } ``` #### Borrow Assets ```typescript // Natural language "Borrow 500 USDC from Aave on Ethereum" "Borrow 0.2 ETH against my collateral" // Action format { action: "AAVE_BORROW", options: { asset: "USDC", amount: "500", chain: "ethereum", interestRateMode: "variable" } } ``` #### Repay Debt ```typescript // Natural language "Repay 300 USDC debt to Aave" "Pay back all my DAI debt on Polygon" // Action format { action: "AAVE_REPAY", options: { asset: "USDC", amount: "300", chain: "ethereum", isMax: false } } ``` #### Withdraw Assets ```typescript // Natural language "Withdraw 500 USDC from Aave" "Remove 0.1 ETH from my position" // Action format { action: "AAVE_WITHDRAW", options: { asset: "USDC", amount: "500", chain: "ethereum" } } ``` ### Providers #### AAVE_POSITION_CONTEXT ``` Aave Portfolio Summary: - Total Value: $12,500.00 (Health Factor: 2.45) - Active Chains: 3 Ethereum: - USDC: $5,000 supplied (4.25% APY) - DAI: $1,000 borrowed (5.50% APY) Arbitrum: - ETH: $2,000 supplied (2.95% APY) ``` #### AAVE_MARKET_DATA ``` Aave Markets: Ethereum: USDC 4.25%/5.50% APY, ETH 2.80%/3.95% APY Arbitrum: USDC 4.10%/5.25% APY, ETH 2.95%/4.10% APY Polygon: MATIC 6.20%/8.50% APY, USDC 3.80%/5.10% APY ``` ## Service API ```typescript const aaveService = runtime.getService<AaveService>('aave'); // Supply assets await aaveService.supply({ asset: 'USDC', amount: new BigNumber('1000'), chain: 'ethereum' }); // Get user position const position = await aaveService.getUserPosition(); // Get market data const markets = await aaveService.getMarketData('ethereum'); ``` ## Common Assets - **Stablecoins**: USDC, USDT, DAI - **Native Assets**: ETH, MATIC, AVAX, BNB - **Wrapped Assets**: WETH, WBTC - **DeFi Tokens**: AAVE, LINK, ARB, OP ## Safety Features - Health factor monitoring with configurable alerts - Liquidation prevention for risky operations - Transaction validation and slippage protection - Cross-chain risk assessment ## Development ```bash bun run build # Build the plugin bun run test # Run tests bun run dev # Development mode bun run lint # Code linting ``` ## Error Handling - `InsufficientBalanceError`: Not enough tokens - `HealthFactorTooLowError`: Liquidation risk - `AssetNotSupportedError`: Asset not available - `NetworkConnectionError`: RPC issues - `ChainNotSupportedError`: Unsupported chain ## Interest Rate Modes - **Variable**: Fluctuating rates based on market (default) - **Stable**: Fixed rates for predictable payments (limited) ## License MIT ## Support For issues and feature requests, please create an issue on the [GitHub repository](https://github.com/elizaos/eliza).