Overview
Authkeep implements the SIG (Signed Identity Graph) v0.1 protocol for signed relationship attestations.
What is Authkeep?
Authkeep is a Rust implementation of the SIG (Signed Identity Graph) v0.1 protocol — a web-native system for organizations to publish cryptographically signed relationship attestations and revocations.
Authkeep also operates a multi-issuer trust chain for marketplace use cases:
cSIG: open SIG infrastructurebot.inc: first major SIG client + issuer for job outcomes and escrow-linked reputation- optional third-party issuers for human verification and domain-specific attestations
Organizations publish an append-only event log of signed relationship events. Consumers verify the signatures, replay the events through a deterministic reducer, and derive the current state of all relationships.
Core Concepts
Issuers and Subjects
An issuer is an organization identified by a did:web DID. Issuers publish signing keys and event feeds at well-known HTTPS endpoints.
A subject is an individual or entity that the issuer attests a relationship with. Subjects are identified by DIDs (recommended: did:key).
Events
The protocol defines two event types:
relationship.upsert— creates or updates a relationship (employee, contractor, advisor, etc.)relationship.revoke— revokes a previously attested relationship
Events are signed with Ed25519 keys using JWS JSON Flattened Serialization and appended to an NDJSON feed.
Deterministic State
Consumers replay verified events in sequence order through a reducer to derive relationship state. Each relationship can be active, revoked, or expired.
Architecture
Authkeep is a Rust workspace with seven crates:
| Crate | Purpose |
|---|---|
authkeep-core | Data model, validation, and state reducer |
authkeep-jose | JWS signing, verification, and JWK/JWKS handling |
authkeep-server | Issuer-side operations (init, append, key rotation) |
authkeep-client | Consumer-side operations (verify, check, state derivation) |
authkeep-cli | Command-line interface wrapping all operations |
authkeep-api | HTTP API for check/verify/dump-state operations |
authkeep-web | Reference web UI server for challenge/attestation verification |
Design Principles
- Verifiable — cryptographic signatures with public key discovery
- Revocable — relationship changes are explicit, signed events
- Web-native —
.well-knownURLs, HTTPS, JSON, JWKS - Minimal — small surface area that solves a real problem
- Easy to implement — especially in Rust, but portable to any language