Create Partner Sub-Account
Creates a new sub-account linked to the authenticated partner. Requires HMAC authentication with the account_creation scope.
Server wallet mode (createServerWallet: true): Creates a Privy server wallet and profile. The partner can then submit orders on behalf of this account using delegated signing.
EOA mode (default): Requires wallet ownership verification via x-account, x-signing-message, and x-signature headers. The end user signs their own orders.
Documentation Index
Fetch the complete documentation index at: https://docs.limitless.exchange/llms.txt
Use this file to discover all available pages before exploring further.
account_creation scope. API key auth and Privy auth are not accepted.Server wallet mode
SetcreateServerWallet: true to create a Privy server wallet for the sub-account. This enables delegated signing — the partner can submit unsigned orders and the server signs them using the managed wallet.
Before the first delegated trade, call Check Partner Account Allowances. If any target is missing or failed with retryable=true, call Retry Partner Account Allowances, then poll the check endpoint again.
EOA mode
OmitcreateServerWallet (or set it to false) to create an account for an externally-owned address. The end user manages their own keys and signs their own orders.
EOA mode requires three additional headers for wallet ownership verification:
| Header | Description |
|---|---|
x-account | Checksummed Ethereum address (EIP-55) |
x-signing-message | Hex-encoded signing message obtained from GET /auth/signing-message |
x-signature | Hex-encoded signature produced by signing the message with the wallet |
Signing message format
Thex-signing-message value is not the raw text — it is the hex-encoded UTF-8 representation of the message returned by GET /auth/signing-message. The raw text (which you sign) looks like:
- Fetch the signing message:
GET /auth/signing-message→ returns the plain-text message with a unique nonce. - Sign the plain-text message with the wallet (e.g.
personal_sign/eth_sign). - Hex-encode the plain-text message: prepend
0xto the UTF-8 hex representation. - Send all three headers on the request.
Constraints
displayNameis optional (max 44 characters). Defaults to the wallet address if omitted.- Returns
409 Conflictif a profile already exists for the target address. - Cannot create a sub-account for the partner’s own address.
Authorizations
Scoped API token with HMAC-SHA256 signing. Requires three headers: lmts-api-key (token ID), lmts-timestamp (ISO-8601), lmts-signature (Base64-encoded HMAC). See Authentication docs for details.
Headers
EOA mode only. Checksummed Ethereum address of the sub-account wallet.
EOA mode only. Hex-encoded signing message.
EOA mode only. Hex-encoded signature from the sub-account wallet.
Body
Public display name for the sub-account. Defaults to the wallet address if omitted.
44"user-alice"
If true, creates a Privy server wallet for the sub-account (enables delegated signing). If false or omitted, requires EOA wallet ownership headers.