This release is a pre-release and may not be stable for production use.
QUICKSTART — Tamga Protocol in 5 minutes
Self-custodial, hash-chained work-receipt ledger for autonomous AI agents. Every claim below was executed on a clean venv before being written here.
0. Install
pip install tamga-protocol # Python 3.10+, single dependency: PyNaCl
tamga --help # command overview (no engine needed)
The 67 MB wasmtime engine is not in the wheel. It is downloaded once,
SHA256-pinned, on your first tamga run — verification commands never need it.
Air-gapped host? Pre-place the pinned binary at either of the two accepted
locations and the downloader is skipped entirely (code path: tamga_bootstrap):
~/.cache/tamga/bin/wasmtime or <site-packages>/tools/bin/wasmtime.
1. Generate an agent seed (printed once, never stored)
tamga keygen
{"ok": true, "op": "keygen", "agent_id": "4f83f2ac…", "seed_hex": "c4717ab8…",
"note": "D3: seed not written to disk; store it safely"}
Keep seed_hex for the next step. Losing it means losing the agent identity.
2. Run a job (fee charged, receipt appended)
export TAMGA_KS_PASSPHRASE=quickstart-2026 # keystore passphrase (your choice)
tamga run ./my-pkg --seed <seed_hex>
{"ok": true, "op": "run", "pkg": "my-pkg", "session": 1, "nodes": 3,
"engine": "wasmtime-v48.0.1", "wall_ms": 115, "fee_sim": 2.279e-06,
"stdout_sha256": "aa8a2cd1…"}
No package yet? Copy the demo: cp -r tests/vectors/tc-net-demo ./my-pkg
(from the repo) — it contains tamga.json + a tiny WASI-0.3 agent.
3. Verify the chain (no engine, no trust in the runner)
tamga ledger-verify ./my-pkg
{"ok": true, "op": "ledger-verify", "lines": 1,
"head": "9314bcdf…", "note": "chain tip verified (RFC-003 D7 draft)"}
Anyone with this JSON output can re-verify your chain independently.
4. Migrate the agent (sealed snapshot travels, key never on disk)
tamga export ./my-pkg -o snapshot.tsg --seed <seed_hex>
On the new host, prepare the package dir FIRST (same code: tamga.json +
agent.wasm) - import fails closed with manifest_reject if it is missing
(this is the A1 ownership boundary, verified 2026-09-10 on the published wheel):
mkdir -p ./my-pkg-restored && cp my-pkg/tamga.json my-pkg/agent.wasm ./my-pkg-restored/
tamga import snapshot.tsg ./my-pkg-restored
tamga ledger-verify ./my-pkg-restored # chain resumed: lines=1, same head
{"ok": true, "op": "import", "resumed_session": 1, "memory_nodes": 3,
"note": "AT-001e: identity from keystore, memory from body — restored"}
5. If something misbehaves
tamga doctor # install health: python / pynacl / wasmtime / verify-mini / bundle
tamga --version
6. Let someone verify you without installing anything
tamga verify-mini ./my-pkg/ledger.jsonl # stdlib-only, no engine, no Tamga install
tamga bundle ./my-pkg -o evidence/ # one-file proof package (JSON + human summary)
The bundle carries the chain records, the manifest re-hash, and per-job digests — the counterparty re-derives every claim offline. Full flow: docs/AGENT-GUIDE.md §8b.
6b. Use it as a library (no CLI, no engine)
The four engine-free modules import directly from the published wheel:
import tamga_verify_mini # stdlib-only chain verification (verify(...))
import tamga_bundle # evidence-bundle builder (build(...))
import tamga_validator # manifest + record canonicalization (jcs(...))
import tamga_bootstrap # pinned wasmtime fetch for tamga run
Verified 2026-09-10 against the published 0.2.0rc1 wheel: all four import on a clean interpreter with zero third-party packages.
What just happened
- The job ran inside a denied-by-default WASI sandbox (no filesystem preopens, no network).
- Its fee, stdout hash, and memory delta were appended to a hash-chained ledger.
- The agent identity + memory traveled in one encrypted snapshot you can hold.
- Verification is offline and third-party —
ledger-verifyrecomputes the chain.
Next steps
- Threat model & architecture: docs/ARCHITECTURE.md
- Ledger spec: RFC-003 · Runner spec: RFC-002
- Full test evidence: docs/TESTS.md
- Plain-language intro (Türkçe): docs/PLAIN-TURKISH.md
Release files for tamga-protocol 0.2.0rc2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tamga_protocol-0.2.0rc2.tar.gz | 51.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tamga_protocol-0.2.0rc2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 101.4 kB
Release files / tamga_protocol-0.2.0rc2.tar.gz
| Download URL | tamga_protocol-0.2.0rc2.tar.gz |
|---|---|
| Size | 51.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
69a043476524a6fba52a88f6b848da17efd1ac9c9f2decef31f86a99329d22f4
|
|
BLAKE2b-256 checksum How to use checksums |
d6c2538439404b7c6ff429db7585ab492bdf04651a9979677ab104604e554cb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / tamga_protocol-0.2.0rc2-py3-none-any.whl
| Download URL | tamga_protocol-0.2.0rc2-py3-none-any.whl |
|---|---|
| Size | 49.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7dce237d8fe4df309fbf605eb1ab6d4a3cf743acc44d60a53459247d46002ea8
|
|
BLAKE2b-256 checksum How to use checksums |
8f8f189fea1c9d5f92e3dc74b0a27d98e29d15a045a8c0e201adc9499f970501
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|