Availability
GET /api/v1/spot/capabilities — requires md.read.executionAvailable: false, blockedOn: signing-contracts,
inputChains, operations and a note. Each operation names its path, method,
reserved scope and kinds, with available: false. Input coverage describes
validation only, not chain execution admission. It covers Solana and the 23 EVM
chains listed by the deployed OpenAPI specification; copy inputs retain the
five-chain coverage below.
Buy and sell
POST /api/v1/spot/trades — reserved spot.trade scope; unavailable.
Amounts cannot use floating point numbers, fractions or scientific notation.
EVM addresses must be nonzero, 20-byte hex addresses; Solana addresses must be
valid base58 public keys. Signer, recipient, fee and user identity overrides are
not accepted.
Limit, TWAP and snipe
POST /api/v1/spot/orders — reserved spot.orders scope; unavailable.
For a migration snipe,
migrationFromPool is required and must be a valid
address on the selected chain. It is forbidden for first_liquidity.
Exact decimal prices allow up to 20 integer digits and 18 fractional digits.
These input schemas do not imply that automation adapters or permits are live.
Copy trade
POST /api/v1/copy-trading/follows — reserved copy.trade scope; unavailable.GET /copy-trading/follows remains a separate copy.read operation;
read access confers no creation authority.
USD fields use exact decimal strings with up to 20 integer digits and 18
fractional digits. Unknown fields are refused; no follow is saved or activated.
Admission and responses
All routes use the standard per-key REST budget, separate from the quote budget. Mutations requireapplication/json, at most 8 KiB,
with a three-second body read deadline. Authentication, product-access checks,
key revocation, REST admission and IP restrictions precede the body read.
The bounded exact wire bytes go to request-signature admission before JSON
parsing, input validation or wallet lookup. The independent signature gate
currently refuses every request, including fabricated signature headers. Thus
an unsigned caller cannot distinguish owned, foreign or unavailable wallet
bindings. No signature header format or enrollment procedure is released.
No mutation advertises a success response. Responses use
Cache-Control: no-store, standard CORS and the error envelope. This response was
captured from the exported source-candidate POST in a local, unfunded test;
it is not evidence of a deployed mutation route:
