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
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install ika-cli - 安装完成后,直接呼叫该 Skill 的名称或使用
/ika-cli触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
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... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 156 次。
如何安装 Ika Cli?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install ika-cli」即可一键安装,无需额外配置。
Ika Cli 是免费的吗?
是的,Ika Cli 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Ika Cli 支持哪些平台?
Ika Cli 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Ika Cli?
由 Omer Sadika(@omersadika)开发并维护,当前版本 v1.0.2。