Skip to main content

MPC Cosigner Overview

The MPC Cosigner is the component that holds your key share and participates in the distributed signing protocol. It is the core of the self-custody guarantee — without your cosigner's participation, no transaction can be signed.

What the Cosigner Does

  • Holds one share of the MPC private key (never the full key)
  • Participates in multi-round signing protocols with other cosigners
  • Independently verifies quorum approval signatures before signing
  • Independently verifies the final assembled signature
  • Derives addresses from the master key using BIP-32/BIP-44

Architecture

In production, the cosigner runs as two processes:

Enclave Boundary

Inside Enclave (never exits)Crosses VSOCK Boundary
BIP39 mnemonic & seedEncrypted mnemonic shares (opaque ciphertext)
Master private keysDerived public keys and chaincodes
MPC key shares (plaintext)Encrypted MPC key files
Cosigner RSA-4096 private keySigned JWTs, public key + id
Storage encryption KEKFinal assembled signatures

Signing Flow

  1. The platform sends a signing request via WebSocket to the Parent process
  2. Parent relays the request to the Enclave over VSOCK
  3. Enclave verifies quorum approval signatures independently
  4. Enclave participates in multi-round MPC protocol (CMP for ECDSA, asymmetric for EdDSA)
  5. Enclave verifies the assembled signature against the derived public key
  6. Final signature is returned through the Parent to the platform
  7. The platform broadcasts the signed transaction to the blockchain

Supported Algorithms

AlgorithmCurveProtocolUse Case
ECDSAsecp256k1CMPBitcoin, Ethereum, and compatible chains
ECDSAsecp256r1 (P-256)CMPBlockchains using the NIST P-256 curve
EdDSAEd25519AsymmetricSolana, Cardano, and compatible chains

See Also