Skip to content

Instantly share code, notes, and snippets.

@kentbull
Last active August 20, 2025 22:12
Show Gist options
  • Save kentbull/ad1ec933aa61cb91918696f956ca46ad to your computer and use it in GitHub Desktop.
Save kentbull/ad1ec933aa61cb91918696f956ca46ad to your computer and use it in GitHub Desktop.
vLEI ID and ACDC raw strings

vLEI ID (A CESR encoded string)

A vLEI ID is just a KERI AID (autonomic identifier) and is encoded as a TLV (type, length, value) CESR encoded string. CESR uses the Base64URLSafe encoding to encode strings. It uses a front-loaded TLV scheme meaning the type codes are at the beginning, not the end.

ED1e8pD24aqd0dCZTQHaGpfcluPFD2ajGIY3ARgE5Yvr

ACDC JSON object (subpart of a CESR stream)

All vLEI credentials are expressed as ACDCs. An ACDC is not a vLEI ID as a KERI AID is a vLEI ID. The ACDC is a credential that is issued to a vLEI AID.

The parts of the object below include:

  • metadata (v, d, i, ri, s)
  • attributes (a section)
  • rules (r section)

What is not shown in this particular credential is the edges section.

  • edges (e section)
    • The below credential has no edges as it is a self-attested designated aliases ACDC used in did:webs to specify also known as aliases.
{
  "v": "ACDC10JSON0005e4_",
  "d": "EO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE",
  "i": "EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
  "ri": "EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j",
  "s": "EN6Oh5XSD5_q2Hgu-aqpdfbVepdpYpFlgz6zvJL5b_r5",
  "a": {
    "d": "ELlfKbhQiG_CFxTxVTjM4N41TfL7IuzEhcKunAPNGwQ1",
    "dt": "2025-08-13T20:02:39.648252+00:00",
    "ids": [
      "did:web:127.0.0.1%3a7678:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
      "did:webs:127.0.0.1%3a7678:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
      "did:web:example.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
      "did:web:foo.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
      "did:webs:foo.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft"
    ]
  },
  "r": {
    "d": "EEVTx0jLLZDQq8a5bXrXgVP0JDP7j8iDym9Avfo8luLw",
    "aliasDesignation": {
      "l": "The issuer of this ACDC designates the identifiers in the ids field as the only allowed namespaced aliases of the issuer's AID."
    },
    "usageDisclaimer": {
      "l": "This attestation only asserts designated aliases of the controller of the AID, that the AID controlled namespaced alias has been designated by the controller. It does not assert that the controller of this AID has control over the infrastructure or anything else related to the namespace other than the included AID."
    },
    "issuanceDisclaimer": {
      "l": "All information in a valid and non-revoked alias designation assertion is accurate as of the date specified."
    },
    "termsOfUse": {
      "l": "Designated aliases of the AID must only be used in a manner consistent with the expressed intent of the AID controller."
    }
  }
}

ACDC CESR stream no whitespace (one long string)

This is the ACDC CESR stream for an entire ACDC JSON object concatenated with the CESR attachments at the end. A CESR stream is composed of CESR Messages which have the following parts:

  • CESR Message
    • CESR Body
    • CESR Attachments
{"v":"KERI10JSON000159_","t":"icp","d":"EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","i":"EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","s":"0","kt":"1","k":["DLocH0g8QYMUqaxn7UcxQbiy-vp5m_1LQY4DsHu0CRrw"],"nt":"1","n":["ENMNLTi8meis1ApCJSfl_N4rTEAAsSkyvRON4RYH_xpM"],"bt":"1","b":["BBilc4-L3tFUnfM_wJr4S4OJanAv_VmF_dJNN6vkf2Ha"],"c":[],"a":[]}-VA--AABAAAoEAhe-by7Jxh4dgnoDoCmz0e6wXfju4pnT_rrlQE7QLPkK2lqX6iMBgwsT-WYCFMNpFZ9HwiBSWLe0s6dFh8N-BABAADG08mCFRezDfMa_Wlv2A7tA17nwxaGjKvfEWu9zLdeFBHWOOk-DQudBbqUmKsbBuViuBi5Col-FZ4ECSlTatEO-EAB0AAAAAAAAAAAAAAAAAAAAAAA1AAG2025-08-13T20c02c36d523549p00c00{"v":"KERI10JSON00013a_","t":"ixn","d":"EJrZdGVhlCrJxH7ehshUQxJFNBDFTQCYNjb7i3AY0AV4","i":"EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","s":"1","p":"EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","a":[{"i":"EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j","s":"0","d":"EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j"}]}-VA--AABAACp31bY7dlxWM2rJLmCLmZ8f20EWh5_I1lFDoDO9fOspmCnWOYM9KZpFFJ117NLrJuFTRgNqXmMyUjoObeI81MO-BABAABM6-PvoSl-f2VOBmnJdLuOmT-rpxNaCfrXjeiPcDDKofFpNQ3pNyIRpWsBZ8bBAintT_4fcHnYItZ_IeO5AYYK-EAB0AAAAAAAAAAAAAAAAAAAAAAB1AAG2025-08-13T20c02c38d404808p00c00{"v":"KERI10JSON00013a_","t":"ixn","d":"EKRVxyM9mUJ-SJ7L4E3s6q7J7HbMN1GS-y5n_mHHVkJ7","i":"EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","s":"2","p":"EJrZdGVhlCrJxH7ehshUQxJFNBDFTQCYNjb7i3AY0AV4","a":[{"i":"EO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE","s":"0","d":"EG94hTDKiOUZolLGP6ry1WwzQ7tuWHmRWxCZ-XbtXgP7"}]}-VA--AABAAAR5BEIqe9AzQWf-wX9iL7ogAZXITrrG1lbvA-EpOHNE4-pWMq23CpLjKUgdhNxJfa_k-DGES-lKSfgcAoZWYoM-BABAADaVUTjZsMfYd2hpRRYpKAkem442eIY-zUUdDCPzY1jV9UJ_IgTxc_7jyKRvo33TmVC3wCMksFVJ636Rb7sUMwD-EAB0AAAAAAAAAAAAAAAAAAAAAAC1AAG2025-08-13T20c02c40d212691p00c00{"v":"KERI10JSON0000fa_","t":"rpy","d":"ELSHJwBjsy41VvikaWd5cSC5hoooONVeVsImCzjzBQWP","dt":"2022-01-20T12:57:59.823350+00:00","r":"/loc/scheme","a":{"eid":"BBilc4-L3tFUnfM_wJr4S4OJanAv_VmF_dJNN6vkf2Ha","scheme":"http","url":"http://127.0.0.1:5642/"}}-VAi-CABBBilc4-L3tFUnfM_wJr4S4OJanAv_VmF_dJNN6vkf2Ha0BDRY23xEjEXaAJs7jPJt6uyxK8N2apNJitvn9mo0q4Gh8p7Pf2bAEp1Ufed5l0FdlLxV-Z2sMO8D7wVtA-m_QEM{"v":"KERI10JSON0000f8_","t":"rpy","d":"EBwDJvb5oW2SgwNfDK8Ib-NiljgBt4uK1bDjW3QztBPr","dt":"2022-01-20T12:57:59.823350+00:00","r":"/loc/scheme","a":{"eid":"BBilc4-L3tFUnfM_wJr4S4OJanAv_VmF_dJNN6vkf2Ha","scheme":"tcp","url":"tcp://127.0.0.1:5632/"}}-VAi-CABBBilc4-L3tFUnfM_wJr4S4OJanAv_VmF_dJNN6vkf2Ha0BCsK_YJIDH8djf5ncLs0VPJ1In104Hiu1392AlIMVFhmIxDP6gxgzMtklcOIyhQwRe7Mvgjniynjdv95iTCPWEL{"v":"KERI10JSON000116_","t":"rpy","d":"EDx5J0gOB_wblJhhcd786Aqzq7rv7wP4Ax07t3P1I7Yw","dt":"2022-01-20T12:57:59.823350+00:00","r":"/end/role/add","a":{"cid":"BBilc4-L3tFUnfM_wJr4S4OJanAv_VmF_dJNN6vkf2Ha","role":"controller","eid":"BBilc4-L3tFUnfM_wJr4S4OJanAv_VmF_dJNN6vkf2Ha"}}-VAi-CABBBilc4-L3tFUnfM_wJr4S4OJanAv_VmF_dJNN6vkf2Ha0BC4sWpPkgUNNKAr-uQ2_I38Wi-TnFaRCsSWiSoP1XKldr6B9OJtkmpn13W-6m6WykarqTxy5GcRnDtZ2VzlJs4A{"v":"KERI10JSON0000ff_","t":"vcp","d":"EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j","i":"EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j","ii":"EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","s":"0","c":["NB"],"bt":"0","b":[],"n":"0ABZE5icl4T1Rweo9ZefLuRv"}-VAS-GAB0AAAAAAAAAAAAAAAAAAAAAABEJrZdGVhlCrJxH7ehshUQxJFNBDFTQCYNjb7i3AY0AV4{"v":"KERI10JSON0000ed_","t":"iss","d":"EG94hTDKiOUZolLGP6ry1WwzQ7tuWHmRWxCZ-XbtXgP7","i":"EO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE","s":"0","ri":"EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j","dt":"2025-08-13T20:02:39.648252+00:00"}-VAS-GAB0AAAAAAAAAAAAAAAAAAAAAACEKRVxyM9mUJ-SJ7L4E3s6q7J7HbMN1GS-y5n_mHHVkJ7{"v":"ACDC10JSON0005e4_","d":"EO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE","i":"EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","ri":"EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j","s":"EN6Oh5XSD5_q2Hgu-aqpdfbVepdpYpFlgz6zvJL5b_r5","a":{"d":"ELlfKbhQiG_CFxTxVTjM4N41TfL7IuzEhcKunAPNGwQ1","dt":"2025-08-13T20:02:39.648252+00:00","ids":["did:web:127.0.0.1%3a7678:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","did:webs:127.0.0.1%3a7678:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","did:web:example.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","did:web:foo.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","did:webs:foo.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft"]},"r":{"d":"EEVTx0jLLZDQq8a5bXrXgVP0JDP7j8iDym9Avfo8luLw","aliasDesignation":{"l":"The issuer of this ACDC designates the identifiers in the ids field as the only allowed namespaced aliases of the issuer's AID."},"usageDisclaimer":{"l":"This attestation only asserts designated aliases of the controller of the AID, that the AID controlled namespaced alias has been designated by the controller. It does not assert that the controller of this AID has control over the infrastructure or anything else related to the namespace other than the included AID."},"issuanceDisclaimer":{"l":"All information in a valid and non-revoked alias designation assertion is accurate as of the date specified."},"termsOfUse":{"l":"Designated aliases of the AID must only be used in a manner consistent with the expressed intent of the AID controller."}}}-IABEO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE0AAAAAAAAAAAAAAAAAAAAAAAEG94hTDKiOUZolLGP6ry1WwzQ7tuWHmRWxCZ-XbtXgP7

ACDC JSON object as a CESR stream (no whitespace)

The CESR Body is usually a JSON object, shown as a raw string below with no whitespace:

{"v":"ACDC10JSON0005e4_","d":"EO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE","i":"EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","ri":"EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j","s":"EN6Oh5XSD5_q2Hgu-aqpdfbVepdpYpFlgz6zvJL5b_r5","a":{"d":"ELlfKbhQiG_CFxTxVTjM4N41TfL7IuzEhcKunAPNGwQ1","dt":"2025-08-13T20:02:39.648252+00:00","ids":["did:web:127.0.0.1%3a7678:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","did:webs:127.0.0.1%3a7678:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","did:web:example.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","did:web:foo.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft","did:webs:foo.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft"]},"r":{"d":"EEVTx0jLLZDQq8a5bXrXgVP0JDP7j8iDym9Avfo8luLw","aliasDesignation":{"l":"The issuer of this ACDC designates the identifiers in the ids field as the only allowed namespaced aliases of the issuer's AID."},"usageDisclaimer":{"l":"This attestation only asserts designated aliases of the controller of the AID, that the AID controlled namespaced alias has been designated by the controller. It does not assert that the controller of this AID has control over the infrastructure or anything else related to the namespace other than the included AID."},"issuanceDisclaimer":{"l":"All information in a valid and non-revoked alias designation assertion is accurate as of the date specified."},"termsOfUse":{"l":"Designated aliases of the AID must only be used in a manner consistent with the expressed intent of the AID controller."}}}

ACDC CESR Attachments with no whitespace

The CESR Attachments when Base64URLSafe encoded come after the CESR Body JSON object and look like the following:

-IABEO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE0AAAAAAAAAAAAAAAAAAAAAAAEG94hTDKiOUZolLGP6ry1WwzQ7tuWHmRWxCZ-XbtXgP7

ACDC CESR Attachments annotated and with whitespace

The below is an annotated version of the CESR attachments showing what each part of the attachment is.

-IAB # Key Event Counter SealSourceTriples count=1 quadlets
  EO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE # Seal Source Triple AID Prefixer Blake3_256 
  0AAAAAAAAAAAAAAAAAAAAAAA # Seal Source Triple AID Seqner Salt_128 
  EG94hTDKiOUZolLGP6ry1WwzQ7tuWHmRWxCZ-XbtXgP7 # Seal Source Triple AID Seqner Blake3_256 

ACDC CESR Message Body (JSON object only) with whitespace

With whitespace the CESR Body JSON object of an ACDC looks like this:

{
  "v": "ACDC10JSON0005e4_",
  "d": "EO-bpHzF7r_4WB-iklfeFHE9b3IHoKMSxdKG6ZbQERrE",
  "i": "EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
  "ri": "EP0fjjbpjS6TascGdlFjn6yxd6z-OBpaqMwNN2vgYB7j",
  "s": "EN6Oh5XSD5_q2Hgu-aqpdfbVepdpYpFlgz6zvJL5b_r5",
  "a": {
    "d": "ELlfKbhQiG_CFxTxVTjM4N41TfL7IuzEhcKunAPNGwQ1",
    "dt": "2025-08-13T20:02:39.648252+00:00",
    "ids": [
      "did:web:127.0.0.1%3a7678:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
      "did:webs:127.0.0.1%3a7678:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
      "did:web:example.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
      "did:web:foo.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft",
      "did:webs:foo.com:EBFn5ge82EQwxp9eeje-UMEXF-v-3dlfbdVMX_PNjSft"
    ]
  },
  "r": {
    "d": "EEVTx0jLLZDQq8a5bXrXgVP0JDP7j8iDym9Avfo8luLw",
    "aliasDesignation": {
      "l": "The issuer of this ACDC designates the identifiers in the ids field as the only allowed namespaced aliases of the issuer's AID."
    },
    "usageDisclaimer": {
      "l": "This attestation only asserts designated aliases of the controller of the AID, that the AID controlled namespaced alias has been designated by the controller. It does not assert that the controller of this AID has control over the infrastructure or anything else related to the namespace other than the included AID."
    },
    "issuanceDisclaimer": {
      "l": "All information in a valid and non-revoked alias designation assertion is accurate as of the date specified."
    },
    "termsOfUse": {
      "l": "Designated aliases of the AID must only be used in a manner consistent with the expressed intent of the AID controller."
    }
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment