# FXD

### Overview

The FXD token adheres to the ERC-20 standard and includes additional functionalities tailored to the Fathom protocol's needs.

### ERC-20 Standard Functions

#### `name`

* **Description**: Returns the name of the token.
* **Returns**: `string` representing the token's name.

#### `symbol`

* **Description**: Returns the token symbol.
* **Returns**: `string` representing the token's symbol.

#### `decimals`

* **Description**: Returns the number of decimals the token uses.
* **Returns**: `uint8` representing the number of decimal places the token uses. This affects the granularity of the token.

#### `totalSupply`

* **Description**: Returns the total amount of FXD tokens currently in circulation.
* **Returns**: `uint256` representing the total supply of tokens.

#### `balanceOf`

* **Parameters**:
  * `account` (address): The address of the token holder.
* **Description**: Provides the balance of FXD tokens held by a specific account.
* **Returns**: `uint256` representing the number of tokens held by the specified account.

#### `transfer`

* **Parameters**:
  * `to` (address): The address of the recipient.
  * `amount` (uint256): The amount of FXD tokens to transfer.
* **Description**: Transfers a specified amount of FXD tokens from the caller's account to another address.
* **Returns**: `bool` indicating whether the transfer was successful.
* **Emits**: `Transfer` event.

#### `allowance`

* **Parameters**:
  * `owner` (address): The address of the token owner.
  * `spender` (address): The address of the spender.
* **Description**: Returns the remaining number of tokens that the spender is allowed to spend on behalf of the owner.
* **Returns**: `uint256` representing the remaining amount of tokens allowed to be spent.

#### `approve`

* **Parameters**:
  * `spender` (address): The address of the spender.
  * `amount` (uint256): The amount of FXD tokens the spender is allowed to use.
* **Description**: Approves a spender to withdraw tokens from the owner's account multiple times, up to the specified amount.
* **Returns**: `bool` indicating whether the approval was successful.
* **Emits**: `Approval` event.

#### `transferFrom`

* **Parameters**:
  * `from` (address): The address of the sender.
  * `to` (address): The address of the recipient.
  * `amount` (uint256): The amount of tokens to transfer.
* **Description**: Transfers tokens from one account to another, using an allowance mechanism.
* **Returns**: `bool` indicating whether the transfer was successful.
* **Emits**: `Transfer` event.

### Additional Functions

#### `mint`

* **Parameters**:
  * `to` (address): The address that will receive the created tokens.
  * `amount` (uint256): The amount of tokens to create.
* **Description**: Mints new FXD tokens and assigns them to the specified address, increasing the total supply. Can be called only by the `StablecoinAdapter` in the process of taking the loan.

#### `burn`

* **Parameters**:
  * `from` (address): The address from which tokens will be burned.
  * `amount` (uint256): The amount of tokens to burn.
* **Description**: Burns a specified amount of FXD tokens from a given account, reducing the total supply. Can be called only by the `StablecoinAdapter` in the process of repaying the loan.

#### `increaseAllowance`

* **Parameters**:
  * `spender` (address): The address of the spender.
  * `addedValue` (uint256): The additional amount of tokens that the spender is allowed to spend.
* **Description**: Increases the allowance that a spender has to use the caller’s tokens.
* **Returns**: `bool` indicating whether the operation was successful.

#### `decreaseAllowance`

* **Parameters**:
  * `spender` (address): The address of the spender.
  * `subtractedValue` (uint256): The amount by which to decrease the spender's allowance.
* **Description**: Decreases the allowance that a spender has to use the caller’s tokens.
* **Returns**: `bool` indicating whether the operation was successful.

### Events

#### `Transfer`

* **Emitted when**: Tokens are moved from one account to another.
* **Parameters**:
  * `from` (address indexed): The address of the sender.
  * `to` (address indexed): The address of the receiver.
  * `value` (uint256): The amount of tokens transferred.

#### `Approval`

* **Emitted when**: A spender is approved to use tokens from another account.
* **Parameters**:
  * `owner` (address indexed): The address of the token owner.
  * `spender` (address indexed): The address of the spender who is granted permission.
  * `value` (uint256): The amount of tokens the spender is allowed to use.


---

# Agent Instructions: 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:

```
GET https://docs.fathom.fi/fxd-stablecoin/interfaces/fxd.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
