Python SDK for interacting with Nibiru.
Project description
Python SDK - Nibiru Chain
Python-based client for interacting with the Nibiru blockchain.
The nibiru
package allows you to index, query, and send transactions on Nibiru Chain using Python. It provides access to market data for analysis, visualization, indicator development, algorithmic trading, strategy backtesting, bot programming, and related software engineering.
The package is intended to be used by coders, developers, technically-skilled traders and data-scientists for building trading algorithms.
README Contents
Python SDK Tutorial
Installation from PyPI
pip install nibiru # requires Python 3.7+
You may need to update pip
to get this to run:
python -m pip install --upgrade pip
Usage
Ex: Creating a wallet and SDK client
from nibiru import wallet
# Save the mnemonic for later
mnemonic, private_key = wallet.PrivateKey.generate()
After, creating an account, you can create an Sdk
instance.
import nibiru
network = nibiru.network.Network.testnet(2)
sdk = nibiru.Sdk.authorize(mnemonic)
.with_network(network)
The Sdk
class creates an interface to sign and send transactions or execute
queries. It is associated with:
- A transaction signer (wallet), which is configured from existing mnemonic to recover a
PrivateKey
. - A
Network
, which specifies the RPC, LCD, and gRPC endpoints for connecting to Nibiru Chain. - An optional
TxConfig
for changing gas parameters.
Ex: Using the faucet
import requests
requests.post(
"https://faucet.testnet-2.nibiru.fi/",
json={
"address": sdk.address,
"coins": ["10000000unibi", "100000000000unusd"],
},
)
Ex: Querying chain state
# Querying the token balances of the account
sdk.query.get_bank_balances(sdk.address)
# Querying from the vpool module
query_resp = sdk.query.vpool.all_pools()
print(query_resp)
# Queries from other modules can be accessed from "sdk.query.module"
Ex: Submitting transactions
# version 0.16.3
from nibiru import Msg
tx_resp = sdk.tx.execute_msgs(
Msg.perp.open_position(
sender=sdk.address,
pair="ubtc:unusd",
is_long=True,
quote_asset_amount=10,
leverage=10,
base_asset_amount_limit=0,
)
)
You can broadcast any available transaction by passing its corresponding Msg
to the sdk.tx.execute_msgs
function.
Documentation Website
Documentation can be found here: Nibiru-py documentation
- Learn more about opening and managing your spot and perp positions here
- Learn about querying the chain using the Sdk here
Contributing
Please read HACKING.MD for developer environment setup.
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
Built Distribution
Hashes for nibiru-0.20.0rc1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a595da92977b80c4ae7a6b70699071bec8a740a9e8b26bbf54c8c6ff7bbc324 |
|
MD5 | d6069ee7c821dd145dc6e10e42a01a83 |
|
BLAKE2b-256 | 6fe5210a053bd8f8882cd85008675bb88819988668cd82d9608feda99194eb3d |