Testnet margin prices against Pyth's UPGRADED Core only.
The testnet MarginRegistry was migrated (2026-08-11) off Pyth's beta feed ids and onto
the ids upgraded testnet Core actually carries, which are the mainnet-style ids — the
beta ids have no upgraded price objects and the upgraded Hermes does not serve them.
oracle::validate_feed_id guards both readers against the configured id, so legacy
testnet margin no longer resolves: legacy testnet Core only holds beta-id objects. Hence
testnetMarginPyth = 'upgraded' below.
These coins therefore carry the upgraded identity only. The superseded beta feed ids and
their legacy priceInfoObjectIds are deliberately absent rather than retained: keeping
them would leave feed and priceInfoObjectId describing two different deployments, so
a forced marginPyth: 'legacy' would fetch one deployment's update data for the other's
object. Without them it fails immediately, naming the coin.
DBTC's feed is BTC/USD: the upgraded deployment carries no distinct DBTC feed.
Testnet margin prices against Pyth's UPGRADED Core only.
The testnet
MarginRegistrywas migrated (2026-08-11) off Pyth's beta feed ids and onto the ids upgraded testnet Core actually carries, which are the mainnet-style ids — the beta ids have no upgraded price objects and the upgraded Hermes does not serve them.oracle::validate_feed_idguards both readers against the configured id, so legacy testnet margin no longer resolves: legacy testnet Core only holds beta-id objects. HencetestnetMarginPyth = 'upgraded'below.These coins therefore carry the upgraded identity only. The superseded beta feed ids and their legacy
priceInfoObjectIds are deliberately absent rather than retained: keeping them would leavefeedandpriceInfoObjectIddescribing two different deployments, so a forcedmarginPyth: 'legacy'would fetch one deployment's update data for the other's object. Without them it fails immediately, naming the coin.DBTC's feed is BTC/USD: the upgraded deployment carries no distinct DBTC feed.