Perpetuals
In one paragraph: A perpetual ("perp") is a contract with no expiry that tracks a market's index price. You post collateral, take a long or short position with leverage, pay or receive a small hourly funding payment that keeps the perp near the index, and close whenever there is a counterparty. Because it is leveraged, it can be liquidated. Because it never expires, the only way out is a trade or a liquidation.
Life of a perp order
- Sign. Your wallet signs an EIP-712 order: market, side, quantity, limit price, time-in-force, flags, expiry, fee limit and revocation epoch. Signing does not move funds.
- Accept. The matcher checks the signature, your free cash and the price bands and either rests the order or matches it.
- Match. When a buyer and seller cross, the matcher records a fill at the maker's limit price. This is a proposal.
- Batch. Fills are packed (25–50 per batch, hard cap 100) and submitted to
PerpetualV2.settleBatch. - Confirm. The contract re-verifies every signature, price band, margin requirement and fee, then updates positions atomically. Only now is your position real.
- Hold. Each hour the funding epoch is finalized and your account settles the difference.
- Exit. Close by trading the opposite side, by a reduce-only order, or, if the matcher is unreachable, via the slow-mode endpoint after a 4-hour grace period against real signed counterparties.
Matching is not confirmation
The screen may show your order as MATCHED or PROPOSED before the batch lands. If the batch reverts (a maker withdrew, a price snapshot went stale, a reorg), the fill is rolled back and the matcher rematches. Nothing you saw before CONFIRMED is binding. Order statuses in the engine are RECEIVED → ACCEPTED → RESTING/PROPOSED → SUBMITTED → CONFIRMED (or TERMINAL/RECONCILING).
Long, short and notional
Quantity is in contracts; 1 CT = 1 underlying unit. Notional = quantity × price.
Example (hypothetical): GRID index $60/MWh. You short 50 CT at $60. Notional $3,000. If the mark rises to $66 your unrealized loss is $300; if it falls to $54 your unrealized gain is $300.
Fees
The candidate fee schedule is a 5 bps taker fee and a 3 bps maker rebate, funded only from fees actually collected. Every signed order carries a maxFeeBps; the contract rejects any fill whose configured fee exceeds it, so a fee change cannot surprise an already-signed order. These are candidate values from the deployment script's market table, not an approved live schedule, because no perpetual is listed.
What a perp cannot do
- It cannot be exercised or delivered. You are never owed a GPU hour.
- It cannot be closed without a counterparty. There is no house market maker and no oracle-priced forced close.
- It cannot be held through a halt at a stale price: during HALTED, fills stop and position-holding withdrawals stop.
Advanced orders
Take-profit, stop-loss, OCO and TWAP are signed strategy policies that authorize child IOC orders. The trigger is evaluated against the mark price M, once; the child then executes at a real fill price E, which may differ. TWAP intervals are at least 30 s. A strategy is revoked by advancing its epoch on chain.
Status caveat
No perpetual is listed for trading. The CMPT perp module set is deployed and verified on Robinhood Chain (4663), but the market is not listed and the desk has no perp order entry; no other market has V2 perp contracts on 4663. Every leverage cap, position cap and backstop amount remains a candidate awaiting calibration. This page describes the mechanism so that the option pages (which reuse the same index, mark and settlement plumbing) make sense. See status.
Source trail: docs/spec/V2_ARCHITECTURE.md §3.2 (Outcome statuses), §3.5 (processing order), §3.7 (StrategyPolicy), §6.1; overdrive/perps/src/v2/PerpetualV2.sol (settleBatch, deposit, withdraw); overdrive/perps/src/v2/BatchDecoderV2.sol (MAX_FILLS); overdrive/perps/src/v2/SlowModeEndpointV2.sol (GRACE_PERIOD); overdrive/perps/src/v2/StrategyPolicyV2.sol.
Repository-owned documentation · September 2026 · Educational material, not investment advice and not an audit.
Documentation
V2 · Live on Robinhood Chain