> For the complete documentation index, see [llms.txt](https://dev.spectra.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.spectra.finance/integration-reference/spectra-oracles.md).

# Spectra Oracles

Spectra oracles facilitate the integration of Spectra's assets across all DeFi. In particular, they are designed to provide robust price feeds - robust to price manipulation - for integrations in lending markets.&#x20;

In this page, we describe the available oracles for Spectra's Principal Tokens (PT), Yield Tokens (YT) and LP Tokens (LP).

Spectra offers two types of oracles:

1. [Deterministic Oracles](/integration-reference/spectra-oracles/deterministic-oracles.md): offer a price reference of the PT against the underlying, evolving according to a pricing model based on an expected implied APY set at deployment. They are designed such that the reported price matches the par value of the PT at maturity.&#x20;
2. [Time-Weighted Average Price (TWAP) Oracles](/integration-reference/spectra-oracles/twap-oracles.md): based on an exponential moving average (EMA) of the prices given by the AMM, those oracles provide a price reference for the PT/YT/LP both in IBT and underlying asset.&#x20;
3. Hybrid Oracles that combine the best of TWAP Oracles and Deterministic Oracles: accurately represent the market by using the TWAP oracles and lower bounding it with a deterministic oracle to offer more robustness against price manipulation.&#x20;

For fetching the latest price, Spectra oracles follow[ Chainlink's standard](https://tfsaggregator.github.io/docs/v3/). That is, one can get the latest data point by calling

```solidity
    function latestRoundData()
        external
        view
        returns (
         uint80 roundId,
         int256 answer,
         uint256 startedAt,
         uint256 updatedAt,
         uint80 answeredInRound
         )
```

The oracles being fully on-chain, one can ignore `roundId`, `startedAt`, `updatedAt`, `answeredInRound` return arguments.&#x20;
