Skip to content

stars-labs/mpc-wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

77 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MPC Wallet

License: MIT Rust TypeScript WebRTC

A production-ready Multi-Party Computation (MPC) wallet implementing FROST (Flexible Round-Optimized Schnorr Threshold) signatures for secure distributed key management across multiple platforms.

Overview

MPC Wallet enables threshold signatures where private keys are split across multiple parties, requiring a minimum threshold to sign transactions. No single party ever has access to the complete private key, providing superior security for digital asset management.

Key Features

  • Real FROST DKG: Cryptographically secure distributed key generation using proper FROST protocol
  • Threshold Signatures: Configurable t-of-n threshold signing
  • Multi-Platform: Browser extension, desktop GUI, and terminal UI
  • Multi-Chain Support: Ethereum (secp256k1) and Solana (ed25519)
  • Peer-to-Peer: Direct WebRTC connections between participants
  • Offline Mode: Air-gapped operations for maximum security
  • Production Ready: Comprehensive testing and security audits

Quick Start

Installation

# Clone the repository
git clone https://github.com/your-org/mpc-wallet.git
cd mpc-wallet

# Install dependencies
bun install

# Build WASM modules
bun run build:wasm

# Start development
bun run dev

Basic Usage

Browser Extension

  1. Build and load the extension:
cd apps/browser-extension
bun run dev
  1. Load unpacked extension in Chrome from .output/chrome-mv3

  2. Create a wallet through the extension popup

Terminal UI

# Run the TUI application
cargo run -p tui-node -- --device-id Device-001

# Create a wallet (interactive)
> create my_wallet 2 3

Desktop Application

# Run the native desktop app
cargo run -p native-node

Documentation

πŸ“š Documentation Hub

πŸ—οΈ Architecture & Design

πŸ“– Application Documentation

Browser Extension

Terminal UI (TUI)

Native Desktop Application

Signal Server

πŸ”§ Development Resources

πŸš€ Deployment & Operations

πŸ” Implementation Details

πŸ› Bug Fixes & Solutions

πŸ“ Additional Resources

Project Structure

mpc-wallet/
β”œβ”€β”€ apps/                         # Applications
β”‚   β”œβ”€β”€ browser-extension/        # Chrome/Firefox extension
β”‚   β”œβ”€β”€ native-node/             # Desktop GUI application
β”‚   β”œβ”€β”€ tui-node/                # Terminal UI application
β”‚   └── signal-server/           # WebRTC signaling server
β”‚
β”œβ”€β”€ packages/@mpc-wallet/         # Shared packages
β”‚   β”œβ”€β”€ frost-core/              # FROST protocol implementation
β”‚   β”œβ”€β”€ core-wasm/               # WebAssembly bindings
β”‚   └── types/                   # TypeScript definitions
β”‚
β”œβ”€β”€ docs/                        # Documentation
β”œβ”€β”€ scripts/                     # Build and utility scripts
└── tests/                       # Integration tests

Technology Stack

Core Technologies

  • Rust: Core cryptographic implementation
  • TypeScript: Browser extension and web components
  • WebAssembly: Bridge between Rust and JavaScript
  • WebRTC: Peer-to-peer communication
  • Svelte: Browser extension UI
  • Slint: Native desktop UI framework
  • Ratatui: Terminal UI framework

Cryptography

  • FROST: Threshold signature scheme
  • secp256k1: Ethereum signatures
  • ed25519: Solana signatures
  • AES-256-GCM: Encryption at rest
  • PBKDF2: Key derivation

Use Cases

Individual Users

  • Secure personal wallet with distributed backups
  • Multi-device wallet control
  • Enhanced security for high-value accounts

Organizations

  • Corporate treasury management
  • Multi-signature custody solutions
  • Distributed key management for exchanges
  • Secure validator key management

Developers

  • Integration into existing applications
  • Custom threshold signature implementations
  • Research and development platform

Security

The MPC Wallet has been designed with security as the primary concern:

  • Private keys never exist in complete form
  • All communication is end-to-end encrypted
  • Comprehensive input validation and sanitization
  • Regular security audits and updates

For detailed security information, see our Security Documentation.

Performance

Benchmarks

Operation Participants Time Network
DKG 3 1.2s 45KB
Sign 3 45ms 15KB
Verify 1 15ms -

Scalability

  • Supports up to 100 participants
  • Horizontal scaling for signal servers
  • Optimized for mobile and low-bandwidth environments

Contributing

We welcome contributions! Please see our Contributing Guide for details on:

  • Code of Conduct
  • Development setup
  • Submitting pull requests
  • Reporting issues
  • Security vulnerabilities

Support

Community

Commercial Support

For enterprise support and custom development, contact: enterprise@mpc-wallet.io

Roadmap

Q1 2025

  • Browser extension MVP
  • Terminal UI application
  • Desktop application
  • Mobile application (in progress)

Q2 2025

  • Hardware wallet integration
  • Additional blockchain support
  • Advanced recovery mechanisms
  • Enterprise features

Q3 2025

  • Formal verification
  • Performance optimizations
  • Enhanced UI/UX
  • Regulatory compliance features

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Citation

If you use this software in your research, please cite:

@software{mpc_wallet,
  title = {MPC Wallet: Multi-Party Computation Wallet},
  author = {MPC Wallet Team},
  year = {2025},
  url = {https://github.com/your-org/mpc-wallet}
}

Built with ❀️ by the MPC Wallet Team

Secure. Distributed. Open Source.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •