Getting Started
This guide walks you through setting up a Sui Move project that integrates with the Ika dWallet 2PC-MPC protocol.
Prerequisites
Before you begin, ensure you have:
- Sui CLI installed
- A Sui wallet with testnet SUI and IKA tokens
- Basic familiarity with Sui Move development
Project Setup
1. Create a New Move Project
2. Add Ika Dependencies
Update your Move.toml to include the Ika packages:
Testnet Only
The above configuration is for testnet. For mainnet deployment, update the paths to use
deployed_contracts/mainnet/ when available.
3. Verify Dependencies
Build your project to ensure dependencies resolve correctly:
Basic Contract Structure
Here's the minimal structure for a contract that integrates with Ika:
TypeScript SDK Setup
Your Move contract handles on-chain logic, but you'll need the TypeScript SDK for off-chain coordination (preparing DKG data, creating signatures, etc.).
Install the SDK
Initialize the Client
Key Network Objects
When interacting with Ika, you'll need these network objects:
| Object | Description | How to Get |
|---|---|---|
| DWalletCoordinator | Shared object for all dWallet operations | ikaClient.config.objects.dwalletCoordinatorId |
| Network Encryption Key | Current encryption key for the network | ikaClient.getLatestNetworkEncryptionKey() |
Protocol Fees
All dWallet operations require fees paid in both IKA and SUI tokens:
- IKA: Protocol fees for the Ika network
- SUI: Gas fees for Sui transactions
Your contract should maintain balances of both tokens:
Supported Cryptographic Schemes
Ika supports multiple curves and signature algorithms:
Curves
| Curve | ID | Use Case |
|---|---|---|
| SECP256K1 | 0 | Bitcoin, Ethereum |
| SECP256R1 | 1 | WebAuthn, Apple Secure Enclave |
| ED25519 | 2 | Solana, Substrate |
| RISTRETTO | 3 | Privacy-preserving applications |
Signature Algorithms
Signature algorithm IDs are relative to the curve:
| Curve | Algorithm | ID |
|---|---|---|
| SECP256K1 | ECDSASecp256k1 | 0 |
| SECP256K1 | Taproot | 1 |
| SECP256R1 | ECDSASecp256r1 | 0 |
| ED25519 | EdDSA | 0 |
| RISTRETTO | SchnorrkelSubstrate | 0 |
Hash Schemes
Hash scheme IDs are relative to the curve + signature algorithm:
| Curve | Algorithm | Hash | ID |
|---|---|---|---|
| SECP256K1 | ECDSASecp256k1 | KECCAK256 (Ethereum) | 0 |
| SECP256K1 | ECDSASecp256k1 | SHA256 | 1 |
| SECP256K1 | ECDSASecp256k1 | DoubleSHA256 (Bitcoin) | 2 |
| SECP256K1 | Taproot | SHA256 | 0 |
| SECP256R1 | ECDSASecp256r1 | SHA256 | 0 |
| ED25519 | EdDSA | SHA512 | 0 |
| RISTRETTO | SchnorrkelSubstrate | Merlin | 0 |
Next Steps
Now that your project is set up:
- Learn about the Coordinator Architecture
- Understand Capabilities and Approvals
- Follow the DKG Protocol to create your first dWallet