Metadata-Version: 2.4
Name: solarcoins
Version: 0.1.0
Summary: Python client for the SolarCoins SOLAR/1 ledger API
Project-URL: Homepage, https://solarcoins.net
Project-URL: Documentation, https://solarcoins.net
Project-URL: Issues, https://solarcoins.net
Author-email: Hanger8200 <support@morwic.com>
License: MIT
Keywords: esp32,ledger,mining,solarcoins
Requires-Python: >=3.10
Requires-Dist: cbor2>=5.6
Requires-Dist: httpx>=0.27
Requires-Dist: pynacl>=1.5
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Description-Content-Type: text/markdown

# `solarcoins` — Python SDK for the SolarCoins ledger

Open-source client for the SOLAR/1 protocol. MIT licensed.

```bash
pip install solarcoins      # once published to PyPI
# or
pip install -e ./sdk        # local dev
```

## Quickstart

```python
from solarcoins import SolarClient, generate_keypair

client = SolarClient("https://solarcoins.net")

# Generate keys client-side — private key never leaves the local machine
kp = generate_keypair()

# Sign up + auto-login
client.signup("alice", "supersecret123", kp)

# Read balance
print(client.get_balance(kp.public_key))

# Send 5 SOLAR — caller manages sequence numbers
bob_pubkey = bytes.fromhex("...")
client.transfer(kp, bob_pubkey, "5.0", sequence_number=0)
```

## Spec reference

This SDK speaks the v1.4 protocol — see
[`SOLAR_protocol_spec_v1.4.md`](../docs/SOLAR_protocol_spec_v1.4.md).
The wire encoding (canonical CBOR, BLAKE2s tx_ids, Ed25519 signatures)
is implemented in `solarcoins.canonical` and `solarcoins.keys` to match
the server byte-for-byte.

## License

MIT
