Metadata-Version: 2.2
Name: py-immutablex
Version: 0.1.0
Summary: A Python library for interacting with the Immutable X API
Home-page: https://github.com/luizrrodrigues/py-immutablex
Author: Luiz Ricardo Rodrigues
Author-email: trinix@luizrrodrigues.com.br
License: MIT
Keywords: immutablex blockchain starknet ethereum python
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: bip32==4.0
Requires-Dist: cairo-lang==0.13.3
Provides-Extra: test
Requires-Dist: pytest==8.3.4; extra == "test"
Requires-Dist: requests-mock==1.12.1; extra == "test"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# py-immutablex

![Donate](https://img.shields.io/badge/Donate-IMX/ETH-green) `0xF610975E70674b7b6429da6266a1a5d8C1C99238`

A Python library for interacting with the [Immutable X](https://www.immutable.com/) API. This library provides tools to derive Stark keys from Ethereum keys, register users, perform transfers, and more—aiming to eventually cover all Immutable X API resources.

[![PyPI version](https://badge.fury.io/py/py-immutablex.svg)](https://badge.fury.io/py/py-immutablex) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ![Tests](https://github.com/luizrrodrigues/py-immutablex/actions/workflows/tests.yml/badge.svg)

## Features
- Derive Stark keys from Ethereum private keys for Immutable X.
- Register users on Immutable X with Ethereum and Stark signatures.
- Perform transfers (e.g., ETH) using the Immutable X API.
- (In progress) Full coverage of Immutable X API endpoints: assets, orders, trades, balances, and more.

## Installation

Install via pip:

```bash
pip install py-immutablex
```

## Quickstart

Here’s how to initialize the client and perform a transfer:

```python
from py_immutablex import IMXClient

# Initialize with your Ethereum private key
client = IMXClient('0xYourEthereumPrivateKeyHere')

# Transfer 1 ETH (in wei) to another address
transfer_id = client.transfer(
    transfer_to='0xRecipientAddress',
    token='ETH',
    amount='1000000000000000000'  # 1 ETH in wei
)
print(f'Transfer ID: {transfer_id}')
```

## Prerequisites

- Python 3.7+
- An Ethereum private key (keep it secure!)
- Dependencies (installed automatically via pip):
  - requests
  - bip32
  - eth-account
  - starkware-crypto-signature

## Development Status

This library is under active development. Current focus:
- Robust key derivation and user registration.
- Transfer functionality.

Planned features:
- Full Immutable X API support (assets, orders, trades, etc.).
- Comprehensive error handling and logging.
- Unit tests and CI/CD.

Check the [Issues](https://github.com/luizrrodrigues/py-immutablex/issues) tab for progress or to request features!

## Contributing

Contributions are welcome! Fork the repo, create a branch, and submit a pull request. See CONTRIBUTING.md for details.
1. Fork the repo.
2. Install dependencies: pip install -r requirements.txt
3. Run tests (WIP): pytest
4. Submit a PR!

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Acknowledgments
- Built with inspiration from the Immutable X developer community.

-----

Questions? Bugs? Open an issue or reach out: [@luizrrodrigues](https://github.com/luizrrodrigues).
