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

๐Ÿ—‚๏ธ
๐Ÿ“–