Skip to content

This repo is made to keep track locally of the transactions made by a user on his Binance account.

License

Notifications You must be signed in to change notification settings

EtWnn/BinanceWatch

Repository files navigation

Welcome to BinanceWatch v0.1.4

Note

This library is under development by EtWnn, feel free to drop your suggestions or remarks in the discussion tab of the git repo. You are also welcome to contribute by submitting PRs.

This is an unofficial tracker for binance accounts. I am in no way affiliated with Binance, use at your own risk.

Source Code:
https://github.com/EtWnn/BinanceWatch
Documentation:
https://binancewatch.readthedocs.io

Features

If you used quite intensively Binance, it can take some time to retrieve everything that happened on your account. This library is made to save locally the events of your account so that you don't need to fetch your history from the beginning every time.

It currently supports:

  • Spot Trades
  • Spot Crypto Deposits
  • Spot Crypto Withdraws
  • Spot Dividends
  • Spot Dusts
  • Universal Transfers
  • Lending Purchases
  • Lending Interests
  • Lending Redemptions
  • Cross Margin Trades
  • Cross Margin Repayment
  • Cross Margin Loans
  • Cross Margin Interests
  • Isolated Margin Trades
  • Isolated Margin Repayment
  • Isolated Margin Loans
  • Isolated Margin Interests
  • Isolated Margin Transfers *

*: see Known Issues section below.

Quick Tour

Generate an API Key in your binance account. Only read permissions are needed.

BinanceWatch is available on PYPI, install with pip:

pip install BinanceWatch

If you prefer to install the latest developments use:

pip install git+https://github.com/EtWnn/BinanceWatch.git@develop

Use your Binance api keys to initiate the manager:

from BinanceWatch.BinanceManager import BinanceManager

api_key = "<API_KEY>"
api_secret = "<API_SECRET>"

bm = BinanceManager(api_key, api_secret)

# fetch the latest spot trades from Binance
bm.update_all_spot_trades()
Out -> fetching BIFIBUSD: 100%|██████████████████████| 1349/1349 [06:24<00:00,  3.51it/s]
from datetime import datetime
from BinanceWatch.utils.time_utils import datetime_to_millistamp


start_time = datetime_to_millistamp(datetime(2018,1,1))

# get the locally saved spot trades made after 2018/01/01
spot_trades = bm.db.get_trades('spot', start_time=start_time)

You can also call update functions at an account-type level, and it will call every update methods related to this account-type:

bm.update_spot()  # (trades, transfers, deposits ...)

bm.update_cross_margin()  # (trades, loans, repays, interests...)

bm.update_lending()  # (purchases, interests, redemptions..)

Donation

If this library has helped you in any way, feel free to donate:

  • BTC: 14ou4fMYoMVYbWEKnhADPJUNVytWQWx9HG
  • ETH: 0xfb0ebcf8224ce561bfb06a56c3b9a43e1a4d1be2
  • LTC: LfHgc969RFUjnmyLn41SRDvmT146jUg9tE
  • EGLD: erd1qk98xm2hgztvmq6s4jwtk06g6laattewp6vh20z393drzy5zzfrq0gaefh

Known Issues:

Some endpoints are not yet provided by Binance, so they can't be implemented in this library:

  • Fiat withdraws and deposits
  • Locked stacking history
  • Direct purchases with debit card
  • Some isolated margin transfers are not picked up by the API, the reason is unknown at the moment (I am looking for testers)

About

This repo is made to keep track locally of the transactions made by a user on his Binance account.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages