# tTokens

tTokens serve as vaults holding a single tokenized product or RWA, represented by receipt tokens prefixed with ‘t’ (e.g., tULTRA). Each tToken vault maintains transparency, security, and efficient handling of assets, including pending transactions.

## Overview

| **Standard**      | ERC-4626 (Upgradable)                                                                 |
| ----------------- | ------------------------------------------------------------------------------------- |
| **Collateral**    | Whitelisted RWA token (e.g., ULTRA shares)                                            |
| **Receipt Token** | t\<ASSET> (e.g., tULTRA)                                                              |
| **Exchange Rate** | totalAssets() / totalSupply()  • totalAssets() = on-chain RWA balance + pendingAssets |

## **Key Mechanics**

### **Pending Assets**

The pendingAssets state variable tracks RWA amounts that are anticipated but not yet delivered onchain:

* Upon deposit initiation, the expected asset amount is recorded in pendingAssets.
* When the issuer delivers the RWAs, the recorded pending assets are “burned” from the pending state and credited to the onchain balance.
* This ensures that the net asset value (NAV) calculation remains accurate at all times by including these pending transactions.

### **Optimistic Minting Flow**

Optimistic minting expedites the minting process, allowing users immediate liquidity while awaiting final onchain settlement:

1. A user submits a mint order (including USDC and permit signature) to Theo’s minting service.
2. Theo’s MPC (Multi-Party Computation) system transfers USDC to the RWA issuer, initiating the minting process.
3. tTokens are minted immediately, reflected as pending assets within the contract.
4. Upon settlement by the issuer, pending assets are resolved to actual onchain assets, finalizing the transaction.

### **Roles and Security Controls**

tTokens implement an access control structure to ensure secure operations:

| **Role**          | **Description**                                          | **Signer(s)**                                   |
| ----------------- | -------------------------------------------------------- | ----------------------------------------------- |
| Owner / Admin     | Responsible for upgrading contracts and assigning roles. | 3/5 cold wallet multisig                        |
| Minter            | Authorized minter and used to fulfill pending states.    | Theo MPC (automated using our backend)          |
| Whitelist Manager | Manages user access via KYC-compliant whitelists.        | 3/5 multisig                                    |
| Emergency         | Can pause & unpause all transfers & minting              | 2/4 multisig (pause tx queued with a signature) |

### **Structure**

The tToken implementation comprises three core components:

* tToken.sol — core implemenation contract
* Transparent Proxy — proxy contract providing for upgrades
* Minter contract — routing hub to manage mint requests from backend services

{% hint style="warning" %}
tToken smart contracts are pending deployment. Following deployment, a full reference of smart contract methods will be added here.
{% endhint %}
