Custody & Asset Security
Do users lose custody of their assets when placing orders?
Do users lose custody of their assets when placing orders?
recipientAddress on the destination chain after bridging. We only pull funds at the moment of execution, and if the transaction fails, funds remain untouched. We never custody or hold assets on your behalf.How do approvals work on EVM chains?
How do approvals work on EVM chains?
- A one-time ERC-20 approval (
approveTx) granting allowance the first time a wallet trades a given token. Its spender is the settlement contract, or the Permit2 contract when the order uses Permit2. By default, later orders for the same token skip this step. - A Permit2 signature (
permitTypedData), present only when the order uses Permit2 and the existing permit doesn’t cover it. Gasless and offchain. By default the permit is unlimited with no expiration, so later orders usually skip it. - A Flash order signature (
orderTypedData), an EIP-712 payload authorizing the specific trade. Gasless, offchain, signed per order. Always required.
How do approvals work on Solana?
How do approvals work on Solana?
Order Execution
How does Definitive detect when a limit order can be filled?
How does Definitive detect when a limit order can be filled?
Do you support notional (USD-denominated) prices for trade orders?
Do you support notional (USD-denominated) prices for trade orders?
Who submits the transaction to the chain?
Who submits the transaction to the chain?
MEV & Transaction Protection
How do you protect against MEV attacks like sandwich attacks and front-running?
How do you protect against MEV attacks like sandwich attacks and front-running?
Do you simulate trades before execution?
Do you simulate trades before execution?
Supported Chains & Assets
Which chains do you support?
Which chains do you support?
Can I trade RWAs (real-world assets) like tokenized equities?
Can I trade RWAs (real-world assets) like tokenized equities?
Can I swap native assets like ETH or SOL directly?
Can I swap native assets like ETH or SOL directly?
0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee as the received asset.To spend a native gas asset on EVM, quote with 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee as the spent asset, send the returned wrap.evmTx, then submit using the wrapped-native asset returned by the quote.On Solana, quote native SOL input with So11111111111111111111111111111111111111112 as the spent asset and svmUseNativeSOL: true; send the returned wrap.svmInstructions before submitting. Solana output to So11111111111111111111111111111111111111112 is wSOL, not native SOL.Integration & Testing
How do I set an integrator fee?
How do I set an integrator fee?
flashIntegratorFeeBps on POST /quote, then submit the same string value on POST /order.How do I attribute transactions to my Base builder code?
How do I attribute transactions to my Base builder code?
erc8021AttributionCode on POST /order (EVM orders only — it does not affect quotes, so it is not sent on POST /quote). Flash appends it to the settlement transaction’s calldata alongside Definitive’s own code. See Base builder-code attribution.Is there a sandbox or testnet environment?
Is there a sandbox or testnet environment?
Have your contracts been audited?
Have your contracts been audited?
Order Types & Terminology
What's the difference between a stop buy order and a stop-loss order?
What's the difference between a stop buy order and a stop-loss order?
Can I attach a take-profit and stop-loss to an order?
Can I attach a take-profit and stop-loss to an order?
market, limit, or twap order in one quote, sign, and submit flow, on same-chain EVM and Solana orders. The pair activates on the entry’s first fill and protects the asset the entry receives. See Bracket Orders.Can I place a take-profit and stop-loss on a token I already hold?
Can I place a take-profit and stop-loss on a token I already hold?
bracket order: side: "sell", the qty to protect, and two triggers with opposite triggerType. Whichever leg fires first sells qty at market and the other leg is discarded. You can rest any number of brackets on the same asset, each with its own qty, and give each an expireTime. See Standalone brackets.Is there a modify/amend endpoint for open orders?
Is there a modify/amend endpoint for open orders?
PATCH /orders/{orderId} changes the limit price or trigger price of a resting order without cancelling, and the order keeps its orderId — see Updating Orders for which prices each order type accepts. For any other change, cancel the order and place a new one.Signatures, Approvals & Smart Wallets
Does Flash accept EIP-1271 smart-wallet signatures on EVM chains?
Does Flash accept EIP-1271 smart-wallet signatures on EVM chains?
My order from an EIP-7702 delegated EOA is rejected with a signature verification error — why?
My order from an EIP-7702 delegated EOA is rejected with a signature verification error — why?
funderAddress has any code, including the 23-byte 0xef0100… delegation indicator an EIP-7702 authorization installs, Flash validates the order signature with EIP-1271 (isValidSignature) rather than plain ECDSA recovery. Validation is then whatever the delegate accepts. Many delegates wrap the digest in a replay-safe hash, so a bare EOA eth_signTypedData_v4 signature over orderTypedData is rejected with PERMISSION_DENIED: signature verification failed even though it recovers to the account.Sign through the delegated smart account’s typed-data flow so the signature passes the delegate’s isValidSignature, then submit that as the userSignature. For example, with an Alchemy Modular Account V2 delegate, build the account with toModularAccountV2({ mode: "7702" }) and sign orderTypedData via its smart-account signTypedData. Alternatively, remove the 7702 delegation (or trade from a plain EOA or dedicated smart wallet) so validation falls back to ECDSA recovery. See EIP-7702 delegated EOAs.What is the vault address in the EVM FlashOrder EIP-712 payload, and do I need to set or track it?
What is the vault address in the EVM FlashOrder EIP-712 payload, and do I need to set or track it?
Does the approval transaction need to come from the funderAddress?
Does the approval transaction need to come from the funderAddress?
funderAddress specified in the order. By default, this is a one-time transaction per user per token.Can I batch the approval transaction with the EIP-712 order signature in a single user interaction?
Can I batch the approval transaction with the EIP-712 order signature in a single user interaction?
Is the Permit2 spender locked to the Flash settlement contract?
Is the Permit2 spender locked to the Flash settlement contract?