evU - tower
CW4626 Escher Vault – Overview
Purpose
The CW4626 Escher Vault is a CosmWasm vault (ERC-4626 inspired) designed for the U token as its underlying. It automates liquidity provisioning, staking, incentive claiming, and redemptions, while exposing a familiar deposit/mint/withdraw/redeem interface.
Roles
Manager
Bonds underlying U into LP/staking.
Executes add/remove liquidity.
Swaps and claims incentives.
Oracle
Updates the price map for LP other-side assets and incentive tokens.
Marketing
Uses CW20-base’s built-in marketing messages (e.g., name, symbol, logo).
Key Components
Underlying Token – Native U, basis for deposits/withdrawals and accounting.
Share Token – CW20 vault shares (same decimals as U).
Pool – The vault strategy centers on the eU pool, where U is converted to eU and deployed for liquidity and staking.
Incentives – The vault earns rewards in U, eU, and BABY.
Oracle Prices – Map of
token_address → Decimal pricein terms of U.Must include:
eU
U
BABY
Fees
Entry Fee – Applied on
deposit/mint.A percentage of gross shares is minted to the fee recipient.
PreviewDepositreturns net user shares after fee deduction.
Core Flows
Deposit / Mint
User deposits U.
Vault calculates gross shares from
total_assets / total_shares.Shares are split into:
user_shares→ depositor.fee_shares→ fee recipient.
Bond
Manager moves a portion of U into the eU pool (via hub).
Converts U into eU and LP positions with slippage control and unique salt.
Add Liquidity
Manager pairs U/eU as needed.
Mints LP shares and deposits them into the incentives contract.
Claim Incentives
Manager claims accumulated rewards (U, eU, BABY) back into the vault.
Redemption (Two-Step)
request_redeemLocks user shares.
Returns preview of expected asset distribution (U + eU + BABY), valued via oracle.
complete_redemptionManager unwinds positions.
Assets distributed to user.
Locked shares burned.
Queries
Standard:
Asset,TotalAssets,ConvertToShares/Assets,MaxDeposit/Mint/Withdraw/RedeemPreviewDeposit(net),PreviewMint,ExchangeRate
Oracle:
OraclePrices,OracleTokensList
Positions & Incentives:
LPPosition,AllPendingIncentives
Redemptions:
Request by ID
User redemption requests
Redemption stats
Exchange Rate
exchange_rate = total_assets / total_sharesIncludes U + eU + BABY rewards (valued via oracle).
Excludes locked shares to maintain fair PPS.
Access Control
manager and oracle role vectors maintained on-chain.
Only authorized addresses may call privileged endpoints.
Safety & Validation
Oracle prices must be strictly positive and cover U, eU, and BABY.
Slippage tolerance enforced in liquidity operations.
saltvalidated to prevent replay.
Instantiate Fields (Examples)
managers,oraclesunderlying_token= Ushare_name/symbol/marketingpool= eUincentives[]= [U, eU, BABY]tower_incentives,lp,slippage_tolerance,staking_contractentry_fee_rate,entry_fee_recipient
Events (Examples)
oracle_update_pricesdeposit(withuser_shares_minted,fee_shares_minted,entry_fee_rate)bond/add_liquidity/remove_liquidityrequest_redemption/complete_redemptionclaim_incentives
Operational Notes
Oracle must initialize prices for U, eU, and BABY before vault operations.
Preview endpoints simulate expected outcomes; real results may differ slightly.
If
entry_fee_recipient= depositor, all shares accrue to the same account.
Last updated