Ika Cli
/install ika-cli
Ika CLI
Command-line interface for the Ika decentralized MPC signing network on Sui.
References (detailed command reference and JSON schemas)
references/commands.md- Full command reference with all flags, arguments, and examplesreferences/json-output.md- JSON output schemas for--jsonflag on every command
Install
# Via Homebrew (macOS/Linux)
brew install ika-xyz/tap/ika
# Or download pre-built binary from GitHub Releases
# https://github.com/dwallet-labs/ika/releases
# Available for: linux-x64, linux-arm64, macos-x64, macos-arm64, windows-x64
# Or build from source
cargo build --release -p ika
Requires: Sui CLI (sui keytool for key management)
Global Flags
All commands support these flags:
| Flag | Description |
|---|---|
--json |
Output results as JSON (machine-parseable). Errors also output as JSON. |
--client.config \x3CPATH> |
Custom Sui client config path |
--ika-config \x3CPATH> |
Custom Ika network config path (default for all dwallet subcommands) |
--gas-budget \x3CMIST> |
Override default gas budget (default for all dwallet subcommands) |
-y, --yes |
Skip confirmation prompts |
-q, --quiet |
Suppress human-readable output (JSON still printed with --json -q) |
Command Overview
ika
├── start # Start local Ika network
├── network # Network info and addresses
├── dwallet # dWallet operations
│ ├── create # Create dWallet via DKG
│ ├── sign # Request signature
│ ├── future-sign # Conditional/future signing
│ │ ├── create # Create partial user signature
│ │ └── fulfill # Complete future sign
│ ├── presign # Request presign (batch up to 20)
│ ├── global-presign # Global presign with network key
│ ├── import # Import external key as dWallet
│ ├── register-encryption-key
│ ├── get-encryption-key
│ ├── verify-presign
│ ├── get # Query dWallet info
│ ├── list # List owned dWallet capabilities
│ ├── list-presigns # List presign caps by status/curve
│ ├── public-key # Extract signing public key
│ ├── decrypt # Decrypt on-chain encrypted share
│ ├── epoch # Query current network epoch
│ ├── pricing # Current pricing info
│ ├── generate-keypair # Offline keypair generation
│ └── share # User share management
│ ├── make-public
│ ├── re-encrypt
│ └── accept
├── config # Configuration management
│ ├── init # Fetch addresses + create Sui envs
│ ├── add-env # Add env from local ika_config.json
│ ├── sync # Re-fetch latest contract addresses
│ └── show # Show current config
├── validator # Validator operations (30+ subcommands)
├── protocol # Protocol governance (feature-gated)
└── completion # Shell completions (bash/zsh/fish)
Curves, Algorithms, and Hash Schemes
Commands accept named values (not numeric IDs):
| Parameter | Accepted values |
|---|---|
--curve |
secp256k1, secp256r1, ed25519, ristretto |
--signature-algorithm |
ecdsa, taproot, eddsa, schnorrkel |
--hash-scheme |
keccak256, sha256, double-sha256, sha512, merlin |
Quick Start
Create a dWallet
# Register encryption key first (derives from active Sui address by default)
ika dwallet register-encryption-key --curve secp256k1
# Create a secp256k1 dWallet (IKA/SUI coins auto-detected from wallet)
ika dwallet create \
--curve secp256k1 \
--output-secret ./my_dwallet_secret.bin
# Output: dWallet ID, Cap ID, Public Key
# Sign a message
ika dwallet sign \
--dwallet-cap-id \x3CCAP_ID> \
--dwallet-id \x3CDWALLET_ID> \
--message \x3CHEX_MESSAGE> \
--signature-algorithm ecdsa \
--hash-scheme keccak256 \
--secret-share ./my_dwallet_secret.bin \
--presign-cap-id \x3CPRESIGN_CAP_ID> \
--wait
Secret Share Handling
The secret share can be provided in three ways (in priority order):
--secret-share \x3Cfile>— read from a local file--secret-share-hex \x3Chex>— pass directly as hex- Omit both — the CLI derives the decryption key from your Sui keystore (seed args), fetches the encrypted share from chain, and decrypts it. Requires
--dwallet-id.
Batch Presigns
# Create 10 presigns in a single transaction (max 20)
ika dwallet presign \
--dwallet-id \x3CDWALLET_ID> \
--signature-algorithm ecdsa \
--count 10 \
--wait
List and Inspect
# List all owned dWallet capabilities
ika dwallet list
# List presign caps grouped by status and curve
ika dwallet list-presigns
# Extract the signing public key from a dWallet
ika dwallet public-key --dwallet-id \x3CDWALLET_ID>
# Query current network epoch
ika dwallet epoch
Future Signing (two-step)
# Step 1: Create partial user signature
ika dwallet future-sign create \
--dwallet-id \x3CDWALLET_ID> \
--message \x3CHEX_MESSAGE> \
--hash-scheme sha256 \
--presign-cap-id \x3CPRESIGN_CAP_ID> \
--signature-algorithm ecdsa \
--secret-share ./my_secret.bin
# Step 2: Fulfill (complete the sign)
ika dwallet future-sign fulfill \
--partial-cap-id \x3CPARTIAL_CAP_ID> \
--dwallet-cap-id \x3CDWALLET_CAP_ID> \
--dwallet-id \x3CDWALLET_ID> \
--message \x3CHEX_MESSAGE> \
--signature-algorithm ecdsa \
--hash-scheme sha256 \
--wait
Seed derivation: Encryption keys are derived stateless from the active Sui keystore address. Use --seed-file \x3CPATH> for raw 32-byte seed, --address \x3CADDR> for a specific keystore address, or --encryption-key-index \x3CN> for multiple keys per address. Pass --legacy-hash for keys registered before the V2 hash fix (only affects non-SECP256K1 curves).
Auto-detection: IKA/SUI coins are auto-detected from the active wallet. Curve, DKG output, and presign output are auto-fetched from chain when --dwallet-id and --presign-cap-id are provided.
Validator Operations
# Create validator info
ika validator make-validator-info \x3CNAME> \x3CDESC> \x3CIMG_URL> \x3CPROJECT_URL> \x3CHOST> \x3CGAS_PRICE> \x3CADDRESS>
# Become a validator candidate
ika validator become-candidate \x3CVALIDATOR_INFO_PATH>
# Join the committee
ika validator join-committee --validator-cap-id \x3CCAP_ID>
Key Management
Sui wallet keys are managed by sui keytool:
sui keytool generate ed25519 # Generate new keypair
sui keytool list # List known keys
sui keytool import \x3CMNEMONIC> # Import key from mnemonic
dWallet encryption keys are derived stateless from Sui keystore addresses (no local file storage). The CLI uses keccak256(keypair_bytes || index) to derive a 32-byte seed, then hashes with domain separators to produce class-groups and Ed25519 keys.
JSON Output
All commands support --json for structured output:
ika dwallet get --dwallet-id \x3CID> --json
ika dwallet list --json
ika dwallet list-presigns --json
ika validator get-validator-metadata --json
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ika-cli - After installation, invoke the skill by name or use
/ika-cli - Provide required inputs per the skill's parameter spec and get structured output
What is Ika Cli?
Guide for using the Ika CLI tool for dWallet operations, validator management, system deployment, and network administration. Use when performing CLI-based d... It is an AI Agent Skill for Claude Code / OpenClaw, with 156 downloads so far.
How do I install Ika Cli?
Run "/install ika-cli" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Ika Cli free?
Yes, Ika Cli is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Ika Cli support?
Ika Cli is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Ika Cli?
It is built and maintained by Omer Sadika (@omersadika); the current version is v1.0.2.