Solana MPC Trading Example
Perform on-chain trading on Solana using Sodot MPC
This example demonstrates how to integrate a Sodot MPC cluster with Solana for secure, distributed key management in an on-chain DeFi trading context. The project showcases 2-of-3 threshold signing using Ed25519 keys distributed across 3 Vertex servers.
The code and full technical details can be found in the Github repo.
What This Example Shows
- Distributed Key Generation: Create an Ed25519 MPC key split across 3 Vertex servers
- Threshold Signing: Sign Solana transactions with only 2 of the 3 servers (high-availability)
- On-Chain Execution: Build and submit SOL transfer transactions to Solana devnet
- Key Persistence: Store key metadata locally to reuse keys across runs of the example
Architecture
The example uses a 2-of-3 threshold configuration:
-
Key Generation Phase
- All 3 Vertex servers participate in distributed key generation
- Each server holds a share of the private key
- The combined public key is derived and converted to a Solana address
-
Signing Phase
- Only 2 of the 3 servers are needed to sign (threshold = 2)
- Servers coordinate via a relay room to produce a valid Ed25519 signature
- The transaction is verified locally before submission to Solana
API Flow
1. POST /create-room → Create coordination room for MPC operation
2. POST /ed25519/create → Initialize keygen on each Vertex
3. POST /ed25519/keygen → Perform distributed key generation
4. POST /ed25519/derive-pubkey → Derive Solana public address
5. POST /ed25519/sign → MPC signing with threshold parties
Use Cases
This pattern is ideal for:
- DeFi Trading Bots: Secure key management for automated trading strategies
- Institutional Custody: Distributed signing authority across multiple parties
- Exchange Infrastructure: Hot wallet security with threshold controls
Getting Started
- Clone the repository and configure your Vertex API keys
- Run
cargo runto generate an MPC key and Solana address - Fund the address on devnet via the Solana Faucet
- Run again to execute a signed SOL transfer
See the README for detailed setup instructions.