Skip to main content

MPC wallets

What is MPC?

Multi-party computation (MPC) is a cryptographic protocol that enables multiple parties to compute a function together without revealing their individual inputs to each other. This technology allows for secure collaboration on sensitive data without compromising privacy and forms the backbone of MPC wallets.

What are MPC wallets?

MPC wallets leverage the power of MPC to distribute the cryptographic keys needed to access your cryptocurrency funds across multiple devices or participants. These participants work together to sign transactions, ensuring that no single entity possesses all the necessary information to access your wallet.

How are MPC wallets created?

Creating an MPC wallet involves several rounds of communication between your backend and the Sky Mavis API. This process happens asynchronously, meaning it takes place over multiple interactions rather than a single continuous operation:

  1. Getting the user's access token: you can do this by integrating with the Mavis Account service or Mavis ID service.
  2. Collecting a passphrase from the user: this passphrase is a secret that will be used to encrypt the private key shard.
  3. Generating a recovery kit: this kit will be used to recover the wallet in case the user loses their passphrase.
  4. Using the user's access token and passphrase to create an MPC wallet. This involves:
  5. Generating a private key in a distributed manner, split between the client and server:
    • Client-side: the user's device generates a private key shard (shard A). This shard is encrypted with the user's passphrase and stored securely on the user's device.
    • Server-side: the Sky Mavis server generates a private key shard (shard B). This shard is stored securely on the Sky Mavis server.
  6. Aggregating the two private key shards to form the user's public key: this key is the user's MPC wallet address that will be used for transactions.
  7. Retrieving the wallet's public address to use for transactions.
  8. Signing a transaction: to sign a transaction, the parties collaborate using shards A and B without ever combining them into a single private key. The transaction is signed and then broadcast to be added to the blockchain.

How are MPC wallets different from multisig wallets?

Multi-signature (multisig) and MPC wallets both offer enhanced security by requiring multiple signatures to approve a transaction, but they differ in their underlying technology and implementation.

  • Multisig wallets: use multiple private keys to sign a single transaction. Each party involved in the transaction must provide their private key for the transaction to be approved. This makes it more difficult for any single party to steal the funds, as they would need to compromise multiple private keys.
  • MPC wallets: use a single private key that is split into multiple shards. These shards are distributed to different parties, and no single party has access to the entire private key. Even if one party is compromised, the funds are still safe because the private key is never fully assembled in one place.

See also

Get started with integrating MPC