Chapter 04

Keeping the price current

Mark assets with Pyth feeds or keeper rates, or leave rates off.

Marks

A mark is the cash value of one basket share. Each asset takes its mark from one of two sources.

Pyth feed

The program reads a Pyth pull-oracle price update with no keeper in between, so you trust Pyth alone. The creator pins the feed id at creation and sets two limits for the whole RETF: a maximum age and a maximum confidence interval. A read fails if the update lacks full verification, is older than the maximum age, has a wider confidence interval than the limit, or carries a different feed id. Pyth quotes in USD, so a Pyth-marked RETF should quote in a USD-pegged cash token.

Keeper rate provider

Shares without a feed, such as a lending vault share or an LP token, use a rate provider: a small onchain account that stores a keeper, a vault mint, a rate scaled by 1e9, a timestamp and a maximum age. The keeper pushes the rate and anyone can read it.

Rates on

With rates on, the program marks each asset through its source. It uses the mark to size the first bond, to price a cash exit on a cash RETF, and to compute the NAV and price the app shows. If a mark goes stale, the program refuses those operations until a fresh Pyth update lands or the keeper pushes. Pro-rata mint and burn read no mark, so a stale feed cannot block your exit.

Rates off

With rates off, the program counts raw shares and marks each asset at 1.0. The shown price lags the vaults. Choose this for baskets of stable-value shares, or when you want the DEX market to be the only price.

Limits of a rate provider

A rate provider reports a number. It cannot move capital between vaults, rebalance the basket, or stand in for mint, burn, bond or stake. A higher mark raises the price and pays nothing out.

Trust

A Pyth mark depends on Pyth and on the age and confidence limits the creator set. A keeper mark depends on its keeper: the program checks the age of a keeper's rate and nothing else. Before you use an RETF, check each mark's source, its age and the creator's limits. The RETF page lists them per asset.