Ankit DevTable of Contents Background — Why I Looked Into This Oracle Settlement vs Orderbook...
I build backend systems for a living. Have been doing it for about 10 years now — mostly security architecture, system design, risk assesment. The kind of work where you spend more time reading other peoples code then writing your own.
A few months back a friend who works in DeFi pointed me to Exolane, a perpetual trading protocol on Arbitrum that does things completly differently from the big names like dYdX or Hyperliquid. Instead of using an orderbook to match buyers and sellers, it settles every trade at oracle prices from Pyth Network.
My first thought was "thats interesting but probably has huge issues." My second thought was "let me actually look at the code before having opinions."
So i did. Spent about 3 months reading contracts, verifying on Arbiscan, and actually trading on the thing. This post is what I learned, and honestly some of it changed how I think about DEX architectures in general.
Just to be clear — im not affiliated with any project mentioned here. This is a technical analysis from someone who reviews systems for a living.
Before diving into specifics, lets understand the two models at a high level because they are fundamentaly different engineering approaches to the same problem.
Traditional perpetual DEXs use a Central Limit Order Book. The flow works like this:
This is how stock exchanges have worked for decades. Its fast, it enables price discovery, and it supports complex order types. Market makers provide liquidity by posting orders on both sides of the book.
The problems come from the adversarial dynamics. Because price depends on order flow, you get:
These arent theoretical. They cost traders real money every single day.
Oracle-based execution flips the whole thing around:
The giant diffrence: the price isnt determined by the exchange at all. It comes from Pyth Network aggregating real-time data from Binance, Coinbase, Kraken, and other major venues. The exchange is just a settlement layer.
This eliminates entire categories of attack:
The tradeoff? Speed. Your order takes 2 to 10 seconds instead of 250ms. And theres no on-chain price discovery — prices come entirely from external sources.
I spent a decent chunk of time going through Exolanes contract code and on-chain deployments. Heres what the architecture actually looks like.
The protocol is modular with clear seperation of concerns:
MarketFactory (0x02d46F54c986e298854cD0Ea110E9f0fA87a6702) — creates and manages individual perpetual markets. Each market is its own contract instance.
OracleFactory + PythFactory — handles the oracle infastructure. Manages connections to Pyth Network price feeds with configurable staleness thresholds (40 seconds per market).
Controller (0x611D6d433d66305AC303e0a249969aC67B7D519b) — manages user accounts and collateral positions.
MultiInvoker (0x090c3D7560C4C0A04e6914cEfb44f2E4b59365a2) — batch operations. Lets users do multiple things in one transaction which is nice for gas savings.
Everything uses TransparentUpgradeableProxy which is pretty standerd for upgradeable DeFi protocols. Changes go through a 7-day timelock which gives users time to exit before any upgrade takes effect.
This part suprised me. Instead of using USDC directly in the markets, they built a wrapping layer:
USDC (6 decimals) → ExoReserve → EXU token (18 decimals) → Markets
ExoReserve wraps USDC into EXU at a 1:1 ratio. Why bother? Couple reasons:
First, precision. USDC has 6 decimal places. For a perpetual exchange doing complex math on positions, thats not great. EXU uses 18 decimals internally, which avoids rounding errors on large positions. The markets then use Big6 (6-decimal fixed-point) for the final accounting.
Second, security isolation. The ExoReserve contract has a hard invariant:
usdc.balanceOf(reserve) >= requiredUSDC()
This gets checked on every single mint and redeem. Its literaly impossible to create unbacked EXU — the contract reverts if the math dosent add up. No fractional reserve shenanigans.
Third, rate limiting. Withdrawals have hourly and daily caps. Floor changes require a 7-day timelock. The rateLimitAdmin role can only adjust rate limit parameters — it cannot move funds. I verified this in the contract code.
Click to see ExoReserve key properties
The codebase has been through seven rounds of audits:
| Round | Auditor | When | What |
|---|---|---|---|
| V2 | Sherlock | Aug 2023 | Core Protocol |
| V2 | Zellic | Aug 2023 | Core Protocol |
| V2 Fix | Sherlock | Sep 2023 | Remediation |
| V2.1 | Sherlock | Oct 2023 | Updates |
| V2.2 | Sherlock | Mar 2024 | Updates |
| V2.3 | Sherlock | Aug 2024 | Updates |
| V2.4 | Sherlock | Feb 2025 | Updates |
All critical and high severity findings fixed and verified. In my expereince this level of audit coverage is uncommon — most protocols get one or two audits and move on.
I wasnt expecting the fee structure to be the most intresting part but here we are.
| Exolane | dYdX | Hyperliquid | GMX | Binance | |
|---|---|---|---|---|---|
| Taker | 0.02% | 0.04% | 0.04% | 0.05-0.07% | 0.02-0.04% |
| Maker | 0.00% | 0.00-0.02% | 0.02% | 0.05-0.07% | 0.01-0.02% |
| Liquidation penalty | 0.00% | 1.5% | 1.5% | Variable | 0.5-1.5% |
That liquidation penalty row is the standout. Zero percent. Most exchanges charge 0.5% to 1.5% which on a $10K position means $50 to $150 just gone if you get liquidated. On Exolane the liquidator only gets gas reimbursement.
Lets say you open a $10K position at 10x leverage and hold it for one day:
If that position gets liquidated, add $0 on Exolane vs $150 on dYdX/Hyperliquid.
On most exchanges, funding rates are uncapped. During volatile periods ive seen rates hit 100%+ APR on Binance which translates to 0.27% of your position bleeding per day just for holding.
Exolane caps funding at plus or minus 15% APR maximum. On-chain enforced through the smart contract riskParameter() function. Maximum daily cost: 0.041% of position value. Nobody — not even the protocol team — can change this cap without going through a 7-day public timelock.
For anyone holding positions longer then a few hours, being able to calculate your absolute worst-case funding cost is a big deal. I cant do that on any other exchange.
I dont want to paint a rosy picture because there are real limitations with this architecture. Some of them are significant.
2 to 10 seconds. In a world of sub-250ms CLOB execution, this is slow and it feels slow. I had trades during fast market moves where the settlement price was meaningfully different from what I saw when I clicked trade.
The price is still "fair" — everyone in the same window gets the same price and nobody front-ran me. But the sensation of not knowing your exact execution price for several seconds is genuinly uncomfortable if your used to instant fills.
Who this hurts: scalpers, high frequency traders, anyone doing quick in-and-out positions.
Who dosent care: swing traders, position traders, anyone holding for hours or days.
10 perpetual markets total:
BTC, ETH, SOL, BNB, XRP, DOGE, XMR, AVAX, LINK, SUI
Compared to 180+ on dYdX and 200+ on Hyperliquid. If you want to trade newly listed tokens, memecoins, or anything outside the top 10 — nope.
Max 10x on BTC and ETH. 5x on everything else.
Other platforms offer 20x to 50x. From a security perspective, I actually think lower leverage is smarter for most retail traders (the data shows most people using 50x leverage lose everything). But if you want agressive leverage, this aint it.
Zero on-chain price discovery. Exolane contributes nothing to finding the "true" price of an asset — it just uses what Pyth Network reports from centralized exchanges. If those oracles go stale (older than 40 seconds), the whole protocol pauses. Thats a safety feature but also a single point of dependancy.
For retail-sized positions ($1K to $50K) ive had no issues. But the protocol uses vault-based liquidity instead of traditional market makers, and for very large positions ($500K+) im not confident the depth is there yet.
This is what I actually care about most and what made me want to write this post. Because when people compare perp DEXs they talk about speed, fees, and market count. Almost nobody talks about where your money actually lives and who can touch it.
Exolane — Your collateral is in audited smart contracts on Arbitrum, which is an Ethereum L2. Arbitrum inherits Ethereum's security through fraud proofs. Even if the Arbitrum sequencer goes down, escape hatches exist. The protocol contracts have been audited 7 times across 2 firms. There is no admin function that can transfer user funds — I checked every contract.
Hyperliquid — Your funds live on Hyperliquids own L1 blockchain. Small validator set. The team has significant control. If those validators collude or get compromised, your funds are exposed. There is no fallback to a more decentralized layer. This has been a real critisism and its a legitimate concern.
dYdX v4 — Runs on its own Cosmos appchain with around 60 validators. Better then Hyperliquid in terms of validator count but your funds still live on a protocol-specific chain, not on Ethereum or an established L2.
GMX — Also on Arbitrum (same as Exolane), oracle-based. But variable liquidation fees and more complex risk model.
Exolane — Nobody. The contracts have no admin withdrawal function. Rate limits on the reserve are the only thing an admin can configure, and those only control the speed of redemptions, not whether you can redeem. Contract upgrades go through 7-day timelock — visible on-chain, you can exit beforehand.
Hyperliquid — The validator set has significant power over the chain. Recent incidents have raised real questions about how funds are managed during "emergencies."
dYdX — Governance has some control. The validator set is relatively small for a PoS chain.
On Exolane, even if every keeper goes offline — the oracle keeper, settlement keeper, liquidation keeper, the relayer — your funds stay in the contracts. You can interact directly with the smart contracts on Arbitrum to manage your position. The money dosent go anywhere.
On Hyperliquid or dYdX, if the chain itself has issues, your options are more limited because your funds are ON that chain.
On Exolane, every order in the same settlement window gets the exact same price. There is no advantage to being faster, having better infastructure, or being a market maker. Its a level playing field by design.
On CLOB exchanges, market makers and sophisticated traders have enormous structural advantages over retail. Faster connections, colocation, algorithmic strategies that extract value from slower participants. This is well-documented and its a real cost that most retail traders dont realize they're paying.
Since this is dev.to I should mention the developer experience. Exolane has an SDK (ExoSDK v4) thats actually well-designed.
Key points:
account, trade, market, stream
usePositions, useOrder, useMargin, usePrices, etc.
// Example: create client and place an order
const client = await Exo.create({
privateKey: '0x...',
chainId: 42161, // Arbitrum One
sponsoredMode: true
})
// Setup account (deploys collateral account + approves Manager)
await client.account.setup()
// Deposit and trade
await client.account.deposit(1000) // 1000 USDC
await client.trade.order('ETH', 5.0, {
collateral: 500,
stopLoss: 2800,
takeProfit: 3500
})
The 1-Click Trading feature is interesting from a security angle. It creates a scoped session key via Privy embedded wallets. The key can only call trading functions — it literally cannot withdraw funds or transfer collateral even if its compromised. 24-hour expiry, revocable on-chain. Worst case if the key leaks: attacker can place trades but cant steal money.
Account Abstraction through ZeroDev (ERC-4337) handles the relayer side. Your signed intent goes to the relayer which pays the gas and submits on-chain. If the relayer is down, you can still submit transactions directly or run own relayer.
After 3 months of digging into this, heres my honest assesment:
Oracle-based settlement is a genuinly different architecture with real security advantages over CLOB-based DEXs. The tradeoff is speed and market variety. Whether thats worth it depends entirely on what you priorities.
If your building in this space or trading seriously, the question isnt "which DEX is best" — its "which set of tradeoffs matches my needs."
Need speed and 200 markets? dYdX or Hyperliquid are probably better for you.
Need the strongest fund safety guarantees, lowest fees, capped funding, zero liquidation penalty, and you dont mind waiting a few seconds for settlement? Exolane is genuinly the best option I've found for that specific set of priorities.
The thing that stuck with me most: in the areas that matter for actual safety of your money — where your funds physically live, who can access them, how settlements are determined — the oracle model on an Ethereum L2 is arguably more secure then running your own chain. Exolane dosent just claim to be non-custodial and decentralized. The contracts actually back it up.
Thats rare in DeFi and worth paying attention to, regardless of which platform you end up using.
All contract addresses referenced are live on Arbitrum One and verifiable on Arbiscan. This analysis is based on 3 months of personal usage and independent code review.
Got questions about DEX architecture or smart contract security? Drop them in the comments — happy to dig deeper into any of this.