Metadata-Version: 2.1
Name: aleph-sdk-python
Version: 0.8.0
Summary: Lightweight Python Client library for the Aleph.im network
Home-page: https://github.com/aleph-im/aleph-sdk-python
Author: Aleph.im Team
Author-email: hello@aleph.im
License: mit
Project-URL: Documentation, https://aleph.im/
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown; charset=UTF-8
License-File: LICENSE.txt
License-File: AUTHORS.rst
Requires-Dist: coincurve; python_version < "3.11"
Requires-Dist: coincurve>=17.0.0; python_version >= "3.11"
Requires-Dist: aiohttp>=3.8.3
Requires-Dist: eciespy; python_version < "3.11"
Requires-Dist: eciespy>=0.3.13; python_version >= "3.11"
Requires-Dist: typing_extensions
Requires-Dist: typer
Requires-Dist: aleph-message==0.4.1
Requires-Dist: eth_account>=0.4.0
Requires-Dist: eth_abi==4.0.0b2; python_version >= "3.11"
Requires-Dist: python-magic
Provides-Extra: testing
Requires-Dist: aiomqtt<=0.1.3; extra == "testing"
Requires-Dist: psutil; extra == "testing"
Requires-Dist: pytest; extra == "testing"
Requires-Dist: pytest-cov; extra == "testing"
Requires-Dist: pytest-asyncio; extra == "testing"
Requires-Dist: pytest-mock; extra == "testing"
Requires-Dist: mypy; extra == "testing"
Requires-Dist: secp256k1; extra == "testing"
Requires-Dist: pynacl; extra == "testing"
Requires-Dist: base58; extra == "testing"
Requires-Dist: fastapi; extra == "testing"
Requires-Dist: httpx; extra == "testing"
Requires-Dist: requests; extra == "testing"
Requires-Dist: aleph-pytezos==0.1.1; extra == "testing"
Requires-Dist: types-certifi; extra == "testing"
Requires-Dist: types-setuptools; extra == "testing"
Requires-Dist: black; extra == "testing"
Requires-Dist: isort; extra == "testing"
Requires-Dist: flake8; extra == "testing"
Requires-Dist: substrate-interface; extra == "testing"
Requires-Dist: py-sr25519-bindings; extra == "testing"
Requires-Dist: ledgereth==0.9.0; extra == "testing"
Requires-Dist: aiodns; extra == "testing"
Provides-Extra: dns
Requires-Dist: aiodns; extra == "dns"
Provides-Extra: mqtt
Requires-Dist: aiomqtt<=0.1.3; extra == "mqtt"
Requires-Dist: certifi; extra == "mqtt"
Requires-Dist: Click; extra == "mqtt"
Provides-Extra: nuls2
Requires-Dist: aleph-nuls2; extra == "nuls2"
Provides-Extra: ethereum
Requires-Dist: eth_account>=0.4.0; extra == "ethereum"
Requires-Dist: eth_abi==4.0.0b2; python_version >= "3.11" and extra == "ethereum"
Provides-Extra: polkadot
Requires-Dist: substrate-interface; extra == "polkadot"
Requires-Dist: py-sr25519-bindings; extra == "polkadot"
Provides-Extra: cosmos
Requires-Dist: cosmospy; extra == "cosmos"
Provides-Extra: solana
Requires-Dist: pynacl; extra == "solana"
Requires-Dist: base58; extra == "solana"
Provides-Extra: tezos
Requires-Dist: pynacl; extra == "tezos"
Requires-Dist: aleph-pytezos==0.1.1; extra == "tezos"
Provides-Extra: ledger
Requires-Dist: ledgereth==0.9.0; extra == "ledger"
Provides-Extra: docs
Requires-Dist: sphinxcontrib-plantuml; extra == "docs"


# aleph-sdk-python
Python SDK for the Aleph.im network, next generation network of decentralized big data applications.

Development follows the [Aleph Whitepaper](https://github.com/aleph-im/aleph-whitepaper).

## Documentation
Documentation (albeit still vastly incomplete as it is a work in progress) can be found at [http://aleph-sdk-python.readthedocs.io/](http://aleph-sdk-python.readthedocs.io/) or built from this repo with:

```shell
$ python setup.py docs
```

## Requirements
### Linux 
Some cryptographic functionalities use curve secp256k1 and require installing [libsecp256k1](https://github.com/bitcoin-core/secp256k1).

```shell
$ apt-get install -y python3-pip libsecp256k1-dev
```
Using some chains may also require installing `libgmp3-dev`.

### macOs
This project does not support Python 3.12 on macOS. Please use Python 3.11 instead.
```shell
$ brew tap cuber/homebrew-libsecp256k1
$ brew install libsecp256k1
```

## Installation
Using pip and [PyPI](https://pypi.org/project/aleph-sdk-python/):

```shell
$ pip install aleph-sdk-python[ethereum,solana,tezos]
```

## Installation for development
To install from source and still be able to modify the source code:

```shell
$ pip install -e .[testing]
```
or 
```shell
$ python setup.py develop
```

## Usage with LedgerHQ hardware

The SDK supports signatures using [app-ethereum](https://github.com/LedgerHQ/app-ethereum),
the Ethereum app for the Ledger hardware wallets.

This has been tested successfully on Linux (amd64).
Let us know if it works for you on other operating systems.

Using a Ledger device on Linux requires root access or the setup of udev rules.

Unlocking the device is required before using the relevant SDK functions.

### Debian / Ubuntu

Install [ledger-wallets-udev](https://packages.debian.org/bookworm/ledger-wallets-udev).

`sudo apt-get install ledger-wallets-udev`

### On NixOS

Configure `hardware.ledger.enable = true`.

### Other Linux systems

See https://github.com/LedgerHQ/udev-rules


