# Presentations

Presentation, short for [Verifiable Presentation](https://www.w3.org/TR/vc-data-model/#presentations), is a data model that allows a holder of [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/#credentials) to present them in a way that that the Verifier can attest the authorship of the credentials included.

The data format used for the presentation is [vp-jwt](https://www.w3.org/TR/vc-data-model/#json-web-token). Other formats are not supported at this time.

## Prerequisites

* [DID](https://docs.meeco.me/latest/guides/dids/did-methods)
* Credentials

## Who can use this?

Presentations are generated by the holder and verified by an organisation or another user.

## Generate Verifiable Presentation

Generate a verifiable presentation, ready for signing.

**Endpoint**

```bash
POST /presentation/generate
```

**Request**

* DID
* List of VCs

**Responses**

The presentation object that includes an unsigned JWT. The client calling this endpoint (e.g. holder wallet) is responsible for adding the signature.

## Verify Verifiable Presentation

Verify a given verifiable presentation. The steps performed during this verification are

* Validate the presentation structure
* Resolve the presentation DID
* Verify the presentation signature
* For each credential in the presentation
  * Validate the credential structure
  * Resolve the issuer DID
  * Verify the credential signature

**Endpoint**

```bash
POST /presentation/verify
```

**Request**

* Verifiable Presentation – supported format is vp-jwt

**Responses**

The result of the verification, either true or false. In case of false, all errors are provided, with an explanation.
