REST API and WebSocket asyncio wrapper with grpc powered multiplexer server for crypto exchanges
Project description
Crypto exchanges API/WSS wrapper with grpc powered server
Binance, Bitfinex, Huobi, OKX, FTX
For SPOT markets
FTX is bankruptcy now
exchanges-wrapper vs binance.py
The main difference is the development of the project for trading with many exchanges, including DeFi platforms shortly.
Next is adding a new module exchanges_wrapper/exch_srv.py
as a multiplexer layer, providing simultaneous async interaction for many accounts
and many trading pairs through one connection. It's powered by gRPC
Remote Procedure Call framework.
Warning. Coverage of overridden binance.py packages is significant but not complete.
Served methods describes into example/exch_client.py
Initial capabilities (inherited from binance.py)
- Covers general endpoints (test connectivity and get exchange information's)
- Covers market data endpoints
- Covers Account endpoints (create and manage orders)
- Covers user data stream (receive real time user updates)
- Covers web socket streams (receive real time market updates)
- Async support
- Auto reconnect after exchanges API or network failure
- Completely free and without limitations
Added Features
- Multi exchanges support
- Adaptive algorithm to ensure maximum performance and avoid exceeding the rates limits
- Passthrough logging
Extra exchanges implementation features
- Binance REST API and WSS are accepted as basic, connection of FTX and other exchanges wrapped their API to Binance compatible
- For other, some data cannot be obtained by directly calling one method, it is generated by a synthetic or calculation method
- Some exchanges have not any testing or "paper trading" features, therefore, application development and testing is possible only at real bidding. First, run applications on the Binance Spot Test Network or Bitfinex test account.
Get started
Prepare exchange account
- Create account on Binance and get 10% discount on all trading fee
- Create account on Bitfinex and get 6% rebate fee
- Create account on FTX
- Create account on HUOBI and get 10% cashback on all trading fee
- For test purpose log in at Binance Spot Test Network
- Create API Key
- After install and first run specify api_key and api_secret in
/home/ubuntu/.MartinBinance/config/exch_srv_cfg.toml
Use Docker image
docker pull ghcr.io/dogstailfarmer/exchanges-wrapper:latest
First run
The structure of the working directory will be created and the necessary files will be copied:
For Ubuntu it will be here: home/user/.MartinBinance/
docker run --rm --entrypoint /bin/sh exchanges-wrapper -c "cat ./exchanges_wrapper/__init__.py" > init.py && \
docker run --rm --entrypoint /bin/sh exchanges-wrapper -c "cat ./exchanges_wrapper/exch_srv_cfg.toml.template" > exch_srv_cfg.toml.template &&\
python3 init.py && rm init.py && rm exch_srv_cfg.toml.template
Start server
docker run -itP \
--mount type=bind,source=/home/ubuntu/.MartinBinance,target=/home/appuser/.MartinBinance \
--network=host \
--restart=always \
--name=exchanges-wrapper \
exchanges-wrapper
Install use PIP
To install the library, you can just run the following command:
pip install exchanges-wrapper
After first install run exchanges_wrapper/exch_srv.py
You can find this where pip installs packages, often it's /home/ubuntu/.local/lib/python3.10/site-packages
The structure of the working directory will be created and the necessary files will be copied:
For Ubuntu it will be here: home/user/.MartinBinance/
For upgrade to latest versions use:
pip install -U martin-binance
Start server
- Run
exchanges_wrapper/exch_srv.py
in terminal window - In
example/ms_cfg.toml
select desired exchange. Don't change exchange name. - Run
example/exch_client.py
in other terminal window
Documentations
- For binance.py use original
- Served methods and examples of their use are described at
example/exch_client.py
- For Protocol Buffers serializing structured data
see
proto/exchanges_wrapper/api.proto
Donate
BNB, BUSD, USDT (BEP20) 0x5b52c6ba862b11318616ee6cef64388618318b92
USDT (TRC20) TP1Y43dpY7rrRyTSLaSKDZmFirqvRcpopC
Powered by exchanges-wrapper
martin-binance Free trading system for crypto exchanges SPOT markets. Adaptive customizable reverse grid strategy based on martingale.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for exchanges_wrapper-1.2.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c3d6f5fe3171e3d6e803172d440f90c28b7bf6f353e4302f9882d4debf731b6 |
|
MD5 | 6e0c40d0471bb4b18b102d8859bb2ab0 |
|
BLAKE2b-256 | e9fe8a02c5f95443a59a6204117e597a61639791af506e247bfc50eafbed56e7 |