SDK CLI
Command-line wallet for Vultisig - secure multi-party computation (MPC) wallet management across 40+ blockchains.
Tip: Use
vsigas a shorthand alias forvultisig- all commands work with both!
Installation
npm (recommended)
# Install globally
npm install -g @vultisig/cli
# Verify installation
vultisig --versionnpx (no installation)
# Run directly without installing
npx @vultisig/cli balance ethereumFrom source
# Clone the repository
git clone https://github.com/vultisig/vultisig-sdk.git
cd vultisig-sdk
# Install dependencies
yarn install
# Run CLI
yarn cli --helpShell Completion
Enable tab completion for commands, chains, and vault names (works for both vultisig and vsig):
Quick Start
Create a Fast Vault
You'll be prompted to:
Enter a vault name
Set a password (min 8 characters)
Provide an email for verification
Enter the verification code sent to your email
Create a Secure Vault (Multi-Device)
This creates a secure vault with configurable N-of-M threshold:
A QR code displays in your terminal
Other participants scan with Vultisig mobile app (iOS/Android)
Once all devices join, keygen runs automatically
Vault is created and ready to use
Secure vault options:
--shares <n>- Number of participating devices (default: 2)--threshold <n>- Signing threshold (default: ceil((shares+1)/2))
Example session:
Import from Seedphrase
Import an existing wallet from a BIP39 recovery phrase (12 or 24 words):
Import options:
--mnemonic <words>- Recovery phrase (space-separated words)--discover-chains- Scan chains for existing balances before import--chains <chains>- Specific chains to enable (comma-separated)
When --mnemonic is not provided, you'll be prompted to enter it securely (masked input).
Example session:
Check Balances
Send Transaction
Secure vault transactions:
When using a secure vault, a QR code displays for device coordination:
You can cancel with Ctrl+C while waiting for devices.
Interactive Shell
Start an interactive session with tab completion and password caching:
Commands
Vault Management
create
Create a new fast vault (server-assisted)
create --secure
Create a secure vault (multi-device MPC)
import <file>
Import vault from .vult file
import-seedphrase fast
Import seedphrase as FastVault (2-of-2)
import-seedphrase secure
Import seedphrase as SecureVault (N-of-M)
export [path]
Export vault to file
verify <vaultId>
Verify vault with email code
vaults
List all stored vaults
switch <vaultId>
Switch to a different vault
rename <newName>
Rename the active vault
info
Show detailed vault information
Create options:
--secure- Create a secure vault instead of fast vault--name <name>- Vault name--shares <n>- Number of devices for secure vault (default: 2)--threshold <n>- Signing threshold (default: ceil((shares+1)/2))
Import seedphrase options (fast):
--name <name>- Vault name (required)--email <email>- Email for verification (required)--password <password>- Vault password (required, prompted if not provided)--mnemonic <words>- Recovery phrase (prompted securely if not provided)--discover-chains- Auto-enable chains with existing balances--chains <chains>- Specific chains to enable (comma-separated)
Import seedphrase options (secure):
--name <name>- Vault name (required)--shares <n>- Number of devices (default: 2)--threshold <n>- Signing threshold (default: ceil((shares+1)/2))--password <password>- Vault password (optional)--mnemonic <words>- Recovery phrase (prompted securely if not provided)--discover-chains- Auto-enable chains with existing balances--chains <chains>- Specific chains to enable (comma-separated)
Export options:
[path]- Output file or directory (defaults to SDK-generated filename in current directory)--password <password>- Password to unlock encrypted vaults--exportPassword <password>- Password to encrypt the export file (defaults to--passwordif provided)
Wallet Operations
balance [chain]
Show balance for a chain or all chains
send <chain> <to> <amount>
Send tokens to an address
addresses
Show all vault addresses
portfolio
Show total portfolio value
Chain & Token Management
chains
List and manage chains (--add, --remove)
tokens <chain>
List and manage tokens for a chain
Swap Operations
swap-chains
List chains that support swaps
swap-quote <from> <to> <amount>
Get a swap quote
swap <from> <to> <amount>
Execute a swap
Advanced Operations
sign
Sign pre-hashed bytes for custom transactions
broadcast
Broadcast a pre-signed raw transaction
Signing Arbitrary Bytes
Sign pre-hashed data for externally constructed transactions:
Output:
JSON output:
Broadcasting Raw Transactions
Broadcast pre-signed transactions to the network:
Output:
Supported broadcast formats by chain:
Chain
--raw-tx Format
EVM (Ethereum, Polygon, etc.)
Hex-encoded signed tx
UTXO (Bitcoin, Litecoin, etc.)
Hex-encoded raw tx
Solana
Base64-encoded tx bytes
Sui
JSON: {"unsignedTx":"...","signature":"..."}
Cosmos
JSON: {"tx_bytes":"..."} or base64
TON
Base64 BOC
Polkadot
Hex-encoded extrinsic
Ripple
Hex-encoded tx blob
Tron
JSON tx object
Example: Custom EVM Transaction
Build and sign a transaction with ethers.js, broadcast with CLI:
Example: Custom Bitcoin Transaction
Build a PSBT with bitcoinjs-lib, sign with CLI:
Example: Custom Solana Transaction
Build with @solana/web3.js, sign with CLI:
Example: Custom Sui Transaction
Build with @mysten/sui, sign with CLI:
Settings
currency [code]
View or set currency preference
server
Check server connectivity
address-book
Manage saved addresses
CLI Management
version
Show detailed version info
update
Check for updates
completion
Generate shell completion
Interactive Shell Commands
vault <name>
Switch to a different vault
create <fast|secure>
Create a new vault
import-seedphrase <fast|secure>
Import wallet from recovery phrase
lock
Lock vault (clear cached password)
unlock
Unlock vault (cache password)
status
Show vault status
help
Show available commands
.clear
Clear the screen
.exit
Exit the shell
Global Options
Silent Mode
Use --silent to suppress spinners, progress messages, and informational output. Only results and errors are shown:
Silent mode is useful for scripts where you only want the final output.
JSON Output
Use -o json or --output json to get structured JSON output. JSON mode automatically enables silent mode:
JSON output is ideal for:
Scripting and automation
Parsing output programmatically
Integration with other tools (e.g.,
jq):
Configuration
Environment Variables
Config Directory
Configuration is stored in ~/.vultisig/:
Security Best Practices
Never store passwords in plain text for production use
Always verify transaction details before confirming
Use testnets for development and testing
Keep vault backup files in a secure location
Never commit .vult files or .env with passwords to git
Supported Chains
40+ blockchains including:
EVM: Ethereum, Polygon, Arbitrum, Optimism, BSC, Base, Avalanche
UTXO: Bitcoin, Litecoin, Dogecoin, Dash, Zcash
Cosmos: Cosmos Hub, THORChain, Maya, Dydx, Kujira
Others: Solana, Sui, Polkadot, Ripple
Exit Codes
0
Success
1
General error
2
Invalid usage
3
Configuration error
4
Authentication error
5
Network error
6
Vault error
7
Transaction error
Troubleshooting
"No active vault" error
Create or import a vault first:
Network errors
Check your internet connection
Run
vultisig serverto check connectivityTry again in a few moments
Update issues
Documentation
Support
License
MIT
Last updated
Was this helpful?
