Move Contract Integration
Build Move smart contracts that integrate with Ika's distributed wallet (dWallet) protocol to enable programmable, decentralized signing for cross-chain operations.
What is Move Integration?
Move integration allows you to embed dWallet functionality directly into your Sui Move smart contracts. This enables:
- Programmable Signing: Define custom logic that controls when and how signatures are created
- Cross-Chain Operations: Sign transactions for Bitcoin, Ethereum, and other chains from Sui contracts
- Decentralized Custody: Build DAOs, treasuries, and governance systems with distributed key management
- Automated Workflows: Create smart contracts that can sign without user interaction (using shared dWallets)
Architecture Overview
Architecture Overview
Your Move Contract
DWalletCap
(stored)
Presigns
(pooled)
Business Logic
(governance, approvals)
▼
▼
▼
DWalletCoordinator
DKG
Protocol
Presign
Protocol
Sign
Protocol
Future Sign
Protocol
▼
▼
▼
Ika Network
(2PC-MPC Protocol Execution)
When to Use Move Integration
Use Move Integration When:
- Building DAOs or treasuries that need distributed signing authority
- Creating governance systems with approval workflows before signing
- Implementing multi-signature wallets with custom voting logic
- Building automated trading bots or DeFi protocols that sign on other chains
- Developing custody solutions with programmable access controls
Use SDK-Only When:
- Building user-facing wallets where users hold their own keys
- Creating simple signing flows without on-chain logic
- Prototyping before committing to on-chain architecture
Key Concepts
| Concept | Description |
|---|---|
| DWalletCoordinator | The shared object that manages all dWallet operations on Ika |
| DWalletCap | Capability object that authorizes signing operations for a dWallet |
| Presign | Pre-computed cryptographic material required before signing |
| MessageApproval | Authorization for signing a specific message |
| SessionIdentifier | Unique identifier for each protocol operation |
Protocol Lifecycle
Protocol Lifecycle
DKG
Create dWallet and receive DWalletCap
DWalletCap
(store permanently)
▼
PRESIGN
Pre-compute cryptographic material for signing
UnverifiedPresignCap
(store in pool)
VerifiedPresignCap
(ready to use)
▼
▼
Signing Options
SIGN
(Direct signing)
approve_message()
request_sign()
FUTURE SIGN
(Two-phase signing)
Phase 1: Commit
Phase 2: Execute
Quick Example
Here's a minimal example of a contract that creates a shared dWallet:
Documentation Structure
- Getting Started - Set up your Move project with Ika dependencies
- Core Concepts - Understand the coordinator, capabilities, and payments
- Protocols - Deep dive into DKG, presigning, signing, and future signing
- Integration Patterns - Common patterns for building with Ika
- Examples - Full example walkthroughs including Bitcoin multisig
Next Steps
- Start with Getting Started to set up your project
- Read Core Concepts to understand the building blocks
- Follow the Protocols guides for each operation type
- Check Examples for complete implementations