NFTCall V1
NFTCall Surge
  • Introducing NFTCall V1
  • NFTCall V1 Overview
    • How does NFTCall V1 work?
    • Tokens
    • Options Pricing
    • Oracle
    • Contract Addresses
    • Audits
  • NFTCall V1 User Guide
    • Buy
    • Sell
    • Positions
    • Claim
    • Testnet
  • Links
    • NFTCall App
    • Twitter
    • Discord
    • Medium
    • GitHub
Powered by GitBook
On this page
  • Overview
  • Data Source
  • Strategies
  • Data Feeds
  1. NFTCall V1 Overview

Oracle

PreviousOptions PricingNextContract Addresses

Last updated 1 year ago

Overview

NFTCall V1 uses NFT floor prices as strike price reference, and also needs volatility to price options.

Therefore, upholding the efficiency of the platform requires a secure decentralized oracle solution to accurately price the NFTs. However, due to their unique non-fungibility, the nature of NFT liquidity (or often lack thereof) is different from fungible ERC20 tokens, so additional consideration was required.

Due to the high cost of some existing oracle infrastructures such as Chainlink, we decided to build our own oracle. And we keep the floor prices and volatility trustworthy and secure with following strategies:

  • Collecting data from multiple NFT marketplaces (Opensea, LooksRare, X2Y2).

  • Removing extreme outliers such as 0 or error data.

  • Removing possible outliers by calculating a reasonable range based on the standard deviation.

  • Calculating the average of the filtered data and submit it to the oracle contract.

Data Source

All NFT price data is sourced from multiple NFT marketplace by directly monitoring their floor price APIs. The price data will be updated every 2 hours, but when the off-chain floor price data moves more than deviation threshold, an update will be triggered immediately to write a new price into our oracle smart contract.

We have integrated the following NFT marketplaces into our data sources:

Marketplace
Regular Update Period
Trigger Deviation Threshold

2 hours

3%

2 hours

3%

2 hours

3%

For CryptoPunks, we directly track the floor price from contract.

Strategies

First we collect data from some of the most trustworthy NFT marketplaces (Opensea, LooksRare, X2Y2). And we monitor the price changes from their official NFT floor price API.

To ensure the NFT marketplace data is correct, Zero or other error data will be removed from the calculation.

Next, we remove prices that falls outside the reasonable range. We assume the prices from different marketplaces conform to the normal distribution during a particular time period, which means they should not have wide swings at a checkpoint, so the range is calculated using the standard deviation. Prices that falls outside 1.5X standard deviation will be considered as outliers and removed from the calculation.

Then, we calculate the arithmetic mean of the filtered data and submit it to the oracle contract.

Data Feeds

Contract
Address
Description

MainOracle

Quote floor price data from Benddao Oracle.

FallbackOracle

A fallback oracle updated by ourself providing volatility data and fallback floor prices.

Contract
Address
Description

MainOracle

Quote floor price data from Benddao Testnet Oracle.

FallbackOracle

A fallback oracle updated by ourself providing volatility data and fallback floor prices.

Since , the largest NFT liquidity market so far, also holds a similar and reliable floor price oracle for blue-chip NFT, we quote floor price data from their oracle first, but we also run a fallback oracle updated by ourself, providing volatility data and fallback floor prices.

Benddao's oracle also uses NFT floor price from , and . Bluechip NFT's floor price is not easily manipulated. Besides that they also calculate TWAP of floor price to filter the price fluctuation from OpenSea, X2Y2 and LooksRare marketplaces.

CryptoPunksMarket
Benddao
OpenSea
X2Y2
LooksRare
Opensea
LooksRare
X2Y2
0xE667B21B5695341A563d7c5eb4f21741584030c0
0xBB427f8833a8B06eb4bBEeC79F1355F38f35B851
0x0d3652dE0d8b1b83B42e2c0a9E099f5188cf0936
0x02b22FcAd7b08E7250DE8E411A56Cd40904252b1