Run it before you install it
The fastest way to see the shape is the tour — the real router, manifest and unified receive against in-memory stub adapters. No node, no credentials, no network, no protocol SDKs.createWdkRegistry is the only change between that and a wallet that moves funds.
Installation
Requirements
- Node.js 20 or higher
- TypeScript 5.x recommended
- ESM only
Protocol SDKs are optional peer dependencies
The only hard dependencies are the pure-crypto primitives (@noble/*, @scure/*). Every protocol SDK is an optional peerDependency — install only the ones whose adapters you use.
Importing the root barrel pulls in no protocol SDK, and each adapter lazy-loads its SDK inside connect(), so a missing peer only errors when you actually load that adapter’s subpath. This is what lets an MV3 extension host import the engine without carrying every L2 SDK.
Migration (≤ beta.53 → beta.54): protocol SDKs moved from
dependencies to optional peerDependencies. They are no longer installed transitively — add the packages for the adapters you use to your own package.json.Your first wallet
Inject your platform
The engine never touches platform APIs. Each host injects storage, a CSPRNG and a clock once at startup, which is what lets the same engine run unchanged on React Native (SecureStore/MMKV), the extension (chrome.storage) and Node.
Next
Core Concepts
How routing, unified receive and disclosure actually work.
Add a Protocol
Implement the contract, add one manifest entry, done.