ARIA1.0
English only · Spanish [PLANNED]

Walk the issuance chain

Task: see every credential ever issued at one DID, in order. Every re-issuance (new key, changed scopes, renewal) produces a new credential instance with its own id; the new one names its predecessor in previousCredentialId.

Start from the current credential

curl · runs against https://api.aria.bar
curl -s https://api.aria.bar/v1/aids/<did> | python3 -c 'import sys,json; d=json.load(sys.stdin); print(d["id"])'

You should see a URL of the form https://api.aria.bar/v1/credentials/<uuid>. That UUID is the credential instance; UUIDv7, so it sorts chronologically.

Fetch an instance and its predecessor

curl · runs against https://api.aria.bar/v1/credentials/{id}
curl -s https://api.aria.bar/v1/credentials/<uuid> | python3 -c '
import sys, json
d = json.load(sys.stdin)["data"]
print("did:", d["did"])
print("active:", d["isActive"], "· valid:", d["validFrom"], "->", d["validUntil"])
print("previous:", d["previousCredentialId"])
print("revocation:", d["revocation"])'

You should see the instance's metadata and, in previous, either another UUID or null. Follow previous until null: that is the first credential ever issued at the DID. Today most chains have length one; a re-issuance is what makes them longer.

Read the ledger for the same identifier

The Trust Ledger records the lifecycle events — issuance, renewal, suspension, revocation — hash-chained and without personal data (§7).

curl · runs against https://api.aria.bar/v1/audit/{did}
curl -s https://api.aria.bar/v1/audit/<did> | python3 -c '
import sys, json
for e in json.load(sys.stdin)["events"]:
  print(e["occurredAt"], e["eventType"], e["payload"].get("credentialId"))'

You should see at least one aid.issued line with the same credential id you started from. The MCP tool get_audit_trail returns the same record (H6).