| name | ika-network |
| description | Build with Ika Network's dWallet primitive for programmable multi-chain signing. Use when: creating dWallets, signing transactions on any blockchain (BTC, ETH, SOL) from Sui smart contracts, integrating dWallets into Move contracts, understanding 2PC-MPC cryptography, debugging Ika SDK errors, building cross-chain applications, chain abstraction, programmable custody, multi-chain treasury, or any task involving the @ika.xyz/sdk TypeScript package or Ika Move modules. Also use for questions about dWallet Network (Ika's former name), zero-trust signing, non-collusive MPC, or comparing Ika to bridges/MPC networks like Lit Protocol, Wormhole, LayerZero, Axelar. Also covers agentic patterns: AI agents with policy-controlled dWallets, MCP tool servers for cross-chain signing, autonomous trading bots, and multi-chain treasury management.
|
Ika Network Developer Skill
What Ika Is
Ika is a parallel MPC signing network built on Sui. It creates dWallets: programmable,
transferable signing keys that work on any blockchain. A dWallet is controlled by a Sui smart
contract (via DWalletCap) and requires BOTH the user AND the Ika validator network to produce
a signature. Neither can sign alone (non-collusive 2PC-MPC). This means Sui contracts can
natively control Bitcoin, Ethereum, Solana assets without bridges or wrapping.
Quick Start
import { IkaClient, getNetworkConfig } from '@ika.xyz/sdk';
import { SuiClient } from '@mysten/sui/client';
const suiClient = new SuiClient({ url: 'https://sui-testnet-rpc.publicnode.com' });
const ikaClient = new IkaClient({
suiClient,
config: getNetworkConfig('testnet'),
network: 'testnet',
cache: true,
});
await ikaClient.initialize();
Prerequisites
- Rust (
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)
- Sui CLI (
brew install sui)
- pnpm (
npm install -g pnpm)
- wasm-pack (
curl https://drager.github.io/wasm-pack/installer/init.sh -sSf | sh)
- wasm-bindgen-cli (
cargo install wasm-bindgen-cli --version 0.2.100)
Install SDK: pnpm add @ika.xyz/sdk
Tips & Practical Notes
- Use
https://sui-testnet-rpc.publicnode.com for testnet, NOT getFullnodeUrl('testnet'). The default Sui RPC rate-limits the SDK's multi-call patterns.
- IKA tokens required: Get them at
https://faucet.ika.xyz/ by swapping SUI for IKA.
- Create encryption keys:
UserShareEncryptionKeys.fromRootSeedKey(randomBytes(32), Curve.SECP256K1) — the factory method for generating key pairs.
- Deprecated API warning: Do NOT use
requestDWalletDKGFirstRound, requestDWalletDKGFirstRoundAsync, or requestDWalletDKGSecondRound. Use requestDWalletDKG (v2 API).
- Mainnet RPC:
https://ikafn-on-sui-2-mainnet.ika-network.net/
Navigation
Status Notes
- EdDSA: Added Dec 2025, available for Solana/Cardano/Near/Stellar signing
- Operators docs: Coming soon on official docs
- Code Examples section: Coming soon on official docs
- Move integration: See move-integration.md for extended examples beyond the official guides
Key Concepts (30-second version)
- dWallet = Sui object that can sign on any chain. Created via DKG (Distributed Key Generation).
- DWalletCap = The capability object that controls a dWallet. Whoever holds it controls signing policy. Losing it = frozen wallet.
- 2PC-MPC = Two-Party Computation with Multi-Party Computation. User + network = signature. Neither alone can sign. Non-collusive by construction.
- Zero-Trust = Even if 100% of validators are compromised, they cannot sign without the user's participation.
- Presigning = Pre-compute partial signatures for faster signing later.
GitHub & Resources