Spreadscan: crypto arbitrage screener
A service for cross-exchange crypto arbitrage. It finds coins priced differently on different exchanges and opens a trade on two exchanges at once.
- Client
- Spreadscan
- Industry
- Crypto, cross-exchange arbitrage
- Project type
- Web service

01Task
Cross-exchange arbitrage means profiting from the price difference of the same coin on different exchanges. In futures arbitrage, a trader simultaneously opens a long position on the exchange where the price is lower and a short position where it is higher. When the prices converge, both positions are closed and the spread is captured as profit. No coins are transferred between exchanges. The client needed a service that finds such discrepancies across all exchanges on its own and shows the price difference for the actual trade amount, not just the price on the screen.
02Solution
The server continuously receives futures prices from exchanges and matches the same coin across different venues. Two exchanges trading the same coin form an exchange pair. Every second, the service recalculates the pairs whose prices have changed.
The service calculates the price difference (spread) not from the top quote alone but from the orders in the exchange order book for the selected amount, minus fees. This shows the price at which a trade will actually be filled. Next to it is the funding rate: periodic payments between long and short position holders that affect the trade's outcome.
To avoid treating different coins as the same one, the service matches them by contract address. If a price on an exchange is stale or looks suspicious, the pair is flagged and no trade can be opened on it.
Each pair has a card with a price difference chart. From the card, a trade is opened on two exchanges at once: a buy on one and a sell on the other. The server closes the trade automatically at the preset take-profit or stop-loss level, places emergency stop orders on the exchanges to guard against liquidation and reconciles positions with the exchanges.
A new strategy can be tested without risk in paper trading: practice trades are calculated the same way as real ones, but without money.
What we did. We developed a cross-exchange arbitrage service: price discrepancy scanning across all exchanges, an exchange pair card with a chart, trading on two exchanges at once, paper trading and notifications.
03Design
Dark terminal for working with numbers
The interface uses a dark theme familiar from trading terminals. Numbers are set in a monospace font, so the digits line up evenly in columns.
Green and red mark buying and selling on each exchange and the sign of the price difference, while yellow marks active elements and action buttons.
Brand colors
Spread table across all exchanges
All price discrepancies found, in one table: exchanges, prices, trading volume, price difference for the trade amount and funding. Filters by exchange, spread size and volume.

Exchange pair card
A chart of the price difference between two exchanges, current prices and a panel for opening a trade on both exchanges at once.

Trades and paper trading
A history of real trades with the result of each, plus practice trades for testing a strategy without money.


Trading settings
The trade amount limit, the amount used to calculate the spread and the connected exchanges. Exchange access keys are stored encrypted.

Spread alerts
The service sends a Telegram message when the price difference for a pair reaches the set level.

09Result
The service runs on a dedicated server and tracks thousands of exchange pairs at once. A trader sees the real price difference for their trade amount, checks the pair on the chart and opens a position on two exchanges from one window. Notifications about the target price difference and data collection failures arrive in Telegram.
Exchanges, data and notifications
- Crypto exchange APIs
- WebSocket price streams
- Coin registry
- Telegram
Technologies and timeline
Node.js, ccxt, WebSocket, ClickHouse, SQLite, Docker, systemd, Caddy, TradingView Lightweight Charts, Telegram Bot API.
The next one could be yours
Need a similar project?
Tell us about your task — we will discuss it and prepare a proposal.
or call us +380 (95) 658 67-78
11Contact
Tell us
about your task
Describe your project or a problem with your website. We will contact you during business hours, clarify the details and prepare a proposal with stages, timeline and cost.
- 01We contact you
- 02We discuss the task
- 03We prepare a proposal














