# Issuer implementation

When the wallet makes a GET to the Issuer endpoint, a JSON is returned to the wallet (Issuer GET response):

example:

```
{
  "type": "CredentialOffer",
  "id" : "hjhghlkjgljkgjkg",
  "credentialPreview": {},
  "expires" : "2022-09-01T19:29:39Z",
  "challenge" : "mjh45RT56",
  "domain" : "talao.co",
  "credential_manifest" : {}
}
```

The “challenge” and domain arttributes will be used for DID\_auth response or verifible presentation. The “credential\_manifest” attribute is used to define the expected display options of the VC in the wallet (outpout\_descriptors).

id, challenge and domain are optional attributes.

The wallet response will be :

```
{
  "id" : "hjhghlkjgljkgjkg",
  "Subjetc_id" : "did:tz:tz1e5YakmACgZZprF7YWHMqnSvcWVXZ2TsPW",
  "presentation": "vp"
}
```

“vp” is a verifiable presentation as a string here.

If the credential manifest does not request any vc, a vp “did auth” is signed and sent by the wallet to confirm key ownership. Example of a vp “did auth” :

```
{
  "@context": [
    "https://www.w3.org/2018/credentials/v1"
  ],
  "type": "VerifiablePresentation",
  "proof": {
    "type": "Ed25519Signature2018",
    "proofPurpose": "authentication",
    "challenge": "lkjhlkjh",
    "verificationMethod": "did:key:z6MktsB3ztEt3BsR3P6pLffDnjZi7DH85wsbp71fAfPk3F6G#z6MktsB3ztEt3BsR3P6pLffDnjZi7DH85wsbp71fAfPk3F6G",
    "created": "2022-12-14T14:17:33.782Z",
    "domain": "talao.co",
    "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..Di0w_VVLzap9jwE2Ny7CU8dHfxY-yZWJzGzVGj7Z4XNSbeJ4aQVLfix3uGqaAjF53Lb166YY6YqwouAjRz-5Bw"
  },
  "holder": "did:key:z6MktsB3ztEt3BsR3P6pLffDnjZi7DH85wsbp71fAfPk3F6G"
}
```

Several verifiable presentations are requested in the credential manifest, wallet response will be :

```
{
  "id" : "hjhghlkjgljkgjkg",
  "Subject_id" : "did:tz:tzYakmACgZZprF7YWHMqnSvcWVXZ2TsPW",
  "presentation" : "[ vp1, vp2, vp3,... ]"
}
```

vp1,… are strings

verifiable presentation (vp) is a credential bound with nonce if available in the request. This credential includes all the existing profile attributes if wallet holder consents.


---

# 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://altme-documentation.gitbook.io/altmes-documentation/alme-wallet/credential-offer-protocol/issuer-implementation.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.
