MPC API

API endpoints

MPC API

MPC endpoints initialize the organization's default MPC key and expose Co-Signer and per-chain readiness.

Initialize MPC

POST /api/v1/mpc/initialize

Required scope: mpc:initialize

This is an empty-body request. Do not send {}. The current Swagger marks X-Api-Body-Hash as required, but verified staging behavior differs: send an explicit zero-length application/x-www-form-urlencoded body, keep the canonical BODY_HASH line empty, and omit X-Api-Body-Hash. The bundled client handles this staging compatibility exception.

The operation is idempotent per organization and idempotency key. Retry the same empty-body request with the same key after a timeout. A conflicting fingerprint returns 400 mpc.errors.IDEMPOTENCY_CONFLICT.

Read MPC status

GET /api/v1/mpc/status

Required scope: mpc:read

The response contains:

  • orgId;
  • nullable keyId;
  • nullable keyStatus: PROVISIONING or ACTIVE;
  • Co-Signer status;
  • per-chain readiness in chains.

Do not create wallets until the relevant chain reports readiness and the Co-Signer is online.

Operational sequence

  1. Install and start the client-run Co-Signer.
  2. Confirm its local health endpoint.
  3. Confirm Online status in BroSettlement Console.
  4. Call MPC initialization once with a durable idempotency key.
  5. Poll MPC status until the key and target chain are ready.