Cryptocurrency market trades aggregator.
Currently supporting BitMEX, Bitfinex, Binance & Binance Futures, Coinbase, Bitstamp, Deribit, Huobi, Okex, Hitbtc, Poloniex, Bybit and FTX (see src/exchanges/ for detail)
This tool shows markets orders LIVE on the crypto market(s) of your choice.
- Show live trades from exchanges on a specific pair
- Filter noise by aggregating trades with the same timestamp
- Calculate rolling sums over defined periods
- Chart whatever is received from api (so only trades data for now)
- Dynamic audio based on trade volume and side
Checkout CHANGELOG.md for details about the recent updates.
The app is written in Vue.js, use the javascript WebSocket interface to connect to the exchanges API and listen to the trades events.
Within a worker, the raw trades are dispatched from each Exchange to the Aggregator, whose purpose is to group the trades by time, market and side of trade. The worker regularly send the result of the aggregation to the UI along with some statistics about the market activity (sums of volume, counts by sides and liquidations).
- Clone the repo
git clone https://github.com/Tucsky/aggr
- Install dependencies
npm install
- Run it
Development mode
npm run serve
This will automatically open a browser window at localhost:8080
Otherwise can build the application (production)
npm run build
and access the dist/index.html directly in the browser later without having to run a command
SignificantTrades is now using Vue Cli which allows you to configure the client using .env file.
Create a .env.local
or .env.development
or .env.production
file inside /
folder.
key | description | default value |
---|---|---|
PROXY_URL |
Redirect HTTP requests from app through a proxy If the PROXY_URL is set to https://cors.aggr.trade/, the app will retrieve Binance's products through this url : https://cors.aggr.trade/https://api.binance.com/api/v3/exchangeInfo |
http://localhost:8080/ |
API_URL |
Server instance url. As of now only used to fetch historical data for the chart component. Example: http://localhost:3000/historical/{from}/{to}/{timeframe}/{markets} |
null |
API_SUPPORTED_PAIRS |
Markets supported by the server instance provided in API_URL Write the full market names (EXCHANGE:pair) like so : COINBASE:BTC-USD,BINANCE:btcusdt |
null |
You can use this project without historical data just by opening the app in your browser, as getting trades from exchanges is made directly in the browser using websocket api.
However, in order to show historical data you will need to setup your own server that will collect and distribute data on demand.
The current code for the server part now located in a separated repository aggr-server.
Let's say you have a server instance running on port 3000, start the client with an environment variable API_URL=http://localhost:3000/{from}/{to}/{timeframe}/{markets} npm run serve
BTC 3PK1bBK8sG3zAjPBPD7g3PL14Ndux3zWEz
XMR 48NJj3RJDo33zMLaudQDdM8G6MfPrQbpeZU2YnRN2Ep6hbKyYRrS2ZSdiAKpkUXBcjD2pKiPqXtQmSZjZM7fC6YT6CMmoX6
COINBASE
https://commerce.coinbase.com/checkout/c58bd003-5e47-4cfb-ae25-5292f0a0e1e8