dwallet-labs/ika/ika-operator

Claude Code and agent skill by dwallet-labs/ika

Trust tier 2
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Guide for operating Ika network nodes - validators, fullnodes, and notifiers. Use when deploying, configuring, monitoring, or troubleshooting Ika infrastructure. Triggers on tasks involving ika-node, ika-validator, ika-fullnode, ika-notifier, NodeConfig, consensus setup, P2P networking, validator registration, or Ika node operations.

Install

npx vskill@latest install dwallet-labs/ika/ika-operator

SKILL.md

Ika Node Operator Guide

Deploy and operate Ika network nodes (validators, fullnodes, notifiers).

References (detailed configuration and operations)

  • references/configuration.md - Complete NodeConfig YAML reference, all fields with defaults
  • references/operations.md - Deployment, monitoring, admin API, recovery, metrics proxy
  • references/validator-setup.md - Step-by-step mainnet validator setup with CLI commands

Node Types

BinaryModePurposeKey Config
ika-nodeAuto-detectSelects mode from configDetects automatically
ika-validatorValidatorConsensus + MPC signingRequires consensus-config
ika-fullnodeFullnodeState sync via P2P, no consensusNo consensus-config, no notifier-client-key-pair
ika-notifierNotifierSubmits checkpoints to SuiRequires notifier-client-key-pair

Auto-detection order: consensus-config present → Validator; else notifier-client-key-pair present → Notifier; else → Fullnode.

Hardware Requirements (Validator)

ResourceMinimum
CPU16 physical cores / 16 vCPUs
Memory128 GB
Storage4 TB NVMe
Network1 Gbps
OSLinux Ubuntu/Debian x64 (or Docker on x64 Linux)

Warning: Hetzner has strict crypto ToS and may close validators without notice.

Connectivity (Validator Ports)

Protocol/PortDirectionPurpose
TCP/8080InboundProtocol / Transaction Interface
UDP/8081Inbound/OutboundConsensus Interface
UDP/8084Inbound/OutboundPeer-to-Peer State Sync
TCP/8443OutboundMetrics Pushing
TCP/9184Inbound/OutboundMetrics Scraping (both Sui fullnode and Ika node)

Critical: Ports 8080-8084 and 9184 must be open with correct protocols (TCP/UDP).

Prerequisites

  • DNS address for your validator (e.g., ika-mainnet-1.<your-domain>)
  • Your own Sui fullnode on Sui mainnet, fully synced (at least 2 latest epochs). Use separate DNS for Sui node.
  • Sui CLI installed, configured for mainnet, active address with at least 10 SUI
  • Minimum 40 million IKA stake to join the committee

Quick Start: Mainnet Validator

Download binaries from: https://github.com/dwallet-labs/ika/releases

Step 1: Configure Ika Environment

Get the latest package/object IDs from the canonical source:

  • Mainnet: deployed_contracts/mainnet/address.yaml (GitHub)
  • Testnet: deployed_contracts/testnet/address.yaml (GitHub)
bash
./ika validator config-env \
--ika-package-id <ika_package_id> \
--ika-common-package-id <ika_common_package_id> \
--ika-dwallet-2pc-mpc-package-id <ika_dwallet_2pc_mpc_package_id> \
--ika-system-package-id <ika_system_package_id> \
--ika-system-object-id <ika_system_object_id>
# Creates: ~/.ika/ika_config/ika_sui_config.yaml
# Note: ika-dwallet-coordinator-object-id is not set at this stage (defaults to zero);
# it must be configured later in the node's validator.yaml under sui-connector-config.
Step 2: Generate Validator Info & Keys
bash
./ika validator make-validator-info \
"My Validator" "Description" \
"https://example.com/image.png" "https://example.com" \
"ika-mainnet-1.example.com" \
10000 \
<YOUR_SUI_ADDRESS>
# Generates: protocol.key, network.key, consensus.key, root-seed.key, validator.info

CRITICAL: Back up ALL generated keys. root-seed.key is SECRET and IRREPLACEABLE. If lost, it cannot be updated via contract. Other keys (protocol, network, consensus) can be rotated on-chain.

Step 3: Register as Validator Candidate
bash
./ika validator become-candidate ./validator.info
# Returns: Validator ID, Validator Cap ID, Validator Operation Cap ID, and Validator Commission Cap ID
Step 4: Stake into Validator

Stake at least 40 million IKA via: https://ika-mainnet-validators-staking.pages.dev/

Verify your Validator ID matches the CLI output.

Step 5: Join Committee
bash
./ika validator join-committee --validator-cap-id <VALIDATOR_CAP_ID>

You become a pending validator and join the committee at the next epoch.

Step 6: Run the Validator Node

Directory structure:

/opt/ika/
├── bin/ika-node
├── config/validator.yaml
├── key-pairs/
│ ├── protocol.key
│ ├── network.key
│ ├── consensus.key
│ └── root-seed.key
└── db/ # Created at runtime
├── authorities_db/
└── consensus_db/

Before running, edit validator.yaml:

  • Set ika-dwallet-coordinator-object-id to the value from deployed_contracts/mainnet/address.yaml
  • Ensure: sui-chain-identifier: mainnet
  • Set metrics: push-url: "https://mainnet.metrics.ika-network.net:8443/publish/metrics"
bash
ika-node --config-path /opt/ika/config/validator.yaml

Logging: Set RUST_LOG for log levels, RUST_LOG_JSON=1 for JSON output.

Step 7: Verify

Wait a couple minutes, check logs for:

ika_core::checkpoints: Creating checkpoint(s) for 0 messages next_checkpoint_seq=1

This confirms the node is running. Additional checkpoints appear only during/after MPC sessions.

Package & Object IDs

Always get the latest IDs from the canonical source files in the repo:

  • Mainnet: deployed_contracts/mainnet/address.yaml (GitHub)
  • Testnet: deployed_contracts/testnet/address.yaml (GitHub)

Keypairs

KeyTypePurposeRequired ByRecoverable?
protocol-key-pairAuthorityKeyPairProtocol signaturesAllYes (rotate on-chain)
consensus-key-pairEd25519Consensus communicationAllYes (rotate on-chain)
network-key-pairEd25519P2P networkingAllYes (rotate on-chain)
account-key-pairSuiKeyPairSui interactionsAllYes
root-seed-key-pairRootSeedMPC cryptographic operationsValidatorsNO - IRREPLACEABLE
notifier-client-key-pairSuiKeyPairSubmit checkpoints to SuiNotifiersYes

Validator Config Essentials

yaml
# Mainnet validator must have:
sui-connector-config:
sui-chain-identifier: mainnet
# All Sui I/O uses gRPC. Validators MUST also set sui-genesis
# (see references/configuration.md).
sui-data-source:
kind: sui-state-direct
url: 'http://<your-sui-fullnode>:9000'
serve-mirror: true
sui-genesis: '/opt/ika/sui-mainnet-genesis.blob'
# ika package/object IDs are COMPILED INTO THE BINARY on mainnet/testnet
# (keyed off sui-chain-identifier) — do not configure them. Only
# custom/localnet chains set ika-unsafe-identity-override (see
# references/configuration.md).
consensus-config: # Presence triggers validator mode
db-path: '/opt/ika/consensus_db'
db-retention-epochs: 0
db-pruner-period-secs: 3600
max-pending-transactions: 20000
root-seed-key-pair:
path: /opt/ika/key-pairs/root-seed.key
metrics:
push-url: "https://mainnet.metrics.ika-network.net:8443/publish/metrics"

Admin API (localhost only)

bash
curl http://127.0.0.1:1337/logging # View log filter
curl -X POST 'http://127.0.0.1:1337/enable-tracing?filter=debug&duration=10s'
curl -X POST http://127.0.0.1:1337/reset-tracing # Reset to env var
curl http://127.0.0.1:1337/node-config # View config (keys masked)
curl http://127.0.0.1:1337/capabilities # View capabilities

Environment Variables

VariablePurposeDefault
IKA_CONFIG_DIROverride config directory~/.ika/ika_config/
RUST_LOGLog level filter—
RUST_LOG_JSONJSON log output (1 to enable)—
TRACE_FILTERTracing log filter—

Services by Node Type

ServiceValidatorFullnodeNotifier
AuthorityStateYYY
ConsensusManagerY——
DWalletMPCServiceY——
SuiConnectorServiceYYY
CheckpointServicesYYY
P2P + StateSyncYYY
DiscoveryYYY

Key Operational Notes

  • Release mode required: Always build with --release for crypto operations
  • Sui fullnode required: Run your own Sui fullnode, fully synced (2+ latest epochs)
  • Package IDs must match: Contract IDs in config must match deployed contracts
  • Minimum stake: 40 million IKA to join the committee
  • Root seed is sacred: Back it up securely. Cannot be regenerated or rotated on-chain.
  • Updates: Monitor #nodes-updates-mainnet channel for new releases
  • Recovery: Use --run-with-range-epoch or --run-with-range-checkpoint for disaster recovery
  • Checkpoint pinning: Use pinned-dwallet-checkpoints in state-sync config for fork recovery
  • Graceful shutdown: Send SIGTERM or SIGINT

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
207
Repository forks
172
7-day trend score
27

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/dwallet-labs/ika/ika-operator/badge)](https://verified-skill.com/skills/dwallet-labs/ika/ika-operator)

Something wrong with this skill or its page? Tell us.