askill
vultisig-sdk

vultisig-sdkSafety 95Repository

TypeScript SDK for MPC wallet integration across 36+ blockchains. Create wallets, import from seedphrase, sign transactions, execute swaps, scan for security threats, and more. Supports Bitcoin, Ethereum, Solana, and 33+ other chains with threshold signing security.

3 stars
1.2k downloads
Updated 2/15/2026

Package Files

Loading files...
SKILL.md

Vultisig SDK

TypeScript SDK for Vultisig MPC wallet operations. See the router skill for an overview of MPC benefits and to choose between CLI and SDK.

Installation

npm install @vultisig/sdk
# or
yarn add @vultisig/sdk

Requirements:

  • Node.js 20+
  • TypeScript (recommended)
  • Platforms: Node.js, Browser (with WASM), React Native, Electron

Quick Start

import { Vultisig, Chain } from '@vultisig/sdk'

// Initialize SDK
const sdk = new Vultisig({
  onPasswordRequired: async (vaultId, vaultName) => {
    return process.env.VAULT_PASSWORD || ''
  },
  passwordCache: { defaultTTL: 300000 } // 5 minutes
})
await sdk.initialize()

// Create a FastVault
const vaultId = await sdk.createFastVault({
  name: 'agent-wallet',
  email: 'agent@example.com',
  password: 'SecurePassword123!'
})

// Verify with email code
const vault = await sdk.verifyVault(vaultId, 'verification-code')

// Get address
const address = await vault.address(Chain.Ethereum)
console.log('ETH address:', address)

// Check balance
const balance = await vault.balance(Chain.Ethereum)
console.log(`Balance: ${balance.amount} ${balance.symbol}`)

// Clean up
sdk.dispose()

Vault Types

TypeThresholdSigningBest For
FastVault2-of-2 (device + server)InstantAI agents, automation
SecureVaultN-of-M (configurable)Multi-device coordinationTeams, high security

For AI agents, FastVault is recommended - instant signing without coordination.

Core Classes

Vultisig (Main Entry Point)

const sdk = new Vultisig({
  storage?: Storage,                    // Default: FileStorage (Node) / BrowserStorage
  defaultChains?: Chain[],              // Chains for new vaults
  defaultCurrency?: string,             // Fiat currency (default: 'USD')
  onPasswordRequired?: (id, name) => Promise<string>,
  passwordCache?: { defaultTTL: number }
})

// Lifecycle
await sdk.initialize()
sdk.dispose()

// Vault creation
const vaultId = await sdk.createFastVault({ name, email, password })
const vault = await sdk.verifyVault(vaultId, code)
const { vault } = await sdk.createSecureVault({ name, devices, threshold })

// Vault management
const vaults = await sdk.listVaults()
const vault = await sdk.getActiveVault()
await sdk.setActiveVault(vault)
await sdk.deleteVault(vault)

// Import/Export
const vault = await sdk.importVault(vultContent, password)
const isEncrypted = sdk.isVaultEncrypted(vultContent)

// Seedphrase
await sdk.validateSeedphrase(mnemonic)
await sdk.discoverChainsFromSeedphrase(mnemonic, chains?, onProgress?)
await sdk.createFastVaultFromSeedphrase({ mnemonic, name, email, password })

VaultBase (Shared Vault Methods)

// Properties
vault.id: string
vault.name: string
vault.type: 'fast' | 'secure'
vault.isEncrypted: boolean

// Addresses
const address = await vault.address(Chain.Bitcoin)
const addresses = await vault.addresses([Chain.Bitcoin, Chain.Ethereum])

// Balances
const balance = await vault.balance(Chain.Ethereum)
const balances = await vault.balances()  // All chains
await vault.updateBalance(Chain.Ethereum)  // Force refresh

// Transactions
const payload = await vault.prepareSendTx({ coin, receiver, amount })
const signature = await vault.sign(payload)
const txHash = await vault.broadcastTx({ chain, keysignPayload: payload, signature })

// Swaps
const quote = await vault.getSwapQuote({ fromCoin, toCoin, amount })
const { keysignPayload } = await vault.prepareSwapTx({ fromCoin, toCoin, amount, swapQuote })

// Management
await vault.addChain(Chain.Solana)
await vault.removeChain(Chain.Litecoin)
await vault.rename('New Name')
const { filename, data } = await vault.export(password)

Chain Enum

import { Chain } from '@vultisig/sdk'

// EVM
Chain.Ethereum, Chain.Polygon, Chain.BSC, Chain.Arbitrum, Chain.Optimism,
Chain.Base, Chain.Avalanche, Chain.Blast, Chain.CronosChain, Chain.ZkSync,
Chain.Hyperliquid, Chain.Mantle, Chain.Sei

// UTXO
Chain.Bitcoin, Chain.Litecoin, Chain.Dogecoin, Chain.BitcoinCash,
Chain.Dash, Chain.Zcash

// Cosmos
Chain.Cosmos, Chain.THORChain, Chain.MayaChain, Chain.Osmosis, Chain.Dydx,
Chain.Kujira, Chain.Terra, Chain.TerraClassic, Chain.Noble, Chain.Akash

// Other
Chain.Solana, Chain.Sui, Chain.Polkadot, Chain.Ton, Chain.Ripple,
Chain.Tron, Chain.Cardano

All Capabilities

For full details and code examples, see the SDK Users Guide.

CapabilityDescriptionGuide Section
Vault CreationFastVault (2-of-2) and SecureVault (N-of-M)Vault Management
Seedphrase ImportValidate mnemonics, discover chains, create vaults from seedphraseSeedphrase
Send TransactionsPrepare, sign, broadcast for all 36+ chainsEssential Operations
Token SwapsCross-chain (THORChain), same-chain (1inch, LiFi), ERC-20 approval handlingToken Swaps
Sign Arbitrary BytesCustom tx construction with signBytes and broadcastRawTxSigning
Cosmos SigningSignAmino and SignDirect for Cosmos dAppsCosmos Signing
Gas EstimationGet gas info per chain via vault.gas(chain)Gas Estimation
Token DiscoveryLook up known tokens, discover at address, resolve metadataToken Registry
Price FeedsCoinGecko token prices via vault.getPrice()Price Feeds
Security ScanningSite scanning, transaction validation, transaction simulationSecurity
Fiat On-RampBuy crypto via Banxa integrationFiat On-Ramp
Portfolio ValueFiat valuations across all chainsPortfolio
Password ManagementCallbacks, caching, manual lock/unlockPassword Management
Event SystemReactive updates for balances, signing, chains, tokensEvents
CachingAddress, balance, password, portfolio caching with configurable TTLsCaching
Error HandlingTyped VaultError with error codes (PasswordRequired, InsufficientBalance, etc.)Quick Reference
Stateless ModeMemoryStorage for serverless, testing, one-off operationsStateless Usage
Multi-PlatformNode.js, Browser (WASM), React Native, ElectronPlatform Notes
Storage OptionsFileStorage, BrowserStorage, MemoryStorage, or customConfiguration

Supported Chains

36+ blockchains:

  • EVM (13): Ethereum, Polygon, BSC, Arbitrum, Optimism, Base, Avalanche, Blast, Cronos, ZkSync, Hyperliquid, Mantle, Sei
  • UTXO (6): Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Dash, Zcash
  • Cosmos (10): Cosmos, THORChain, MayaChain, Osmosis, Dydx, Kujira, Terra, Terra Classic, Noble, Akash
  • Other (7): Solana, Sui, Polkadot, TON, Ripple, Tron, Cardano

Resources

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

94/100Analyzed 2/23/2026

Excellent SDK documentation skill for vultisig-sdk - a TypeScript MPC wallet library supporting 36+ blockchains. Provides comprehensive coverage with installation instructions, quick start example, vault type comparisons, detailed class APIs (Vultisig, VaultBase, Chain enum), capability matrix table, and categorized chain support. Includes metadata tags, proper YAML frontmatter, and references external user guide. Actionable with copy-paste code examples. Well-suited for developers integrating multi-chain crypto wallet functionality.

95
95
90
95
95

Metadata

Licenseunknown
Version1.0.0
Updated2/15/2026
Publishervultisig

Tags

githubsecurity