API Reference

API reference for @tetherto/wdk-protocol-lending-aave-evm

Class: AaveProtocolEvm

Main class for Aave V3 lending on EVM.

Constructor

new AaveProtocolEvm(account)

Parameters:

  • account: WalletAccountEvm | WalletAccountReadOnlyEvm | WalletAccountEvmErc4337 | WalletAccountReadOnlyEvmErc4337

Example:

const aave = new AaveProtocolEvm(account)

Methods

Method
Description
Returns

supply(options, config?)

Add tokens to the pool

Promise<{hash: string, fee: bigint, approveHash?: string, resetAllowanceHash?: string}>

quoteSupply(options, config?)

Estimate cost to add tokens

Promise<{fee: bigint}>

withdraw(options, config?)

Remove tokens from the pool

Promise<{hash: string, fee: bigint}>

quoteWithdraw(options, config?)

Estimate cost to withdraw

Promise<{fee: bigint}>

borrow(options, config?)

Borrow tokens

Promise<{hash: string, fee: bigint}>

quoteBorrow(options, config?)

Estimate borrowing cost

Promise<{fee: bigint}>

repay(options, config?)

Repay borrowed tokens

Promise<{hash: string, fee: bigint}>

quoteRepay(options, config?)

Estimate repayment cost

Promise<{fee: bigint}>

setUseReserveAsCollateral(token, use, config?)

Toggle token as collateral

Promise<{hash: string, fee: bigint}>

setUserEMode(categoryId, config?)

Set user eMode

Promise<{hash: string, fee: bigint}>

getAccountData(account?)

Read account stats

Promise<{ totalCollateralBase: bigint, totalDebtBase: bigint, availableBorrowsBase: bigint, currentLiquidationThreshold: bigint, ltv: bigint, healthFactor: bigint }>


supply(options, config?)

Add tokens to the pool.

Options:

  • token (string): token address

  • amount (bigint): amount in base units

  • onBehalfOf (string, optional)

Returns:

  • May include approveHash and resetAllowanceHash for standard accounts (e.g., USDT allowance reset on Ethereum mainnet)

Example:

const res = await aave.supply({ token: 'TOKEN_ADDRESS', amount: 1000000n })

quoteSupply(options, config?)

Estimate fee to add tokens.

const q = await aave.quoteSupply({ token: 'TOKEN_ADDRESS', amount: 1000000n })

withdraw(options, config?)

Remove tokens from the pool.

Options:

  • token (string)

  • amount (bigint)

  • to (string, optional)

const tx = await aave.withdraw({ token: 'TOKEN_ADDRESS', amount: 1000000n })

quoteWithdraw(options, config?)

Estimate fee to withdraw tokens.

const q = await aave.quoteWithdraw({ token: 'TOKEN_ADDRESS', amount: 1000000n })

borrow(options, config?)

Borrow tokens.

Options:

  • token (string)

  • amount (bigint)

  • onBehalfOf (string, optional)

const tx = await aave.borrow({ token: 'TOKEN_ADDRESS', amount: 1000000n })

quoteBorrow(options, config?)

Estimate fee to borrow tokens.

const q = await aave.quoteBorrow({ token: 'TOKEN_ADDRESS', amount: 1000000n })

repay(options, config?)

Repay borrowed tokens.

Options:

  • token (string)

  • amount (bigint)

  • onBehalfOf (string, optional)

const tx = await aave.repay({ token: 'TOKEN_ADDRESS', amount: 1000000n })

Returns:

  • For standard accounts, may include approveHash / resetAllowanceHash when applicable.


quoteRepay(options, config?)

Estimate fee to repay borrowed tokens.

const q = await aave.quoteRepay({ token: 'TOKEN_ADDRESS', amount: 1000000n })

setUseReserveAsCollateral(token, use, config?)

Toggle token as collateral for the user.

const tx = await aave.setUseReserveAsCollateral('TOKEN_ADDRESS', true)

setUserEMode(categoryId, config?)

Set user eMode category.

const tx = await aave.setUserEMode(1)

getAccountData(account?)

Read account stats like total collateral, debt, and health.

const data = await aave.getAccountData()

Returns the following structure:

{
  totalCollateralBase: bigint,
  totalDebtBase: bigint,
  availableBorrowsBase: bigint,
  currentLiquidationThreshold: bigint,
  ltv: bigint,
  healthFactor: bigint
}

ERC‑4337 Config (optional)

  • paymasterToken (string): token used to pay gas when sponsored.

Rules & Notes

  • token must be a valid (non‑zero) address

  • amount > 0 and in token base units (use BigInt)

  • onBehalfOf/to (if set) must be valid, non‑zero addresses

  • A provider is required to read/send transactions

  • For USDT on mainnet, allowance may be reset to 0 then set again before actions


Need Help?