Python SDK for DFlow on Solana - prediction markets and trading
Project description
DFlow Python SDK
🐍 Python SDK for DFlow on Solana - prediction markets and trading
Installation
pip install dflow-sdk
Or with a package manager:
# Poetry
poetry add dflow-sdk
# UV
uv add dflow-sdk
# PDM
pdm add dflow-sdk
Quick Start
from dflow import DFlowClient
# Development environment (no API key required)
client = DFlowClient()
# Get active markets
response = client.markets.get_markets(status="active")
for market in response.markets:
print(f"{market.ticker}: YES={market.yes_price}, NO={market.no_price}")
# Get a specific market
market = client.markets.get_market("BTCD-25DEC0313-T92749.99")
print(f"Volume: {market.volume}")
Production Usage
from dflow import DFlowClient
# Production environment (API key required)
client = DFlowClient(environment="production", api_key="your-api-key")
# Get a swap quote
quote = client.swap.get_quote(
input_mint="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", # USDC
output_mint=market.accounts["usdc"].yes_mint,
amount=1_000_000, # 1 USDC
)
print(f"You'll receive: {quote.out_amount} tokens")
Trading with Solana
from solders.keypair import Keypair
from solana.rpc.api import Client
from dflow import DFlowClient, sign_send_and_confirm, USDC_MINT
# Setup
dflow = DFlowClient(environment="production", api_key="your-api-key")
connection = Client("https://api.mainnet-beta.solana.com")
keypair = Keypair.from_bytes(your_secret_key)
# Create a swap transaction
swap = dflow.swap.create_swap(
input_mint=USDC_MINT,
output_mint=yes_mint,
amount=1_000_000,
slippage_bps=50,
user_public_key=str(keypair.pubkey()),
)
# Sign and send
result = sign_send_and_confirm(connection, swap.swap_transaction, keypair)
print(f"Transaction confirmed: {result.signature}")
WebSocket Streaming
import asyncio
from dflow import DFlowClient
async def main():
client = DFlowClient()
# Connect to WebSocket
await client.ws.connect()
# Subscribe to price updates
await client.ws.subscribe_prices(["BTCD-25DEC0313-T92749.99"])
# Handle updates
def on_price(update):
print(f"{update.ticker}: YES={update.yes_price}")
client.ws.on_price(on_price)
# Keep running
await asyncio.sleep(60)
client.ws.disconnect()
asyncio.run(main())
Features
- Full API Coverage: Events, Markets, Orderbook, Trades, Series, Tags, Sports, Search
- Trading APIs: Orders, Swap, Intent-based swaps, Prediction market initialization
- Solana Integration: Transaction signing, token balances, position tracking
- WebSocket Support: Real-time price, trade, and orderbook updates
- Type Safety: Full Pydantic models for all API responses
- Async Support: Both sync and async HTTP clients available
API Modules
| Module | Description |
|---|---|
client.events |
Event discovery and queries |
client.markets |
Market data, pricing, batch queries |
client.orderbook |
Orderbook snapshots |
client.trades |
Historical trade data |
client.live_data |
Real-time milestone data |
client.series |
Series/category information |
client.tags |
Tag-based filtering |
client.sports |
Sports-specific filters |
client.search |
Full-text search |
client.orders |
Order creation and status |
client.swap |
Imperative swaps with route preview |
client.intent |
Declarative intent-based swaps |
client.prediction_market |
Market initialization |
client.tokens |
Token information |
client.venues |
Trading venue information |
client.ws |
WebSocket for real-time updates |
Documentation
See the full documentation for detailed API reference.
License
MIT
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
dflow_sdk-0.1.6.tar.gz
(42.8 kB
view details)
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
dflow_sdk-0.1.6-py3-none-any.whl
(55.4 kB
view details)
File details
Details for the file dflow_sdk-0.1.6.tar.gz.
File metadata
- Download URL: dflow_sdk-0.1.6.tar.gz
- Upload date:
- Size: 42.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
593d5acba2a8f548a8c190196aecf623e604d0cd36b0b5c2119a7f5ad50ff4a8
|
|
| MD5 |
19790f020620c8ed0c4e622c64ba9489
|
|
| BLAKE2b-256 |
747eb3968f621ea79e3edce941e393da88ee64fbd16decd7326da13759e27975
|
File details
Details for the file dflow_sdk-0.1.6-py3-none-any.whl.
File metadata
- Download URL: dflow_sdk-0.1.6-py3-none-any.whl
- Upload date:
- Size: 55.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdfd748d5f1d67b9c8c74549979d354050ee1351ad2bd6f7a259ab86108365e1
|
|
| MD5 |
7e47d621402adab383697616fc962820
|
|
| BLAKE2b-256 |
b3ad3b0274c9eadd8b0ed33a33df89ac8652fdeb261900207bc45a0549e098af
|