KO
|
EN
gitlite — search
Search
#python
#react
#java
#android
#go
#javascript
#nginx
#nodejs
#deep-learning
#vue
#php
#springboot
PyPerp
★ 27
Open GitHub ↗
Python SDK for Perpetual Protocol
Download README (.md)
Explore Similar Repositories
drift-rs
:
rust sdk to interact with drift v2
AlphaForge
:
End-to-End Factor-Driven Quant System for Crypto Perpetuals — Factor Mining, Statistical Evaluation, Combo Search, Walk-Forward Backtest
backbot
:
A crypto trading bot for Backpack Exchange. It trades perpetual futures automatically using custom strategies and real-time market data.
bybit_scalp_bot
:
Scalp bot for Bybit USDT Perpetual futures
bingx-go
:
Full-featured Golang SDK for BingX cryptocurrency exchange API. Supports USDT-M & Coin-M perpetual futures, spot trading, market data, WebSocket streams, account management, and copy trading. Type-safe, production-ready with HMAC-SHA256 security. Complete API coverage with idiomatic Go interfaces.
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
PyPerp
?
Download (.md)
# PyPerp A python SDK for Perpetual Protocol. ## Installation From PyPi: `pip install pyperp` ## Documentation The complete documentation is available [here](https://developerinprogress.github.io/PyPerp/) ## Example Code This example code is written to demonstrate simple trading on Optimism Kovan. ### Create an ApiProvider object ``` from eth_account import Account from pyperp.providers import OptimismKovanProvider account = Account.from_key('<PRIVATE_KEY_HERE>') provider = OptimismKovanProvider( '<RPC_ENDPOINT_URL>', account ) ``` ### Approve Vault to use USDC ``` from pyperp.contracts import Vault from pyperp.common.types import GasParams gas_params = GasParams( gas=1000000, gas_price=100000 ) vault = Vault(provider) receipt = vault.approve_vault_to_use_usdc( gas_params ) ``` ### deposit USDC to vault ``` receipt = vault.deposit( vault.usdc.address, 10000000000, gas_params ) ``` Vault.deposit() takes the following positional arguments: token: contract address of collateral token amount: amount of token to deposit gas_params: GasParams object denoting gas paramateres. ### check how much collateral can be withdrawn ``` print( vault.get_free_collateral( account.address ) ) ``` ### withdraw from vault ``` receipt = vault.withdraw( vault.usdc.address, <AMOUNT_HERE>, gas_params ) ``` ### open a position You can open a position for either vBTC or vETH. In this example we will open a position for vBTC ``` from pyperp.contracts import ClearingHouse from pyperp.contracts.types import OpenPositionParams from pyperp.commom.utils import getDeadline clearing_house = ClearingHouse(provider) params = OpenPositionParams( base_token = clearing_house.vbtc.address, is_base_to_quote = True, is_exact_input = True, amount = int(0.002*10**18), opposite_amount_bound = 0, deadline = getDeadline(120), #deadline is 120 secs from now sqrt_price_limit_x96 = 0 ) receipt = clearing_house.open_position( params, gas_params ) ``` ### get account value ``` print( clearing_house.get_account_value(account.address) ) ``` ### Close Position ``` from pyperp.contract.types import ClosePositionParams params = ClosePositionParams( base_token=clearing_house.vbtc.address, sqrt_price_limit_x96=0, oppposite_amount_bound=0, deadline=getDeadline(120) ) receipt = clearing_house.close_position( params, gas_params ) ```