Docs/Protocol/Oracle design

Oracle design

There is no oracle. Atomic prices every position from on-chain DEX liquidity directly - the same place the trade itself executes.

● Last updated May 08, 20264 min read

Overview

Most perpetual DEXes lean on an external price oracle - Chainlink, Pyth, an internal TWAP - to mark positions, trigger liquidations and settle PnL. Atomic doesn't.

The price that opens your position is the price you pay against on-chain liquidity. The price that liquidates your position is the price the keeper executes against the same liquidity. No separate feed that could disagree with the actual market.

i
Why it matters

Oracle manipulation and oracle pause are two of the most common attack vectors against perpetual DEXes. Removing the oracle removes both, along with a handful of second-order issues like funding-rate manipulation that depend on oracle marks.

How marks work

Every operation that needs a price asks the DEX aggregator (KyberSwap or 0x), which in turn quotes against actual on-chain liquidity across Uniswap V3, Curve and other Arbitrum venues.

The mark used at:

  • Open - the aggregator's executed price for the swap into the position.
  • Close - the aggregator's executed price for the swap out.
  • Liquidation check - the aggregator's quoted price at the moment a keeper polls.
  • TP / SL trigger check - same as the liquidation check.

No smoothed average, no time-weighted price, no externally-fetched value. The mark is whatever the on-chain market says at the moment of the call.

The trade-off

Oracle-free pricing isn't free. The cost shows up as price impact on large or illiquid trades.

If the on-chain market is thin, a leveraged trade can move the price against itself. It's the same property that makes oracle-based perps vulnerable to manipulation, except here it appears as honest price impact instead of a manipulable feed.

Three things keep this in check:

  • Aggregator routing. KyberSwap and 0x split orders across multiple pools and pick up whatever depth is around.
  • Conservative listing. A market only goes live when the combined routable depth across Arbitrum DEXes (Uniswap V3, Camelot, Curve, and the rest the aggregators reach) can absorb leveraged size and the corresponding liquidations without breaking the price. See Trading pairs.
  • Per-market leverage caps. Longer-tail tokens cap at lower leverage, so a single liquidation can't shove the market against itself.

What this looks like in practice

For most retail-size trades on blue-chip markets (ETH, BTC), oracle-free pricing is invisible. You get a fill very close to the displayed price, with normal price impact in the 5–30 bps range.

On larger size or longer-tail markets, price impact becomes the real constraint. The order panel previews it before you sign.

!
Price impact is your view into liquidity

On an oracle-based perp, low displayed slippage and a wide on-chain spread can coexist - the protocol shows you the oracle mark, not the price you'd actually fill at. On Atomic the number in the order panel is the number you fill at. There's no abstraction layer between you and the book.

What an oracle would buy you

In exchange for visible price impact, an oracle-based design gets you:

  • Stable marks even when on-chain liquidity dries up. The oracle keeps quoting.
  • Funding-rate-based perpetuals - synthetic positions referenced to an oracle, decoupled from spot liquidity.
  • Lower visible price impact on large trades, because the oracle hides liquidity reality.

Atomic doesn't want any of those. Stable marks during a liquidity drought is a security hole, not a feature. Funding rates introduce a different cost structure. Hidden price impact ends in surprises on close. The oracle-free design accepts visible price impact as the cost of provable settlement.

Side by side

PropertyOracle-based perpAtomic (oracle-free)
Price sourceExternal feed (Chainlink, Pyth, internal TWAP)On-chain DEX liquidity
Manipulation surfaceFeed (and the markets it samples)The DEX liquidity itself (which is the cost basis anyway)
Funding rateYesNo
Price impact on large tradesHidden behind the oracle markVisible in the order panel
Liquidation triggerOracle price crosses thresholdOn-chain price crosses threshold (the same price the keeper executes at)

When this design might surprise you

  • Brief divergence from CEX prices. If ETH on Atomic prints a different number than ETH on a CEX for a moment, that gap is real on-chain liquidity at that moment, not a stale feed. Arbitrage flow closes it.
  • Wider price impact during volatility. Same as any spot DEX trade. The order panel previews it.
  • No oracle "protection" on liquidations. A wick to the liquidation price closes the position. The 88% threshold and the keeper bounty are what get execution to happen fast at the real price.