/python-idex

IDEX Exchange REST API python implementation

Primary LanguagePythonMIT LicenseMIT

Welcome to python-idex v0.3.0

This is an unofficial Python wrapper for the IDEX exchanges REST API v1. I am in no way affiliated with IDEX, use at your own risk.

PyPi
https://pypi.python.org/pypi/python-idex
Source code
https://github.com/sammchardy/python-idex
Documentation
https://python-idex.readthedocs.io/en/latest/

Features

  • Implementation of all REST endpoints except for deposit.
  • Helper functions for your wallet address
  • Response exception handling
  • Websockets for Python 3.5+

Quick Start

Register an account with IDEX.

pip install python-idex

Synchronous Examples

from idex.client import Client
client = Client(address, private_key)

# get currencies
currencies = client.get_currencies()

# get market depth
depth = client.get_order_book('ETH_SAN')

# get your balances
balances = client.get_my_balances()

# get your open orders
orders = client.get_my_open_orders('ETH_SAN')

# create a limit order
order = client.create_order('SAN', 'ETH', '0.001', '10000')

Async Examples for Python 3.5+

from idex.asyncio import AsyncClient, IdexSocketManager

loop = None

async def main():
    global loop

    # Initialise the client
    client = await AsyncClient()

    # get currencies
    currencies = await client.get_currencies()

    # get market depth
    depth = await client.get_order_book('ETH_SAN')

    # get your balances
    balances = await client.get_my_balances()

    # get your open orders
    orders = await client.get_my_open_orders('ETH_SAN')

    # create a limit order
    order = await client.create_order('SAN', 'ETH', '0.001', '10000')

    # Initialise the socket manager
    ism = await IdexSocketManager.create(loop)

    # Coroutine to receive messages
    async def handle_evt(msg, topic):
        print("topic:{} type:{}".format(topic, msg['type']))

    # Subscribe to updates for the ETH_NPXS market
    await ism.subscribe('ETH_NPXS', handle_evt)

    # keep the script running so we can retrieve websocket events
    while True:
        await asyncio.sleep(20, loop=loop)


if __name__ == "__main__":
    # get a loop and switch from synchronous to async
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

For more check out the documentation.

TODO

  • Deposit endpoints

Donate

If this library helped you out feel free to donate.

  • ETH: 0xD7a7fDdCfA687073d7cC93E9E51829a727f9fE70
  • NEO: AVJB4ZgN7VgSUtArCt94y7ZYT6d5NDfpBo
  • LTC: LPC5vw9ajR1YndE1hYVeo3kJ9LdHjcRCUZ
  • BTC: 1Dknp6L6oRZrHDECRedihPzx2sSfmvEBys

Other Exchanges

If you use Binance check out my python-binance library.

If you use Quoinex or Qryptos check out my python-quoine library.

If you use Allcoin check out my python-allucoin library.

If you use Exx check out my python-exx library.

If you use Kucoin check out my python-kucoin library.

If you use BigONE check out my python-bigone library.

https://analytics-pixel.appspot.com/UA-111417213-1/github/python-idex?pixel