An SDK to interact with the Perennial derivatives protocol.
Project description
Perennial Python SDK
Overview
This tool is designed to communicate with the Perennial exchange from Python and read/write the following data:
Read account and market information:
- Open positions (Iterates through available markets -> checks for open positions -> prints them in the end)
- Open orders (Prints a list of open orders and their details, incl. nonces)
- Collaterals
- Maintenance margin requirements
- Pair prices
- Funding rate
Execute market orders:
- Closing positions
- Placing market orders
- Placing limit orders
- Placing trigger orders
- Canceling orders
- When closing positions - Doesnt automatically withdraw the collateral, you should use the last step in the example to do so.
- When placing market/limit order - Approves collateral (62.5$ min), commits price to MultiInvoker, places order.
- When placing trigger orders -
- Placing collateral is optional,
- Commits price and places order.
- If you are holding a Long position you should choose side 1 - Buy; Even though you need it to short. Same for short position.
- The delta is with how much you want to reduce the position size , so it should be negative.
- For full close delta = 0.
- To cancel orders, you will need the nonce fo the order (from MultiInvoker side). You can get this by using fetch_open_orders.py.
Features
- Connects to an Arbitrum node using a provided RPC URL
- Retrieves oracle information for specified markets
- Fetches VAAs from the Pyth Network
- Creates market snapshots using a Lens contract
- Supports multiple markets and optional account specification
- Reads all needed information from the snapshot
Prerequisites
- RPC URL (in .env)
- Wallet private key (in .env)
- Python 3.7+
- Required Libraries:
web3
librarypython-dotenv
libraryrequests
libraryeth-account
libraryeht_abi
library
Installation
Using pip
You can install the SDK using pip:
pip install perennial_sdk==0.1.0
Using Poetry
If you prefer using Poetry for dependency management, you can add the SDK to your project with:
poetry add perennial_sdk@0.1.0
Development
If you are using Poetry, you can set up your environment with:
-
Install Poetry if you haven't already:
curl -sSL https://install.python-poetry.org | python3 -
-
Install dependencies:
poetry install
-
Activate the virtual environment:
poetry run python <command here>
Example usage can be found in the examples directory:
Private key and RPC url will need to be added first to .env.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
perennial_sdk-0.1.1.tar.gz
(50.6 kB
view details)
Built Distribution
File details
Details for the file perennial_sdk-0.1.1.tar.gz
.
File metadata
- Download URL: perennial_sdk-0.1.1.tar.gz
- Upload date:
- Size: 50.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fc5bf7e0e470c732fb7159b6f4032e7e6294fea8356637d424d06d01ceaf6b2 |
|
MD5 | e7be048feb5dc8deba76033c57436fb4 |
|
BLAKE2b-256 | 13538e590ebd14227597745e5b76427024897e349939d83abf0e96a667ae740f |
File details
Details for the file perennial_sdk-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: perennial_sdk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 60.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82bd0f25788405c5c19062a2db0f1d3e84ba45803d7826ddfbff6e61f698d318 |
|
MD5 | f77eeb58dc79d83637fb519c8e8a9e41 |
|
BLAKE2b-256 | a3824516686cb2e576cd4aaf1269a8288f131cf0b8990f33e5a324939da0f0cd |