Documentation Index
Fetch the complete documentation index at: https://docs.yoid.me/llms.txt
Use this file to discover all available pages before exploring further.
Overview
A presentation template specifies what credentials and attributes you want to verify. The type field must match the VCT URI from the issuing partner’s credential template response — this is how the system knows which credentials to request from the youth’s wallet.
The type must be the full VCT URI (e.g. https://didx.co.za/vct/didx/course-completion), not the issuer’s short code. Coordinate with the issuing partner to obtain this URI.
Endpoint
POST https://test.didxtech.com/me-creds/api/templates/presentations
Request
curl -X POST "https://test.didxtech.com/me-creds/api/templates/presentations" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Web Development Verification",
"description": "Verify that a candidate completed the Umuzi web development programme",
"credentials": [
{
"name": "Web Development Completion",
"description": "Umuzi web development programme credential",
"type": "https://didx.co.za/vct/didx/course-completion",
"attributes": {
"programmeName": {
"type": "string"
},
"completionDate": {
"type": "string"
},
"fullName": {
"type": "string"
}
}
}
]
}'
Request Body
| Field | Type | Description |
|---|
name | string | Name for this presentation template |
description | string | Description of what this template verifies |
credentials | array | List of credential types to request |
credentials[].type | string | Must match the VCT URI from the issuer’s credential template |
credentials[].attributes | object | The specific attributes to request from the credential |
Requesting Specific Attributes
You only need to list the attributes you want to verify. In the example above, the employment provider requests programmeName, completionDate, and fullName — but not skillsCovered or assessmentScore. This keeps the request minimal and respects youth privacy.
If an attribute was marked alwaysDisclosed: true by the issuer, it will always be included regardless. Attributes marked alwaysDisclosed: false are shared only if the youth consents.
Response
HTTP 200 OK
{
"data": {
"name": "Web Development Verification",
"description": "Verify that a candidate completed the Umuzi web development programme",
"createdAt": "2025-02-20T11:27:37.051Z",
"updatedAt": "2025-02-20T11:27:37.051Z",
"id": "cm2ytsdid009u4ke3t30aiuvc",
"credentials": [
{
"name": "Web Development Completion",
"description": "Umuzi web development programme credential",
"format": "sd-jwt-vc",
"type": "https://didx.co.za/vct/didx/course-completion",
"attributes": {
"programmeName": {
"type": "string"
},
"completionDate": {
"type": "string"
},
"fullName": {
"type": "string"
}
}
}
]
},
"links": {
"self": "https://test.didxtech.com/me-creds/api/templates/presentations/cm2ytsdid009u4ke3t30aiuvc"
},
"meta": {
"version": "1.0"
}
}
Key Response Fields
| Field | Description |
|---|
id | Unique template identifier — save this for Step 2 |
format | sd-jwt-vc — credential format with selective disclosure |