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 in docker container.

make run cmd='python examples/bitfinex/bitfinex_basic_example.py'

To run the private.py example, you must create and fill in the .env file, look at .env.example

make run cmd='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.

Source Distribution

ssc2ce-0.14.4.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

ssc2ce-0.14.4-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

Details for the file ssc2ce-0.14.4.tar.gz.

File metadata

  • Download URL: ssc2ce-0.14.4.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for ssc2ce-0.14.4.tar.gz
Algorithm Hash digest
SHA256 2bf3a56cd8af9918a7fbacf50830784d5bab95242b0b658d722f927b93860a8e
MD5 23cdfd6a1b2cb2a9b39fd774560ed436
BLAKE2b-256 cfb290ef282cc07763c6cc3b95942c5b87da43e3c78b69def2e30b7b1e2e2e4a

See more details on using hashes here.

File details

Details for the file ssc2ce-0.14.4-py3-none-any.whl.

File metadata

  • Download URL: ssc2ce-0.14.4-py3-none-any.whl
  • Upload date:
  • Size: 38.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for ssc2ce-0.14.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ace719f8175d3bb75e7f308f77cbce9b613268bcb72c676a294187a6d4987277
MD5 fbb04940b5633e56d8863a6bde0e0881
BLAKE2b-256 e66db68e4c4f0824acf7e363c0a18111b5fff78fab426cdb8a0ff35e39681a95

See more details on using hashes here.

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