---
title: "Demo: real server-side present + verify"
method: POST
path: "/v1/presentations/{uuid}/demo-present"
tags: ["OpenID4VP Verification"]
---

# Demo: real server-side present + verify

`POST /v1/presentations/{uuid}/demo-present`

Ask the server to demo-present a sample credential against an OpenID4VP (OpenID for Verifiable Presentations) request. This development shortcut returns a verification result and is unavailable in production.

## Path parameters

- `uuid` string, uuid, required

## Request body

- object

## Response `200`

Returns the verification result created by the demo presentation.

- object
  - `id` string, uuid — Identifies the verification result.
  - `request_id` string, uuid — Identifies the presentation request that produced this result.
  - `verdict` 'verified' — Shows whether the demo presentation verified successfully.
  - `vct` string — Names the VCT (Verifiable Credential Type) that was verified.
  - `verifier` string — Identifies the verifier audience for the presentation.
  - `requested_claims` string[] — Lists the claim names requested for disclosure.
  - `disclosed_claims` object — Contains the demo claims disclosed during verification.
    - `tier` string — Shows the disclosed `tier` claim value.
  - `checks` object — Reports the verification checks recorded for this result.
    - `alg_allowlist` boolean — Shows whether the signing algorithms passed the allowlist check.
    - `aud` boolean — Shows whether the audience check passed.
    - `key_binding` boolean — Shows whether the KB-JWT (Key-Binding JWT) holder binding check passed.
    - `nonce` boolean — Shows whether the nonce check passed.
    - `not_expired` boolean — Shows whether the credential was still valid at verification time.
    - `not_revoked` boolean — Shows whether the credential passed the revocation check.
    - `signature` boolean — Shows whether the credential signature check passed.
  - `error` string — Returns an empty string on success or a failure reason when verification fails.
  - `created_at` string, date-time — Records when the verification result was created.

## Other responses

- `422` — The demo presentation failed verification, the request was already used, or no credential template exists for the request's `vct`. On a recorded failure the body is the verification payload with verdict `failed`; on the no-template / already-used short-circuit it is a minimal failure shape (`verdict`, `error`, empty `checks`).

---

[API](https://skmtc.net/didit-protocol/apis/didit-credentials-api.md) · [All operations](https://skmtc.net/didit-protocol/apis/didit-credentials-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/didit-protocol/didit-credentials-api/revisions/e4eddba66557/schema)
