# Vultisig

> MPC wallet for AI agents. Secure multi-chain crypto operations with threshold signing across 36+ blockchains. Routes to CLI (shell commands) or SDK (TypeScript) based on your use case.

- Skill: `vultisig/vultisig` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add vultisig/vultisig`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vultisig/vultisig/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: vultisig (https://skillmd.com/u/vultisig)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/vultisig/vultisig

---


# Vultisig

Vultisig is an MPC (Multi-Party Computation) wallet that enables secure crypto operations across 36+ blockchains. Unlike traditional wallets, private keys are split across multiple parties using threshold cryptography - there's no single key to steal.

## Why MPC Wallets for AI Agents

Traditional wallets store a single private key or seed phrase. If compromised, all funds are lost. MPC eliminates this risk:

- **No single point of failure**: Keys are split across parties using cryptographic secret sharing
- **Threshold security**: 2-of-2 or N-of-M signing - compromising one party isn't enough
- **No seed phrase exposure**: No mnemonic stored in plaintext anywhere
- **Automation-friendly**: FastVault enables instant server-assisted signing for bots
- **Programmable trust**: Choose speed (FastVault) or maximum security (SecureVault)
- **Audit trail**: All signing requires explicit multi-party coordination

## Choose Your Interface

| Use Case | Interface | Why |
|----------|-----------|-----|
| **AI agent chat** | [CLI `agent ask`](./vultisig-cli/SKILL.md#agent-chat-ai-to-ai) | One-shot natural language crypto ops; use `--session` for multi-turn, `--password` for signing |
| Shell scripts | [CLI](./vultisig-cli/SKILL.md) | Direct commands, easy scripting |
| Automation bots | [CLI](./vultisig-cli/SKILL.md) | Simple, pipes to jq, env vars |
| One-off operations | [CLI](./vultisig-cli/SKILL.md) | Quick, no code needed |
| TypeScript/Node apps | [SDK](./vultisig-sdk/SKILL.md) | Full API, type safety |
| Custom transaction logic | [SDK](./vultisig-sdk/SKILL.md) | signBytes, broadcastRawTx |
| Browser/React apps | [SDK](./vultisig-sdk/SKILL.md) | Event system, async/await |
| Complex workflows | [SDK](./vultisig-sdk/SKILL.md) | Programmatic control |

### Quick Decision

**Use Agent Ask if**: You're an AI coding agent (Claude Code, Opencode, Cursor) that needs to perform crypto operations via natural language. Each invocation is one-shot; pass `--session <id>` to continue a prior conversation. Signing operations require `--password`.

**Use CLI if**: You're writing shell scripts, need quick commands, or want JSON output piped to other tools.

**Use SDK if**: You're building a TypeScript application, need programmatic control, or want event-driven updates.

## Vault Types

| Type | Threshold | Signing | Best For |
|------|-----------|---------|----------|
| **FastVault** | 2-of-2 (device + server) | Instant (~1-2s) | AI agents, bots, automation |
| **SecureVault** | N-of-M (configurable) | Multi-device coordination | Teams, high-value assets |

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

## Supported Chains (36+)

### EVM Chains (13)
Ethereum, Polygon, BSC, Arbitrum, Optimism, Base, Avalanche, Blast, Cronos, zkSync, Hyperliquid, Mantle, Sei

### UTXO Chains (6)
Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Dash, Zcash

### Cosmos Chains (10)
Cosmos, THORChain, MayaChain, Osmosis, dYdX, Kujira, Terra, Terra Classic, Noble, Akash

### Other Chains (7)
Solana, Sui, Polkadot, TON, Ripple, Tron, Cardano

## Core Operations

Both CLI and SDK support:
- **Create vaults**: FastVault (instant) or SecureVault (multi-device)
- **Import/Export**: Backup and restore vaults, import from seedphrase (BIP39)
- **Addresses**: Derive addresses for any chain
- **Balances**: Check native and token balances
- **Send**: Transfer crypto to any address
- **Swap**: Cross-chain swaps via THORChain, same-chain via 1inch and LiFi
- **Sign**: Sign transactions or arbitrary bytes

SDK-only capabilities:
- **Compound Wrappers**: `send()`, `swap()`, `signMessage()`, `portfolio()`, `allBalances()` — single-call operations with human-readable amounts and auto token resolution (`send`/`swap` support dryRun)
- **Token Discovery**: Look up known tokens, discover tokens at addresses
- **Price Feeds**: Fetch token prices via CoinGecko
- **Security Scanning**: Site scanning, transaction validation, transaction simulation
- **Fiat On-Ramp**: Buy crypto via Banxa integration
- **Cosmos Signing**: SignAmino and SignDirect for Cosmos dApps
- **Push Notifications**: Register devices, notify vault members for signing, handle incoming push events
- **Event System**: Reactive updates for balances, signing, and more

## Get Started

### CLI Quick Start
```bash
npm install -g @vultisig/cli

# Create vault (non-interactive, --two-step skips OTP prompt)
vultisig create fast --name "bot-wallet" --email "bot@example.com" --password "SecurePass123!" --two-step -o json
# Returns: {"vaultId": "...", "status": "pending_verification", "verifyCommand": "..."}

# Verify with email OTP
vultisig verify <vaultId> --code 123456 -o json

# Check balances
vultisig balance -o json
```
→ [Full CLI Documentation](./vultisig-cli/SKILL.md)

### SDK Quick Start
```typescript
import { Vultisig, Chain } from '@vultisig/sdk'

const sdk = new Vultisig()
await sdk.initialize()

// Step 1: Create vault (returns vaultId, sends OTP to email)
const vaultId = await sdk.createFastVault({
  name: 'bot-wallet',
  email: 'bot@example.com',
  password: 'SecurePass123!'
})

// Step 2: Verify with email OTP code
const vault = await sdk.verifyVault(vaultId, '123456')

// Step 3: Use the vault
const balance = await vault.balance(Chain.Ethereum)

// Send, swap, sign — single calls with human-readable amounts
await vault.send({ chain: Chain.Ethereum, to: '0x...', amount: '0.1' })
await vault.swap({ fromChain: Chain.Ethereum, fromSymbol: 'ETH', toChain: Chain.Bitcoin, toSymbol: 'BTC', amount: '0.5' })
const { signature } = await vault.signMessage('Login to MyDapp')
const portfolio = await vault.portfolio('usd')
```
→ [Full SDK Documentation](./vultisig-sdk/SKILL.md)

## Resources

- [GitHub Repository](https://github.com/vultisig/vultisig-sdk)
- [CLI Documentation](./vultisig-cli/SKILL.md)
- [SDK Documentation](./vultisig-sdk/SKILL.md)

