Skip to main content

DriftPy

DriftPy is the Python client for the Drift protocol. It allows you to trade and fetch data from Drift using Python.

Read the full SDK documentation here!

Installation

pip install driftpy

Note: requires Python >= 3.10.

SDK Examples

  • examples/ folder includes more examples of how to use the SDK including how to provide liquidity/become an lp, stake in the insurance fund, etc.

Note on using QuickNode

If you are using QuickNode free plan, you must use AccountSubscriptionConfig("demo"), and you can only subscribe to 1 perp market and 1 spot market at a time.

Non-QuickNode free RPCs (including the public mainnet-beta url) can use cached as well.

Example setup for AccountSubscriptionConfig("demo"):

    # This example will listen to perp markets 0 & 1 and spot market 0
    # If you are listening to any perp markets, you must listen to spot market 0 or the SDK will break

    perp_markets = [0, 1]
    spot_market_oracle_infos, perp_market_oracle_infos, spot_market_indexes = get_markets_and_oracles(perp_markets = perp_markets)

    oracle_infos = spot_market_oracle_infos + perp_market_oracle_infos

    drift_client = DriftClient(
        connection,
        wallet, 
        "mainnet",             
        perp_market_indexes = perp_markets,
        spot_market_indexes = spot_market_indexes,
        oracle_infos = oracle_infos,
        account_subscription = AccountSubscriptionConfig("demo"),
    )
    await drift_client.subscribe()

If you intend to use AccountSubscriptionConfig("demo), you must call get_markets_and_oracles to get the information you need.

get_markets_and_oracles will return all the necessary OracleInfos and market_indexes in order to use the SDK.

Development

Setting Up Dev Env

bash setup.sh

Ensure correct python version (using pyenv is recommended):

pyenv install 3.10.11
pyenv global 3.10.11
poetry env use $(pyenv which python)

Install dependencies:

poetry install

To run tests, first ensure you have set up the RPC url, then run pytest:

export MAINNET_RPC_ENDPOINT="<YOUR_RPC_URL>"
export DEVNET_RPC_ENDPOINT="https://api.devnet.solana.com" # or your own RPC

poetry run pytest -v -s -x tests/ci/*.py
poetry run pytest -v -s tests/math/*.py

Metadata

Release files for driftpy 0.8.89

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for driftpy 0.8.89
File Size Uploaded
driftpy-0.8.89.tar.gz 213.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for driftpy 0.8.89
File Interpreter ABI Platform
driftpy-0.8.89-py3-none-any.whl Python 3 none any Details

Total release size: 474.8 kB

Release files / driftpy-0.8.89.tar.gz

Download URL driftpy-0.8.89.tar.gz
Size 213.6 kB
Tags Source
SHA-256 checksum
How to use checksums
54503f8ff855c28f23d7c43404d978ce025fe46813cf9330a8933e832be8563f
BLAKE2b-256 checksum
How to use checksums
395dd3987708ea3fce00595635344557b851995e1b45e0f7c93abc276e549e2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.10.10 Linux/6.14.0-1017-azure

Release files / driftpy-0.8.89-py3-none-any.whl

Download URL driftpy-0.8.89-py3-none-any.whl
Size 261.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8734263981ee9e0fa4de3eeb65abb211e6c0fdad6f8de979415e0a3202cb2fa4
BLAKE2b-256 checksum
How to use checksums
599cb73c42d9750784fc4f6da99d5067130bc8f86a81ea8356011638685759da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.10.10 Linux/6.14.0-1017-azure

Release history Release notifications | RSS feed

This release

0.8.89 This release

2 release files

0.8.88

2 release files

0.8.85

2 release files

0.8.82

2 release files

0.8.81

2 release files

0.8.80

2 release files

0.8.79

2 release files

0.8.78

2 release files

0.8.77

2 release files

0.8.74

2 release files

0.8.73

2 release files

0.8.72

2 release files

0.8.71

2 release files

0.8.68

2 release files

0.8.65

2 release files

0.8.64

2 release files

0.8.63

2 release files

0.8.62

2 release files

0.8.59

2 release files

0.8.58

2 release files

0.8.57

2 release files

0.8.55

2 release files

0.8.54

2 release files

0.8.53

2 release files

0.8.52

2 release files

0.8.51

2 release files

0.8.50

2 release files

0.8.49

2 release files

0.8.48

2 release files

0.8.46

2 release files

0.8.45

2 release files

0.8.44

2 release files

0.8.43

2 release files

0.8.42

2 release files

0.8.41

2 release files

0.8.40

2 release files

0.8.39

2 release files

0.8.38

2 release files

0.8.36

2 release files

0.8.35

2 release files

0.8.34

2 release files

0.8.33

2 release files

0.8.32

2 release files

0.8.31

1 release file

0.8.25

2 release files

0.8.24

2 release files

0.8.23

2 release files

0.8.22

2 release files

0.8.21

2 release files

0.8.20

2 release files

0.8.19

2 release files

0.8.18

2 release files

0.8.17

2 release files

0.8.16

2 release files

0.8.15

2 release files

0.8.14

2 release files

0.8.13

2 release files

0.8.12

2 release files

0.8.11

2 release files

0.8.9

2 release files

0.8.8

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.7.99

2 release files

0.7.98

2 release files

0.7.97

2 release files

0.7.95

2 release files

0.7.94

2 release files

0.7.93

2 release files

0.7.92

2 release files

0.7.91

2 release files

0.7.87

2 release files

0.7.86

2 release files

0.7.85

2 release files

0.7.84

2 release files

0.7.83

2 release files

0.7.82

2 release files

0.7.81

2 release files

0.7.78

2 release files

0.7.77

2 release files

0.7.76

2 release files

0.7.75

2 release files

0.7.74

2 release files

0.7.73

2 release files

0.7.72

2 release files

0.7.71

2 release files

0.7.70

2 release files

0.7.69

2 release files

0.7.68

2 release files

0.7.67

2 release files

0.7.62

2 release files

0.7.61

2 release files

0.7.60

2 release files

0.7.59

2 release files

0.7.58

2 release files

0.7.57

2 release files

0.7.56

2 release files

0.7.55

2 release files

0.7.54

2 release files

0.7.53

2 release files

0.7.52

2 release files

0.7.51

2 release files

0.7.50

2 release files

0.7.49

2 release files

0.7.48

2 release files

0.7.44

2 release files

0.7.43

2 release files

0.7.42

2 release files

0.7.41

2 release files

0.7.40

2 release files

0.7.39

2 release files

0.7.38

2 release files

0.7.37

2 release files

0.7.33

2 release files

0.7.31

2 release files

0.7.30

2 release files

0.7.29

2 release files

0.7.28

2 release files

0.7.27

2 release files

0.7.26

2 release files

0.7.25

2 release files

0.7.24

2 release files

0.7.20

2 release files

0.7.19

2 release files

0.7.18

2 release files

0.7.17

2 release files

0.7.16

2 release files

0.7.15

2 release files

0.7.14

2 release files

0.7.13

2 release files

0.7.12

2 release files

0.7.11

2 release files

0.7.10

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.43

2 release files

0.6.42

2 release files

0.6.38

2 release files

0.6.36

2 release files

0.6.35

2 release files

0.6.33

2 release files

0.6.32

2 release files

0.6.30

2 release files

0.6.27

2 release files

0.6.26

2 release files

0.6.25

2 release files

0.6.24

2 release files

0.6.22

2 release files

0.6.21

2 release files

0.6.20

2 release files

0.6.19

2 release files

0.6.18

2 release files

0.6.17

2 release files

0.6.8

2 release files

0.6.7

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page