Documentation

Introduction

Levant is a decentralized perpetual-futures exchange for crypto. Take leveraged long or short positions across 20 markets at up to 100x, directly against a shared liquidity vault at a verified oracle price — no order book, no counterparty to find. It is live on Robinhood Chain mainnet. Its token, $LVNT, launched on Virtuals and is not required to trade; the exchange runs on USDG.

What is Levant?

Levant is an oracle-priced, vault-backed perpetual-futures exchange for crypto — and only crypto. You take leveraged long or short positions on price, at up to 100x, across 20 markets. There is no order book and no counterparty to find. Every trade executes against the LevantVault, a shared ERC-4626 liquidity pool, at a verified oracle price plus a deterministic spread. You post collateral in USDG, choose your leverage, and your profit or loss settles against the vault when you close.

Note
Levant is live on Robinhood Chain mainnet (chain ID 4663). All testnet balances have no monetary value, so the network exists purely to let you try the exchange with test funds. Levant's token, $LVNT, launched separately on Virtuals and is not required to trade.

Deployment

Levant is an EIP-2535 Diamond: a single proxy address exposes every user action — open, close, add or remove margin, set take-profit / stop-loss, liquidate — through a set of facets, so you only ever interact with one contract. Collateral is USDG, a 6-decimal test stablecoin with an open mint: anyone can mint test funds on the testnet. The gas token is ETH (Sepolia ETH).

ItemValue
NetworkRobinhood Chain mainnet
Chain ID4663
Gas tokenETH (Sepolia ETH)
Diamond (all user actions)0xE07098bc29Ebe50E6203606bc2eA0e1E189cb7e2
LevantVault (ERC-4626, share token lvUSDG)0xC90D98cFeE95F481aDE30d95AD88f01B6C65ad5C
USDG collateral (6 decimals, open mint)0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168
Explorerrobinhoodchain.blockscout.com

The 20 markets

Levant lists 20 crypto markets, each quoted against USD and, today, sharing an identical risk configuration: BTC, ETH, SOL, BNB, XRP, DOGE, ADA, TRX, AVAX, LINK, DOT, SUI, LTC, BCH, NEAR, APT, UNI, ATOM, ARB, and OP. Because every market draws on the same vault, even the smaller pairs trade with the same depth and the same rules as BTC.

How a trade works: two-step keeper execution

Every trade executes in two on-chain steps separated by an off-chain keeper. The split is what lets Levant price your trade against a fresh, verified oracle report rather than a stale on-chain number. Your funds are escrowed by the Diamond throughout — the keeper never holds them.

  1. 1Submit an intent and escrow collateral. You post an on-chain intent — submitOpenIntent for a market order, or submitLimitIntent for a limit or stop — with your size, leverage, direction, and a mandatory max-slippage tolerance. Your collateral is locked in escrow by the Diamond. Nothing has filled yet.
  2. 2A keeper fills it at a verified price. An off-chain keeper picks up your intent and calls executeOpen with a signed oracle price report. The contract fills against that verified price, applies the spread, checks your slippage tolerance, and mints the position. A limit or stop fills only once the mark crosses your trigger, and that check is enforced on-chain — never trusted to the keeper. Closing is symmetric: you call closePosition or closePartial, then a keeper settles it with executeClose.
Tip
The keeper is non-custodial. It runs off-chain on a server (never your machine) and is bounded by the contract's guards — it can only ever fill at a verified price within your slippage tolerance, and it never touches your funds. The same keeper also settles limit and stop triggers, take-profit / stop-loss orders, and liquidations, always at a verified price. If a fill would breach your tolerance the transaction reverts, your intent stays pending, and you can reclaim the escrow in full with cancelIntent.

Pricing: oracle mid plus a deterministic spread

Your fill is the oracle mid price adjusted by a spread, and the spread is a pure formula — there is no random slippage. It is a constant 0.02% (2 bps) plus a price-impact term that grows with your trade size relative to market depth, plus a skew term that grows with how far your trade pushes the long/short book out of balance. The total is floored at 0 — a fill is never better than mid — and capped at 5% (500 bps). It is applied worse-for-trade: buys (open long / close short) fill above mid, sells (open short / close long) fill below mid.

totalSpreadBps = 2                                    // constant, 0.02%
               + notional * 100 / depth1pct           // price impact; depth1pct = 10,000,000 USDG
               + skewCoeffBps * signedImbalance / oiCap // skew; skewCoeff = 100 bps, oiCap = 2,000,000 USDG

// floored at 0 (never better than mid), capped at 500 bps (5%)
// buy  (open long / close short)  -> execPrice = mid * (1 + totalSpreadBps/10000)
// sell (open short / close long)  -> execPrice = mid * (1 - totalSpreadBps/10000)

Every open and limit intent carries a mandatory max-slippage tolerance between 1 and 500 bps — there is no implicit default (in the app you pick a level such as 0.10% / 0.30% / 0.50% / 1.00%). If the spread would push your entry past that tolerance, executeOpen reverts with SlippageExceeded, the intent stays pending, and your escrow is fully reclaimable. A separate guard, LiquidatableAtOpen, refuses to mint a position that would already be at or under its maintenance margin at the fill price — at very high leverage the entry spread alone can trip this, and when it does no open fee is taken.

PnL, margin, and the vault

Margin is isolated per position: the most you can lose is the margin you posted. Your position size (notional) is your net margin times leverage, where net margin is your deposit minus the open fee (0.08% of gross notional). PnL is your notional times the percentage move in the oracle price, in your direction.

notional  = net margin * leverage        // net margin = deposit - open fee (0.08% of gross notional)
Long  PnL = notional * (exit - entry) / entry
Short PnL = notional * (entry - exit) / entry
reserved  = margin * 9                    // locked in the vault to fund the 900% max-profit cap

The LevantVault is the counterparty to every trade. It collects all fees and trader losses and pays trader profits, so LPs — who deposit USDG for lvUSDG shares on the Earn page — are net short the traders' aggregate PnL. For each open position the vault locks reserved = margin x 9 so it can always pay the capped 900% max profit; LPs withdraw instantly up to the unlocked amount. Funding flows between traders: the crowded side pays the lighter side, scaled by utilization and skew from ~0.01%/hr up to a ~0.1%/hr cap, and settles into PnL. Liquidation is permissionless — anyone can close an underwater position (equity at or below the 10% maintenance margin, i.e. a ~90% loss) with a signed price report and earn 5% of its collateral; no adverse spread is applied on the liquidation mark.

Key parameters

All 20 markets share these values today. Fees and payouts are denominated in USDG.

ParameterValue
Max leverage100x
Open fee0.08% (8 bps) of gross notional, deducted from collateral at open
Close fee0.08% (8 bps) of adjusted size (size +/- realized PnL) at close
Constant spread0.02% (2 bps)
Max spread cap5% (500 bps) — spread can never exceed this
Max profit900% of margin (vault locks reserved = margin x 9)
Min / max collateral10 USDG / 500,000 USDG per position
Maintenance margin10% of collateral (liquidated at a ~90% loss)
Liquidation fee5% of collateral, paid to the liquidator
Funding~0.01%/hr base at full utilization & skew, capped ~0.1%/hr
Depth (1% price impact)10,000,000 USDG of notional
OI cap (skew denominator)2,000,000 USDG
Slippage toleranceMandatory, 1–500 bps per intent

The oracle

Prices come from a self-hosted EIP-712 signed-price oracle (SignedPriceOracleFacet). The EIP-712 domain binds the chain ID and the Diamond address; each report binds the market, the price, and a publish time. Reports older than 60 seconds — or dated in the future — are rejected. Prices are drawn from a multi-source feed (Gate.io first, then KuCoin, then CoinGecko as a fallback) and signed in chain time, so a keeper cannot fill on a price the signed report does not print. The facet supports an m-of-n signer set, but today the oracle is 1-of-1: the keeper is the sole signer. Distributing the signer set across independent machines is on the roadmap.

Testnet status and what to keep in mind

Warning
Levant is unaudited and runs on testnet only. Testnet USDG has no monetary value, and its mint is open so anyone can experiment. The oracle is 1-of-1 today and ownership still sits on the deployer key. Leverage can lose your entire margin, access to leveraged derivatives is restricted in some jurisdictions, and nothing here is investment advice.
  • Unaudited. No independent security audit has been performed.
  • $LVNT is not required to trade. The exchange runs on USDG. $LVNT launched on Virtuals; its only genuine contract is 0x3da4d4f7319b4dd14822521aa1befa003f4f4e3c on Robinhood Chain (chain 4663), so check the address before buying, since impostor tokens are common.
  • Testnet only. Every balance, including USDG collateral, has no monetary value.
  • Oracle is 1-of-1. A single keeper signs prices today; decentralizing the signer set is future work.
  • Ownership on the deployer key. The protocol is not yet under decentralized governance.
  • Leverage risk. A ~90% adverse move against your margin means liquidation and total loss of that margin.

Under the hood

Levant is built with Foundry (solc 0.8.28) as an EIP-2535 Diamond over append-only Diamond-Storage, with ERC-173 two-step ownership and 171 passing tests. Upgrades are applied with diamondCut, which preserves the vault, LP shares, and all open positions.

Next steps

Read How It Works for the full mechanics of an oracle-priced perp, Pricing & Spread for the exact fill-price formula, or Getting Started to fund a wallet and place your first trade. If you would rather take the other side of the market, see Earn for how the vault pays LPs.