Arb Finder

A Flask-based arbitrage dashboard that aggregates live BSV/USDT market data from multiple public APIs.

Posted by CM-WebDev on November 12, 2025

Project Overview

The BSV Arbitrage Finder is a live analytics web app that compares BSV/USDT prices across multiple cryptocurrency exchanges to reveal potential arbitrage spreads after factoring in trading fees, withdrawal costs, and estimated slippage. The project was built with Flask and follows a clean, modular design emphasizing professional software-engineering practices — configuration via environment variables, adapter-based API services, and a responsive dark-themed interface.

Core Technologies

  • Python 3.10 & Flask (REST integration, routing, Jinja templating)
  • Requests & dotenv (API communication and configuration)
  • Bootstrap 5 + custom CSS (responsive dark-mode UI)
  • DigitalOcean Droplet with Nginx + Gunicorn for deployment

Technical Execution & Problem Solving

Each exchange uses its own API schema, so a service adapter pattern was introduced under services/exchanges/ — every adapter exposes a unified fetch(session, timeout) method returning standardized quote data. This design isolates inconsistencies between exchanges and makes the system easy to extend.

A lightweight in-memory cache (10-second TTL) improves performance while ensuring up-to-date results. When an exchange API fails or returns invalid data, the app degrades gracefully, skipping it with a clear on-screen banner rather than halting execution.

Key Features

  • Aggregates live BSV/USDT bid-ask quotes from multiple exchanges
  • Computes gross and net arbitrage spreads with fee and slippage adjustments
  • Responsive, dark-mode dashboard with sortable results table
  • JSON API endpoint (/api/quotes) for programmatic access
  • Configurable per-exchange fee structure via .env

Demonstrated Skill Set

This project showcases expertise in REST API integration, Flask architecture, modular Python design, error handling, front-end polish, and production deployment workflow. It reflects the ability to take a simple educational concept and evolve it into a portfolio-ready, professional web application that emphasizes clarity, maintainability, and real-world usability.

Outcome

The final result is a reliable analytics tool that highlights how thoughtful engineering — from normalized data ingestion to polished presentation — can elevate a small API exercise into something production-worthy and visually refined.