/block-tracker

Blockchain wallet tracker

Primary LanguagePythonMIT LicenseMIT

Block Tracker

Track your wallet's transactions and the portfolio's value over time

GitHub GitHub release (latest by date) CI Coverage GitHub Repo stars Roadmap 2023

Table of contents

Introduction

This is an Open Source project with the goal to track wallet's transactions and the portfolio values over time.

Block Tracker uses Django, Celery and Postgresql.

Supported protocols

Initially it supports only Bitcoin with P2PKH/P2WPKH addresses. The project aims to support multiple assets in multiple protocols.

Requirements

To run this app you must have installed:

  • docker
  • docker-compose

Development

Before commiting new changes, make sure you have pre-commit installed:

pre-commit install

Running application

make start-local

For the first time, you can use make build to download and build the containers.

Stopping application

make stop

Local bash

make local-bash

Logs

make logs

Tests

make test # shortcut to e2e and unit tests
make unit
make e2e
make integration

Emails

We use mailhog to display the emails sent by SMTP on development server.

The emails sent to SMTP server on localhost:1025 gets available on localhost:8025.

Workers

Blockbook websocket

python manage.py wss_blockbook <ProtocolType attribute>
python manage.py wss_blockbook BITCOIN
python manage.py wss_blockbook BITCOIN_TESTNET

Celery workers

python -m celery -A app worker
python -m celery -A app beat

Exchange rates

We use Coingecko API to fetch exchange rates. We try to get a daily rate for the max period as possible and a 5 minutes rate using the celery beat & worker.

Screenshots

Dashboard

Dashboard with KPIs, Portfolio Overview, Asset Dominance and Last Transactions

Dashboard

Sent emails

Email sent for an user with a new transaction on his wallet

Sent emails

Contact and Support

Got interested and want to support our project? Reach me out by email on rodrigreis@gmail.com