Ika CLI
The Ika CLI is the primary tool for interacting with the Ika network. It supports dWallet creation and signing, validator operations, system deployment, and configuration management.
Installation
Install via Homebrew
Build from Source
The binary will be at target/release/ika.
Download Pre-built Binaries
Pre-built binaries are available from GitHub Releases for:
- Linux x64 and ARM64
- macOS x64 and ARM64 (Apple Silicon)
- Windows x64
Prerequisite
The Ika CLI uses the Sui CLI for key management and on-chain operations. Make sure you have it installed before using Ika.
Initial Configuration
After installation, initialize the CLI config to fetch deployed contract addresses:
This fetches the current mainnet and testnet contract addresses from GitHub, writes ~/.ika/ika_sui_config.yaml, and creates Sui CLI environments (ika-testnet, ika-mainnet) pointing to the correct RPC URLs.
Then switch to the desired environment:
To re-fetch the latest contract addresses after upgrades:
Global Flags
All commands support these flags:
| Flag | Description |
|---|---|
--json | Output results as JSON (machine-parseable) |
--client.config <PATH> | Custom Sui client config path |
--ika-config <PATH> | Custom Ika network config path |
--gas-budget <MIST> | Override default gas budget |
-y, --yes | Skip confirmation prompts |
-q, --quiet | Suppress human-readable output (JSON still printed with --json -q) |
Command Overview
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 and Sign
Auto-detection
IKA/SUI coins are auto-detected from the active wallet. When --dwallet-id is provided, the curve
and DKG output are auto-fetched from chain. The presign cap is auto-verified if unverified.
The secret share can also be omitted — the CLI will decrypt it from chain using your keystore-derived key.
Key Management
Ika delegates key management to the Sui CLI:
dWallet encryption keys are derived stateless from the active Sui keystore address (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. Use --seed-file <PATH> for raw 32-byte seed, --address <ADDR> for a specific keystore address, or --encryption-key-index <N> for multiple keys per address. Pass --legacy-hash for keys registered before the V2 hash fix (only affects non-SECP256K1 curves).
Shell Completions
JSON Output
All commands support --json for structured output suitable for scripting:
On errors, JSON mode returns {"error": "description"} with exit code 1.