The index price and non-USDC collateral value are both calculated using Chainlink’s decentralized on-chain oracles. A set of independent node operators aggregate price data from many different sources to provide a reliable reference price for our perpetual futures markets.
All price feed contracts can be found here:
- Metadata for production: https://metadata.perp.exchange/v2/optimism.json
- Metadata for testnet: https://metadata.perp.exchange/v2/optimism-goerli.json
You can find more information about price feeds on Optimism here.
Index Price Source
The index prices for our markets are sourced from Chainlink’s oracle network to be used by Perpetual Protocol’s smart contracts.
To calculate the index prices for markets on Perp, a 7-minute time weighted-average price (TWAP) is applied. A trader’s account value, position value, PnL, and liquidation price are all determined by the index price.
Our oracle contract is open sourced and can be found here: https://github.com/perpetual-protocol/perp-oracle-contract.
Collateral Pricing Source
To accurately calculate the buying power for your account when using non-USDC collateral types, the collateral asset’s price is sourced from Chainlink’s oracles.
For example, when depositing non-USDC collateral types such as ETH or OP, their value is calculated using Chainlink’s ETH-USD or OP-USD price feed and then multiplied by the collateral weight.