Metadata-Version: 2.1
Name: hello-message-sdk
Version: 0.2.0
Summary: A Python SDK for AI agents to securely generate and verify 'hello' authentication messages, enabling seamless interaction between AI agents and AI-centric services.
Home-page: https://github.com/aimxlabs/hello-message-python
Author: anythingmachine
Author-email: anythingmachine@aimx.com
Keywords: hello-message,authentication,ethereum,sdk,ai,artificial-intelligence,autonomous-agents,ai-first-services,blockchain,ai-authentication
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
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: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: eth-account>=0.13.4
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"

# Hello-Message Python SDK

The Hello-Message Python SDK provides a simple interface for generating and verifying "hello" authentication messages for AI-to-AI and AI-to-AI-first services. This SDK is designed to work by using cryptographic signatures for secure authentication.

---

## Installation

Install the SDK from PyPI using pip:

```bash
pip install hello-message-sdk
```

---

## Features

- **Generate Hello Messages**: Create signed "hello" messages using Ethereum private keys.
- **Verify Signatures**: Validate the authenticity of signed "hello" messages.

---

## Quick Start

### Generate a "Hello" Message

```python
from hello_message import Hello

# Initialize the Hello SDK with a private key
private_key = "<your_ethereum_private_key>"
hello = Hello(private_key=private_key)

# Get the Ethereum address
address = hello.get_address()
print("Address:", address)

# Generate a signed "hello" message
hello_message = hello.generate_hello_message()
print("Hello Message:", hello_message)
```

### Verify a "Hello" Message

```python
from hello_message import Hello

# Example signature and address
signature = "<signature_from_hello_message>"
address = "<ethereum_address>"

# Verify the signature
is_valid = Hello.verify_signature(hello_message["signature"], hello_message["message"], address)
print("Is valid:", is_valid)
```

---

## API Reference

### Class: `Hello`

#### **`Hello(private_key: str)`**

Initialize the Hello object with an Ethereum private key.

- `private_key`: Ethereum private key (string) used for signing messages.

#### **`get_address() -> str`**

Get the Ethereum address corresponding to the private key.

#### **`generate_hello_message() -> dict`**

Generate a signed "hello" message.

#### **`verify_signature(signature: str, message: str, address: str) -> bool`**

Verify the authenticity of a "hello" message signature.

- `signature`: The signed "hello" message (string).
- `message`: The message to verify (string).
- `address`: The Ethereum address expected to have signed the message (string).

Returns:

- `True` if the signature is valid.
- `False` otherwise.

---

## Testing

Run the tests using `pytest`:

```bash
python -m pytest
```

---

## Contributing

We welcome contributions from the community! To get started:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Submit a pull request with a detailed description of your changes.

---

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

---

## Support

- [Discussions](https://github.com/aimxlabs/hello-message-python/discussions): Join the conversation.
- [Issues](https://github.com/aimxlabs/hello-message-python/issues): Report bugs or request features.

---

Happy coding with Hello-Message Python SDK!
