Smart Wallet SDK

Create MPC wallets, sign and send transactions, and manage end-user clients with the Tatum Wallet SDK for TypeScript.

What is the Wallet SDK?

The SDK abstracts two things:

  1. Tatum REST API - client and wallet management, share-pair bookkeeping, transaction building, backup management, and key eject.
  2. Tatum MPC API - MPC operations including wallet generation, signing, backup creation, recovery, and key reconstruction workflows.

You never interact with the MPC services directly. The SDK handles authentication, RPC resolution, request routing, and MPC coordination for you.

How MPC Works

MPC (Multi-Party Computation) lets two parties jointly produce a signature without either party ever holding the complete private key. The Tatum SDK uses a 2-of-2 threshold signing model.

2-of-2 Signing Model

Every wallet has exactly two shares per curve:

ShareHolderDescription
Client shareYour app / end userStored by you - the SDK returns it from generateWallet()
Tatum shareTatum infrastructureManaged by Tatum and never exposed through the SDK

Both shares participate in the MPC signing protocol. Neither share can independently authorize a transaction.

Client Shares vs Tatum Shares

  • Client shares are returned by generateWallet(). You own them and are responsible for storing them securely. Tatum cannot recover them.
  • Tatum shares are managed by Tatum infrastructure and stored separately from client shares.
  • During signing, your client share is provided to the MPC protocol for that operation. The private key is never reconstructed as part of the normal signing process.
  • MPC signatures are produced collaboratively without combining shares into a complete private key.

Wallet Lifecycle

1
Create Client
clientId + API Key
2
Generate Wallet
MPC Shares
3
Store Shares
Encrypt & Persist
4
Confirm Storage
STORED_CLIENT
5
Sign & Send
sendAssets() / sign()
6
Backup Wallet
Recovery Shares

Supported Wallet Types

The SDK produces wallets for two cryptographic curves, covering all supported chains:

CurveChains
SECP256K1EVM chains (Ethereum, Polygon, Arbitrum, Base, Optimism, Avalanche, Celo, Monad), Tron, Bitcoin
ED25519Solana, Stellar

When to Use the SDK

  • You want non-custodial wallets where your users own their keys
  • You need programmatic signing without a browser wallet (server-side flows)
  • You want gas sponsorship without managing a relayer yourself
  • You need key eject — the ability for users to exit and reconstruct their full private key

Security Model

  • Your backend never handles a complete private key.
  • Client shares should always be encrypted before storage.
  • Portal shares are stored separately from client shares and encrypted at rest.
  • Backup shares enable recovery if client signing shares are lost.
  • Key eject is opt-in and time-bounded. enableEject() must be explicitly called before recovery shares can be retrieved for key reconstruction.