Installation ============ Requirements ------------ - **Python 3.10** or newer - A working C compiler (required by the ``coincurve`` dependency) Install from PyPI ----------------- .. code-block:: bash pip install o2-sdk Install from source ------------------- .. code-block:: bash git clone https://github.com/o2-exchange/sdks.git cd sdks pip install -e sdks/python Development install ------------------- To install with development dependencies (linting, testing, type checking): .. code-block:: bash pip install -e "sdks/python[dev]" Dependencies ------------ The SDK uses the following runtime dependencies: .. list-table:: :header-rows: 1 :widths: 30 70 * - Package - Purpose * - `coincurve `_ >=20.0.0 - secp256k1 elliptic curve cryptography (key generation, signing) * - `aiohttp `_ >=3.9.0 - Async HTTP client for REST API calls * - `websockets `_ >=12.0 - WebSocket client for real-time data streams * - `pycryptodome `_ >=3.20.0 - Keccak-256 hashing (EVM address derivation) Verifying the installation -------------------------- .. code-block:: python import o2_sdk print("o2-sdk installed successfully") # Quick connectivity check import asyncio from o2_sdk import O2Client, Network async def check(): client = O2Client(network=Network.TESTNET) markets = await client.get_markets() print(f"Connected — {len(markets)} markets available") await client.close() asyncio.run(check())