aviarytech / jff-didcomm-issuance

1 stars 0 forks source link

What does your issue credential contain? #8

Open vongohren opened 1 year ago

vongohren commented 1 year ago

We find commonalities of of we will do issuance. Its probably only what is inside the attachment that matters I assume.

vongohren commented 1 year ago

We are encoding the VC in base64 data for transport and something we can either change or agree to keep

{
  "id": "632d380bce06990019238d8c",
  "to": [
    "did:key:z6Mknr8VZzAwecsS2Bugncp47dbHuSzhjGz4khcvm5KCSUCR"
  ],
  "typ": "application/didcomm-plain+json",
  "type": "https://didcomm.org/issue-credential/2.0/issue-credential",
  "from": "did:key:z6MkkgfrEB9gSvpJui6yLmqHhcuuLjto9QXKCSa4WtHai4KR",
  "thid": "70142c08-3780-4cdc-a92c-925523c3912b",
  "attachments": [
    {
      "@id": "563866af-6da6-40f3-a0b8-4d8d1711c663",
      "mime-type": "application/base64",
      "data": {
        "base64": "eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vdzNpZC5vcmcvdHJhY2VhYmlsaXR5L3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiZGlkOmtleTp6Nk1ra2dmckVCOWdTdnBKdWk2eUxtcUhoY3V1TGp0bzlRWEtDU2E0V3RIYWk0S1IiLCJpc3N1YW5jZURhdGUiOiIyMDIyLTA5LTIzVDA0OjM3OjMxWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7InR5cGUiOiJDb250YWN0UG9pbnQiLCJpZCI6ImRpZDprZXk6ejZNa25yOFZaekF3ZWNzUzJCdWduY3A0N2RiSHVTemhqR3o0a2hjdm01S0NTVUNSIiwiZW1haWwiOiJyb3l0ZXN0MkBtYWlsaW5hdG9yLmNvbSIsImlkZW50aWZpZXIiOiJaMGdBcE0xNkRGWEdjYzZWMUxtWHhOUmlmNkkyIn0sInByb29mIjp7InR5cGUiOiJFZDI1NTE5U2lnbmF0dXJlMjAxOCIsImNyZWF0ZWQiOiIyMDIyLTA5LTIzVDA0OjM3OjMxWiIsInZlcmlmaWNhdGlvbk1ldGhvZCI6ImRpZDprZXk6ejZNa2tnZnJFQjlnU3ZwSnVpNnlMbXFIaGN1dUxqdG85UVhLQ1NhNFd0SGFpNEtSI3o2TWtrZ2ZyRUI5Z1N2cEp1aTZ5TG1xSGhjdXVManRvOVFYS0NTYTRXdEhhaTRLUiIsInByb29mUHVycG9zZSI6ImFzc2VydGlvbk1ldGhvZCIsImp3cyI6ImV5SmhiR2NpT2lKRlpFUlRRU0lzSW1JMk5DSTZabUZzYzJVc0ltTnlhWFFpT2xzaVlqWTBJbDE5Li5EdTVVdXRHV3lBd3Q5bGNKS05KWEtobTZ3TS1Xa18yeEpiRk5DX0dIdXVSNHM2UWZIOV9sbkh2UnBuSGU3QlE1Vy1sMXBsRnJYc0dITkFqaFhVZGhCZyJ9fQ=="
      }
    }
  ]
}
brianorwhatever commented 1 year ago
{
   "type":"https://didcomm.org/issue-credential/3.0/issue-credential",
   "id":"d004008a493a22ff1efdeb3b6c1fc7d3ffb954d4f866e3c06077fe35c623b64c",
   "thid":"d00100bdf7f4b473232b49bc2a11dbda0ff10d418ba571205b252aa14dd294e1",
   "from":"did:web:aviary.id",
   "to":[
"did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ"
   ],
   "body":{

   },
   "attachments":[
      {
         "id":"d000009f7fc026af6580541133a670717048c423fe2010ce25904cbbb8d6e590",
         "media_type":"application/json",
         "format":"dif/credential-manifest/fulfillment@v1.0",
         "data":{
            "json":{
               "@context":[
                  "https://www.w3.org/2018/credentials/v1",
                  "https://identity.foundation/credential-manifest/fulfillment/v1"
               ],
               "type":[
                  "VerifiablePresentation",
                  "CredentialFulfillment"
               ],
               "fulfillment":{
                  "id":"c00500cbb5d88e2bfcac2f9a16e76caecbfb4c91e887a87620da2dd4d5057361",
                  "manifest_id":"c001006f847f39073113b0ed862ff88c3c49669b4bbf5a30fcbec9f62d35cf98",
                  "descriptor_map":[
                     {
                        "id":"16762842a53579c48363ab639cc8846a5a1cfaa057211b1739e3ec29870494a6",
                        "format":"ldp_vc",
                        "path":"$.verifiableCredential[0]"
                     }
                  ]
               },
               "verifiableCredential":[
                  {
                    "@context": [
                      "https://www.w3.org/2018/credentials/v1",
                      "https://purl.imsglobal.org/spec/ob/v3p0/context.json"
                    ],
                    "id": "urn:uuid:a63a60be-f4af-491c-87fc-2c8fd3007a58",
                    "type": [
                      "VerifiableCredential",
                      "OpenBadgeCredential"
                    ],
                    "name": "JFF x vc-edu PlugFest 2 Interoperability",
                    "issuer": {
                      "type": [
                        "Profile"
                      ],
                      "id": "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn",
                      "name": "Jobs for the Future (JFF)"
                    },
                    "issuanceDate": "2022-11-14T00:00:00Z",
                    "credentialSubject": {
                      "type": [
                        "AchievementSubject"
                      ],
                      "id": "did:key:z6Mko2ceHiQqXGm1mzfQKdiGzc1czEBXvvgTpfroBwDjbwMd",
                      "achievement": {
                        "id": "urn:uuid:bd6d9316-f7ae-4073-a1e5-2f7f5bd22922",
                        "type": [
                          "Achievement"
                        ],
                        "name": "JFF x vc-edu PlugFest 2 Interoperability",
                        "description": "This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions.  This was demonstrated successfully during JFF x vc-edu PlugFest 2.",
                        "criteria": {
                          "narrative": "Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets.  Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers."
                        },
                        "image": {
                          "id": "https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png",
                          "type": "Image"
                        }
                      }
                    },
                    "proof": [{
                      "type": "Ed25519Signature2018",
                      "created": "2022-10-19T17:59:37Z",
                      "verificationMethod": "did:web:aviary.id#key-0",
                      "proofPurpose": "assertionMethod",
                      "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..0YMgLoK6F6Q47dvB2qQ79e1Dd27cjz4b5OnF2taQ38E0ZwtaA5GnS8igfTv2e_ZUbjalcwcPTq0u8Hf9CRLRDg"
                    }]
                  }
               ],
               "proof":{
                  "created":"2021-06-07T20:02:44.730614315Z",
                  "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..NVum9BeYkhzwslZXm2cDOveQB9njlrCRSrdMZgwV3zZfLRXmZQ1AXdKLLmo4ClTYXFX_TWNyB8aFt9cN6sSvCg",
                  "proofPurpose":"authentication",
                  "type":"Ed25519Signature2018",
                  "verificationMethod":"did:web:aviary.id#key-0"
               }
            }
         }
      }
   ]
}

Attaches a credential manifest fulfillment VP. The fulfillment object maps back to the manifest from the offer and request and includes a descriptor_map which describes where to find their new VC. The verifiableCredential includes the VC with the requested did in the credentialSubject.id. The VC is signed by the issuer as well as the VP wrapping it.

AlexAndrei98 commented 1 year ago
'{"id": "6cad1999-014a-4e80-8dfe-f3c04b599f04", "type": "https://didcomm.org/issue-credential/3.0/issue-credential", "body": {"goal_code": "issue-credential", "comment": "some comment"}, "from_prior": {"iss": "did:peer:2.Ez6LSh1AfaWvT3AdezDufuSgTUQKzWGkmaczdeK65jTd6N3Fc.Vz6MkngYFEYcNXbHGnaRLSy2k8k6jKwadFHRDNMTtDHWkpTx6.SeyJpZCI6Im5ldy1pZCIsInQiOiJkbSIsInMiOiJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCJhIjpbImRpZGNvbW0vdjIiXX0", "sub": "did:peer:2.Ez6LSgSTe5AsvA3JQU3ADPGLiRDRELYSEvp31hzWXq9F8h6nV.Vz6MkrEPY1McGrz2eiUhkEih1evvSSkfsVQKeBpy8oyepUQ7k.SeyJpZCI6Im5ldy1pZCIsInQiOiJkbSIsInMiOiJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCJhIjpbImRpZGNvbW0vdjIiXX0"}, "attachments": [{"data": {"json": {"@context": ["https://www.w3.org/2018/credentials/v1", "https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/jff-vc-edu-plugfest-1-context.json"], "id": "ecbdeadc-f97a-4a11-a886-b76ea6512b95", "type": ["VerifiableCredential", "OpenBadgeCredential"], "issuer": {"type": "Profile", "id": "did:peer:2.Ez6LSgSTe5AsvA3JQU3ADPGLiRDRELYSEvp31hzWXq9F8h6nV.Vz6MkrEPY1McGrz2eiUhkEih1evvSSkfsVQKeBpy8oyepUQ7k.SeyJpZCI6Im5ldy1pZCIsInQiOiJkbSIsInMiOiJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCJhIjpbImRpZGNvbW0vdjIiXX0", "name": "IIW 2022", "url": "https://www.jff.org/", "image": "https://kayaelle.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png"}, "issuanceDate": "2022-10-31T10:48:15Z", "credentialSubject": {"type": "AchievementSubject", "id": "did:peer:2.Ez6LSbmaLEnWYhmVhEGoWkzwY6BSWvbimJQwAYXU5mpdZui5t.Vz6MknoHDdqNxaiShrdqSSQWEyhb34rNwFie4kMsXmAbaUCaD.SeyJpZCI6Im5ldy1pZCIsInQiOiJkbSIsInMiOiJodHRwczovL3d3dy5leGFtcGxlLmNvbS9ob2xkZXIiLCJhIjpbImRpZGNvbW0vdjIiXX0", "achievement": {"type": "Achievement", "name": "IIW 2022 DEMO", "description": "This wallet can display this Open Badge 3.0", "criteria": {"type": "Criteria", "narrative": "The first cohort of the JFF Plugfest 1 in May/June of 2021 collaborated to push interoperability of VCs in education forward."}, "image": "https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/plugfest-1-badge-image.png"}}, "options": {"proofType": "Ed25519Signature2018"}, "proof": {"type": "Ed25519Signature2018", "created": "2022-10-31T10:48:15Z", "verificationMethod": "did:peer:2.Ez6LSgSTe5AsvA3JQU3ADPGLiRDRELYSEvp31hzWXq9F8h6nV.Vz6MkrEPY1McGrz2eiUhkEih1evvSSkfsVQKeBpy8oyepUQ7k.SeyJpZCI6Im5ldy1pZCIsInQiOiJkbSIsInMiOiJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCJhIjpbImRpZGNvbW0vdjIiXX0", "proofPurpose": "assertionMethod", "jws": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vdzNjLWNjZy5naXRodWIuaW8vdmMtZWQvcGx1Z2Zlc3QtMS0yMDIyL2pmZi12Yy1lZHUtcGx1Z2Zlc3QtMS1jb250ZXh0Lmpzb24iXSwiaWQiOiJlY2JkZWFkYy1mOTdhLTRhMTEtYTg4Ni1iNzZlYTY1MTJiOTUiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiT3BlbkJhZGdlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOnsidHlwZSI6IlByb2ZpbGUiLCJpZCI6ImRpZDpwZWVyOjIuRXo2TFNnU1RlNUFzdkEzSlFVM0FEUEdMaVJEUkVMWVNFdnAzMWh6V1hxOUY4aDZuVi5WejZNa3JFUFkxTWNHcnoyZWlVaGtFaWgxZXZ2U1NrZnNWUUtlQnB5OG95ZXBVUTdrLlNleUpwWkNJNkltNWxkeTFwWkNJc0luUWlPaUprYlNJc0luTWlPaUpvZEhSd09pOHZNVEkzTGpBdU1DNHhPamd3TURBaUxDSmhJanBiSW1ScFpHTnZiVzB2ZGpJaVhYMCIsIm5hbWUiOiJJSVcgMjAyMiIsInVybCI6Imh0dHBzOi8vd3d3LmpmZi5vcmcvIiwiaW1hZ2UiOiJodHRwczovL2theWFlbGxlLmdpdGh1Yi5pby92Yy1lZC9wbHVnZmVzdC0xLTIwMjIvaW1hZ2VzL0pGRl9Mb2dvTG9ja3VwLnBuZyJ9LCJpc3N1YW5jZURhdGUiOiIyMDIyLTEwLTMxVDEwOjQ4OjE1WiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7InR5cGUiOiJBY2hpZXZlbWVudFN1YmplY3QiLCJpZCI6ImRpZDpwZWVyOjIuRXo2TFNibWFMRW5XWWhtVmhFR29Xa3p3WTZCU1d2YmltSlF3QVlYVTVtcGRadWk1dC5WejZNa25vSERkcU54YWlTaHJkcVNTUVdFeWhiMzRyTndGaWU0a01zWG1BYmFVQ2FELlNleUpwWkNJNkltNWxkeTFwWkNJc0luUWlPaUprYlNJc0luTWlPaUpvZEhSd2N6b3ZMM2QzZHk1bGVHRnRjR3hsTG1OdmJTOW9iMnhrWlhJaUxDSmhJanBiSW1ScFpHTnZiVzB2ZGpJaVhYMCIsImFjaGlldmVtZW50Ijp7InR5cGUiOiJBY2hpZXZlbWVudCIsIm5hbWUiOiJJSVcgMjAyMiBERU1PIiwiZGVzY3JpcHRpb24iOiJUaGlzIHdhbGxldCBjYW4gZGlzcGxheSB0aGlzIE9wZW4gQmFkZ2UgMy4wIiwiY3JpdGVyaWEiOnsidHlwZSI6IkNyaXRlcmlhIiwibmFycmF0aXZlIjoiVGhlIGZpcnN0IGNvaG9ydCBvZiB0aGUgSkZGIFBsdWdmZXN0IDEgaW4gTWF5L0p1bmUgb2YgMjAyMSBjb2xsYWJvcmF0ZWQgdG8gcHVzaCBpbnRlcm9wZXJhYmlsaXR5IG9mIFZDcyBpbiBlZHVjYXRpb24gZm9yd2FyZC4ifSwiaW1hZ2UiOiJodHRwczovL3czYy1jY2cuZ2l0aHViLmlvL3ZjLWVkL3BsdWdmZXN0LTEtMjAyMi9pbWFnZXMvcGx1Z2Zlc3QtMS1iYWRnZS1pbWFnZS5wbmcifX0sIm9wdGlvbnMiOnsicHJvb2ZUeXBlIjoiRWQyNTUxOVNpZ25hdHVyZTIwMTgifX0.mMzSKmy86pX_EumaMJCfsIYj6xLkdlBTN7w0nB65Yy4"}}}, "id": "54388d77-7dd8-46de-b2ff-7e09213eead4", "media_type": "application/json", "format": "aries/ld-proof-vc-detail@v1.0"}], "typ": "application/didcomm-plain+json"}'

We have not implemented ld signatures in the mediator which we are using to issue credentials as so we are just mocking a jws sign

brianorwhatever commented 1 year ago

Updated to match latest credential manifest names

{
   "type":"https://didcomm.org/issue-credential/3.0/issue-credential",
   "id":"d004008a493a22ff1efdeb3b6c1fc7d3ffb954d4f866e3c06077fe35c623b64c",
   "thid":"d00100bdf7f4b473232b49bc2a11dbda0ff10d418ba571205b252aa14dd294e1",
   "from":"did:web:aviary.id",
   "to":[
"did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ"
   ],
   "body":{

   },
   "attachments":[
      {
         "id":"d000009f7fc026af6580541133a670717048c423fe2010ce25904cbbb8d6e590",
         "media_type":"application/json",
         "format":"dif/credential-manifest/response@v1.0",
         "data":{
            "json":{
               "@context":[
                  "https://www.w3.org/2018/credentials/v1",
                  "https://identity.foundation/credential-manifest/response/v1/"
               ],
               "type":[
                  "VerifiablePresentation",
                  "CredentialResponse"
               ],
               "credential_response":{
                  "id":"c00500cbb5d88e2bfcac2f9a16e76caecbfb4c91e887a87620da2dd4d5057361",
                  "manifest_id":"c001006f847f39073113b0ed862ff88c3c49669b4bbf5a30fcbec9f62d35cf98",
                  "descriptor_map":[
                     {
                        "id":"16762842a53579c48363ab639cc8846a5a1cfaa057211b1739e3ec29870494a6",
                        "format":"ldp_vc",
                        "path":"$.verifiableCredential[0]"
                     }
                  ]
               },
               "verifiableCredential":[
                  {
                    "@context": [
                      "https://www.w3.org/2018/credentials/v1",
                      "https://purl.imsglobal.org/spec/ob/v3p0/context.json"
                    ],
                    "id": "urn:uuid:a63a60be-f4af-491c-87fc-2c8fd3007a58",
                    "type": [
                      "VerifiableCredential",
                      "OpenBadgeCredential"
                    ],
                    "name": "JFF x vc-edu PlugFest 2 Interoperability",
                    "issuer": {
                      "type": [
                        "Profile"
                      ],
                      "id": "did:key:z6MktiSzqF9kqwdU8VkdBKx56EYzXfpgnNPUAGznpicNiWfn",
                      "name": "Jobs for the Future (JFF)"
                    },
                    "issuanceDate": "2022-11-14T00:00:00Z",
                    "credentialSubject": {
                      "type": [
                        "AchievementSubject"
                      ],
                      "id": "did:key:z6Mko2ceHiQqXGm1mzfQKdiGzc1czEBXvvgTpfroBwDjbwMd",
                      "achievement": {
                        "id": "urn:uuid:bd6d9316-f7ae-4073-a1e5-2f7f5bd22922",
                        "type": [
                          "Achievement"
                        ],
                        "name": "JFF x vc-edu PlugFest 2 Interoperability",
                        "description": "This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions.  This was demonstrated successfully during JFF x vc-edu PlugFest 2.",
                        "criteria": {
                          "narrative": "Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets.  Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers."
                        },
                        "image": {
                          "id": "https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png",
                          "type": "Image"
                        }
                      }
                    },
                    "proof": [{
                      "type": "Ed25519Signature2018",
                      "created": "2022-10-19T17:59:37Z",
                      "verificationMethod": "did:web:aviary.id#key-0",
                      "proofPurpose": "assertionMethod",
                      "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..0YMgLoK6F6Q47dvB2qQ79e1Dd27cjz4b5OnF2taQ38E0ZwtaA5GnS8igfTv2e_ZUbjalcwcPTq0u8Hf9CRLRDg"
                    }]
                  }
               ],
               "proof":{
                  "created":"2021-06-07T20:02:44.730614315Z",
                  "jws":"eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..NVum9BeYkhzwslZXm2cDOveQB9njlrCRSrdMZgwV3zZfLRXmZQ1AXdKLLmo4ClTYXFX_TWNyB8aFt9cN6sSvCg",
                  "proofPurpose":"authentication",
                  "type":"Ed25519Signature2018",
                  "verificationMethod":"did:web:aviary.id#key-0"
               }
            }
         }
      }
   ]
}
brianorwhatever commented 1 year ago

What I implemented below

{
    "id": "8c7d511d6d1353734a2bae697b9ac4126945d8011d9b285512731a68180c8010",
    "typ": "application/didcomm-plain+json",
    "type": "https://didcomm.org/issue-credential/3.0/issue-credential",
    "body": {},
    "from": "did:web:verifiable.ink",
    "to": [
        "did:peer:2.Vz6MknQLpgecyvcdpXSAmiAeMVxLYyFuggVEoNxuXEt5oScMn.Ez6LSo5h8SnuaqSkxkN9fWFM2GQMXcnQkp8C94ttA5GwLRHW1.SeyJpZCI6IiNkaWRjb21tIiwidCI6ImRtIiwicyI6Imh0dHBzOi8vcG9ydGN1bGxpcy4xa2VlcC5jb20vZGlkY29tbSIsInIiOlsiZGlkOndlYjpwb3J0Y3VsbGlzLjFrZWVwLmNvbSJdfQ"
    ],
    "thid": "28eec678f1b860daddc7d775fcfcf15d7310ea692e62e8b6f4518d4c0f35bdb0",
    "attachments": [
        {
            "data": {
                "json": {
                    "@context": [
                        "https://www.w3.org/2018/credentials/v1",
                        "https://identity.foundation/credential-manifest/response/v1"
                    ],
                    "credential_response": {
                        "descriptor_map": [
                            {
                                "format": "ldp_vc",
                                "id": "e4a1ed1395d57ca6941ef29b991685857308adcf4de27609b3f6f045599023ea",
                                "path": "$.verifiableCredential[0]"
                            }
                        ],
                        "id": "4be7cf1b101e757382c2dcd67ad42dc8b723f912f8f980954a108795a8a2f739",
                        "manifest_id": "b82273315d664fcd72c901f2a80c4fe35f4c78a5b90af670ca2efc19af5d2510"
                    },
                    "proof": {
                        "created": "2022-12-14T17:51:27Z",
                        "jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdfQ..2fsqcYxvI4OBu0SkSsuB6MomuF7sFUYDW3dCJV57HkxpMTZnyYcOH8S7ZsiIRZR0y6vuTfuLRg7Ns9zBvjYMAA",
                        "proofPurpose": "authentication",
                        "type": "JsonWebSignature2020",
                        "verificationMethod": "did:web:verifiable.ink#0"
                    },
                    "type": [
                        "VerifiablePresentation",
                        "CredentialResponse"
                    ],
                    "verifiableCredential": [
                        {
                            "@context": [
                                "https://www.w3.org/2018/credentials/v1",
                                "https://purl.imsglobal.org/spec/ob/v3p0/context.json",
                                "https://w3id.org/security/suites/jws-2020/v1"
                            ],
                            "credentialSubject": {
                                "achievement": {
                                    "criteria": {
                                        "narrative": "Solutions providers earned this badge by demonstrating interoperability between multiple providers based on the OBv3 candidate final standard, with some additional required fields. Credential issuers earning this badge successfully issued a credential into at least two wallets.  Wallet implementers earning this badge successfully displayed credentials issued by at least two different credential issuers.",
                                        "type": "Criteria"
                                    },
                                    "description": "This credential solution supports the use of OBv3 and w3c Verifiable Credentials and is interoperable with at least two other solutions.  This was demonstrated successfully during JFF x vc-edu PlugFest 2.",
                                    "id": "urn:uuid:bd6d9316-f7ae-4073-a1e5-2f7f5bd22922",
                                    "image": {
                                        "id": "https://w3c-ccg.github.io/vc-ed/plugfest-2-2022/images/JFF-VC-EDU-PLUGFEST2-badge-image.png",
                                        "type": "Image"
                                    },
                                    "name": "JFF x vc-edu PlugFest 2 Interoperability",
                                    "type": [
                                        "Achievement"
                                    ]
                                },
                                "id": "did:key:C4DFDAStSHdRnhvz1ZP5yTssTki6cVRCPk4535hBB6Yq",
                                "type": [
                                    "AchievementSubject"
                                ]
                            },
                            "id": "9815c4990b2d4f6cf026bf6421f9cb3a81386704ba787233e1d8f723edda6ec7",
                            "issuanceDate": "2022-11-14T00:00:00Z",
                            "issuer": {
                                "id": "did:web:verifiable.ink",
                                "name": "Verifiable Ink",
                                "type": [
                                    "Profile"
                                ]
                            },
                            "name": "JFF x vc-edu PlugFest 2 Interoperability",
                            "proof": {
                                "created": "2022-12-14T17:51:27Z",
                                "jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdfQ..sBtJpYj3DLJELLjL2Y6xjMZOmwY3M-Kwb_QKSNJpTKGnWkd-iV5dbVNOedt2io-nhEjA9VcO8m1CGDPTMmsNBQ",
                                "proofPurpose": "assertionMethod",
                                "type": "JsonWebSignature2020",
                                "verificationMethod": "did:web:verifiable.ink#0"
                            },
                            "type": [
                                "VerifiableCredential",
                                "OpenBadgeCredential"
                            ]
                        }
                    ]
                }
            },
            "id": "b1b18cbc2e284bb1acb8ffd4f8cb9cdd4ac78ecd2d16365d91dc4d4e26f1567e",
            "media_type": "application/json",
            "format": "dif/credential-manifest/response@v1.0"
        }
    ]
}