> For the complete documentation index, see [llms.txt](https://docs.zivoe.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zivoe.com/developer-docs/core-contracts/zivoetranchetoken.sol.md).

# ZivoeTrancheToken.sol

## Introduction

This ERC20 contract outlines the tranche token functionality.

This contract should support the following functionalities:

* Mintable.
* Burnable.
* Inherit the ownable library to handle temporary minterRole management.

**This contract was adopted from the OpenZeppelin ERC20 Library.**

For further documentation, see: <https://docs.openzeppelin.com/contracts/4.x/api/token/erc20#ERC20>

#### State Variables

<table><thead><tr><th width="205.33333333333331">Type</th><th width="150">Name</th><th>Description</th></tr></thead><tbody><tr><td>mapping(address => bool)</td><td>_isMinter</td><td>Whitelist for accessibility to mint() function, exposed in isMinter() view function.</td></tr></tbody></table>

## **Sections**

[#read-functions](#read-functions "mention")

* [#isminter](#isminter "mention") - Returns the whitelist status of account for accessibility to `mint()` function.

[#write-functions](#write-functions "mention")

* [#burn](#burn "mention") - Burns $zTT (Zivoe Tranche Tokens).
* [#changeminterrole](#changeminterrole "mention") - Update an account's permission for access to `mint()` function.
* [#mint](#mint "mention") - Mints $zTT (Zivoe Tranche Tokens).

[#events](#events "mention")

* &#x20;[#minterupdated](#minterupdated "mention")

## Read Functions

#### `isMinter()`

Returns the whitelist status of account for accessibility to `mint()` function.

```solidity
function isMinter(address account) external view returns (bool minter);
```

<table><thead><tr><th width="139.33333333333331">Type</th><th width="145">Name</th><th>Description</th></tr></thead><tbody><tr><td>address</td><td>account</td><td>The amount to deposit.</td></tr></tbody></table>

*Returns*

<table><thead><tr><th width="139.33333333333331">Type</th><th width="145">Name</th><th>Description</th></tr></thead><tbody><tr><td>bool</td><td>minter</td><td>Returns true if account is allowed to access the <code>mint()</code> function.</td></tr></tbody></table>

## Write Functions

#### `burn()`

Burns $zTT (Zivoe Tranche Tokens).

```solidity
function burn(uint256 amount) external;
```

<table><thead><tr><th width="139.33333333333331">Type</th><th width="145">Name</th><th>Description</th></tr></thead><tbody><tr><td>uint256</td><td>amount</td><td>The number of $zTT tokens to burn.</td></tr></tbody></table>

#### `changeMinterRole()`

Update an account's permission for access to `mint()` function.

```solidity
function changeMinterRole(address account, bool allowed) external onlyOwner;
```

<table><thead><tr><th width="139.33333333333331">Type</th><th width="145">Name</th><th>Description</th></tr></thead><tbody><tr><td>address</td><td>account</td><td>The account to change permission for.</td></tr><tr><td>bool</td><td>allowed</td><td>The permission to give account (true = permitted, false = prohibited).</td></tr></tbody></table>

Emits the [#minterupdated](#minterupdated "mention") event.

#### `mint()`

Mints $zTT (Zivoe Tranche Tokens).

```solidity
function mint(address account, uint256 amount) external isMinterRole;
```

<table><thead><tr><th width="139.33333333333331">Type</th><th width="145">Name</th><th>Description</th></tr></thead><tbody><tr><td>address</td><td>account</td><td>The account to mint tokens for.</td></tr><tr><td>uint256</td><td>amount</td><td>The amount of $zTT tokens to mint for account.</td></tr></tbody></table>

## Events

#### **`MinterUpdated()`**

Emitted during [#changeminterrole](#changeminterrole "mention")

```solidity
event MinterUpdated(address indexed account, bool allowed);
```

<table><thead><tr><th width="127.33333333333331">Type</th><th width="98">Indexed</th><th width="132">Name</th><th>Description</th></tr></thead><tbody><tr><td>address</td><td>True</td><td>account</td><td>The account who is receiving or losing the minter role.</td></tr><tr><td>bool</td><td>False</td><td>allowed</td><td>If true, account receives minter privlidges, if false the account loses minter privlidges.</td></tr></tbody></table>


---

# 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.zivoe.com/developer-docs/core-contracts/zivoetranchetoken.sol.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.
