← Documentation home
Learn

FAQ

Common questions about tranched vaults.

Is the premium rate fixed forever?

No. The owner can update it via setProtectionPremiumRate. Mainnet deployments set the metavault's owner to an external TimelockController so any rate change is queued on-chain before activation; the wait is whatever the deployment configured on the controller. Senior holders see the queued operation in the controller's events and have time to exit at the current rate if they don't like the new one.

What's the worst case for me as senior?

A drawdown deeper than what junior can absorb. Junior absorbs first, but if the underlying drops far enough, junior reaches zero and the residual loss starts marking down the senior share price. So your worst case is approximately (underlying loss − junior depth ÷ senior depth × 100%) plus the premium you've been paying.

At the 4× leverage cap, junior is 25% the size of senior, so senior is shielded from drawdowns up to roughly 20% of the underlying before any senior haircut starts.

What's the worst case for me as junior?

A drawdown deeper than your share of junior. Junior is the first absorber, so any underlying loss takes a bite out of the junior share price proportionally. If junior reaches zero, the share price reaches zero and your junior position is wiped on the affected drawdown.

There's no extra mechanism that takes more than 100% of your share. The loss is bounded by the value of your shares.

Is there a withdrawal fee?

No. Both senior and junior redemptions execute at the current share price after the notice matures. The premium you've already paid (senior) or earned (junior) is already reflected in the share price, so there's no separate exit fee.

Why does senior have a 5-day notice?

To stop senior holders from racing junior in a developing drawdown. Without the notice, a senior could see the vault wobbling and exit cleanly while junior is still locked behind their notice, leaving the protection cushion under-collateralised. The 5-day window plus execution-time pricing keeps both sides committed long enough that the protection economics stay honest.

Why does junior have a 10-day notice?

Junior is the protection-providing tranche. A 10-day lock prevents junior holders from yanking collateral right before a loss event, which would leave senior unprotected. The asymmetry (10d junior vs 5d senior) reflects the asymmetric protection role.

Does the notice lock in a price?

No. The notice locks the shares (so they can't be transferred while pending), but pricing happens at execution time. Between filing and execution, premium accrues, the underlying may move, and your share price may change. The redemption uses whatever the share price is at the moment you redeem.

Can I cancel a notice?

Yes, any time, with no penalty. Cancelling returns the queued shares back to your wallet immediately.

What happens if I refile a notice?

Refiling stacks the noticed amount with whatever was already pending and resets the timer. There is no way to refile without resetting the timer.

Can the contract be paused?

The owner can pause new deposits via a single global depositsPaused flag. Withdrawals are never paused. Filing, cancelling, and executing all keep working regardless of pause state.

Scenarios

What if the underlying drops a small amount (say 5%)?

At the 4× leverage cap, a 5% drop on the underlying is fully absorbed by junior, so senior doesn't feel it.

What if the underlying drops by exactly what junior can absorb (around 20%)?

This is the protocol's intended protection envelope: the worst case where senior is still fully whole.

What if the drop goes deeper than junior can absorb?

Past the depth of junior, senior bears the rest. This is the protocol's outer boundary.

What if the underlying vault is temporarily illiquid?

The withdrawal is blocked transiently, not lost. The notice doesn't consume, so the holder simply retries once liquidity returns.

What happens if the owner pauses new deposits?

New entries are blocked on both sides; withdrawals keep working regardless.

What if the underlying vault tries to charge a fee on routing?

The transaction is rejected before any value loss can be socialised.

What if every junior tries to exit at once?

Some exit successfully; the rest are blocked until the cap rebuilds. This is the race-on-contention trade-off of a continuous-flow pooled design.

Self-balancing mitigation: as junior thins out, junior yield mechanically rises (the same premium splits across fewer junior shares), which attracts fresh deposits and rebuilds the cap. The owner can also raise the premium rate to accelerate the rebalance.

Can senior front-run a developing drawdown?

Not meaningfully. Two design choices close this off:

The result: filing early is break-even at best.

What if someone files a notice and leaves it sitting?

It doesn't stay sitting for long. Once a notice matures, keepers crank it through, and holding a stale notice costs the filer, so it isn't a free option.

Keepers are permissionless bots that execute matured notices on behalf of the filer. Anyone can call withdrawSenior / withdrawJunior once a notice matures with owner set to the notice holder; the keeper earns KEEPER_FEE_BPS (5 bps) of the proceeds, skimmed from the holder's own payout — not socialised across other LPs. Self-execution by the holder is always free. The keeper-paid fee is what makes this economic: bots watch the chain, push matured notices to settlement, and pocket the spread. The metavault also enforces a 3-day NOTICE_EXECUTION_WINDOW after maturity, after which the notice auto-stales and senior notices need a clearStaleSeniorNotice re-file. Deployments where the public keeper market is too thin can set keeperRestricted, which limits the keeper path to PROTOCOL_ROLE holders while leaving self-execution open.

That economic pressure plus a few mechanical points stop the stale-notice strategy from working:

Net effect: a standing notice removes the time cost of exiting, not the price cost — and the keeper market means the time cost expires on its own.

What if junior gets fully wiped out?

Existing lcJUN shares become worthless, and the tranche is terminal, but the contract handles it cleanly.

What if the owner sets an unreasonable premium rate?

Mainnet deployments queue rate changes through an external timelock, so there's no surprise overnight rate.