Ubuntu
sudo apt install python3.X-dev autoconf automake build-essential libffi-dev libtool pkg-configFedora
sudo dnf install python3-devel autoconf automake gcc gcc-c++ libffi-devel libtool make pkgconfigmacOS
brew install autoconf automake libtool bufbuild/buf/bufInstallation
pip install injective-pyRequires Python 3.9+
Please install poetry following the steps described in the documentation
$ poetry install
# connecting to Injective Exchange API
# and listening for new orders from a specific spot market
$ poetry run python examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py
# sending a msg with bank transfer
# signs and posts a transaction to the Injective Chain
$ poetry run python examples/chain_client/bank/1_MsgSend.pyUpgrade pip to the latest version, if you see these warnings:
WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
WARNING: Additional context: user = True home = None root = None prefix = None
- Generate proto binding & build
make gen
poetry build
- Install pkg
# from local build
pip uninstall injective-py
pip install injective-py --no-index --find-links /path/to/injective/sdk-python/dist
# from pypi
pip uninstall injective-py
pip install injective-py
- Run all unit tests in a development environment
poetry run pytest -v
The Injective Python SDK exposes AsyncClient from the async_client_v2 module:
- Import using:
from pyinjective.async_client_v2 import AsyncClient - Example:
from pyinjective.async_client_v2 import AsyncClient
from pyinjective.network import Network
async def main():
client = AsyncClient(network=Network.mainnet())
# Or use testnet
# client = AsyncClient(network=Network.testnet())Market Format Differences:
- V1 AsyncClient: Markets are initialized with values in chain format (raw blockchain values)
- V2 AsyncClient: Markets are initialized with values in human-readable format (converted to standard decimal numbers)
Exchange Endpoint Format Differences:
- V1 Exchange endpoints: All values (amounts, prices, margins, notionals) are returned in chain format
- V2 Exchange endpoints:
- Human-readable format for: amounts, prices, margins, and notionals
- Chain format for: deposit-related information (to maintain consistency with the Bank module)
Important Note: The ChainClient (V1) will not receive any new endpoints added to the Exchange module. If you need access to new exchange-related endpoints or features, you should migrate to the V2 client. The V2 client ensures you have access to all the latest exchange functionality and improvements.
Copyright © 2021 - 2026 Injective Labs Inc. (https://injectivelabs.org/)
Originally released by Injective Labs Inc. under:
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/