Overview

wative-core is a TypeScript library for encrypted, multi-workspace, multi-chain crypto wallet management across EVM and Solana, running in both Node and the browser.

wative-core is a TypeScript library for managing crypto wallets — encrypted at rest, organized into workspaces, and spanning EVM chains and Solana from one API. It runs unchanged in Node and in the browser: the same code creates accounts, derives wallets, and signs transactions, while the storage layer swaps between encrypted files on disk and IndexedDB underneath.

It was built for on-chain market makers who manage many keys across many chains, but nothing about it is specific to that use case. If you need to hold keys, derive addresses, and sign — safely, in more than one runtime — this is the surface for it.

The model

Everything nests inside a Workspace. Learn these four objects and the rest of the reference reads predictably:

Workspace                     one encrypted container, one password

├── Account                   an identity — HD (from a mnemonic) or PK (imported keys)
│   └── Wallet                one slot in that account
│       └── Address           one key on one chain — this is what signs

├── Network                   the chains you can reach (RPC, chain id)
└── Asset                     the tokens tracked on each network
  • Workspace — the top-level container. Holds the password and your accounts, networks, and assets, plus a built-in logger.
  • Account — either HD (one BIP-39 mnemonic that derives many wallets) or PK (raw private keys you import one at a time). Each account can share the workspace password or carry its own.
  • Wallet — a unit inside an account, holding one Address per (vm, network) pair. Both kinds give you an EVM and a Solana address.
  • Address — an on-chain identity. Sign messages, build transactions, transfer native coins or tokens, and send them.

14 networks and 29 tokens ship pre-loaded, and everything a workspace persists is encrypted under your workspace password.

Install

pnpm add wative-core
npm i wative-core
index.ts
import { Workspace } from "wative-core";
import "wative-core/node"; // Node only — see Node & Browser

const ws = await Workspace.open({ password: "your-workspace-password" });
const account = await ws.accounts.create("Trading Desk", "your-workspace-password", mnemonic);
await account.deriveWallets(4);
await ws.lock();

Where to start

Last updated on