GET/authorisation/v4/presentation-definitions
Retrieves the presentation definition requirements associated with various OpenID Connect (OIDC) scopes.
Request
Query Parameters
- didr_write
- didr_invite
- tir_write
- tir_invite
- timestamp_write
- tnt_authorise
- tnt_create
- tnt_write
- tpr_write
- tsr_write
Possible values: [openid didr_write
, openid didr_invite
, openid tir_write
, openid tir_invite
, openid timestamp_write
, openid tnt_authorise
, openid tnt_create
, openid tnt_write
, openid tpr_write
, openid tsr_write
]
OIDC scope
Write to DID Registry
Example: openid didr_write
Register DID into DID Registry
Example: openid didr_invite
Write to Trusted Issuers Registry
Example: openid tir_write
Register VC into Trusted Issuers Registry
Example: openid tir_invite
Write to Timestamp Contract
Example: openid timestamp_write
Allow to authorise did:ebsi to create TnT documents.
Example: openid tnt_authorise
Allow to create a new Document.
Example: openid tnt_create
Allow to create events in a Document, grant access or remove documents.
Example: openid tnt_write
Write to Trusted Policies Registry Contract
Example: openid tpr_write
Write to Trusted Schemas Registry Contract
Example: openid tsr_write
Responses
- 200
- 400
- 500
Success
- application/json
- Schema
- didr_invite
- tir_invite
- didr_write
- tir_write
- timestamp_write
- tnt_authorise
- tnt_create
- tnt_write
- tpr_write
- tsr_write
Schema
- Array [
- ]
- Array [
- - The item 'must' be presented
required
- - The item 'can' be presented
allowed
- - The item 'must NOT' be presented
disallowed
- - The item 'must' be presented
required
- - The item 'can' be presented
allowed
- - The item 'must NOT' be presented
disallowed
- - The item 'must' be presented
required
- - The item 'can' be presented
allowed
- - The item 'must NOT' be presented
disallowed
- Array [
- MOD1
- MOD2
- Array [
- ]
- MOD1
- MOD2
- MOD1
- MOD2
- MOD1
- MOD2
- MOD1
- MOD2
- MOD2
- Array [
- ]
- ]
- Array [
- ]
- Array [
- ]
- ]
A UUID or some other unique ID to identify this Presentation Definition
A name property is a human-friendly string intended to constitute a distinctive designation of the Presentation Definition.
It describes the purpose for which the Presentation Definition's inputs are being requested.
format object
What claim variants Verifiers and Holders support.
jwt_vc object
Which JWT Algorithm is supported
Possible values: >= 1
List of names of the the JWT Algorithms
jwt_vc_json object
Which JWT Algorithm is supported
Possible values: >= 1
List of names of the the JWT Algorithms
jwt_vp object
Which JWT Algorithm is supported
Possible values: >= 1
List of names of the the JWT Algorithms
jwt_vp_json object
Which JWT Algorithm is supported
Possible values: >= 1
List of names of the the JWT Algorithms
submission_requirements object[]
List of requirements for described inputs in input descriptors.
what verifiable credential is demanded in order for the presentation to be sensible.
Why this verifiable credentials is requested.
Possible values: [all
, pick
]
Whether all the requirements are mandatory or holder has multiple options to select verifiable credentials from
Possible values: >= 1
How many of the credentials are demanded for the presentation to be sensible.
Minimum of the credentials are demanded for the presentation to be sensible.
Maximum of the credentials are demanded for the presentation to be sensible.
One of the group strings specified for one or more [[ref:Input Descriptor Objects].
Possible values: >= 1
nested submission_requirement and is a way to organize the requirements. For example requirements mentioned in the flat list will also be able to provide same information but will be less organized.
input_descriptors object[]required
List of descriptions of the required inputs.
The verifiable credentials that is acceptable from the holder. e.g. wa_driver_license
The verifiable credentials that is acceptable from the holder in a human readibly string form. i.e. an alternative for the humans to the id
It describes the purpose for which the Presentation Definition's inputs are being requested.
format object
What claim variants Verifiers and Holders support.
jwt_vc object
Which JWT Algorithm is supported
Possible values: >= 1
List of names of the the JWT Algorithms
jwt_vc_json object
Which JWT Algorithm is supported
Possible values: >= 1
List of names of the the JWT Algorithms
jwt_vp object
Which JWT Algorithm is supported
Possible values: >= 1
List of names of the the JWT Algorithms
jwt_vp_json object
Which JWT Algorithm is supported
Possible values: >= 1
List of names of the the JWT Algorithms
A group from which the specific credential is required.
constraints objectrequired
Describes the constraints from Verifier that should be followed by Holder.
Possible values: [required
, preferred
]
Whether an item is optional or not in the presentation. E.g. if an item is required presentation can not be accepted without it.
statuses object
statuses which are acceptable
active object
This is a requirement to show what directive is to be followed for this status.
Possible values: [required
, allowed
, disallowed
]
A directive is an instruction to the holder about what significance to give to the element it refers to.
suspended object
This is a requirement to show what directive is to be followed for this status.
Possible values: [required
, allowed
, disallowed
]
A directive is an instruction to the holder about what significance to give to the element it refers to.
revoked object
This is a requirement to show what directive is to be followed for this status.
Possible values: [required
, allowed
, disallowed
]
A directive is an instruction to the holder about what significance to give to the element it refers to.
fields object[]
It's a list of Fields.
Must be a unique identifier between all the fields in the Presentation Definition.
List of JSon paths where the field is expected to be found.
purpose for which the Claim's data is being requested.
filter object
This is the filter that can be applied on the field's value to know if the available credential with a specific field is acceptable or not.
const object
enum object[]
Fixed listed values which are acceptable in this variable.
exclusiveMinimum object
exclusiveMaximum object
format in which the item is expected. e.g. date time format of some sort.
When this keyword are added, they also add comparison functions to formats "date", "time" and "date-time"
When this keyword are added, they also add comparison functions to formats "date", "time" and "date-time"
When this keyword are added, they also add comparison functions to formats "date", "time" and "date-time"
When this keyword are added, they also add comparison functions to formats "date", "time" and "date-time"
acceptable minimum length (e.g. of string) that is acceptable
acceptable maximum length (e.g. of string) that is acceptable
minimum object
maximum object
The values which will make the item unacceptable
The regular expression that can help filter the target object.
Object type of the acceptable field.
items object
Possible values: [required
, preferred
]
Whether an item is optional or not in the presentation. E.g. if an item is required presentation can not be accepted without it.
human-friendly name that describes what the target field represents
Possible values: [required
, preferred
]
Whether an item is optional or not in the presentation. E.g. if an item is required presentation can not be accepted without it.
is_holder object[]
It's a list of holder_subjects.
The value of this property MUST be an array of strings, with each string matching the string value from a field object’s id property.
Possible values: [required
, preferred
]
Whether an item is optional or not in the presentation. E.g. if an item is required presentation can not be accepted without it.
same_subject object[]
It's a list of holder_subjects.
The value of this property MUST be an array of strings, with each string matching the string value from a field object’s id property.
Possible values: [required
, preferred
]
Whether an item is optional or not in the presentation. E.g. if an item is required presentation can not be accepted without it.
a JSON LD Framing Document object.
DIDR invite
{
"id": "didr_invite_presentation",
"format": {
"jwt_vp": {
"alg": [
"ES256",
"ES256K"
]
},
"jwt_vp_json": {
"alg": [
"ES256",
"ES256K"
]
}
},
"input_descriptors": [
{
"id": "didr_invite_credential",
"name": "Accreditation to write to the DID Registry",
"purpose": "Please present a valid VerifiableAuthorisationToOnboard issued by Root TAO or TAO",
"format": {
"jwt_vc": {
"alg": [
"ES256"
]
},
"jwt_vc_json": {
"alg": [
"ES256"
]
}
},
"constraints": {
"fields": [
{
"path": [
"$.vc.type"
],
"filter": {
"type": "array",
"contains": {
"const": "VerifiableAuthorisationToOnboard"
}
}
}
]
}
}
]
}
TIR invite
{
"id": "tir_invite_presentation",
"format": {
"jwt_vp": {
"alg": [
"ES256"
]
},
"jwt_vp_json": {
"alg": [
"ES256"
]
}
},
"input_descriptors": [
{
"id": "tir_invite_credential",
"name": "Accreditation to write to the Trusted Issuers Registry",
"purpose": "Please present a valid VerifiableAuthorisationForTrustChain from EBSI TO, or a Verifiable Accreditation (VerifiableAccreditationToAttest, VerifiableAccreditationToAccredit) issued by Root TAO or TAO.",
"format": {
"jwt_vc": {
"alg": [
"ES256"
]
},
"jwt_vc_json": {
"alg": [
"ES256"
]
}
},
"constraints": {
"fields": [
{
"path": [
"$.vc.type"
],
"filter": {
"type": "array",
"contains": {
"anyOf": [
{
"const": "VerifiableAuthorisationForTrustChain"
},
{
"const": "VerifiableAccreditationToAttest"
},
{
"const": "VerifiableAccreditationToAccredit"
}
]
}
}
}
]
}
}
]
}
DIDR write
{
"id": "didr_write_presentation",
"name": "Any type of Verifiable Attestation",
"format": {
"jwt_vp": {
"alg": [
"ES256",
"ES256K"
]
},
"jwt_vp_json": {
"alg": [
"ES256",
"ES256K"
]
}
},
"purpose": "Please present a valid Presentation signed by a registered Legal Entity.",
"input_descriptors": []
}
TIR write
{
"id": "tir_write_presentation",
"name": "Any type of Verifiable Attestation",
"purpose": "Please present a valid Presentation signed by a Trusted Issuer.",
"format": {
"jwt_vp": {
"alg": [
"ES256"
]
},
"jwt_vp_json": {
"alg": [
"ES256"
]
}
},
"input_descriptors": []
}
Timestamp write
{
"id": "timestamp_write_presentation",
"name": "Any type of Verifiable Attestation",
"purpose": "Please present an empty Presentation signed by a registered Legal Entity.",
"format": {
"jwt_vp": {
"alg": [
"ES256"
]
},
"jwt_vp_json": {
"alg": [
"ES256"
]
}
},
"input_descriptors": []
}
TNT authorise
{
"id": "tnt_authorise_presentation",
"format": {
"jwt_vp": {
"alg": [
"ES256",
"ES256K"
]
},
"jwt_vp_json": {
"alg": [
"ES256",
"ES256K"
]
}
},
"input_descriptors": [
{
"id": "tnt_authorise_credential",
"name": "Accreditation to create Track and Trace documents",
"purpose": "Please present a valid VerifiableAuthorisationToOnboard issued by an allowlisted entity",
"format": {
"jwt_vc": {
"alg": [
"ES256"
]
},
"jwt_vc_json": {
"alg": [
"ES256"
]
}
},
"constraints": {
"fields": [
{
"path": [
"$.vc.type"
],
"filter": {
"type": "array",
"contains": {
"const": "VerifiableAuthorisationToOnboard"
}
}
},
{
"path": [
"$.vc.issuer"
],
"filter": {
"type": "string",
"enum": [
"did:ebsi:zw422HHPF2McN1b8riU9Y3q"
]
}
}
]
}
}
]
}
TNT create
{
"id": "tnt_create_presentation",
"name": "Any type of Verifiable Attestation",
"purpose": "Please present a valid Presentation signed by an allowlisted TnT Document creator.",
"format": {
"jwt_vp": {
"alg": [
"ES256",
"ES256K"
]
},
"jwt_vp_json": {
"alg": [
"ES256",
"ES256K"
]
}
},
"input_descriptors": []
}
TNT write
{
"id": "tnt_write_presentation",
"name": "Any type of Verifiable Attestation",
"purpose": "Please present a valid Presentation signed by an account with granted access to write in TnT.",
"format": {
"jwt_vp": {
"alg": [
"ES256",
"ES256K"
]
},
"jwt_vp_json": {
"alg": [
"ES256",
"ES256K"
]
}
},
"input_descriptors": []
}
TPR write
{
"id": "tpr_write_presentation",
"name": "Any type of Verifiable Attestation",
"purpose": "Please present an empty Presentation signed by a registered Legal Entity.",
"format": {
"jwt_vp": {
"alg": [
"ES256"
]
},
"jwt_vp_json": {
"alg": [
"ES256"
]
}
},
"input_descriptors": []
}
TSR write
{
"id": "tsr_write_presentation",
"name": "Any type of Verifiable Attestation",
"purpose": "Please present an empty Presentation signed by a registered Legal Entity.",
"format": {
"jwt_vp": {
"alg": [
"ES256"
]
},
"jwt_vp_json": {
"alg": [
"ES256"
]
}
},
"input_descriptors": []
}
Bad Request
- application/problem+json
- Schema
- Bad Request
Schema
Default value: about:blank
An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type.
A short summary of the problem type.
Possible values: >= 400
and <= 600
The HTTP status code generated by the origin server for this occurrence of the problem.
A human readable explanation specific to this occurrence of the problem.
An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
{
"title": "Bad Request",
"status": 400,
"detail": "[\"scope must be a combination of 'openid' and one of the supported scopes ('didr_invite', 'didr_write', 'tir_invite', 'tir_write', 'timestamp_write', 'tnt_authorise', 'tnt_create', 'tnt_write', 'tpr_write', 'tsr_write')\"]",
"type": "about:blank"
}
Internal Server Error
- application/problem+json
- Schema
- Internal Server Error
Schema
Default value: about:blank
An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type.
A short summary of the problem type.
Possible values: >= 400
and <= 600
The HTTP status code generated by the origin server for this occurrence of the problem.
A human readable explanation specific to this occurrence of the problem.
An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
{
"title": "Internal error",
"status": 500,
"detail": "Internal error"
}