Released docs. You are viewing the documentation published with v0.20.0. Development docs are available at Latest.
Produce evidence for one authorized fixed requirement
const url = 'https://example.com/v1/evidence';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"holderKeys":[{"alg":"ES256","crv":"P-256","kid":"example","kty":"EC","x":"example","y":"example"}],"purpose":"example","requestNonce":"example","requirement":"https://example.com","subjects":[{"role":"example","selector":{"profile":"example","values":{"additionalProperty":"example"}}}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/evidence \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "holderKeys": [ { "alg": "ES256", "crv": "P-256", "kid": "example", "kty": "EC", "x": "example", "y": "example" } ], "purpose": "example", "requestNonce": "example", "requirement": "https://example.com", "subjects": [ { "role": "example", "selector": { "profile": "example", "values": { "additionalProperty": "example" } } } ] }'Missing Accept, /, and the exact application/jose+json media type select the default signed flattened JWS. Only the exact application/vnd.registrystack.evidence-unsigned+json media type selects the unsigned envelope, only the exact application/dc+sd-jwt media type selects the SD-JWT VC serialization of the same assertion, and only the exact application/vnd.registrystack.evidence.batch+json media type selects the holder-bound batch issuance envelope carrying one credential per presented holder key; each is released only when the immutable bundle, the complete matched authority grant, and the requirement’s subject binding mode all permit it. Duplicate, combined, parameterized, weighted, or unknown negotiation returns 406 before source access.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
object
Responses
Section titled “Responses”Signed Evidence as flattened JWS JSON Serialization by default, or the explicitly authorized SD-JWT VC serialization, holder-bound batch issuance envelope, or self-identifying unsigned envelope
Compact SD-JWT VC: the issuer-signed JWT, then the root-value and configured structured-field disclosures, then a trailing tilde marking an absent key-binding JWT. The issuer never appends a key-binding JWT.
object
Examplegenerated
{ "payload": "example", "protected": "example", "signature": "example"}object
object
object
object
object
object
object
object
Example
{ "evidence": { "assuranceProfile": "local", "schema": "registry.assertion-evidence/v1", "subjectBinding": "audience-scoped", "supportedValues": [ { "value": { "form": "date-bucket" } } ], "type": "Evidence" }, "integrityProtection": "none", "schema": "registry.unsigned-evidence-envelope/v1", "type": "UnsignedEvidenceEnvelope", "warning": "not-cryptographically-verifiable"}object
Example
{ "schema": "registry.sd-jwt-vc-batch-envelope/v1", "type": "SdJwtVcBatchEnvelope"}Headers
Section titled “Headers”Evidence responses are never cacheable.
The response format is negotiated through the exact Accept matrix.
Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.
Malformed request or invalid selector
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
Example
{ "code": "evidence.invalid_request", "detail": "the Evidence request is invalid", "status": 400, "title": "Evidence request is invalid", "type": "https://id.registrystack.org/problems/registry-evidence/evidence/invalid_request"}Headers
Section titled “Headers”Evidence responses are never cacheable.
The response format is negotiated through the exact Accept matrix.
Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.
Authentication failed
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
Example
{ "code": "auth.invalid_credential", "detail": "bearer access token validation failed", "status": 401, "title": "Bearer access token is invalid", "type": "https://id.registrystack.org/problems/registry-evidence/auth/invalid_credential"}Headers
Section titled “Headers”Evidence responses are never cacheable.
The response format is negotiated through the exact Accept matrix.
Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.
Request is not authorized, including a recognized response format the bundle or matched grant does not permit
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
Example
{ "code": "evidence.denied", "detail": "the Evidence request is not permitted", "status": 403, "title": "Evidence request is not permitted", "type": "https://id.registrystack.org/problems/registry-evidence/evidence/denied"}Headers
Section titled “Headers”Evidence responses are never cacheable.
The response format is negotiated through the exact Accept matrix.
Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.
Media negotiation is outside the closed Accept matrix
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
Example
{ "code": "format.unsupported", "detail": "the requested format is not supported", "status": 406, "title": "Requested format is not supported", "type": "https://id.registrystack.org/problems/registry-evidence/format/unsupported"}Headers
Section titled “Headers”Evidence responses are never cacheable.
The response format is negotiated through the exact Accept matrix.
Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.
Evidence could not be produced
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
Example
{ "code": "evidence.unavailable", "detail": "evidence could not be produced for this request", "status": 422, "title": "Evidence could not be produced", "type": "https://id.registrystack.org/problems/registry-evidence/evidence/unavailable"}Headers
Section titled “Headers”Evidence responses are never cacheable.
The response format is negotiated through the exact Accept matrix.
Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.
Request rate exceeded
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
Example
{ "code": "evidence.rate_limited", "detail": "the Evidence request rate is exhausted", "status": 429, "title": "Evidence request rate is exhausted", "type": "https://id.registrystack.org/problems/registry-evidence/evidence/rate_limited"}Headers
Section titled “Headers”Evidence responses are never cacheable.
The response format is negotiated through the exact Accept matrix.
Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.
Dependency or service temporarily unavailable
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
object
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
- Evidence public problem Version 1
object
object
object
object
object
object
object
object
object
object
Example
{ "code": "source.unavailable", "detail": "the authoritative source is unavailable", "status": 503, "title": "Authoritative source is unavailable", "type": "https://id.registrystack.org/problems/registry-evidence/source/unavailable"}Headers
Section titled “Headers”Evidence responses are never cacheable.
The response format is negotiated through the exact Accept matrix.
Effective W3C trace context. One valid inbound traceparent is retained; missing, invalid, or duplicate values are replaced and tracestate is never reflected.