The VariableDebtToken contract is part of the Fathom lending protocol. It tracks users' borrowing positions at variable interest rates. This token is non-transferable and can only be minted or burned by the lending pool.

Storage Variables

  • DEBT_TOKEN_REVISION: Version of the debt token.

  • _underlyingAsset: The address of the underlying asset.

  • POOL: Reference to the main Pool contract.

  • _incentivesController: Incentives controller for the token.

Set Functions:

  • approveDelegation: Delegates borrowing power to a user.

  • delegationWithSig: Delegates borrowing power via signature.

  • setIncentivesController: Sets the incentives controller.

Get Functions:

  • balanceOf: Returns the debt balance of a user.

  • totalSupply: Returns the total supply of the debt token.

  • borrowAllowance: Returns the borrow allowance for a user.

  • name: Returns the name of the token.

  • symbol: Returns the symbol of the token.

  • decimals: Returns the number of decimals.

  • getIncentivesController: Returns the incentives controller address.

  • UNDERLYING_ASSET_ADDRESS: Returns the underlying asset address.

Mint/Burn Functions:

  • mint: Mints debt tokens to a user.

  • burn: Burns debt tokens from a user.

Disabled ERC20 Functions

The following standard ERC20 functions are disabled as this is a non-transferable token:

  • transfer

  • allowance

  • approve

  • transferFrom

  • increaseAllowance

  • decreaseAllowance

These functions revert with an OPERATION_NOT_SUPPORTED error if called.


  • Mint: Emitted when tokens are minted.

  • Burn: Emitted when tokens are burned.

  • BorrowAllowanceDelegated: Emitted when borrow allowance is delegated.

  • Transfer: Emitted when tokens are transferred (disabled in this contract).

  • Approval: Emitted when approval is given (disabled in this contract).

  • Initialized: Emitted when the contract is initialized.

Last updated

Copyright© Fathom App 2024.