Agentic AQUA
Agentic AQUA is an MCP server enabling AI assistants to manage Bitcoin, Liquid Network, and Lightning wallets, send/receive funds, and perform cross-chain swaps — all with private key operations handled locally and wallets encrypted at rest.
Wallet Management
Generate new BIP39 seed phrases or import existing ones (one seed creates both Bitcoin and Liquid wallets)
Import/export watch-only wallets via CT descriptors (Liquid) or BIP84 descriptors (Bitcoin)
List and securely delete wallets
Bitcoin (On-Chain)
Check balance, generate receive addresses (bc1...), send BTC (with optional custom fee rate), and view transaction history
Liquid Network (On-Chain)
Check balances for all Liquid assets (L-BTC, USDt, etc.), generate receive addresses (lq1...), send L-BTC or any Liquid asset by asset ID, view transaction history, check transaction status, and list known assets from the asset registry
Unified Balance
View a combined balance across both Bitcoin and Liquid networks in a single call
Lightning Network
Generate Lightning invoices to receive L-BTC
Pay Lightning invoices or Lightning Addresses using L-BTC (via Boltz reverse submarine swaps, ~0.1% fee)
Check Lightning swap status
Cross-Chain Swaps (Changelly)
Get fixed-rate quotes for USDt-Liquid ↔ USDt on Ethereum, Tron, BSC, Solana, or Polygon
Execute outbound and inbound USDt-Liquid swaps and check order status
Cross-Chain Swaps (SideShift)
List supported coins/networks, get pair rate info and fixed-rate quotes
Send funds out from or receive funds into Bitcoin/Liquid wallets via SideShift
Check shift order status
Get recommendations on whether to use SideSwap vs SideShift for a given conversion
CLI Interface
All core functionality is also accessible via a command-line interface for scripting and direct operations
Provides tools for managing Bitcoin wallets, including generating addresses, checking balances, sending transactions, and importing/exporting descriptors.
Provides tools for sending and receiving payments via the Lightning Network using L-BTC, including generating invoices and paying invoices through Boltz swaps.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Agentic AQUAShow my Bitcoin and Liquid balances"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Agentic AQUA
MCP server and CLI for managing Bitcoin and Liquid Network wallets through AI assistants like Claude. One seed backs both networks (unified wallet). Agentic AQUA can also operate on the Lightning Network.
Features
Generate & Import - Create new wallets or import existing seeds
Unified Wallet - One seed (mnemonic) for Bitcoin and Liquid;
unified_balanceshows bothBitcoin (onchain) - BIP84 wallets, balance and send via
btc_*tools (BDK)Watch-Only - Import CT descriptors for balance monitoring
Send & Receive - Full transaction support (L-BTC, BTC, and Liquid assets like USDt)
Lightning - Send and receive via Lightning using L-BTC
Assets - Native support for L-BTC, USDt, and all Liquid assets
Secure - Encrypted storage, no remote servers for keys
Related MCP server: Polar MCP Server
Installation
Quickest way: just ask your AI agent directly:
Install this MCP server: https://pypi.org/project/agentic-aqua/
Python 3.13 required.
Recommended (uv tool install)
If you don't have uv installed:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"Install Agentic AQUA:
uv tool install --python 3.13 agentic-aquaThis creates a permanent agentic-aqua executable. Find its full path with:
which agentic-aqua
# Example: /Users/yourname/.local/bin/agentic-aquaConfigure Claude Desktop (~/.claude/claude_desktop_config.json) using that path:
{
"mcpServers": {
"agentic-aqua": {
"command": "/full/path/to/agentic-aqua",
"args": []
}
}
}Restart Claude Desktop and you're ready to use Bitcoin and Liquid wallets.
Updating / removing:
uv tool upgrade agentic-aquato update,uv tool uninstall agentic-aquato remove.
For Developers
Clone and install from source:
git clone https://github.com/jan3dev/agentic-aqua.git
cd agentic-aqua
uv python install 3.13
uv sync --python 3.13Configure Claude Desktop using the full path to uv (find with which uv):
{
"mcpServers": {
"agentic-aqua": {
"command": "/full/path/to/uv",
"args": ["run", "--python", "3.13", "--directory", "/absolute/path/to/agentic-aqua", "python", "-m", "aqua.server"]
}
}
}Quick Start
Once connected, you can ask Claude to:
"Create a new wallet" (creates both Bitcoin and Liquid wallets from one seed)
"Show my balance" / "What's my Bitcoin balance?"
"Generate a receive address" (Liquid or Bitcoin)
"Send 10,000 Sats to bc1..." / "Send 0.001 L-BTC to lq1..."
"Pay this Lightning invoice: lnbc..."
"Receive 50,000 Sats via Lightning"
"Delete my wallet"
Available Tools
Wallet Management
Tool | Description |
| Generate new BIP39 seed |
| Import wallet from seed (also creates Bitcoin wallet) |
| Import watch-only Liquid wallet from CT descriptor |
| Export Liquid CT descriptor for watch-only use |
| Import watch-only Bitcoin wallet from BIP84 descriptor |
| Export Bitcoin BIP84 descriptors + xpub |
| List all wallets |
| Delete a wallet and all its cached data |
⚠️ Bitcoin and Liquid descriptors cannot be derived from each other (different BIP84 paths + Liquid's SLIP-77 blinding key). To watch a unified wallet, import both descriptors separately.
Liquid (lw_*)
Tool | Description |
| Get wallet balances (all assets) |
| Generate Liquid receive address (lq1...) |
| Send L-BTC |
| Send any Liquid asset (USDt, etc.) |
| Transaction history |
| Get transaction status (txid or explorer URL) |
Bitcoin (btc_*)
Tool | Description |
| Get Bitcoin balance (sats) |
| Generate Bitcoin receive address (bc1...) |
| Bitcoin transaction history |
| Send BTC |
Unified
Tool | Description |
| Get balance for both Bitcoin and Liquid |
Lightning
Tool | Description |
| Generate a Lightning invoice to receive L-BTC (100–25,000,000 Sats) |
| Pay a Lightning invoice using L-BTC via Boltz (~0.1% fee) |
| Check status of a Lightning swap (send or receive) |
CLI
Agentic AQUA also ships with a Click-based CLI (aqua) for direct, scriptable wallet operations. It exposes the same operations as the MCP tools.
# Discover commands
aqua --help
aqua wallet --help
aqua btc --help
aqua liquid --help
aqua lightning --help
# Wallet management
aqua wallet generate-mnemonic
aqua wallet import-mnemonic --mnemonic-stdin --wallet-name default --network mainnet --password-stdin
aqua wallet list
aqua wallet delete --wallet-name old
# Watch-only descriptors (Bitcoin and Liquid are separate)
aqua btc export-descriptor --wallet-name default
aqua btc import-descriptor --wallet-name cold --descriptor "wpkh([fp/84h/0h/0h]xpub.../0/*)#cs"
aqua liquid export-descriptor --wallet-name default
aqua liquid import-descriptor --wallet-name cold --descriptor "ct(slip77(...),elwpkh(...))"
# Balances
aqua balance # unified (BTC + Liquid)
aqua btc balance --wallet-name default
aqua liquid balance --wallet-name default
# Receive addresses
aqua btc address
aqua liquid address
# Send (--wallet-name is required for on-chain sends)
aqua btc send --wallet-name default --address bc1... --amount 10000
aqua liquid send --wallet-name default --address lq1... --amount 50000
aqua liquid send-asset --wallet-name default --address lq1... --amount 1000000 --asset-id <asset_id>
# (or use --asset-ticker USDt instead of --asset-id)
# Transaction history & status
aqua btc transactions
aqua liquid transactions
aqua liquid tx-status --tx <txid|explorer_url>
# Lightning (L-BTC via Boltz / Ankara)
aqua lightning receive --amount 50000
aqua lightning send --invoice lnbc...
aqua lightning status --swap-id <id>
# Run as MCP stdio server
aqua serve # recommended
aqua-mcp # direct MCP entrypointOutput defaults to a human-readable table on the terminal and JSON when piped. Force a format with --format json or --format pretty.
Loading seeds safely
Avoid pasting seeds into the chat with your agent. Because it will persist in logs and will be sent to the AI provider, agent transcripts may persist them. The recommended workflow is to use this command that hides the text input:
aqua wallet import-mnemonic --mnemonic-stdin --wallet-name defaultx --network mainnet --password-stdinThe CLI honors these variables out of the box:
Variable | Used by |
|
|
|
|
| Any CLI option (Click |
If you would rather pipe secrets from a password manager, every secret-bearing command also accepts --mnemonic-stdin / --password-stdin:
pass show crypto/aqua-mnemonic | aqua-cli wallet import-mnemonic --mnemonic-stdinTips:
Never commit
.envorsecrets.envfiles (the project's.gitignorealready excludes them).Prefer
set -a; . file; set +aoverexport $(cat file)— the former tolerates spaces and quotes inside values.After importing a wallet, the seed is no longer needed for day-to-day operations; only
AQUA_PASSWORDis used to sign transactions.
Configuration
Default config location: ~/.aqua/config.json
Migrating from
aqua-mcp? The config dir moved from~/.aqua-mcpto~/.aqua. There is no automatic migration. To carry over your wallets, run once:mv ~/.aqua-mcp ~/.aqua
{
"network": "mainnet",
"default_wallet": "default",
"electrum_url": null,
"auto_sync": true
}Security
Seeds are encrypted at rest using a password (PBKDF2 + Fernet). Without a password, the seed is stored base64-encoded only — use a password for real funds. Note: this password is NOT a BIP39 passphrase; the derived Liquid/Bitcoin keys depend solely on the seed, so the same seed restores identical descriptors in any BIP39-compliant wallet (AQUA, Blockstream App, Jade, etc.).
For maximum security you can:
Generate wallet on an air-gapped device
Export the CT descriptor
Import as watch-only on your daily machine
All private key operations happen locally. Only blockchain sync uses Blockstream's public servers.
Development
# Install with dev dependencies
uv python install 3.13
uv sync --python 3.13 --all-extras
# Run tests
uv run --python 3.13 python -m pytest tests/
# Format code
uv run black src/
uv run ruff check src/Architecture
AI Assistant ←→ MCP Server (Python) ←→ LWK (Liquid) ──→ Electrum/Esplora
│
├──→ BDK (Bitcoin) ──→ Esplora (Blockstream)
│
└──→ Boltz / Ankara ──→ LightningCredits
Built with:
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jan3dev/agentic-aqua'
If you have feedback or need assistance with the MCP directory API, please join our Discord server