Concepts
Prices
The Pyth feeds behind NAV, budgets and windows.
Where Pyth prices are used
Nod uses two Pyth prices for every valuation: the asset in US dollars and USDC in US dollars. Dividing one by the other gives the asset's value in USDC, so a fund's NAV doesn't assume USDC is worth exactly one dollar.
They value:
- the fund at every deposit, redemption, NAV update and swap inside the budget;
- the notional of every proposal, which sets its window;
- the notional of every swap inside the budget, which counts against the budget.
Decisions themselves use no outside price: they use their own pools' prices.
What the program accepts
Every price is read from a Pyth Receiver account and checked on chain:
- the account belongs to the Pyth Receiver program and is fully verified by Wormhole guardians;
- its feed is the one registered for the asset, or the USDC/USD feed fixed in the configuration;
- the price is positive and not later than the chain's clock;
- it is no older than the configuration's oldest price accepted;
- its confidence interval is within the configuration's widest confidence, as a share of the price.
A transaction that needs a price that fails any check is refused, and nothing changes.
Which accounts
The app reads Pyth's sponsored push feeds: one account per feed, derived from the feed ID the protocol stores. The asset's feed ID is set when the asset is registered; the USDC/USD feed ID is set once, in the configuration. A deployment can name other authenticated price accounts instead.