Complete self-serve maker registration, get an API key
Submits the party-key signature(s) over `topology[].hash` from `register/start`; the desk allocates the party, registers it as a node-hosted maker, and returns a fresh `X-API-Key` (`mk_…`) IN CLEARTEXT — this is the only time it is shown; the desk stores only its hash. Store it before doing anything else. Activation of the settlement service and (on DevNet) a receive preapproval are kicked off in the background — poll `GET /tx/pending` next.
Submits the party-key signature(s) over topology[].hash from
register/start; the desk allocates the party, registers it as a
node-hosted maker, and returns a fresh X-API-Key (mk_…) IN
CLEARTEXT — this is the only time it is shown; the desk stores only
its hash. Store it before doing anything else. Activation of the
settlement service and (on DevNet) a receive preapproval are kicked
off in the background — poll GET /tx/pending next.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/maker/register/complete" \ -H "Content-Type: application/json" \ -d '{ "registrationId": "string", "signatures": [ "string" ] }'{ "partyId": "string", "hint": "acme-mm-a1b2c3", "apiKey": "mk_5c3b8b7e-2f1a-4e9d-9c3a-1a2b3c4d5e6f", "actions": [ { "id": "string", "purpose": "user-service", "description": "Sign your quote 97300.0 (2/2: swap proposal)", "hash": "string", "tradeId": "string", "createdAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z" } ]}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}Advisory reference price for a pair (CoinGecko, cached) GET
A hint for the maker's quote field, not a desk price: the desk records only the price a maker submits. `null` is a normal answer — the oracle may be disabled or the pair unmapped. Cached server-side, so polling this gains nothing.
Start self-serve maker registration (headless bot) POST
No API key needed — this is how a maker gets one. Generates a fresh Canton party hosted on the desk's participant plus the topology transactions authorizing it; the caller signs `topology[].hash` (the RAW bytes, not the base64 text) with the Ed25519 key that will become the party's signing key, then calls `POST /maker/register/complete` with the signature(s) in the same order. The pending registration expires after 10 minutes.