Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Guides

How to Design a Multi-Party Computation (MPC) Wallet System

This guide details the architecture for a threshold signature scheme (TSS) wallet using Multi-Party Computation. It explains cryptographic principles, key shard distribution, the secure signing protocol, and implementation considerations for institutional custody.
Chainscore © 2026
introduction
ARCHITECTURE GUIDE

How to Design a Multi-Party Computation (MPC) Wallet System

A technical guide to designing a secure, non-custodial wallet system using Multi-Party Computation and threshold signatures.

A Multi-Party Computation (MPC) wallet system distributes the responsibility of a private key across multiple parties, eliminating the single point of failure inherent in traditional seed phrases or hardware wallets. Instead of one entity holding the complete key, the secret is split into secret shares, each held by a different participant or device. A threshold signature scheme (TSS) is then used to authorize transactions, requiring a pre-defined minimum number of these shares (e.g., 2-of-3) to collaborate. This architecture provides robust security against theft and enables advanced operational controls like multi-user governance.

The core design begins with a distributed key generation (DKG) protocol. Unlike simple key-splitting, DKG allows the participating parties to collaboratively generate a public/private key pair without any single party ever learning the complete private key. Libraries like GG18 and GG20 provide standardized implementations for ECDSA, while FROST is popular for Schnorr-based signatures. The generated public key is your wallet address. Crucially, the secret shares are created during this initial ceremony and must be stored securely by their respective owners, often using hardware security modules (HSMs) or secure enclaves.

For signing, the system employs a threshold signature protocol. When a transaction needs signing, a quorum of participants (meeting the threshold) engages in a multi-round, interactive protocol. Each uses their secret share to produce a partial signature. These partial signatures are then combined to generate a single, valid ECDSA or Schnorr signature that can be verified on-chain against the original public key. The full private key is never reconstructed at any point. This process typically involves secure peer-to-peer communication channels, often facilitated by a coordinator server that manages the protocol flow without accessing any secrets.

A production MPC wallet requires a robust client-side SDK and a coordinator service. The SDK, embedded in user applications, handles local share storage, cryptographic operations, and communication. The backend coordinator orchestrates the DKG and signing ceremonies, manages session IDs, and relays messages between parties. It must be designed to be non-custodial; it should never receive or transmit secret shares in plaintext. Security hinges on implementing authenticated channels (e.g., using TLS and session tokens), protecting against replay attacks, and ensuring the system remains secure even if the coordinator is compromised.

Key operational decisions include choosing the threshold scheme (e.g., 2-of-3 for a good balance of security and availability), selecting signature algorithms (Schnorr for its linearity and efficiency, or ECDSA for broader compatibility), and planning for share refresh. Share refresh protocols allow you to proactively generate new secret shares from the old ones without changing the underlying public key, mitigating the risk of share leakage over time. For high-value institutional setups, integrating with HSMs like AWS CloudHSM or Azure Dedicated HSM for share storage and computation is a critical security best practice.

To implement, start with audited libraries such as ZenGo's tss-lib (for ECDSA/EdDSA) or Bitcoin's secp256k1 bindings. A reference flow involves: 1) Initializing parties with identifiers, 2) Running DKG to establish the key, 3) Storing share data locally, 4) For a transaction, initiating a signing round through the coordinator, 5) Exchanging and combining partial signatures. Always conduct thorough security audits, simulate various failure and adversarial scenarios, and consider gas implications, as some MPC signature schemes can produce slightly larger signatures than standard ones.

prerequisites
SYSTEM DESIGN

Prerequisites for Building an MPC Wallet

Before writing a line of code, you must establish the core cryptographic, architectural, and operational foundations for a secure Multi-Party Computation wallet.

The first prerequisite is a deep understanding of the underlying cryptographic primitives. MPC wallets rely on threshold signature schemes (TSS) like ECDSA or EdDSA, where a private key is never fully assembled. You must decide on the threshold parameters (e.g., 2-of-3, 3-of-5), which define how many parties are needed to sign a transaction. This choice directly impacts the security model (resilience to key loss) and operational complexity. Familiarity with libraries such as ZenGo's multi-party-ecdsa or Curv's (now Fireblocks) implementations is essential for practical development.

Next, you must architect a robust key generation and management system. The distributed key generation (DKG) ceremony is a critical, one-time process where parties collaboratively create their secret shares without any single entity ever knowing the full key. This requires a secure, authenticated communication channel and a verifiable protocol to ensure correctness. Post-generation, you need secure, often hardware-backed, storage for each party's secret share and a mechanism for share refresh to proactively defend against potential key compromise over time.

The third prerequisite is designing the signing protocol and network layer. When a transaction needs signing, the participating parties must communicate securely to compute the signature collaboratively. This involves implementing a messaging layer (often using gRPC or WebSockets) with mutual TLS authentication and ensuring the protocol is resistant to network delays or malicious participants. You must also integrate with blockchain nodes or RPC providers to construct, finalize, and broadcast signed transactions, handling chain-specific formats and gas estimation.

key-concepts-text
CORE CRYPTOGRAPHIC CONCEPTS: TSS VS. MULTISIG

How to Design a Multi-Party Computation (MPC) Wallet System

A practical guide to architecting a secure, non-custodial wallet using Threshold Signature Schemes (TSS), contrasting it with traditional multisig approaches.

Designing a Multi-Party Computation (MPC) wallet begins with understanding its core cryptographic engine: the Threshold Signature Scheme (TSS). Unlike a traditional multisig wallet, which creates multiple on-chain signatures from distinct private keys, a TSS wallet generates a single, collective signature from secret shares distributed among participants. No single party ever holds the complete private key. This design offers significant advantages: - Privacy: Only one signature appears on-chain, indistinguishable from a single-signer wallet. - Efficiency: Lower on-chain gas costs compared to executing multiple OP_CHECKSIG operations in a multisig. - Flexibility: The signing threshold (e.g., 2-of-3) is a cryptographic parameter, not a blockchain script constraint.

The system architecture revolves around a Key Generation and a Signing protocol. For a t-of-n threshold, these are typically executed via secure peer-to-peer channels between participants (clients or servers). During Distributed Key Generation (DKG), each party generates a secret share and collaboratively computes a single public key without any entity learning others' shares. Popular libraries like ZenGo's KZen or TSS-lib implement protocols such as GG20 for ECDSA or FROST for Schnorr signatures. The public key is then used as the wallet's blockchain address. The private key, in its complete form, never exists.

When a transaction needs signing, parties run the signing protocol. Each uses their secret share to compute a partial signature. Once a threshold number of partial signatures are combined, they form a valid, standard ECDSA or Schnorr signature that any blockchain node can verify against the wallet's single public key. This process requires robust communication layers (often using libp2p or WebSockets) and state management to handle network failures. Security audits must focus on the implementation's resistance to active adversaries who may deviate from the protocol during DKG or signing.

Contrast this with a multisig wallet (e.g., a Bitcoin CHECKMULTISIG or Ethereum Gnosis Safe). Multisig uses multiple independent key pairs, each producing a distinct signature validated by a smart contract or blockchain opcode. While battle-tested, it has drawbacks: - On-chain footprint: All public keys and signatures are visible, revealing governance structure. - Higher costs: More data on-chain means higher transaction fees. - Chain-specific: Implementation logic is tied to the scripting capabilities of each blockchain. MPC/TSS, being a cryptographic layer, is more chain-agnostic.

For developers, key design decisions include: 1) Signature scheme (ECDSA vs. Schnorr, with Schnorr enabling signature aggregation), 2) Threshold parameters (2-of-3 vs. 3-of-5), 3) Participant roles (user devices, cloud backups, institutional co-signers), and 4) Key refresh protocol to proactively update shares and achieve proactive security. A production system must also plan for key recovery (using encrypted share backups) and rotation. Leading custody providers like Fireblocks and Coinbase use MPC architectures for these reasons.

Ultimately, designing an MPC wallet is about shifting security from the blockchain layer to the cryptographic layer. It provides a superior user experience—a single-address wallet with multi-party security—while introducing complexity in peer coordination and protocol implementation. For new projects, leveraging audited SDKs and focusing on robust network communication is more prudent than building the core cryptography from scratch.

KEY MANAGEMENT COMPARISON

MPC-TSS vs. Traditional Multisig vs. HSMs

A technical comparison of three primary approaches for securing private keys in institutional wallet systems.

Feature / MetricMPC-TSSTraditional MultisigHardware Security Module (HSM)

Private Key Storage

Never exists as a whole; split into mathematical shares

Exists in full on each signer's device

Exists in full, stored in a single, hardened device

Signing Process

Distributed computation; shares combine to produce a signature without reconstructing key

Each signer produces a partial signature; signatures are aggregated

Key never leaves the HSM; signing occurs inside the secure boundary

Single Point of Failure

On-Chain Footprint

Single signature (e.g., ECDSA)

Multiple signatures (M-of-N)

Single signature (e.g., ECDSA)

Approximate Signing Latency

< 1 sec

2-30 sec (varies by signer response)

< 100 ms

Threshold Flexibility

Dynamic M-of-N policies without changing the public address

M-of-N fixed at wallet creation; changing requires new address

Typically 1-of-1 or requires external orchestration for M-of-N

Geographic Distribution

Native support for signers in different locations

Possible but requires key material movement/duplication

Physically constrained to data center or secure facility

Typical Annual Cost per Key

$500 - $2,000 (cloud service)

$50 - $200 (wallet software)

$5,000 - $15,000+ (hardware + maintenance)

architecture-deep-dive
ARCHITECTURE GUIDE

How to Design a Multi-Party Computation (MPC) Wallet System

A technical guide to designing a secure, scalable MPC wallet system for managing private keys without a single point of failure.

A Multi-Party Computation (MPC) wallet system distributes the cryptographic signing power of a private key across multiple independent parties, known as signing parties or key shard holders. Unlike traditional wallets where a single private key is stored in one location, an MPC wallet never reconstructs the full key. Instead, it uses a threshold signature scheme (TSS), like GG20 or FROST, to generate a signature collaboratively. This architecture eliminates single points of failure and significantly reduces the attack surface for private key theft, making it the standard for institutional custody and advanced DeFi applications.

The core system architecture consists of three primary layers. The Client Layer includes user-facing applications (web, mobile) that initiate transaction requests. The MPC Protocol Layer is the heart of the system, where distributed key generation (DKG) and signing ceremonies occur across a network of nodes. The Blockchain Abstraction Layer handles the construction, simulation, and broadcasting of signed transactions to various chains. These components communicate via secure, authenticated APIs, often using gRPC for internal node-to-node communication for low latency during signing rounds.

Designing the signing ceremony is critical. For a transaction, the client requests a signature specifying a (t, n) threshold—for example, 2-of-3. The coordinator node distributes the message to be signed. Each of the n parties independently computes a signature share using their secret key shard. These shares are exchanged and combined to produce a single, valid ECDSA or EdDSA signature that can be verified on-chain against the original public key. The full private key is never present in memory on any single device. Libraries like ZenGo's tss-lib or MPC-ECDSA provide foundational implementations for this process.

Security hinges on robust key management for the secret shards. Each shard should be stored in a Hardware Security Module (HSM) or a trusted execution environment (TEE) on the signing party's server. Network communication must be secured with TLS 1.3 and authenticated using pre-shared keys or certificates. To prevent single points of compromise, the signing parties should be operated by independent entities or in geographically isolated infrastructure. Regular key refresh protocols, where shards are proactively re-shared without changing the public address, are essential for long-term security.

For production systems, consider scalability and resilience. The coordinator node can become a bottleneck; design it to be stateless and deploy multiple instances behind a load balancer. Implement a queueing system (e.g., Redis, RabbitMQ) to manage signing request traffic and handle node failures gracefully. Monitoring is crucial: track metrics like ceremony latency, node participation rates, and signature failure modes. A well-designed MPC wallet system provides the security of multisig with the user experience and cost-efficiency of a single-signature wallet, enabling secure management of billions in digital assets.

implementation-steps
TUTORIAL

Implementation Steps: From DKG to Signing

A step-by-step guide to building a secure, non-custodial MPC wallet system, covering distributed key generation, transaction signing, and practical architecture.

A Multi-Party Computation (MPC) wallet system replaces a single private key with a threshold signature scheme (TSS). In a common (t, n) setup, a private key is split into n secret shares distributed among participants (e.g., user devices, cloud servers). Any t of n parties can collaboratively sign a transaction, while an attacker controlling fewer than t shares cannot. This eliminates single points of failure. Core protocols like GG18, GG20, and FROST provide the cryptographic foundation for this process, which unfolds in two main phases: Distributed Key Generation (DKG) and distributed signing.

The first critical phase is Distributed Key Generation (DKG), where parties collaboratively create a shared public key and their individual secret shares without ever assembling the full private key. Using a protocol like Pedersen's DKG, each party generates a secret polynomial, commits to it, and distributes encrypted shares to others. After verifying the shares, each party sums the received shares to form its final secret share. The corresponding public key is derived from the sum of all public polynomial commitments. This ensures the key is trustlessly generated and no single party ever knows the complete secret.

Once the key is established, the signing protocol enables transaction authorization. When a user initiates a transfer, the wallet client creates a transaction hash. For a 2-of-3 setup, at least two signers must participate. Each signer uses its secret share to generate a partial signature for the hash, employing a non-interactive or single-round protocol like FROST for efficiency. These partial signatures are exchanged and verified against the public key's share. Finally, any participant can combine the valid partial signatures to produce a single, standard ECDSA or EdDSA signature that is broadcast to the blockchain.

A practical system architecture involves several components. Client SDKs (Web or Mobile) handle user interaction and local share storage. A Coordinator Service (often cloud-based) facilitates message routing between parties during DKG and signing but is non-custodial—it never sees secret shares. For share persistence, consider secure enclaves (e.g., AWS Nitro, Intel SGX) or hardware security modules (HSMs). The entire communication layer must be encrypted using TLS and authenticated with signatures to prevent man-in-the-middle attacks. Libraries like ZenGo's tss-lib (Go) or Binance's tss-lib-js provide proven implementations of these cryptographic protocols.

Key management and security are paramount. Implement a robust share backup and recovery mechanism, such as using Shamir's Secret Sharing to split a user's primary share into backup fragments. Regularly rotate key shares in a proactive manner to limit exposure. Audit all cryptographic code and consider formal verification for core protocols. Monitor for latency and failure during signing rounds, implementing timeouts and retry logic. By following these steps—secure DKG, efficient signing, and a resilient architecture—you can build a production-ready MPC wallet that significantly elevates security for managing digital assets.

MPC WALLET DESIGN

Security Considerations and Threat Mitigation

Designing a secure Multi-Party Computation (MPC) wallet requires addressing unique cryptographic, operational, and architectural threats. This guide covers common pitfalls and developer-focused mitigation strategies.

MPC wallets face threats at the protocol and implementation level. The primary cryptographic risks are:

  • Signature Forgery: An attacker could exploit a flaw in the threshold signature scheme (e.g., ECDSA, EdDSA) to forge a valid signature without controlling the required number of key shares.
  • Key Reconstruction: A side-channel attack or protocol vulnerability could leak enough secret shares to reconstruct the full private key.
  • Rogue Key Attacks: In schemes where parties contribute to a joint public key, a malicious party can manipulate their contribution to control the final signature.
  • Nonce Reuse: Reusing a nonce in ECDSA-based MPC signing can leak the private key, just as in single-party signing.

Mitigation involves using audited, battle-tested libraries like tss-lib or multi-party-ecdsa, ensuring proper randomness generation, and implementing robust key refresh protocols.

COMPARISON

TSS Protocol Specifications and Trade-offs

Key technical and operational differences between popular TSS schemes for MPC wallet signing.

Feature / MetricECDSA (GG20)EdDSA (FROST)Schnorr (MuSig2)

Signature Algorithm

Elliptic Curve Digital Signature Algorithm

Edwards-curve Digital Signature Algorithm

Schnorr Signature

Underlying Curve

secp256k1

Ed25519

secp256k1 / BLS12-381

Signature Size

64-71 bytes

64 bytes

64 bytes

Pre-Signing Round Trips

3-4

2

2

Proactive Secret Refresh

Identifiable Abort

Cryptographic Assumptions

DLP, ROM

DLP

DLP, ROM

EVM Compatibility

Library Maturity

High (KZen, ZenGo)

Medium (Zcash Foundation)

High (Blockstream, Bitcoin Core)

operational-model
OPERATIONAL MODEL AND FAILURE RECOVERY

How to Design a Multi-Party Computation (MPC) Wallet System

A robust MPC wallet requires a deliberate operational model to manage key shares and a comprehensive strategy for handling participant failure. This guide details the critical design patterns.

The operational model defines how the n key shares are distributed and the threshold t required for signing. Common configurations like 2-of-3 or 3-of-5 balance security with availability. Shares are generated via a Distributed Key Generation (DKG) protocol, ensuring no single party ever knows the full private key. These shares are then secured in Trusted Execution Environments (TEEs) like Intel SGX, on Hardware Security Modules (HSMs), or within secure mobile enclaves. The choice of custody directly impacts the system's threat model and latency for signing operations.

For transaction signing, the client initiates a request, and the MPC nodes engage in a multi-round protocol (e.g., GG18, GG20) to collaboratively produce a signature. No share ever leaves its secure environment; instead, nodes exchange cryptographic messages. The operational flow must account for network latency, message ordering, and state consistency. Implementing a coordinator service or using a broadcast channel can manage this orchestration, but it introduces a potential central point of failure that must be hardened or decentralized.

Failure recovery is paramount. Designs must handle offline nodes (temporary) and compromised/lost shares (permanent). For temporary failure, the system should proceed as long as the threshold t of responsive nodes is met. For permanent share loss, a proactive secret sharing (PSS) protocol can periodically refresh shares without changing the master public key, rendering old compromised shares useless. If a share is irrevocably lost, a key resharing ceremony with the remaining t participants can generate a new share for a replacement node, preserving wallet access.

A more user-centric approach involves a social recovery or inheritance module. Here, a set of m guardians (e.g., 5-of-7) holds the authority to approve a recovery request, triggering the MPC nodes to reshare the key to a new device. This separates operational nodes from recovery trustees, enhancing security. All recovery actions must be logged immutably and require multi-factor authentication to prevent insider attacks. The recovery process itself should be an MPC protocol to avoid reconstructing the key in one place.

Finally, continuous monitoring and alerting are operational necessities. The system should audit all signing requests, track node health, and monitor for signature threshold exhaustion attacks where an attacker repeatedly triggers signing to drain resources. Implementing rate limiting, geofencing, and transaction policy engines (e.g., allowlists, daily limits) at the MPC layer provides defense-in-depth. The design is complete only when it can gracefully degrade, recover from faults, and maintain security under adversarial conditions.

FOR DEVELOPERS

Frequently Asked Questions on MPC Wallets

Common technical questions and implementation challenges when designing Multi-Party Computation (MPC) wallet systems for production.

Threshold ECDSA and traditional multi-signature (multi-sig) wallets solve the same problem—distributing signing authority—but with fundamentally different architectures.

Traditional Multi-sig (e.g., Bitcoin's CHECKMULTISIG, Gnosis Safe) uses multiple distinct cryptographic key pairs. Each party holds a full private key, and a transaction requires m-of-n separate, complete signatures. These signatures and the public keys of all participants are recorded on-chain, revealing the wallet's governance structure.

Threshold ECDSA (t-of-n MPC) uses a single, distributed private key that is never assembled. The key is secret-shared among n parties using cryptographic protocols like Shamir's Secret Sharing (SSS) or Additive Secret Sharing. Signing is an interactive protocol where at least t parties collaborate to produce a single, standard ECDSA signature. From the blockchain's perspective, it appears as a transaction from a single regular address, offering privacy and reduced on-chain gas costs.

Key technical distinction: Multi-sig aggregates signatures; MPC generates a signature from a distributed secret.

conclusion
IMPLEMENTATION ROADMAP

Conclusion and Next Steps

This guide has outlined the core architectural components and security principles for building a Multi-Party Computation (MPC) wallet system. The next phase involves translating these concepts into a production-ready implementation.

To begin implementation, start with a non-custodial key generation ceremony using a library like tss-lib (ECDSA) or ZenGo-X/white-city (EdDSA). This establishes the distributed key shares. Next, integrate a secure enclave or Hardware Security Module (HSM) provider, such as AWS Nitro Enclaves or Azure Confidential Computing, to manage the local share. The core signing logic should be built around a robust signing server that orchestrates the MPC protocol, handling network communication, message preprocessing, and share combination without ever reconstituting the full private key.

For the user-facing application, develop a client SDK that interfaces with your signing server. This SDK should manage local share storage (e.g., in a device's Secure Enclave or Trusted Execution Environment) and facilitate the interactive signing rounds. Crucially, implement comprehensive audit logging and signing policy engines at the server level to enforce transaction rules (like daily limits or whitelisted addresses) before any signature is generated. This layer is where business logic and compliance are enforced.

The final step is rigorous testing and security auditing. Deploy your system on a private testnet and conduct extensive simulations of various attack vectors: - Network partitioning during signing - Malicious participant behavior (abort attacks) - Client-side share extraction attempts. Engage a specialized blockchain security firm to perform a formal audit of your cryptographic implementation and infrastructure. Resources like the MPC Alliance and academic papers on threshold signatures provide essential reference material for ongoing development and threat modeling.

How to Design an MPC Wallet System with Threshold Signatures | ChainScore Guides