Skip to content

FutureToken

ITTFutureToken

Interface for TTFutureToken, which tracks ownership of TokenTable unlocking schedules.

This page describes version 2.7.7. The implementation is TTFutureToken (version() returns 2.7.7-TTFutureToken plus the EVM suffix). In npm package 2.7.0 the interface is called ITTFutureTokenV2 and has no enableTransfer, isTransferable or DidEnableTransfer.

ITTFutureToken extends IERC721AQueryableUpgradeable (ERC721A) and IVersionable. The token ID of each FutureToken is the actualId of its unlocking schedule, and the token's owner receives the schedule's claims. The token name is Future <project token name> and the symbol FT-<project token symbol>.

While transfers are disabled, transferFrom and safeTransferFrom revert with NotPermissioned.

DidEnableTransfer

event DidEnableTransfer()

DidSetBaseURI

event DidSetBaseURI(string newURI)

NotPermissioned

error NotPermissioned()

0x7f63bd0f

initialize

function initialize(address projectToken, bool isTransferable) external

Deploy this contract with TTUDeployer, 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 Whether FutureTokens (schedules) can be transferred after minting.

setAuthorizedMinterSingleUse

function setAuthorizedMinterSingleUse(address authorizedMinter_) external

Deploy this contract with TTUDeployer, which calls this function with the correct parameters.

Can only be called once.

Parameters

Name Type Description
authorizedMinter_ address The address allowed to mint new FutureTokens. The deployer sets it to the corresponding Unlocker.

safeMint

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

Safely mints a new FutureToken to the given address.

Only callable 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).

enableTransfer

function enableTransfer() external

Enables FutureToken transfers if they are disabled.

Only callable by the owner of the authorized minter, usually the founder.

Emits DidEnableTransfer. There is no function to disable transfers again.

setURI

function setURI(string uri) external

Updates the base URI.

Only callable by the owner of the authorized minter, usually the founder.

Emits DidSetBaseURI.

Parameters

Name Type Description
uri string The new base URI.

getUnlocker

function getUnlocker() external view returns (address)

Returns the Unlocker address.

isTransferable

function isTransferable() external view returns (bool)

Returns whether FutureTokens are transferable.