Skip to content

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:

BalanceDefinition
HeldTokens of that asset in the vault.
PledgedSum of claims of all active prongs on that asset.
FreeHeld 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.

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.