Skip to content
Trade

Agent keys & permissions

An AI agent never needs your wallet’s private key. Inside the app, the agent acts through your connected wallet session and only after you confirm; for an external agent or bot, create a Bitnxs API key with only the permission flags it needs. Bitnxs API keys have no withdrawal permission at all.

Which credentials does the in-app agent use?

Section titled “Which credentials does the in-app agent use?”
CredentialWhere it livesWhat it can do
Your LLM API key (e.g. OpenAI)Saved in your browser only (localStorage)Lets the page call your LLM. Bitnxs does not need it.
Your wallet sessionCreated when you connect your walletPlaces the limit orders you confirm in the agent panel.

The in-app agent does not use a separate “agent key”.

How do I create a trade-only API key for an external agent?

Section titled “How do I create a trade-only API key for an external agent?”
  1. In the app open More → API Keys and name the key (e.g. claude-agent-1; letters, digits, _ and -, up to 32 characters).
  2. Tick only the permissions the agent needs (see below).
  3. Sign the derivation message once in your wallet. The key is derived in your browser and shown once; copy it to your agent’s secret store.
  4. Your agent signs sessions with this key and passes your main wallet address as the user. See Authentication.
  5. Revoke it any time from More → API Keys; revoking ends that key’s sessions.
FlagAllowsGive it to an agent that…
place_ordersPOST /session/order, /session/batchOrderplaces entries
cancel_ordersPOST /session/cancel, /session/modifymanages or reprices orders
change_leveragePOST /session/leverageusually leave off; set leverage yourself
set_triggersPOST /session/trigger, /session/cancel_triggermanages TP/SL

There is no withdraw, transfer or key-management flag. An API key cannot withdraw funds or create other keys. A disabled flag returns api-key-permission-denied.

  • One key per agent, with a clear label, so you can revoke one without affecting others.
  • Least privilege: start with place_orders (+ set_triggers if it manages TP/SL). Leave change_leverage off; the in-app agent is also designed never to touch leverage.
  • Keep keys out of prompts. Never paste an API key or seed phrase into a chat with an LLM. Load it from an environment variable or secret manager.
  • Fund a separate wallet with only what you are willing to let an agent trade.
  • Set leverage low yourself before letting an agent trade; it sizes positions by size, not leverage.
  • Respect rate limits: about 20 write requests/second per signer (50 burst); /info and /ws are not rate-limited.
  • Watch it: stream executionReports over WebSocket and revoke the key if anything looks wrong.
  • The app stores your LLM API key in browser storage; use a key with a spending limit and don’t use the agent on shared computers.