sat.watch is a Go application that continuously monitors the Bitcoin blockchain for activity (funds sent or received) on user-specified addresses and will send a notification if a transaction is detected.
This is the open-source, self-hosted version of sat.watch. If you prefer a hosted solution with additional features, a commercial version is available at https://sat.watch.
This project is licensed under the MIT License - see the LICENSE file for details.
If you discover a security vulnerability within sat.watch, please send an email to the address listed at https://sat.watch/contact. You can find my PGP key there as well for secure communication. All security vulnerabilities will be promptly addressed.
- Bitcoin Core
- Electrum server, such as electrs or Fulcrum.
- Postgres
- SMTP credentials
The recommended way to run sat.watch is using Docker, which provides a complete environment including Bitcoin Core and an Electrum server. For detailed Docker setup instructions, see the Docker README.
Alternative manual installation steps:
git clone https://github.com/jpcummins/sat.watch
cd sat.watch
go build .
go build -o create-user cmd/user/create/main.gosat.watch is configured using environment variables. You can find a minimal example in docker/.env.example. For enhanced security, it's recommended to encrypt your environment variables using dotenvx. Here's an overview of the available configuration options:
Core Settings
ENVIRONMENT: Set to "development" (default) or "production"DATABASE_URL: PostgreSQL connection stringURL: Base URL used for links in email notifications (e.g., 'http://localhost:8080' for development)
Electrum Server Settings
ELECTRUM_HOST: Hostname of your Electrum serverELECTRUM_PORT: SSL port of your Electrum server (typically 50002)
Email Settings
SMTP_HOST: SMTP server hostnameSMTP_PORT: SMTP server portSMTP_USER: SMTP usernameSMTP_PASSWORD: SMTP password
Bitcoin Core Setting
RPCAUTH: Generated auth string for Bitcoin Core RPCRPCUSER: Bitcoin Core RPC usernameRPCPASSWORD: Bitcoin Core RPC password
Security
SECRET: Used to encrypt session cookies
Docker (Recommended): The recommended way to run sat.watch is using Docker, which provides a complete environment including Bitcoin Core and an Electrum server. For detailed Docker setup instructions, see the Docker README.
Manual Installation:
Create a new user account:
./create-user -username your_username -password your_passwordStart the server:
./satwatchBrowse to http://localhost:8080
