Introduction

The Reservoir Oracle enables access to Reservoir’s comprehensive aggregated NFT prices in on-chain applications and protocols.

Available Data

In the current Alpha release, you can get the collection floor price for any NFT contract on Ethereum, with the following options:

Methodology: Spot, 24hr TWAP, Upper (max(Spot,TWAP)) or Lower (min(Spot,TWAP))
Currency: ETH, WETH or USDC

Modes

The Oracle supports two modes, depending on the type of data that you need:

On-Demand > Bring floor prices for ANY collection on-chain when users take actions
Feeds > Access regularly published floor data for the most popular NFT collections

Each mode has a different usage flow, which are outlined below:

On-Demand

In most-cases, we recommend using On-Demand oracle updates. These have the following advantages:

  • Flexibility to support any NFT collection, pricing methodology or currency
  • Get fresh updates whenever users take actions

On-demand updates effectively “piggyback” user transactions, with the following flow:

  • User takes an action in a Dapp
  • Dapp requests a price update from the Oracle API in the background
  • Dapp builds the users’ transaction, including the signed Oracle update
  • User signs and submits the transaction
  • Contract validates the Oracle update, and processes user transaction

The signed message format is based on TrustUs, with some minor modifications.

Feeds

For popular NFT projects, we publish hourly price data that your contract can connect to. These feeds use the exact same format as Chainlink Data Feeds, to maximize compatibility with existing Oracle tooling.

We currently publish the following feeds, on Kovan:

To access the current price, use the latestAnswer value.

Examples

The following examples are available:

RelativeFloorBids.sol
Create collection-wide bids with dynamic pricing relative to the collection floor

PriceDataRecorder.sol
Simple example that saves the results of on-demand oracle updates

PriceDataRecorderEIP3668.sol
Same as above, using the EIP3668: Secure offchain data retrieval standard

DataFeedOracleAdaptor.sol
Example Chainlink-compatible price feed