Instant Trading
Normally, every on-chain action needs a wallet signature and a network confirmation: opening a trade, closing it, cancelling it. That's secure, but it can feel slow next to a centralized exchange. Instant Trading keeps the trustless backend while making execution feel almost as fast as a CEX. Instead of signing every trade, you set up a secure session with a solver once, and they can then execute specific actions on your behalf within strict limits you set.
How it used to work
In earlier versions, instant trading relied on delegated access through the MultiAccount contract. You granted a solver permission to call specific functions, like "send quote" or "close position," and the solver could then trade for you without a wallet signature each time.
That worked, but it carried a trust trade-off: once a solver had access, it technically could misuse it. In practice that wasn't a concern, since solvers are trusted entities, but a compromised solver could have put your funds at risk.
The Instant Layer
The Instant Layer replaces broad delegation with two narrower options.
Option 1: One-time signed actions
You sign a specific action with exact parameters, e.g. "open a long on BTCUSDT at this price, this size, with this collateral," and hand that signature to the solver. The solver bundles your signed action with their own (lock the quote, open the position) and submits everything in a single transaction. The contract verifies your signature, confirms the parameters match exactly what you signed, and executes.
The solver can only do exactly what you signed. They can't change the price, the size, or anything else, and each signature can be used only once.
Option 2: Session keys
For a smoother experience, the frontend generates a temporary key pair in your browser at the start of each session. You sign one transaction granting that session key permission to call specific functions, e.g. "this key can send quotes and request closes for the next 24 hours." From then on, your trading actions use the session key.
It resembles the old delegation, with a few important improvements:
You don't have to trust the solver. The session key is generated locally in your browser; the solver never holds it.
Permissions are scoped. You choose exactly which functions the key can call.
Permissions expire. The session key has a built-in expiration timestamp.
You can revoke anytime. A cooldown-based revocation process gives the solver fair notice.
How it feels in practice
Nothing changes about the UX. You click "Open" or "Close" and the trade executes almost instantly. The difference is entirely under the hood: your funds are better protected because the solver never gets broad access to your account.
The first time you visit a Symmio frontend on the latest version, you'll activate "instant action mode" for your account, a one-time on-chain transaction. After that, the frontend should handle session keys for you, generating a new one each session and cleaning up the old ones.
Batched execution
A big part of the speed gain is that the solver can bundle multiple actions into one transaction. When you click "Open," the solver can submit your sendQuote, their lockQuote, and their openPosition together. That used to take three separate transactions. The contract processes them in order and automatically passes the quote ID from the first step to the next two.
Your position opens in one block instead of three, which cuts latency sharply.
Last updated

