Service for monitoring Ethereum addresses: real-time transaction indexing, balance checks, and alerts on incoming funds.
Language Go 1.26 Primary development language
Module crypto-indexer (renamed from book-library)
Database PostgreSQL 16 Storage for addresses, transactions, alerts
Ethereum Address Monitoring — add addresses to tracking with automatic indexing of all incoming/outgoing transactions
Real-time Block Indexing — polling indexer scans new Ethereum blocks and stores tracked address transactions in the DB
Balance Checks via RPC — fetch current native balance (ETH) and ERC-20 tokens directly through Ethereum RPC
Webhook-based Alert System — configurable alerts on token arrivals with minimum amount check and POST request dispatch to a webhook URL
WorkerPool for Async Processing — worker pool processes indexer events and dispatches webhooks without blocking the main loop
JWT Authentication — email registration + bcrypt, JWT (HS256, 24h) for API protection
Type-safe SQL Queries — Go code generation from annotated SQL via sqlc
Graceful Shutdown — clean shutdown of HTTP server, WorkerPool, and indexer on SIGINT/SIGTERM
Swagger Documentation — auto-generated OpenAPI spec and Scalar UI for interactive testing