Altme's documentation
  • 🧾Introduction
    • 📋What is Self Sovereign Identity ?
    • 🕵️Altme solution suite is made up of 3 components
      • 🗂️Altme Wallet
      • 📇Altme Saas
      • 📇Altme Web3 issuer
    • 🗂️Give an Identity to your crypto wallet
    • 🛠️Technical considerations
  • ☁️Altme Saas
    • Quick start
      • ⬇️Download Altme Wallet from Apple or Google store
      • 📁Get more credentials in your wallet
      • 🔒Connect to the Altme Saas platform to setup a SSI verifier
      • 📲Integration in your app
    • Beacon integration
      • 🖥️Overview
      • 🏅Verify the age of your users (+13, +18) in a dApp
      • 📲Receive the Verifier data with a webhook in your backend
      • 🪙On-chain and off-chain access with TezID
      • 💾Verify other data with other credentials
      • 📇Issue a Welcome card in a dApp
      • ✅Check user data of your Issuer (no code)
      • ✅Check user data of your Issuer with a webhook
      • 🕵️Under the hood : the process flow of a Beacon Verifier
    • OpenID integration
      • 🖥️Overview
      • 1️Example 1 with an “implicit flow” with no code
      • 1️Example 1 with an “authorization code flow” in Python
    • EBSII integration
  • 🗂️Alme Wallet
    • Protocols overview
      • 🔑Collecting a verifiable credential
      • 🔑Requesting a verifiable presentation
    • Credential offer protocol
      • 🧘‍♀️Motivation
      • 📖Issuer implementation
    • 🖥️Credential manifest of the credential offer protocol
    • 💰Wallet rendering
      • 📝Input descriptors
    • Presentation request query types
      • 🧘‍♀️Motivation
      • 📖Verifier implementation
      • 🔐DIDAuth
      • QueryByExample
      • QBE Examples
    • ✅Issuers and Verifiers return codes accepted by wal
    • 🔗Universal link
      • 🖥️Access from a desktop viewer
      • 📱Access from smartphone viewer
  • *️Others
    • 📂Flow between wallet, dApp and Verifier
      • 📱Hybrid dApp onboards a user with VCs
      • 📱dApp onboards a user with VCs
      • 📱dApp adds a user in whitelist
    • 📍Indices and tables
      • 📁Index
      • 🔍Search
    • 👨‍💻Show source
Powered by GitBook
On this page
  1. Alme Wallet
  2. Credential offer protocol

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.

PreviousMotivationNextCredential manifest of the credential offer protocol

Last updated 2 years ago

🗂️
📖