POST
Submit a private swap

Authorizations

x-api-key
string
header
required

A partner's API key. Optional: without it a request is anonymous. An invalid key is 401 unauthorized.

Headers

Idempotency-Key
string | null

Repeats with the same key and body get the first response; 1 to 255 visible ASCII characters

Path Parameters

id
string
required

The private swap's quote ID

Body

application/json

The body of POST /v1/quote/{id}/submit: a private swap's transaction as the wallet proved it (strk20PrepareInvoke). Debug shows the proof's size only.

call
object
required

The privacy pool's apply_actions call.

proof
string
required

The proof, as the wallet returned it (proof.data, base64).

proofFacts
string[]
required

Felts in hex (proof.proof_facts).

Response

The relayer sends the private swap; follow the quote's status

202 Accepted from POST /v1/quote/{id}/submit: the relayer is sending the private swap. Follow the quote with GET /v1/quote/{id}.

id
string
required
status
enum<string>
required

A quote's public status (design/03-server.md, Quote lifecycle).

Available options:
awaiting_deposit,
deposit_confirmed,
in_progress,
completed,
refunded,
expired
txHash
string | null

The transaction's hash, once the relayer has signed it; the quote's status names it in any case.