@agenticprimitives/estate-projection 0.0.0-alpha.18 → 0.0.0-alpha.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +20 -0
  2. package/package.json +3 -3
package/README.md CHANGED
@@ -20,5 +20,25 @@ const pres = makeAuthorityPresentation(projection, 'membership', credentialDiges
20
20
  const verdict = verifyAuthorityPresentation(pres, rootsReadFromTheRegistry, { subject, nonce, audience, now, maxAgeSeconds: 3600 });
21
21
  ```
22
22
 
23
+ ## The issuer row
24
+
25
+ A credential issuer anchors one more root on the same registry: its **live-credential** set, the credentials it still
26
+ stands behind. The leaf is `credentialDigestOf(jwt)` — keccak over the issuer-signed compact JWT — under a per-leaf
27
+ blind; the row id is `estateIdOf(chainId, issuerSA)` and the row is tagged `ISSUER_ROW_TAG`, so a verifier tells it
28
+ from an estate's. Revoking a credential is retiring its leaf: the next root is anchored without it, and every status
29
+ presentation built at an older sequence is stale against the chain. No chain is asked about a credential's liveness;
30
+ the issuer's own ledger decides it.
31
+
32
+ ```ts
33
+ import { buildIssuerProjection, credentialDigestOf, makeCredentialStatusPresentation, verifyCredentialStatusPresentation } from '@agenticprimitives/estate-projection';
34
+
35
+ const row = buildIssuerProjection({ chainId, issuer, sequence, liveCredentials }); // anchored by the issuer's projector
36
+ const status = makeCredentialStatusPresentation(row, credentialDigestOf(jwt), { nonce, audience });
37
+ const verdict = verifyCredentialStatusPresentation(status, issuerRootsReadFromTheRegistry, { nonce, audience, now, maxAgeSeconds });
38
+ ```
39
+
40
+ A status presentation names no subject. It is linkable to the credential's leaf, which is why a verifier asks for it
41
+ only where the alternative is phoning a status list.
42
+
23
43
  Evidence, never authority: whether the receiving estate lets the agent act is its own mandate, verified per step.
24
44
  An inclusion proof over the live set, deliberately — a revocation is a removal and a new root.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticprimitives/estate-projection",
3
- "version": "0.0.0-alpha.18",
3
+ "version": "0.0.0-alpha.19",
4
4
  "description": "An estate's public projection of its authority (spec 410 §4): the live-grant root and the membership root over blinded commitments, anchored on public ground; the authority presentation a verifier in another estate checks against them, learning that a grant is live or an agent is a member and nothing else.",
5
5
  "homepage": "https://agenticprimitives.dev",
6
6
  "bugs": {
@@ -35,8 +35,8 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "viem": "^2.52.2",
38
- "@agenticprimitives/types": "1.0.0-alpha.43",
39
- "@agenticprimitives/content-primitives": "1.0.0-alpha.40"
38
+ "@agenticprimitives/content-primitives": "1.0.0-alpha.40",
39
+ "@agenticprimitives/types": "1.0.0-alpha.44"
40
40
  },
41
41
  "devDependencies": {
42
42
  "vitest": "^4.1.11",