Flux docs

1.2. Data Request Cycle

Data requests are created by requesters and resolved by validators on the Flux Oracle. They can either be resolved manually (using a publicly auditable query included in the description during creation) or through an API, depending on the data needs of the requester. The oracle requires the requester to post a validity bond to create the request, and validators must stake on an outcome through an economic game until a finalized outcome can be determined and consensus is reached. Then, the request can be finalized and the requester can use the results in their application or elsewhere now that the data is on-chain.
The life cycle of a data request is:
  1. 1.
    Creation, where a user or contract queries a requester contract to query the oracle to begin a new data request with an attached validity bond
  2. 2.
    Resolution, where validators stake FLX on the correct outcome to receive a reward,
  3. 3.
    Dispute, where FLX holders can dispute a bonded outcome by staking and trigger an escalation game
  4. 4.
    Finalization, where the outcome is finalized and usually set on a target contract. The staking model is granular, meaning that staking is performed by validators on a per-data request basis, and that validators can choose which data requests to stake on.