Skip to main content

Presentation Templates

Presentation templates define the requirements for credential verification. They specify which credentials holders must present and which attributes must be disclosed during the verification process.

Overview

Presentation Templates are verification blueprints that define what credentials and attributes a holder must present. They enable selective disclosure, allowing holders to share only the necessary information while maintaining privacy.

Presentation Template Flow

Key Concepts

Selective Disclosure

Request only specific attributes from credentials, protecting holder privacy while meeting verification requirements.

Multi-Credential Verification

Require multiple credentials in a single verification request for comprehensive validation.

DCQL Query Generation

Automatically generates DCQL (Digital Credential Query Language) queries based on your configuration.

Attribute Matching

Set specific values that attributes must match for verification to succeed.

Creating a Presentation Template

Prerequisites

Before creating a presentation template, ensure you have:

  1. Created a Project: Presentation templates belong to projects
  2. Created Credential Templates: You'll select from existing credential templates

Step 1: Navigate to Templates

  1. Select your project from the project selector
  2. Navigate to the "Templates" section
  3. Click "Create Template" or select "Presentation Template"

Step 2: Basic Information

  1. Template Name: Enter a descriptive name (e.g., "Employee Access Verification")
  2. Description: Add a detailed description of what this verification process is for
    • Explain the use case
    • Describe when this verification would be used
    • Include any relevant context

Step 3: Select Credential Templates

Add the credential templates that holders must present:

  1. Click "Add Credential" or "Select Credential Template"
  2. Choose from your existing credential templates
  3. For each credential template, you can:
    • View Credential Details: See the credential's structure and attributes
    • Set Purpose: Explain why this credential is required
    • Select Attributes: Choose which attributes must be disclosed

Step 4: Configure Required Attributes

For each credential template, select which attributes are required:

  1. Expand Credential: Click to view all available attributes
  2. Select Attributes: Check the boxes for attributes that must be disclosed
  3. Set Attribute Purpose: Optionally specify why each attribute is needed
  4. Set Matching Values (optional): Specify exact values that must match
    • Useful for verifying specific conditions
    • Example: Verify age is 18 or older
    • Example: Verify employee ID matches a specific value

Attribute Selection Best Practices

  • Minimal Data: Only select attributes you actually need
  • Clear Purpose: Document why each attribute is required
  • Privacy Consideration: Request the minimum necessary information
  • Nested Attributes: For Object-type attributes, you can select nested properties individually

Step 5: Configure Issuer Settings

  1. Select Issuer: Choose the issuer DID or X.509 certificate that will sign verification requests
  2. Issuer Type: Select whether to use:
    • DID: Decentralized identifier (recommended)
    • X.509: X.509 certificate

Step 6: Review and Save

  1. Review Configuration: Verify all credentials and attributes are correctly selected
  2. Check Requirements: Ensure the template covers all verification needs
  3. Click "Create Template": Save the presentation template

After creation, Skippy ID automatically:

  • ✅ Creates or associates a verifier for this template
  • ✅ Generates the DCQL query based on your selections
  • ✅ Makes the template available for verification requests

Presentation Template Structure

Template Properties

PropertyDescriptionRequiredType
nameTemplate display nameYesstring
descriptionTemplate descriptionYesstring
templateTypeMust be "presentation"Yesenum
formatCredential format (typically "vc+sd-jwt")Yesenum
presentationCredentialsArray of required credential configurationsYesArray<PresentationCredential>
issuerIdIssuer identifierNostring
issuerTypeIssuer type (did or x509)Noenum
verifierIdVerifier identifier (auto-generated)Nostring
projectIdProject identifierYesstring
organisationIdOrganization identifierYesstring

Presentation Credential Properties

PropertyDescriptionRequiredType
_idCredential template identifierYesstring
nameCredential template nameYesstring
purposeWhy this credential is requiredYesstring
typeCredential type identifierYesstring
formatCredential formatYesenum
attributesSelected attributes configurationYesRecord<string, Attribute>

Attribute Configuration

When selecting attributes in a presentation template, each attribute can have:

PropertyDescriptionRequiredType
nameAttribute display nameYesstring
purposeWhy this attribute is requiredNostring
selectedWhether this attribute is requiredYesboolean
valueMatching value (for exact value verification)Nostring | number | boolean
typeAttribute data typeYesstring

Template Examples

Employee Access Verification Template

This template verifies employee credentials for building access:

{
"name": "Employee Access Verification",
"description": "Verifies employee credentials for secure facility access",
"templateType": "presentation",
"format": "vc+sd-jwt",
"presentationCredentials": [
{
"_id": "cred_template_123",
"name": "Employee Badge",
"purpose": "Verify employee identity and access level",
"type": "EmployeeBadge",
"format": "vc+sd-jwt",
"attributes": {
"employeeId": {
"name": "Employee ID",
"type": "String",
"purpose": "Verify employee identity",
"selected": true
},
"fullName": {
"name": "Full Name",
"type": "String",
"purpose": "Confirm employee name",
"selected": true
},
"accessLevel": {
"name": "Access Level",
"type": "Number",
"purpose": "Verify security clearance level",
"selected": true,
"value": 3
}
}
}
]
}

Age Verification Template

This template verifies age for age-restricted services:

{
"name": "Age Verification",
"description": "Verifies user age for age-restricted services",
"templateType": "presentation",
"format": "vc+sd-jwt",
"presentationCredentials": [
{
"_id": "cred_template_456",
"name": "Government ID",
"purpose": "Verify user age and identity",
"type": "GovernmentID",
"format": "vc+sd-jwt",
"attributes": {
"dateOfBirth": {
"name": "Date of Birth",
"type": "Date",
"purpose": "Calculate age for verification",
"selected": true
},
"fullName": {
"name": "Full Name",
"type": "String",
"purpose": "Confirm identity",
"selected": true
}
}
}
]
}

Multi-Credential Verification Template

This template requires multiple credentials for comprehensive verification:

{
"name": "Professional License Verification",
"description": "Verifies professional qualifications and identity",
"templateType": "presentation",
"format": "vc+sd-jwt",
"presentationCredentials": [
{
"_id": "cred_template_789",
"name": "Professional License",
"purpose": "Verify professional certification",
"type": "ProfessionalLicense",
"format": "vc+sd-jwt",
"attributes": {
"licenseNumber": {
"name": "License Number",
"type": "String",
"purpose": "Verify license validity",
"selected": true
},
"licenseType": {
"name": "License Type",
"type": "String",
"purpose": "Confirm license category",
"selected": true
},
"expirationDate": {
"name": "Expiration Date",
"type": "Date",
"purpose": "Verify license is current",
"selected": true
}
}
},
{
"_id": "cred_template_101",
"name": "Government ID",
"purpose": "Verify identity matches license holder",
"type": "GovernmentID",
"format": "vc+sd-jwt",
"attributes": {
"fullName": {
"name": "Full Name",
"type": "String",
"purpose": "Match name on license",
"selected": true
}
}
}
]
}

Using Presentation Templates

After creating a presentation template, you can use it to create verification requests. For detailed instructions on how to use presentation templates for verification, see the Verify Credentials guide.

Managing Presentation Templates

Edit

Update template details. Be cautious if verifications have already been performed using this template.

View & Copy

View all templates in your project or duplicate existing templates as starting points for new ones.

Archive & Delete

Deactivate templates without deletion, or remove unused templates that haven't been used in verifications.


Use Cases

Common presentation template scenarios include:

Access Control

Verify employee credentials for secure building and facility access. Control who can enter specific areas based on their role and clearance level.

Age Verification

Verify user age for age-restricted services such as alcohol purchases, adult content access, or age-gated events.

Qualification Check

Verify professional licenses, certifications, and qualifications. Ensure individuals meet the required standards for their profession.

Identity Verification

Confirm identity for account creation, transactions, or sensitive operations. Verify that users are who they claim to be.

Event Access

Verify event tickets, badges, or invitations. Control access to conferences, concerts, and exclusive events.

Financial Services

Verify identity and qualifications for financial transactions, account opening, and compliance with regulatory requirements.

Healthcare

Verify medical credentials, licenses, and certifications. Ensure healthcare providers meet professional standards.

Education

Verify student status, academic achievements, and educational credentials. Confirm enrollment and qualifications.

Next Steps

With presentation templates created, you're ready to: