Overview
did:sigilum is a DID method for verifiable AI-agent identity under a human-owned namespace. The method binds a namespace owner, approved Ed25519 agent public keys, and service authorizations to produce a DID Document that relying services can verify.
Status: DraftMethod name:
sigilumPrimary network: Base L2 (or compatible EVM deployment)
Reference contract:
contracts/src/SigilumRegistry.sol
Method-Specific Identifier
Syntax
Base DID form:- MUST be 3-64 characters
- Allowed characters:
a-z,A-Z,0-9,- - MUST begin and end with an alphanumeric character
Identity Hierarchy Format
For audit records and fine-grained authorization, the protocol uses an extended fragment format:- Namespace:
mfs(the owning entity) - Service:
narmi(the authorized service) - Agent:
davis-agent(the specific agent instance) - Subject:
customer-12345(the authenticated principal)
DID Document Model
Resolver output uses W3C DID Core JSON-LD context:Verification Method
Each verification method includes:- id: DID URL with fragment identifying the key
- type:
Ed25519VerificationKey2020(only supported key type) - controller: The DID that controls this key
- publicKeyMultibase: Ed25519 public key in multibase format
Authentication and Assertion
Verification methods are referenced in:- authentication: Keys used for authentication
- assertionMethod: Keys used for signing assertions
Service Endpoints
Service entries define authorized agent endpoints:- id: DID URL with fragment identifying the service
- type:
AgentEndpoint(Sigilum-specific service type) - serviceEndpoint: URL for verification and service discovery
Method Operations (CRUD)
did:sigilum operations are backed by SigilumRegistry state transitions and mirrored API state.
Create
Create namespace DID:did:sigilum:<name> becomes resolvable
Create authorized verification material:
Two-step contract flow:
Read (Resolve)
Resolve DID document: DID Document endpoint:- Content type:
application/did+ld+json - Returns DID Document only
- Content type:
application/ld+json;profile="https://w3id.org/did-resolution" - Returns resolution envelope with:
@context:https://w3id.org/did-resolution/v1didDocumentdidDocumentMetadatadidResolutionMetadata
- Reads namespace owner state
- Reads approved claims (
status = approved) - Converts Ed25519 keys to
publicKeyMultibaseformat - Emits DID Document with metadata
invalidDid→ HTTP400notFound→ HTTP404internalError→ HTTP500
Update
Update DID control/authorization state: Transfer control:Deactivate
Method-level deactivation is represented by:- Removal of namespace-owner control-plane record
- Revocation of all active approvals
didDocumentMetadata.deactivated = true- DID remains identifiable, but active verification methods are empty
Contract Interface
Core methods inSigilumRegistry:
| Method | Purpose |
|---|---|
registerNamespace | Create new namespace DID |
transferNamespace | Transfer namespace ownership |
submitClaim | Submit agent key for approval |
approveClaim | Approve pending claim |
rejectClaim | Reject pending claim |
revokeClaim | Revoke approved claim |
approveClaimDirect | Single-step approval (API mode) |
revokeClaimDirect | Single-step revocation |
isAuthorized | Check authorization status |
Resolution Examples
Example 1: Basic Resolution
Request:Example 2: Resolution with Metadata
Request:Security Considerations
- Namespace ownership controls approval and revocation rights
- Approved key lookups are deterministic (
namespace + publicKey + service) - Resolver output should be consumed with cache TTL and replay-safe request signing at runtime
- Private keys are never published in DID Documents
- Deactivation is explicit through namespace removal and claim revocation
Privacy Considerations
- DID Documents expose only public verification material and service authorization bindings
- Sensitive secrets remain in gateway-local encrypted storage
- Private data is not part of DID resolution output
- Subject identifiers in audit records are managed by namespace owners
Conformance Notes
This method conforms to:- W3C DID Core document shape
- DID Resolution endpoint envelope format
- Ed25519VerificationKey2020 key type specification
Related Documentation
Signing Profile
RFC 9421 HTTP message signatures
Security
Security considerations and best practices
Protocol Overview
High-level protocol documentation
Security
Security considerations and best practices