A GUI for managing a Sova signer's Bitcoin UTXO indexer and signing service.
For more infomation about the Sova Bitcoin Indexer see the utxo-tracing repo. For more infomation on the signing service see the network-enclave code.
The Sova Signer Dashboard provides a user-friendly interface for interacting with Bitcoin UTXO indexing and transaction signing services. The indexer operations section allows watching Bitcoin addresses, deriving addresses from EVM addresses, and selecting UTXOs. The storage queries section provides access to blockchain data, UTXOs, and signed transactions. The transaction builder enables preparing and signing Bitcoin transactions.
The system architecture uses four containerized services working together. The network-indexer service indexes Bitcoin UTXOs and manages watched addresses. The network-enclave service handles BIP32 key derivation and address generation. The network-utxos service stores and retrieves UTXO data. The dashboard service provides an Nginx-served web interface with CORS-enabled API proxying.
Copy the example environment file and configure it:
cp example.env .envEdit .env and set your configuration values (API keys, BIP32 seed, etc.)
Option A: Local Bitcoin Regtest Node (for development/testing)
docker-compose --profile local-bitcoin up -dOption B: External Bitcoin RPC API (for mainnet/testnet)
docker-compose --profile external-bitcoin up -dOpen your browser to: http://localhost:8080
- Dashboard:
http://localhost:8080 - Indexer API:
http://localhost:3031 - UTXO Storage API:
http://localhost:5557 - Enclave API:
http://localhost:5555 - Bitcoin RPC (local):
http://localhost:18443
Key environment variables (see example.env for full details):
BITCOIN_NETWORK: Network type (regtest, testnet, mainnet)INDEXER_SHARED_API_KEY: API key for indexer authenticationENCLAVE_BIP32_SEED: Seed for key derivation (keep secure!)WATCHLIST_SEED: Comma-separated Bitcoin addresses to watch on startup
Configure the Indexer URL, Storage URL, and API Key in the top configuration bar before using the dashboard features.
The dashboard provides three main sections:
- Indexer Operations: Add addresses to watchlist, derive Bitcoin addresses from EVM addresses, select UTXOs
- Storage Queries: Query latest blocks, transaction IDs, spendable UTXOs, and signed transactions
- Transaction Builder: Create and sign Bitcoin transactions
