# FutureToken

## ITTFutureTokenV2

*The lightweight interface for TTFutureTokenV2(.5.x), which handles unlocking schedule ownership for TokenTable.*

### DidSetBaseURI

```solidity
event DidSetBaseURI(string newURI)
```

### NotPermissioned

```solidity
error NotPermissioned()
```

*0x7f63bd0f*

### initialize

```solidity
function initialize(address projectToken, bool isTransferable) external
```

*This contract should be deployed with `TTUDeployerLite`, which calls this function with the correct parameters.*

#### Parameters

| Name           | Type    | Description                                                                 |
| -------------- | ------- | --------------------------------------------------------------------------- |
| projectToken   | address | The address of the token that the founder intends to unlock and distribute. |
| isTransferable | bool    | If the FutureTokens (aka schedules) can be transfered once minted.          |

### setAuthorizedMinterSingleUse

```solidity
function setAuthorizedMinterSingleUse(address authorizedMinter_) external
```

This contract should be deployed with `TTUDeployerLite`, which calls this function with the correct parameters.

*This function can only be called once.*

#### Parameters

| Name               | Type    | Description                                                                                                          |
| ------------------ | ------- | -------------------------------------------------------------------------------------------------------------------- |
| authorizedMinter\_ | address | The address which is authorized to mint new FutureTokens. This is set to the corresponding Unlocker in the deployer. |

### safeMint

```solidity
function safeMint(address to) external returns (uint256 tokenId)
```

Safely mints a new FutureToken to the specified address.

*This function can only be called by the authorized minter.*

#### Parameters

| Name | Type    | Description                           |
| ---- | ------- | ------------------------------------- |
| to   | address | The recipient of the new FutureToken. |

#### Return Values

| Name    | Type    | Description                                         |
| ------- | ------- | --------------------------------------------------- |
| tokenId | uint256 | The minted token ID (aka actual ID or schedule ID). |

### setURI

```solidity
function setURI(string uri) external
```

Updates the base URI.

*This function can only be called by the owner of the authorized minter, which is usually the founder.*

#### Parameters

| Name | Type   | Description       |
| ---- | ------ | ----------------- |
| uri  | string | The new base URI. |

### getClaimInfo

```solidity
function getClaimInfo(uint256 tokenId) external view returns (uint256 deltaAmountClaimable, uint256 amountAlreadyClaimed, bool isCancelable)
```

Gets information regarding the unlocking schedule associated with this FutureToken.

#### Parameters

| Name    | Type    | Description                   |
| ------- | ------- | ----------------------------- |
| tokenId | uint256 | The actual ID or schedule ID. |

#### Return Values

| Name                 | Type    | Description                                                                                               |
| -------------------- | ------- | --------------------------------------------------------------------------------------------------------- |
| deltaAmountClaimable | uint256 | The amount of unlocked and unclaimed funds currently eligible to be claimed by the owner of the given ID. |
| amountAlreadyClaimed | uint256 | The amount of unlocked and claimed funds of the given ID.                                                 |
| isCancelable         | bool    | If the schedule associated with this ID can be canceled by the founder.                                   |


---

# 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.tokentable.xyz/for-developers/unlocker/evm/apis/core/futuretoken.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.
