MPC wallets

Wallet operations

MPC wallets

BroSettlement wallets use multi-party computation (MPC) so the normal signing path does not depend on one complete private key held in one place.

The target model is DKG-generated, 2-of-3 MPC:

  • Client key share belongs to the client and is used by the client-run Co-Signer.
  • BroSettlement key share is operated by BroSettlement for coordinated signing.
  • Recovery key share C is created during DKG and is not needed for normal A+B signing after activation. Co-Signer v2.2.0 initially writes C to a separate directory on the same host as B. Once DKG has completed and a separate encrypted C copy is verified, remove the live C file. Keep the recovery directory and configuration for future DKG; never remove C while DKG is unfinished. Preserve matching B and C recovery copies and the original encryption key under separate control.

Why MPC

MPC lets your platform sign transactions without reconstructing a complete private key in one place. Each participant contributes a key share to produce a valid signature.

This keeps the wallet noncustodial by design while still supporting programmable API workflows for deposits, withdrawals, transfers, events, and reconciliation.

Wallet lifecycle

  1. Create wallet request

Your backend requests a wallet for an organization, chain, and use case.

  1. Generate key shares

DKG creates distributed key shares without reconstructing a full private key in one location.

  1. Activate address

BroSettlement returns the wallet address and marks the wallet ready for deposits.

  1. Sign transactions

Withdrawal signing requires the threshold signing flow and the client-run Co-Signer.

Signing policy

With CO_SIGNER_APPROVAL_MODE=external, your approval service can apply rules before signing. The Co-Signer defaults to auto_approve when the mode is omitted; do not rely on the examples below without configuring the external service. Common rules in your service include:

  • Amount limits
  • Destination allowlists
  • Organization role checks
  • Time-based restrictions
  • Manual approval requirements
Co-SignerSee how client-side signing participation works.Transaction lifecycleFollow a transaction from intent through signing, broadcast, events, and ledger records.Create a walletCreate and activate your first wallet through the API.API authenticationSecure wallet operations with signed API requests.