Modefi
  • Introduction
  • Oracle Solutions Suite
    • Decentralized Aggregated Oracle
    • On-Demand Oracle
      • On-Demand Oracle - Technical Manual v0.1
        • The On-Demand Oracle System
        • Types of Users
          • Data Request Creators
            • Requesting Data
            • Setting Times
            • Cancelling Data Requests
            • Disputing Results
          • Validators
            • Account Management
            • Staking (and Unstaking)
            • Providing/Endorsing Data
            • Disputing Results
            • Receiving Payment
          • ODO Custodian
        • Algorithms
          • Computing Request Costs
          • Depositing and Withdrawing Coins
          • Staking to Endorse Data
          • User and Staking Slot Tiers
          • Timing/Lateness
          • Bumping
          • Withdrawing
          • Endorsing
          • Payment
          • Slashing
          • Reputation
          • Staking Bonuses
          • Disputes and Resolutions
          • Coin Credits
          • Account Transfer
      • On-Demand Oracle - High-Level Overview
    • Oracle Marketplace
  • Defi Dashboard
    • What is the Modefi DeFi Dashboard?
  • Token
    • Tokenomics
      • Token Distribution
      • Token Stats
      • Token Emission Schedule
    • Token Sale
    • Token Utility
  • General Information
    • History of Oracle Based Hacks / Exploits
      • Synthetix $1 Billion Exploit
      • Trader Exploits bZx Oracle for $330,000 Profit
      • $100 M Liquidated on Compound Following Oracle Exploit
  • Blockchain Basics
    • What is a Smart Contract?
    • What is an Oracle?
  • FAQ
    • Staking on Fantom
    • Staking on Binance Smart Chain
  • How-to's
  • Smart Contract Addresses
  • Links and Socials
  • Media Kit
  • Disclaimer
  • Terms and Conditions
  • Privacy Policy
Powered by GitBook
On this page
  • 1. Provide Data (<DataType>)
  • 2. Endorse Data (<DataType>)
  1. Oracle Solutions Suite
  2. On-Demand Oracle
  3. On-Demand Oracle - Technical Manual v0.1
  4. Types of Users
  5. Validators

Providing/Endorsing Data

Once a user has staked their coins and the data providing period has begun, the user can provide their own data or endorse someone else’s. The endorsement model has been adopted to prevent users from having a bad experience sending in data that was “the same” as another user’s but formatted differently and getting slashed or holding up consensus accidentally. For more info on consensus, see the Algorithms section.

1. Provide Data (<DataType>)

function provide_data(
    address delegator_address,
    uint256 dataset_id,
    uint256 user_data) external;

The action that kicks off the data race. If a staked user does not see the data they wish to endorse, then they can send in the data themselves. The first person to send in the data gets a bonus since it’s cheaper to endorse than to provide data. When a user sends in data they automatically endorse their own data, so sometimes the word ‘endorsers’ is used to refer to both users who provide data and users who endorse only. If a user tries to send in data that already exists, then the contract will detect the data is the same and mark the user as an endorser rather than as the provider or unnecessarily reverting the transaction. If the data already exists on-chain a user should not intentionally send in the data again as it is a waste of gas.

2. Endorse Data (<DataType>)

function endorse_data(
    address delegator_address,
    uint256 dataset_id,
    uint256 value_index) external;

The sibling function to provide_data, this is the workhorse that will accept data endorsements and check for consensus. The user must simply indicate the data to endorse and then wait for consensus.

PreviousStaking (and Unstaking)NextDisputing Results

Last updated 1 year ago