> For the complete documentation index, see [llms.txt](https://docs.symm.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.symm.io/trader-documentation/how-trading-works-in-symmio/instant-trading.md).

# 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.symm.io/trader-documentation/how-trading-works-in-symmio/instant-trading.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
