Credential formats
LutraID issues and verifies exactly two formats. Which one a credential uses is decided by the document type, not by the API call.
| Format identifier | Also called | Type carried by |
|---|---|---|
dc+sd-jwt | SD-JWT VC (HAIP 1.0) | vct |
mso_mdoc | ISO/IEC 18013-5 mdoc | doctype |
vc+sd-jwt is accepted on input as a legacy alias and normalised to dc+sd-jwt; it is never emitted. There is no jwt_vc_json and no ldp_vc.
Keys and algorithms
| Key types | EC only — P-256 (default), P-384, P-521 |
| JWS | ES256 / ES384 / ES512 |
| COSE | −7 / −35 / −36 |
| Holder binding | JWK and COSE_Key, plus x5c — no DID methods |
| Wallet proofs | proofs.jwt only, signed ES256/384/512 |
| SD-JWT digests | sha-256 |
Encryption
Credential requests and responses may be encrypted with ECDH-ES and A128GCM or A256GCM; an encrypted response comes back as application/jwt. Request-encryption ephemeral keys must be P-256.
Validity
Credential lifetime is currently fixed: one year for SD-JWT VC, 365 days for mdoc. It is not configurable per document type yet.
Declared but not implemented
Issuer metadata reserves deferred_credential_endpoint, notification_endpoint and batch_credential_issuance, and the credential request schema reserves credential_identifier. None of them are wired up — do not build against them.