Skip to main content

Overview

vaults-multichain-sdk (main class TrustodianSDK) is a TypeScript library for server-side integrators. It wraps the Trustodian REST API and handles all key material locally: unlocking a session from the user’s wallet password, rebuilding keys from shares, deriving wallets from the account recovery phrase, and signing on each chain.
Backend only. The SDK holds API keys, wallet passwords and reconstructed key material in process memory. Never ship it to a browser or mobile client.

Before you start

The SDK works with accounts that already exist. It cannot create one. An API key is only issued once its account has finished onboarding in the Trustodian app, so three things are already true before your integration runs:
  1. The account is registered.
  2. It has a wallet password.
  3. It has a recovery phrase, generated or imported, or a hardware wallet (Ledger or Trezor) as the account root.
Your integration takes the API key and the user’s wallet password, unlocks the session, and works with wallets derived from the seed that already exists.
There is no registration, login or key-issuing call in the SDK, and an API key cannot create another API key. If you need one, someone signs in to the app and issues it.

Non-custodial model

Trustodian never stores a complete private key or a complete recovery phrase. Read-only calls (wallet lists, portfolio, orders) need only the API key. Anything that touches key material needs shareStore plus an unlocked wallet-password session. See Key Management and Authentication.

The account recovery phrase

Each account has one recovery phrase, created during app onboarding, and every wallet is derived from it, so omit mode on createWallet. See Key Management for what the SDK keeps in your share store and why.

Recovery Phrase

Derivation paths per chain, reading the state, revealing the phrase, and the errors
An account can instead use a hardware wallet as its root. The wallets then derive on the device, and your frontend runs the device steps. See Hardware Wallets.

Supported chains

EChainType defines seven chain types:
Bitcoin is the one chain whose chain type differs per network: BTC on mainnet, BTC_T3 on testnet. Call getBtcChainType() instead of hardcoding either.

EVM chain ids

network: 'mainnet' and network: 'testnet' each ship a fixed set of EVM chain ids with default RPC endpoints. A chain id outside the configured set throws No RPC endpoint configured for EVM chain ID … unless you add it via rpcOverrides. The same seven networks are configured on testnet under their own chain ids, Ethereum Sepolia ('11155111') among them.
Cardano ships no default RPC endpoint and does not need one, because Cardano UTXO sourcing goes through the Trustodian backend. Set rpcOverrides.ada_mainnet / rpcOverrides.ada_preprod only if your own code resolves an ADA endpoint from the SDK’s RPC config.

Installation

Node.js 18 or newer is required.

Configuration options

The SDK carries a default API host for each network, so apiBaseUrl is optional. Set it explicitly for your own deployment, and ask your Trustodian contact which host your API key is issued against rather than relying on the default.

Where to go next

Quickstart

A runnable first integration, install to first transaction

Authentication

API keys, the wallet-password session lifecycle, and userRef

Key Management

shareStore, key shares, rotation and recovery

Recovery Phrase

The account seed: derivation, reveal, and what it means for your wallets

Wallets

Create, import, list, rename, export, portfolio

Hardware Wallets

Ledger and Trezor accounts: what you build, what the SDK gives you

Transactions

Native and token transfers, fee estimation, history

Preflight

Simulate and validate a transaction before broadcasting

Multisig

Personal and organization vaults, owners, thresholds

Orders

Create, sign, reject, and execute multisig orders

Organization

B2B members, roles, org wallets and policies

Errors

Typed error classes, HTTP mapping, retry guidance

FAQ

Common integration questions
Last modified on October 27, 2026