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 / explain / epoch-verify
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)
tamga epoch-verify proof.json --rpc # OUTWARD: verify someone ELSE's epoch-seal inclusion
# proof (explorer JSON); GREEN rc0 / RED rc1 /
# İNDETERMİNE rc2 — a dead RPC never reads green
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.
6c. Verify a claim with zero Tamga code (foreign counterparty)
The attestation verifier ships as one stdlib-Python file — a counterparty who does not trust us, and does not want to install anything, can still verify:
curl -sO https://raw.githubusercontent.com/goun7/tamga-protocol/main/tools/attest_verify_bagimsiz.py
python3 attest_verify_bagimsiz.py claim.json
{"verdict": "GREEN", "reason": "ok", "registry": "CAPACITY_ATTEST_V1",
"signer_recover": "0xf11ce714…", "buyerAddress": "0xf11ce714…"}
Everything needed is inside that file: keccak256, RFC 8785 canonicalization, secp256k1 signature recovery. Installing Tamga is never a prerequisite for checking Tamga — which is the point of a receipt standard rather than a trusted service.
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-12 against the published wheel on live PyPI (0.2.3: install →
quickstart → ledger-verify → verify-mini → tamga explain --charge → bundle all
green on a clean venv; wheel-side keccak KAT proven). Note: the PUGIO ingest
surface needs 0.2.4+ (0.2.3 shipped the file in the repo but not in the
wheel — the packaging lesson that became AT-026).
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
Metadata
Release files for tamga-protocol 0.2.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tamga_protocol-0.2.13.tar.gz | 322.5 kB | Without provenance | Details for tamga_protocol-0.2.13.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tamga_protocol-0.2.13-py3-none-any.whl | Python 3 | none | any | Details for tamga_protocol-0.2.13-py3-none-any.whl |
Total release size: 470.2 kB
Release files / tamga_protocol-0.2.13.tar.gz
| Download URL | tamga_protocol-0.2.13.tar.gz |
|---|---|
| Size | 322.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6cd4209682799b3501eec902b8f5b1b6e52ae4c620297cec4cc1595ae437c67a
|
|
BLAKE2b-256 checksum How to use checksums |
92ece796797d4850f6d16ec7a20b6710f224364c49b5e70b81ea0027c37f5bbd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Release files / tamga_protocol-0.2.13-py3-none-any.whl
| Download URL | tamga_protocol-0.2.13-py3-none-any.whl |
|---|---|
| Size | 147.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e01d48b59eb0521191f772532cd209084c910384e34e534391a2eebcd3827ccd
|
|
BLAKE2b-256 checksum How to use checksums |
c51575893f27988b1258271e7cfacb21ad5a8295734f2c012c0dacc44b7b19c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Security for tamga-protocol 0.2.13
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.