Skip to main content

Standalone brackets, bracket expiry, and minimal authorization on pairs

orderType: "bracket" places a standalone take-profit / stop-loss pair on an asset the funder already holds: side: "sell", a fixed qty, and two triggers with opposite triggerType. A funder may rest any number of brackets on an asset, each with its own qty. Order reads return both legs under brackets, with trigger null, on REST and the Orders WebSocket. See Standalone brackets.Attached bracket pairs accept their own attachedBracket.expireTime on the quote request. The pair’s signature carries it as the deadline and the pair closes REASON_ORDER_EXPIRED at that time; reads return it as attachedBracket.expiresAt. See Pair expiry.forceMinimalAllowance: true now works with attachedBracket. The pair’s authorization on the received asset is sized to its signedMaxFromAmount plus other open orders on that asset, and minimal-allowance quotes count pending and active pairs. See Minimal authorization.

Automatic cancellation of depleted resting orders

The execution system now cancels resting orders automatically when the funder wallet no longer holds enough of the input token to keep the order live.Cancelled orders have status ORDER_STATUS_CANCELLED and closeReason REASON_INSUFFICIENT_FUNDER_BALANCE, even without a client cancel request or a price trigger firing. Replenishing the wallet does not reopen them. Update your open-orders UI and obtain a fresh quote and signature if the user wants a replacement. See Automatic cancellation.

Deadline-bounded Permit2 permits

With forceMinimalAllowance: true and evmUsePermit2: true, new Permit2 permits expire 24 hours after the latest deadline across the new quote and unfilled open orders for the same wallet and source token. Existing permits must cover that deadline without the buffer; expired or shorter-lived permits require replacement.Set expireTime on every order type that supports it to keep the shared authorization duration bounded. TWAPs also accept durationSeconds; market orders use an automatic signing deadline and reject explicit expiration fields. An open order without an end time requires unlimited Permit2 duration. See Minimal authorization.

Batch Cancel

Cancel multiple orders with one signature via POST /orders/cancel, with a result per order. See Cancelling Orders.

Arc Support

Arc chain is now live on Flash API. See Supported Chains.

Minimal authorization

Set forceMinimalAllowance: true on REST or streaming quote requests to size newly needed EVM approvals to FlashAllowance, Permit2 permits, and Solana delegations to the cumulative amount required for this quote plus unfilled open orders. An existing authorization is reused only when it exactly equals that amount. Any other amount, including an unlimited or oversized grant, is replaced on the next order with a fresh approveTx, permitTypedData, delegateIx, or sponsoredDelegateTx sized to that amount, so the excess is revoked. The ERC-20 approval to Permit2 stays unlimited, and requests without the flag are unaffected.On EVM, pair forceMinimalAllowance: true with evmUsePermit2: true. Some ERC-20 tokens, notably USDT on Ethereum mainnet, revert when approve changes a non-zero allowance to another non-zero value, which a bounded direct approval can require. Under Permit2, each bound is a gasless offchain PermitSingle signature with no such restriction. See Minimal authorization.

Ink Support

Ink chain is now live on Flash API. See Supported Chains.

Bracket Orders

Attach a take-profit / stop-loss pair to a market, limit, or TWAP order in one quote, sign, and submit flow: one quote returns both signing payloads, and one submit places the entry with its protection attached. Available on same-chain EVM and Solana orders. On Solana the pair signs its own Ed25519 message from the same quote, and any delegation the sell asset needs rides the quote response. See Bracket Orders.

Streaming Quotes

Stream quotes over WebSocket instead of re-polling POST /quote. Subscribe once with a quote request and get a fast first quote, then improved quotes as better routes are found, each one ready to sign and submit. Market orders on the same chain. See Quotes.

Wallet Balances

See what a wallet can trade in one call. GET /balances/{address} returns every token balance a wallet holds, across all supported EVM chains or on Solana, with the asset and chain fields a quote needs on each row. See Get wallet balances.

Pre-Trade Setup Transactions

Get a wallet ready to trade without running your own chain infrastructure. POST /quote now returns setupTxs, any onchain prep the funder needs before the order can fill (token accounts, wrapping, allowances) as ready-to-sign transactions. Sign each one with the funder wallet and hand it to POST /setup-transaction to broadcast and confirm. No RPC provider needed. See Submit a setup transaction.

Trigger-Price Updates

Move a stop-loss or take-profit without cancelling: PATCH /orders/{orderId} now accepts a new trigger price on stop, stop-loss, and take-profit orders — and on the -limit variants a new trigger and limit can travel in one update. Same gasless signed-message flow as limit updates, and the order keeps its orderId. See Updating Orders.
Updates since Flash API launched.

Cross-Chain Market Orders

Trade across chains in a single order: cross-chain execution between any two supported chains, EVM or Solana, is live for market orders. See Cross-Chain Orders.

Post-Trade Reporting

Pull post-trade fill data to power analytics, reporting, and PnL directly in your app. See Post-Trade Reporting.

Integrator Dashboard

Track your integration’s activity and fees in one place. Instructions to access are in Getting Started.

Updating an Existing Order

Change the limit price of a resting limit, stop-limit, or take-profit-limit order with a single gasless, offchain signature. No cancel and re-place, and the order keeps its orderId. See Updating Orders.Find any tradable asset by symbol, name, or address. One call to GET /search returns ranked matches with everything an order needs, plus price, liquidity, and a risk flag. See Search assets.

Cross-Rate Pricing

Price limit and trigger orders in the pair rate, not just USD. Set limitCrossPrice or crossPrice to quote the target asset in contra-asset units, alongside the existing notional (USD) basis. See Pricing basis.

More TWAP Control

Schedule a TWAP to start at a future time with startTime, and add a limit price so fills only execute at that price or better. See TWAP orders.