Session authorization
A Session is the limit you give the engine — not handing your wallet to the platform.
Spot swap
How quotes are produced
The frontend gets the current quote from the Uniswap Quoter. Quotes are valid for 8–12 seconds; when stale, the button becomes "Refresh quote". On-chain, the locked minimum output (minAmountOut) in the order is the hard protection.
Slippage and minimum output
Min output = estimated output − protocol fee, then discounted by slippage. If the price moves beyond the slippage at execution, the whole transaction fails — it never fills badly.
Protocol fee and Gas
The spot swap protocol fee is 0.05%, deducted from the output — the visible "slice you don't receive". Gas is always ETH.
A failure never "partially fills badly"
Execution is atomic: validation + swap + fee deduction + accounting happen in one transaction. If any step fails, the whole thing reverts and funds return to your wallet.
Conditional orders
Limit
Executes when the price is reached. Buy fills when the reference price ≤ trigger, sell fills when reference price ≥ trigger, with a 5bps buffer against wick spikes. At execution, if the price has drifted more than 50bps, the contract refuses.
Time-based
Executes at the set time at the then-current market price (still protected by slippage). Earliest 5 minutes after creation, latest 30 days.
Expiry voids the order
If it hasn't triggered in time, it voids automatically. Expiry for a limit order: the price or the latest time, whichever comes first.
How to cancel
Orders in "Awaiting trigger" status on the order list can be cancelled; you only pay Gas. After triggering, cancellation may be too late — the on-chain final state wins.
What is a Keeper (user edition)
A Keeper is a bot that submits your already-existing order when its condition is met: it doesn't change the price, the direction, or where your funds go. You can also click execute yourself — see What is a Keeper.
Session field meanings
| Field | Meaning |
|---|---|
| owner | Owner of the Session (your wallet) |
| allowedTokens[] | Tokens the engine is allowed to use |
| maxSpend | Total amount the engine may use before expiry (USDG-equivalent) |
| expiry | Expiry time, max 14 days, no permanent option |
| maxSlippageBps | Slippage cap, max 500 bps (5%) |
| allowedAdapters[] | Whitelisted protocols (v1: Uniswap only) |
| maxOrdersPerDay | Max orders per day |
| revoked | Whether it has been revoked |
Recommended parameters
- Max amount: 1.2× your plan for this use; never unlimited
- Validity: 7 days (default)
- Slippage: 50 bps (0.5%)
- Daily orders: 20
Revocation and expiry
Revoke any time from Settings or the top-bar summary strip. After revocation: unfilled conditional orders stop executing; filled ones cannot be unwound. On expiry the Session automatically becomes void — equivalent to revocation.
Common misconceptions (unlimited, permanent authorization)
- Misconception: Session = custody. It isn't. Funds stay in your wallet the whole time.
- Misconception: unlimited is fine since you can always revoke. The limit is a second line of defense; always set a cap.
- Misconception: the platform will turn it off for me. Revocation is your own action; don't assume someone else will do it.
Portfolio and records
Where balances come from
Only whitelisted token balances are shown, taken from on-chain wallet state.
Export CSV
The Activity page supports CSV export: time, hash, In/Out, actual slippage, fees.
When it doesn't match the explorer
Trust the block explorer. If the indexer lags, the list shows the sync height; when in doubt, compare the hash on both sides.