# rSTS Token

#### rSTS Token Overview

The **rSTS (Receipt Stasis Token)** is the core yield-bearing token of the Stasis protocol. It represents a user's claim on the vault’s USDC holdings and accrues value over time through a protocol-controlled interest rate. The token does **not** rebase, but instead uses a dynamically growing **exchange rate** to reflect accrued yield.

***

#### 📐 Token Mechanics

**🔁 Auto-Compounding via Exchange Rate**

rSTS does not distribute yield via direct payments or rebasing. Instead, the value of rSTS **increases over time** thanks to a rising exchange rate, determined by a fixed APR set by the protocol.

* **No need to claim rewards manually**
* **No gas spent for compounding**
* **All accrual is reflected in the rSTS/USDC exchange rate**

**⚙️ Exchange Rate Formula**

```
Exchange Rate = f(APR, Time Elapsed)
```

The exchange rate is updated every time users interact with the vault (e.g., deposit, withdraw, claim). It grows linearly over time according to the current APR.

**Note:** The formula `Total Vault Value / Total rSTS Supply` is **not used** in this system. Vault value may be held off-chain, and rSTS reflects time-based accrual, not direct reinvestment.

***

#### 🔑 Key Features

**🔄 Automatic Yield Accrual**

* rSTS exchange rate increases over time
* Yield is automatically reflected in token value
* Users simply hold the token to accrue value

**📊 Real-Time Valuation**

* Exchange rate available on-chain anytime
* Viewable via UI and smart contract calls
* rSTS balance \* exchange rate = USDC equivalent

**🔒 Timed Withdrawals**

* Withdrawals must be requested and then claimed after a lock period (e.g., 2 days)
* rSTS is burned on withdrawal request; USDC becomes claimable after the delay

**💧 Managed Liquidity**

* Liquidity is provided manually by the team to fulfill claims
* Event logs signal required liquidity to off-chain operators

**🛡️ ERC-20 Compatibility**

* Fully compliant with ERC-20
* Transferable, usable in DeFi and wallets

***

#### 🔧 Token Operations

**📥 Minting (Deposit)**

1. User deposits USDC into the vault
2. Vault calculates rSTS to mint based on the current exchange rate
3. USDC is forwarded to the vault wallet (off-chain holding)
4. rSTS tokens are minted to the user

```solidity
rSTS_amount = USDC_deposited / current_exchange_rate
```

**📤 Withdrawal (Request & Claim)**

1. User requests a withdrawal by specifying rSTS amount
2. Vault burns rSTS and stores the claimable USDC (after lock delay)
3. After the lock period, user can claim if liquidity is available

```solidity
USDC_amount = rSTS_redeemed * current_exchange_rate
```

***

#### 📈 Yield Accrual Example

**Initial State**

* Deposit: 1,000 USDC
* Exchange rate: 1.00
* rSTS received: 1,000

**After 1 Year (6% APR)**

* Exchange rate: 1.06
* rSTS balance: 1,000
* Value: 1,060 USDC
* Yield: 60 USDC (auto-accrued)

***

#### ⚠️ Risk Considerations

**🔐 Smart Contract Risk**

* Code vulnerabilities may affect funds
* Contract upgrades and audits advised

**🎯 Strategy Risk**

* Returns rely on external strategies (e.g., funding rate arbitrage)
* Strategies are managed off-chain

**💧 Liquidity Risk**

* Claiming requires USDC liquidity in the vault
* Large redemptions may require time to settle
* A lock period gives time to provision liquidity

***

#### ℹ️ Token Information

* **Name:** Receipt Stasis Token
* **Symbol:** rSTS
* **Decimals:** 18
* **Network:** Avalanche Fuji Testnet
* **Contract Address:** \[To be updated]

**Supply Mechanics**

* Initial Supply: 0
* Minted on deposit, burned on withdrawal
* No inflation beyond actual deposits

***

This documentation reflects the true on-chain mechanics of the rSTS vault system, which simulates yield accrual over time via an increasing exchange rate, rather than through realized gains or automated reinvestment.
