Metadata-Version: 2.4
Name: chaincraft
Version: 1.0.0
Summary: A platform for decentralized protocols — wire, objects, and pedagogical consensus
Author: Chaincraft Contributors
License-Expression: MIT
Project-URL: Homepage, https://github.com/jose-compu/chaincraft-monorepo
Project-URL: Repository, https://github.com/jose-compu/chaincraft-monorepo
Project-URL: Documentation, https://github.com/jose-compu/chaincraft-monorepo#readme
Keywords: blockchain,education,prototyping,distributed,consensus,chaincraft,gossip,p2p
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Distributed Computing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: ed25519
Requires-Dist: cryptography>=42.0; extra == "ed25519"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: cryptography>=42.0; extra == "dev"
Dynamic: license-file

# chaincraft

Reference implementation of the Chaincraft wire protocol and object semantics.

## Install

```bash
pip install chaincraft
```

Ed25519 is optional: `pip install "chaincraft[ed25519]"`.

## Example

Assumes `chaincraft` is installed.

```python
from chaincraft import Envelope, encode_frame

env = Envelope.build("app.counter", {"by": "alice", "delta": 1})
frame = encode_frame(env.to_bytes())
```

Specification and the Rust and TypeScript implementations live in the
[monorepo](https://github.com/jose-compu/chaincraft-monorepo).
