Token System Specifications
fUSD Token (Stablecoin)
Technical Specifications
Standard: ERC-20
Peg: 1 fUSD = 1 USD
Collateralization: Meta Vault assets serving as collateral backing
Minting Mechanism: 1:1 ratio based on deposited asset USD value
Yield Access: Yield generated by Meta Vault only claimable by sfUSD stakers
Core Functions
Deposit (address asset, uint256 amount)
Validates asset through ManagerStableVault
Transfers asset from user to Meta Vault
Mints equivalent fUSD tokens backed by Meta Vault collateral
Withdraw(address asset, uint256 amount)
Validates withdrawal request against Meta Vault collateral
Burns fUSD tokens
Transfers requested asset from Meta Vault to user
Emergency Controls
pause() / unpause() functions for emergency stops
Role-based access control for emergency operations
Events
solidity
None
event Deposited(address indexed user, address indexed asset,
uint256 amount, uint256 fUSDMinted)
event Withdrawn(address indexed user, address indexed asset,
uint256 amount, uint256 fUSDBurned)
event Paused(address account)
event Unpaused(address account)
sfUSD Token (Staking Shares)
Design Philosophy
Non-rebasing: Share value increases over time instead of token quantity
Yield Exclusivity: Only sfUSD holders can claim Meta Vault generated yield
Share Price Evolution: Reflects growth of underlying Meta Vault assets
Technical Specifications
Standard: ERC-20 with custom staking logic
Initial Ratio: 1 sfUSD ≈ 1 fUSD at entry
Price Calculation: pricePerShare = totalMetaVaultBacking / totalSfUSD
Yield Access: Exclusive rights to claim Meta Vault yield
Core Functions
stake(uint256 amount)
Applies deposit fee
Mints sfUSD based on current share price
Grants yield access rights
Updates user's lockup period and entry price
unstake(uint256 sfUSDAmount)
Validates lockup period completion
Burns sfUSD tokens
Removes yield access rights
Submits withdrawal request to Meta Vault
claim()
Calculates user's accumulated yield from Meta Vault
Applies performance fee
Transfers net yield in fUSD tokens
Exclusive Feature: Only available to sfUSD holders
State Variables
solidity
None
mapping(address => uint256) userLockedUntil;
mapping(address => uint256) userEntryPrice;
mapping(address => uint256) pendingYield;
uint256 public depositFee;
uint256 public withdrawalFee;
uint256 public performanceFee;
uint256 public managementFee;
uint256 public minLockupPeriod;
Fee Structure
Deposit Fee: Applied when staking fUSD
Withdrawal Fee: Applied when unstaking
Performance Fee: Applied on yield gains, minted as sfUSD to fee recipient
Management Fee: Periodic fee on total value locked (TVL)
Last updated