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:
- Bored Ape Yacht Club, 24hr TWAP, USDC
- Chimpers, 24hr TWAP, USDC
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