POST /v1/identity/verify: an AERE Identity presentation judged by the published command line -> VALID / PARTIAL / INVALID with every
row, the claims shown and the subject when no row failed, and the command that reproduces the verdict.
POST /v1/compliance/check: your policy judged on a presentation -> COMPLIANT / NOT_COMPLIANT with the reasons and, with record, the
decision as an AIP-23 envelope without personal data.
In Go the presentation, keys, lists and policy travel as json.RawMessage: a map or float64 would change numbers above 2^53 and the
canonical text the signatures cover. The .NET negative control now builds clean for each planted defect (an incremental build could
run the tests against the previous planted library). A negative control for the JavaScript and Python routes is added.
Tests: JavaScript 13, Python 14, Go ok, Java 10/10 (and the Java 8 API gate); negative controls Go 9/9, Java 10/10, .NET 12/12,
JavaScript and Python 4/4.
The post-quantum finality point of the chain (finalized/safe = the parent of the
most recent anchor whose certificate reaches the threshold in force). Same surface
in every client; tests updated (JS 12, Python 12, Go ok, Java 7). Synced byte for
byte from the source tree (aerenew/sdk) on 2026-09-26.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The README told readers to run npm install @aere/cloud and pip install aere-cloud; neither name exists on those registries, so the
command failed, and a name there that looks like ours is not ours. Install now points at this repository for JavaScript, Python
(python/, subdirectory install) and Go (go/); java/ builds from source with the JDK alone.
Import path git.aere.network/aere-network/aere-cloud-sdk/go. JSON routes return json.RawMessage; the audit export and the check of a
kept export return typed results with the sha256 computed locally. Redirects are not followed. go test ./... runs offline against a
local httptest server; control-negativ.mjs breaks six guards in a copy of the package and requires each one's test to fail.
auditRetention() reads the retention of the audit log (read-only with the API key; it is set with a wallet signature in the
console). auditVerifyKept(day, bytes) checks an export you kept against the day we hold or against the tombstone a deleted day
left (its digest), hashing your bytes locally. The client no longer follows redirects: fetch followed them and carried the
x-api-key header to whatever host a Location named; a 3xx is now an AereCloudError with its status.