Skip to content
Aave Tracker

aTokens and debt tokens explained

Supplying to Aave gives you aTokens, and borrowing gives you debt tokens. Learn why both balances grow every block and how Aave's two indexes make that work.

Updated

Every position on Aave is represented by a token in your wallet. Supply an asset and you receive aTokens. Borrow an asset and you hold debt tokens. Both have an unusual habit: their balances grow on their own. Here is how that works and why it is useful.

aTokens: your deposit receipt

When you supply 1,000 USDC to the Ethereum Core market, you receive 1,000 aTokens for that market, which carry the symbol aEthUSDC. They are a claim on your deposit, and each one can be redeemed for one USDC as long as the pool has liquidity available to withdraw.

Interest is not sent to you as separate payments. Your aToken balance simply rises. Check a week later and the 1,000 has become slightly more, and all of it is redeemable.

aTokens can be transferred. Sending them to another address moves the deposit, and its future interest, to that address. If the deposit is being used as collateral, a transfer lowers your health factor, and the protocol blocks transfers that would push it below 1.

How a balance can grow without transactions

Paying interest to every supplier in every block would be impossibly expensive. Aave avoids it with a simple trick. The contract stores two things:

  • a scaled balance for each user, which only changes when that user deposits or withdraws, and
  • a liquidity index for the whole pool, which starts at 1 and grows with the supply rate.

aToken balance = scaled balance x liquidity index

Whenever a wallet or an app asks for your balance, the contract does that multiplication using the index as of that moment. Nothing has to be sent to you. The number is simply larger each time it is read.

Debt tokens: what you owe

Borrowing works the same way in mirror image. When you borrow USDC on Ethereum Core, the protocol mints variable debt tokens to your address, with the symbol variableDebtEthUSDC. Their balance is the amount you owe.

debt = scaled debt x variable borrow index

The variable borrow index also started at 1 when the asset was listed, and it grows with the borrow rate. At the time of writing (September 2026) the USDC borrow index on Ethereum Core stood near 1.25. In plain terms, a USDC loan taken when the market opened in January 2023 and never touched would by now have grown by about 25%.

Debt tokens cannot be transferred. You cannot send your debt to someone else. Earlier versions of Aave also had stable-rate debt tokens, but new borrowing on Aave V3 is variable-rate.

TokenYou receive it when youTransferableGrows with
aTokenSupplyYesLiquidity index
Variable debt tokenBorrowNoVariable borrow index

Why balances tick up every block

Both indexes are functions of time. Each new block has a later timestamp, so a balance read in that block uses a slightly larger index. That is why a wallet that refreshes often shows an aToken balance creeping up in real time, and why a debt is never exactly the same from one minute to the next.

Why this matters in practice

  • Interest arrives as balance growth. There is no list of interest payments to look through. The change in balance is the interest.
  • Repaying everything needs care. Because debt grows every second, apps repay with a special maximum setting, or send slightly more than the displayed amount, so that no dust is left behind.
  • Exact costs can be measured. The growth of the borrow index between two dates is exactly the interest charged in between. We use that to build the daily averages in our USDC borrow rate history, as explained in why your average rate differs from the current rate.

The aToken, debt token and underlying token addresses of each asset are listed on its asset page, for example USDC on Ethereum.

The rates behind both indexes are stored as APRs, which the Aave app displays as the slightly higher APY.

Common questions

Why does my aToken balance keep increasing?

Your balance is a fixed scaled amount multiplied by the pool's liquidity index. The index grows with the supply rate, so the balance is larger every time it is read.

Is one aUSDC always worth one USDC?

Each aToken can be redeemed for one unit of the underlying asset, as long as the pool has enough available liquidity for the withdrawal.

Can I transfer my Aave debt to another wallet?

No. Debt tokens cannot be transferred. aTokens can be, although the protocol blocks a transfer that would drop your health factor below 1.

Why is a little debt left after I repay the amount shown?

Debt grows every second, so by the time the transaction confirms you owe slightly more than the figure you saw. Apps avoid this by repaying with a maximum setting.

Keep reading