Skip to main content
On a perp exchange, you typically click and get filled at the price on your screen. On openPunt, opening and closing each take an openOracle game, and the game’s settled price is your entry or exit price. Typically this resolves quickly, but the price can move in between.

1. Request

You request a position. Your margin and the maximum opening fee are locked in the contract, along with small ETH amounts that reimburse the transactions others send on your behalf. The opening fee starts low and rises until a matcher takes the trade. A request lasts about 20 seconds before it expires. If nobody takes it by then, cancel it from Positions to get everything back. Alternatively, if you do not cancel, MEV bots will typically cancel it for you. They earn a typically small amount of ETH out of what you would have paid the matcher in gas compensation.

2. Match

A matcher takes the other side. They lock their own margin, which is your max profit, and submit the first report of the opening oracle game. Any excess opening fee is refunded, since you provided enough to cover the maximum opening fee.

3. Opening oracle game

The game settles once the oracle game sits undisputed for the Oracle timer (2 blocks, about 4 seconds, by default). Each dispute restarts the timer and must be larger than the last, growing until the game’s escalation halt. The settled price is your entry price. The opening is cancelled, and both sides are refunded, if:
  • the settled price is further from the reference price at your request than your Open slippage allows,
  • the game runs longer than 30 minutes, or
  • one of the outage protections trips. See Oracle risks.
Otherwise the position is eligible to open, and the opening fee goes to the matcher. Opening happens through execution. Typically, MEV bots will execute finished oracle games for you and earn execution compensation, but the UI exposes an Execute button if they do not.

4. Open

While the position is open, anyone can start an oracle game on it. A game that, once settled, shows the position below maintenance margin liquidates it. Otherwise nothing happens, unless you have asked to close or maturity has passed.

5. Close

Closing is a request too. You fund a close reward for whoever starts the closing oracle game, and its settled price is your exit price. If a game is already running on your position, your close attaches to that game and needs no reward, though this is rare.
  • Timing. The position closes when the game settles and is executed, not when you click, so the exit price and realized PnL can differ from the price on your screen.
  • Cancelling. You can cancel a close while no oracle game is running on the position, and the reward is refunded.
  • No taker. The reward only lasts about 40 seconds. If nobody claims it, your close request still stands, and the next oracle game on the position closes it.
  • Game ends without closing. If the closing game ends without closing the position, for example because one of the protections cancelled it, your close request is cleared, and you need to close again.
A closing game that shows the position below maintenance margin liquidates it instead upon execution.