Concrete — Complete GuideIndependent guide, unofficial

04

Vault shares (`ctAssets`) and how yield works

Level: Beginner → Intermediate · Read time: 10 min

Your balance does not grow - your share value does

When you deposit into a Concrete vault you receive `ct[asset]` tokens: ERC-20 vault shares. Examples from the docs and app: ctWBTC, ctDefiUSDT, ctETH, ctSrUSDC. Names and symbols are set when the vault is deployed.

Yield is not paid by minting you more shares. Instead:

share price = totalAssets / totalSupply

As strategies earn, totalAssets rises while totalSupply stays the same, so each share redeems for more underlying. Losses work the same way in reverse: a strategy loss lowers totalAssets and the share price falls for every holder proportionally.

Worked example

You deposit 1 ETH when the share price is 1.00 → you receive ≈ 1 ctETH.

TimeVault event1 ctETH is worth
Day 0Deposit1.0000 ETH
Day 90Vault earned ≈ 3.75% over the period≈ 1.0375 ETH

Your wallet still shows 1 ctETH; the app shows the underlying value. (Run python examples/python/share_math.py to reproduce a version of this.)

How many shares do you get?

Docs formula (with a +1 guard against inflation attacks):

shares = assets × totalSupply / totalAssets      (+1 in numerator and denominator)

Later depositors buy in at the current price, which already includes earlier yield. That is why no per-user timestamps are needed: fairness comes from the exchange rate.

When does yield get "booked"?

The vault calls accrueYield() automatically on every deposit, mint, withdraw and redeem (via a withYieldAccrual modifier). It compares each strategy's reported value with the last recorded value, books the difference as yield or loss, then charges fees. Details: Accounting deep dive.

Properties of ctAssets

PropertyMeaning
ERC-20Works in any wallet and DeFi app that supports ERC-20.
Yield-bearingValue per share rises with vault performance.
TransferableCan be moved or swapped (subject to vault rules, e.g. cooldown/lock hooks).
RedeemableBurn shares to get underlying + accrued yield (subject to the vault's withdrawal model).

Two things that surprise beginners

  1. Fees are paid in shares. They dilute the share price; there is no separate "fee line" charged to your wallet. See Fees.
  2. Not all vaults let you redeem instantly. See Withdrawals.

Next: 05 · Withdrawals.