Skip to main content

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-verify recomputes the chain.

Next steps

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)

Source distribution for tamga-protocol 0.2.13
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)

Table of built distributions (wheels) for tamga-protocol 0.2.13
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page