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
A human-readable label for this agent. Omit or pass an empty string to use the anonymous agent slot. Named agents consume one of the 3 named quota slots. If a named agent with the same name already exists, this request overwrites it.
int64
Expiry timestamp as Unix milliseconds. Pass 0 or omit entirely to create a permanent authorization that does not expire.

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.