Vault
A vault holds a wallet's mounted Stock Tokens. It is the only place prongs can rest.
One vault per wallet#
Each wallet has exactly one vault. It is created on first mount. A vault can hold several Stock Tokens. Caps, compatibility and freezes apply per asset.
Non-custodial#
Only the holder controls the vault. Bezel has no admin key over vault balances. Protocols never receive tokens unless a prong executes with valid proof of its trigger.
Balances#
For each asset the vault tracks three numbers:
| Balance | Definition |
|---|---|
| Held | Tokens of that asset in the vault. |
| Pledged | Sum of claims of all active prongs on that asset. |
| Free | Held minus pledged. |
The contract guarantees pledged ≤ held at all times.
What the holder keeps#
- Dividends. Distributions on mounted tokens go to the holder.
- Corporate actions. Splits and similar actions apply to the vault balance. Claims are rescaled by the same ratio and rounded down. Any rounding remainder stays free.
- Transfer of the free remainder. The holder can withdraw or transfer free tokens at any time, subject to the token's own rules.
The holder cannot withdraw pledged tokens. A withdrawal that would leave held < pledged reverts.
Consent#
A prong needs the holder's consent. The holder signs the prong's terms (asset, claim, class, trigger, expiry) as EIP-712 typed data. The protocol submits that signature with placeProng. Without it the call reverts.