attested-memory
Python client and CLI for Attested Memory — verifiable memory
for AI agents. Every call is signed by your own Ed25519 actor key; the private key never
leaves your machine. A memory you read is checked here, on the client, against the
content_hash the hub recorded, so a changed text is refused instead of trusted.
pip install attested-memory
attested-memory init # your actor key → ~/.config/attested-memory/actor.json (0600)
attested-memory trial # 7-day personal key, bound to that actor
attested-memory write "Supplier terms" "Net 30, EUR, signed 2026-09-01" --tag finance --source contract-17
attested-memory search supplier
attested-memory read mem_…
from attested_memory import Actor, Client
actor = Actor.generate() # or Actor.load("actor.json")
client = Client(actor)
client.start_trial() # or Client(actor, api_key="ask_…")
unit = client.write("Supplier terms", "Net 30", tags=["finance"])
client.read(unit["id"]) # raises IntegrityError if the text does not match its hash
What is checked where:
| where | |
|---|---|
your identity (did:actor: + SHA-256 of your public key) and a one-time signed proof per request |
client signs, server verifies |
the text of a memory matches its content_hash |
this client |
truth (supported / contested / rejected) and provenance (attested receipt) |
reported by the hub |
The proof is a signature over <actor id>\n<unix seconds>\n<nonce>: good for five minutes and
one request, so a captured header set replays nowhere.
Environment for the CLI: ATTESTED_MEMORY_HOME, ATTESTED_MEMORY_URL, ATTESTED_MEMORY_API_KEY.
Apache-2.0. Source: alexar76/attested-memory (clients/python).
Metadata
Release files for attested-memory 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| attested_memory-0.1.0.tar.gz | 9.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| attested_memory-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.5 kB
Release files / attested_memory-0.1.0.tar.gz
| Download URL | attested_memory-0.1.0.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f826bfa7a74dcdb2ab8820cdf36ff7d704ba06948dbf68a10321841efa96b65
|
|
BLAKE2b-256 checksum How to use checksums |
70d30f9f3ac831e453a0761c1bea38b4b0324bb40403c0ec49a67fa4b9baad38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / attested_memory-0.1.0-py3-none-any.whl
| Download URL | attested_memory-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7530adc222e21236f25f815ae6ccc36aafb4feb571bda9077787bfd352f04ff2
|
|
BLAKE2b-256 checksum How to use checksums |
b316046b3c7d5b903915838ae89f94ce4ab2c79d8b86c574d38d7c1849353cde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|