Skip to main content

fluxwallet

Python wallet library and CLI for the Flux blockchain with SSP 2-of-2 multisig co-signing support.

Features

  • HD wallets — BIP32/BIP44 key derivation with BIP39 mnemonic support
  • Multisig — 2-of-2 (SSP) and m-of-n P2SH multisig wallets
  • SSP integration — pair with SSP Key mobile app for 2FA transaction co-signing via relay
  • CLI — full wallet management via fluxwallet command (typer + rich)
  • MCP server — expose wallet operations to Claude Code and other MCP clients
  • Encrypted storage — AES-256-GCM with Argon2id key derivation, OS keychain integration
  • Fully async — async/await throughout, SQLAlchemy 2.0 with aiosqlite

Installation

pip install fluxwallet

Or with uv:

uv add fluxwallet

Requires Python 3.13+.

Quick Start

CLI

# Generate a mnemonic
fluxwallet mnemonic

# Create a new wallet
fluxwallet wallet create my_wallet

# Restore a wallet from mnemonic (prompted)
fluxwallet wallet restore my_wallet

# Check balance
fluxwallet wallet balance my_wallet

# Get receive address
fluxwallet key address my_wallet

# Send a transaction
fluxwallet tx send my_wallet t1abc... 1.5

# List all wallets
fluxwallet wallet list

Library

import asyncio
from fluxwallet.db import Db
from fluxwallet.wallet import Wallet

async def main():
    await Db.start()
    w = await Wallet.create("my_wallet", network="flux")
    key = await w.new_key()
    print(key.address)

asyncio.run(main())

SSP Multisig

Create a 2-of-2 multisig wallet paired with the SSP Key mobile app:

# Create and pair a new SSP wallet
fluxwallet ssp pair --new my_ssp

# Send (auto-detects SSP, waits for phone approval)
fluxwallet tx send my_ssp t1abc... 0.5

# Re-pair an existing wallet
fluxwallet ssp pair my_ssp

Database Encryption

Private keys are encrypted at rest with AES-256-GCM. The encryption key is derived from your password via Argon2id and stored in your OS keychain.

# Encrypt the database (first time)
fluxwallet db setup

# Check encryption status
fluxwallet db info

# Change password
fluxwallet db change-password

# Export key for headless servers
fluxwallet db setup --export-key /path/to/keyfile

# Unlock on a headless server
fluxwallet --key-file /path/to/keyfile wallet list

# Or pipe the key via stdin
cat /path/to/keyfile | fluxwallet wallet list

Auto-unlock priority: stdin > key file > OS keychain.

Platform support

Platform Keychain backend Notes
macOS Keychain Access Works out of the box
Windows Credential Locker Works out of the box
Linux (GNOME) GNOME Keyring Requires desktop session
Linux (KDE) KWallet Requires desktop session
Headless Key file or stdin --key-file or pipe

CLI Reference

fluxwallet
  wallet list|create|restore|info|rename|delete|balance|scan
  key    import|address|list|new
  tx     list|utxos|update|send|sweep
  ssp    pair|info
  db     info|setup|unlock|change-password
  mnemonic

Global options:

  • --key-file PATH — path to encryption key file

Examples

uv run python examples/wallet_demo.py       # Wallet creation and key generation
uv run python examples/mnemonic_demo.py      # BIP39 mnemonic generation
uv run python examples/keys_demo.py          # HD key derivation and multisig addresses
uv run python examples/multisig_demo.py      # 2-of-2 and 2-of-3 multisig wallets
uv run python examples/transaction_demo.py   # Transaction creation and signing
uv run python examples/encryption_demo.py    # Database encryption round-trip
uv run python examples/ssp_pair.py           # SSP Key pairing
uv run python examples/ssp_send.py           # SSP co-signed transaction
uv run python examples/wallet_balance.py     # Check balance and UTXOs

Development

git clone https://github.com/MorningLightMountain713/fluxwallet.git
cd fluxwallet
uv sync
uv run pytest tests/

License

MIT

Metadata

Release files for fluxwallet 2.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fluxwallet 2.3.1
File Size Uploaded Provenance Actions
fluxwallet-2.3.1.tar.gz 280.8 kB Without provenance Details for fluxwallet-2.3.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fluxwallet 2.3.1
File Interpreter ABI Platform Actions
fluxwallet-2.3.1-py3-none-any.whl Python 3 none any Details for fluxwallet-2.3.1-py3-none-any.whl

Total release size: 590.4 kB

Release files / fluxwallet-2.3.1.tar.gz

Download URL fluxwallet-2.3.1.tar.gz
Size 280.8 kB
Tags Source
SHA-256 checksum
How to use checksums
76bc9cf8ad2cde70f559173618577d2697f0c2e35de06a243938fc0e304d9db9
BLAKE2b-256 checksum
How to use checksums
dd8a1f59bd90f193be4b9a78d6f73e316baa511b4d3be30f10f11d01af920f0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / fluxwallet-2.3.1-py3-none-any.whl

Download URL fluxwallet-2.3.1-py3-none-any.whl
Size 309.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7555593eca6a1bf325d3c3bebb5ce17eddec9dd5a832b5f6b6184e3086c8159
BLAKE2b-256 checksum
How to use checksums
0acce007bc465856998c60ab96064366c5f208a97a6a65a582e50eb78eeb11ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for fluxwallet 2.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.3.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page