Technical Specification & Architecture
Archon is built around a separation of concerns architecture. Each Archon node contains three main layers:
The authoritative local source for DID state. Receives and validates DID operations, maintains operation queues per registry, and provides a REST API for DID CRUD operations. Supports multiple database backends (Redis, MongoDB, SQLite).
Client-side wallet library responsible for BIP-32 hierarchical deterministic key derivation, BIP-39 mnemonic seed phrase management, ECDSA signing of DID operations, and encryption/decryption of messages and credentials.
Network synchronization components that distribute DID operations across the network. Includes Hyperswarm Mediator for P2P gossip, Satoshi Mediator for blockchain anchoring, and Inscription Mediator for Taproot-based registration.
A typical DID operation flow follows this sequence:
The did:cid method leverages Content Identifiers (CIDs) from IPFS to create self-certifying, content-addressed DIDs:
did:cid:<cid>[;service][/path][?query][#fragment]
Example: did:cid:bafkreig6rjxbv2aopv47dgxhnxepqpb4yrxf2nvzrhmhdqthojfdxuxjbe
Archon supports two fundamental DID types:
Archon DID documents are W3C-compliant with Archon-specific extensions:
{
"@context": "https://w3id.org/did-resolution/v1",
"didDocument": {
"id": "did:cid:bafkrei...",
"verificationMethod": [{
"id": "#key-1",
"type": "EcdsaSecp256k1VerificationKey2019",
"publicKeyJwk": { /* JWK format */ }
}],
"authentication": ["#key-1"],
"assertionMethod": ["#key-1"]
},
"didDocumentMetadata": {
"created": "2024-01-15T10:30:00Z",
"versionId": 1
},
"didDocumentData": {},
"didDocumentRegistration": {
"registry": "hyperswarm",
"type": "agent",
"version": 1
}
}All DID state changes occur through signed operations. Three operation types are supported:
The didDocumentData field is an extension to the W3C DID specification that allows arbitrary application data to be stored alongside the DID. This transforms DIDs from static identifier containers into rich, self-sovereign data repositories.
The W3C DID Core specification explicitly supports extensibility. Archon's didDocumentData is an additive extension that follows W3C guidance, ensuring graceful degradation for systems unaware of it.
Archon provides a unified interface across different consensus mechanisms. This abstraction allows users to choose their preferred security/cost trade-offs at DID creation time.
| Registry | Confirmation Time | Cost | Finality Type | Best For |
|---|---|---|---|---|
| Hyperswarm | Seconds | Free | Eventual consistency | Development, testing |
| Bitcoin | ~60 min (6 blocks) | ~$0.001/batch | Computational (PoW) | Enterprise, legal documents |
| Feathercoin | ~15 min (6 blocks) | ~$0.00001/batch | Computational (PoW) | Cost-sensitive applications |
The Hyperswarm registry provides fast, peer-to-peer operation distribution using a gossip protocol. Operations are broadcast to connected peers, validated locally, and ordered by timestamp with cryptographic tiebreakers for eventual consistency across the network.
Bitcoin and Feathercoin registries anchor operation batches to the blockchain via OP_RETURN outputs. The mechanism:
Operations confirmed on blockchain automatically receive cryptographic timestamping:
blockid field, proving creation after that blockArchon implements the full W3C Verifiable Credentials Data Model, enabling compatibility with the broader identity ecosystem. Credentials follow the standard structure with issuer, holder, verifier, and optional revocation support.
Archon uses industry-standard key derivation:
All operations are signed using ECDSA over secp256k1:
signature = ECDSA_sign( private_key, SHA256(canonical_json(operation)) )
DIDs are derived from content addresses, making them self-certifying:
operation = create_operation(public_key, registry, ...) canonical = json_canonicalize(operation) cid = IPFS_add(canonical) // CIDv1, base32 did = "did:cid:" + cid
The DID itself proves the integrity of the creation operation through cryptographic hashing.
Archon enables resolving DIDs at any point in their history through operation chaining:
resolveDID(did, { versionTime: "2024-01-15T10:00:00Z" })
resolveDID(did, { versionSequence: 3 })
resolveDID(did, { versionId: "bafkrei..." })Use Cases: Audit trails, dispute resolution, compliance verification, historical analysis
A complete email system built on the DID infrastructure supporting folder organization, CC with individual encryption, file attachments as asset DIDs, read tracking, and dual encryption.
Two-phase voting protocol with ballot collection (private), optional result revelation, spoil ballots for plausible deniability, and anonymous tallying.
Multi-party encrypted storage where members can share data without knowing each other's identities, ideal for whistleblower systems and anonymous committees.
Flexible authentication supporting simple identity challenges, credential type challenges, and issuer-specific challenges with Verifiable Presentations.
Secure key rotation without changing the DID. Old keys cannot sign new operations (enforced by previd chain), but historical signatures remain verifiable.
Nodes synchronize through multiple channels: Hyperswarm for fast gossip-based distribution, IPFS for content availability, and blockchain nodes for finality confirmation. This multi-layer approach ensures both speed and security.