Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

E2E Demo

Pre-Alpha Disclaimer: This is an early pre-alpha release for exploring the SDK and starting development only. There is no real MPC signing — all signatures are generated by a single mock signer, not a distributed network. Do not submit any real transactions for signing or rely on any security guarantees. The dWallet keys, trust model, and signing protocol are not final; do not rely on any key material until mainnet. All interfaces, APIs, and data formats are subject to change without notice. The Solana program and all on-chain data will be wiped periodically and everything will be deleted when we transition to Ika Alpha 1. This software is provided “as is” without warranty of any kind; use is entirely at your own risk and dWallet Labs assumes no liability for any damages arising from its use.

Pre-Alpha Environment

ResourceEndpoint
dWallet gRPChttps://pre-alpha-dev-1.ika.ika-network.net:443
Solana RPChttps://api.devnet.solana.com

Quick Start

Deploy your multisig program to devnet, then run:

# TypeScript
just e2e-multisig <DWALLET_ID> <MULTISIG_ID>

# Rust
just e2e-multisig-rust <DWALLET_ID> <MULTISIG_ID>

Available Demos

CommandLanguageFile
just e2e-multisigTypeScript (bun)examples/multisig/e2e/main.ts
just e2e-multisig-rustRustexamples/multisig/e2e-rust/src/main.rs

What the Demo Does

Step 1:  gRPC DKG            → dWallet created, authority = caller
Step 2:  Transfer authority   → CPI PDA owns the dWallet
Step 3:  Create multisig      → 2-of-3 with 3 member pubkeys
Step 4:  Propose transaction  → Message data stored on-chain
Step 5:  Member1 approves     → approval_count = 1
Step 6:  Member2 approves     → approval_count = 2 = threshold → CPI!
Step 7:  Verify approval      → MessageApproval exists on-chain
Step 8:  gRPC presign         → Allocate presign
Step 9:  gRPC sign            → 64-byte signature returned
Step 10: Rejection test       → Propose 2nd tx, 2 rejections → Rejected

React Frontend

A React frontend is included for interactive testing:

cd chains/solana/examples/multisig/react
bun install && bun dev

The frontend includes:

  • Create dWallet + Multisig in one click (via gRPC-web)
  • Propose transactions with on-chain message data
  • Approve/Reject as a connected wallet member
  • Live status with auto-refresh