Skip to main content

Paradex Python SDK

Project description

Paradex Python SDK

Release Build status codecov Commit activity License

Paradex Python SDK provides a simple interface to interact with the Paradex REST and WS API.

Examples

L1 + L2 Authentication (Traditional)

from paradex_py import Paradex
from paradex_py.environment import Environment

paradex = Paradex(env=Environment.TESTNET, l1_address="0x...", l1_private_key="0x...")
print(hex(paradex.account.l2_address)) # 0x...
print(hex(paradex.account.l2_public_key)) # 0x...
print(hex(paradex.account.l2_private_key)) # 0x...

L2-Only Authentication (Subkey)

from paradex_py import ParadexSubkey
from paradex_py.environment import Environment

# Use ParadexSubkey for L2-only authentication
paradex = ParadexSubkey(
    env=Environment.TESTNET,
    l2_private_key="0x...",
    l2_address="0x..."
)
print(hex(paradex.account.l2_address)) # 0x...
print(hex(paradex.account.l2_public_key)) # 0x...
print(hex(paradex.account.l2_private_key)) # 0x...

WebSocket Usage

The SDK provides two WebSocket client options:

Option 1: Async Client (Default)

Use the async client when you're comfortable with asyncio and need maximum performance:

async def on_message(ws_channel, message):
    print(ws_channel, message)

await paradex.ws_client.connect()
await paradex.ws_client.subscribe(ParadexWebsocketChannel.MARKETS_SUMMARY, callback=on_message)

Option 2: Threaded Client (Synchronous)

Use the threaded client for simpler integration without asyncio knowledge:

from paradex_py.api.ws_client_threaded import ThreadedParadexWebsocketClient
from paradex_py.api.ws_client import ParadexWebsocketChannel
from paradex_py.environment import TESTNET

# Simple synchronous usage - no asyncio required
ws_client = ThreadedParadexWebsocketClient(env=TESTNET)

with ws_client:
    ws_client.subscribe(ParadexWebsocketChannel.MARKETS_SUMMARY)

    # Blocking call - waits for messages
    msg = ws_client.get_updates(timeout=5.0)
    if msg:
        print(f"Channel: {msg.channel}, Data: {msg.data}")

When to use which:

Feature Async Client Threaded Client
Asyncio knowledge Required Not required
Integration Async codebases Synchronous codebases
Performance Optimal Good
Complexity Higher Lower
Runtime subscription Via callbacks Via subscribe() anytime

📖 For complete documentation refer to tradeparadex.github.io/paradex-py

💻 For comprehensive examples refer to following files:

Development

make install
make check
make test
make build
make clean-build
make publish
make build-and-publish
make docs-test
make docs
make help

Using uv

This project uses uv for managing dependencies and building. Below are instructions for installing uv and the basic workflow for development outside of using make commands.

Installing uv

uv is a fast and modern Python package manager. You can install it using the standalone installer for macOS and Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

For other installation methods, refer to the uv installation documentation.

Basic Workflow with uv

If you prefer not to use make commands, you can directly use uv for development tasks:

  • Install dependencies: Sync your environment with the project's dependencies.
    uv sync
    
  • Run tests: Execute the test suite using pytest within the uv environment.
    uv run pytest
    
  • Build the project: Create a distribution package for the SDK.
    uv build
    

For more detailed information on using uv, refer to the uv documentation.

The CI/CD pipeline will be triggered when a new pull request is opened, code is merged to main, or when new release is created.

Notes

[!WARNING] Experimental SDK, library API is subject to change

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

paradex_py-0.6.1.tar.gz (417.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paradex_py-0.6.1-py3-none-any.whl (138.6 kB view details)

Uploaded Python 3

File details

Details for the file paradex_py-0.6.1.tar.gz.

File metadata

  • Download URL: paradex_py-0.6.1.tar.gz
  • Upload date:
  • Size: 417.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for paradex_py-0.6.1.tar.gz
Algorithm Hash digest
SHA256 1333bb10fc3d91a426d8dea45a218e04df3778d5cfb424a095303a3495387c2c
MD5 2e26ea95452094e1bae50aa0d5e58db0
BLAKE2b-256 531ecf60cb152f01175995cff803920cfbceaa908f2c59063de6399800d9eb49

See more details on using hashes here.

File details

Details for the file paradex_py-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: paradex_py-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 138.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for paradex_py-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a24fc7dd10b1230ad48bab7c5262e117aefd30839a903ff4eee8b3ef19de9b74
MD5 1580563b9e5a2e6e66288e20b3dfe5c3
BLAKE2b-256 fc4e0ef7f0aff18a2ab0fecb666c96111f807957d5c608c2a6b6d81c4f7a9205

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page