Concepts

Callback and verification.

VibeID posts the signed result to your callback endpoint. Verify successful callbacks before creating a session or storing profile metadata.

Callback payload

FieldMeaning
statusok or error.
vProtocol version. Current value is 1.
kindsignin for this flow.
requestIdThe request id from the challenge.
signatureBase64 signature. Required when status is ok.
diddid:vibe:p256:<base64url-compressed-public-key>. Required when status is ok.
algP-256.
profileOptional display metadata. Verify the signature before storing it.
errorMachine-readable error code when status is error.
messageOptional human-readable failure detail.
{
  "status": "ok",
  "v": "1",
  "kind": "signin",
  "requestId": "abc123",
  "signature": "<base64>",
  "did": "did:vibe:p256:<base64url-compressed-public-key>",
  "alg": "P-256",
  "profile": { "displayName": "Personal" }
}

Signature verification

  • Require alg: "P-256".
  • Decode did:vibe:p256:... as a compressed 33-byte P-256 public key.
  • Verify SHA-256 ECDSA over the exact stored challenge string.
  • Accept DER and IEEE P1363 ECDSA encodings during the pilot.