> For the complete documentation index, see [llms.txt](https://docs.btcd.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.btcd.fi/technical-documentation/oracle-and-price-feeds.md).

# Oracle and Price Feeds

The deployed price feeds, their conversion paths and the reserve-reporter configuration.

## Root BTCD price oracle

The [BTCDOracle](https://etherscan.io/address/0x80787c2cbd3866b30e1634711df7f352ad76fe3f#code) reads Chainlink BTC/USD and computes the peg as $1.00 × √(BTC price ÷ $94,000).

**Configuration observed on 2 November 2026, block 26,328,057:** `discountReporter()` was the zero address, `discountActive()` was false and `discountFactorWad()` was 1e18. The oracle therefore published the pure peg. A reserve markdown is a supported capability, not active behavior at that observation.

Connecting or disconnecting a reserve reporter is controlled by the oracle owner, a [TimelockController](https://etherscan.io/address/0x3ef428bea93b8e55da13ac0f526c148998b56535#code), with a 48-hour minimum delay at the same observation. This delay applies to that reporter link. Vault-minting oracle selection and IPOR price-source configuration have separate admin controls. See [Controls and governance](/how-the-engine-works/controls-and-governance.md).

## Token and market conversions

The following paths were checked on 2 November 2026, blocks 26,327,917–26,327,958.

| Asset or market                                  | Valuation path                                                                                                                  |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| sBTCD                                            | BTCD/USD from the root oracle × the sBTCD vault's BTCD-per-share conversion                                                     |
| wsBTCD                                           | A fixed 1:1 wrapper of sBTCD shares; one wsBTCD represents one sBTCD share                                                      |
| BTC Prime: wsBTCD collateral / WBTC loan         | wsBTCD → sBTCD → BTCD → USD, then divide by WBTC/USD from Chainlink BTC/USD × WBTC/BTC; the market liquidation threshold is 77% |
| bdUSD collateral / USDC loan                     | The USD Vault's USDC-per-share conversion; the market liquidation threshold is 86%                                              |
| Carry Vault's WBTC collateral / USDC loan market | Chainlink WBTC/BTC × BTC/USD ÷ USDC/USD; the market liquidation threshold is 86%                                                |

The bdUSD/USDC market is distinct from the proposed USD Prime product. The status and product assignment of legacy sBTCD markets remain separate product questions. Several legacy oracles compute their own peg rather than reading the root BTCDOracle; a future root-reporter markdown would not automatically reach them.

## How the vaults value holdings

The USD Vault and wBTC Carry Vault use configured price-source middleware. Their BTCD and sBTCD-derived values use the root and staking oracles; WBTC and USDC use their configured Chainlink paths. A vault share price reflects its assets and liabilities through those valuation sources.

Fixed vault implementation code does not freeze its configured price sources. External middleware and third-party wrappers have their own controls; their upgrade and approval arrangements must be assessed separately.

## Freshness behavior

The root oracle's price function serves the last positive feed answer without enforcing feed age. Vault minting separately enforces freshness: the 2 November check found 90-minute limits for BTC/USD and BTCD/USD and a 26-hour limit for WBTC/BTC. These are separate checks, and vault-minting settings can be changed by its admin.

## How the engine values reserves

The engine design prices bitcoin and wrapped bitcoin from exchange order books and DeFi positions from their share prices in each cycle's snapshot. That off-chain valuation process is distinct from the on-chain oracle configuration. See [One engine cycle](/how-the-engine-works/one-engine-cycle.md), [When reserves fall short](/how-the-engine-works/when-reserves-fall-short.md) and [Deployments](/technical-documentation/deployments.md).
