> For the complete documentation index, see [llms.txt](https://docs.fathom.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fathom.fi/lending/interfaces/variabledebttoken.md).

# VariableDebtToken

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.

### Events

* `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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.fathom.fi/lending/interfaces/variabledebttoken.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
