What is an MPC AA wallet

An MPC AA wallet merges two distinct technologies to solve the friction between security and user experience. It combines Multi-Party Computation (MPC) for key management with Account Abstraction (AA) for smart contract-based control. This hybrid architecture removes the single points of failure inherent in traditional wallets while enabling seamless, gasless, and social-recoverable interactions.

The MPC Layer: Distributed Security

Traditional wallets store a single private key on one device. If that device is lost or hacked, the funds are gone. MPC wallets use secret sharing schemes to split the private key into multiple "shares." These shares are distributed across different locations—such as the user's device, a backup server, or a recovery service. No single party ever holds the complete key. During a transaction, these shares work together to generate a signature without ever revealing the full key.

The AA Layer: User Experience

Account Abstraction replaces the standard Externally Owned Account (EOA) with a smart contract wallet. This shift allows for features that traditional wallets cannot support. Users can sponsor gas fees, implement multi-signature requirements, and use social recovery methods. If you lose your device, you can recover your account through trusted contacts or backup codes, rather than relying on a single, vulnerable seed phrase.

Why Combine Them?

The combination addresses the specific weaknesses of each technology when used alone. Standalone MPC wallets often suffer from complex user experiences and reliance on centralized servers for key reconstruction. Standalone AA wallets often rely on a single private key, creating a critical point of failure. By integrating MPC with AA, the wallet inherits the distributed security of MPC and the flexible, user-friendly features of AA.

MPC AA Wallet

Compare MPC and AA architectures

Standalone Multi-Party Computation (MPC) and standalone Account Abstraction (AA) wallets solve different halves of the security problem. Neither model alone provides the full suite of features needed for a seamless user experience. MPC handles key distribution and threshold signing, while AA manages smart contract logic, gas sponsorship, and session keys. Understanding their individual limitations clarifies why the hybrid MPC AA wallet has become the standard for 2026.

Standalone MPC wallets

MPC wallets rely on secret sharing schemes to split a private key into multiple "shares" distributed across independent devices or servers. This architecture eliminates the single point of failure inherent in traditional wallets where one entity holds the complete private key. No single party ever has access to the full key, even during the transaction signing process. This provides robust security against theft and unauthorized access.

However, standalone MPC wallets often lack the sophisticated transaction management features of smart contracts. They typically require the user to manage complex key shares and may impose higher gas fees since they do not natively support account-level optimizations like gas abstraction or batched transactions. The user experience can feel technical, requiring a deeper understanding of key management.

Standalone AA wallets

Account Abstraction wallets treat the user account as a smart contract, enabling features like social recovery, custom authentication rules, and gasless transactions. Users can recover access through trusted contacts or email, rather than relying on a static seed phrase. This significantly lowers the barrier to entry for new users and improves the overall user experience.

The primary limitation of standalone AA wallets is their reliance on a single private key for access. If that key is compromised, the attacker has full control over the account. While AA improves the interface and recovery mechanisms, it does not inherently distribute the cryptographic burden of key storage. This leaves the account vulnerable to key compromise, a risk that MPC addresses by design.

The gap in the hybrid model

The hybrid MPC AA wallet combines the security of distributed key shares with the flexibility of smart contract accounts. By integrating MPC into the AA framework, the solution provides both enhanced security and improved usability. The key shares are managed securely, while the AA layer handles transaction batching, gas sponsorship, and session keys.

This combination addresses the limitations of both standalone models. It removes the single point of failure from key storage while maintaining the user-friendly features of account abstraction. The result is a wallet that is both secure and easy to use, making it the ideal choice for mass adoption in the Web3 ecosystem.

FeatureStandalone MPCStandalone AAMPC AA Hybrid
Key StorageDistributed sharesSingle private keyDistributed shares
RecoveryComplex key managementSocial/email recoverySocial/email recovery
Gas FeesStandard user paysSponsored/batchableSponsored/batchable
Security ModelNo single point of failureVulnerable to key theftNo single point of failure

Set up the cryptographic protocol

The cryptographic layer is the engine of an MPC AA wallet. Instead of storing a single private key, this setup splits the key into multiple "shards" distributed across different parties. This ensures that no individual participant ever has access to the full key, even during transaction signing.

To build this, you must select a protocol, implement Distributed Key Generation (DKG), and configure the signing threshold. This process transforms a traditional single-key vulnerability into a robust, distributed security model.

MPC AA Wallet
1
Choose the protocol (GG20 or CGGMP21)

Select a Multi-Party Computation protocol that fits your security and performance needs. The Goldwasser-Goldreich-Ishai (GG20) protocol is a standard for threshold signatures, while the Canetti-Goldfeder-Gupta-Ma (CGGMP21) protocol offers improved efficiency for specific use cases. Your choice dictates the communication complexity and the mathematical primitives you will use.

MPC AA Wallet
2
Implement Distributed Key Generation (DKG)

Implement a DKG protocol to generate the key shares without ever reconstructing the full private key. During this phase, each participant generates a random secret and distributes encrypted shares to the others. The final public key is derived from the combined shares, ensuring that no single entity ever knows the complete private key.

MPC AA Wallet
3
Distribute key shares to participants

Securely distribute the generated key shares to the designated participants. These shares are stored across different locations, such as the service provider's server, the user's mobile device, and a hardware security module. Each share is independent, meaning the compromise of one share does not compromise the entire wallet.

MPC AA Wallet
4
Configure the signing threshold

Set the threshold number of participants required to authorize a transaction. For example, in a 3-of-5 setup, any three participants must collaborate to sign a transaction. This configuration balances security and usability, ensuring that no single point of failure exists while allowing for recoverability if a participant goes offline.

Integrate Smart Contract Logic

The MPC signature is useless on-chain unless the smart contract wallet can verify it. Standard ERC-20 or ERC-721 transfers require a standard EOA signature, but Account Abstraction (ERC-4337) uses a different flow. Your smart contract must implement the verifyUserOp method to accept the aggregated MPC signature instead of a traditional ECDSA signature.

This integration bridges the gap between off-chain key shards and on-chain execution. The contract acts as the final arbiter, ensuring that the signature provided by your MPC module matches the user operation data before allowing the transaction to proceed through the EntryPoint contract.

1. Implement verifyUserOp

The core of your wallet is the verifyUserOp function. This method receives the UserOperation struct and the signature payload. Inside, you must parse the signature to extract the MPC shares. Do not rely on standard ecrecover here; that function only works for single-key EOA signatures.

2. Validate MPC Shares

Once the shares are extracted, verify them against the public key that was registered during wallet deployment. You need a verification library that can reconstruct the signature from the partial shares. Ensure the library supports the specific threshold scheme (e.g., 2-of-3 or 3-of-5) you configured during the key generation phase.

3. Verify Signature Validity

After reconstructing the full signature, validate it against the hash of the UserOperation. If the signature is valid, the contract must return the PackedUserOperation validity salt. This step confirms that the transaction was authorized by the correct set of key holders.

4. Return Validity Salt

The verifyUserOp function must return a validity value. If the signature is valid, return 0 (or the appropriate success code for your implementation). If the signature is invalid or expired, return a non-zero error code. This signal tells the EntryPoint whether to include or reject the user operation.

5. Handle Gasless Transactions

With the smart contract logic in place, you can now integrate a Paymaster. The Paymaster contract pays the gas fees for the user operation, allowing for gasless transactions. Your wallet must be configured to accept the Paymaster’s signature alongside the MPC signature to complete the UserOperation.

6. Enable Session Keys

Session keys are temporary keys with limited permissions that can be stored in the smart contract. Your wallet should allow the owner to authorize these keys via the MPC flow. This enables dApps to execute specific actions on behalf of the user without requiring full MPC coordination for every single interaction.

Test the hybrid security flow

Before deploying your MPC AA wallet to mainnet, you must verify that the threshold signature mechanism and recovery logic function correctly under real-world conditions. This testing phase bridges the gap between theoretical architecture and operational reliability.

  • Verify DKG completion and share distribution
  • Test threshold signing with 2-of-3 shares
  • Confirm ERC-4337 bundler integration
  • Validate recovery flow
MPC AA Wallet
1
Verify DKG completion
Ensure the Distributed Key Generation (DKG) process has successfully terminated. Confirm that all participant nodes hold their respective shares and that the public key registered on-chain matches the derived MPC public key. Any mismatch here will prevent future transactions.
MPC AA Wallet
2
Test threshold signing
Initiate a test transaction requiring the minimum threshold of signatures (e.g., 2-of-3). Trigger the signing request from the user device and verify that the required number of co-signers respond. Observe the network traffic to ensure partial signatures are aggregated correctly before being submitted to the smart contract.
MPC AA Wallet
3
Confirm ERC-4337 integration
Validate that the constructed UserOperation is correctly formatted and relayed through your chosen bundler. Check that the entry point contract accepts the operation and that the gas estimation aligns with expected costs. This step ensures your account abstraction logic integrates seamlessly with the mempool.
MPC AA Wallet
4
Validate recovery flow
Simulate a key compromise or loss scenario. Trigger the social or time-delayed recovery mechanism to replace a compromised share or operator. Verify that the new share is distributed via a fresh DKG or key rotation protocol without disrupting the existing wallet functionality.

Frequently asked: what to check next