Set MMP configuration

Configure or update Market Maker Protection (MMP) settings for a smart account and trading pair.

How MMP Works

MMP is a per-order opt-in risk management feature. When placing limit orders, each order includes a required mmp boolean field. Setting mmp: true on an order opts it into MMP protection for that specific order. Orders with mmp: false are completely unaffected by MMP at all times.

Lifecycle:

  1. Configure MMP with risk limits via this endpoint (per trading pair)
  2. Place orders with mmp: true to opt them into MMP protection
  3. Only trades from mmp: true orders count toward MMP threshold calculations
  4. When a threshold is breached, only open orders with mmp: true are automatically cancelled
  5. Account is frozen for frozen_time seconds — during which new orders with mmp: true are rejected (orders with mmp: false can still be placed)
  6. After freeze expires, MMP counters reset and normal trading resumes
  7. If frozen_time is 0, the freeze is indefinite — reset by re-submitting the MMP config with status "active" (this resets counters and clears the freeze)

Order Editing: Orders with mmp: true can be edited normally while MMP is active and not frozen. If MMP is frozen, edits to mmp: true orders are rejected — the order retains its mmp: true status and would be rejected at the sequencer regardless. Orders with mmp: false can always be edited.

Deactivation: When MMP is deactivated (status set to inactive), all open orders with mmp: true for the specified pair are automatically cancelled. The response includes the list of cancelled order IDs. This cancellation is best-effort — if it fails, the config is still deactivated but orders may remain open.

Risk Limits

  • Quantity Limit: Total option contracts traded within the interval — cumulative absolute value, not net (Options only)
  • Delta Limit: Maximum absolute net delta exposure (Perpetuals and Options)
  • Vega Limit: Maximum absolute net vega exposure (Options only)

Important Notes

  • At least one limit must be set when status is "active"
  • Setting status to "inactive" will delete the MMP configuration and cancel all open mmp: true orders for that pair
  • When MMP is triggered, only open orders with mmp: true are automatically cancelled — orders with mmp: false are not affected
  • Trading for mmp: true orders is frozen for the specified frozen_time duration

EIP-712 Signature

The request requires an EIP-712 signature with the following structure:

const MMPConfigType = [
  { name: 'smartAccountAddress', type: 'address' },
  { name: 'pairSymbol', type: 'string' },
  { name: 'status', type: 'string' },
  { name: 'interval', type: 'uint256' },
  { name: 'frozenTime', type: 'uint256' },
  { name: 'deadline', type: 'uint256' }
];

Note: The risk limit fields (quantity_limit, delta_limit, vega_limit) are included in the
request body but are not part of the signed EIP-712 message. Only the 6 fields above are signed.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Request to set or update Market Maker Protection configuration

string
required
^0x[a-fA-F0-9]{40}$

The smart account address to configure MMP for

string
enum
required

Trading pair symbol

Allowed:
string
enum
required

MMP activation status:

  • active: MMP is enabled and monitoring risk limits
  • inactive: MMP is disabled (will delete existing configuration)
Allowed:
integer
required
1 to 86400

Time window in seconds for calculating risk metrics.
All trades within this rolling window are considered for limit calculations.

integer
required
0 to 86400

Duration in seconds to freeze trading when MMP is triggered.

  • Set to 0 for indefinite freeze (manual reset required)
  • Maximum value is 86400 seconds (24 hours)
double
≥ 0

Maximum total option contracts traded within the interval (Options only).
Calculated as the cumulative sum of absolute contract sizes for all mmp: true option trades in the window (direction-agnostic — both buys and sells increment the counter).
Required when status is "active" unless delta_limit or vega_limit is set.
Note: This limit applies only to options trading, not perpetuals.

double
≥ 0

Maximum absolute net delta exposure from mmp: true orders (Perpetuals and Options).

  • For Options: Sum of delta-weighted positions (signed, absolute value taken at threshold check)
  • For Perpetuals: Net base-asset exposure (notional USD / index price)
    Opposing trades can offset each other (e.g., +5 delta buy followed by -5 delta sell = 0 net delta).
double
≥ 0

Maximum absolute net vega exposure from mmp: true orders (Options only).
Calculated as the sum of vega-weighted positions (signed, absolute value taken at threshold check).
Opposing trades can offset each other. Perpetuals have zero vega and do not affect this counter.

string
required
^0x[a-fA-F0-9]{130}$

EIP-712 signature for the MMP configuration update

integer
required
1704067200 to 2019686400

Unix timestamp when the signature expires (must be between 2024-2034)

Responses

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json