A command-line interface wallet for verifiable credentials, designed to work with go-wallet-backend.
go-siros-cli (also known as wallet-cli) provides command-line access to wallet functionality:
- WebAuthn authentication using FIDO2 hardware keys (YubiKey, SoloKey, etc.)
- Credential management - list, view, and export verifiable credentials
- OpenID4VCI - receive credentials from issuers
- OpenID4VP - present credentials to verifiers
- Multi-profile support - manage multiple wallet identities
This CLI requires a FIDO2-compatible hardware security key for authentication:
- YubiKey 5 series (recommended - supports PRF extension for key derivation)
- SoloKey
- Feitian keys
- Other FIDO2/WebAuthn compatible authenticators
The PRF (Pseudo-Random Function) extension is used to derive encryption keys for the wallet keystore. Keys without PRF support can still authenticate but won't be able to unlock encrypted wallet data.
The native FIDO2 support requires the libfido2 library:
Ubuntu/Debian:
sudo apt-get install libfido2-devmacOS:
brew install libfido2Fedora:
sudo dnf install libfido2-devel# Check if your device is compatible
wallet-cli device check
# List connected FIDO2 devices
wallet-cli device list# From source (requires libfido2-dev)
git clone https://github.com/sirosfoundation/go-siros-cli
cd go-siros-cli
make build
# Install to PATH
make install# Register a new wallet
wallet-cli auth register --display-name "My Wallet"
# Login
wallet-cli auth login
# List credentials
wallet-cli credentials list
# Receive a credential (from QR code or URL)
wallet-cli issue offer "openid-credential-offer://..."
# Present credentials
wallet-cli present "openid4vp://authorize?..."Configuration is stored in ~/.wallet-cli/:
# Show current configuration
wallet-cli config show
# Set backend URL
wallet-cli config set backend_url https://wallet.example.comManage multiple wallet identities:
# List profiles
wallet-cli profile list
# Create a new profile
wallet-cli profile create work --backend https://corp.example.com
# Switch profiles
wallet-cli profile use work
# Use specific profile for one command
wallet-cli --profile work credentials list# Run tests
make test
# Run with debug logging
wallet-cli --debug auth login
# Build for all platforms
make build-allSee docs/CLI_WALLET_DESIGN.md for detailed design documentation.
Apache 2.0 - See LICENSE