Skip to main content

A Set of Simple Connectors for access To Cryptocurrency Exchanges

Project description

ssc2ce

A set of simple connectors for access to few cryptocurrency Exchanges via websocket based on aiohttp.

Supported Exchanges:

  • Bitfinex - only public API,
  • CEX.io,
  • Coinbase Pro
  • Deribit

This is more of a pilot project, if you have any wishes for adding exchanges or expanding functionality, please register issues.

Installation

Install ssc2ce with:

$ pip install ssc2ce

You can run some examples with

Bitfinex

Description

API description look at Websocket API v2

Basic example

import asyncio

from ssc2ce import Bitfinex

conn = Bitfinex()


def handle_subscription(data, connector: Bitfinex):
    print(data, f"received:{connector.receipt_time}")


async def subscribe():
    await conn.subscribe({
        "channel": "ticker",
        "symbol": "tBTCUSD"
    }, handler=handle_subscription)


conn.on_connect_ws = subscribe

loop = asyncio.get_event_loop()

try:
    loop.run_until_complete(conn.run_receiver())
except KeyboardInterrupt:
    print("Application closed by KeyboardInterrupt.")

Deribit

Description

API description look at Deribit API v2 websocket

Basic example

import asyncio
from ssc2ce import Deribit

conn = Deribit()


async def subscribe():
    await conn.send_public(request={
        "method": "public/subscribe",
        "params": {
            "channels": ["deribit_price_index.btc_usd"]
        }
    })


def handle_subscription(data):
    method = data.get("method")
    if method and method == "subscription":
        if data["params"]["channel"].startswith("deribit_price_index"):
            index_name = data["params"]["data"]["index_name"]
            price = data["params"]["data"]["price"]
            print(f" Deribit Price Index {index_name.upper()}: {price}")


conn.on_connect_ws = subscribe
conn.method_routes += [("subscription", handle_subscription)]

loop = asyncio.get_event_loop()


try:
    loop.run_until_complete(conn.run_receiver())
except KeyboardInterrupt:
    print("Application closed by KeyboardInterrupt.")

Run examples from a clone

If you clone repository you can run examples from the root directory.

PYTHONPATH=.:$PYTHONPATH python examples/bitfinex/bitfinex_basic_example.py

To run some examples, you may need additional modules, you can install them from the requirements.txt file.

pip install -r requirements.txt

To run the private.py example, you must either fill in the .env file, look at .env.example, or set the environment variables DERIBIT_CLIENT_ID and DERIBIT_CLIENT_SECRET.

PYTHONPATH=.:$PYTHONPATH DERIBIT_CLIENT_ID=YOU_ACCESS_KEY DERIBIT_CLIENT_SECRET=YOU_ACCESS_SECRET python examples/deribit/deribit_private.py

Project details


Download files

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

Files for ssc2ce, version 0.14.2
Filename, size File type Python version Upload date Hashes
Filename, size ssc2ce-0.14.2-py3-none-any.whl (40.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ssc2ce-0.14.2.tar.gz (23.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page