Skip to main content

Python SDK for DFlow on Solana - prediction markets and trading

Project description

DFlow Python SDK

PyPI version Python versions License: MIT

🐍 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.3.tar.gz (38.3 kB view details)

Uploaded Source

Built Distribution

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

dflow_sdk-0.1.3-py3-none-any.whl (49.6 kB view details)

Uploaded Python 3

File details

Details for the file dflow_sdk-0.1.3.tar.gz.

File metadata

  • Download URL: dflow_sdk-0.1.3.tar.gz
  • Upload date:
  • Size: 38.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for dflow_sdk-0.1.3.tar.gz
Algorithm Hash digest
SHA256 66bb067328705de74f6b1e949c1b23ae5edfd352890614956ece7883a458b5f9
MD5 dd303bb51660eebce6e2f4ca8e96f803
BLAKE2b-256 dc6243e34ff3a1458d721dcc2df147f5ca663683cb41e77a68f8c665c4d20a86

See more details on using hashes here.

File details

Details for the file dflow_sdk-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: dflow_sdk-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 49.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for dflow_sdk-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d225c9e124485aaff9db0059b6892efdf149362cc58ba7d8a7b07f3cd769f853
MD5 35685d47d88af9eb3b19a44d60ab0622
BLAKE2b-256 fc0919f072526c6c5708187ea0cc4c0b4e4ab44b03946e4b4934772550e4d01f

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