# Verifiable Presentations

## !!! WARN. Such endpoint is made mostly for testing purposes and it is not supposed to be used in production !!! Create a Verifiable Presentation from credential(s).

> This endpoint creates a Verifiable Presentation from credential(s). As input, it can take the credential(s) as a string or the entire credential(s) itself. \
> &#x20;!!! WARN. Such endpoint is made only for testing purposes !!!

```json
{"openapi":"3.0.0","info":{"title":"cheqd Studio API for cheqd network","version":"2.0.0"},"tags":[{"name":"Verifiable Presentations"}],"servers":[{"url":"https://studio-api.cheqd.net","description":"Main (production) server"},{"url":"https://studio-api-staging.cheqd.net","description":"Staging server for testing"},{"url":"http://localhost:3000","description":"Local server for testing"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"PresentationCreateRequest":{"type":"object","required":["credentials"],"properties":{"credentials":{"description":"Verifiable Credentials to be used for VP-JWT creation as a VP-JWT strings or a JSON objectsf.","type":"array","items":{"type":"object"}},"holderDid":{"description":"DID of holder","type":"string"},"verifierDid":{"description":"DID of verifier","type":"string"}}},"PresentationCreateResult":{"type":"object","properties":{"vp":{"type":"object","description":"Verifiable Presentation which could be provided to the verifier."},"nbf":{"type":"integer","description":"Unix timestamp of the earliest time that the Verifiable Presentation is valid."},"iss":{"type":"string","description":"DID of the issuer of the Verifiable Presentation. (Here it's supposed to be a holder DID)"},"aud":{"type":"array","items":{"type":"string"},"description":"DID of the verifier of the Verifiable Presentation."}}},"InvalidRequest":{"description":"A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}},"UnauthorizedError":{"description":"Access token is missing or invalid","type":"object","properties":{"error":{"type":"string"}}},"InternalError":{"description":"An internal error has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/presentation/create":{"post":{"tags":["Verifiable Presentations"],"summary":"!!! WARN. Such endpoint is made mostly for testing purposes and it is not supposed to be used in production !!! Create a Verifiable Presentation from credential(s).","description":"This endpoint creates a Verifiable Presentation from credential(s). As input, it can take the credential(s) as a string or the entire credential(s) itself. \n !!! WARN. Such endpoint is made only for testing purposes !!!","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PresentationCreateRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/PresentationCreateRequest"}}}},"responses":{"200":{"description":"The request was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationCreateResult"}}}},"400":{"$ref":"#/components/schemas/InvalidRequest"},"401":{"$ref":"#/components/schemas/UnauthorizedError"},"500":{"$ref":"#/components/schemas/InternalError"}}}}}}
```

## Verify a Verifiable Presentation generated from credential(s).

> This endpoint verifies the Verifiable Presentation generated from credential(s). As input, it can take the Verifiable Presentation JWT as a string or the entire Verifiable Presentation itself.

```json
{"openapi":"3.0.0","info":{"title":"cheqd Studio API for cheqd network","version":"2.0.0"},"tags":[{"name":"Verifiable Presentations"}],"servers":[{"url":"https://studio-api.cheqd.net","description":"Main (production) server"},{"url":"https://studio-api-staging.cheqd.net","description":"Staging server for testing"},{"url":"http://localhost:3000","description":"Local server for testing"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"PresentationVerifyRequest":{"type":"object","required":["presentation"],"properties":{"presentation":{"description":"Verifiable Presentation to be verified as a VP-JWT string or a JSON object.","type":"object"},"verifierDid":{"description":"Provide an optional verifier DID (also known as 'domain' parameter), if the verifier DID in the presentation is not managed in the wallet.","type":"string"},"makeFeePayment":{"description":"Automatically make fee payment (if required) based on payment conditions to unlock encrypted StatusList2021 or BitstringStatusList DID-Linked Resource.","type":"boolean","default":false},"policies":{"description":"Custom verification policies to execute when verifying presentation.","type":"object","properties":{"issuanceDate":{"description":"Policy to skip the `issuanceDate` (`nbf`) timestamp check when set to `false`.","type":"boolean","default":true},"expirationDate":{"description":"Policy to skip the `expirationDate` (`exp`) timestamp check when set to `false`.","type":"boolean","default":true},"audience":{"description":"Policy to skip the audience check when set to `false`.","type":"boolean","default":false}}}}},"VerifyPresentationResult":{"type":"object","properties":{"verified":{"type":"boolean"},"issuer":{"type":"string"},"signer":{"type":"object"},"jwt":{"type":"string"},"verifiableCredential":{"type":"object"}}},"InvalidRequest":{"description":"A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}},"UnauthorizedError":{"description":"Access token is missing or invalid","type":"object","properties":{"error":{"type":"string"}}},"InternalError":{"description":"An internal error has occurred. Additional state information plus metadata may be available in the response body.","type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/presentation/verify":{"post":{"tags":["Verifiable Presentations"],"summary":"Verify a Verifiable Presentation generated from credential(s).","description":"This endpoint verifies the Verifiable Presentation generated from credential(s). As input, it can take the Verifiable Presentation JWT as a string or the entire Verifiable Presentation itself.","parameters":[{"in":"query","name":"verifyStatus","description":"If set to `true` the verification will also check the status of the presentation. Requires the VP to have a `credentialStatus` property.","schema":{"type":"boolean","default":false}},{"in":"query","name":"fetchRemoteContexts","description":"When dealing with JSON-LD you also MUST provide the proper contexts. * Set this to `true` ONLY if you want the `@context` URLs to be fetched in case they are a custom context.","schema":{"type":"boolean","default":false}},{"in":"query","name":"allowDeactivatedDid","description":"If set to `true` allow to verify credential which based on deactivated DID.","schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PresentationVerifyRequest"}},"application/json":{"schema":{"$ref":"#/components/schemas/PresentationVerifyRequest"}}}},"responses":{"200":{"description":"The request was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyPresentationResult"}}}},"400":{"$ref":"#/components/schemas/InvalidRequest"},"401":{"$ref":"#/components/schemas/UnauthorizedError"},"500":{"$ref":"#/components/schemas/InternalError"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cheqd.io/product/api-reference/combined/verifiable-presentations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
