Socket
Book a DemoInstallSign in
Socket

@ika.xyz/sdk

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ika.xyz/sdk

Ika typescript sdk

latest
Source
npmnpm
Version
0.2.7
Version published
Maintainers
1
Created
Source

@ika.xyz/sdk — TypeScript SDK for Ika Network

⚠️ Warning: This package is currently in development and may have breaking changes.

Overview

This package provides a TypeScript SDK for interacting with the Ika Network on Sui.

  • Programmatically build transaction blocks for dWallet flows (DKG, presign, sign, imported-key flows)
  • Query network state (coordinator/system, DWallets, presigns, encryption keys objects)
  • Handle user share encryption and decryption with MPC WASM helpers

Install

Use bun (preferred):

bun add @ika.xyz/sdk

Peer/runtime requirements:

  • Node >= 18

Build (in this repo)

From the repo root:

pnpm install
pnpm sdk build

Or from sdk/typescript:

pnpm install
pnpm run build

Network configuration

Use getNetworkConfig(network) to obtain package/object IDs for localnet, testnet, or mainnet.

For localnet, the SDK automatically searches for ika_config.json in multiple locations including the current directory, parent directories, and can be configured via the IKA_CONFIG_PATH environment variable.

import { getNetworkConfig } from '@ika.xyz/sdk';

const config = getNetworkConfig('testnet');

Creating a client

IkaClient wraps a SuiClient and provides caching plus helpers for fetching network objects and protocol parameters.

import { getNetworkConfig, IkaClient } from '@ika.xyz/sdk';
import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';

const suiClient = new SuiClient({ url: getFullnodeUrl('testnet') });
const ikaClient = new IkaClient({
	suiClient,
	config: getNetworkConfig('testnet'),
	network: 'testnet',
	cache: true,
});

await ikaClient.initialize();

Selected queries:

// DWallet by id
const dWallet = await ikaClient.getDWallet('0x...');

// Presign by id
const presign = await ikaClient.getPresign('0x...');

// Active encryption key for address
const encKey = await ikaClient.getActiveEncryptionKey('0x...');

// Protocol public parameters (bytes)
const pp = await ikaClient.getProtocolPublicParameters();

Transactions helper

IkaTransaction wraps a Sui Transaction and adds typed methods for dWallet flows.

import { getNetworkConfig, IkaClient, IkaTransaction } from '@ika.xyz/sdk';
import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';
import { Transaction } from '@mysten/sui/transactions';

const suiClient = new SuiClient({ url: getFullnodeUrl('testnet') });
const ikaClient = new IkaClient({
	suiClient,
	config: getNetworkConfig('testnet'),
	network: 'testnet',
});
await ikaClient.initialize();

const tx = new Transaction();
const ikaTx = new IkaTransaction({ ikaClient, transaction: tx });

// Call inner functions to mutate the transaction.
const sessionIdentifier = ikaTx.createSessionIdentifier();

tx.transferObjects([sessionIdentifier], '0x...');

Cryptography helpers

Exposed utilities under client/cryptography:

  • createClassGroupsKeypair(seed)
  • createDKGUserOutput(pp, firstRound, sessionId)
  • prepareDKGSecondRound(pp, dWallet, sessionId, encKey) and prepareDKGSecondRoundAsync(ikaClient, ...)
  • prepareImportedKeyDWalletVerification(ikaClient, sessionId, userKeys, keypair)
  • encryptSecretShare(...), decryptUserShare(...)
  • verifyUserShare(...), verifySecpSignature(...)

System and Coordinator transaction builders

Low-level Move-call builders are available at:

  • coordinatorTransactions (src/tx/coordinator.ts)
  • systemTransactions (src/tx/system.ts)

These are used internally by IkaTransaction but can be called directly if needed.

Types

Import enums and types from client/types:

import { Curve, Hash, SignatureAlgorithm, type DWallet, type Presign } from '@ika.xyz/sdk';

Testing

pnpm --filter @ika.xyz/sdk test

License

BSD-3-Clause-Clear © dWallet Labs, Ltd.

FAQs

Package last updated on 16 Dec 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts