Proof requests
Proof templates are used to create proof requests. When a proof request is created, you will receive a URL which needs to be delivered to a holder's wallet application either as a link (in the "response_url" field) or displayed in a QR code for the wallet application to scan (conveniently pre-generated for you in the "qr" field). The holder's wallet will then generate a proof response and deliver it to the Truvera API which will check it for cryptographic correctness. Like other asynchronous operations, you can receive the verification response along with the verified attributes either by polling or via a webhook.
To get a response by polling, check the proof-request details for when the "verified" attribute equals "true". At that point, the "presentation" field will contain the verified attributes as a JSON list. If at any point the "verified" attribute equals "false", the response can be checked to determine the cause of the failure and appropriate next steps.
When creating a proof request, you can optionally provide a verifier DID in order for the holder to know that your verifier is on their trust-list, such as in an ecosystem of trust.
Create proof request
This route uses a template ID and takes the PEX request you defined there.
Creates a proof request from this template
Proof template UUID
A unique nonce value used in the proof request.
123456The DID that will be used as the verifier DID in the proof request
did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59Returns the information about the proof request
The unique identifier for the proof request.
37275574-7ea4-438d-b8ef-f8fc61dbf09eProof request name
Proof requestOptional Cedar policy to run on verification
Nonce or challenge for the presentation to match
1234567890The URL to send the proof presentation response.
http://api-testnet.truvera.io/proof-requests/37275574-7ea4-438d-b8ef-f8fc61dbf09e/send-presentationQR code deep link for mobile wallet scanning
http://creds-testnet.truvera.io/proof/37275574-7ea4-438d-b8ef-f8fc61dbf09eA DID
did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59Indicates whether the proof request has been verified.
falseIndicates whether the proof request has expired
falsePresent and true when the presentation contains delegated credentials
The timestamp when the proof request was created.
2024-09-26T12:38:10.871ZThe timestamp when the proof request was last updated.
2024-09-26T12:38:10.871ZThe type of the request.
proof-requestAn array of types indicating the formats or methods that can be used for the proof.
jsonldThe name of the verifier.
TruveraThe logo of the verifier.
https://logo.truvera.io/verifierApplication error
Transaction limit reached or upgrade required to proceed
Proof template was not found.
POST /proof-templates/{id}/request HTTP/1.1
Host: api-testnet.truvera.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 81
{
"nonce": "123456",
"did": "did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59"
}{
"id": "37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"attributes": {
"ANY_ADDITIONAL_PROPERTY": {
"name": "favouriteDrink",
"names": [
"age"
]
}
},
"name": "Proof request",
"cedarVerificationPolicy": "text",
"nonce": "1234567890",
"error": "text",
"response_url": "http://api-testnet.truvera.io/proof-requests/37275574-7ea4-438d-b8ef-f8fc61dbf09e/send-presentation",
"qr": "http://creds-testnet.truvera.io/proof/37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"did": "did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59",
"verified": false,
"expired": false,
"presentation": {},
"hasDelegation": true,
"delegationReport": {
"requirements": [
{
"descriptorId": "text",
"schemaId": "text",
"requireIssuer": true,
"issuer": "text",
"role": "text",
"capabilityGrants": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"chains": [
{
"credentialId": "text",
"delegationPolicyId": "text",
"policy": {
"id": "text",
"name": "text",
"version": "2026-01-01",
"ruleset": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"resolved": true,
"roleId": "text",
"roleLabel": "text",
"roleInferred": true,
"grantedCapabilities": [
{
"capability": "text",
"schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"constraints": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"delegatedAttributes": [
{
"path": "text",
"value": null
}
],
"chainRefs": {
"rootCredentialId": "text",
"previousCredentialId": "text"
}
}
],
"context": {
"verifierDID": "text",
"verifierName": "text",
"verifierLogo": "text",
"requestedAt": "2026-01-01T00:00:00.000Z",
"nonce": "text"
}
},
"created": "2024-09-26T12:38:10.871Z",
"updated": "2024-09-26T12:38:10.871Z",
"request": {
"name": "test request",
"purpose": "my purpose",
"input_descriptors": null
},
"delegationRequirements": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"type": "proof-request",
"types": [
"jsonld"
],
"verifierName": "Truvera",
"verifierLogo": "https://logo.truvera.io/verifier"
}Create proof request
This route lets you create a standalone proof request without storing a verification template first.
Create a proof request
Represents a proof request payload in a verifiable credential system.
Proof request name
Proof requestOptional Cedar policy to run on verification
The unique identifier for the template.
37275574-7ea4-438d-b8ef-f8fc61dbf09eNonce or challenge for the presentation to match
1234567890A DID
did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59Proof request created
The unique identifier for the proof request.
37275574-7ea4-438d-b8ef-f8fc61dbf09eProof request name
Proof requestOptional Cedar policy to run on verification
Nonce or challenge for the presentation to match
1234567890The URL to send the proof presentation response.
http://api-testnet.truvera.io/proof-requests/37275574-7ea4-438d-b8ef-f8fc61dbf09e/send-presentationQR code deep link for mobile wallet scanning
http://creds-testnet.truvera.io/proof/37275574-7ea4-438d-b8ef-f8fc61dbf09eA DID
did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59Indicates whether the proof request has been verified.
falseIndicates whether the proof request has expired
falsePresent and true when the presentation contains delegated credentials
The timestamp when the proof request was created.
2024-09-26T12:38:10.871ZThe timestamp when the proof request was last updated.
2024-09-26T12:38:10.871ZThe type of the request.
proof-requestAn array of types indicating the formats or methods that can be used for the proof.
jsonldThe name of the verifier.
TruveraThe logo of the verifier.
https://logo.truvera.io/verifierInvalid parameters
Transaction limit reached or upgrade required to proceed
POST /proof-requests HTTP/1.1
Host: api-testnet.truvera.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 412
{
"attributes": {
"ANY_ADDITIONAL_PROPERTY": {
"name": "favouriteDrink",
"names": [
"age"
]
}
},
"name": "Proof request",
"cedarVerificationPolicy": "text",
"template": "37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"nonce": "1234567890",
"did": "did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59",
"request": {
"name": "test request",
"purpose": "my purpose",
"input_descriptors": null
},
"delegationRequirements": {
"ANY_ADDITIONAL_PROPERTY": {}
}
}{
"id": "37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"attributes": {
"ANY_ADDITIONAL_PROPERTY": {
"name": "favouriteDrink",
"names": [
"age"
]
}
},
"name": "Proof request",
"cedarVerificationPolicy": "text",
"nonce": "1234567890",
"error": "text",
"response_url": "http://api-testnet.truvera.io/proof-requests/37275574-7ea4-438d-b8ef-f8fc61dbf09e/send-presentation",
"qr": "http://creds-testnet.truvera.io/proof/37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"did": "did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59",
"verified": false,
"expired": false,
"presentation": {},
"hasDelegation": true,
"delegationReport": {
"requirements": [
{
"descriptorId": "text",
"schemaId": "text",
"requireIssuer": true,
"issuer": "text",
"role": "text",
"capabilityGrants": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"chains": [
{
"credentialId": "text",
"delegationPolicyId": "text",
"policy": {
"id": "text",
"name": "text",
"version": "2026-01-01",
"ruleset": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"resolved": true,
"roleId": "text",
"roleLabel": "text",
"roleInferred": true,
"grantedCapabilities": [
{
"capability": "text",
"schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"constraints": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"delegatedAttributes": [
{
"path": "text",
"value": null
}
],
"chainRefs": {
"rootCredentialId": "text",
"previousCredentialId": "text"
}
}
],
"context": {
"verifierDID": "text",
"verifierName": "text",
"verifierLogo": "text",
"requestedAt": "2026-01-01T00:00:00.000Z",
"nonce": "text"
}
},
"created": "2024-09-26T12:38:10.871Z",
"updated": "2024-09-26T12:38:10.871Z",
"request": {
"name": "test request",
"purpose": "my purpose",
"input_descriptors": null
},
"delegationRequirements": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"type": "proof-request",
"types": [
"jsonld"
],
"verifierName": "Truvera",
"verifierLogo": "https://logo.truvera.io/verifier"
}Get all proof requests
How many items to offset by for pagination
0How many items to return at one time (max 64)
64A paged array of proof requests
The unique identifier for the proof request.
37275574-7ea4-438d-b8ef-f8fc61dbf09eProof request name
Proof requestOptional Cedar policy to run on verification
Nonce or challenge for the presentation to match
1234567890The URL to send the proof presentation response.
http://api-testnet.truvera.io/proof-requests/37275574-7ea4-438d-b8ef-f8fc61dbf09e/send-presentationQR code deep link for mobile wallet scanning
http://creds-testnet.truvera.io/proof/37275574-7ea4-438d-b8ef-f8fc61dbf09eA DID
did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59Indicates whether the proof request has been verified.
falseIndicates whether the proof request has expired
falsePresent and true when the presentation contains delegated credentials
The timestamp when the proof request was created.
2024-09-26T12:38:10.871ZThe timestamp when the proof request was last updated.
2024-09-26T12:38:10.871ZThe type of the request.
proof-requestAn array of types indicating the formats or methods that can be used for the proof.
jsonldApplication error
GET /proof-requests HTTP/1.1
Host: api-testnet.truvera.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"id": "37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"attributes": {
"ANY_ADDITIONAL_PROPERTY": {
"name": "favouriteDrink",
"names": [
"age"
]
}
},
"name": "Proof request",
"cedarVerificationPolicy": "text",
"nonce": "1234567890",
"error": "text",
"response_url": "http://api-testnet.truvera.io/proof-requests/37275574-7ea4-438d-b8ef-f8fc61dbf09e/send-presentation",
"qr": "http://creds-testnet.truvera.io/proof/37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"did": "did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59",
"verified": false,
"expired": false,
"presentation": {},
"hasDelegation": true,
"delegationReport": {
"requirements": [
{
"descriptorId": "text",
"schemaId": "text",
"requireIssuer": true,
"issuer": "text",
"role": "text",
"capabilityGrants": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"chains": [
{
"credentialId": "text",
"delegationPolicyId": "text",
"policy": {
"id": "text",
"name": "text",
"version": "2026-01-01",
"ruleset": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"resolved": true,
"roleId": "text",
"roleLabel": "text",
"roleInferred": true,
"grantedCapabilities": [
{
"capability": "text",
"schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"constraints": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"delegatedAttributes": [
{
"path": "text",
"value": null
}
],
"chainRefs": {
"rootCredentialId": "text",
"previousCredentialId": "text"
}
}
],
"context": {
"verifierDID": "text",
"verifierName": "text",
"verifierLogo": "text",
"requestedAt": "2026-01-01T00:00:00.000Z",
"nonce": "text"
}
},
"created": "2024-09-26T12:38:10.871Z",
"updated": "2024-09-26T12:38:10.871Z",
"request": {
"name": "test request",
"purpose": "my purpose",
"input_descriptors": null
},
"delegationRequirements": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"type": "proof-request",
"types": [
"jsonld"
]
}
]Get the details of an existing proof request
Get the details of an existing proof request
Proof request UUID
Returns the information about the proof request
The unique identifier for the proof request.
37275574-7ea4-438d-b8ef-f8fc61dbf09eProof request name
Proof requestOptional Cedar policy to run on verification
Nonce or challenge for the presentation to match
1234567890The URL to send the proof presentation response.
http://api-testnet.truvera.io/proof-requests/37275574-7ea4-438d-b8ef-f8fc61dbf09e/send-presentationQR code deep link for mobile wallet scanning
http://creds-testnet.truvera.io/proof/37275574-7ea4-438d-b8ef-f8fc61dbf09eA DID
did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59Indicates whether the proof request has been verified.
falseIndicates whether the proof request has expired
falsePresent and true when the presentation contains delegated credentials
The timestamp when the proof request was created.
2024-09-26T12:38:10.871ZThe timestamp when the proof request was last updated.
2024-09-26T12:38:10.871ZThe type of the request.
proof-requestAn array of types indicating the formats or methods that can be used for the proof.
jsonldThe name of the verifier.
TruveraThe logo of the verifier.
https://logo.truvera.io/verifierApplication error
Proof request was not found.
GET /proof-requests/{id} HTTP/1.1
Host: api-testnet.truvera.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"attributes": {
"ANY_ADDITIONAL_PROPERTY": {
"name": "favouriteDrink",
"names": [
"age"
]
}
},
"name": "Proof request",
"cedarVerificationPolicy": "text",
"nonce": "1234567890",
"error": "text",
"response_url": "http://api-testnet.truvera.io/proof-requests/37275574-7ea4-438d-b8ef-f8fc61dbf09e/send-presentation",
"qr": "http://creds-testnet.truvera.io/proof/37275574-7ea4-438d-b8ef-f8fc61dbf09e",
"did": "did:cheqd:testnet:ac2b9027-ec1a-4ee2-aad1-1e316e7d6f59",
"verified": false,
"expired": false,
"presentation": {},
"hasDelegation": true,
"delegationReport": {
"requirements": [
{
"descriptorId": "text",
"schemaId": "text",
"requireIssuer": true,
"issuer": "text",
"role": "text",
"capabilityGrants": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"chains": [
{
"credentialId": "text",
"delegationPolicyId": "text",
"policy": {
"id": "text",
"name": "text",
"version": "2026-01-01",
"ruleset": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"resolved": true,
"roleId": "text",
"roleLabel": "text",
"roleInferred": true,
"grantedCapabilities": [
{
"capability": "text",
"schema": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"constraints": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"delegatedAttributes": [
{
"path": "text",
"value": null
}
],
"chainRefs": {
"rootCredentialId": "text",
"previousCredentialId": "text"
}
}
],
"context": {
"verifierDID": "text",
"verifierName": "text",
"verifierLogo": "text",
"requestedAt": "2026-01-01T00:00:00.000Z",
"nonce": "text"
}
},
"created": "2024-09-26T12:38:10.871Z",
"updated": "2024-09-26T12:38:10.871Z",
"request": {
"name": "test request",
"purpose": "my purpose",
"input_descriptors": null
},
"delegationRequirements": {
"ANY_ADDITIONAL_PROPERTY": {}
},
"type": "proof-request",
"types": [
"jsonld"
],
"verifierName": "Truvera",
"verifierLogo": "https://logo.truvera.io/verifier"
}Delete the proof request
Deletes the proof request and associated data
Proof request UUID
Proof request will be deleted
No content
Something went wrong.
Proof request was not found.
DELETE /proof-requests/{id} HTTP/1.1
Host: api-testnet.truvera.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Last updated
Was this helpful?