> For the complete documentation index, see [llms.txt](https://phantazm.gitbook.io/phantazm-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://phantazm.gitbook.io/phantazm-1/the-core-protocol/aave-token.md).

# Phantazm Token (TBD)

The Phantazm token is an ERC-20 compatible token with the addition of a snapshot feature (used in governance balance tracking) and integrates [EIP 2612](https://github.com/ethereum/EIPs/blob/8a34d644aacf0f9f8f00815307fd7dd5da07655f/EIPS/eip-2612.md) permit function, allowing gas-less transactions and one transaction approval/transfer.

{% hint style="info" %}
This section will cover the technical aspects of the token.
{% endhint %}

The source code for the Phantazm token can be found on our Github

## Deployed Contracts

{% tabs %}
{% tab title="Mainnet" %}

| Proxy Contracts | Address and ABIs |
| --------------- | ---------------- |
| Phantazm Token  |                  |
| {% endtab %}    |                  |
| {% endtabs %}   |                  |

## Methods

Besides the standard ERC20 token features (`transfer()`, `balanceOf()`, `allowance()`, etc), the following features are also available.

### permit()

**`function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external`**

Allows a user to permit another account (or contract) to use their funds using a signed message. This enables gas-less transactions and single approval/transfer transactions.

| Parameter  | Type    | Description                                                                            |
| ---------- | ------- | -------------------------------------------------------------------------------------- |
| `owner`    | address | The owner of the funds                                                                 |
| `spender`  | address | The spender for the funds                                                              |
| `value`    | uint256 | The amount the `spender` is permitted to use                                           |
| `deadline` | uint256 | The deadline timestamp that the permit is valid. Use `type(uint).max` for no deadline. |
| `v`        | uint8   | Signature parameter                                                                    |
| `r`        | bytes32 | Signature parameter                                                                    |
| `s`        | bytes32 | Signature parameter                                                                    |

### \_nonces()

**`function _nonces(address owner) public`**

Returns the next valid nonce to submit when calling `permit()`

### event SnapshotDone

**`event SnapshotDone(address owner, uint128 oldValue, uint128 newValue)`**

An event emitted on every `transfer`, `mint` (with a valid `to` address), and `burn` (with a valid `from` address).

The snapshots are used for governance balance tracking.

| Parameter  | Type    | Description                                 |
| ---------- | ------- | ------------------------------------------- |
| `owner`    | address | The owner of the Phantazm tokens            |
| `oldValue` | uint128 | The value before the operation was executed |
| `newValue` | uint128 | The value after the operation was executed. |
