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 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: 3)--threshold <n>- Signing threshold (default: 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)--use-phantom-solana-path- Use Phantom wallet derivation path for Solana
When --mnemonic is not provided, you'll be prompted to enter it securely (masked input).
Note: Phantom wallet uses a non-standard derivation path for Solana. If your seedphrase was originally created in Phantom and you're importing Solana funds, use
--use-phantom-solana-path. When using--discover-chains, this is auto-detected.
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:
AI Agent Integration
The CLI has first-class support for AI agents — both coding agents (Claude Code, Cursor, Opencode) that drive it through shell commands, and agent-to-agent orchestration through a natural-language interface.
Non-interactive by default
When the CLI runs in a non-TTY environment (pipes, scripts, agents), it auto-detects this and skips interactive prompts that would hang an agent. Vault creation falls back to two-step mode automatically:
Use --ci for full automation mode (equivalent to --output json --non-interactive --quiet). Provide the password through the --password flag or the VAULT_PASSWORD environment variable so no command blocks on input.
Agent ask (one-shot)
Send a single natural-language message and get a structured response. This mode is designed for AI-to-AI communication and routes through the Vultisig agent backend.
JSON output:
On failure, stdout is a single JSON object with a human-readable error and a stable code:
Options:
--session <id>— continue an existing conversation--backend-url <url>— agent backend URL (default:https://abe.vultisig.com)--password <password>— vault password for signing--json— output structured JSON--verbose— show tool calls and debug info on stderr
Agent chat and pipe mode
For an interactive chat TUI, or NDJSON agent-to-agent piping:
Error codes
Orchestrators should branch on code, not on the error message (which may change between releases). Codes are stable across agent ask --json, --via-agent, and the executor:
BACKEND_UNREACHABLE
Agent health check failed or backend not responding
AUTH_FAILED
Auth/token failure, HTTP 401/403, or wrong vault password
VAULT_LOCKED
Encrypted vault needs unlock
PASSWORD_REQUIRED
Password not supplied when required
CONFIRMATION_REQUIRED
User confirmation needed
ACTION_NOT_IMPLEMENTED
Local executor does not implement this action
INVALID_INPUT
Bad parameters, unknown chain, malformed input
NETWORK_ERROR
RPC/fetch connectivity failure
TIMEOUT
Deadline exceeded
TRANSACTION_FAILED
Build/broadcast/gas error
SIGNING_FAILED
MPC/signing failed
SESSION_NOT_INITIALIZED
Internal session state error
UNKNOWN_ERROR
Unclassified failure
Commands
Vault Management
create fast
Create a new fast vault (server-assisted 2-of-2)
create secure
Create a secure vault (multi-device MPC)
import <file>
Import vault from .vult file
delete [vault]
Delete a vault from local storage
create-from-seedphrase fast
Import seedphrase as FastVault (2-of-2)
create-from-seedphrase secure
Import seedphrase as SecureVault (N-of-M)
join secure
Join an existing SecureVault creation session
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 fast options:
--name <name>- Vault name (required)--password <password>- Vault password (required)--email <email>- Email for verification (required)
Create secure options:
--name <name>- Vault name (required)--password <password>- Vault password (optional)--shares <n>- Number of devices (default: 3)--threshold <n>- Signing threshold (default: 2)
Delete options:
[vault]- Vault name or ID to delete (defaults to active vault)-y, --yes- Skip confirmation prompt
Join secure options:
--qr <payload>- QR code payload from initiator (vultisig://...)--qr-file <path>- Read QR payload from file--mnemonic <words>- Seedphrase (required for seedphrase-based sessions)--password <password>- Vault password (optional)--devices <n>- Total devices in session (default: 2)
Create-from-seedphrase fast options:
--name <name>- Vault name (required)--email <email>- Email for verification (required)--password <password>- Vault password (required)--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)--use-phantom-solana-path- Use Phantom wallet derivation path for Solana
Create-from-seedphrase secure options:
--name <name>- Vault name (required)--shares <n>- Number of devices (default: 3)--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)--use-phantom-solana-path- Use Phantom wallet derivation path for Solana
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
Swap quotes and previews show your VULT discount tier when affiliate fees are applied. See vultisig discount for tier details.
Advanced Operations
sign
Sign pre-hashed bytes for custom transactions
broadcast
Broadcast a pre-signed raw transaction
tx-status <chain> <txHash>
Check transaction confirmation status
Transaction Status
Check whether a transaction has confirmed on-chain. By default, polls every 5 seconds until the transaction reaches a final state (success or error):
Output:
JSON output:
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
discount
Show your VULT discount tier for swap fees
address-book
Manage saved addresses
Discount Tiers
View your VULT token holdings discount tier for reduced swap fees:
Output:
Tier levels:
None
0
50 bps
-
Bronze
1,500
45 bps
5 bps
Silver
3,000
40 bps
10 bps
Gold
7,500
30 bps
20 bps
Platinum
15,000
25 bps
25 bps
Diamond
100,000
15 bps
35 bps
Ultimate
1,000,000
0 bps
50 bps
Thorguard NFT holders receive a free tier upgrade (up to gold tier).
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
vaults
List all vaults
create
Create a new vault
import <file>
Import vault from file
delete [name]
Delete a vault
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?
