Skip to main content
The Aave Ability enables Vincent Apps to interact with the Aave V3 lending protocol on behalf of Vincent Users. This allows Vincent Apps to provide comprehensive DeFi functionality including supplying assets as collateral, borrowing against collateral, repaying debt, and withdrawing assets.

Key Features

  • Comprehensive DeFi Operations: Supports all core Aave V3 operations (supply, withdraw, borrow, repay) using Vincent Wallets within a Trusted Execution Environment
  • Multi-Chain Support: Works across multiple networks where Aave V3 is deployed including Ethereum, Polygon, Arbitrum, Optimism, Base, and many more
  • Intelligent Validation: Performs comprehensive precheck validation including balance checks, allowance verification, and borrowing capacity analysis

How It Works

The Aave Ability is built using the Vincent Ability SDK and operates in two phases:
1

Precheck Phase

Validates all prerequisites for the Aave operation:
  • Validates operation type, asset address, and amount format
  • Performs all operation-specific checks, including:
    • Ensuring sufficient token balance and allowance (for supply/repay)
    • Verifying borrowing capacity and collateral (for borrow)
  • Estimates gas costs for the operation
  • Returns detailed validation results, including available markets
2

Execution Phase

Executes the Aave protocol operation:
  • Retrieves Aave contract addresses for the specified chain
  • Constructs and signs the appropriate Aave protocol transaction
  • Submits the transaction to the blockchain
  • Returns transaction hash and operation details

Getting Started

Depending on your role in the Vincent Ecosystem, you’ll be interacting with this Ability in different ways. Click on the link below that matches your role to see how to get started:
  • Vincent App Developers: If you’re building a Vincent App that needs to interact with Aave, go here.
  • Vincent App Delegatees: If you’re executing this ability on behalf of Vincent App Users, go here.

Adding the Ability to your Vincent App

If you want to enable your App Delegatees to perform Aave operations on behalf of your Vincent App Users, you can add this Ability to your App. Adding Abilities to your Vincent App is done using the Vincent App Dashboard. Visit the Create Vincent App guide to learn more about how to add Abilities to your App during creation, or check out the Updating Your App guide to learn how to add Abilities to an existing App.

Executing the Ability as a Vincent App Delegatee

Before executing Aave operations, the following conditions must be met. You can use the Ability’s precheck function to check if these conditions are met, or you can check them manually.
  • Native Token Balance for Gas Fees: The Vincent App User’s Vincent Wallet must have enough native tokens (ETH, MATIC, etc.) to cover the transaction gas fees for the Aave operation.
  • ERC20 Token Approval: For supply and repay operations, the Vincent App User’s Vincent Wallet must have approved the Aave Pool contract to spend the tokens.
To learn more about executing Vincent Abilities, see the Executing Abilities guide.
If your Vincent App has enabled the ERC20 Approval Ability, you can use it to handle submitting the approval transaction using the Vincent Wallet.

Operation-Specific Requirements

Each Aave operation has specific validation requirements that are checked during the precheck phase:
  • Supply
  • Withdraw
  • Borrow
  • Repay
Requirements for Supply Operation:
  • Vincent Wallet must have sufficient token balance to cover the supply amount
  • Aave Pool contract must be approved to spend the required token amount
  • Both balance and allowance must be greater than or equal to the supply amount

Executing the precheck Function

This Ability’s precheck function validates all prerequisites for executing the specified Aave operation and provides detailed account information.
  • Parameters
  • Implementation
  • Response
Before executing the precheck function, you’ll need to provide the following parameters for the Aave operation:
{
  /**
   * The AAVE operation to perform (supply, withdraw, borrow, repay)
   */
  operation: 'supply' | 'withdraw' | 'borrow' | 'repay';
  /**
   * The token contract address for the operation
   */
  asset: string;
  /**
   * The amount of tokens to use in the operation, as a string
   */
  amount: string;
  /**
   * The blockchain network to perform the operation on
   */
  chain: string;
  /**
   * Interest rate mode: 1 for Stable, 2 for Variable
   * (required for borrow operations, optional for repay)
   */
  interestRateMode?: 1 | 2;
  /**
   * Custom RPC URL (optional, uses default if not provided)
   */
  rpcUrl?: string;
}

Executing the execute Function

This Ability’s execute function performs the actual Aave protocol operation.
  • Parameters
  • Implementation
  • Response
The execute function expects the same parameters as the precheck function (except rpcUrl which is not allowed):
{
  /**
   * The AAVE operation to perform (supply, withdraw, borrow, repay)
   */
  operation: 'supply' | 'withdraw' | 'borrow' | 'repay';
  /**
   * The token contract address for the operation
   */
  asset: string;
  /**
   * The amount of tokens to use in the operation, as a string
   */
  amount: string;
  /**
   * The blockchain network to perform the operation on
   */
  chain: string;
  /**
   * Interest rate mode: 1 for Stable, 2 for Variable
   * (required for borrow operations, optional for repay)
   */
  interestRateMode?: 1 | 2;
  // Note: rpcUrl is NOT allowed in execute
}
The rpcUrl parameter is not allowed in the execute function for security reasons. Only the chain parameter should be used.

Supported Networks

The Aave Ability supports operations on the following networks where Aave V3 is deployed:
Network TypeSupported Chains
Mainnetsethereum, polygon, avalanche, arbitrum, optimism, base, fantom, bnb, gnosis, scroll, metis, linea, zksync
Testnetssepolia, basesepolia, arbitrumsepolia, optimismsepolia, avalanchefuji, scrollsepolia

Important Considerations

The amount parameter should be specified in human-readable format (e.g., “1.5” for 1.5 tokens), not in wei or smallest units.
  • For precheck: You can provide either chain or rpcUrl
  • For execute: Only chain is allowed, rpcUrl will cause an error
This is a security feature to prevent RPC URL injection attacks.
The precheck function provides gas estimation, but actual gas usage may vary depending on network conditions.
Monitor your health factor when borrowing. A health factor below 1.0 triggers liquidation.Important: The Vincent Aave Ability does not validate health factor during the precheck phase. While the ability fetches the Vincent App User’s Vincent Wallet’s account data (including health factor), it only validates borrowing capacity and does not proactively check if a borrow operation would result in an unhealthy position. Health factor validation occurs at the Aave protocol level during transaction execution, and may result in failed transactions.

Error Handling

  • Insufficient Balance: Not enough tokens for supply/repay operations
  • Missing Approval: Token not approved for Aave contract spending
  • Insufficient Borrowing Capacity: Attempting to borrow more than collateral allows
  • Invalid Chain: Chain not supported by Aave V3
  • Health Factor Risk: Operation would result in unhealthy position
  • Invalid Asset: Token not supported on the specified Aave market
I