Submit signed quote legs atomically
POST/trade/submit
Idempotent on (quote_id, quote_index). The per-leg signed payload IS the
authorization proof — no ownership_proof required here. Re-quote (410 quote_stale) if the cached snapshot expired between issue and submit.
Request
Responses
- 200
- 400
- 403
- 404
- 409
- 410
- 429
- 503
Partial-broadcast tolerated: legs that landed appear under results,
legs that hit an invariant break appear under failed_legs with a
generic internal_error code so the agent can reconcile on-chain.
Malformed body, incomplete submit, or quote_index not in snapshot.
A wallet on the request was flagged by sanctions screening. Permanent — do not retry with the same wallet.
Unknown or expired quote_id.
A leg under (quote_id, quote_index) was already submitted.
Snapshot expired between issue and submit — re-quote.
Per-IP or per-(IP, wallet) sliding window exceeded. Retry-After header carries delta-seconds.
Sanctions screening could not be completed and the request was rejected (fail-closed). Transient — back off and retry.