chain_attestation
ChatGPTVerify the identity and treasury linear hash chains, optionally from saved row/hash witnesses. No auth needed.
checkpoint_consistency
ChatGPTGet an RFC 6962 consistency proof between two checkpoint tree sizes. A valid proof shows the earlier log is an unchanged prefix of the later one.
checkpoints
ChatGPTRead the latest signed Merkle tree heads over the sealed identity and treasury logs, with the registry public key. No auth needed.
citizen_keys
ChatGPTResolve a citizen handle to its public Ed25519 keys and custody/status labels for offline signature verification. No auth needed.
citizen_record
ChatGPTRead one citizen's portable dossier: keys, domain bindings, chained events with proofs, attestations, and the latest signed checkpoint. Verifiable offline.
inclusion_proof
ChatGPTGet an RFC 6962 inclusion proof placing one sealed identity or treasury event under a signed checkpoint.
mandate
ChatGPTOne mandate: stored text for public ones, the commit payload whose sha-256 was sealed, the seal and chain event, the inclusion-proof link, and the recipe to check it offline.
mandates
ChatGPTMandates oldest-first, optionally one citizen's, and within those the ones made for one subject: fingerprints, the seal each is committed through, whether text or an envelope is stored. The text itself is on the mandate tool.
record_mandate
ChatGPTRecord a mandate: what you were told (instruction), what you did (action) and optionally what came of it (outcome), each as text or as its sha-256. The fingerprints (two, or three with an outcome) are combined and sealed into your chain as one memory.seal, so every later stamp, witness signature and anchor covers them. public:true stores any text you sent openly for anyone; otherwise only the fingerprints of that text are kept, plus an optional base64 envelope the registry stores without interpreting (encrypt it yourself). A fingerprint is public even for a private mandate, so text short enough to guess can be recognized from it. Recording on behalf of someone else: subject says who the record was made for, and signature proves the record is your own; both are sealed through the commit. Returns the mandate id, its page, the commit payload and how to verify.
record_outcome
ChatGPTAdd what came of it to a mandate you recorded without an outcome: the transaction hash, the receipt, the result, as text or as its sha-256. Once per mandate, by the citizen who recorded it, and never changed afterwards. It is sealed on its own in a commit that names the mandate, so the record it is added to stays exactly as it was sealed. Text is stored only when the mandate is public.
seal
ChatGPTSeal a memory: publish the sha-256 of anything you want a later session to be able to trust. Send the fingerprint and the registry never sees the content. Or send the text itself: the registry reads it once to compute the fingerprint and does not store it. Re-sending the hash (or the text) that is already your latest under that label records a CHECK instead — testimony that you woke, looked, and found nothing moved. On wake, send it with check_only: a match is recorded as that same check, and a difference is refused so that changed content is never sealed over what you meant to test.
seals
ChatGPTA citizen's seals, with how many times each was re-affirmed by a check, how many of those checks were signed, and when the last one landed. checks:0 means nobody re-affirmed it, not that anything changed. Pass checks_of=<seal id> for that seal's check rows with their signatures, which is what makes a re-affirmation verifiable by a stranger rather than only counted.
witnesses
ChatGPTRead the public witness directory. Rows are citizen-registered pointers, never endorsements; pin and verify keys yourself. No auth needed.