Pick a basket shape
Four basket shapes with the same bond, mint and burn.
Four shapes
The shape sets what the reserve holds and how the program marks it. Bond, mint and burn work the same across all four, so choose by the assets you want behind the token.
1. One vault
The simplest shape: the reserve holds a single vault share. Use it when your strategy is one position somewhere else, such as a lending vault or a liquid staking token. Mint and burn convert between that share and the RETF token.
2. Several vaults, fixed weights
The reserve holds two to seven vault shares, each with its own weight. You fix the weights at creation and they set the ratio at the first bond. After that each mint and burn is pro-rata, so the ratio drifts only as the assets change in value. The RETF does not rebalance for you.
3. Several similar vaults, grouped
This shape suits like-kind vaults. Assets in group 0 each carry their own rate provider. Assets in group 1 share one rate provider, so a single mark prices the whole group. Use it when several vaults track the same underlying and one feed prices all of them.
4. One cash token plus vaults
The reserve holds one cash token (the RETF's quote asset) next to the vaults. The program marks the cash leg at 1.0, so it needs no rate provider. On this shape you can burn for the cash token alone at NAV while the reserve holds enough cash. The pro-rata burn works too.
Rules the program enforces
| Shape | Assets | Cash leg | Groups |
|---|---|---|---|
| One vault | 1 | no | none |
| Fixed weights | 2 to 7 | no | none |
| Grouped | 2 to 7 | no | group 1 shares one rate provider |
| Cash plus vaults | 2 to 7 | 1, the quote mint | none |
Weights sum to 100%. Basket assets can be classic SPL Token mints or Token-2022 mints. The program checks each Token-2022 mint when you add it and refuses transfer fees, transfer hooks, permanent delegates, non-transferable mints and frozen-by-default mints, because each one would let tokens leave or fail to arrive in a way pro-rata accounting cannot see. The program also verifies that each deposit landed in the reserve in full.