Metadata-Version: 2.4
Name: injective-py
Version: 1.14.0
Summary: Injective Python SDK, with Exchange API Client
License: Apache-2.0
License-File: LICENSE.md
License-File: NOTICE.md
Keywords: injective,blockchain,cosmos,injectivelabs
Author: Injective Labs
Author-email: contact@injectivelabs.org
Requires-Python: >=3.10,<3.13
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: aiohttp (>=3.9.4,<4.0.0)
Requires-Dist: bech32
Requires-Dist: bip32
Requires-Dist: ecdsa
Requires-Dist: eip712 (>=0.3.0,<0.4.0)
Requires-Dist: eth-pydantic-types (>=0.2.4,<0.3.0)
Requires-Dist: grpcio
Requires-Dist: grpcio-tools
Requires-Dist: hdwallets
Requires-Dist: mnemonic
Requires-Dist: protobuf (>=5.26.1,<6.0.0)
Requires-Dist: requests
Requires-Dist: safe-pysha3
Requires-Dist: web3 (>=7.0.0,<8.0.0)
Requires-Dist: websockets
Project-URL: Documentation, https://api.injective.exchange/
Project-URL: Homepage, https://injectivelabs.org/
Project-URL: Repository, https://github.com/InjectiveLabs/sdk-python
Description-Content-Type: text/markdown

## Injective Python SDK

[![codecov](https://codecov.io/gh/InjectiveLabs/sdk-python/graph/badge.svg?token=RBGK98G6F1)](https://codecov.io/gh/InjectiveLabs/sdk-python)

### Dependencies

**Ubuntu**
```bash
sudo apt install python3.X-dev autoconf automake build-essential libffi-dev libtool pkg-config
```
**Fedora**
```bash
sudo dnf install python3-devel autoconf automake gcc gcc-c++ libffi-devel libtool make pkgconfig
```

**macOS**

```bash
brew install autoconf automake libtool bufbuild/buf/buf
```

### Quick Start
Installation
```bash
pip install injective-py
```

### Usage
Requires Python 3.9+
Please install `poetry` following the steps described in the [documentation](https://python-poetry.org/docs/#installation)

[Examples](https://github.com/InjectiveLabs/sdk-python/tree/master/examples)
```bash
$ 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.py
```
Upgrade `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
  ```

### Development
1. Generate proto binding & build
  ```
  make gen
  poetry build
  ```

2. 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
  ```

3. Run all unit tests in a development environment
```
poetry run pytest -v
```

---

## Async client (exchange V2)

The Injective Python SDK exposes `AsyncClient` from the `async_client_v2` module:

- Import using: `from pyinjective.async_client_v2 import AsyncClient`
- Example:
```python
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.

___

## License

Copyright © 2021 - 2026 Injective Labs Inc. (https://injectivelabs.org/)

<a href="https://drive.google.com/uc?export=view&id=1-fPQRh_D_dnun2yTtSsPW5MypVBOVYJP"><img src="https://drive.google.com/uc?export=view&id=1-fPQRh_D_dnun2yTtSsPW5MypVBOVYJP" style="width: 300px; max-width: 100%; height: auto" />

Originally released by Injective Labs Inc. under: <br />
Apache License <br />
Version 2.0, January 2004 <br />
http://www.apache.org/licenses/

