Skip to content

One-Click Trading

With one-click trading, you sign in once with your wallet. After that, Sai places your trades without asking your wallet to approve each one. You pay no gas for these trades.

Trades use the USDC in your Sai balance. Deposits, withdrawals, and bridging still ask your wallet to approve a normal transaction.

  1. You sign in once. Your wallet signs a message titled Enable Sai trading. This proves you control the wallet. It is not a transaction. It moves no funds, costs no gas, and approves no token spending.
  2. You trade. When you click a trade button, the app sends your request to the Sai Trading Engine, the services that run trading on Sai. Developers know its data API as Sai Keeper.
  3. Sai checks the request. The trading engine confirms that you are signed in and that the request is valid. It then tests the trade against the contract.
  4. Sai sends the transaction. A dedicated Sai account submits your trade to the Perp contract and pays the gas. The contract executes the trade on your account, using your Sai balance.
  5. The app confirms it. Your position updates once the trade appears in your trade history.

Your funds stay in the Sai contracts the whole time. The account that sends your trades cannot withdraw your funds or send them to another address.

  • An EVM wallet. One-click trading needs an EVM wallet, such as MetaMask, Rabby, Coinbase Wallet, or a WalletConnect wallet. You can also use a wallet created with email or social login in the Sai app. Cosmos wallets such as Keplr, Leap, or Cosmostation can still deposit, withdraw, and bridge funds, but they cannot trade. See Wallet Setup.
  • USDC in your Sai balance. One-click trades use USDC collateral only. They are paid from your On Sai balance and any USDC Trading Credits, not from your wallet. Deposit USDC to Sai first. Otherwise the app shows “Deposit funds into Sai before opening this trade.”
  • Browser storage turned on. The app keeps track of your pending trades in your browser. If storage is blocked, for example in some private-browsing modes, the app stops you from submitting a trade.

You can sign in in two ways:

  • On your first trade. If you are not signed in, your wallet asks you to sign the Enable Sai trading message when you place your first trade. The trade is sent after you sign.
  • Ahead of time. Open the wallet menu and select Connect trading.

The message you sign includes:

  • Your wallet address.
  • The action: Enable Sai trading.
  • A one-time code and the time it expires.
  • The app name Sai, version 1, and the Nibiru EVM chain ID.

It does not contain a trade, an amount, or a token approval. If a signature request asks you to approve tokens or send a transaction, do not sign it.

If you use an email or social-login wallet, Sai shows its own confirmation dialog before it signs for you.

A session lasts until the expiry time Sai sets when you sign in. After it expires, the app asks you to sign again on your next trade.

Each session belongs to one wallet address on one network. If you switch wallets or networks, you sign in separately for that wallet or network. Your session is saved in this browser, so reloading the page does not sign you out.

Note: There is currently no button to end a session early. Signing out of the app or disconnecting your wallet does not cancel it. The session stays valid until it expires. Clearing this site’s data removes the session from this browser only. It does not cancel the session itself.

ActionHow it is approved
Open a market, limit, or stop orderOne-click
Close a positionOne-click
Partially close a positionOne-click
Cancel a pending limit or stop orderOne-click
Set, change, or clear take profit or stop lossOne-click
Change leverage on an open positionOne-click
Add or remove margin on an open positionOne-click
Sign in for one-click tradingWallet signature (no gas)
Deposit to SaiWallet transaction
Withdraw from SaiWallet transaction
Bridge fundsWallet transaction

The app does not offer adding to an open position or editing a pending order. To change a pending limit or stop order, cancel it and place a new one.

Submit take profit and stop loss changes, leverage changes, and margin changes separately. The app does not combine them in one request.

After you submit a trade, a notification shows what you sent and when:

  • “Order submitted … Awaiting onchain execution.” Sai accepted your request and will send it.
  • “Order submission unconfirmed … Checking status.” The app did not get a reply, for example because your connection dropped. The request may still have been accepted. The app keeps checking and does not resend it.

Your positions table also shows the progress of each request, for example Opening…, Closing…, Reducing…, Updating…, or Checking status…. Recent requests and their results appear in the Activity panel.

Pending requests survive a page reload. To check them again yourself, open the wallet menu and select Check requests.

If you try to open the same order while an identical one is still pending, the app asks “An identical order is still pending. Submit another?” This helps prevent accidental duplicates. You can have only one partial close pending for each position at a time.

Every request has a unique ID. The Perp contract records each ID it executes and refuses to run the same ID again. The app also never resends a request on its own, even when the outcome is unclear. A request that failed did not execute, so you can submit the trade again as a new request.

What you seeWhat it meansWhat to do
”Trading sign-in canceled. No order was submitted.”You rejected the sign-in request in your wallet.Place the trade again and sign the Enable Sai trading message.
”Trading sign-in failed. Please try again.”Your wallet or the network could not complete the sign-in.Try again. If it keeps failing, reconnect your wallet.
”Connect an EVM wallet to trade. Cosmos wallets can still deposit, withdraw, and bridge funds.”You are connected with a Cosmos wallet.Connect an EVM wallet to trade. Your Cosmos wallet can still deposit, withdraw, and bridge.
”Deposit funds into Sai before opening this trade.”Your Sai balance is too small for this trade.Deposit USDC to Sai, then try again.
”One-click trading is unavailable on this deployment” or “trading execution is disabled”One-click trading is turned off on this network right now.Try again later.
”The connected wallet or network changed. Review the action again.”You switched wallets or networks while submitting.Check the trade details and submit again.
”This position changed. Review the reduction again.”The position changed while you were signing in.Check the new position and submit again.
A request is marked failed with “Trade request failed” and no other detailSai did not send your trade. Most often, Sai could not send it within 2 minutes of receiving it, so the request expired. Nothing was executed.Check the current price, then submit the trade again.
A request is marked failed with an error from the contractBefore sending, Sai tests every trade against the contract. The trade did not pass with current prices and your current balance or position, or the network rejected it. The trade did not execute.Review the trade, your balance, and market conditions, then submit again.
An error that starts with “rate limit exceeded”Too many requests were sent in a short time.Wait a minute, then try again.
A position shows Checking status… for a long timeThe app has not yet seen the final result. This also happens when the app did not get a clear answer from Sai when you submitted, for example after a dropped connection or some rate-limit errors.Select Check requests in the wallet menu before you trade again.

Failed requests appear in the Activity panel with their error message. A failed request does not change your position or your balance.

You pay no gas for one-click trades. A dedicated Sai account submits the transaction. Normal trading fees still apply, such as opening and closing fees. See Fees.

What your session allows. Signing in lets the Sai Trading Engine submit the trade actions listed above on your account, using your Sai balance. The trading engine only sends a trade after you request it in the app. Each trade is still checked by the Perp contract like any other trade, including your collateral and leverage limits.

What it does not allow. The account that submits one-click trades has no permission to withdraw funds, transfer your balance to another address, or change the contract’s settings. When you close or reduce a position, the proceeds return to your Sai balance. Moving funds out of Sai always needs a transaction that you approve in your wallet.

Who you are trusting. Your wallet does not sign each one-click trade. The contract relies on the trading engine to send only the trades you request. The trading engine checks your session on every request.

Keep your session safe.

  • Only sign the Enable Sai trading message on the official Sai app.
  • Do not sign in on a shared or public computer. If you did, clear this site’s data in that browser when you are done. This removes the session from that browser, but the session stays valid until it expires.
  • Never share your private key or seed phrase. The sign-in message never asks for them.

Do I sign in again for every trade? No. One signature covers your trades on that wallet and network until the session expires.

Does signing in cost anything? No. Signing the message is free and is not a transaction.

Can I still approve each trade in my wallet? No. Trades in the Sai app go through one-click trading. Deposits, withdrawals, and bridging still use your wallet.

Is the trade final when I see “Order submitted”? Not yet. It means Sai accepted the request. Your position updates once the trade appears in your trade history.

I closed the tab while a trade was pending. What happens? Sai still processes a request it accepted. When you return, the app checks the status of your pending requests and updates your positions.

Can I trade on more than one device? Yes. Sign in once on each browser or device.

Are my trade requests private? No. Like your trades on the blockchain, the status of your trade requests can be looked up by wallet address.