IDEX REST API python implementation
Project description
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
- Source code
- Documentation
Features
Implementation of all REST endpoints except for deposit.
Helper functions for your wallet address
Response exception handling
Websockets for Python 3.5+
Upgrading
If you’ve been using an older version of python-idex < 1.0.0 you will need to use an API Key for the REST client and websocket client. See examples below.
Quick Start
Register an account with IDEX.
pip install python-idex
Synchronous Examples
api_key = 'api:jVXLd5h1bEYcKgZbQru2k'
address = '<address_string>'
private_key = '<private_key_string>'
from idex.client import Client
client = Client(api_key, address, private_key)
# get currencies
currencies = client.get_currencies()
# get market depth
depth = client.get_order_book('ETH_SENT')
# get your balances
balances = client.get_my_balances()
# get your open orders
orders = client.get_my_open_orders('ETH_SENT')
# create a limit order
order = client.create_order('SENT', 'ETH', '0.001', '10000')
Async Examples for Python 3.5+
from idex.asyncio import AsyncClient, IdexSocketManager, SubscribeCategory
loop = None
async def main():
global loop
# Initialise the client
client = await AsyncClient(api_key, address, private_key)
# get currencies
currencies = await client.get_currencies()
# get market depth
depth = await client.get_order_book('ETH_SENT')
# get your balances
balances = await client.get_my_balances()
# get your open orders
orders = await client.get_my_open_orders('ETH_SENT')
# create a limit order
order = await client.create_order('SENT', 'ETH', '0.001', '10000')
# Coroutine to receive messages
async def handle_evt(msg):
print(f"event:{msg['event']} payload:{msg['payload']}")
# do something with this event
# Initialise the socket manager with the callback funciton
ism = await IdexSocketManager.create(loop, handle_evt, api_key)
# Subscribe to updates for the ETH_SENT, ETH_AURA and ETH_IDXM market for cancels, orders and trades
await ism.subscribe(
SubscribeCategory.markets,
['ETH_SENT', 'ETH_AURA', 'ETH_IDXM'],
['market_cancels', 'market_orders', 'market_trades']
)
# 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 Binance Chain check out my python-binance-chain library.
If you use Kucoin check out my python-kucoin 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 BigONE check out my python-bigone library.
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 python_idex-1.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9212595c2680e2646d8398ace1b2e8d9c20bff4cd377f24cfcb5033c62b89a05 |
|
MD5 | c125c3f55d2762ac5c54c0f7d221c1c5 |
|
BLAKE2b-256 | 03777cbf1f8a3c94068d3f14dc73d6aca427d12988eb2bb5f2da5e7f83733fd1 |