- Approve once. The user grants a one-time onchain approval (ERC-20 on EVM, token delegate on Solana) that lets Flash pull a specific token.
- Sign per order. The user signs an offchain payload authorizing each individual trade, which Flash holds and monitors against the market.
- Execute atomically. When the order’s conditions are met, Flash pulls the funds, swaps, and settles the output back to the wallet in a single transaction. If it cannot execute, funds never leave the wallet.
- Cancel anytime. The user can cancel any open order by signing a cancel message, which removes the open order from Flash’s system.
Token approval (onchain, one-time)
Before Flash can move a token, the user grants a one-time onchain approval that lets Flash pull it: a standard ERC-20approve transaction on EVM, or a token delegate on Solana. The quote returns this approval for an unlimited amount, so the user only needs to approve once per token; integrators who want an extra layer of safety can lower the amount to the exact order size before submitting it.
The approval alone does not allow Flash to move funds. Every trade also requires a signed order payload (see below) that specifies the exact amount and a deadline verified onchain. The order signature, not the approval amount, is what prevents overspending.
Order signature (offchain, per order)
For each order, the user signs an offchain payload that commits to the specific trade: the token pair, the exact amount, the recipient, and an expiration deadline. On EVM this is an EIP-712 typed-data payload (orderTypedData); on Solana it is an Ed25519 message (svm.orderMessage). The signature is gasless and is passed back as userSignature on submit. Conditional parameters such as a limit price, TWAP schedule, or trigger price are held offchain by Flash’s execution engine and are not embedded in the signature.
The signed order is the primary security control. It caps the amount Flash can pull to exactly what the order specifies and includes an expiration verified onchain (by the settlement contract on EVM, by Flash’s program on Solana). Even with an unlimited approval or delegate, Flash cannot execute a swap for more than the signed order authorizes, and cannot execute after the deadline has passed.
A Flash order signature authorizes an input debit, not a guaranteed receive amount. It binds the token, total amount, recipient, and deadline that Flash may pull from the wallet, but it does not encode a minimum output. A single signed order may also be filled across more than one transaction, each drawing part of the authorized total, so one signature can authorize multiple onchain debits up to the signed amount. Integrators should treat the signature as authorization to spend the input, and rely on Flash’s offchain execution controls (not the signature) for output protection.
Why this matters for conditional orders
Limit orders, TWAPs, and other conditional orders may sit open for minutes, days, or weeks before conditions are met. During that entire period, the user’s tokens remain in their own wallet. They are visible in the wallet’s balance. They can be used elsewhere (though doing so may cause the Flash order to fail if the balance is insufficient at execution time). Flash’s limit orders are held offchain, not exposed onchain. This means they are not visible to MEV bots or other market participants before execution. When a limit order finally fires, it appears onchain as a standard swap, making it significantly harder to front-run compared to protocols that post limit orders onchain.Cancellation
A user has two independent ways to stop Flash from executing, available at any time:- Cancel an order. Sign a cancel message (an EIP-191
personal_signmessage on EVM, or an Ed25519 message on Solana) and submit it toPOST /orders/{orderId}/cancel. The order is immediately marked as cancelled and taken out of the execution queue, so Flash will never attempt to fill it. The onchain approval or delegate is left untouched and remains in place, reusable for future orders. - Revoke the approval (onchain). Revoke the token approval directly from the wallet: a standard SPL-Token
Revokeon Solana, or revoking the ERC-20 or Permit2 allowance on EVM. This removes Flash’s delegate or spending authority entirely, so Flash can no longer pull that token for any order, regardless of any outstanding signed payloads. It is a standard onchain wallet action with no Definitive endpoint.
EVM Overview
How quoting, routing, and signing work on EVM.
Security & Audits
Audit reports, MEV protection, and platform architecture.