Overview
All orders on Limitless are signed using EIP-712 structured data. The venue’s exchange address is used as theverifyingContract in the signing domain.
EIP-712 domain
The
verifyingContract must be fetched from the market’s venue data via GET /markets/:slug. See Venue System.Order type definition
Field reference
Trading wallet mode: whose address signs
The backend validatessigner and maker against your profile’s trading wallet mode (tradeWalletOption on your profile), not against how you authenticate:
An account connected with an external wallet can still be in
smartWallet mode. Accepting the app’s one-time “choose your trading wallet” prompt sets it, and the prompt does not reappear. In that state, every self-signed API order fails with:
eoa mode. Switch it with an authenticated profile update (HMAC-signed like any other request):
{"tradeWalletOption": "smartWallet"} restores the previous mode, since your profile keeps its stored smart-wallet association. One side effect: with eoa mode set, trading in the Limitless web app on this account runs through your raw wallet (a confirmation per action) instead of 1-click trading. For a dedicated bot or API account, that is usually the right end state.
The TypeScript SDK’s
HttpClient has no put helper. Send the request with any HMAC-signing HTTP client, or use the SDK’s underlying axios instance (client.http.client.put(...)), which signs every verb.Signer does not match authenticated profile account and Maker does not match expected profile wallet mean the respective field doesn’t match the table above for your current mode.
Order types
Amount calculation
USDC has 6 decimals (1 USDC = 1,000,000 units). Shares are also scaled by 1e6.GTC (limit orders)
FAK (fill-and-kill limit orders)
FAK orders buildmakerAmount and takerAmount with the same price/size formulas as GTC, but the matching engine treats the fields differently:
makerAmountis the hard spend cap — the order tries to use the full amount (USDC to spend for BUY, shares to sell for SELL).takerAmountis a protected minimum — the minimum output implied by the signed price (shares to receive for BUY, USDC to receive for SELL), acting as slippage protection rather than a hard cap on matched size.- Any portion not matched at or better than the signed price is cancelled; FAK never rests on the book.
postOnly is not supported for FAK.
FOK (market orders)
FOK orders always set
takerAmount = 1 and omit price. The makerAmount represents the raw amount being offered.
The SDKs handle amount scaling automatically. You pass human-readable values (
price, size, or makerAmount) and the builder calculates the scaled on-chain amounts.