Skip to main content
The approveAgent action authorizes an agent — a separate hot wallet — to sign trading operations on your behalf. Agents can submit orders, cancellations, modifies, and TP/SL requests without requiring your master account’s private key to be present. This lets you keep your master key in cold storage while running automated strategies with a dedicated API wallet. Each master account supports up to 1 anonymous agent and 3 named agents. Re-approving an already-authorized address refreshes its expiry without consuming an additional quota slot. If you approve a named agent with a name that matches an existing named agent, the new entry overwrites the old one.
Only a master account can approve or revoke agents. Agent wallets cannot manage other agents.

Endpoint

Request

All requests must include an ECDSA signature and a millisecond-precision nonce. This request must be signed by the master account.

Action fields

string
required
Fixed value: "approveAgent".
string
required
The Ethereum address of the wallet to authorize as an agent. Must be a valid checksummed or lowercase hex address in the format 0x followed by 40 hex characters.
string
required
A human-readable label. Pass an empty string "" for the anonymous slot, or a name for one of the 3 named quota slots (re-using a name overwrites that entry). Must be present in the signed JSON — omitting it yields 401 SIGNATURE_INVALID.
int64
required
Expiry as Unix milliseconds; 0 = permanent (no expiry). Must be present in the signed JSON (send 0 for permanent) — omitting it yields 401 SIGNATURE_INVALID.

Response

Success

Response fields

string
The address of the agent that was approved, echoed back for confirmation.

Error reference

Rejections return status: "ok" with an errorCode and errorMessage in data.
To view your currently authorized agents, query userAgents via POST /info. To revoke an agent, use revokeAgent.