Skip to main content

Overview

openOracle is a trust-minimized, permissionless mechanism for resolving token prices onchain. An openOracle report is two limit orders: a buy order and a sell order at the same price. These orders remain active until either the timer runs out or one side is taken. To take one of the orders, the taker must replace both orders with larger orders at a new price, and the timer resets. When the timer runs out without another dispute, the final surviving price can be used by applications. openOracle is not designed to be a shared feed like Chainlink or an AMM-derived price oracle. Instead, consumers customize the oracle game parameters for their specific use case, including initial liquidity, timer length, fees, and other settings. For example, two parties can agree to a swap and then create a fresh oracle game to determine the execution price. The same approach can be used for liquidations, derivatives settlement, lending, or any other application that needs token prices. The contracts have no admin keys, no upgradeability, and no privileged roles. Anyone can create, dispute, or interact with oracle games. All code is open source under the MIT license. Some deployments may sit on L2s and therefore inherit trust assumptions from the underlying sequencer.

DISCLAIMER

The contract and protocol are still in the research stage but the system is on-chain so we can test the economic incentives since these are critical to the design.We have worked on the contract for several months; however, it has not yet been audited. Users should be prepared to lose all funds when interacting with unaudited contracts. Another thing that has not been audited is the game theory and statistics. Users should be aware that even in the case of flawless Solidity code it is highly likely there are math and game theory errors that not only render this endeavor moot but also put user funds at risk. Even if it works, user misconfiguration of either oracle parameters or trading bots can lead to the loss of funds. If all of the aforementioned is done perfectly, the underlying blockchain can still fail and users can lose funds. Proceed with care.