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.0.tar.gz (411.3 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.0-py3-none-any.whl (138.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: paradex_py-0.6.0.tar.gz
  • Upload date:
  • Size: 411.3 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.0.tar.gz
Algorithm Hash digest
SHA256 72714dbc41a35e6d42f571cd255e10e8f3a4d2f369e24403eabe8843d29bf2c5
MD5 075528cc3f2b1b151258ae3dc6b15143
BLAKE2b-256 1fb70293234dddc72085a495840f92214cf9e27fd04ff9074756ad11db009e54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: paradex_py-0.6.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4fddb73d5098935def33d49ddd6f568d711b82d9d9c05b7cd0a88e7fc7335db
MD5 024834bb648bd6941cbeaad876e59cae
BLAKE2b-256 a5ca3337e2a27f24a8a9231ec274f59d0aac18ab258b03e710e707653b85f8d4

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