Python client for Zex exchange.
Project description
🔁 zex-sdk
A Python SDK for the Zex Exchange – a decentralized exchange (DEX) designed to deliver the speed, usability, and reliability of centralized exchanges (CEXs) while preserving the security and control of a DEX.
zex-sdk provides a seamless interface to interact with Zex Exchange's API, including essential trading, balance management, and live socket streaming capabilities.
🚀 Features
- 📥 Place and cancel orders (single or batch)
- 🧾 Register user accounts
- 💰 Query account balances and user information
- 📈 Retrieve live market prices
- 🔄 Deposit and withdraw assets
- 🔔 Live execution reports via WebSocket stream
📦 Installation
Install directly from PyPI:
pip install zex-sdk
⚡ Quick Start
Here's how to get started with the async Zex client in just a few lines of code.
import asyncio
from zex.sdk import AsyncClient
async def main():
# Create a Zex client instance (testnet is True by default)
client = await AsyncClient.create(api_key="your-api-key")
# Example: get the price of ETH/USDT
price = await client.get_price("ETH-USDT")
print("Current price:", price)
asyncio.run(main())
Note: Use
AsyncClient.create(...)instead of the constructor. It handles registration and setup for you.
📘 Usage Examples
Here are some common usage examples using the AsyncClient and ZexSocketManager.
✅ Place a Batch of Orders
from zex_sdk.models import PlaceOrderRequest, OrderSide
orders = [
PlaceOrderRequest(
base_token="ETH",
quote_token="USDT",
side=OrderSide.BUY,
volume=0.5,
price=1900.0
),
PlaceOrderRequest(
base_token="BTC",
quote_token="USDT",
side=OrderSide.SELL,
volume=0.1,
price=30000.0
),
]
await client.place_batch_order(orders)
❌ Cancel a Batch of Orders
# Suppose you have stored signed orders
signed_orders = [...] # List[bytes]
await client.cancel_batch_order(signed_orders)
📈 Get Current Market Price
price = await client.get_price("ETH-USDT")
print("ETH price:", price)
🔔 Listen to Execution Reports in Real-Time
from zex_sdk.socket import ZexSocketManager
async def on_execution_report(message):
print("Execution report received:", message)
socket_manager = ZexSocketManager(client)
# Use async context manager to open and manage the socket
async with await socket_manager.execution_report_socket(on_execution_report):
await asyncio.sleep(60) # keep listening for 60 seconds
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zex_sdk-0.4.1.tar.gz.
File metadata
- Download URL: zex_sdk-0.4.1.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.25.9 CPython/3.11.13 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80c9830d96b12776e034898d7c1457069b2b0783b3bb0b5e57389657ddce6a4f
|
|
| MD5 |
81e310e8ba4e3ff4f963a214e20595b4
|
|
| BLAKE2b-256 |
c0e5f1e8adb083d2cefd22feba4d98a6948662cc775e46239c6b37686aaf3c63
|
File details
Details for the file zex_sdk-0.4.1-py3-none-any.whl.
File metadata
- Download URL: zex_sdk-0.4.1-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.25.9 CPython/3.11.13 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
104dc77a17016deda9266a23526a93d1b2f1bfe0c4a6481283969a2b1e7764b7
|
|
| MD5 |
1274c4125ee1513b7e72e1f2e45f696b
|
|
| BLAKE2b-256 |
59bdd38188185d56da41ba9998d569d73460650a4422b31c0b04c72773ba59c2
|