UTY deposit
The simplest flow. You deposit USDC on Base, the UTY vault mints UTY 1:1, and the USDC is swept to the custodian wallet.User deposits USDC
You call
deposit(assets, receiver) on the UTY vault with an equal amount of USDC pre-approved.Vault mints UTY
The vault mints UTY 1:1 against the deposited USDC. No share price math — UTY maintains a strict 1:1 peg with USDC.
yUTY deposit (cross-chain)
From a spoke chain, you deposit UTY into the yUTY vault. The call routes through the spokeVaultInterface, over LayerZero to the hub composer, into the vault, and the resulting yUTY shares bridge back to your address on the spoke.
User deposits UTY on spoke
You call
deposit(assets, receiver) on the spoke yUTY VaultInterface with an equal amount of UTY pre-approved. The interface deducts its flat deposit fee and forwards the remaining UTY cross-chain.Composer executes on hub
The UTY OFT relays the message via LayerZero to the hub composer. The composer’s
lzCompose handler calls deposit on the yUTY vault on your behalf.There is no cross-chain UTY deposit flow. UTY can only be minted on Base by depositing USDC directly to the UTY vault. Once minted, UTY can be bridged to spoke chains and used to mint yUTY cross-chain via the flow above.
UTY redemption routing
Redemption has two paths. If the UTY vault has a non-zero instant redemption threshold configured and your redeem amount is below it, the vault attempts an instant redeem from its on-chain USDC buffer. Otherwise (or if the buffer lacks sufficient unencumbered liquidity), the request enters the 7-day async bonding path.Instant path falls back to async, never reverts. When the vault’s on-chain USDC buffer lacks enough unencumbered liquidity to satisfy an instant redemption, the request falls back into the async path instead of reverting. The vault emits an
InstantRedemptionFallback event so off-chain tooling can distinguish fallback-routed requests from natively-async requests.yUTY async redemption
yUTY has no instant path — all redemptions go through the 7-day bonding period. On day 0 you lock your shares and a withdrawal request is created; on day 7 or later you claim your assets.7-day bonding period. The bonding period is fixed at 7 days for the default yUTY vault configuration. Once shares are burned on day 0, the exchange rate is locked — any yield accrual between the request and the claim accrues to remaining shareholders, not to the withdrawing user.
Cross-chain redemption
From a spoke chain, requesting a yUTY redemption is a two-phase flow: day 0 sends the request cross-chain to the hub, and day 7+ the user claims from the spoke via a second cross-chain call that uses the composer as a vault operator. The request phase looks like this: After the 7-day bonding period, the claim phase routes back through the spoke interface and composer: The composer holds theCOMPOSER_ROLE on the vault, which allows it to act as an operator for any user’s claim. The spoke VaultInterface maintains a per-user pending-claims counter that prevents double-spending of claim credits.