Arquitetura¶
O simple-vc liga três peças pequenas: uma identidade did:key Ed25519, assinatura de
credenciais em JWT via did-jwt-vc, e verificação offline via key-did-resolver.
flowchart LR
subgraph Emitir
K["par de chaves Ed25519"] --> D["did:key (chave pública embebida)"]
D --> I["issueCredential()"]
I --> J["VC como JWT EdDSA"]
end
subgraph Verificar
J --> V["verifyCredentialJwt()"]
R["key-did-resolver<br/>(offline)"] --> V
V --> O["{ verified, issuer, credential }"]
end
Mapa de módulos¶
| Módulo | Responsabilidade |
|---|---|
did.ts |
Gerar um did:key a partir de uma chave Ed25519; construir o signer did-jwt |
issue.ts |
Construir o payload da VC e assiná-lo como JWT |
verify.ts |
Resolver o DID do emissor offline e verificar a assinatura |
Princípios de design¶
- Offline por construção — a chave pública vive no DID, por isso a verificação não precisa de registo nem rede.
- Superfície minúscula — três funções; SSI avançado (revogação, rotação, carteiras) está fora do âmbito de propósito.
- Identidades determinísticas — uma seed de 32 bytes dá sempre o mesmo DID, por isso podes persistir e recarregar um emissor.