Skip to main content

Blockchain.com Exchange API

Project description

Blockchain Exchange Python API

forthebadge

Table of Contents

Generated with DocToc

Last Update: 2020-05-11

Features

All API is available through a websocket client:

import logging
from blockchain_exchange.client import BlockchainWebsocketClient

logging.basicConfig(level=logging.INFO)

client = BlockchainWebsocketClient()

See our documentation for API reference and gallery of examples for more info.

Quick start

  • Get source code
git clone git@github.com:ilya-bc/blockchain-exchange-api.git
cd blockchain-exchange-api
  • Install package. Since there are hundred ways to do that, a standardised way for this project is with Makefile. It will create virtual environment with pipenv and will use python 3.7 as its interpreter
# For general use
make install

# For development
make install-dev

Prerequisites for trading

Actual trading and accessing balance of your account requires authentication with an API key. In order to get one:

  1. You should have an account at blockchain.com | exchange

  2. Create API key here and store information. Note, you can have setup key with permissions view and view & trade.

  3. You should receive an email asking you to activate API key.

  4. Setup the following environment variable

export BLOCKCHAIN_API_SECRET="__ENTER_YOUR_API_SECRET_HERE__"

:fire: Tip: If you use pipenv then you can just put it into .env file (ignored by git) at the root of the cloned directory

Demos

Listen to all public channels

asciicast listen to public channels

:pencil2: Note: There are time.sleep(2) between calling different methods, in order to be able to see intermediate results.

Create market and limit orders

asciicast create market and limit orders

:pencil2: Note: Both orders got rejected (expected behaviour) because of invalid quantity and price being to big.

TODO

  • Tests
  • Something weird is going on with unsubscribing from channels in bulk for the following ones:
[
{"channel": "l2", "symbol": "BTC-USD"},
{"channel": "ticker", "symbol": "BTC-USD"},
{"channel": "trades", "symbol": "BTC-USD"}
]
[
{"seqnum":1,"event":"subscribed","channel":"prices","symbol":"BTC-USD","granularity":60},
{"seqnum":2,"event":"subscribed","channel":"prices","symbol":"ETH-USD","granularity":60},
{"seqnum":3,"event":"subscribed","channel":"prices","symbol":"BTC-USD","granularity":300},
{"seqnum":4,"event":"subscribed","channel":"prices","symbol":"ETH-USD","granularity":300}
]
[
{"seqnum":0,"event":"subscribed","channel":"ticker","symbol":"BTC-USD"},
{"seqnum":1,"event":"snapshot","channel":"ticker","symbol":"BTC-USD","price_24h":8744.9,"volume_24h":155.77132628,"last_trade_price":8881.0},
{"seqnum":2,"event":"updated","channel":"ticker","symbol":"BTC-USD","price_24h":8754.8,"volume_24h":155.70446581}
]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bcx-0.1.1.tar.gz (3.0 MB view hashes)

Uploaded Source

Built Distribution

bcx-0.1.1-py3-none-any.whl (13.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page