Docs · v0.3
Home

Permissionless perp markets for new and existing tokens.

OpenPerps lets a developer create a perp market for any new or existing token, bring an oracle, attract LP backing and enable trading without OpenPerps approval. Launchpads can place the same market inside their token pages.

No OpenPerps allowlist, approval signature, API credential or operator key is needed for a valid protocol action. The same market can be opened from the OpenPerps app or a launchpad embed, with the same positions and restrictions.

Status

In development. Nothing on this page is deployed yet. The embed example is a proposal. Engine selection, accounting validation and independent security review are release gates before any real funds.

Networks
One initial chain, selected before implementation. Robinhood Chain is the primary target and Base the second; the second deployment moves to beta. Neither is confirmed yet.
Settlement asset
One settlement asset per market, configured through a compatible collateral adapter. Stablecoins are reference defaults, not a protocol allowlist.
Responsibilities
Developers supply pricing through their oracle. OpenPerps validates adapter compatibility and enforces the committed rules.
MVP scope
Isolated margin, longs and shorts, market orders, add margin, partial and full close, permissionless liquidation, LP deposits and withdrawal requests, one reusable embed.
Beta scope
Limit and trigger orders, partner dashboard and dynamic attribution, second chain, module templates and builders.
Configuration
Custom configuration is permissionless. The reference implementation rejects asset behaviour it doesn’t support, with the exact reason.

Not on the roadmap: cross-margin and shared cross-chain backing.

Creating a market

Four steps. Funding is kept separate from registration; a convenience transaction may combine steps only when all checks already pass. Nothing manufactures price history, mock prices or backing to make a market look ready.

  1. 1

    Define

    Enter the token address and choose the settlement asset. The app reads chain metadata and lists markets that already exist for that token, so you can join one or create another with a different configuration.

  2. 2

    Configure

    Pick the reference setup or supply compatible module addresses: oracle adapter, collateral adapter, policy and engine version. The developer supplies the production oracle. Freshness, available history evidence, authority, fees, limits and recovery terms are shown before signing.

  3. 3

    Publish

    Review and sign registration. This deploys the market's isolated vault and a permanent market link. No seed deposit is required. Malformed configuration is rejected with the exact reason.

  4. 4

    Fund and activate

    The developer, a launchpad or outside LPs deposit. The market shows its backing target and the checks still outstanding. When they pass, anyone can send the activation transaction; the contracts recheck every condition in that transaction. Trading starts only after it succeeds.

Who supplies what

ParticipantSupplies
OpenPerpsMarket infrastructure, vaults, execution, the app, the SDK and the embed.
DeveloperThe token, the oracle and the market's configuration.
LPsCapital backing that one market.
LaunchpadDistribution through its token pages and the integration it chooses.

A self-reported timestamp, price history or liquidity claim can’t earn a verified label without evidence the selected policy validates.

Market identity

A market is identified by chain + token + settlement asset + committed module configuration (oracle, collateral adapter, policy and engine version). The token symbol is shown for recognition but is never the key.

Different oracle or policy configurations produce different markets for the same token. Nothing forces competing oracle designs into one market; token lookup lists them all.

Activation checks

New positions are impossible until every required check passes and an activation transaction confirms. Numeric limits come from the committed policy.

CheckWhat must be established
Committed configurationRequired modules are wired correctly. Versions, market binding, fees and policy are fixed before funding.
Oracle evidenceValid output format, correct asset and quote binding, freshness, and whatever evidence the selected policy requires.
History and reference checksRequired history or independent comparisons are actually verifiable. Checks the policy can't verify are identified as such.
Market backingActual LP assets meet the requirement, with reserves and execution budgets accounted for separately.
Execution compatibilityRequired actions are callable under the configured rules, without a provider health attestation or approval signature.

Custom modules and trust

  • Anyone can register compatible oracle, collateral, policy and engine modules.
  • Open registration, passed checks and independent review are three different claims. Passing checks never means “safe”.
  • An oracle’s own report of its history or liquidity is not independent verification.
  • External upgrade or admin powers over a dependency stay visible in the app and embed, even when OpenPerps itself has no control.
  • Custom modules must not gain authority over another market’s assets or shared execution.

Market states

Most markets follow three statuses: Published, Ready to activate and Live. They are not seven compulsory steps; the others handle restrictions and wind-down.

StatusOnchainWhat it means
PublishedRegisteredConfiguration committed, vault deployed. No trades. Backing can be deposited.
Ready to activate*DerivedA UI label: checks pass right now. Not a separate contract state; activation rechecks everything.
LiveLiveTrading within the market’s limits.
Close onlyClose onlyReduce exposure with valid pricing. No new exposure.
PausedPausedUnsafe execution blocked, for example stale or invalid pricing.
Settling / ClosedSettling / ClosedFollow the committed wind-down and claim rules.

Every status shows its reason and the actions available. The core has no discretionary provider pause or upgrade power.

Action permissions

Contracts enforce financial permissions. Backends serve data and relay requests; they are never an approval gate. E eligible subject to checks, R per committed recovery or settlement rules, — not allowed. Eligibility is never a guarantee: a Live market can still reject a trade or a withdrawal that fails capacity, margin or pricing checks.

StatusOpen / increaseReduce / closeAdd marginDeposit backingRequest withdrawalWithdrawal executesPre-activation refundClaim
Published (Registered)———E——ER
LiveEEEEEE—E
Close only—EERRE—E
Paused—RR—RR—R
Settling———————R
Closed———————E

Published and Ready to activate share one row: permissions don’t change because the UI’s latest check result changed. Values are illustrative until the engine is selected.

Vaults and backing

Each market has dedicated backing. LP capital comes from developers, launchpads or outside LPs after registration and before activation. It is separate from spot liquidity and from trader margin; any reserve is accounted for separately again.

  • Share value is PnL-aware: LPs take the other side of trader PnL, so shares can lose value.
  • If a market never activates, uncommitted capital is refundable under disclosed expiry rules.
  • After launch, withdrawals use liability-aware valuation and available capacity.
  • One market’s losses are not transferred to another market’s backing. Proving this is a release gate.

Launchpad embed

One reusable embed runs the same market screen as the app: funding before activation, activation, trading and withdrawals. Select an exact market ID, or an explicit configuration when several markets exist for one token.

Proposed interface · placeholders
<OpenPerpsMarket
  marketId="0xMARKET…"              // exact market, not just a token
  theme={{ accent: "#0078BF" }}
  wallet={yourWalletAdapter}       // connect your supported wallet flow
/>

Origin controls can protect wallet messaging, but OpenPerps does not approve launchpad domains. A spot launch can succeed while perp registration fails; recovery retries only the failed step.

Fees

Fee recipients are fixed in the market’s configuration at publish time: LPs, the protocol, a launchpad recipient and an optional creator share. Anyone entitled can claim onchain without manual approval. Percentages are not set yet, and allocations always reconcile to the fee charged.

Partner console and dynamic referral attribution are beta features.

Events and indexing

Onchain contract state determines balances and settlement; confirmed events support indexing and reconciliation. Consumers must tolerate duplicate events, chain reorganisations and delayed delivery. Working names:

  • MarketRegistered
  • BackingDeposited
  • MarketActivated
  • MarketRestricted
  • PositionExecuted
  • PositionLiquidated
  • WithdrawalRequested
  • WithdrawalExecuted
  • BackingRefunded
  • FeesClaimed

Contracts and license

Addresses
Not deployed. Verified deployment addresses, module versions and configuration hashes will be published per chain.
Dependencies
Pinned engine and module versions with their dependency controls listed. Reproducible self-hosting instructions will follow when available.
License
The license for published code will be stated here when code is released.
Security
Independent review of the selected code is required before real funds. Reports and known limitations will be published here.