diff --git a/404.html b/404.html index d4d591a74b7..146594b847d 100644 --- a/404.html +++ b/404.html @@ -7,12 +7,12 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/main.2d29440c.js b/assets/js/main.2d29440c.js deleted file mode 100644 index adad9490503..00000000000 --- a/assets/js/main.2d29440c.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.2d29440c.js.LICENSE.txt */ -(self.webpackChunkwot_terms_docusaurus=self.webpackChunkwot_terms_docusaurus||[]).push([[40179],{17331:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,s,i,a,c,l;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var u=new Error('Uncaught, unspecified "error" event. ('+t+")");throw u.context=t,u}if(o(s=this._events[e]))return!1;if(r(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),s.apply(this,a)}else if(n(s))for(a=Array.prototype.slice.call(arguments,1),i=(l=s.slice()).length,c=0;c0&&this._events[e].length>i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function o(){this.removeListener(e,o),n||(n=!0,t.apply(this,arguments))}return o.listener=t,this.on(e,o),this},t.prototype.removeListener=function(e,t){var o,s,i,a;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(i=(o=this._events[e]).length,s=-1,o===t||r(o.listener)&&o.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(o)){for(a=i;a-- >0;)if(o[a]===t||o[a].listener&&o[a].listener===t){s=a;break}if(s<0)return this;1===o.length?(o.length=0,delete this._events[e]):o.splice(s,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},21334:(e,t,r)=>{"use strict";var n=r(86027),o=r(81843),s=r(7785),i=r(25643),a=r(55798),c=r(55745);async function l(e,t){return e.octokit.auth({type:"installation",installationId:t,factory(e){const r={...e.octokitOptions,authStrategy:o.createAppAuth,auth:{...e,installationId:t}};return new e.octokit.constructor(r)}})}function u(e){return Object.assign(d.bind(null,e),{iterator:p.bind(null,e)})}async function d(e,t){const r=p(e)[Symbol.asyncIterator]();let n=await r.next();for(;!n.done;)await t(n.value),n=await r.next()}function p(e){return{async*[Symbol.asyncIterator](){const t=c.composePaginateRest.iterator(e.octokit,"GET /app/installations");for await(const{data:r}of t)for(const t of r){const r=await l(e,t.id);yield{octokit:r,installation:t}}}}}function f(e){return Object.assign(m.bind(null,e),{iterator:h.bind(null,e)})}async function m(e,t,r){const n=h(e,r?t:void 0)[Symbol.asyncIterator]();let o=await n.next();for(;!o.done;)r?await r(o.value):await t(o.value),o=await n.next()}function h(e,t){return{async*[Symbol.asyncIterator](){const r=t?function(e,t){return{async*[Symbol.asyncIterator](){yield{octokit:await e.getInstallationOctokit(t)}}}}(e,t.installationId):e.eachInstallation.iterator();for await(const{octokit:e}of r){const t=c.composePaginateRest.iterator(e,"GET /installation/repositories");for await(const{data:r}of t)for(const t of r)yield{octokit:e,repository:t}}}}}function g(e,t){t.writeHead(404,{"content-type":"application/json"}),t.end(JSON.stringify({error:`Unknown route: ${e.method} ${e.url}`}))}function y(){}async function b(e,{webhooksMiddleware:t,oauthMiddleware:r},n,o,s){const{pathname:i}=new URL(n.url,"http://localhost");if(i===`${e.pathPrefix}/webhooks`)return t(n,o,s);if(i.startsWith(`${e.pathPrefix}/oauth/`))return r(n,o,s);return"function"==typeof s?s():e.onUnhandledRequest(n,o)}class v{static defaults(e){return class extends(this){constructor(...t){super({...e,...t[0]})}}}constructor(e){const t=e.Octokit||n.Octokit,r=Object.assign({appId:e.appId,privateKey:e.privateKey},e.oauth?{clientId:e.oauth.clientId,clientSecret:e.oauth.clientSecret}:{});this.octokit=new t({authStrategy:o.createAppAuth,auth:r,log:e.log}),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),e.webhooks?this.webhooks=function(e,t){return new a.Webhooks({secret:t.secret,transform:async t=>{if(!("installation"in t.payload)||"object"!=typeof t.payload.installation){const r=new e.constructor({authStrategy:i.createUnauthenticatedAuth,auth:{reason:'"installation" key missing in webhook event payload'}});return{...t,octokit:r}}const r=t.payload.installation.id,n=await e.auth({type:"installation",installationId:r,factory:e=>new e.octokit.constructor({...e.octokitOptions,authStrategy:o.createAppAuth,auth:{...e,installationId:r}})});return n.hook.before("request",(e=>{e.headers["x-github-delivery"]=t.id})),{...t,octokit:n}}})}(this.octokit,e.webhooks):Object.defineProperty(this,"webhooks",{get(){throw new Error("[@octokit/app] webhooks option not set")}}),e.oauth?this.oauth=new s.OAuthApp({...e.oauth,clientType:"github-app",Octokit:t}):Object.defineProperty(this,"oauth",{get(){throw new Error("[@octokit/app] oauth.clientId / oauth.clientSecret options are not set")}}),this.getInstallationOctokit=l.bind(null,this),this.eachInstallation=u(this),this.eachRepository=f(this)}}v.VERSION="13.1.2",t.gV=v},81843:(e,t,r)=>{"use strict";r.r(t),r.d(t,{createAppAuth:()=>x,createOAuthUserAuth:()=>y.createOAuthUserAuth});var n=r(50350),o=r(149),s=r(82352),i=r(92327);function a(e,t,r,n,o,s,i){try{var a=e[s](i),c=a.value}catch(e){return void r(e)}a.done?t(c):Promise.resolve(c).then(n,o)}function c(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var s=e.apply(t,r);function i(e){a(s,n,o,i,c,"next",e)}function c(e){a(s,n,o,i,c,"throw",e)}i(void 0)}))}}function l(e){for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0,o=e.length;n"read"===t[e]?e:`${e}!`)).join(",");return[e,r.sort().join(","),n.join(","),o].filter(Boolean).join("|")}function w({installationId:e,token:t,createdAt:r,expiresAt:n,repositorySelection:o,permissions:s,repositoryIds:i,repositoryNames:a,singleFileName:c}){return Object.assign({type:"token",tokenType:"installation",token:t,installationId:e,permissions:s,createdAt:r,expiresAt:n,repositorySelection:o},i?{repositoryIds:i}:null,a?{repositoryNames:a}:null,c?{singleFileName:c}:null)}async function T(e,t,r){const n=Number(t.installationId||e.installationId);if(!n)throw new Error("[@octokit/auth-app] installationId option is required for installation authentication.");if(t.factory){const{type:r,factory:n,oauthApp:o,...s}={...e,...t};return n(s)}const o=Object.assign({installationId:n},t);if(!t.refresh){const t=await async function(e,t){const r=v(t),n=await e.get(r);if(!n)return;const[o,s,i,a,c,l]=n.split("|");return{token:o,createdAt:s,expiresAt:i,permissions:t.permissions||c.split(/,/).reduce(((e,t)=>(/!$/.test(t)?e[t.slice(0,-1)]="write":e[t]="read",e)),{}),repositoryIds:t.repositoryIds,repositoryNames:t.repositoryNames,singleFileName:l,repositorySelection:a}}(e.cache,o);if(t){const{token:e,createdAt:r,expiresAt:o,permissions:s,repositoryIds:i,repositoryNames:a,singleFileName:c,repositorySelection:l}=t;return w({installationId:n,token:e,createdAt:r,expiresAt:o,permissions:s,repositorySelection:l,repositoryIds:i,repositoryNames:a,singleFileName:c})}}const s=await b(e),i=r||e.request,{data:{token:a,expires_at:c,repositories:l,permissions:u,repository_selection:d,single_file:p}}=await i("POST /app/installations/{installation_id}/access_tokens",{installation_id:n,repository_ids:t.repositoryIds,repositories:t.repositoryNames,permissions:t.permissions,mediaType:{previews:["machine-man"]},headers:{authorization:`bearer ${s.token}`}}),f=u||{},m=d||"all",h=l?l.map((e=>e.id)):void 0,g=l?l.map((e=>e.name)):void 0,y=(new Date).toISOString();return await async function(e,t,r){const n=v(t),o=t.permissions?"":Object.keys(r.permissions).map((e=>`${e}${"write"===r.permissions[e]?"!":""}`)).join(","),s=[r.token,r.createdAt,r.expiresAt,r.repositorySelection,o,r.singleFileName].join("|");await e.set(n,s)}(e.cache,o,{token:a,createdAt:y,expiresAt:c,repositorySelection:m,permissions:f,repositoryIds:h,repositoryNames:g,singleFileName:p}),w({installationId:n,token:a,createdAt:y,expiresAt:c,repositorySelection:m,permissions:f,repositoryIds:h,repositoryNames:g,singleFileName:p})}async function _(e,t){switch(t.type){case"app":return b(e);case"oauth":e.log.warn(new i.$('[@octokit/auth-app] {type: "oauth"} is deprecated. Use {type: "oauth-app"} instead'));case"oauth-app":return e.oauthApp({type:"oauth-app"});case"installation":return T(e,{...t,type:"installation"});case"oauth-user":return e.oauthApp(t);default:throw new Error(`Invalid auth type: ${t.type}`)}}const O=function(e){const t=`^(?:${e.map((e=>e.split("/").map((e=>e.startsWith("{")?"(?:.+?)":e)).join("/"))).map((e=>`(?:${e})`)).join("|")})[^/]*$`;return new RegExp(t,"i")}(["/app","/app/hook/config","/app/hook/deliveries","/app/hook/deliveries/{delivery_id}","/app/hook/deliveries/{delivery_id}/attempts","/app/installations","/app/installations/{installation_id}","/app/installations/{installation_id}/access_tokens","/app/installations/{installation_id}/suspended","/marketplace_listing/accounts/{account_id}","/marketplace_listing/plan","/marketplace_listing/plans","/marketplace_listing/plans/{plan_id}/accounts","/marketplace_listing/stubbed/accounts/{account_id}","/marketplace_listing/stubbed/plan","/marketplace_listing/stubbed/plans","/marketplace_listing/stubbed/plans/{plan_id}/accounts","/orgs/{org}/installation","/repos/{owner}/{repo}/installation","/users/{username}/installation"]);const E=5e3;async function A(e,t,r,n){const o=t.endpoint.merge(r,n),s=o.url;if(/\/login\/oauth\/access_token$/.test(s))return t(o);if(function(e){return!!e&&O.test(e)}(s.replace(t.endpoint.DEFAULTS.baseUrl,""))){const{token:r}=await b(e);let n;o.headers.authorization=`bearer ${r}`;try{n=await t(o)}catch(c){if(function(e){return!(e.message.match(/'Expiration time' claim \('exp'\) must be a numeric value representing the future time at which the assertion expires/)||e.message.match(/'Issued at' claim \('iat'\) must be an Integer representing the time that the assertion was issued/))}(c))throw c;if(void 0===c.response.headers.date)throw c;const r=Math.floor((Date.parse(c.response.headers.date)-Date.parse((new Date).toString()))/1e3);e.log.warn(c.message),e.log.warn(`[@octokit/auth-app] GitHub API time and system time are different by ${r} seconds. Retrying request with the difference accounted for.`);const{token:n}=await b({...e,timeDifference:r});return o.headers.authorization=`bearer ${n}`,t(o)}return n}if((0,y.requiresBasicAuth)(s)){const r=await e.oauthApp({type:"oauth-app"});return o.headers.authorization=r.headers.authorization,t(o)}const{token:i,createdAt:a}=await T(e,{},t);return o.headers.authorization=`token ${i}`,k(e,t,o,a)}async function k(e,t,r,n,o=0){const s=+new Date-+new Date(n);try{return await t(r)}catch(i){if(401!==i.status)throw i;if(s>=E)throw o>0&&(i.message=`After ${o} retries within ${s/1e3}s of creating the installation access token, the response remains 401. At this point, the cause may be an authentication problem or a system outage. Please check https://www.githubstatus.com for status information`),i;const a=1e3*++o;return e.log.warn(`[@octokit/auth-app] Retrying after 401 response to account for token replication delay (retry: ${o}, wait: ${a/1e3}s)`),await new Promise((e=>setTimeout(e,a))),k(e,t,r,n,o)}}const S="4.0.9";function x(e){if(!e.appId)throw new Error("[@octokit/auth-app] appId option is required");if(!Number.isFinite(+e.appId))throw new Error("[@octokit/auth-app] appId option must be a number or numeric string");if(!e.privateKey)throw new Error("[@octokit/auth-app] privateKey option is required");if("installationId"in e&&!e.installationId)throw new Error("[@octokit/auth-app] installationId is set to a falsy value");const t=Object.assign({warn:console.warn.bind(console)},e.log),r=e.request||o.request.defaults({headers:{"user-agent":`octokit-auth-app.js/${S} ${(0,n.getUserAgent)()}`}}),i=Object.assign({request:r,cache:new(g())({max:15e3,maxAge:354e4})},e,e.installationId?{installationId:Number(e.installationId)}:{},{log:t,oauthApp:(0,s.createOAuthAppAuth)({clientType:"github-app",clientId:e.clientId||"",clientSecret:e.clientSecret||"",request:r})});return Object.assign(_.bind(null,i),{hook:A.bind(null,i)})}},98534:(e,t,r)=>{"use strict";const n=r(18174),o=Symbol("max"),s=Symbol("length"),i=Symbol("lengthCalculator"),a=Symbol("allowStale"),c=Symbol("maxAge"),l=Symbol("dispose"),u=Symbol("noDisposeOnSet"),d=Symbol("lruList"),p=Symbol("cache"),f=Symbol("updateAgeOnGet"),m=()=>1;const h=(e,t,r)=>{const n=e[p].get(t);if(n){const t=n.value;if(g(e,t)){if(b(e,n),!e[a])return}else r&&(e[f]&&(n.value.now=Date.now()),e[d].unshiftNode(n));return t.value}},g=(e,t)=>{if(!t||!t.maxAge&&!e[c])return!1;const r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[c]&&r>e[c]},y=e=>{if(e[s]>e[o])for(let t=e[d].tail;e[s]>e[o]&&null!==t;){const r=t.prev;b(e,t),t=r}},b=(e,t)=>{if(t){const r=t.value;e[l]&&e[l](r.key,r.value),e[s]-=r.length,e[p].delete(r.key),e[d].removeNode(t)}};class v{constructor(e,t,r,n,o){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=o||0}}const w=(e,t,r,n)=>{let o=r.value;g(e,o)&&(b(e,r),e[a]||(o=void 0)),o&&t.call(n,o.value,o.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[o]=e.max||1/0;const t=e.length||m;if(this[i]="function"!=typeof t?m:t,this[a]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[c]=e.maxAge||0,this[l]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[f]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[o]=e||1/0,y(this)}get max(){return this[o]}set allowStale(e){this[a]=!!e}get allowStale(){return this[a]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[c]=e,y(this)}get maxAge(){return this[c]}set lengthCalculator(e){"function"!=typeof e&&(e=m),e!==this[i]&&(this[i]=e,this[s]=0,this[d].forEach((e=>{e.length=this[i](e.value,e.key),this[s]+=e.length}))),y(this)}get lengthCalculator(){return this[i]}get length(){return this[s]}get itemCount(){return this[d].length}rforEach(e,t){t=t||this;for(let r=this[d].tail;null!==r;){const n=r.prev;w(this,e,r,t),r=n}}forEach(e,t){t=t||this;for(let r=this[d].head;null!==r;){const n=r.next;w(this,e,r,t),r=n}}keys(){return this[d].toArray().map((e=>e.key))}values(){return this[d].toArray().map((e=>e.value))}reset(){this[l]&&this[d]&&this[d].length&&this[d].forEach((e=>this[l](e.key,e.value))),this[p]=new Map,this[d]=new n,this[s]=0}dump(){return this[d].map((e=>!g(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[d]}set(e,t,r){if((r=r||this[c])&&"number"!=typeof r)throw new TypeError("maxAge must be a number");const n=r?Date.now():0,a=this[i](t,e);if(this[p].has(e)){if(a>this[o])return b(this,this[p].get(e)),!1;const i=this[p].get(e).value;return this[l]&&(this[u]||this[l](e,i.value)),i.now=n,i.maxAge=r,i.value=t,this[s]+=a-i.length,i.length=a,this.get(e),y(this),!0}const f=new v(e,t,a,n,r);return f.length>this[o]?(this[l]&&this[l](e,t),!1):(this[s]+=f.length,this[d].unshift(f),this[p].set(e,this[d].head),y(this),!0)}has(e){if(!this[p].has(e))return!1;const t=this[p].get(e).value;return!g(this,t)}get(e){return h(this,e,!0)}peek(e){return h(this,e,!1)}pop(){const e=this[d].tail;return e?(b(this,e),e.value):null}del(e){b(this,this[p].get(e))}load(e){this.reset();const t=Date.now();for(let r=e.length-1;r>=0;r--){const n=e[r],o=n.e||0;if(0===o)this.set(n.k,n.v);else{const e=o-t;e>0&&this.set(n.k,n.v,e)}}}prune(){this[p].forEach(((e,t)=>h(this,t,!1)))}}},39251:e=>{"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},18174:(e,t,r)=>{"use strict";function n(e){var t=this;if(t instanceof n||(t=new n),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var r=0,o=arguments.length;r1)r=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");n=this.head.next,r=this.head.value}for(var o=0;null!==n;o++)r=e(r,n.value,o),n=n.next;return r},n.prototype.reduceReverse=function(e,t){var r,n=this.tail;if(arguments.length>1)r=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");n=this.tail.prev,r=this.tail.value}for(var o=this.length-1;null!==n;o--)r=e(r,n.value,o),n=n.prev;return r},n.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e},n.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e},n.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new n;if(tthis.length&&(t=this.length);for(var o=0,s=this.head;null!==s&&othis.length&&(t=this.length);for(var o=this.length,s=this.tail;null!==s&&o>t;o--)s=s.prev;for(;null!==s&&o>e;o--,s=s.prev)r.push(s.value);return r},n.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var n=0,s=this.head;null!==s&&n{"use strict";r.r(t),r.d(t,{createOAuthAppAuth:()=>d,createOAuthUserAuth:()=>a.createOAuthUserAuth});var n=r(50350),o=r(149),s=r(31483),i=r.n(s),a=r(9925);async function c(e,t){if("oauth-app"===t.type)return{type:"oauth-app",clientId:e.clientId,clientSecret:e.clientSecret,clientType:e.clientType,headers:{authorization:`basic ${i()(`${e.clientId}:${e.clientSecret}`)}`}};if("factory"in t){const{type:r,...n}={...t,...e};return t.factory(n)}const r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.request,...t};return(e.clientType,await(0,a.createOAuthUserAuth)({...r,clientType:e.clientType}))()}async function l(e,t,r,n){let o=t.endpoint.merge(r,n);if(/\/login\/(oauth\/access_token|device\/code)$/.test(o.url))return t(o);if("github-app"===e.clientType&&!(0,a.requiresBasicAuth)(o.url))throw new Error(`[@octokit/auth-oauth-app] GitHub Apps cannot use their client ID/secret for basic authentication for endpoints other than "/applications/{client_id}/**". "${o.method} ${o.url}" is not supported.`);const s=i()(`${e.clientId}:${e.clientSecret}`);o.headers.authorization=`basic ${s}`;try{return await t(o)}catch(c){if(401!==c.status)throw c;throw c.message=`[@octokit/auth-oauth-app] "${o.method} ${o.url}" does not support clientId/clientSecret basic authentication.`,c}}const u="5.0.5";function d(e){const t=Object.assign({request:o.request.defaults({headers:{"user-agent":`octokit-auth-oauth-app.js/${u} ${(0,n.getUserAgent)()}`}}),clientType:"oauth-app"},e);return Object.assign(c.bind(null,t),{hook:l.bind(null,t)})}},9925:(e,t,r)=>{"use strict";r.r(t),r.d(t,{createOAuthUserAuth:()=>T,requiresBasicAuth:()=>v});var n=r(50350),o=r(149),s=r(12272);async function i(e,t){const r=function(e,t){if(!0===t.refresh)return!1;if(!e.authentication)return!1;if("github-app"===e.clientType)return e.authentication;const r=e.authentication,n=("scopes"in t&&t.scopes||e.scopes).join(" "),o=r.scopes.join(" ");return n===o&&r}(e,t.auth);if(r)return r;const{data:n}=await(0,s.createDeviceCode)({clientType:e.clientType,clientId:e.clientId,request:t.request||e.request,scopes:t.auth.scopes||e.scopes});await e.onVerification(n);const o=await c(t.request||e.request,e.clientId,e.clientType,n);return e.authentication=o,o}async function a(e){await new Promise((t=>setTimeout(t,1e3*e)))}async function c(e,t,r,n){try{const o={clientId:t,request:e,code:n.device_code},{authentication:i}="oauth-app"===r?await(0,s.exchangeDeviceCode)({...o,clientType:"oauth-app"}):await(0,s.exchangeDeviceCode)({...o,clientType:"github-app"});return{type:"token",tokenType:"oauth",...i}}catch(o){if(!o.response)throw o;const s=o.response.data.error;if("authorization_pending"===s)return await a(n.interval),c(e,t,r,n);if("slow_down"===s)return await a(n.interval+5),c(e,t,r,n);throw o}}async function l(e,t){return i(e,{auth:t})}async function u(e,t,r,n){let o=t.endpoint.merge(r,n);if(/\/login\/(oauth\/access_token|device\/code)$/.test(o.url))return t(o);const{token:s}=await i(e,{request:t,auth:{type:"oauth"}});return o.headers.authorization=`token ${s}`,t(o)}const d="4.0.4";function p(e){const t=e.request||o.request.defaults({headers:{"user-agent":`octokit-auth-oauth-device.js/${d} ${(0,n.getUserAgent)()}`}}),{request:r=t,...s}=e,i="github-app"===e.clientType?{...s,clientType:"github-app",request:r}:{...s,clientType:"oauth-app",request:r,scopes:e.scopes||[]};if(!e.clientId)throw new Error('[@octokit/auth-oauth-device] "clientId" option must be set (https://github.com/octokit/auth-oauth-device.js#usage)');if(!e.onVerification)throw new Error('[@octokit/auth-oauth-device] "onVerification" option must be a function (https://github.com/octokit/auth-oauth-device.js#usage)');return Object.assign(l.bind(null,i),{hook:u.bind(null,i)})}var f=r(31483),m=r.n(f);const h="2.1.1";async function g(e){if("code"in e.strategyOptions){const{authentication:t}=await(0,s.exchangeWebFlowCode)({clientId:e.clientId,clientSecret:e.clientSecret,clientType:e.clientType,onTokenCreated:e.onTokenCreated,...e.strategyOptions,request:e.request});return{type:"token",tokenType:"oauth",...t}}if("onVerification"in e.strategyOptions){const t=p({clientType:e.clientType,clientId:e.clientId,onTokenCreated:e.onTokenCreated,...e.strategyOptions,request:e.request}),r=await t({type:"oauth"});return{clientSecret:e.clientSecret,...r}}if("token"in e.strategyOptions)return{type:"token",tokenType:"oauth",clientId:e.clientId,clientSecret:e.clientSecret,clientType:e.clientType,onTokenCreated:e.onTokenCreated,...e.strategyOptions};throw new Error("[@octokit/auth-oauth-user] Invalid strategy options")}async function y(e,t={}){if(e.authentication||(e.authentication=(e.clientType,await g(e))),e.authentication.invalid)throw new Error("[@octokit/auth-oauth-user] Token is invalid");const r=e.authentication;if("expiresAt"in r&&("refresh"===t.type||new Date(r.expiresAt){"use strict";async function n(e){return{type:"unauthenticated",reason:e}}r.r(t),r.d(t,{createUnauthenticatedAuth:()=>i});const o=/\babuse\b/i;async function s(e,t,r,n){const s=t.endpoint.merge(r,n);return t(s).catch((t=>{if(404===t.status)throw t.message=`Not found. May be due to lack of authentication. Reason: ${e}`,t;if(function(e){return 403===e.status&&!!e.response&&"0"===e.response.headers["x-ratelimit-remaining"]}(t))throw t.message=`API rate limit exceeded. This maybe caused by the lack of authentication. Reason: ${e}`,t;if(function(e){return 403===e.status&&o.test(e.message)}(t))throw t.message=`You have triggered an abuse detection mechanism. This maybe caused by the lack of authentication. Reason: ${e}`,t;if(401===t.status)throw t.message=`Unauthorized. "${s.method} ${s.url}" failed most likely due to lack of authentication. Reason: ${e}`,t;throw t.status>=400&&t.status<500&&(t.message=t.message.replace(/\.?$/,`. May be caused by lack of authentication (${e}).`)),t}))}const i=function(e){if(!e||!e.reason)throw new Error("[@octokit/auth-unauthenticated] No reason passed to createUnauthenticatedAuth");return Object.assign(n.bind(null,e.reason),{hook:s.bind(null,e.reason)})}},86027:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Octokit:()=>b});var n=r(50350),o=r(85186),s=r(149);class i extends Error{constructor(e,t,r){super("Request failed due to following response errors:\n"+r.errors.map((e=>` - ${e.message}`)).join("\n")),this.request=e,this.headers=t,this.response=r,this.name="GraphqlResponseError",this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const a=["method","baseUrl","url","headers","request","query","mediaType"],c=["query","method","url"],l=/\/api\/v3\/?$/;function u(e,t){const r=e.defaults(t);return Object.assign(((e,t)=>function(e,t,r){if(r){if("string"==typeof t&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(const e in r)if(c.includes(e))return Promise.reject(new Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}const n="string"==typeof t?Object.assign({query:t},r):t,o=Object.keys(n).reduce(((e,t)=>a.includes(t)?(e[t]=n[t],e):(e.variables||(e.variables={}),e.variables[t]=n[t],e)),{}),s=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return l.test(s)&&(o.url=s.replace(l,"/api/graphql")),e(o).then((e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers))t[r]=e.headers[r];throw new i(o,t,e.data)}return e.data.data}))}(r,e,t)),{defaults:u.bind(null,r),endpoint:r.endpoint})}u(s.request,{headers:{"user-agent":`octokit-graphql.js/5.0.5 ${(0,n.getUserAgent)()}`},method:"POST",url:"/graphql"});const d=/^v1\./,p=/^ghs_/,f=/^ghu_/;async function m(e){const t=3===e.split(/\./).length,r=d.test(e)||p.test(e),n=f.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}async function h(e,t,r,n){const o=t.endpoint.merge(r,n);return o.headers.authorization=function(e){return 3===e.split(/\./).length?`bearer ${e}`:`token ${e}`}(e),t(o)}const g=function(e){if(!e)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if("string"!=typeof e)throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return e=e.replace(/^(token|bearer) +/i,""),Object.assign(m.bind(null,e),{hook:h.bind(null,e)})},y="4.2.0";class b{constructor(e={}){const t=new o.Collection,r={baseUrl:s.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};var i;if(r.headers["user-agent"]=[e.userAgent,`octokit-core.js/${y} ${(0,n.getUserAgent)()}`].filter(Boolean).join(" "),e.baseUrl&&(r.baseUrl=e.baseUrl),e.previews&&(r.mediaType.previews=e.previews),e.timeZone&&(r.headers["time-zone"]=e.timeZone),this.request=s.request.defaults(r),this.graphql=(i=this.request,u(i,{method:"POST",url:"/graphql"})).defaults(r),this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),this.hook=t,e.authStrategy){const{authStrategy:r,...n}=e,o=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",o.hook),this.auth=o}else if(e.auth){const r=g(e.auth);t.wrap("request",r.hook),this.auth=r}else this.auth=async()=>({type:"unauthenticated"});this.constructor.plugins.forEach((t=>{Object.assign(this,t(this,e))}))}static defaults(e){return class extends(this){constructor(...t){const r=t[0]||{};super("function"!=typeof e?Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null):e(r))}}}static plugin(...e){var t;const r=this.plugins;return(t=class extends(this){}).plugins=r.concat(e.filter((e=>!r.includes(e)))),t}}b.VERSION=y,b.plugins=[]},7785:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,o=r(82352),s=r(86027),i=r(50350),a=r(9925),c=r(12272),l=r(25643),u=(n=r(23405))&&"object"==typeof n&&"default"in n?n.default:n;const d="4.2.0";function p(e,t,r){if(Array.isArray(t))for(const n of t)p(e,n,r);else e.eventHandlers[t]||(e.eventHandlers[t]=[]),e.eventHandlers[t].push(r)}const f=s.Octokit.defaults({userAgent:`octokit-oauth-app.js/${d} ${i.getUserAgent()}`});async function m(e,t){const{name:r,action:n}=t;if(e.eventHandlers[`${r}.${n}`])for(const o of e.eventHandlers[`${r}.${n}`])await o(t);if(e.eventHandlers[r])for(const o of e.eventHandlers[r])await o(t)}async function h(e,t){return e.octokit.auth({type:"oauth-user",...t,async factory(t){const r=new e.Octokit({authStrategy:a.createOAuthUserAuth,auth:t}),n=await r.auth({type:"get"});return await m(e,{name:"token",action:"created",token:n.token,scopes:n.scopes,authentication:n,octokit:r}),r}})}function g(e,t){let r;r=void 0===t.allowSignup&&void 0===e.allowSignup||(void 0===t.allowSignup&&void 0!==e.allowSignup?e.allowSignup:void 0===e.allowSignup&&void 0!==t.allowSignup?t.allowSignup:t.allowSignup||e.allowSignup);const n={clientId:e.clientId,request:e.octokit.request,...t,allowSignup:r,redirectUrl:t.redirectUrl||e.redirectUrl,scopes:t.scopes||e.defaultScopes};return c.getWebFlowAuthorizationUrl({clientType:e.clientType,...n})}async function y(e,t){const r=await e.octokit.auth({type:"oauth-user",...t});return await m(e,{name:"token",action:"created",token:r.token,scopes:r.scopes,authentication:r,octokit:new e.Octokit({authStrategy:o.createOAuthUserAuth,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.token,scopes:r.scopes,refreshToken:r.refreshToken,expiresAt:r.expiresAt,refreshTokenExpiresAt:r.refreshTokenExpiresAt}})}),{authentication:r}}async function b(e,t){const r=await c.checkToken({clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t});return Object.assign(r.authentication,{type:"token",tokenType:"oauth"}),r}async function v(e,t){const r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t};if("oauth-app"===e.clientType){const t=await c.resetToken({clientType:"oauth-app",...r}),n=Object.assign(t.authentication,{type:"token",tokenType:"oauth"});return await m(e,{name:"token",action:"reset",token:t.authentication.token,scopes:t.authentication.scopes||void 0,authentication:n,octokit:new e.Octokit({authStrategy:a.createOAuthUserAuth,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:t.authentication.token,scopes:t.authentication.scopes}})}),{...t,authentication:n}}const n=await c.resetToken({clientType:"github-app",...r}),o=Object.assign(n.authentication,{type:"token",tokenType:"oauth"});return await m(e,{name:"token",action:"reset",token:n.authentication.token,authentication:o,octokit:new e.Octokit({authStrategy:a.createOAuthUserAuth,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:n.authentication.token}})}),{...n,authentication:o}}async function w(e,t){if("oauth-app"===e.clientType)throw new Error("[@octokit/oauth-app] app.refreshToken() is not supported for OAuth Apps");const r=await c.refreshToken({clientType:"github-app",clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,refreshToken:t.refreshToken}),n=Object.assign(r.authentication,{type:"token",tokenType:"oauth"});return await m(e,{name:"token",action:"refreshed",token:r.authentication.token,authentication:n,octokit:new e.Octokit({authStrategy:a.createOAuthUserAuth,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.authentication.token}})}),{...r,authentication:n}}async function T(e,t){if("oauth-app"===e.clientType)throw new Error("[@octokit/oauth-app] app.scopeToken() is not supported for OAuth Apps");const r=await c.scopeToken({clientType:"github-app",clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t}),n=Object.assign(r.authentication,{type:"token",tokenType:"oauth"});return await m(e,{name:"token",action:"scoped",token:r.authentication.token,authentication:n,octokit:new e.Octokit({authStrategy:a.createOAuthUserAuth,auth:{clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.authentication.token}})}),{...r,authentication:n}}async function _(e,t){const r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t},n="oauth-app"===e.clientType?await c.deleteToken({clientType:"oauth-app",...r}):await c.deleteToken({clientType:"github-app",...r});return await m(e,{name:"token",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:l.createUnauthenticatedAuth,auth:{reason:'Handling "token.deleted" event. The access for the token has been revoked.'}})}),n}async function O(e,t){const r={clientId:e.clientId,clientSecret:e.clientSecret,request:e.octokit.request,...t},n="oauth-app"===e.clientType?await c.deleteAuthorization({clientType:"oauth-app",...r}):await c.deleteAuthorization({clientType:"github-app",...r});return await m(e,{name:"token",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:l.createUnauthenticatedAuth,auth:{reason:'Handling "token.deleted" event. The access for the token has been revoked.'}})}),await m(e,{name:"authorization",action:"deleted",token:t.token,octokit:new e.Octokit({authStrategy:l.createUnauthenticatedAuth,auth:{reason:'Handling "authorization.deleted" event. The access for the app has been revoked.'}})}),n}async function E(e,{pathPrefix:t="/api/github/oauth"},r){if("OPTIONS"===r.method)return{status:200,headers:{"access-control-allow-origin":"*","access-control-allow-methods":"*","access-control-allow-headers":"Content-Type, User-Agent, Authorization"}};const{pathname:n}=new URL(r.url,"http://localhost"),o=[r.method,n].join(" "),s={getLogin:`GET ${t}/login`,getCallback:`GET ${t}/callback`,createToken:`POST ${t}/token`,getToken:`GET ${t}/token`,patchToken:`PATCH ${t}/token`,patchRefreshToken:`PATCH ${t}/refresh-token`,scopeToken:`POST ${t}/token/scoped`,deleteToken:`DELETE ${t}/token`,deleteGrant:`DELETE ${t}/grant`};if(!Object.values(s).includes(o))return null;let i;try{const e=await r.text();i=e?JSON.parse(e):{}}catch(y){return{status:400,headers:{"content-type":"application/json","access-control-allow-origin":"*"},text:JSON.stringify({error:"[@octokit/oauth-app] request error"})}}const{searchParams:a}=new URL(r.url,"http://localhost"),c=u(a),l=r.headers;try{var d;if(o===s.getLogin){const{url:t}=e.getWebFlowAuthorizationUrl({state:c.state,scopes:c.scopes?c.scopes.split(","):void 0,allowSignup:c.allowSignup?"true"===c.allowSignup:void 0,redirectUrl:c.redirectUrl});return{status:302,headers:{location:t}}}if(o===s.getCallback){if(c.error)throw new Error(`[@octokit/oauth-app] ${c.error} ${c.error_description}`);if(!c.code)throw new Error('[@octokit/oauth-app] "code" parameter is required');const{authentication:{token:t}}=await e.createToken({code:c.code});return{status:200,headers:{"content-type":"text/html"},text:`

Token created successfully

\n \n

Your token is: ${t}. Copy it now as it cannot be shown again.

`}}if(o===s.createToken){const{code:t,redirectUrl:r}=i;if(!t)throw new Error('[@octokit/oauth-app] "code" parameter is required');const n=await e.createToken({code:t,redirectUrl:r});return delete n.authentication.clientSecret,{status:201,headers:{"content-type":"application/json","access-control-allow-origin":"*"},text:JSON.stringify(n)}}if(o===s.getToken){var p;const t=null===(p=l.authorization)||void 0===p?void 0:p.substr("token ".length);if(!t)throw new Error('[@octokit/oauth-app] "Authorization" header is required');const r=await e.checkToken({token:t});return delete r.authentication.clientSecret,{status:200,headers:{"content-type":"application/json","access-control-allow-origin":"*"},text:JSON.stringify(r)}}if(o===s.patchToken){var f;const t=null===(f=l.authorization)||void 0===f?void 0:f.substr("token ".length);if(!t)throw new Error('[@octokit/oauth-app] "Authorization" header is required');const r=await e.resetToken({token:t});return delete r.authentication.clientSecret,{status:200,headers:{"content-type":"application/json","access-control-allow-origin":"*"},text:JSON.stringify(r)}}if(o===s.patchRefreshToken){var m;if(!(null===(m=l.authorization)||void 0===m?void 0:m.substr("token ".length)))throw new Error('[@octokit/oauth-app] "Authorization" header is required');const{refreshToken:t}=i;if(!t)throw new Error("[@octokit/oauth-app] refreshToken must be sent in request body");const r=await e.refreshToken({refreshToken:t});return delete r.authentication.clientSecret,{status:200,headers:{"content-type":"application/json","access-control-allow-origin":"*"},text:JSON.stringify(r)}}if(o===s.scopeToken){var h;const t=null===(h=l.authorization)||void 0===h?void 0:h.substr("token ".length);if(!t)throw new Error('[@octokit/oauth-app] "Authorization" header is required');const r=await e.scopeToken({token:t,...i});return delete r.authentication.clientSecret,{status:200,headers:{"content-type":"application/json","access-control-allow-origin":"*"},text:JSON.stringify(r)}}if(o===s.deleteToken){var g;const t=null===(g=l.authorization)||void 0===g?void 0:g.substr("token ".length);if(!t)throw new Error('[@octokit/oauth-app] "Authorization" header is required');return await e.deleteToken({token:t}),{status:204,headers:{"access-control-allow-origin":"*"}}}const t=null===(d=l.authorization)||void 0===d?void 0:d.substr("token ".length);if(!t)throw new Error('[@octokit/oauth-app] "Authorization" header is required');return await e.deleteAuthorization({token:t}),{status:204,headers:{"access-control-allow-origin":"*"}}}catch(y){return{status:400,headers:{"content-type":"application/json","access-control-allow-origin":"*"},text:JSON.stringify({error:y.message})}}}function A(e){const{method:t,url:r,headers:n}=e;return{method:t,url:r,headers:n,text:async function(){return await new Promise(((t,r)=>{let n=[];e.on("error",r).on("data",(e=>n.push(e))).on("end",(()=>t(Buffer.concat(n).toString())))}))}}}function k(e,t){t.writeHead(e.status,e.headers),t.end(e.text)}function S(e){return{status:404,headers:{"content-type":"application/json"},text:JSON.stringify({error:`Unknown route: ${e.method} ${e.url}`})}}function x(e,t){k(S(A(e)),t)}function P(e){const t=Object.fromEntries(e.headers.entries());return{method:e.method,url:e.url,headers:t,text:()=>e.text()}}function R(e){return new Response(e.text,{status:e.status,headers:e.headers})}async function W(e){return R(S(P(e)))}function C(e,{pathPrefix:t,onUnhandledRequest:r}={}){return r&&e.octokit.log.warn("[@octokit/oauth-app] `onUnhandledRequest` is deprecated and will be removed from the next major version."),r??(r=W),async function(n){const o=P(n),s=await E(e,{pathPrefix:t},o);return s?R(s):await r(n)}}function I(e){const{method:t}=e.requestContext.http;let r=e.rawPath;const{stage:n}=e.requestContext;r.startsWith("/"+n)&&(r=r.substring(n.length+1)),e.rawQueryString&&(r+="?"+e.rawQueryString);return{method:t,url:r,headers:e.headers,text:async()=>e.body||""}}function j(e){return{statusCode:e.status,headers:e.headers,body:e.text}}async function L(e){return j(S(I(e)))}class F{static defaults(e){return class extends(this){constructor(...t){super({...e,...t[0]})}}}constructor(e){const t=e.Octokit||f;this.type=e.clientType||"oauth-app";const r=new t({authStrategy:o.createOAuthAppAuth,auth:{clientType:this.type,clientId:e.clientId,clientSecret:e.clientSecret}}),n={clientType:this.type,clientId:e.clientId,clientSecret:e.clientSecret,defaultScopes:e.defaultScopes||[],allowSignup:e.allowSignup,baseUrl:e.baseUrl,redirectUrl:e.redirectUrl,log:e.log,Octokit:t,octokit:r,eventHandlers:{}};this.on=p.bind(null,n),this.octokit=r,this.getUserOctokit=h.bind(null,n),this.getWebFlowAuthorizationUrl=g.bind(null,n),this.createToken=y.bind(null,n),this.checkToken=b.bind(null,n),this.resetToken=v.bind(null,n),this.refreshToken=w.bind(null,n),this.scopeToken=T.bind(null,n),this.deleteToken=_.bind(null,n),this.deleteAuthorization=O.bind(null,n)}}F.VERSION=d,t.OAuthApp=F,t.createAWSLambdaAPIGatewayV2Handler=function(e,{pathPrefix:t,onUnhandledRequest:r}={}){return r&&e.octokit.log.warn("[@octokit/oauth-app] `onUnhandledRequest` is deprecated and will be removed from the next major version."),r??(r=L),async function(n){const o=I(n),s=await E(e,{pathPrefix:t},o);return s?j(s):r(n)}},t.createCloudflareHandler=function(...e){return e[0].octokit.log.warn("[@octokit/oauth-app] `createCloudflareHandler` is deprecated, use `createWebWorkerHandler` instead"),C(...e)},t.createNodeMiddleware=function(e,{pathPrefix:t,onUnhandledRequest:r}={}){return r&&e.octokit.log.warn("[@octokit/oauth-app] `onUnhandledRequest` is deprecated and will be removed from the next major version."),r??(r=x),async function(n,o,s){const i=A(n),a=await E(e,{pathPrefix:t},i);a?k(a,o):"function"==typeof s?s():r(n,o)}},t.createWebWorkerHandler=C,t.handleRequest=E},76050:(e,t,r)=>{"use strict";function n(e){const t=e.clientType||"oauth-app",r=e.baseUrl||"https://github.com",n={clientType:t,allowSignup:!1!==e.allowSignup,clientId:e.clientId,login:e.login||null,redirectUrl:e.redirectUrl||null,state:e.state||Math.random().toString(36).substr(2),url:""};if("oauth-app"===t){const t="scopes"in e?e.scopes:[];n.scopes="string"==typeof t?t.split(/[,\s]+/).filter(Boolean):t}return n.url=function(e,t){const r={allowSignup:"allow_signup",clientId:"client_id",login:"login",redirectUrl:"redirect_uri",scopes:"scope",state:"state"};let n=e;return Object.keys(r).filter((e=>null!==t[e])).filter((e=>"scopes"!==e||"github-app"!==t.clientType&&(!Array.isArray(t[e])||t[e].length>0))).map((e=>[r[e],`${t[e]}`])).forEach((([e,t],r)=>{n+=0===r?"?":"&",n+=`${e}=${encodeURIComponent(t)}`})),n}(`${r}/login/oauth/authorize`,n),n}r.r(t),r.d(t,{oauthAuthorizationUrl:()=>n})},12272:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,o=r(76050),s=r(149),i=r(30640),a=(n=r(31483))&&"object"==typeof n&&"default"in n?n.default:n;function c(e){const t=e.endpoint.DEFAULTS;return/^https:\/\/(api\.)?github\.com$/.test(t.baseUrl)?"https://github.com":t.baseUrl.replace("/api/v3","")}async function l(e,t,r){const n={baseUrl:c(e),headers:{accept:"application/json"},...r},o=await e(t,n);if("error"in o.data){const r=new i.RequestError(`${o.data.error_description} (${o.data.error}, ${o.data.error_uri})`,400,{request:e.endpoint.merge(t,n),headers:o.headers});throw r.response=o,r}return o}function u(e,t){return new Date(e+1e3*t).toISOString()}function d(e,t){return new Date(e+1e3*t).toISOString()}function p(e,t){return new Date(e+1e3*t).toISOString()}t.VERSION="2.0.5",t.checkToken=async function(e){const t=e.request||s.request,r=await t("POST /applications/{client_id}/token",{headers:{authorization:`basic ${a(`${e.clientId}:${e.clientSecret}`)}`},client_id:e.clientId,access_token:e.token}),n={clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:e.token,scopes:r.data.scopes};return r.data.expires_at&&(n.expiresAt=r.data.expires_at),"github-app"===e.clientType&&delete n.scopes,{...r,authentication:n}},t.createDeviceCode=async function(e){const t=e.request||s.request,r={client_id:e.clientId};return"scopes"in e&&Array.isArray(e.scopes)&&(r.scope=e.scopes.join(" ")),l(t,"POST /login/device/code",r)},t.deleteAuthorization=async function(e){return(e.request||s.request)("DELETE /applications/{client_id}/grant",{headers:{authorization:`basic ${a(`${e.clientId}:${e.clientSecret}`)}`},client_id:e.clientId,access_token:e.token})},t.deleteToken=async function(e){return(e.request||s.request)("DELETE /applications/{client_id}/token",{headers:{authorization:`basic ${a(`${e.clientId}:${e.clientSecret}`)}`},client_id:e.clientId,access_token:e.token})},t.exchangeDeviceCode=async function(e){const t=e.request||s.request,r=await l(t,"POST /login/oauth/access_token",{client_id:e.clientId,device_code:e.code,grant_type:"urn:ietf:params:oauth:grant-type:device_code"}),n={clientType:e.clientType,clientId:e.clientId,token:r.data.access_token,scopes:r.data.scope.split(/\s+/).filter(Boolean)};if("clientSecret"in e&&(n.clientSecret=e.clientSecret),"github-app"===e.clientType){if("refresh_token"in r.data){const e=new Date(r.headers.date).getTime();n.refreshToken=r.data.refresh_token,n.expiresAt=d(e,r.data.expires_in),n.refreshTokenExpiresAt=d(e,r.data.refresh_token_expires_in)}delete n.scopes}return{...r,authentication:n}},t.exchangeWebFlowCode=async function(e){const t=e.request||s.request,r=await l(t,"POST /login/oauth/access_token",{client_id:e.clientId,client_secret:e.clientSecret,code:e.code,redirect_uri:e.redirectUrl}),n={clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:r.data.access_token,scopes:r.data.scope.split(/\s+/).filter(Boolean)};if("github-app"===e.clientType){if("refresh_token"in r.data){const e=new Date(r.headers.date).getTime();n.refreshToken=r.data.refresh_token,n.expiresAt=u(e,r.data.expires_in),n.refreshTokenExpiresAt=u(e,r.data.refresh_token_expires_in)}delete n.scopes}return{...r,authentication:n}},t.getWebFlowAuthorizationUrl=function({request:e=s.request,...t}){const r=c(e);return o.oauthAuthorizationUrl({...t,baseUrl:r})},t.refreshToken=async function(e){const t=e.request||s.request,r=await l(t,"POST /login/oauth/access_token",{client_id:e.clientId,client_secret:e.clientSecret,grant_type:"refresh_token",refresh_token:e.refreshToken}),n=new Date(r.headers.date).getTime(),o={clientType:"github-app",clientId:e.clientId,clientSecret:e.clientSecret,token:r.data.access_token,refreshToken:r.data.refresh_token,expiresAt:p(n,r.data.expires_in),refreshTokenExpiresAt:p(n,r.data.refresh_token_expires_in)};return{...r,authentication:o}},t.resetToken=async function(e){const t=e.request||s.request,r=a(`${e.clientId}:${e.clientSecret}`),n=await t("PATCH /applications/{client_id}/token",{headers:{authorization:`basic ${r}`},client_id:e.clientId,access_token:e.token}),o={clientType:e.clientType,clientId:e.clientId,clientSecret:e.clientSecret,token:n.data.token,scopes:n.data.scopes};return n.data.expires_at&&(o.expiresAt=n.data.expires_at),"github-app"===e.clientType&&delete o.scopes,{...n,authentication:o}},t.scopeToken=async function(e){const{request:t,clientType:r,clientId:n,clientSecret:o,token:i,...c}=e,l=t||s.request,u=await l("POST /applications/{client_id}/token/scoped",{headers:{authorization:`basic ${a(`${n}:${o}`)}`},client_id:n,access_token:i,...c}),d=Object.assign({clientType:r,clientId:n,clientSecret:o,token:u.data.token},u.data.expires_at?{expiresAt:u.data.expires_at}:{});return{...u,authentication:d}}},55745:(e,t,r)=>{"use strict";r.r(t),r.d(t,{composePaginateRest:()=>i,isPaginatingEndpoint:()=>c,paginateRest:()=>l,paginatingEndpoints:()=>a});function n(e,t,r){const n="function"==typeof t?t.endpoint(r):e.request.endpoint(t,r),o="function"==typeof t?t:e.request,s=n.method,i=n.headers;let a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{const e=function(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data)||"url"in e.data)return e;const t=e.data.incomplete_results,r=e.data.repository_selection,n=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;const o=Object.keys(e.data)[0],s=e.data[o];return e.data=s,void 0!==t&&(e.data.incomplete_results=t),void 0!==r&&(e.data.repository_selection=r),e.data.total_count=n,e}(await o({method:s,url:a,headers:i}));return a=((e.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:e}}catch(e){if(409!==e.status)throw e;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function o(e,t,r,o){return"function"==typeof r&&(o=r,r=void 0),s(e,[],n(e,t,r)[Symbol.asyncIterator](),o)}function s(e,t,r,n){return r.next().then((o=>{if(o.done)return t;let i=!1;return t=t.concat(n?n(o.value,(function(){i=!0})):o.value.data),i?t:s(e,t,r,n)}))}const i=Object.assign(o,{iterator:n}),a=["GET /app/hook/deliveries","GET /app/installations","GET /enterprises/{enterprise}/actions/runner-groups","GET /enterprises/{enterprise}/dependabot/alerts","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/required_workflows","GET /orgs/{org}/actions/runner-groups","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/actions/variables","GET /orgs/{org}/actions/variables/{name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/codespaces/secrets","GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories","GET /orgs/{org}/dependabot/alerts","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/members/{username}/codespaces","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/projects","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{org}/{repo}/actions/required_workflows","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}/runs","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/variables","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/alerts","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /repositories/{repository_id}/environments/{environment_name}/variables","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/ssh_signing_keys","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function c(e){return"string"==typeof e&&a.includes(e)}function l(e){return{paginate:Object.assign(o.bind(null,e),{iterator:n.bind(null,e)})}}l.VERSION="6.0.0"},30640:(e,t,r)=>{"use strict";r.r(t),r.d(t,{RequestError:()=>c});var n=r(92327),o=r(30778),s=r.n(o);const i=s()((e=>console.warn(e))),a=s()((e=>console.warn(e)));class c extends Error{constructor(e,t,r){let o;super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t,"headers"in r&&void 0!==r.headers&&(o=r.headers),"response"in r&&(this.response=r.response,o=r.response.headers);const s=Object.assign({},r.request);r.request.headers.authorization&&(s.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),s.url=s.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=s,Object.defineProperty(this,"code",{get:()=>(i(new n.$("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t)}),Object.defineProperty(this,"headers",{get:()=>(a(new n.$("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")),o||{})})}}},149:(e,t,r)=>{"use strict";function n(e){return"[object Object]"===Object.prototype.toString.call(e)}r.r(t),r.d(t,{request:()=>k});var o=r(50350);function s(e,t){const r=Object.assign({},e);return Object.keys(t).forEach((o=>{var i,a,c;!1!==n(i=t[o])&&(void 0===(a=i.constructor)||!1!==n(c=a.prototype)&&!1!==c.hasOwnProperty("isPrototypeOf"))?o in e?r[o]=s(e[o],t[o]):Object.assign(r,{[o]:t[o]}):Object.assign(r,{[o]:t[o]})})),r}function i(e){for(const t in e)void 0===e[t]&&delete e[t];return e}function a(e,t,r){if("string"==typeof t){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else r=Object.assign({},t);var n;r.headers=(n=r.headers)?Object.keys(n).reduce(((e,t)=>(e[t.toLowerCase()]=n[t],e)),{}):{},i(r),i(r.headers);const o=s(e||{},r);return e&&e.mediaType.previews.length&&(o.mediaType.previews=e.mediaType.previews.filter((e=>!o.mediaType.previews.includes(e))).concat(o.mediaType.previews)),o.mediaType.previews=o.mediaType.previews.map((e=>e.replace(/-preview/,""))),o}const c=/\{[^}]+\}/g;function l(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function u(e,t){return Object.keys(e).filter((e=>!t.includes(e))).reduce(((t,r)=>(t[r]=e[r],t)),{})}function d(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){return/%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")),e})).join("")}function p(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function f(e,t,r){return t="+"===e||"#"===e?d(t):p(t),r?p(r)+"="+t:t}function m(e){return null!=e}function h(e){return";"===e||"&"===e||"?"===e}function g(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,n,o){if(n){let e="";const o=[];if(-1!==r.indexOf(n.charAt(0))&&(e=n.charAt(0),n=n.substr(1)),n.split(/,/g).forEach((function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);o.push(function(e,t,r,n){var o=e[r],s=[];if(m(o)&&""!==o)if("string"==typeof o||"number"==typeof o||"boolean"==typeof o)o=o.toString(),n&&"*"!==n&&(o=o.substring(0,parseInt(n,10))),s.push(f(t,o,h(t)?r:""));else if("*"===n)Array.isArray(o)?o.filter(m).forEach((function(e){s.push(f(t,e,h(t)?r:""))})):Object.keys(o).forEach((function(e){m(o[e])&&s.push(f(t,o[e],e))}));else{const e=[];Array.isArray(o)?o.filter(m).forEach((function(r){e.push(f(t,r))})):Object.keys(o).forEach((function(r){m(o[r])&&(e.push(p(r)),e.push(f(t,o[r].toString())))})),h(t)?s.push(p(r)+"="+e.join(",")):0!==e.length&&s.push(e.join(","))}else";"===t?m(o)&&s.push(p(r)):""!==o||"&"!==t&&"?"!==t?""===o&&s.push(""):s.push(p(r)+"=");return s}(t,e,n[1],n[2]||n[3]))})),e&&"+"!==e){var s=",";return"?"===e?s="&":"#"!==e&&(s=e),(0!==o.length?e:"")+o.join(s)}return o.join(",")}return d(o)}))}function y(e){let t,r=e.method.toUpperCase(),n=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),o=Object.assign({},e.headers),s=u(e,["method","baseUrl","url","headers","request","mediaType"]);const i=function(e){const t=e.match(c);return t?t.map(l).reduce(((e,t)=>e.concat(t)),[]):[]}(n);var a;n=(a=n,{expand:g.bind(null,a)}).expand(s),/^http/.test(n)||(n=e.baseUrl+n);const d=u(s,Object.keys(e).filter((e=>i.includes(e))).concat("baseUrl"));if(!/application\/octet-stream/i.test(o.accept)&&(e.mediaType.format&&(o.accept=o.accept.split(/,/).map((t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")),e.mediaType.previews.length)){const t=o.accept.match(/[\w-]+(?=-preview)/g)||[];o.accept=t.concat(e.mediaType.previews).map((t=>`application/vnd.github.${t}-preview${e.mediaType.format?`.${e.mediaType.format}`:"+json"}`)).join(",")}return["GET","HEAD"].includes(r)?n=function(e,t){const r=/\?/.test(e)?"&":"?",n=Object.keys(t);return 0===n.length?e:e+r+n.map((e=>"q"===e?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${e}=${encodeURIComponent(t[e])}`)).join("&")}(n,d):"data"in d?t=d.data:Object.keys(d).length&&(t=d),o["content-type"]||void 0===t||(o["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(r)&&void 0===t&&(t=""),Object.assign({method:r,url:n,headers:o},void 0!==t?{body:t}:null,e.request?{request:e.request}:null)}function b(e,t,r){return y(a(e,t,r))}const v=function e(t,r){const n=a(t,r),o=b.bind(null,n);return Object.assign(o,{DEFAULTS:n,defaults:e.bind(null,n),merge:a.bind(null,n),parse:y})}(null,{method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":`octokit-endpoint.js/7.0.5 ${(0,o.getUserAgent)()}`},mediaType:{format:"",previews:[]}});function w(e){return"[object Object]"===Object.prototype.toString.call(e)}var T=r(83300),_=r.n(T),O=r(30640);function E(e){const t=e.request&&e.request.log?e.request.log:console;var r,n,o;(!1!==w(r=e.body)&&(void 0===(n=r.constructor)||!1!==w(o=n.prototype)&&!1!==o.hasOwnProperty("isPrototypeOf"))||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let s,i,a={};return(e.request&&e.request.fetch||globalThis.fetch||_())(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then((async r=>{i=r.url,s=r.status;for(const e of r.headers)a[e[0]]=e[1];if("deprecation"in a){const r=a.link&&a.link.match(/<([^>]+)>; rel="deprecation"/),n=r&&r.pop();t.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${a.sunset}${n?`. See ${n}`:""}`)}if(204!==s&&205!==s){if("HEAD"===e.method){if(s<400)return;throw new O.RequestError(r.statusText,s,{response:{url:i,status:s,headers:a,data:void 0},request:e})}if(304===s)throw new O.RequestError("Not modified",s,{response:{url:i,status:s,headers:a,data:await A(r)},request:e});if(s>=400){const t=await A(r),n=new O.RequestError(function(e){if("string"==typeof e)return e;if("message"in e)return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}`:e.message;return`Unknown error: ${JSON.stringify(e)}`}(t),s,{response:{url:i,status:s,headers:a,data:t},request:e});throw n}return A(r)}})).then((e=>({status:s,url:i,headers:a,data:e}))).catch((t=>{if(t instanceof O.RequestError)throw t;if("AbortError"===t.name)throw t;throw new O.RequestError(t.message,500,{request:e})}))}async function A(e){const t=e.headers.get("content-type");return/application\/json/.test(t)?e.json():!t||/^text\/|charset=utf-8$/.test(t)?e.text():function(e){return e.arrayBuffer()}(e)}const k=function e(t,r){const n=t.defaults(r);return Object.assign((function(t,r){const o=n.merge(t,r);if(!o.request||!o.request.hook)return E(n.parse(o));const s=(e,t)=>E(n.parse(n.merge(e,t)));return Object.assign(s,{endpoint:n,defaults:e.bind(null,n)}),o.request.hook(s,o)}),{endpoint:n,defaults:e.bind(null,n)})}(v,{headers:{"user-agent":`octokit-request.js/6.2.3 ${(0,o.getUserAgent)()}`}})},55798:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Webhooks:()=>x,createEventHandler:()=>T,createNodeMiddleware:()=>S,emitterEventNames:()=>f});var n,o=r(56455),s=r.n(o);!function(e){e.SHA1="sha1",e.SHA256="sha256"}(n||(n={}));const i=e=>e.startsWith("sha256=")?"sha256":"sha1",a=new TextEncoder;function c(e){return{[n.SHA1]:"SHA-1",[n.SHA256]:"SHA-256"}[e]}async function l(e,t){return crypto.subtle.importKey("raw",a.encode(e),{name:"HMAC",hash:{name:c(t)}},!1,["sign","verify"])}async function u(e,t){const{secret:r,algorithm:o}="object"==typeof e?{secret:e.secret,algorithm:e.algorithm||n.SHA256}:{secret:e,algorithm:n.SHA256};if(!r||!t)throw new TypeError("[@octokit/webhooks-methods] secret & payload required for sign()");if(!Object.values(n).includes(o))throw new TypeError(`[@octokit/webhooks] Algorithm ${o} is not supported. Must be 'sha1' or 'sha256'`);return`${o}=${function(e){return Array.prototype.map.call(new Uint8Array(e),(e=>e.toString(16).padStart(2,"0"))).join("")}(await crypto.subtle.sign("HMAC",await l(r,o),a.encode(t)))}`}async function d(e,t,r){if(!e||!t||!r)throw new TypeError("[@octokit/webhooks-methods] secret, eventPayload & signature required");const n=i(r);return await crypto.subtle.verify("HMAC",await l(e,n),function(e){const t=e.match(/[\dA-F]{2}/gi).map((function(e){return parseInt(e,16)}));return new Uint8Array(t)}(r.replace(`${n}=`,"")),a.encode(t))}const p=e=>({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console),...e}),f=["branch_protection_rule","branch_protection_rule.created","branch_protection_rule.deleted","branch_protection_rule.edited","check_run","check_run.completed","check_run.created","check_run.requested_action","check_run.rerequested","check_suite","check_suite.completed","check_suite.requested","check_suite.rerequested","code_scanning_alert","code_scanning_alert.appeared_in_branch","code_scanning_alert.closed_by_user","code_scanning_alert.created","code_scanning_alert.fixed","code_scanning_alert.reopened","code_scanning_alert.reopened_by_user","commit_comment","commit_comment.created","create","delete","dependabot_alert","dependabot_alert.created","dependabot_alert.dismissed","dependabot_alert.fixed","dependabot_alert.reintroduced","dependabot_alert.reopened","deploy_key","deploy_key.created","deploy_key.deleted","deployment","deployment.created","deployment_status","deployment_status.created","discussion","discussion.answered","discussion.category_changed","discussion.created","discussion.deleted","discussion.edited","discussion.labeled","discussion.locked","discussion.pinned","discussion.transferred","discussion.unanswered","discussion.unlabeled","discussion.unlocked","discussion.unpinned","discussion_comment","discussion_comment.created","discussion_comment.deleted","discussion_comment.edited","fork","github_app_authorization","github_app_authorization.revoked","gollum","installation","installation.created","installation.deleted","installation.new_permissions_accepted","installation.suspend","installation.unsuspend","installation_repositories","installation_repositories.added","installation_repositories.removed","installation_target","installation_target.renamed","issue_comment","issue_comment.created","issue_comment.deleted","issue_comment.edited","issues","issues.assigned","issues.closed","issues.deleted","issues.demilestoned","issues.edited","issues.labeled","issues.locked","issues.milestoned","issues.opened","issues.pinned","issues.reopened","issues.transferred","issues.unassigned","issues.unlabeled","issues.unlocked","issues.unpinned","label","label.created","label.deleted","label.edited","marketplace_purchase","marketplace_purchase.cancelled","marketplace_purchase.changed","marketplace_purchase.pending_change","marketplace_purchase.pending_change_cancelled","marketplace_purchase.purchased","member","member.added","member.edited","member.removed","membership","membership.added","membership.removed","merge_group","merge_group.checks_requested","meta","meta.deleted","milestone","milestone.closed","milestone.created","milestone.deleted","milestone.edited","milestone.opened","org_block","org_block.blocked","org_block.unblocked","organization","organization.deleted","organization.member_added","organization.member_invited","organization.member_removed","organization.renamed","package","package.published","package.updated","page_build","ping","project","project.closed","project.created","project.deleted","project.edited","project.reopened","project_card","project_card.converted","project_card.created","project_card.deleted","project_card.edited","project_card.moved","project_column","project_column.created","project_column.deleted","project_column.edited","project_column.moved","projects_v2_item","projects_v2_item.archived","projects_v2_item.converted","projects_v2_item.created","projects_v2_item.deleted","projects_v2_item.edited","projects_v2_item.reordered","projects_v2_item.restored","public","pull_request","pull_request.assigned","pull_request.auto_merge_disabled","pull_request.auto_merge_enabled","pull_request.closed","pull_request.converted_to_draft","pull_request.dequeued","pull_request.edited","pull_request.labeled","pull_request.locked","pull_request.opened","pull_request.queued","pull_request.ready_for_review","pull_request.reopened","pull_request.review_request_removed","pull_request.review_requested","pull_request.synchronize","pull_request.unassigned","pull_request.unlabeled","pull_request.unlocked","pull_request_review","pull_request_review.dismissed","pull_request_review.edited","pull_request_review.submitted","pull_request_review_comment","pull_request_review_comment.created","pull_request_review_comment.deleted","pull_request_review_comment.edited","pull_request_review_thread","pull_request_review_thread.resolved","pull_request_review_thread.unresolved","push","registry_package","registry_package.published","registry_package.updated","release","release.created","release.deleted","release.edited","release.prereleased","release.published","release.released","release.unpublished","repository","repository.archived","repository.created","repository.deleted","repository.edited","repository.privatized","repository.publicized","repository.renamed","repository.transferred","repository.unarchived","repository_dispatch","repository_import","repository_vulnerability_alert","repository_vulnerability_alert.create","repository_vulnerability_alert.dismiss","repository_vulnerability_alert.reopen","repository_vulnerability_alert.resolve","secret_scanning_alert","secret_scanning_alert.created","secret_scanning_alert.reopened","secret_scanning_alert.resolved","security_advisory","security_advisory.performed","security_advisory.published","security_advisory.updated","security_advisory.withdrawn","sponsorship","sponsorship.cancelled","sponsorship.created","sponsorship.edited","sponsorship.pending_cancellation","sponsorship.pending_tier_change","sponsorship.tier_changed","star","star.created","star.deleted","status","team","team.added_to_repository","team.created","team.deleted","team.edited","team.removed_from_repository","team_add","watch","watch.started","workflow_dispatch","workflow_job","workflow_job.completed","workflow_job.in_progress","workflow_job.queued","workflow_run","workflow_run.completed","workflow_run.in_progress","workflow_run.requested"];function m(e,t,r){e.hooks[t]||(e.hooks[t]=[]),e.hooks[t].push(r)}function h(e,t,r){if(Array.isArray(t))t.forEach((t=>h(e,t,r)));else{if(["*","error"].includes(t)){const e="*"===t?"any":t,r=`Using the "${t}" event with the regular Webhooks.on() function is not supported. Please use the Webhooks.on${e.charAt(0).toUpperCase()+e.slice(1)}() method instead`;throw new Error(r)}f.includes(t)||e.log.warn(`"${t}" is not a known webhook name (https://developer.github.com/v3/activity/events/types/)`),m(e,t,r)}}function g(e,t){m(e,"*",t)}function y(e,t){m(e,"error",t)}function b(e,t){let r;try{r=e(t)}catch(t){console.log('FATAL: Error occurred in "error" event handler'),console.log(t)}r&&r.catch&&r.catch((e=>{console.log('FATAL: Error occurred in "error" event handler'),console.log(e)}))}function v(e,t){const r=e.hooks.error||[];if(t instanceof Error){const e=Object.assign(new(s())([t]),{event:t,errors:[t]});return r.forEach((t=>b(t,e))),Promise.reject(e)}if(!t||!t.name)throw new(s())(["Event name not passed"]);if(!t.payload)throw new(s())(["Event payload not passed"]);const n=function(e,t,r){const n=[e.hooks[r],e.hooks["*"]];return t&&n.unshift(e.hooks[`${r}.${t}`]),[].concat(...n.filter(Boolean))}(e,"action"in t.payload?t.payload.action:null,t.name);if(0===n.length)return Promise.resolve();const o=[],i=n.map((r=>{let n=Promise.resolve(t);return e.transform&&(n=n.then(e.transform)),n.then((e=>r(e))).catch((e=>o.push(Object.assign(e,{event:t}))))}));return Promise.all(i).then((()=>{if(0===o.length)return;const e=new(s())(o);throw Object.assign(e,{event:t,errors:o}),r.forEach((t=>b(t,e))),e}))}function w(e,t,r){if(Array.isArray(t))t.forEach((t=>w(e,t,r)));else if(e.hooks[t])for(let n=e.hooks[t].length-1;n>=0;n--)if(e.hooks[t][n]===r)return void e.hooks[t].splice(n,1)}function T(e){const t={hooks:{},log:p(e&&e.log)};return e&&e.transform&&(t.transform=e.transform),{on:h.bind(null,t),onAny:g.bind(null,t),onError:y.bind(null,t),removeListener:w.bind(null,t),receive:v.bind(null,t)}}function _(e){return JSON.stringify(e).replace(/[^\\]\\u[\da-f]{4}/g,(e=>e.substr(0,3)+e.substr(3).toUpperCase()))}async function O(e,t){return u(e,"string"==typeof t?t:_(t))}const E=["x-github-event","x-hub-signature-256","x-github-delivery"];async function A(e,t,r,n,o){let i;try{i=new URL(r.url,"http://localhost").pathname}catch(f){return n.writeHead(422,{"content-type":"application/json"}),void n.end(JSON.stringify({error:`Request URL could not be parsed: ${r.url}`}))}if("POST"!==r.method||i!==t.path)return"function"==typeof o?o():t.onUnhandledRequest(r,n);if(!r.headers["content-type"]||!r.headers["content-type"].startsWith("application/json"))return n.writeHead(415,{"content-type":"application/json",accept:"application/json"}),void n.end(JSON.stringify({error:'Unsupported "Content-Type" header value. Must be "application/json"'}));const a=function(e){return E.filter((t=>!(t in e.headers)))}(r).join(", ");if(a)return n.writeHead(400,{"content-type":"application/json"}),void n.end(JSON.stringify({error:`Required headers missing: ${a}`}));const c=r.headers["x-github-event"],l=r.headers["x-hub-signature-256"],u=r.headers["x-github-delivery"];t.log.debug(`${c} event received (id: ${u})`);let d=!1;const p=setTimeout((()=>{d=!0,n.statusCode=202,n.end("still processing\n")}),9e3).unref();try{const t=await function(e){return e.body?("string"!=typeof e.body&&console.warn("[@octokit/webhooks] Passing the payload as a JSON object in `request.body` is deprecated and will be removed in a future release of `@octokit/webhooks`, please pass it as a a `string` instead."),Promise.resolve(e.body)):new Promise(((t,r)=>{let n="";e.setEncoding("utf8"),e.on("error",(e=>r(new(s())([e])))),e.on("data",(e=>n+=e)),e.on("end",(()=>{try{JSON.parse(n),t(n)}catch(f){f.message="Invalid JSON",f.status=400,r(new(s())([f]))}}))}))}(r);if(await e.verifyAndReceive({id:u,name:c,payload:t,signature:l}),clearTimeout(p),d)return;n.end("ok\n")}catch(f){if(clearTimeout(p),d)return;const e=Array.from(f)[0],r=e.message?`${e.name}: ${e.message}`:"Error: An Unspecified error occurred";n.statusCode=void 0!==e.status?e.status:500,t.log.error(f),n.end(JSON.stringify({error:r}))}}function k(e,t){t.writeHead(404,{"content-type":"application/json"}),t.end(JSON.stringify({error:`Unknown route: ${e.method} ${e.url}`}))}function S(e,{path:t="/api/github/webhooks",onUnhandledRequest:r=k,log:n=p()}={}){return A.bind(null,e,{path:t,onUnhandledRequest:(e,t)=>(console.warn("[@octokit/webhooks] `onUnhandledRequest()` is deprecated and will be removed in a future release of `@octokit/webhooks`"),r(e,t)),log:n})}class x{constructor(e){if(!e||!e.secret)throw new Error("[@octokit/webhooks] options.secret required");const t={eventHandler:T(e),secret:e.secret,hooks:{},log:p(e.log)};this.sign=O.bind(null,e.secret),this.verify=(t,r)=>("object"==typeof t&&console.warn("[@octokit/webhooks] Passing a JSON payload object to `verify()` is deprecated and the functionality will be removed in a future release of `@octokit/webhooks`"),async function(e,t,r){return d(e,"string"==typeof t?t:_(t),r)}(e.secret,t,r)),this.on=t.eventHandler.on,this.onAny=t.eventHandler.onAny,this.onError=t.eventHandler.onError,this.removeListener=t.eventHandler.removeListener,this.receive=t.eventHandler.receive,this.verifyAndReceive=e=>("object"==typeof e.payload&&console.warn("[@octokit/webhooks] Passing a JSON payload object to `verifyAndReceive()` is deprecated and the functionality will be removed in a future release of `@octokit/webhooks`"),async function(e,t){if(!await d(e.secret,"object"==typeof t.payload?_(t.payload):t.payload,t.signature)){const r=new Error("[@octokit/webhooks] signature does not match event payload and secret");return e.eventHandler.receive(Object.assign(r,{event:t,status:400}))}return e.eventHandler.receive({id:t.id,name:t.name,payload:"string"==typeof t.payload?JSON.parse(t.payload):t.payload})}(t,e))}}},56455:(e,t,r)=>{"use strict";const n=r(95602),o=r(75281);class s extends Error{constructor(e){if(!Array.isArray(e))throw new TypeError("Expected input to be an Array, got "+typeof e);let t=(e=[...e].map((e=>e instanceof Error?e:null!==e&&"object"==typeof e?Object.assign(new Error(e.message),e):new Error(e)))).map((e=>"string"==typeof e.stack?o(e.stack).replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g,""):String(e))).join("\n");t="\n"+n(t,4),super(t),this.name="AggregateError",Object.defineProperty(this,"_errors",{value:e})}*[Symbol.iterator](){for(const e of this._errors)yield e}}e.exports=s},8131:(e,t,r)=>{"use strict";var n=r(49374),o=r(17775),s=r(23076);function i(e,t,r){return new n(e,t,r)}i.version=r(24336),i.AlgoliaSearchHelper=n,i.SearchParameters=o,i.SearchResults=s,e.exports=i},68078:(e,t,r)=>{"use strict";var n=r(17331);function o(e,t){this.main=e,this.fn=t,this.lastResults=null}r(14853)(o,n),o.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},o.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=o},82437:(e,t,r)=>{"use strict";var n=r(52344),o=r(49803),s=r(90116),i={addRefinement:function(e,t,r){if(i.isRefined(e,t,r))return e;var o=""+r,s=e[t]?e[t].concat(o):[o],a={};return a[t]=s,n({},a,e)},removeRefinement:function(e,t,r){if(void 0===r)return i.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return i.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return i.isRefined(e,t,r)?i.removeRefinement(e,t,r):i.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return s(e)?{}:e;if("string"==typeof t)return o(e,[t]);if("function"==typeof t){var n=!1,i=Object.keys(e).reduce((function(o,s){var i=e[s]||[],a=i.filter((function(e){return!t(e,s,r)}));return a.length!==i.length&&(n=!0),o[s]=a,o}),{});return n?i:e}},isRefined:function(e,t,r){var n=!!e[t]&&e[t].length>0;if(void 0===r||!n)return n;var o=""+r;return-1!==e[t].indexOf(o)}};e.exports=i},17775:(e,t,r)=>{"use strict";var n=r(60185),o=r(52344),s=r(22686),i=r(7888),a=r(28023),c=r(49803),l=r(90116),u=r(46801),d=r(82437);function p(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return p(t[r],e)})):e===t}function f(e){var t=e?f._parseNumbers(e):{};void 0===t.userToken||u(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==f.PARAMETERS.indexOf(e),o=void 0!==t[e];!n&&o&&(r[e]=t[e])}))}f.PARAMETERS=Object.keys(new f),f._parseNumbers=function(e){if(e instanceof f)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var o=parseFloat(n);t[r]=isNaN(o)?n:o}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var o=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=o}))})),t.numericRefinements=r}return n({},e,t)},f.make=function(e){var t=new f(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},f.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&l(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):l(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},f.prototype={constructor:f,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:d.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:d.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:d.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:d.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var o=a(r);if(this.isNumericRefined(e,t,o))return this;var s=n({},this.numericRefinements);return s[e]=n({},s[e]),s[e][t]?(s[e][t]=s[e][t].slice(),s[e][t].push(o)):s[e][t]=[o],this.setQueryParameters({numericRefinements:s})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){return void 0!==r?this.isNumericRefined(e,t,r)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(n,o){return o===e&&n.op===t&&p(n.val,a(r))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return l(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return c(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,o){var s=r[o],i={};return s=s||{},Object.keys(s).forEach((function(r){var n=s[r]||[],a=[];n.forEach((function(t){e({val:t,op:r},o,"numeric")||a.push(t)})),a.length!==n.length&&(t=!0),i[r]=a})),n[o]=i,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return d.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:d.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return d.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:d.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return d.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:d.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return d.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:d.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return d.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:d.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return d.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:d.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:d.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:d.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:d.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),n={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?n[e]=[]:n[e]=[t.slice(0,t.lastIndexOf(r))]:n[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:o({},n,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:o({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:o({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&d.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&d.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&d.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return!!this.numericRefinements[e];var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var o,s,c=a(r),l=void 0!==(o=this.numericRefinements[e][t],s=c,i(o,(function(e){return p(e,s)})));return n&&l},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=s(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets())},getRefinedHierarchicalFacets:function(){var e=this;return s(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0})))},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var o=r[n];-1===e.indexOf(n)&&void 0!==o&&(t[n]=o)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=f.validate(this,e);if(t)throw t;var r=this,n=f._parseNumbers(e),o=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),s=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],o=void 0!==n[t];return r&&!o?c(e,[t]):(o&&(e[t]=n[t]),e)}),o);return new this.constructor(s)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return i(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=f},10210:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var i=e.hierarchicalFacets[r],l=e.hierarchicalFacetsRefinements[i.name]&&e.hierarchicalFacetsRefinements[i.name][0]||"",u=e._getHierarchicalFacetSeparator(i),d=e._getHierarchicalRootPath(i),p=e._getHierarchicalShowParentLevel(i),f=s(e._getHierarchicalFacetSortBy(i)),m=t.every((function(e){return e.exhaustive})),h=function(e,t,r,s,i){return function(l,u,d){var p=l;if(d>0){var f=0;for(p=l;f{"use strict";var n=r(60185),o=r(52344),s=r(42148),i=r(74587),a=r(7888),c=r(69725),l=r(82293),u=r(94039),d=u.escapeFacetValue,p=u.unescapeFacetValue,f=r(10210);function m(e){var t={};return e.forEach((function(e,r){t[e]=r})),t}function h(e,t,r){t&&t[r]&&(e.stats=t[r])}function g(e,t,r){var s=t[0];this._rawResults=t;var l=this;Object.keys(s).forEach((function(e){l[e]=s[e]})),Object.keys(r||{}).forEach((function(e){l[e]=r[e]})),this.processingTimeMS=t.reduce((function(e,t){return void 0===t.processingTimeMS?e:e+t.processingTimeMS}),0),this.disjunctiveFacets=[],this.hierarchicalFacets=e.hierarchicalFacets.map((function(){return[]})),this.facets=[];var u=e.getRefinedDisjunctiveFacets(),d=m(e.facets),g=m(e.disjunctiveFacets),y=1,b=s.facets||{};Object.keys(b).forEach((function(t){var r,n,o=b[t],i=(r=e.hierarchicalFacets,n=t,a(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(i){var u=i.attributes.indexOf(t),p=c(e.hierarchicalFacets,(function(e){return e.name===i.name}));l.hierarchicalFacets[p][u]={attribute:t,data:o,exhaustive:s.exhaustiveFacetsCount}}else{var f,m=-1!==e.disjunctiveFacets.indexOf(t),y=-1!==e.facets.indexOf(t);m&&(f=g[t],l.disjunctiveFacets[f]={name:t,data:o,exhaustive:s.exhaustiveFacetsCount},h(l.disjunctiveFacets[f],s.facets_stats,t)),y&&(f=d[t],l.facets[f]={name:t,data:o,exhaustive:s.exhaustiveFacetsCount},h(l.facets[f],s.facets_stats,t))}})),this.hierarchicalFacets=i(this.hierarchicalFacets),u.forEach((function(r){var i=t[y],a=i&&i.facets?i.facets:{},u=e.getHierarchicalFacetByName(r);Object.keys(a).forEach((function(t){var r,d=a[t];if(u){r=c(e.hierarchicalFacets,(function(e){return e.name===u.name}));var f=c(l.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===f)return;l.hierarchicalFacets[r][f].data=n({},l.hierarchicalFacets[r][f].data,d)}else{r=g[t];var m=s.facets&&s.facets[t]||{};l.disjunctiveFacets[r]={name:t,data:o({},d,m),exhaustive:i.exhaustiveFacetsCount},h(l.disjunctiveFacets[r],i.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!l.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(p(n))>-1&&(l.disjunctiveFacets[r].data[n]=0)}))}})),y++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),s=e._getHierarchicalFacetSeparator(n),i=e.getHierarchicalRefinement(r);0===i.length||i[0].split(s).length<2||t.slice(y).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var a=r[t],u=c(e.hierarchicalFacets,(function(e){return e.name===n.name})),d=c(l.hierarchicalFacets[u],(function(e){return e.attribute===t}));if(-1!==d){var p={};if(i.length>0){var f=i[0].split(s)[0];p[f]=l.hierarchicalFacets[u][d].data[f]}l.hierarchicalFacets[u][d].data=o(p,a,l.hierarchicalFacets[u][d].data)}})),y++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=d[t];l.facets[n]={name:t,data:s.facets[t],exhaustive:s.exhaustiveFacetsCount},r.forEach((function(e){l.facets[n]=l.facets[n]||{name:t},l.facets[n].data=l.facets[n].data||{},l.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(f(e)),this.facets=i(this.facets),this.disjunctiveFacets=i(this.disjunctiveFacets),this._state=e}function y(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=a(e.facets,r);return n?Object.keys(n.data).map((function(r){var o=d(r);return{name:r,escapedValue:o,count:n.data[r],isRefined:e._state.isFacetRefined(t,o),isExcluded:e._state.isExcludeRefined(t,r)}})):[]}if(e._state.isDisjunctiveFacet(t)){var o=a(e.disjunctiveFacets,r);return o?Object.keys(o.data).map((function(r){var n=d(r);return{name:r,escapedValue:n,count:o.data[r],isRefined:e._state.isDisjunctiveFacetRefined(t,n)}})):[]}if(e._state.isHierarchicalFacet(t)){var s=a(e.hierarchicalFacets,r);if(!s)return s;var i=e._state.getHierarchicalFacetByName(t),c=p(e._state.getHierarchicalRefinement(t)[0]||"").split(e._state._getHierarchicalFacetSeparator(i));return c.unshift(t),b(s,c,0),s}}function b(e,t,r){e.isRefined=e.name===t[r],e.data&&e.data.forEach((function(e){b(e,t,r+1)}))}function v(e,t,r,n){if(n=n||0,Array.isArray(t))return e(t,r[n]);if(!t.data||0===t.data.length)return t;var s=t.data.map((function(t){return v(e,t,r,n+1)})),i=e(s,r[n]);return o({data:i},t)}function w(e,t){var r=a(e,(function(e){return e.name===t}));return r&&r.stats}function T(e,t,r,n,o){var s=a(o,(function(e){return e.name===r})),i=s&&s.data&&s.data[n]?s.data[n]:0,c=s&&s.exhaustive||!1;return{type:t,attributeName:r,name:n,count:i,exhaustive:c}}g.prototype.getFacetByName=function(e){function t(t){return t.name===e}return a(this.facets,t)||a(this.disjunctiveFacets,t)||a(this.hierarchicalFacets,t)},g.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],g.prototype.getFacetValues=function(e,t){var r=y(this,e);if(r){var n,i=o({},t,{sortBy:g.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),a=this;if(Array.isArray(r))n=[e];else n=a._state.getHierarchicalFacetByName(r.name).attributes;return v((function(e,t){if(i.facetOrdering){var r=function(e,t){return e.renderingContent&&e.renderingContent.facetOrdering&&e.renderingContent.facetOrdering.values&&e.renderingContent.facetOrdering.values[t]}(a,t);if(Boolean(r))return function(e,t){var r=[],n=[],o=(t.order||[]).reduce((function(e,t,r){return e[t]=r,e}),{});e.forEach((function(e){var t=e.path||e.name;void 0!==o[t]?r[o[t]]=e:n.push(e)})),r=r.filter((function(e){return e}));var i,a=t.sortRemainingBy;return"hidden"===a?r:(i="alpha"===a?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(s(n,i[0],i[1])))}(e,r)}if(Array.isArray(i.sortBy)){var n=l(i.sortBy,g.DEFAULT_SORT);return s(e,n[0],n[1])}if("function"==typeof i.sortBy)return function(e,t){return t.sort(e)}(i.sortBy,e);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")}),r,n)}},g.prototype.getFacetStats=function(e){return this._state.isConjunctiveFacet(e)?w(this.facets,e):this._state.isDisjunctiveFacet(e)?w(this.disjunctiveFacets,e):void 0},g.prototype.getRefinements=function(){var e=this._state,t=this,r=[];return Object.keys(e.facetsRefinements).forEach((function(n){e.facetsRefinements[n].forEach((function(o){r.push(T(e,"facet",n,o,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(o){r.push(T(e,"exclude",n,o,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(o){r.push(T(e,"disjunctive",n,o,t.disjunctiveFacets))}))})),Object.keys(e.hierarchicalFacetsRefinements).forEach((function(n){e.hierarchicalFacetsRefinements[n].forEach((function(o){r.push(function(e,t,r,n){var o=e.getHierarchicalFacetByName(t),s=e._getHierarchicalFacetSeparator(o),i=r.split(s),c=a(n,(function(e){return e.name===t})),l=i.reduce((function(e,t){var r=e&&a(e.data,(function(e){return e.name===t}));return void 0!==r?r:e}),c),u=l&&l.count||0,d=l&&l.exhaustive||!1,p=l&&l.path||"";return{type:"hierarchical",attributeName:t,name:p,count:u,exhaustive:d}}(e,n,o,t.hierarchicalFacets))}))})),Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t];Object.keys(n).forEach((function(e){n[e].forEach((function(n){r.push({type:"numeric",attributeName:t,name:n,numericValue:n,operator:e})}))}))})),e.tagRefinements.forEach((function(e){r.push({type:"tag",attributeName:"_tags",name:e})})),r},e.exports=g},49374:(e,t,r)=>{"use strict";var n=r(17775),o=r(23076),s=r(68078),i=r(96394),a=r(17331),c=r(14853),l=r(90116),u=r(49803),d=r(60185),p=r(24336),f=r(94039).escapeFacetValue;function m(e,t,r){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+p+")"),this.setClient(e);var o=r||{};o.index=t,this.state=n.make(o),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1,this.derivedHelpers=[],this._currentNbQueries=0}function h(e){if(e<0)throw new Error("Page requested below 0.");return this._change({state:this.state.setPage(e),isPageReset:!1}),this}function g(){return this.state.page}c(m,a),m.prototype.search=function(){return this._search({onlyWithDerivedHelpers:!1}),this},m.prototype.searchOnlyWithDerivedHelpers=function(){return this._search({onlyWithDerivedHelpers:!0}),this},m.prototype.getQuery=function(){var e=this.state;return i._getHitsSearchParams(e)},m.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=i._getQueries(r.index,r),s=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return s._currentNbQueries--,0===s._currentNbQueries&&s.emit("searchQueueEmpty"),{content:new o(r,e.results),state:r,_originalResponse:e}}),(function(e){throw s._currentNbQueries--,0===s._currentNbQueries&&s.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){s._currentNbQueries--,0===s._currentNbQueries&&s.emit("searchQueueEmpty"),t(null,new o(r,e.results),r)})).catch((function(e){s._currentNbQueries--,0===s._currentNbQueries&&s.emit("searchQueueEmpty"),t(e,null,r)}))},m.prototype.findAnswers=function(e){console.warn("[algoliasearch-helper] answers is no longer supported");var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),o=d({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:u(i._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),s="search for answers was called, but this client does not have a function client.initIndex(index).findAnswers";if("function"!=typeof this.client.initIndex)throw new Error(s);var a=this.client.initIndex(n.index);if("function"!=typeof a.findAnswers)throw new Error(s);return a.findAnswers(n.query,e.queryLanguages,o)},m.prototype.searchForFacetValues=function(e,t,r,n){var o="function"==typeof this.client.searchForFacetValues,s="function"==typeof this.client.initIndex;if(!o&&!s&&"function"!=typeof this.client.search)throw new Error("search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues");var a=this.state.setQueryParameters(n||{}),c=a.isDisjunctiveFacet(e),l=i.getSearchForFacetQuery(e,t,r,a);this._currentNbQueries++;var u,d=this;return o?u=this.client.searchForFacetValues([{indexName:a.index,params:l}]):s?u=this.client.initIndex(a.index).searchForFacetValues(l):(delete l.facetName,u=this.client.search([{type:"facet",facet:e,indexName:a.index,params:l}]).then((function(e){return e.results[0]}))),this.emit("searchForFacetValues",{state:a,facet:e,query:t}),u.then((function(t){return d._currentNbQueries--,0===d._currentNbQueries&&d.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=f(t.value),t.isRefined=c?a.isDisjunctiveFacetRefined(e,t.escapedValue):a.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw d._currentNbQueries--,0===d._currentNbQueries&&d.emit("searchQueueEmpty"),e}))},m.prototype.setQuery=function(e){return this._change({state:this.state.resetPage().setQuery(e),isPageReset:!0}),this},m.prototype.clearRefinements=function(e){return this._change({state:this.state.resetPage().clearRefinements(e),isPageReset:!0}),this},m.prototype.clearTags=function(){return this._change({state:this.state.resetPage().clearTags(),isPageReset:!0}),this},m.prototype.addDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},m.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},m.prototype.addHierarchicalFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addHierarchicalFacetRefinement(e,t),isPageReset:!0}),this},m.prototype.addNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().addNumericRefinement(e,t,r),isPageReset:!0}),this},m.prototype.addFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addFacetRefinement(e,t),isPageReset:!0}),this},m.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},m.prototype.addFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().addExcludeRefinement(e,t),isPageReset:!0}),this},m.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},m.prototype.addTag=function(e){return this._change({state:this.state.resetPage().addTagRefinement(e),isPageReset:!0}),this},m.prototype.removeNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().removeNumericRefinement(e,t,r),isPageReset:!0}),this},m.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},m.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},m.prototype.removeHierarchicalFacetRefinement=function(e){return this._change({state:this.state.resetPage().removeHierarchicalFacetRefinement(e),isPageReset:!0}),this},m.prototype.removeFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeFacetRefinement(e,t),isPageReset:!0}),this},m.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},m.prototype.removeFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().removeExcludeRefinement(e,t),isPageReset:!0}),this},m.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},m.prototype.removeTag=function(e){return this._change({state:this.state.resetPage().removeTagRefinement(e),isPageReset:!0}),this},m.prototype.toggleFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().toggleExcludeFacetRefinement(e,t),isPageReset:!0}),this},m.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},m.prototype.toggleRefinement=function(e,t){return this.toggleFacetRefinement(e,t)},m.prototype.toggleFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().toggleFacetRefinement(e,t),isPageReset:!0}),this},m.prototype.toggleRefine=function(){return this.toggleFacetRefinement.apply(this,arguments)},m.prototype.toggleTag=function(e){return this._change({state:this.state.resetPage().toggleTagRefinement(e),isPageReset:!0}),this},m.prototype.nextPage=function(){var e=this.state.page||0;return this.setPage(e+1)},m.prototype.previousPage=function(){var e=this.state.page||0;return this.setPage(e-1)},m.prototype.setCurrentPage=h,m.prototype.setPage=h,m.prototype.setIndex=function(e){return this._change({state:this.state.resetPage().setIndex(e),isPageReset:!0}),this},m.prototype.setQueryParameter=function(e,t){return this._change({state:this.state.resetPage().setQueryParameter(e,t),isPageReset:!0}),this},m.prototype.setState=function(e){return this._change({state:n.make(e),isPageReset:!1}),this},m.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new n(e),this},m.prototype.hasRefinements=function(e){return!!l(this.state.getNumericRefinements(e))||(this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):!!this.state.isHierarchicalFacet(e)&&this.state.isHierarchicalFacetRefined(e))},m.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},m.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},m.prototype.hasTag=function(e){return this.state.isTagRefined(e)},m.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},m.prototype.getIndex=function(){return this.state.index},m.prototype.getCurrentPage=g,m.prototype.getPage=g,m.prototype.getTags=function(){return this.state.tagRefinements},m.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e))this.state.getConjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"conjunctive"})})),this.state.getExcludeRefinements(e).forEach((function(e){t.push({value:e,type:"exclude"})}));else if(this.state.isDisjunctiveFacet(e)){this.state.getDisjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"disjunctive"})}))}var r=this.state.getNumericRefinements(e);return Object.keys(r).forEach((function(e){var n=r[e];t.push({value:n,operator:e,type:"numeric"})})),t},m.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},m.prototype.getHierarchicalFacetBreadcrumb=function(e){return this.state.getHierarchicalFacetBreadcrumb(e)},m.prototype._search=function(e){var t=this.state,r=[],n=[];e.onlyWithDerivedHelpers||(n=i._getQueries(t.index,t),r.push({state:t,queriesCount:n.length,helper:this}),this.emit("search",{state:t,results:this.lastResults}));var o=this.derivedHelpers.map((function(e){var n=e.getModifiedState(t),o=n.index?i._getQueries(n.index,n):[];return r.push({state:n,queriesCount:o.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),o})),s=Array.prototype.concat.apply(n,o),a=this._queryId++;if(this._currentNbQueries++,!s.length)return Promise.resolve({results:[]}).then(this._dispatchAlgoliaResponse.bind(this,r,a));try{this.client.search(s).then(this._dispatchAlgoliaResponse.bind(this,r,a)).catch(this._dispatchAlgoliaError.bind(this,a))}catch(c){this.emit("error",{error:c})}},m.prototype._dispatchAlgoliaResponse=function(e,t,r){if(!(t0},m.prototype._change=function(e){var t=e.state,r=e.isPageReset;t!==this.state&&(this.state=t,this.emit("change",{state:this.state,results:this.lastResults,isPageReset:r}))},m.prototype.clearCache=function(){return this.client.clearCache&&this.client.clearCache(),this},m.prototype.setClient=function(e){return this.client===e||("function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+p+")"),this.client=e),this},m.prototype.getClient=function(){return this.client},m.prototype.derive=function(e){var t=new s(this,e);return this.derivedHelpers.push(t),t},m.prototype.detachDerivedHelper=function(e){var t=this.derivedHelpers.indexOf(e);if(-1===t)throw new Error("Derived helper already detached");this.derivedHelpers.splice(t,1)},m.prototype.hasPendingRequests=function(){return this._currentNbQueries>0},e.exports=m},74587:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},52344:e=>{"use strict";e.exports=function(){return Array.prototype.slice.call(arguments).reduceRight((function(e,t){return Object.keys(Object(t)).forEach((function(r){void 0!==t[r]&&(void 0!==e[r]&&delete e[r],e[r]=t[r])})),e}),{})}},94039:e=>{"use strict";e.exports={escapeFacetValue:function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},unescapeFacetValue:function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")}}},7888:e=>{"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var r=0;r{"use strict";e.exports=function(e,t){if(!Array.isArray(e))return-1;for(var r=0;r{"use strict";var n=r(7888);e.exports=function(e,t){var r=(t||[]).map((function(e){return e.split(":")}));return e.reduce((function(e,t){var o=t.split(":"),s=n(r,(function(e){return e[0]===o[0]}));return o.length>1||!s?(e[0].push(o[0]),e[1].push(o[1]),e):(e[0].push(s[0]),e[1].push(s[1]),e)}),[[],[]])}},14853:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},22686:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},60185:e=>{"use strict";function t(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function r(e,n){if(e===n)return e;for(var o in n)if(Object.prototype.hasOwnProperty.call(n,o)&&"__proto__"!==o&&"constructor"!==o){var s=n[o],i=e[o];void 0!==i&&void 0===s||(t(i)&&t(s)?e[o]=r(i,s):e[o]="object"==typeof(a=s)&&null!==a?r(Array.isArray(a)?[]:{},a):a)}var a;return e}e.exports=function(e){t(e)||(e={});for(var n=1,o=arguments.length;n{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},49803:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}},42148:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,o=void 0!==t,s=null===t;if(!s&&e>t||n&&o||!r)return 1;if(!n&&e=n.length?s:"desc"===n[o]?-s:s}return e.index-r.index})),o.map((function(e){return e.value}))}},28023:e=>{"use strict";e.exports=function e(t){if("number"==typeof t)return t;if("string"==typeof t)return parseFloat(t);if(Array.isArray(t))return t.map(e);throw new Error("The value should be a number, a parsable string or an array of those.")}},96394:(e,t,r)=>{"use strict";var n=r(60185);function o(e){return Object.keys(e).sort((function(e,t){return e.localeCompare(t)})).reduce((function(t,r){return t[r]=e[r],t}),{})}var s={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:s._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:s._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var o=t.getHierarchicalFacetByName(n),i=t.getHierarchicalRefinement(n),a=t._getHierarchicalFacetSeparator(o);if(i.length>0&&i[0].split(a).length>1){var c=i[0].split(a).slice(0,-1).reduce((function(e,t,r){return e.concat({attribute:o.attributes[r],value:0===r?t:[e[e.length-1].value,t].join(a)})}),[]);c.forEach((function(n,i){var a=s._getDisjunctiveFacetSearchParams(t,n.attribute,0===i);function l(e){return o.attributes.some((function(t){return t===e.split(":")[0]}))}var u=(a.facetFilters||[]).reduce((function(e,t){if(Array.isArray(t)){var r=t.filter((function(e){return!l(e)}));r.length>0&&e.push(r)}return"string"!=typeof t||l(t)||e.push(t),e}),[]),d=c[i-1];a.facetFilters=i>0?u.concat(d.attribute+":"+d.value):u.length>0?u:void 0,r.push({indexName:e,params:a})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(s._getHitsHierarchicalFacetsAttributes(e)),r=s._getFacetFilters(e),i=s._getNumericFilters(e),a=s._getTagFilters(e),c={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:a};return r.length>0&&(c.facetFilters=r),i.length>0&&(c.numericFilters=i),o(n({},e.getQueryParams(),c))},_getDisjunctiveFacetSearchParams:function(e,t,r){var i=s._getFacetFilters(e,t,r),a=s._getNumericFilters(e,t),c=s._getTagFilters(e),l={hitsPerPage:0,page:0,analytics:!1,clickAnalytics:!1};c.length>0&&(l.tagFilters=c);var u=e.getHierarchicalFacetByName(t);return l.facets=u?s._getDisjunctiveHierarchicalFacetAttribute(e,u,r):t,a.length>0&&(l.numericFilters=a),i.length>0&&(l.facetFilters=i),o(n({},e.getQueryParams(),l))},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var r=[];return Object.keys(e.numericRefinements).forEach((function(n){var o=e.numericRefinements[n]||{};Object.keys(o).forEach((function(e){var s=o[e]||[];t!==n&&s.forEach((function(t){if(Array.isArray(t)){var o=t.map((function(t){return n+e+t}));r.push(o)}else r.push(n+e+t)}))}))})),r},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,r){var n=[],o=e.facetsRefinements||{};Object.keys(o).forEach((function(e){(o[e]||[]).forEach((function(t){n.push(e+":"+t)}))}));var s=e.facetsExcludes||{};Object.keys(s).forEach((function(e){(s[e]||[]).forEach((function(t){n.push(e+":-"+t)}))}));var i=e.disjunctiveFacetsRefinements||{};Object.keys(i).forEach((function(e){var r=i[e]||[];if(e!==t&&r&&0!==r.length){var o=[];r.forEach((function(t){o.push(e+":"+t)})),n.push(o)}}));var a=e.hierarchicalFacetsRefinements||{};return Object.keys(a).forEach((function(o){var s=(a[o]||[])[0];if(void 0!==s){var i,c,l=e.getHierarchicalFacetByName(o),u=e._getHierarchicalFacetSeparator(l),d=e._getHierarchicalRootPath(l);if(t===o){if(-1===s.indexOf(u)||!d&&!0===r||d&&d.split(u).length===s.split(u).length)return;d?(c=d.split(u).length-1,s=d):(c=s.split(u).length-2,s=s.slice(0,s.lastIndexOf(u))),i=l.attributes[c]}else c=s.split(u).length-1,i=l.attributes[c];i&&n.push([i+":"+s])}})),n},_getHitsHierarchicalFacetsAttributes:function(e){return e.hierarchicalFacets.reduce((function(t,r){var n=e.getHierarchicalRefinement(r.name)[0];if(!n)return t.push(r.attributes[0]),t;var o=e._getHierarchicalFacetSeparator(r),s=n.split(o).length,i=r.attributes.slice(0,s+1);return t.concat(i)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var o=e._getHierarchicalRootPath(t),s=0;return o&&(s=o.split(n).length),[t.attributes[s]]}var i=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,i+1)},getSearchForFacetQuery:function(e,t,r,i){var a=i.isDisjunctiveFacet(e)?i.clearRefinements(e):i,c={facetQuery:t,facetName:e};return"number"==typeof r&&(c.maxFacetHits=r),o(n({},s._getHitsSearchParams(a),c))}};e.exports=s},46801:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},24336:e=>{"use strict";e.exports="3.13.0"},723:(e,t,r)=>{"use strict";r.d(t,{Z:()=>f});var n=r(67294),o=r(87462),s=r(68356),i=r.n(s),a=r(16887);const c={"005be06e":[()=>r.e(26521).then(r.bind(r,96648)),"@site/docs/glossary/autonomic-identifier.md",96648],"00695645":[()=>r.e(57725).then(r.bind(r,9986)),"@site/docs/glossary/XBRL.md",9986],"007fe63f":[()=>r.e(84640).then(r.bind(r,83896)),"@site/docs/glossary/interleaved-serialisation.md",83896],"010bb8d6":[()=>r.e(20836).then(r.bind(r,97097)),"@site/docs/glossary/AN.md",97097],"012b3a26":[()=>r.e(59842).then(r.bind(r,23462)),"@site/docs/glossary/decentralized-identifier.md",23462],"01b859af":[()=>r.e(99401).then(r.bind(r,55300)),"@site/docs/CarbonCopies/WebOfTrust-ietf-cesr-proof-main-draft-pfeairheller-cesr-proof.md",55300],"01efdbcc":[()=>r.e(82402).then(r.bind(r,74144)),"@site/docs/glossary/electronic-signature.md",74144],"02003ffc":[()=>r.e(17287).then(r.bind(r,42919)),"@site/docs/glossary/repo.md",42919],"03141bfe":[()=>r.e(82997).then(r.bind(r,65842)),"@site/docs/glossary/keride.md",65842],"04edebcd":[()=>r.e(27326).then(r.bind(r,22111)),"@site/docs/glossary/KEL.md",22111],"052b9672":[()=>r.e(92301).then(r.bind(r,48925)),"@site/docs/glossary/branch.md",48925],"054c4a87":[()=>r.e(90022).then(r.bind(r,89590)),"@site/docs/glossary/server-sent-event.md",89590],"058eaf86":[()=>r.e(62729).then(r.bind(r,14816)),"@site/docs/How we did/Create-search-index.md",14816],"059e0bad":[()=>r.e(37995).then(r.bind(r,63934)),"@site/docs/glossary/management-transaction-event-log.md",63934],"06ef3e72":[()=>r.e(31826).then(r.bind(r,67335)),"@site/docs/glossary/directed-acyclic-graph.md",67335],"0740862e":[()=>r.e(90705).then(r.bind(r,25223)),"@site/docs/glossary/ledger-backer.md",25223],"0752b70b":[()=>r.e(78729).then(r.bind(r,53830)),"@site/docs/glossary/threshold-of-accountable-duplicity.md",53830],"0791571c":[()=>r.e(77818).then(r.bind(r,79562)),"@site/docs/glossary/correlation.md",79562],"07ce88a3":[()=>r.e(67174).then(r.bind(r,30729)),"@site/docs/How we did/pull-changes-from-toip-to-terms.md",30729],"089f1c13":[()=>r.e(77549).then(r.bind(r,66424)),"@site/src/pages/howtos/hwt_embed-github-hosted-image-in-github-wiki-page.md",66424],"08f88288":[()=>r.e(52554).then(r.bind(r,44602)),"@site/src/pages/howtos-menu.md",44602],"098f094d":[()=>r.e(85611).then(r.bind(r,7897)),"@site/docs/glossary/DPKI.md",7897],"09d065ec":[()=>r.e(60182).then(r.bind(r,56255)),"@site/docs/glossary/registry.md",56255],"0a4717d6":[()=>r.e(74760).then(r.bind(r,17655)),"@site/docs/glossary/KA2CE.md",17655],"0a59cc05":[()=>r.e(39757).then(r.bind(r,14516)),"@site/docs/glossary/PID.md",14516],"0aa2ad26":[()=>r.e(87514).then(r.bind(r,96910)),"@site/docs/glossary/controller.md",96910],"0aa4537e":[()=>r.e(90169).then(r.bind(r,93580)),"@site/docs/glossary/gleif-authorized-representative.md",93580],"0afbd820":[()=>r.e(5248).then(r.bind(r,87349)),"@site/docs/glossary/solicited-issuance.md",87349],"0bef9a4f":[()=>r.e(12829).then(r.bind(r,13302)),"@site/docs/glossary/rotation.md",13302],"0c69bc38":[()=>r.e(77847).then(r.bind(r,80681)),"@site/docs/glossary/keri-improvement-doc.md",80681],"0cd2a461":[()=>r.e(20806).then(r.bind(r,78193)),"@site/docs/glossary/complementary-integrity-verification.md",78193],"0cebbcba":[()=>r.e(95781).then(r.bind(r,75793)),"@site/docs/glossary/API.md",75793],"0d59f7fb":[()=>r.e(48283).then(r.bind(r,98846)),"@site/docs/glossary/inception.md",98846],"0e384e19":[()=>r.e(59671).then(r.bind(r,59881)),"@site/docs/intro.md",59881],"0e57155b":[()=>r.e(28300).then(r.bind(r,19090)),"@site/docs/glossary/CLC.md",19090],"0ec94cff":[()=>r.e(18992).then(r.bind(r,86753)),"@site/docs/glossary/GAR.md",86753],"0ef9fe03":[()=>r.e(81172).then(r.bind(r,96242)),"@site/docs/glossary/javascript-object-notation-(JSON).md",96242],"0f01797d":[()=>r.e(41025).then(r.bind(r,65762)),"@site/docs/glossary/primitive.md",65762],"0f6d38d1":[()=>r.e(58306).then(r.bind(r,30885)),"@site/docs/glossary/PTEL.md",30885],"106654ff":[()=>r.e(73548).then(r.bind(r,9722)),"@site/docs/glossary/control-authority.md",9722],10862891:[()=>r.e(98465).then(r.bind(r,85549)),"@site/docs/glossary/inconsistency.md",85549],"1130ac47":[()=>r.e(69886).then(r.bind(r,33577)),"@site/docs/glossary/proof-of-authorship.md",33577],11540881:[()=>r.e(58854).then(r.bind(r,77745)),"@site/docs/glossary/IANA.md",77745],"12675f1f":[()=>r.e(91617).then(r.bind(r,41198)),"@site/docs/Video/lets-keri-on-together.md",41198],"129965ea":[()=>r.e(34540).then(r.bind(r,31085)),"@site/docs/glossary/decentralized-key-management-infrastructure.md",31085],"12cd2cd2":[()=>r.e(43435).then(r.bind(r,36114)),"@site/docs/glossary/verify.md",36114],"12eecd35":[()=>r.e(83495).then(r.bind(r,56060)),"@site/docs/glossary/JOSE.md",56060],"13c79fea":[()=>r.e(18213).then(r.bind(r,57164)),"@site/docs/glossary/contextual-linkability.md",57164],14880233:[()=>r.e(4179).then(r.t.bind(r,69567,19)),"~docs/default/category-wot-termsdocs-main-category-gleif-1f0.json",69567],"1492b26d":[()=>r.e(19407).then(r.bind(r,70785)),"@site/docs/glossary/SAID.md",70785],"14eb3368":[()=>Promise.all([r.e(40532),r.e(9817)]).then(r.bind(r,34228)),"@theme/DocCategoryGeneratedIndexPage",34228],"15558e05":[()=>r.e(27416).then(r.bind(r,34458)),"@site/docs/glossary/provenance.md",34458],"156e0d87":[()=>r.e(65117).then(r.bind(r,14364)),"@site/src/pages/visualisations.md",14364],"158841df":[()=>r.e(70679).then(r.bind(r,82163)),"@site/docs/glossary/gnu-privacy-guard.md",82163],16867714:[()=>r.e(15546).then(r.bind(r,327)),"@site/docs/glossary/keripy.md",327],"16d9db53":[()=>r.e(1e4).then(r.bind(r,52218)),"@site/docs/glossary/crypto-libraries.md",52218],17896441:[()=>Promise.all([r.e(40532),r.e(90734),r.e(27918)]).then(r.bind(r,87372)),"@theme/DocItem",87372],"17df6068":[()=>r.e(41623).then(r.bind(r,31316)),"@site/docs/glossary/key-event.md",31316],"1ad92d69":[()=>r.e(20755).then(r.bind(r,19216)),"@site/docs/glossary/legal-entity.md",19216],"1b6570b4":[()=>r.e(68019).then(r.bind(r,22367)),"@site/docs/glossary/interoperable.md",22367],"1bcd4e1f":[()=>r.e(7531).then(r.bind(r,77337)),"@site/docs/GLEIF/2022-12-06_appendix-2-vlei-issuer-qualification-program-manual_v1.0_final.md",77337],"1be78505":[()=>Promise.all([r.e(40532),r.e(29514)]).then(r.bind(r,19963)),"@theme/DocPage",19963],"1c83de4f":[()=>r.e(68997).then(r.bind(r,17438)),"@site/docs/glossary/governance-framework.md",17438],"1d15c1da":[()=>r.e(9772).then(r.bind(r,95736)),"@site/docs/glossary/identifier-system.md",95736],"1d55f887":[()=>r.e(81065).then(r.bind(r,22813)),"@site/docs/glossary/keri-ox.md",22813],"1d838356":[()=>r.e(70377).then(r.bind(r,95479)),"@site/docs/glossary/primary-root-of-trust.md",95479],"1dc64345":[()=>r.e(36136).then(r.bind(r,46247)),"@site/docs/glossary/naive-conversion.md",46247],"1e16d9b3":[()=>r.e(8734).then(r.bind(r,70945)),"@site/docs/glossary/promiscuous-mode.md",70945],"1f2f54ed":[()=>r.e(75690).then(r.bind(r,14701)),"@site/docs/glossary-ToIP/index.mdx",14701],"1f391b9e":[()=>Promise.all([r.e(40532),r.e(90734),r.e(13085)]).then(r.bind(r,14247)),"@theme/MDXPage",14247],"20161b36":[()=>r.e(87865).then(r.bind(r,91597)),"@site/docs/glossary/key.md",91597],"201facc6":[()=>r.e(40141).then(r.bind(r,33499)),"@site/docs/glossary/keri-agreement-algorithm-for-control-establishment.md",33499],"22e96912":[()=>r.e(34173).then(r.bind(r,2659)),"@site/docs/glossary/AVR.md",2659],23279091:[()=>r.e(88532).then(r.bind(r,36888)),"@site/docs/glossary/DHT.md",36888],"25e3698e":[()=>r.e(53351).then(r.bind(r,63674)),"@site/docs/glossary/sally.md",63674],"26181f01":[()=>r.e(92215).then(r.bind(r,34317)),"@site/docs/glossary/receipt-log.md",34317],"268c8172":[()=>r.e(65983).then(r.bind(r,57727)),"@site/docs/glossary/opcode.md",57727],"294f363b":[()=>r.e(29679).then(r.bind(r,43919)),"@site/docs/glossary/race-condition.md",43919],"2982c202":[()=>r.e(97186).then(r.bind(r,58586)),"@site/docs/glossary/rainbow-table-attack.md",58586],"29d26d42":[()=>r.e(97419).then(r.bind(r,40661)),"@site/docs/GLEIF/2022-11-01_GLEIF-Identifier-GF-Prep-1.0-Publication_v0.6_work.md",40661],"2a1f4d42":[()=>r.e(92111).then(r.bind(r,80129)),"@site/docs/glossary/LLM.md",80129],"2a5f3042":[()=>r.e(59960).then(r.bind(r,73302)),"@site/docs/glossary/authority.md",73302],"2af24778":[()=>r.e(19973).then(r.bind(r,60942)),"@site/docs/glossary/jury.md",60942],"2b450bc6":[()=>r.e(78453).then(r.bind(r,44463)),"@site/docs/Resources/mdfiles/draft-pfeairheller-ptel.md",44463],"2b535fee":[()=>r.e(49675).then(r.bind(r,47927)),"@site/docs/glossary/DID.md",47927],"2c0a1410":[()=>r.e(51651).then(r.bind(r,92946)),"@site/docs/glossary/trust-domain.md",92946],"2c590bbf":[()=>r.e(51265).then(r.bind(r,55244)),"@site/src/pages/howtos/hwt_get-markdown-from-ToIP-wiki.md",55244],"2cc6237a":[()=>r.e(21069).then(r.bind(r,58074)),"@site/docs/glossary/validate.md",58074],"2d4cf4bf":[()=>r.e(81948).then(r.bind(r,53466)),"@site/docs/How we did/load-glossary-weboftrust-in-docusaurus.md",53466],"2e3b70a3":[()=>r.e(6220).then(r.bind(r,2692)),"@site/docs/glossary/rotation-authority.md",2692],"2e5324c7":[()=>r.e(31078).then(r.bind(r,10311)),"@site/docs/Resources/mdfiles/kli-demo-2022.md",10311],"2ef565b0":[()=>r.e(6512).then(r.bind(r,28938)),"@site/docs/glossary/APC.md",28938],"2efccfe3":[()=>r.e(42399).then(r.bind(r,72376)),"@site/docs/glossary/run-off-the-crud.md",72376],"2fd692c3":[()=>r.e(19492).then(r.bind(r,37982)),"@site/docs/glossary/ephemeral.md",37982],"3016549a":[()=>r.e(82636).then(r.bind(r,34835)),"@site/docs/glossary/schema-registry.md",34835],"30172d0d":[()=>r.e(22078).then(r.bind(r,96778)),"@site/docs/How we did/pull-in-markdown-documents.md",96778],"3089f7dd":[()=>r.e(40401).then(r.bind(r,78689)),"@site/docs/glossary/cryptographic-primitive.md",78689],"30b24ff6":[()=>r.e(47563).then(r.bind(r,14108)),"@site/docs/glossary/digital-signature.md",14108],"30c6b484":[()=>r.e(22267).then(r.bind(r,65777)),"@site/docs/glossary/self-certifying-identifier.md",65777],"311337a4":[()=>r.e(50404).then(r.bind(r,89122)),"@site/docs/glossary/post-pad.md",89122],"32163b2f":[()=>r.e(23048).then(r.bind(r,14343)),"@site/docs/glossary/transferable-identifier.md",14343],32534407:[()=>r.e(27889).then(r.bind(r,62558)),"@site/docs/glossary/ADC.md",62558],"32869b6d":[()=>r.e(48944).then(r.bind(r,57482)),"@site/docs/glossary/extensible-business-reporting-language.md",57482],"330848a5":[()=>r.e(1035).then(r.bind(r,54611)),"@site/docs/glossary/issuee.md",54611],"334c03d4":[()=>r.e(11743).then(r.bind(r,45841)),"@site/docs/glossary/clone.md",45841],"335c200f":[()=>r.e(68166).then(r.bind(r,40228)),"@site/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part1-KERI-Infrastructure-Prep-1.0-Publication_v0.6_work.md",40228],"342393e8":[()=>r.e(10596).then(r.bind(r,54062)),"@site/docs/glossary/multisig.md",54062],"34ed9d99":[()=>r.e(6639).then(r.bind(r,33564)),"@site/docs/glossary/UI.md",33564],"3646ad28":[()=>r.e(1041).then(r.bind(r,71826)),"@site/docs/glossary/version-code.md",71826],"366ad6c3":[()=>r.e(92911).then(r.bind(r,59047)),"@site/docs/glossary/hardware-security-module.md",59047],"36980b22":[()=>r.e(10885).then(r.bind(r,76708)),"@site/docs/How we did/markdown-from-WOT-wiki.md",76708],"36b4a6dc":[()=>r.e(95021).then(r.bind(r,66094)),"@site/docs/glossary/base64.md",66094],"36ece65e":[()=>r.e(4251).then(r.bind(r,63367)),"@site/src/pages/howtos/hwt_load-toip-glossary-in-weboftrust-github-page.md",63367],"3720c009":[()=>Promise.all([r.e(40532),r.e(13751)]).then(r.bind(r,9861)),"@theme/DocTagsListPage",9861],"37986ca4":[()=>r.e(73444).then(r.bind(r,87748)),"@site/docs/glossary/inquisitor.md",87748],"386980c0":[()=>r.e(59606).then(r.bind(r,70191)),"@site/docs/Resources/mdfiles/draft-ssmith-said.md",70191],"393be207":[()=>r.e(87414).then(r.bind(r,79286)),"@site/src/pages/markdown-page.md",79286],"3a0186bd":[()=>r.e(71542).then(r.bind(r,2174)),"@site/docs/glossary/QVI.md",2174],"3a05f751":[()=>r.e(27764).then(r.bind(r,67309)),"@site/docs/glossary/digest.md",67309],"3aedb555":[()=>r.e(91204).then(r.bind(r,3991)),"@site/docs/Visualisations/Backed-and-Backerless-Issuance-and-Revocation.mdx",3991],"3bab0844":[()=>r.e(19047).then(r.bind(r,57044)),"@site/docs/glossary/multicodec.md",57044],"3bbfb05b":[()=>r.e(27927).then(r.bind(r,65604)),"@site/docs/How we did/fill-out-terms-toip-wiki.md",65604],"3c64c55b":[()=>r.e(69534).then(r.bind(r,53458)),"@site/docs/Education/Q-and-A-Security.md",53458],"3c7f78f4":[()=>r.e(36814).then(r.bind(r,86201)),"@site/docs/glossary/custodial-agent.md",86201],"3ca862e8":[()=>r.e(73900).then(r.bind(r,91178)),"@site/docs/glossary/dual-text-binary-encoding-format.md",91178],"3cd10fca":[()=>r.e(42626).then(r.bind(r,73836)),"@site/docs/glossary/code-table.md",73836],"3cd744f5":[()=>r.e(29963).then(r.bind(r,51833)),"@site/docs/Concepts/concepts.md",51833],"3d427567":[()=>r.e(60033).then(r.bind(r,38345)),"@site/docs/glossary/CESR.md",38345],"3ee282d9":[()=>r.e(82488).then(r.bind(r,63287)),"@site/docs/glossary/selective-disclosure.md",63287],"3f7fc6ce":[()=>r.e(52422).then(r.bind(r,93557)),"@site/docs/glossary/composable-event-streaming-representation.md",93557],"3f8cb584":[()=>r.e(33588).then(r.bind(r,86497)),"@site/docs/Resources/intro.md",86497],"3f907dc7":[()=>r.e(10081).then(r.bind(r,47450)),"@site/docs/glossary/fully-expanded.md",47450],"3fb1a10e":[()=>r.e(93270).then(r.bind(r,99830)),"@site/docs/GLEIF/2022-12-06_appendix-1-non-disclosure-agreement_v1.0_final.md",99830],"3fc38a67":[()=>r.e(48315).then(r.bind(r,65494)),"@site/docs/glossary/cesride.md",65494],"3fd21f34":[()=>r.e(17180).then(r.bind(r,20519)),"@site/docs/glossary/partial-rotation.md",20519],"4072d841":[()=>r.e(6770).then(r.bind(r,10082)),"@site/docs/glossary/self-addressing-data.md",10082],"40b3677f":[()=>r.e(52114).then(r.bind(r,81290)),"@site/docs/Overview/overview-and-context.mdx",81290],"41022b6c":[()=>r.e(81338).then(r.bind(r,37777)),"@site/docs/glossary/verified-integrity.md",37777],"4189949e":[()=>r.e(94520).then(r.bind(r,28210)),"@site/docs/glossary/threshold-signature-scheme.md",28210],"420b1dc8":[()=>r.e(5542).then(r.bind(r,35190)),"@site/docs/glossary/authorization.md",35190],"420f31ee":[()=>r.e(84253).then(r.bind(r,8971)),"@site/docs/glossary/message.md",8971],"42dcc5cb":[()=>r.e(66777).then(r.bind(r,13878)),"@site/docs/glossary/most-compact.md",13878],"445b6888":[()=>r.e(82947).then(r.bind(r,77953)),"@site/docs/glossary/duplicitous-event-log.md",77953],"45a554ca":[()=>r.e(28253).then(r.bind(r,30703)),"@site/docs/glossary/signing-threshold.md",30703],"465cf9bc":[()=>r.e(57517).then(r.bind(r,84404)),"@site/docs/glossary/base-media-type.md",84404],"46d21c83":[()=>r.e(62126).then(r.bind(r,12726)),"@site/docs/GLEIF/2022-10-28_Qualified-vLEI-Issuer-vLEI-Identifer-Credential-GF-Prep-1.0-Publication_v0.9_work.md",12726],47087083:[()=>r.e(19589).then(r.bind(r,35629)),"@site/docs/glossary/key-transparency.md",35629],"47207f2f":[()=>r.e(19316).then(r.bind(r,3300)),"@site/docs/glossary/disclosee.md",3300],"474d49f2":[()=>r.e(35262).then(r.bind(r,74363)),"@site/docs/glossary/authorized-vlei-representative.md",74363],"47b334fd":[()=>r.e(28374).then(r.bind(r,65277)),"@site/docs/glossary/root-of-trust.md",65277],48130989:[()=>r.e(69061).then(r.bind(r,20312)),"@site/docs/glossary/lead-bytes.md",20312],"484fadef":[()=>r.e(12147).then(r.bind(r,33856)),"@site/docs/glossary/loci-of-control.md",33856],"493e5763":[()=>r.e(87899).then(r.bind(r,76778)),"@site/docs/glossary/domain.md",76778],"49585d54":[()=>r.e(66135).then(r.bind(r,15063)),"@site/docs/glossary/non-establishment-event.md",15063],"497fac6b":[()=>r.e(87441).then(r.bind(r,52540)),"@site/docs/glossary/partial-pre-rotation.md",52540],"49d6a199":[()=>r.e(74146).then(r.bind(r,27345)),"@site/docs/glossary/self-sovereignty.md",27345],"4a56dcd7":[()=>r.e(9436).then(r.bind(r,20083)),"@site/docs/glossary/integrity.md",20083],"4b6df341":[()=>r.e(46022).then(r.bind(r,86507)),"@site/docs/glossary/GPG.md",86507],"4c72923f":[()=>r.e(91838).then(r.bind(r,92116)),"@site/docs/Overview/Overview.mdx",92116],"4ced8a19":[()=>r.e(98919).then(r.bind(r,89708)),"@site/docs/How we did/check-and-accept-PR-production-Edusite-locally.md",89708],"4dc13f1c":[()=>r.e(31327).then(r.bind(r,77970)),"@site/docs/glossary/verifier.md",77970],"4e639d33":[()=>r.e(53828).then(r.bind(r,43610)),"@site/docs/glossary/keri-request-authentication-method.md",43610],"4fd5dbea":[()=>r.e(89966).then(r.bind(r,65584)),"@site/docs/glossary/pre-pad.md",65584],"502b8556":[()=>r.e(13573).then(r.bind(r,60740)),"@site/docs/glossary/prefix.md",60740],"50db0f34":[()=>r.e(39732).then(r.bind(r,56994)),"@site/docs/glossary/habery.md",56994],"5187bd0f":[()=>r.e(1732).then(r.bind(r,89819)),"@site/docs/glossary/persistent-data-structure.md",89819],"51dcbe0b":[()=>r.e(6391).then(r.bind(r,59037)),"@site/docs/glossary/best-available-data-acceptance-mechanism.md",59037],"53b9d910":[()=>r.e(83689).then(r.bind(r,40042)),"@site/docs/glossary/management-TEL.md",40042],"546c5333":[()=>r.e(46639).then(r.bind(r,23379)),"@site/docs/glossary/keria.md",23379],"5502abb2":[()=>r.e(62527).then(r.bind(r,47665)),"@site/docs/glossary/byzantine-agreement.md",47665],"559433b5":[()=>r.e(79153).then(r.bind(r,12519)),"@site/docs/glossary/chain-link-confidentiality.md",12519],"55960ee5":[()=>r.e(74121).then(r.t.bind(r,88070,19)),"~docs/default/tags-list-current-prop-15a.json",88070],"55e8dd2a":[()=>r.e(93659).then(r.bind(r,57963)),"@site/docs/glossary/binding.md",57963],"561ad9eb":[()=>r.e(42670).then(r.bind(r,1248)),"@site/docs/How we did/create-terms-link-table.md",1248],"564da572":[()=>r.e(1898).then(r.bind(r,68129)),"@site/docs/glossary/interoperability.md",68129],"56c5e612":[()=>r.e(18512).then(r.bind(r,48794)),"@site/docs/glossary/collective-signature.md",48794],"572975a1":[()=>r.e(77203).then(r.bind(r,88862)),"@site/docs/glossary/non-repudiable.md",88862],"577beade":[()=>r.e(45128).then(r.bind(r,33034)),"@site/docs/glossary/hierarchical-composition.md",33034],"57eefe50":[()=>r.e(20353).then(r.bind(r,97716)),"@site/docs/glossary/pipelining.md",97716],"5829032e":[()=>r.e(32370).then(r.bind(r,29232)),"@site/docs/glossary/key-compromise.md",29232],"582f1783":[()=>r.e(908).then(r.bind(r,48145)),"@site/docs/glossary/keri-suite.md",48145],"5937ddfc":[()=>r.e(4839).then(r.bind(r,11615)),"@site/docs/GLEIF/2022-11-23_Legal-Entity-Engagement-Context-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work.md",11615],"5a7096e8":[()=>r.e(61038).then(r.bind(r,8778)),"@site/docs/glossary/signed-digest.md",8778],"5b0fe278":[()=>r.e(56173).then(r.bind(r,2913)),"@site/docs/glossary/juror.md",2913],"5b3614ad":[()=>r.e(7438).then(r.bind(r,83382)),"@site/docs/Test/term_test2.md",83382],"5b53999e":[()=>r.e(75749).then(r.bind(r,45296)),"@site/docs/glossary/top-level-section.md",45296],"5c123f8a":[()=>r.e(36066).then(r.bind(r,48970)),"@site/docs/Resources/mdfiles/draft-pfeairheller-cesr-proof.md",48970],"5c67b5bc":[()=>r.e(44036).then(r.bind(r,18329)),"@site/docs/glossary/SKWA.md",18329],"5d1b013d":[()=>r.e(63013).then(r.bind(r,60391)),"@site/docs/glossary/pre-rotation.md",60391],"5d53189b":[()=>r.e(74003).then(r.bind(r,77216)),"@site/docs/glossary/IPEX.md",77216],"5d894c84":[()=>r.e(43031).then(r.bind(r,73158)),"@site/docs/glossary/BFT.md",73158],"5e372e8c":[()=>r.e(35867).then(r.bind(r,49113)),"@site/docs/glossary/service-endpoint.md",49113],"5e662fee":[()=>r.e(45957).then(r.bind(r,7116)),"@site/docs/glossary/fully-compact.md",7116],"5e9f5e1a":[()=>Promise.resolve().then(r.bind(r,36809)),"@generated/docusaurus.config",36809],"5f1e5dc1":[()=>r.e(14951).then(r.bind(r,12533)),"@site/docs/glossary/transaction-event-log.md",12533],"60d04f5e":[()=>r.e(82295).then(r.bind(r,29963)),"@site/docs/glossary/transferable.md",29963],"60f89e6b":[()=>r.e(67604).then(r.bind(r,80162)),"@site/docs/How we did/why-terms-wot-manage-structure.md",80162],"60fab43b":[()=>r.e(7541).then(r.bind(r,83646)),"@site/docs/glossary/self-framing.md",83646],"611e9471":[()=>r.e(62456).then(r.bind(r,7463)),"@site/docs/glossary/collision.md",7463],"613ea333":[()=>r.e(99234).then(r.bind(r,39912)),"@site/docs/glossary/sub-shell.md",39912],"61b86430":[()=>r.e(42708).then(r.bind(r,53217)),"@site/docs/glossary/vlei-role-credential.md",53217],"61ba3101":[()=>r.e(14216).then(r.bind(r,44255)),"@site/docs/CarbonCopies/WebOfTrust-ietf-acdc-main-draft-ssmith-acdc.md",44255],"62500be4":[()=>r.e(49231).then(r.bind(r,26608)),"@site/docs/glossary/graduated-disclosure.md",26608],"63fd4445":[()=>r.e(24659).then(r.bind(r,82278)),"@site/docs/glossary/presentation-exchange.md",82278],64321696:[()=>r.e(31654).then(r.bind(r,13038)),"@site/docs/glossary/public-key-infrastructure.md",13038],"6558a26d":[()=>r.e(67225).then(r.bind(r,64306)),"@site/docs/glossary/agency.md",64306],"658b57cb":[()=>r.e(21431).then(r.bind(r,42468)),"@site/docs/glossary/chain-of-custody.md",42468],"65ce40b2":[()=>r.e(90649).then(r.bind(r,94932)),"@site/docs/glossary/authentic-chained-data-container.md",94932],"6615e888":[()=>r.e(53664).then(r.bind(r,93695)),"@site/docs/glossary/keridemlia.md",93695],"66e4a015":[()=>r.e(67644).then(r.bind(r,42067)),"@site/docs/glossary/HSM.md",42067],"66f63dcf":[()=>r.e(12740).then(r.bind(r,42230)),"@site/docs/glossary/interaction-event.md",42230],"673ba540":[()=>r.e(89583).then(r.bind(r,67937)),"@site/docs/glossary/KERL.md",67937],"6749ba23":[()=>r.e(80154).then(r.bind(r,53559)),"@site/docs/glossary/parside.md",53559],"67e398da":[()=>r.e(41081).then(r.bind(r,88330)),"@site/docs/glossary/GLEIS.md",88330],68441256:[()=>r.e(90596).then(r.bind(r,59527)),"@site/docs/glossary/verifiable-data-structure.md",59527],"696273c9":[()=>r.e(70261).then(r.bind(r,30881)),"@site/docs/glossary/content-addressable-hash.md",30881],"6b0301b3":[()=>r.e(32113).then(r.bind(r,95302)),"@site/docs/glossary/data-anchor.md",95302],"6b38df34":[()=>r.e(35361).then(r.bind(r,15500)),"@site/docs/glossary/blinded-revocation-registry.md",15500],"6bc71a8d":[()=>r.e(66176).then(r.bind(r,54257)),"@site/docs/glossary/ghost-credential.md",54257],"6c04d2ac":[()=>r.e(18654).then(r.bind(r,32214)),"@site/docs/Test/term_test.md",32214],"6c0f37b0":[()=>r.e(32997).then(r.bind(r,18905)),"@site/docs/glossary/authoritative.md",18905],"6c5567d5":[()=>r.e(46181).then(r.bind(r,79437)),"@site/docs/glossary/key-event-receipt-infrastructure.md",79437],"6c9888cf":[()=>r.e(89346).then(r.bind(r,78722)),"@site/docs/glossary/end-verifiable.md",78722],"6d903a37":[()=>r.e(13806).then(r.bind(r,17730)),"@site/docs/glossary/SATP.md",17730],"6eb300ee":[()=>r.e(80459).then(r.bind(r,97118)),"@site/docs/glossary/blind-oobi.md",97118],"71564f1b":[()=>r.e(74670).then(r.bind(r,10528)),"@site/docs/glossary/establishment-event.md",10528],"72b04865":[()=>r.e(57123).then(r.bind(r,89676)),"@site/docs/glossary/SCID.md",89676],"7338d3f4":[()=>r.e(18962).then(r.bind(r,43100)),"@site/docs/glossary/identity.md",43100],"73ab0029":[()=>r.e(97519).then(r.bind(r,72802)),"@site/docs/glossary/non-fungible-token.md",72802],"73c44af8":[()=>r.e(27978).then(r.bind(r,28707)),"@site/docs/glossary/witness.md",28707],74022514:[()=>r.e(46960).then(r.bind(r,14448)),"@site/docs/glossary/foreign-function-interface.md",14448],"7556ec36":[()=>r.e(5635).then(r.bind(r,48691)),"@site/docs/glossary/application-programming-interface.md",48691],"75e1a6c8":[()=>r.e(42445).then(r.bind(r,94012)),"@site/docs/GLEIF/2022-12-01_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part 3-vLEI-Credential-Schema-Registry-Prep-1.0-Publication_v0.1_work.md",94012],77744081:[()=>r.e(53045).then(r.bind(r,38841)),"@site/docs/glossary/derivation-code.md",38841],"7799658b":[()=>r.e(40457).then(r.bind(r,54684)),"@site/docs/glossary/DEL.md",54684],"77bf323d":[()=>r.e(65814).then(r.bind(r,8235)),"@site/docs/glossary/user-interface.md",8235],"7841cc26":[()=>r.e(34907).then(r.bind(r,77876)),"@site/docs/glossary/composable.md",77876],"78cc1aa3":[()=>r.e(19021).then(r.bind(r,24304)),"@site/docs/glossary/claim.md",24304],"798b955f":[()=>r.e(9531).then(r.bind(r,93481)),"@site/docs/glossary/cryptographic-strength.md",93481],"7a1c9b6c":[()=>r.e(78431).then(r.bind(r,93612)),"@site/docs/glossary/concise-binary-object-representation-(CBOR).md",93612],"7a3b3520":[()=>r.e(6784).then(r.bind(r,37554)),"@site/docs/glossary/cold-start-stream-parsing.md",37554],"7aade137":[()=>r.e(14033).then(r.bind(r,10176)),"@site/docs/glossary/SAD.md",10176],"7b0a4ff3":[()=>r.e(22723).then(r.bind(r,55364)),"@site/docs/glossary/engagement-context-role.md",55364],"7b68235a":[()=>r.e(42638).then(r.bind(r,56580)),"@site/docs/glossary/pseudo-random-number.md",56580],"7bb7e01b":[()=>r.e(31552).then(r.bind(r,84973)),"@site/docs/glossary/non-transferable-identifier.md",84973],"7d5df8c5":[()=>r.e(72465).then(r.bind(r,543)),"@site/docs/glossary/non-transferable.md",543],"7e0647a3":[()=>r.e(77082).then(r.bind(r,746)),"@site/docs/glossary/KRAM.md",746],"7ee7aa1f":[()=>r.e(39430).then(r.bind(r,65621)),"@site/docs/glossary/strip-parameter.md",65621],"7f0537a6":[()=>r.e(21093).then(r.bind(r,93229)),"@site/docs/glossary/KID.md",93229],"7f59207f":[()=>r.e(37447).then(r.bind(r,66993)),"@site/docs/How we did/typesense-search-install-config.md",66993],"7f7b0db0":[()=>r.e(33264).then(r.bind(r,71417)),"@site/docs/glossary/JSON.md",71417],"7ff3bba4":[()=>r.e(61664).then(r.bind(r,41941)),"@site/docs/glossary/dual-indexed-codes.md",41941],"815d7184":[()=>r.e(11006).then(r.bind(r,19719)),"@site/docs/glossary/keystore.md",19719],"8240955f":[()=>r.e(11636).then(r.bind(r,43766)),"@site/docs/How we did/embed-github-hosted-image-in-github-wiki-page.md",43766],"827627ba":[()=>r.e(25396).then(r.bind(r,35451)),"@site/docs/glossary/autonomic-computing-systems.md",35451],"831114bc":[()=>r.e(95318).then(r.bind(r,90713)),"@site/docs/glossary/configuration-files.md",90713],83504237:[()=>r.e(31684).then(r.bind(r,30606)),"@site/docs/glossary/secondary-root-of-trust.md",30606],"83d459b5":[()=>r.e(33637).then(r.bind(r,3445)),"@site/docs/glossary/redundant-credential.md",3445],"86537e32":[()=>r.e(6718).then(r.bind(r,28842)),"@site/docs/Resources/mdfiles/draft-ssmith-oobi.md",28842],"8696adc1":[()=>r.e(65083).then(r.bind(r,40381)),"@site/docs/glossary/levels-of-assurance.md",40381],"882f7d91":[()=>r.e(68408).then(r.bind(r,79859)),"@site/docs/glossary/verfer.md",79859],"88360ba4":[()=>r.e(71852).then(r.bind(r,74517)),"@site/docs/glossary/TOAD.md",74517],"8845400e":[()=>r.e(57723).then(r.bind(r,7071)),"@site/docs/glossary/self-addressing-identifier.md",7071],"88b72b4f":[()=>r.e(83209).then(r.bind(r,40056)),"@site/docs/glossary/cloud-agent.md",40056],"88f3dafa":[()=>r.e(47041).then(r.bind(r,23175)),"@site/docs/glossary/official-organizational-role.md",23175],89406371:[()=>r.e(50698).then(r.bind(r,74292)),"@site/docs/glossary/self-sovereign-identity.md",74292],"8963dd2b":[()=>r.e(46420).then(r.bind(r,33137)),"@site/docs/glossary/vlei-ecosystem-governance-framework.md",33137],"89b21277":[()=>r.e(2981).then(r.bind(r,75033)),"@site/docs/glossary/legal-entity-official-organizational-role-vlei-credential-governance-framework.md",75033],"8a4f6fa4":[()=>r.e(24006).then(r.bind(r,18671)),"@site/docs/glossary/peer-to-peer.md",18671],"8a595d52":[()=>r.e(73059).then(r.bind(r,6940)),"@site/docs/glossary/secure-attribution.md",6940],"8ab16b0b":[()=>r.e(35794).then(r.bind(r,60735)),"@site/docs/glossary/eclipse-attack.md",60735],"8c03d449":[()=>r.e(73534).then(r.bind(r,5595)),"@site/docs/glossary/internet-assigned-numbers-authority.md",5595],"8c0f399b":[()=>r.e(182).then(r.bind(r,52246)),"@site/docs/glossary/signify-keria-request-authentication-protocol.md",52246],"8cd14b5a":[()=>r.e(12720).then(r.bind(r,28562)),"@site/docs/glossary/group-code.md",28562],"8d0dab62":[()=>r.e(673).then(r.bind(r,95807)),"@site/docs/glossary/qualified-vlei-issuer-vlei-credential-governance-framework.md",95807],"8dc99c18":[()=>r.e(26098).then(r.bind(r,452)),"@site/docs/glossary/designated-authorized-representative.md",452],"8e059d16":[()=>r.e(70598).then(r.t.bind(r,15745,19)),"/home/runner/work/WOT-terms/WOT-terms/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],"8f3905c2":[()=>r.e(52023).then(r.bind(r,89991)),"@site/docs/glossary/inception-event.md",89991],"90481d91":[()=>r.e(48449).then(r.bind(r,60959)),"@site/docs/How we did/homepage-text-altering.md",60959],"908a033f":[()=>r.e(43889).then(r.bind(r,28697)),"@site/docs/glossary/backer.md",28697],"909bf51f":[()=>r.e(72655).then(r.bind(r,99904)),"@site/docs/glossary/DKMI.md",99904],"90c08010":[()=>r.e(20866).then(r.bind(r,24553)),"@site/docs/glossary/identifier.md",24553],"90d86a86":[()=>r.e(63372).then(r.bind(r,61057)),"@site/docs/glossary/ip-address.md",61057],"90dacfd5":[()=>r.e(61503).then(r.bind(r,55575)),"@site/docs/glossary/issuance-and-presentation-exchange-protocol.md",55575],"90df23b0":[()=>r.e(13366).then(r.bind(r,44609)),"@site/docs/glossary/QAR.md",44609],"914f7b8b":[()=>r.e(60880).then(r.bind(r,28378)),"@site/docs/glossary/certificate-transparency.md",28378],"91a863a6":[()=>r.e(72565).then(r.bind(r,96955)),"@site/docs/glossary/dead-drop.md",96955],"933d4667":[()=>r.e(84974).then(r.bind(r,75523)),"@site/docs/glossary/persistent-identifier.md",75523],"935f2afb":[()=>r.e(80053).then(r.t.bind(r,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"940d9207":[()=>r.e(51575).then(r.bind(r,72357)),"@site/docs/glossary/AID.md",72357],"94b8847b":[()=>r.e(34074).then(r.bind(r,29165)),"@site/docs/glossary/KERISSE.md",29165],"951dc534":[()=>r.e(95754).then(r.bind(r,66294)),"@site/docs/glossary/non-normative.md",66294],"9572abc1":[()=>r.e(52593).then(r.bind(r,57898)),"@site/docs/glossary/autonomic-namespace.md",57898],"966c7f00":[()=>r.e(58368).then(r.bind(r,48795)),"@site/docs/glossary/graph-fragment.md",48795],"9687fe00":[()=>r.e(71346).then(r.bind(r,63310)),"@site/docs/glossary/signing-authority.md",63310],"96f79eec":[()=>r.e(10183).then(r.bind(r,82848)),"@site/docs/glossary/validator.md",82848],"971a425b":[()=>r.e(41034).then(r.bind(r,55787)),"@site/docs/glossary/LoC.md",55787],"991ab59e":[()=>r.e(65852).then(r.bind(r,32331)),"@site/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part2-vLEI-Credentials_v0.3_work.md",32331],"998e6131":[()=>r.e(53648).then(r.bind(r,55921)),"@site/docs/Education/Q-and-A.md",55921],"9aaafc00":[()=>r.e(47206).then(r.bind(r,4374)),"@site/docs/glossary/PGP.md",4374],"9c39b83e":[()=>r.e(68254).then(r.bind(r,70084)),"@site/docs/glossary/out-of-band-introduction.md",70084],"9c5eefb1":[()=>r.e(85379).then(r.bind(r,58926)),"@site/docs/glossary/rotation-event.md",58926],"9c855f80":[()=>r.e(59463).then(r.bind(r,66718)),"@site/docs/glossary/cesr-proof-signatures.md",66718],"9ca9c4b7":[()=>r.e(43667).then(r.bind(r,56979)),"@site/docs/glossary/internal-inconsistency.md",56979],"9d5b23ae":[()=>r.e(20853).then(r.bind(r,48499)),"@site/docs/glossary/cigar.md",48499],"9d8e24c2":[()=>r.e(65928).then(r.bind(r,36714)),"@site/docs/glossary/spanning-layer.md",36714],"9da4236c":[()=>r.e(49684).then(r.bind(r,9878)),"@site/docs/Resources/mdfiles/draft-pfeairheller-did-keri.md",9878],"9db05fbf":[()=>r.e(36624).then(r.bind(r,3648)),"@site/docs/glossary/vLEI.md",3648],"9de4ab82":[()=>r.e(68694).then(r.t.bind(r,66808,19)),"~docs/default/tag-wot-terms-docs-tags-keri-1bc.json",66808],"9e5a4102":[()=>r.e(16412).then(r.bind(r,10841)),"@site/docs/glossary/hierchical-deterministic-keys.md",10841],"9e5e696a":[()=>r.e(65019).then(r.bind(r,84162)),"@site/src/pages/feedback.md",84162],"9ece3ff0":[()=>r.e(14783).then(r.bind(r,34648)),"@site/docs/How we did/Docusaurus-process.md",34648],"9f3ee1d1":[()=>r.e(88185).then(r.bind(r,96237)),"@site/docs/glossary/text-binary-concatenation-composability.md",96237],"9f5db377":[()=>r.e(4500).then(r.bind(r,17086)),"@site/docs/glossary/web-of-trust.md",17086],"9feb423e":[()=>r.e(83956).then(r.bind(r,95089)),"@site/docs/CarbonCopies/WebOfTrust-keria-main-docs-protocol.md",95089],a08ceb64:[()=>r.e(53197).then(r.bind(r,78764)),"@site/docs/How we did/sync-agenda-to-production-via-local.md",78764],a0db344b:[()=>r.e(41016).then(r.bind(r,13270)),"@site/docs/glossary/protocol.md",13270],a1167dea:[()=>r.e(76409).then(r.bind(r,96226)),"@site/docs/glossary/contingent-disclosure.md",96226],a11773df:[()=>r.e(44543).then(r.bind(r,92046)),"@site/docs/glossary/verifiable-credential.md",92046],a1337c4a:[()=>r.e(58494).then(r.bind(r,11696)),"@site/docs/glossary/autonomic-identity-system.md",11696],a1506331:[()=>r.e(75306).then(r.t.bind(r,83769,19)),"/home/runner/work/WOT-terms/WOT-terms/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],a2583be0:[()=>r.e(54450).then(r.bind(r,79324)),"@site/docs/glossary/percolated-information-discovery.md",79324],a2e45939:[()=>r.e(61474).then(r.bind(r,19823)),"@site/src/pages/howtos/hwt_why-terms-wot-manage-structure.md",19823],a351c790:[()=>r.e(27519).then(r.bind(r,98482)),"@site/docs/glossary/normative.md",98482],a37f8126:[()=>r.e(94947).then(r.bind(r,8970)),"@site/docs/glossary/decentralized-identity.md",8970],a4154e87:[()=>r.e(1433).then(r.bind(r,9746)),"@site/docs/Resources/mdfiles/draft-ssmith-ipex.md",9746],a4a702cb:[()=>r.e(45201).then(r.bind(r,64262)),"@site/docs/glossary/transfer-off-ledger.md",64262],a4b38184:[()=>r.e(10269).then(r.bind(r,76036)),"@site/docs/glossary/compact-variant.md",76036],a547373d:[()=>r.e(2364).then(r.bind(r,21807)),"@site/docs/glossary/escrow-state.md",21807],a556ac09:[()=>r.e(9902).then(r.bind(r,76462)),"@site/docs/glossary/signify.md",76462],a57795a4:[()=>r.e(28529).then(r.bind(r,81711)),"@site/docs/glossary/DAR.md",81711],a5902912:[()=>r.e(74929).then(r.bind(r,27001)),"@site/docs/glossary/issuance-event.md",27001],a60d24e2:[()=>r.e(61112).then(r.bind(r,4380)),"@site/docs/glossary/qualified-vlei-issuer.md",4380],a6dc44ed:[()=>r.e(4927).then(r.bind(r,75559)),"@site/docs/glossary/byzantine-fault-tolerance.md",75559],a6ea538b:[()=>r.e(5036).then(r.bind(r,75986)),"@site/docs/Resources/mdfiles/draft-ssmith-cesr.md",75986],a72cfd06:[()=>r.e(61742).then(r.bind(r,26363)),"@site/docs/glossary/delegated-identifier.md",26363],a7374c5c:[()=>r.e(3073).then(r.bind(r,67205)),"@site/docs/Resources/mdfiles/draft-ssmith-acdc.md",67205],a75f7a3b:[()=>r.e(733).then(r.bind(r,76461)),"@site/docs/glossary/distributed-hash-table.md",76461],a780a38a:[()=>r.e(7615).then(r.bind(r,99175)),"@site/docs/GLEIF/2022-12-06_appendix-3-vlei-issuer-qualification-program-checklist_v1.0_final.md",99175],a8130ff7:[()=>r.e(2200).then(r.bind(r,36969)),"@site/docs/glossary/large-language-model.md",36969],a89b16a3:[()=>r.e(49385).then(r.bind(r,84975)),"@site/docs/glossary/credential.md",84975],a8f32fc9:[()=>r.e(5416).then(r.bind(r,57129)),"@site/docs/glossary/key-stretching.md",57129],aa6a6532:[()=>r.e(48884).then(r.bind(r,62498)),"@site/docs/glossary/pii.md",62498],aaa6db73:[()=>r.e(83968).then(r.bind(r,91132)),"@site/docs/glossary/tcp-endpoint.md",91132],aaec3750:[()=>r.e(69205).then(r.bind(r,31135)),"@site/docs/glossary/ricardian-contract.md",31135],ab0b4bf9:[()=>r.e(74624).then(r.bind(r,43056)),"@site/docs/glossary/seal.md",43056],ac12a026:[()=>r.e(86063).then(r.bind(r,41585)),"@site/docs/glossary/cryptographic-commitment-scheme.md",41585],acd47d8e:[()=>r.e(23053).then(r.bind(r,24703)),"@site/docs/glossary/count-code.md",24703],afa70125:[()=>r.e(80612).then(r.bind(r,11877)),"@site/docs/glossary/proof-of-authority.md",11877],afd61ad9:[()=>r.e(41103).then(r.bind(r,87261)),"@site/docs/glossary/group-framing-code.md",87261],b047e34d:[()=>r.e(20766).then(r.bind(r,13521)),"@site/docs/glossary/OOBI.md",13521],b12bbaa7:[()=>r.e(99648).then(r.bind(r,13585)),"@site/docs/glossary/key-event-receipt.md",13585],b131bbd8:[()=>r.e(78116).then(r.bind(r,55293)),"@site/docs/glossary/single-signature-identifier.md",55293],b13690fa:[()=>r.e(49501).then(r.bind(r,79805)),"@site/docs/glossary/key-event-message.md",79805],b13d3125:[()=>r.e(16022).then(r.bind(r,42848)),"@site/docs/glossary/qualified.md",42848],b14e713e:[()=>r.e(5364).then(r.bind(r,88031)),"@site/docs/glossary/entity.md",88031],b3070c22:[()=>r.e(49350).then(r.bind(r,92385)),"@site/docs/GLEIF/2022-12-06_appendix-4-vlei-issuer-contact-details_v1.0_final.md",92385],b332d451:[()=>r.e(85387).then(r.bind(r,31496)),"@site/docs/glossary/one-way-functions.md",31496],b52bb426:[()=>r.e(5916).then(r.bind(r,22418)),"@site/docs/glossary/legal-entity-engagement-context-role-vlei-credential-governance-framework.md",22418],b5343075:[()=>r.e(98723).then(r.bind(r,89471)),"@site/docs/glossary/bespoke-credential.md",89471],b5e12ffa:[()=>r.e(12489).then(r.bind(r,53103)),"@site/docs/glossary/GLEIF.md",53103],b5fa831d:[()=>r.e(43961).then(r.bind(r,94962)),"@site/docs/glossary/diger.md",94962],b62d0b6b:[()=>r.e(23100).then(r.bind(r,67226)),"@site/docs/glossary/ssi-system.md",67226],b63e2c33:[()=>r.e(97773).then(r.bind(r,73682)),"@site/docs/glossary/virtual-credential-transaction-event-log.md",73682],b663b94a:[()=>r.e(17885).then(r.bind(r,79556)),"@site/docs/glossary/partial-disclosure.md",79556],b6cdcf6d:[()=>r.e(59562).then(r.bind(r,18868)),"@site/docs/glossary/CT.md",18868],b70befec:[()=>r.e(29273).then(r.bind(r,42167)),"@site/docs/Resources/mdfiles/IdentifierTheory-ssmith-uidt.md",42167],b7590431:[()=>r.e(23433).then(r.bind(r,71868)),"@site/docs/glossary/VC-TEL.md",71868],b75b0be4:[()=>r.e(94253).then(r.bind(r,6330)),"@site/docs/glossary/keri-command-line-interface.md",6330],b79b61ef:[()=>r.e(89764).then(r.bind(r,90618)),"@site/docs/Education/KERI-Mooc.md",90618],b857881b:[()=>r.e(7979).then(r.bind(r,29883)),"@site/docs/glossary/composability.md",29883],b8a72376:[()=>r.e(13708).then(r.bind(r,84038)),"@site/src/pages/howtos/hwt_pull-in-markdown-documents.md",84038],b8c2275d:[()=>r.e(44340).then(r.bind(r,97672)),"@site/docs/glossary/kli.md",97672],b9406ba5:[()=>r.e(51758).then(r.bind(r,69750)),"@site/docs/GLEIF/2022-02-07_verifiable-LEI-(vLEI)-Ecosystem-Information-Trust-Policies-Prep-1.0-Publication_v0.1_work.md",69750],ba18cf87:[()=>r.e(61010).then(r.bind(r,83851)),"@site/docs/glossary/messagepack.md",83851],bb0f6198:[()=>r.e(11229).then(r.bind(r,69486)),"@site/docs/glossary/multiplexing.md",69486],bbb02852:[()=>r.e(53546).then(r.bind(r,86273)),"@site/docs/glossary/locked-state.md",86273],bc70f06a:[()=>r.e(13445).then(r.bind(r,97820)),"@site/docs/glossary/simple-keri-for-web-auth.md",97820],bc8a70d8:[()=>r.e(88813).then(r.bind(r,10936)),"@site/docs/glossary/rot.md",10936],bcfab88b:[()=>r.e(92353).then(r.bind(r,4981)),"@site/docs/glossary/passcode.md",4981],bd68d240:[()=>r.e(35112).then(r.bind(r,95884)),"@site/docs/Test/term_test3.md",95884],bd930b50:[()=>r.e(50354).then(r.bind(r,24882)),"@site/docs/glossary/URL.md",24882],bdb0bea6:[()=>r.e(80677).then(r.bind(r,11556)),"@site/docs/glossary/seed.md",11556],be2cba3d:[()=>r.e(80636).then(r.bind(r,42783)),"@site/docs/glossary/coroutines.md",42783],be640b2d:[()=>r.e(6515).then(r.bind(r,28022)),"@site/docs/glossary/ambient-verifiability.md",28022],bef20919:[()=>r.e(90404).then(r.bind(r,69268)),"@site/docs/glossary/public-verifiable-credential-registry.md",69268],bf00eb08:[()=>r.e(78970).then(r.bind(r,56118)),"@site/docs/glossary/salt.md",56118],bf2fc87c:[()=>r.e(97344).then(r.bind(r,64317)),"@site/docs/glossary/ixn.md",64317],bf3bcdad:[()=>r.e(80098).then(r.bind(r,77966)),"@site/docs/GLEIF/2022-12-16_Legal-Entity-QVI-AUTH-vLEI-Credential-Governance-Framework_v1.0_final.md",77966],bf518b1b:[()=>r.e(87992).then(r.bind(r,16956)),"@site/docs/glossary/transmission-control-protocol.md",16956],c030f449:[()=>r.e(90650).then(r.bind(r,94580)),"@site/docs/glossary/replay-attack.md",94580],c046cc11:[()=>r.e(51057).then(r.bind(r,32387)),"@site/docs/glossary/legal-entity-vlei-credential-governance-framework.md",32387],c060df57:[()=>r.e(96314).then(r.bind(r,17616)),"@site/docs/glossary/VC.md",17616],c1047b19:[()=>r.e(41592).then(r.bind(r,75854)),"@site/docs/glossary/nested-cooperative-delegated-identifiers.md",75854],c171c0ef:[()=>r.e(4400).then(r.bind(r,27284)),"@site/docs/glossary/full-disclosure.md",27284],c220fb30:[()=>r.e(71483).then(r.bind(r,21233)),"@site/docs/glossary/ECR.md",21233],c2833ed7:[()=>r.e(36850).then(r.bind(r,88585)),"@site/docs/glossary/easyCLA_trick.md",88585],c2965aa0:[()=>r.e(99534).then(r.bind(r,41497)),"@site/docs/glossary/VDS.md",41497],c2ef628d:[()=>r.e(43424).then(r.bind(r,26300)),"@site/docs/glossary/trans-contextual-value.md",26300],c3270fd1:[()=>r.e(48808).then(r.bind(r,42718)),"@site/docs/glossary/I-O.md",42718],c472f9f6:[()=>r.e(12498).then(r.bind(r,73394)),"@site/docs/glossary/hio.md",73394],c4f5d8e4:[()=>Promise.all([r.e(40532),r.e(64195)]).then(r.bind(r,53261)),"@site/src/pages/index.js",53261],c50a74d9:[()=>r.e(27327).then(r.bind(r,81168)),"@site/docs/glossary/ACDC.md",81168],c5106d2c:[()=>r.e(61352).then(r.bind(r,98131)),"@site/docs/glossary/judge.md",98131],c5567c11:[()=>r.e(31608).then(r.bind(r,18241)),"@site/docs/glossary/reserve-rotation.md",18241],c573fde8:[()=>r.e(498).then(r.bind(r,34586)),"@site/docs/glossary/public-transaction-event-log.md",34586],c597f507:[()=>r.e(35972).then(r.bind(r,96466)),"@site/docs/glossary/salter.md",96466],c5c52f91:[()=>r.e(21575).then(r.bind(r,38866)),"@site/docs/GLEIF/2022-11-22_Legal-Entity-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work.md",38866],c70bf97a:[()=>r.e(74794).then(r.bind(r,25670)),"@site/docs/glossary/code-table-selector.md",25670],c75226a7:[()=>r.e(64712).then(r.bind(r,32057)),"@site/docs/glossary/consensus-mechanism.md",32057],c7e85b1d:[()=>r.e(76103).then(r.bind(r,69163)),"@site/docs/glossary/registrar.md",69163],c828f314:[()=>r.e(93010).then(r.bind(r,69537)),"@site/docs/glossary/authentic-web.md",69537],c8f82bf7:[()=>r.e(13318).then(r.bind(r,68980)),"@site/docs/glossary/pad.md",68980],c9984fdc:[()=>r.e(53070).then(r.bind(r,70662)),"@site/docs/glossary/watcher.md",70662],c9e020c7:[()=>r.e(56716).then(r.bind(r,66407)),"@site/docs/glossary/cryptonym.md",66407],c9e0c259:[()=>r.e(65721).then(r.bind(r,31945)),"@site/docs/glossary/hierarchical-asynchronous-coroutines-and-input-output.md",31945],ca85c03a:[()=>r.e(34059).then(r.bind(r,82308)),"@site/docs/glossary/escrow.md",82308],cb8c5255:[()=>r.e(55611).then(r.bind(r,11943)),"@site/docs/How we did/label-content-and-alert-changes.md",11943],cbe53e5d:[()=>r.e(53731).then(r.bind(r,69101)),"@site/docs/glossary/field-map.md",69101],cbfd1263:[()=>r.e(85151).then(r.bind(r,49229)),"@site/docs/glossary/signer.md",49229],cee6e67f:[()=>r.e(8434).then(r.bind(r,62883)),"@site/docs/glossary/frame-code.md",62883],cf022f13:[()=>r.e(15066).then(r.bind(r,62100)),"@site/docs/glossary/LoA.md",62100],cfdbda70:[()=>r.e(42458).then(r.bind(r,71683)),"@site/docs/glossary/unsolicited-issuance.md",71683],d0d76022:[()=>r.e(28591).then(r.bind(r,65462)),"@site/docs/glossary/issuance-exchange.md",65462],d11cfc2e:[()=>r.e(67071).then(r.bind(r,67563)),"@site/docs/GLEIF/2022-11-23_Legal-Entity-Official-Organizational-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work.md",67563],d1549857:[()=>r.e(3699).then(r.bind(r,22986)),"@site/docs/glossary/CSPRNG.md",22986],d1ceb8f6:[()=>r.e(19712).then(r.bind(r,37244)),"@site/docs/glossary/LEI.md",37244],d1ddf3f0:[()=>r.e(26721).then(r.bind(r,40376)),"@site/docs/glossary/pretty-good-privacy.md",40376],d2a43511:[()=>r.e(65082).then(r.bind(r,60326)),"@site/docs/glossary/payload.md",60326],d2de1320:[()=>r.e(25851).then(r.bind(r,64773)),"@site/docs/glossary/FFI.md",64773],d35d673b:[()=>r.e(55214).then(r.bind(r,37479)),"@site/docs/glossary/KAACE.md",37479],d519e438:[()=>r.e(32204).then(r.bind(r,80658)),"@site/docs/glossary/liveness.md",80658],d559a199:[()=>r.e(62001).then(r.bind(r,19802)),"@site/docs/Visualisations/KERI-&-ACDC-Architecture.md",19802],d58e2086:[()=>r.e(48600).then(r.bind(r,33783)),"@site/docs/GLEIF/2022-02-07_vlei-q-a_v1.1-final.md",33783],d59454ec:[()=>r.e(63812).then(r.bind(r,83835)),"@site/docs/glossary/authentic-provenance-chain.md",83835],d5d487d5:[()=>r.e(27544).then(r.bind(r,34973)),"@site/docs/glossary/secure-asset-transfer-protocol.md",34973],d7f91631:[()=>r.e(28084).then(r.bind(r,99878)),"@site/docs/glossary/SSI.md",99878],d85e89b7:[()=>r.e(35685).then(r.bind(r,71257)),"@site/docs/glossary/delegation.md",71257],d9dc5495:[()=>r.e(45909).then(r.bind(r,22475)),"@site/docs/glossary/vlei-credential.md",22475],dacadc3f:[()=>r.e(13399).then(r.bind(r,25724)),"@site/docs/glossary/domain-name.md",25724],db0551db:[()=>r.e(42737).then(r.bind(r,51603)),"@site/docs/glossary/first-seen.md",51603],dbc51b85:[()=>r.e(61610).then(r.bind(r,73696)),"@site/docs/glossary/issuer.md",73696],dc30dfed:[()=>r.e(32065).then(r.bind(r,2979)),"@site/docs/Concepts/keri-dev-env.md",2979],dd179767:[()=>r.e(33088).then(r.bind(r,92794)),"@site/docs/glossary/key-event-log.md",92794],dd1af8dc:[()=>r.e(51035).then(r.bind(r,52920)),"@site/docs/glossary/secure-private-authentic-confidentiality.md",52920],dd545ffe:[()=>r.e(47174).then(r.bind(r,24569)),"@site/docs/glossary/veracity.md",24569],de645df0:[()=>r.e(4733).then(r.bind(r,87659)),"@site/docs/glossary/version.md",87659],de6c806d:[()=>r.e(11479).then(r.bind(r,21146)),"@site/docs/glossary/cryptocurrency.md",21146],df14773d:[()=>r.e(19141).then(r.bind(r,9748)),"@site/docs/glossary/owner.md",9748],df203c0f:[()=>r.e(99924).then(r.bind(r,97068)),"@theme/DocTagDocListPage",97068],df2063f0:[()=>r.e(10199).then(r.bind(r,6789)),"@site/docs/glossary/BADA.md",6789],df40eb25:[()=>r.e(74057).then(r.bind(r,50922)),"@site/docs/glossary/DAG.md",50922],df6a1b07:[()=>r.e(74546).then(r.bind(r,70557)),"@site/docs/Resources/mdfiles/draft-ssmith-keri.md",70557],e014fb53:[()=>r.e(34102).then(r.bind(r,41051)),"@site/docs/glossary/authentic-data-container.md",41051],e032ca2e:[()=>r.e(34968).then(r.bind(r,55340)),"@site/docs/glossary/OOR.md",55340],e164ed30:[()=>r.e(62263).then(r.bind(r,56795)),"@site/docs/glossary/SPAC.md",56795],e2b85680:[()=>r.e(18310).then(r.bind(r,55635)),"@site/docs/glossary/P2P.md",55635],e3333e95:[()=>r.e(45251).then(r.bind(r,4978)),"@site/docs/glossary/input-output.md",4978],e3df4601:[()=>r.e(48685).then(r.bind(r,77558)),"@site/docs/glossary/version-string.md",77558],e461f950:[()=>r.e(59435).then(r.bind(r,56401)),"@site/docs/glossary/receipt.md",56401],e4928dcb:[()=>r.e(82447).then(r.bind(r,18433)),"@site/docs/glossary/well-known\xa0witnesses.md",18433],e4c936cc:[()=>r.e(69610).then(r.bind(r,29042)),"@site/docs/glossary/blake3.md",29042],e5dcc01f:[()=>r.e(77377).then(r.bind(r,38577)),"@site/docs/CarbonCopies/WebOfTrust-ietf-ipex-main-draft-ssmith-ipex.md",38577],e5ddc547:[()=>r.e(22595).then(r.bind(r,32784)),"@site/docs/glossary/key-state.md",32784],e7923f47:[()=>r.e(3191).then(r.bind(r,76031)),"@site/docs/glossary/entropy.md",76031],e7fc4fea:[()=>r.e(50291).then(r.bind(r,27798)),"@site/docs/glossary/verifiable.md",27798],e8670f2b:[()=>r.e(27915).then(r.bind(r,31529)),"@site/docs/glossary/PRNG.md",31529],e9c41c0d:[()=>r.e(65e3).then(r.bind(r,18221)),"@site/docs/glossary/keep.md",18221],e9de937f:[()=>r.e(62274).then(r.bind(r,27292)),"@site/docs/glossary/custodial-rotation.md",27292],eaed5bd8:[()=>r.e(6890).then(r.bind(r,89292)),"@site/docs/glossary/discloser.md",89292],eb4373da:[()=>r.e(37910).then(r.bind(r,59636)),"@site/docs/glossary/ndigs.md",59636],ec2418c9:[()=>r.e(21364).then(r.bind(r,34830)),"@site/docs/glossary/keri-suite-search-engine.md",34830],ec9ce63a:[()=>r.e(85721).then(r.bind(r,58737)),"@site/docs/glossary/SKRAP.md",58737],ecee2ee1:[()=>r.e(23736).then(r.bind(r,2186)),"@site/docs/glossary/verifiable-legal-entity-identifier.md",2186],ed2a2560:[()=>r.e(36581).then(r.bind(r,53657)),"@site/docs/glossary/revocation-event.md",53657],ed468992:[()=>r.e(67442).then(r.bind(r,73644)),"@site/docs/glossary/TCP.md",73644],ed4fcab4:[()=>r.e(97244).then(r.bind(r,4982)),"@site/docs/GLEIF/2022-11-30_Legal-Entity-QVI-AUTH-vLEI-Credential-GF-Prep-1.0-Publication_v0.6_work.md",4982],ed9fcbf6:[()=>r.e(48052).then(r.bind(r,14182)),"@site/docs/glossary/verify-signature.md",14182],ee30cadf:[()=>r.e(47375).then(r.bind(r,3877)),"@site/docs/Concepts/intro.md",3877],ef6a4b38:[()=>r.e(66041).then(r.bind(r,85565)),"@site/docs/glossary/contractually-protected-disclosure.md",85565],efcc25cd:[()=>r.e(2338).then(r.bind(r,33235)),"@site/docs/glossary/key-management.md",33235],efe14900:[()=>r.e(24078).then(r.bind(r,69061)),"@site/docs/glossary/qvi-authorized-representative.md",69061],eff03589:[()=>r.e(48943).then(r.bind(r,83764)),"@site/docs/glossary/key-pair.md",83764],f00c9f37:[()=>r.e(55238).then(r.bind(r,46663)),"@site/docs/glossary/concatenation.md",46663],f174ea1c:[()=>r.e(13239).then(r.bind(r,16775)),"@site/docs/glossary/verifiable-data-structure-(VDS).md",16775],f1894ad2:[()=>r.e(24212).then(r.bind(r,30242)),"@site/docs/glossary/append-only-event-logs.md",30242],f1dfdbba:[()=>r.e(70817).then(r.bind(r,20521)),"@site/docs/glossary/siger.md",20521],f21476e7:[()=>r.e(80156).then(r.bind(r,91345)),"@site/docs/Resources/Keri.one labeled.md",91345],f2d14207:[()=>r.e(69525).then(r.t.bind(r,21810,19)),"~docs/default/tag-wot-terms-docs-tags-acdc-968.json",21810],f32dcad9:[()=>r.e(97204).then(r.bind(r,73105)),"@site/docs/glossary/authenticity.md",73105],f4388b3c:[()=>r.e(18270).then(r.bind(r,6646)),"@site/docs/glossary/TEL.md",6646],f43937f7:[()=>r.e(65856).then(r.bind(r,34251)),"@site/docs/glossary/RUN.md",34251],f5d681c3:[()=>r.e(52743).then(r.bind(r,20695)),"@site/docs/glossary/sniffer.md",20695],f609d233:[()=>r.e(52854).then(r.bind(r,69639)),"@site/docs/glossary/Home.md",69639],f60c8689:[()=>r.e(7888).then(r.bind(r,8446)),"@site/docs/glossary/PKI.md",8446],f68b20b9:[()=>r.e(98995).then(r.bind(r,16651)),"@site/docs/glossary/source-of-truth.md",16651],f6a8732a:[()=>r.e(34138).then(r.bind(r,19296)),"@site/docs/Education/intro.md",19296],f6b1fbf3:[()=>r.e(66375).then(r.bind(r,2033)),"@site/docs/glossary/wallet.md",2033],f78b10c8:[()=>r.e(45634).then(r.bind(r,87351)),"@site/docs/Overview/Indexed in KERISSE.md",87351],f7905b2c:[()=>r.e(23185).then(r.bind(r,91223)),"@site/docs/glossary/duplicity.md",91223],f7f2a4d0:[()=>r.e(88855).then(r.bind(r,25034)),"@site/docs/How we did/intro.md",25034],f978ca23:[()=>r.e(93292).then(r.bind(r,32916)),"@site/docs/glossary/indexed-signature.md",32916],f9b96ad5:[()=>r.e(80249).then(r.bind(r,37174)),"@site/docs/glossary/schema-namespace-registry.md",37174],fbb458f4:[()=>r.e(97030).then(r.bind(r,5635)),"@site/docs/glossary/zero-trust.md",5635],fc1f9fa7:[()=>r.e(58947).then(r.bind(r,15432)),"@site/docs/glossary/key-event-receipt-log.md",15432],fc6cf40c:[()=>r.e(7214).then(r.bind(r,42898)),"@site/docs/glossary/agent.md",42898],fc71b035:[()=>r.e(28949).then(r.bind(r,75003)),"@site/docs/glossary/CRUD.md",75003],fd6b7a00:[()=>r.e(44958).then(r.bind(r,2410)),"@site/docs/glossary/javascript-object-signing-and-encryption.md",2410],fe03530c:[()=>r.e(76961).then(r.bind(r,26344)),"@site/docs/glossary/namespace.md",26344],fe3d0fcb:[()=>r.e(94668).then(r.bind(r,90801)),"@site/docs/glossary/uniform-resource-locator.md",90801],fea22e1f:[()=>r.e(6603).then(r.bind(r,78251)),"@site/docs/glossary/KERI.md",78251],ffbd6cf6:[()=>r.e(33221).then(r.bind(r,75681)),"@site/docs/How we did/Chatbots.md",75681],fff4c18d:[()=>r.e(29028).then(r.bind(r,87109)),"@site/docs/glossary/ownership.md",87109],fffb503b:[()=>r.e(62042).then(r.bind(r,82794)),"@site/docs/glossary/NFT.md",82794]};function l(e){let{error:t,retry:r,pastDelay:o}=e;return t?n.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},n.createElement("p",null,String(t)),n.createElement("div",null,n.createElement("button",{type:"button",onClick:r},"Retry"))):o?n.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},n.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},n.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},n.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},n.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),n.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),n.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),n.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},n.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),n.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),n.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),n.createElement("circle",{cx:"22",cy:"22",r:"8"},n.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=r(99670),d=r(30226);function p(e,t){if("*"===e)return i()({loading:l,loader:()=>r.e(4972).then(r.bind(r,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const r=e.default;return n.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},n.createElement(r,t))}});const s=a[`${e}-${t}`],p={},f=[],m=[],h=(0,u.Z)(s);return Object.entries(h).forEach((e=>{let[t,r]=e;const n=c[r];n&&(p[t]=n[0],f.push(n[1]),m.push(n[2]))})),i().Map({loading:l,loader:p,modules:f,webpack:()=>m,render(t,r){const i=JSON.parse(JSON.stringify(s));Object.entries(t).forEach((t=>{let[r,n]=t;const o=n.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(n).filter((e=>"default"!==e)).forEach((e=>{o[e]=n[e]}));let s=i;const a=r.split(".");a.slice(0,-1).forEach((e=>{s=s[e]})),s[a[a.length-1]]=o}));const a=i.__comp;delete i.__comp;const c=i.__context;return delete i.__context,n.createElement(d.z,{value:c},n.createElement(a,(0,o.Z)({},i,r)))}})}const f=[{path:"/WOT-terms/docs/tags",component:p("/WOT-terms/docs/tags","257"),exact:!0},{path:"/WOT-terms/docs/tags/acdc",component:p("/WOT-terms/docs/tags/acdc","019"),exact:!0},{path:"/WOT-terms/docs/tags/keri",component:p("/WOT-terms/docs/tags/keri","c4f"),exact:!0},{path:"/WOT-terms/feedback",component:p("/WOT-terms/feedback","8aa"),exact:!0},{path:"/WOT-terms/howtos-menu",component:p("/WOT-terms/howtos-menu","a3c"),exact:!0},{path:"/WOT-terms/howtos/hwt_embed-github-hosted-image-in-github-wiki-page",component:p("/WOT-terms/howtos/hwt_embed-github-hosted-image-in-github-wiki-page","df2"),exact:!0},{path:"/WOT-terms/howtos/hwt_get-markdown-from-ToIP-wiki",component:p("/WOT-terms/howtos/hwt_get-markdown-from-ToIP-wiki","b27"),exact:!0},{path:"/WOT-terms/howtos/hwt_load-toip-glossary-in-weboftrust-github-page",component:p("/WOT-terms/howtos/hwt_load-toip-glossary-in-weboftrust-github-page","b78"),exact:!0},{path:"/WOT-terms/howtos/hwt_pull-in-markdown-documents",component:p("/WOT-terms/howtos/hwt_pull-in-markdown-documents","884"),exact:!0},{path:"/WOT-terms/howtos/hwt_why-terms-wot-manage-structure",component:p("/WOT-terms/howtos/hwt_why-terms-wot-manage-structure","70c"),exact:!0},{path:"/WOT-terms/markdown-page",component:p("/WOT-terms/markdown-page","d24"),exact:!0},{path:"/WOT-terms/visualisations",component:p("/WOT-terms/visualisations","d79"),exact:!0},{path:"/WOT-terms/docs",component:p("/WOT-terms/docs","d1f"),routes:[{path:"/WOT-terms/docs/CarbonCopies/WebOfTrust-ietf-acdc-main-draft-ssmith-acdc",component:p("/WOT-terms/docs/CarbonCopies/WebOfTrust-ietf-acdc-main-draft-ssmith-acdc","973"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/CarbonCopies/WebOfTrust-ietf-cesr-proof-main-draft-pfeairheller-cesr-proof",component:p("/WOT-terms/docs/CarbonCopies/WebOfTrust-ietf-cesr-proof-main-draft-pfeairheller-cesr-proof","46c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/CarbonCopies/WebOfTrust-ietf-ipex-main-draft-ssmith-ipex",component:p("/WOT-terms/docs/CarbonCopies/WebOfTrust-ietf-ipex-main-draft-ssmith-ipex","aab"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/CarbonCopies/WebOfTrust-keria-main-docs-protocol",component:p("/WOT-terms/docs/CarbonCopies/WebOfTrust-keria-main-docs-protocol","bf4"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/category/gleif",component:p("/WOT-terms/docs/category/gleif","f34"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Concepts/",component:p("/WOT-terms/docs/Concepts/","f87"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Concepts/intro",component:p("/WOT-terms/docs/Concepts/intro","fca"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Concepts/keri-dev-env",component:p("/WOT-terms/docs/Concepts/keri-dev-env","aee"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Education/intro",component:p("/WOT-terms/docs/Education/intro","e24"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Education/KERI-Mooc",component:p("/WOT-terms/docs/Education/KERI-Mooc","2ff"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Education/Q-and-A",component:p("/WOT-terms/docs/Education/Q-and-A","a3a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Education/Q-and-A-Security",component:p("/WOT-terms/docs/Education/Q-and-A-Security","055"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-02-07_verifiable-LEI-(vLEI)-Ecosystem-Information-Trust-Policies-Prep-1.0-Publication_v0.1_work",component:p("/WOT-terms/docs/GLEIF/2022-02-07_verifiable-LEI-(vLEI)-Ecosystem-Information-Trust-Policies-Prep-1.0-Publication_v0.1_work","1ff"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-02-07_vlei-q-a_v1.1-final",component:p("/WOT-terms/docs/GLEIF/2022-02-07_vlei-q-a_v1.1-final","80a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-10-28_Qualified-vLEI-Issuer-vLEI-Identifer-Credential-GF-Prep-1.0-Publication_v0.9_work",component:p("/WOT-terms/docs/GLEIF/2022-10-28_Qualified-vLEI-Issuer-vLEI-Identifer-Credential-GF-Prep-1.0-Publication_v0.9_work","772"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-11-01_GLEIF-Identifier-GF-Prep-1.0-Publication_v0.6_work",component:p("/WOT-terms/docs/GLEIF/2022-11-01_GLEIF-Identifier-GF-Prep-1.0-Publication_v0.6_work","b95"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-11-22_Legal-Entity-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work",component:p("/WOT-terms/docs/GLEIF/2022-11-22_Legal-Entity-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work","543"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-11-23_Legal-Entity-Engagement-Context-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work",component:p("/WOT-terms/docs/GLEIF/2022-11-23_Legal-Entity-Engagement-Context-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work","64b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-11-23_Legal-Entity-Official-Organizational-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work",component:p("/WOT-terms/docs/GLEIF/2022-11-23_Legal-Entity-Official-Organizational-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work","59f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-11-30_Legal-Entity-QVI-AUTH-vLEI-Credential-GF-Prep-1.0-Publication_v0.6_work",component:p("/WOT-terms/docs/GLEIF/2022-11-30_Legal-Entity-QVI-AUTH-vLEI-Credential-GF-Prep-1.0-Publication_v0.6_work","8dc"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-12-01_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part 3-vLEI-Credential-Schema-Registry-Prep-1.0-Publication_v0.1_work",component:p("/WOT-terms/docs/GLEIF/2022-12-01_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part 3-vLEI-Credential-Schema-Registry-Prep-1.0-Publication_v0.1_work","763"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-12-06_appendix-1-non-disclosure-agreement_v1.0_final",component:p("/WOT-terms/docs/GLEIF/2022-12-06_appendix-1-non-disclosure-agreement_v1.0_final","b75"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-12-06_appendix-2-vlei-issuer-qualification-program-manual_v1.0_final",component:p("/WOT-terms/docs/GLEIF/2022-12-06_appendix-2-vlei-issuer-qualification-program-manual_v1.0_final","47a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-12-06_appendix-3-vlei-issuer-qualification-program-checklist_v1.0_final",component:p("/WOT-terms/docs/GLEIF/2022-12-06_appendix-3-vlei-issuer-qualification-program-checklist_v1.0_final","9ed"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-12-06_appendix-4-vlei-issuer-contact-details_v1.0_final",component:p("/WOT-terms/docs/GLEIF/2022-12-06_appendix-4-vlei-issuer-contact-details_v1.0_final","1a1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part1-KERI-Infrastructure-Prep-1.0-Publication_v0.6_work",component:p("/WOT-terms/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part1-KERI-Infrastructure-Prep-1.0-Publication_v0.6_work","83e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part2-vLEI-Credentials_v0.3_work",component:p("/WOT-terms/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part2-vLEI-Credentials_v0.3_work","3f3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/GLEIF/2022-12-16_Legal-Entity-QVI-AUTH-vLEI-Credential-Governance-Framework_v1.0_final",component:p("/WOT-terms/docs/GLEIF/2022-12-16_Legal-Entity-QVI-AUTH-vLEI-Credential-Governance-Framework_v1.0_final","f8e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary-ToIP/",component:p("/WOT-terms/docs/glossary-ToIP/","b32"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ACDC",component:p("/WOT-terms/docs/glossary/ACDC","64b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ADC",component:p("/WOT-terms/docs/glossary/ADC","35f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/agency",component:p("/WOT-terms/docs/glossary/agency","d83"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/agent",component:p("/WOT-terms/docs/glossary/agent","91a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/AID",component:p("/WOT-terms/docs/glossary/AID","e2b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ambient-verifiability",component:p("/WOT-terms/docs/glossary/ambient-verifiability","d77"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/AN",component:p("/WOT-terms/docs/glossary/AN","f04"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/APC",component:p("/WOT-terms/docs/glossary/APC","f57"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/API",component:p("/WOT-terms/docs/glossary/API","7b7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/append-only-event-logs",component:p("/WOT-terms/docs/glossary/append-only-event-logs","0a1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/application-programming-interface",component:p("/WOT-terms/docs/glossary/application-programming-interface","e74"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authentic-chained-data-container",component:p("/WOT-terms/docs/glossary/authentic-chained-data-container","927"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authentic-data-container",component:p("/WOT-terms/docs/glossary/authentic-data-container","8b1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authentic-provenance-chain",component:p("/WOT-terms/docs/glossary/authentic-provenance-chain","f74"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authentic-web",component:p("/WOT-terms/docs/glossary/authentic-web","ff6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authenticity",component:p("/WOT-terms/docs/glossary/authenticity","6eb"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authoritative",component:p("/WOT-terms/docs/glossary/authoritative","577"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authority",component:p("/WOT-terms/docs/glossary/authority","d7f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authorization",component:p("/WOT-terms/docs/glossary/authorization","eee"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/authorized-vlei-representative",component:p("/WOT-terms/docs/glossary/authorized-vlei-representative","9fd"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/autonomic-computing-systems",component:p("/WOT-terms/docs/glossary/autonomic-computing-systems","4c9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/autonomic-identifier",component:p("/WOT-terms/docs/glossary/autonomic-identifier","abd"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/autonomic-identity-system",component:p("/WOT-terms/docs/glossary/autonomic-identity-system","e16"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/autonomic-namespace",component:p("/WOT-terms/docs/glossary/autonomic-namespace","b48"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/AVR",component:p("/WOT-terms/docs/glossary/AVR","93c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/backer",component:p("/WOT-terms/docs/glossary/backer","222"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/BADA",component:p("/WOT-terms/docs/glossary/BADA","c30"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/base-media-type",component:p("/WOT-terms/docs/glossary/base-media-type","9d6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/base64",component:p("/WOT-terms/docs/glossary/base64","363"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/bespoke-credential",component:p("/WOT-terms/docs/glossary/bespoke-credential","f4c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/best-available-data-acceptance-mechanism",component:p("/WOT-terms/docs/glossary/best-available-data-acceptance-mechanism","c5c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/BFT",component:p("/WOT-terms/docs/glossary/BFT","472"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/binding",component:p("/WOT-terms/docs/glossary/binding","1dc"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/blake3",component:p("/WOT-terms/docs/glossary/blake3","622"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/blind-oobi",component:p("/WOT-terms/docs/glossary/blind-oobi","95f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/blinded-revocation-registry",component:p("/WOT-terms/docs/glossary/blinded-revocation-registry","be7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/branch",component:p("/WOT-terms/docs/glossary/branch","1a2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/byzantine-agreement",component:p("/WOT-terms/docs/glossary/byzantine-agreement","a4c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/byzantine-fault-tolerance",component:p("/WOT-terms/docs/glossary/byzantine-fault-tolerance","5d1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/certificate-transparency",component:p("/WOT-terms/docs/glossary/certificate-transparency","102"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/CESR",component:p("/WOT-terms/docs/glossary/CESR","eb6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cesr-proof-signatures",component:p("/WOT-terms/docs/glossary/cesr-proof-signatures","010"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cesride",component:p("/WOT-terms/docs/glossary/cesride","e32"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/chain-link-confidentiality",component:p("/WOT-terms/docs/glossary/chain-link-confidentiality","c6c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/chain-of-custody",component:p("/WOT-terms/docs/glossary/chain-of-custody","d1b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cigar",component:p("/WOT-terms/docs/glossary/cigar","96a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/claim",component:p("/WOT-terms/docs/glossary/claim","5ad"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/CLC",component:p("/WOT-terms/docs/glossary/CLC","74c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/clone",component:p("/WOT-terms/docs/glossary/clone","2a7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cloud-agent",component:p("/WOT-terms/docs/glossary/cloud-agent","c13"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/code-table",component:p("/WOT-terms/docs/glossary/code-table","c8d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/code-table-selector",component:p("/WOT-terms/docs/glossary/code-table-selector","b80"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cold-start-stream-parsing",component:p("/WOT-terms/docs/glossary/cold-start-stream-parsing","b95"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/collective-signature",component:p("/WOT-terms/docs/glossary/collective-signature","506"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/collision",component:p("/WOT-terms/docs/glossary/collision","007"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/compact-variant",component:p("/WOT-terms/docs/glossary/compact-variant","e0c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/complementary-integrity-verification",component:p("/WOT-terms/docs/glossary/complementary-integrity-verification","75a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/composability",component:p("/WOT-terms/docs/glossary/composability","8bf"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/composable",component:p("/WOT-terms/docs/glossary/composable","44c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/composable-event-streaming-representation",component:p("/WOT-terms/docs/glossary/composable-event-streaming-representation","e43"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/concatenation",component:p("/WOT-terms/docs/glossary/concatenation","a2a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/concise-binary-object-representation-(CBOR)",component:p("/WOT-terms/docs/glossary/concise-binary-object-representation-(CBOR)","516"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/configuration-files",component:p("/WOT-terms/docs/glossary/configuration-files","cfd"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/consensus-mechanism",component:p("/WOT-terms/docs/glossary/consensus-mechanism","901"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/content-addressable-hash",component:p("/WOT-terms/docs/glossary/content-addressable-hash","b3f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/contextual-linkability",component:p("/WOT-terms/docs/glossary/contextual-linkability","203"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/contingent-disclosure",component:p("/WOT-terms/docs/glossary/contingent-disclosure","787"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/contractually-protected-disclosure",component:p("/WOT-terms/docs/glossary/contractually-protected-disclosure","5b1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/control-authority",component:p("/WOT-terms/docs/glossary/control-authority","00a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/controller",component:p("/WOT-terms/docs/glossary/controller","668"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/coroutines",component:p("/WOT-terms/docs/glossary/coroutines","c74"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/correlation",component:p("/WOT-terms/docs/glossary/correlation","43a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/count-code",component:p("/WOT-terms/docs/glossary/count-code","b79"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/credential",component:p("/WOT-terms/docs/glossary/credential","e0a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/CRUD",component:p("/WOT-terms/docs/glossary/CRUD","8ae"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/crypto-libraries",component:p("/WOT-terms/docs/glossary/crypto-libraries","747"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cryptocurrency",component:p("/WOT-terms/docs/glossary/cryptocurrency","801"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cryptographic-commitment-scheme",component:p("/WOT-terms/docs/glossary/cryptographic-commitment-scheme","628"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cryptographic-primitive",component:p("/WOT-terms/docs/glossary/cryptographic-primitive","efa"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cryptographic-strength",component:p("/WOT-terms/docs/glossary/cryptographic-strength","de3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/cryptonym",component:p("/WOT-terms/docs/glossary/cryptonym","9f0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/CSPRNG",component:p("/WOT-terms/docs/glossary/CSPRNG","73c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/CT",component:p("/WOT-terms/docs/glossary/CT","408"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/custodial-agent",component:p("/WOT-terms/docs/glossary/custodial-agent","a0e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/custodial-rotation",component:p("/WOT-terms/docs/glossary/custodial-rotation","fb1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/DAG",component:p("/WOT-terms/docs/glossary/DAG","7ac"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/DAR",component:p("/WOT-terms/docs/glossary/DAR","dc6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/data-anchor",component:p("/WOT-terms/docs/glossary/data-anchor","490"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/dead-drop",component:p("/WOT-terms/docs/glossary/dead-drop","bb4"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/decentralized-identifier",component:p("/WOT-terms/docs/glossary/decentralized-identifier","e6d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/decentralized-identity",component:p("/WOT-terms/docs/glossary/decentralized-identity","db1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/decentralized-key-management-infrastructure",component:p("/WOT-terms/docs/glossary/decentralized-key-management-infrastructure","499"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/DEL",component:p("/WOT-terms/docs/glossary/DEL","a1a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/delegated-identifier",component:p("/WOT-terms/docs/glossary/delegated-identifier","45b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/delegation",component:p("/WOT-terms/docs/glossary/delegation","84f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/derivation-code",component:p("/WOT-terms/docs/glossary/derivation-code","847"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/designated-authorized-representative",component:p("/WOT-terms/docs/glossary/designated-authorized-representative","fac"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/DHT",component:p("/WOT-terms/docs/glossary/DHT","9c1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/DID",component:p("/WOT-terms/docs/glossary/DID","608"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/diger",component:p("/WOT-terms/docs/glossary/diger","443"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/digest",component:p("/WOT-terms/docs/glossary/digest","b06"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/digital-signature",component:p("/WOT-terms/docs/glossary/digital-signature","d86"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/directed-acyclic-graph",component:p("/WOT-terms/docs/glossary/directed-acyclic-graph","7e4"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/disclosee",component:p("/WOT-terms/docs/glossary/disclosee","10e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/discloser",component:p("/WOT-terms/docs/glossary/discloser","dcd"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/distributed-hash-table",component:p("/WOT-terms/docs/glossary/distributed-hash-table","af7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/DKMI",component:p("/WOT-terms/docs/glossary/DKMI","77c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/domain",component:p("/WOT-terms/docs/glossary/domain","38a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/domain-name",component:p("/WOT-terms/docs/glossary/domain-name","1e0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/DPKI",component:p("/WOT-terms/docs/glossary/DPKI","1d2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/dual-indexed-codes",component:p("/WOT-terms/docs/glossary/dual-indexed-codes","8e5"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/dual-text-binary-encoding-format",component:p("/WOT-terms/docs/glossary/dual-text-binary-encoding-format","4d1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/duplicitous-event-log",component:p("/WOT-terms/docs/glossary/duplicitous-event-log","270"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/duplicity",component:p("/WOT-terms/docs/glossary/duplicity","ff1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/easyCLA_trick",component:p("/WOT-terms/docs/glossary/easyCLA_trick","46e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/eclipse-attack",component:p("/WOT-terms/docs/glossary/eclipse-attack","9ee"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ECR",component:p("/WOT-terms/docs/glossary/ECR","d23"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/electronic-signature",component:p("/WOT-terms/docs/glossary/electronic-signature","ca9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/end-verifiable",component:p("/WOT-terms/docs/glossary/end-verifiable","552"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/engagement-context-role",component:p("/WOT-terms/docs/glossary/engagement-context-role","cf0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/entity",component:p("/WOT-terms/docs/glossary/entity","8f3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/entropy",component:p("/WOT-terms/docs/glossary/entropy","482"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ephemeral",component:p("/WOT-terms/docs/glossary/ephemeral","7bc"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/escrow",component:p("/WOT-terms/docs/glossary/escrow","cea"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/escrow-state",component:p("/WOT-terms/docs/glossary/escrow-state","fb7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/establishment-event",component:p("/WOT-terms/docs/glossary/establishment-event","59d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/extensible-business-reporting-language",component:p("/WOT-terms/docs/glossary/extensible-business-reporting-language","825"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/FFI",component:p("/WOT-terms/docs/glossary/FFI","603"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/field-map",component:p("/WOT-terms/docs/glossary/field-map","8c7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/first-seen",component:p("/WOT-terms/docs/glossary/first-seen","cff"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/foreign-function-interface",component:p("/WOT-terms/docs/glossary/foreign-function-interface","9e8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/frame-code",component:p("/WOT-terms/docs/glossary/frame-code","84e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/full-disclosure",component:p("/WOT-terms/docs/glossary/full-disclosure","55b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/fully-compact",component:p("/WOT-terms/docs/glossary/fully-compact","e9e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/fully-expanded",component:p("/WOT-terms/docs/glossary/fully-expanded","d9f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/GAR",component:p("/WOT-terms/docs/glossary/GAR","005"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ghost-credential",component:p("/WOT-terms/docs/glossary/ghost-credential","20a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/GLEIF",component:p("/WOT-terms/docs/glossary/GLEIF","492"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/gleif-authorized-representative",component:p("/WOT-terms/docs/glossary/gleif-authorized-representative","526"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/GLEIS",component:p("/WOT-terms/docs/glossary/GLEIS","77c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/gnu-privacy-guard",component:p("/WOT-terms/docs/glossary/gnu-privacy-guard","a2c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/governance-framework",component:p("/WOT-terms/docs/glossary/governance-framework","266"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/GPG",component:p("/WOT-terms/docs/glossary/GPG","97f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/graduated-disclosure",component:p("/WOT-terms/docs/glossary/graduated-disclosure","eeb"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/graph-fragment",component:p("/WOT-terms/docs/glossary/graph-fragment","358"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/group-code",component:p("/WOT-terms/docs/glossary/group-code","e83"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/group-framing-code",component:p("/WOT-terms/docs/glossary/group-framing-code","9ba"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/habery",component:p("/WOT-terms/docs/glossary/habery","83e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/hardware-security-module",component:p("/WOT-terms/docs/glossary/hardware-security-module","709"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/hierarchical-asynchronous-coroutines-and-input-output",component:p("/WOT-terms/docs/glossary/hierarchical-asynchronous-coroutines-and-input-output","46f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/hierarchical-composition",component:p("/WOT-terms/docs/glossary/hierarchical-composition","5e7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/hierchical-deterministic-keys",component:p("/WOT-terms/docs/glossary/hierchical-deterministic-keys","767"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/hio",component:p("/WOT-terms/docs/glossary/hio","898"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/Home",component:p("/WOT-terms/docs/glossary/Home","2b0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/HSM",component:p("/WOT-terms/docs/glossary/HSM","c7f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/I-O",component:p("/WOT-terms/docs/glossary/I-O","1f3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/IANA",component:p("/WOT-terms/docs/glossary/IANA","b3e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/identifier",component:p("/WOT-terms/docs/glossary/identifier","d79"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/identifier-system",component:p("/WOT-terms/docs/glossary/identifier-system","11f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/identity",component:p("/WOT-terms/docs/glossary/identity","8bd"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/inception",component:p("/WOT-terms/docs/glossary/inception","9c2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/inception-event",component:p("/WOT-terms/docs/glossary/inception-event","856"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/inconsistency",component:p("/WOT-terms/docs/glossary/inconsistency","8d3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/indexed-signature",component:p("/WOT-terms/docs/glossary/indexed-signature","a31"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/input-output",component:p("/WOT-terms/docs/glossary/input-output","d3f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/inquisitor",component:p("/WOT-terms/docs/glossary/inquisitor","ca8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/integrity",component:p("/WOT-terms/docs/glossary/integrity","20a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/interaction-event",component:p("/WOT-terms/docs/glossary/interaction-event","ddd"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/interleaved-serialisation",component:p("/WOT-terms/docs/glossary/interleaved-serialisation","ced"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/internal-inconsistency",component:p("/WOT-terms/docs/glossary/internal-inconsistency","d7b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/internet-assigned-numbers-authority",component:p("/WOT-terms/docs/glossary/internet-assigned-numbers-authority","fb8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/interoperability",component:p("/WOT-terms/docs/glossary/interoperability","31f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/interoperable",component:p("/WOT-terms/docs/glossary/interoperable","99a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ip-address",component:p("/WOT-terms/docs/glossary/ip-address","2da"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/IPEX",component:p("/WOT-terms/docs/glossary/IPEX","aa9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/issuance-and-presentation-exchange-protocol",component:p("/WOT-terms/docs/glossary/issuance-and-presentation-exchange-protocol","b15"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/issuance-event",component:p("/WOT-terms/docs/glossary/issuance-event","237"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/issuance-exchange",component:p("/WOT-terms/docs/glossary/issuance-exchange","1b0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/issuee",component:p("/WOT-terms/docs/glossary/issuee","86f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/issuer",component:p("/WOT-terms/docs/glossary/issuer","5b8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ixn",component:p("/WOT-terms/docs/glossary/ixn","6d8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/javascript-object-notation-(JSON)",component:p("/WOT-terms/docs/glossary/javascript-object-notation-(JSON)","fb7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/javascript-object-signing-and-encryption",component:p("/WOT-terms/docs/glossary/javascript-object-signing-and-encryption","8e6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/JOSE",component:p("/WOT-terms/docs/glossary/JOSE","ed0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/JSON",component:p("/WOT-terms/docs/glossary/JSON","8ce"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/judge",component:p("/WOT-terms/docs/glossary/judge","ad6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/juror",component:p("/WOT-terms/docs/glossary/juror","d97"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/jury",component:p("/WOT-terms/docs/glossary/jury","504"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/KA2CE",component:p("/WOT-terms/docs/glossary/KA2CE","e0b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/KAACE",component:p("/WOT-terms/docs/glossary/KAACE","5fc"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keep",component:p("/WOT-terms/docs/glossary/keep","bd3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/KEL",component:p("/WOT-terms/docs/glossary/KEL","1a7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/KERI",component:p("/WOT-terms/docs/glossary/KERI","5a3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keri-agreement-algorithm-for-control-establishment",component:p("/WOT-terms/docs/glossary/keri-agreement-algorithm-for-control-establishment","0cc"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keri-command-line-interface",component:p("/WOT-terms/docs/glossary/keri-command-line-interface","22e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keri-improvement-doc",component:p("/WOT-terms/docs/glossary/keri-improvement-doc","40c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keri-ox",component:p("/WOT-terms/docs/glossary/keri-ox","a36"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keri-request-authentication-method",component:p("/WOT-terms/docs/glossary/keri-request-authentication-method","d40"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keri-suite",component:p("/WOT-terms/docs/glossary/keri-suite","1dc"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keri-suite-search-engine",component:p("/WOT-terms/docs/glossary/keri-suite-search-engine","93b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keria",component:p("/WOT-terms/docs/glossary/keria","5b1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keride",component:p("/WOT-terms/docs/glossary/keride","617"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keridemlia",component:p("/WOT-terms/docs/glossary/keridemlia","d35"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keripy",component:p("/WOT-terms/docs/glossary/keripy","aaa"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/KERISSE",component:p("/WOT-terms/docs/glossary/KERISSE","ec2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/KERL",component:p("/WOT-terms/docs/glossary/KERL","244"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key",component:p("/WOT-terms/docs/glossary/key","557"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-compromise",component:p("/WOT-terms/docs/glossary/key-compromise","928"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-event",component:p("/WOT-terms/docs/glossary/key-event","08f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-event-log",component:p("/WOT-terms/docs/glossary/key-event-log","508"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-event-message",component:p("/WOT-terms/docs/glossary/key-event-message","322"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-event-receipt",component:p("/WOT-terms/docs/glossary/key-event-receipt","bad"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-event-receipt-infrastructure",component:p("/WOT-terms/docs/glossary/key-event-receipt-infrastructure","89a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-event-receipt-log",component:p("/WOT-terms/docs/glossary/key-event-receipt-log","7f7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-management",component:p("/WOT-terms/docs/glossary/key-management","e70"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-pair",component:p("/WOT-terms/docs/glossary/key-pair","ddb"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-state",component:p("/WOT-terms/docs/glossary/key-state","df5"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-stretching",component:p("/WOT-terms/docs/glossary/key-stretching","344"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/key-transparency",component:p("/WOT-terms/docs/glossary/key-transparency","a40"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/keystore",component:p("/WOT-terms/docs/glossary/keystore","882"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/KID",component:p("/WOT-terms/docs/glossary/KID","485"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/kli",component:p("/WOT-terms/docs/glossary/kli","7c3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/KRAM",component:p("/WOT-terms/docs/glossary/KRAM","cd9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/large-language-model",component:p("/WOT-terms/docs/glossary/large-language-model","1aa"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/lead-bytes",component:p("/WOT-terms/docs/glossary/lead-bytes","cd1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ledger-backer",component:p("/WOT-terms/docs/glossary/ledger-backer","70a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/legal-entity",component:p("/WOT-terms/docs/glossary/legal-entity","e6e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/legal-entity-engagement-context-role-vlei-credential-governance-framework",component:p("/WOT-terms/docs/glossary/legal-entity-engagement-context-role-vlei-credential-governance-framework","35b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/legal-entity-official-organizational-role-vlei-credential-governance-framework",component:p("/WOT-terms/docs/glossary/legal-entity-official-organizational-role-vlei-credential-governance-framework","78d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/legal-entity-vlei-credential-governance-framework",component:p("/WOT-terms/docs/glossary/legal-entity-vlei-credential-governance-framework","878"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/LEI",component:p("/WOT-terms/docs/glossary/LEI","68b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/levels-of-assurance",component:p("/WOT-terms/docs/glossary/levels-of-assurance","c1b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/liveness",component:p("/WOT-terms/docs/glossary/liveness","23a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/LLM",component:p("/WOT-terms/docs/glossary/LLM","247"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/LoA",component:p("/WOT-terms/docs/glossary/LoA","aeb"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/LoC",component:p("/WOT-terms/docs/glossary/LoC","8ea"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/loci-of-control",component:p("/WOT-terms/docs/glossary/loci-of-control","5df"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/locked-state",component:p("/WOT-terms/docs/glossary/locked-state","e24"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/management-TEL",component:p("/WOT-terms/docs/glossary/management-TEL","c20"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/management-transaction-event-log",component:p("/WOT-terms/docs/glossary/management-transaction-event-log","6d8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/message",component:p("/WOT-terms/docs/glossary/message","823"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/messagepack",component:p("/WOT-terms/docs/glossary/messagepack","7f6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/most-compact",component:p("/WOT-terms/docs/glossary/most-compact","6f9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/multicodec",component:p("/WOT-terms/docs/glossary/multicodec","3ce"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/multiplexing",component:p("/WOT-terms/docs/glossary/multiplexing","db4"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/multisig",component:p("/WOT-terms/docs/glossary/multisig","b44"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/naive-conversion",component:p("/WOT-terms/docs/glossary/naive-conversion","962"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/namespace",component:p("/WOT-terms/docs/glossary/namespace","060"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ndigs",component:p("/WOT-terms/docs/glossary/ndigs","354"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/nested-cooperative-delegated-identifiers",component:p("/WOT-terms/docs/glossary/nested-cooperative-delegated-identifiers","bfc"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/NFT",component:p("/WOT-terms/docs/glossary/NFT","36f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/non-establishment-event",component:p("/WOT-terms/docs/glossary/non-establishment-event","9d2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/non-fungible-token",component:p("/WOT-terms/docs/glossary/non-fungible-token","a73"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/non-normative",component:p("/WOT-terms/docs/glossary/non-normative","45a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/non-repudiable",component:p("/WOT-terms/docs/glossary/non-repudiable","abe"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/non-transferable",component:p("/WOT-terms/docs/glossary/non-transferable","aad"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/non-transferable-identifier",component:p("/WOT-terms/docs/glossary/non-transferable-identifier","09d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/normative",component:p("/WOT-terms/docs/glossary/normative","342"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/official-organizational-role",component:p("/WOT-terms/docs/glossary/official-organizational-role","223"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/one-way-functions",component:p("/WOT-terms/docs/glossary/one-way-functions","a6e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/OOBI",component:p("/WOT-terms/docs/glossary/OOBI","aa2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/OOR",component:p("/WOT-terms/docs/glossary/OOR","d8b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/opcode",component:p("/WOT-terms/docs/glossary/opcode","e0f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/out-of-band-introduction",component:p("/WOT-terms/docs/glossary/out-of-band-introduction","f99"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/owner",component:p("/WOT-terms/docs/glossary/owner","026"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ownership",component:p("/WOT-terms/docs/glossary/ownership","028"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/P2P",component:p("/WOT-terms/docs/glossary/P2P","b96"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/pad",component:p("/WOT-terms/docs/glossary/pad","a6c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/parside",component:p("/WOT-terms/docs/glossary/parside","b06"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/partial-disclosure",component:p("/WOT-terms/docs/glossary/partial-disclosure","3be"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/partial-pre-rotation",component:p("/WOT-terms/docs/glossary/partial-pre-rotation","ed1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/partial-rotation",component:p("/WOT-terms/docs/glossary/partial-rotation","4ff"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/passcode",component:p("/WOT-terms/docs/glossary/passcode","a18"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/payload",component:p("/WOT-terms/docs/glossary/payload","3c3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/peer-to-peer",component:p("/WOT-terms/docs/glossary/peer-to-peer","53c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/percolated-information-discovery",component:p("/WOT-terms/docs/glossary/percolated-information-discovery","aa4"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/persistent-data-structure",component:p("/WOT-terms/docs/glossary/persistent-data-structure","fd5"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/persistent-identifier",component:p("/WOT-terms/docs/glossary/persistent-identifier","972"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/PGP",component:p("/WOT-terms/docs/glossary/PGP","831"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/PID",component:p("/WOT-terms/docs/glossary/PID","41d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/pii",component:p("/WOT-terms/docs/glossary/pii","146"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/pipelining",component:p("/WOT-terms/docs/glossary/pipelining","f99"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/PKI",component:p("/WOT-terms/docs/glossary/PKI","854"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/post-pad",component:p("/WOT-terms/docs/glossary/post-pad","d2f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/pre-pad",component:p("/WOT-terms/docs/glossary/pre-pad","055"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/pre-rotation",component:p("/WOT-terms/docs/glossary/pre-rotation","6e8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/prefix",component:p("/WOT-terms/docs/glossary/prefix","5d0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/presentation-exchange",component:p("/WOT-terms/docs/glossary/presentation-exchange","358"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/pretty-good-privacy",component:p("/WOT-terms/docs/glossary/pretty-good-privacy","c22"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/primary-root-of-trust",component:p("/WOT-terms/docs/glossary/primary-root-of-trust","807"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/primitive",component:p("/WOT-terms/docs/glossary/primitive","64a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/PRNG",component:p("/WOT-terms/docs/glossary/PRNG","36e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/promiscuous-mode",component:p("/WOT-terms/docs/glossary/promiscuous-mode","eff"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/proof-of-authority",component:p("/WOT-terms/docs/glossary/proof-of-authority","6a9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/proof-of-authorship",component:p("/WOT-terms/docs/glossary/proof-of-authorship","611"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/protocol",component:p("/WOT-terms/docs/glossary/protocol","2f5"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/provenance",component:p("/WOT-terms/docs/glossary/provenance","0e9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/pseudo-random-number",component:p("/WOT-terms/docs/glossary/pseudo-random-number","a02"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/PTEL",component:p("/WOT-terms/docs/glossary/PTEL","99d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/public-key-infrastructure",component:p("/WOT-terms/docs/glossary/public-key-infrastructure","fe7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/public-transaction-event-log",component:p("/WOT-terms/docs/glossary/public-transaction-event-log","3a5"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/public-verifiable-credential-registry",component:p("/WOT-terms/docs/glossary/public-verifiable-credential-registry","1b5"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/QAR",component:p("/WOT-terms/docs/glossary/QAR","817"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/qualified",component:p("/WOT-terms/docs/glossary/qualified","8ef"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/qualified-vlei-issuer",component:p("/WOT-terms/docs/glossary/qualified-vlei-issuer","45d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/qualified-vlei-issuer-vlei-credential-governance-framework",component:p("/WOT-terms/docs/glossary/qualified-vlei-issuer-vlei-credential-governance-framework","993"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/QVI",component:p("/WOT-terms/docs/glossary/QVI","09a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/qvi-authorized-representative",component:p("/WOT-terms/docs/glossary/qvi-authorized-representative","e2b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/race-condition",component:p("/WOT-terms/docs/glossary/race-condition","0a8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/rainbow-table-attack",component:p("/WOT-terms/docs/glossary/rainbow-table-attack","c79"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/receipt",component:p("/WOT-terms/docs/glossary/receipt","12c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/receipt-log",component:p("/WOT-terms/docs/glossary/receipt-log","a00"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/redundant-credential",component:p("/WOT-terms/docs/glossary/redundant-credential","e0e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/registrar",component:p("/WOT-terms/docs/glossary/registrar","1bb"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/registry",component:p("/WOT-terms/docs/glossary/registry","08d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/replay-attack",component:p("/WOT-terms/docs/glossary/replay-attack","b13"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/repo",component:p("/WOT-terms/docs/glossary/repo","3cb"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/reserve-rotation",component:p("/WOT-terms/docs/glossary/reserve-rotation","2ff"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/revocation-event",component:p("/WOT-terms/docs/glossary/revocation-event","8f0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ricardian-contract",component:p("/WOT-terms/docs/glossary/ricardian-contract","989"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/root-of-trust",component:p("/WOT-terms/docs/glossary/root-of-trust","ca4"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/rot",component:p("/WOT-terms/docs/glossary/rot","235"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/rotation",component:p("/WOT-terms/docs/glossary/rotation","cd9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/rotation-authority",component:p("/WOT-terms/docs/glossary/rotation-authority","422"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/rotation-event",component:p("/WOT-terms/docs/glossary/rotation-event","ec0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/RUN",component:p("/WOT-terms/docs/glossary/RUN","623"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/run-off-the-crud",component:p("/WOT-terms/docs/glossary/run-off-the-crud","cc7"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/SAD",component:p("/WOT-terms/docs/glossary/SAD","27f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/SAID",component:p("/WOT-terms/docs/glossary/SAID","d98"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/sally",component:p("/WOT-terms/docs/glossary/sally","85b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/salt",component:p("/WOT-terms/docs/glossary/salt","5dd"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/salter",component:p("/WOT-terms/docs/glossary/salter","082"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/SATP",component:p("/WOT-terms/docs/glossary/SATP","c13"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/schema-namespace-registry",component:p("/WOT-terms/docs/glossary/schema-namespace-registry","533"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/schema-registry",component:p("/WOT-terms/docs/glossary/schema-registry","33c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/SCID",component:p("/WOT-terms/docs/glossary/SCID","0c8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/seal",component:p("/WOT-terms/docs/glossary/seal","86a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/secondary-root-of-trust",component:p("/WOT-terms/docs/glossary/secondary-root-of-trust","e23"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/secure-asset-transfer-protocol",component:p("/WOT-terms/docs/glossary/secure-asset-transfer-protocol","973"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/secure-attribution",component:p("/WOT-terms/docs/glossary/secure-attribution","869"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/secure-private-authentic-confidentiality",component:p("/WOT-terms/docs/glossary/secure-private-authentic-confidentiality","15d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/seed",component:p("/WOT-terms/docs/glossary/seed","0b3"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/selective-disclosure",component:p("/WOT-terms/docs/glossary/selective-disclosure","596"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/self-addressing-data",component:p("/WOT-terms/docs/glossary/self-addressing-data","976"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/self-addressing-identifier",component:p("/WOT-terms/docs/glossary/self-addressing-identifier","f93"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/self-certifying-identifier",component:p("/WOT-terms/docs/glossary/self-certifying-identifier","042"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/self-framing",component:p("/WOT-terms/docs/glossary/self-framing","319"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/self-sovereign-identity",component:p("/WOT-terms/docs/glossary/self-sovereign-identity","6c9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/self-sovereignty",component:p("/WOT-terms/docs/glossary/self-sovereignty","c8c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/server-sent-event",component:p("/WOT-terms/docs/glossary/server-sent-event","95a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/service-endpoint",component:p("/WOT-terms/docs/glossary/service-endpoint","a02"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/siger",component:p("/WOT-terms/docs/glossary/siger","083"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/signed-digest",component:p("/WOT-terms/docs/glossary/signed-digest","e2b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/signer",component:p("/WOT-terms/docs/glossary/signer","3fb"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/signify",component:p("/WOT-terms/docs/glossary/signify","c07"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/signify-keria-request-authentication-protocol",component:p("/WOT-terms/docs/glossary/signify-keria-request-authentication-protocol","41d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/signing-authority",component:p("/WOT-terms/docs/glossary/signing-authority","726"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/signing-threshold",component:p("/WOT-terms/docs/glossary/signing-threshold","910"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/simple-keri-for-web-auth",component:p("/WOT-terms/docs/glossary/simple-keri-for-web-auth","474"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/single-signature-identifier",component:p("/WOT-terms/docs/glossary/single-signature-identifier","3a9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/SKRAP",component:p("/WOT-terms/docs/glossary/SKRAP","a9e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/SKWA",component:p("/WOT-terms/docs/glossary/SKWA","16d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/sniffer",component:p("/WOT-terms/docs/glossary/sniffer","467"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/solicited-issuance",component:p("/WOT-terms/docs/glossary/solicited-issuance","e0d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/source-of-truth",component:p("/WOT-terms/docs/glossary/source-of-truth","046"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/SPAC",component:p("/WOT-terms/docs/glossary/SPAC","8b1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/spanning-layer",component:p("/WOT-terms/docs/glossary/spanning-layer","158"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/SSI",component:p("/WOT-terms/docs/glossary/SSI","fba"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/ssi-system",component:p("/WOT-terms/docs/glossary/ssi-system","784"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/strip-parameter",component:p("/WOT-terms/docs/glossary/strip-parameter","d99"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/sub-shell",component:p("/WOT-terms/docs/glossary/sub-shell","fc2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/TCP",component:p("/WOT-terms/docs/glossary/TCP","021"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/tcp-endpoint",component:p("/WOT-terms/docs/glossary/tcp-endpoint","c43"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/TEL",component:p("/WOT-terms/docs/glossary/TEL","09d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/text-binary-concatenation-composability",component:p("/WOT-terms/docs/glossary/text-binary-concatenation-composability","9e0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/threshold-of-accountable-duplicity",component:p("/WOT-terms/docs/glossary/threshold-of-accountable-duplicity","d59"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/threshold-signature-scheme",component:p("/WOT-terms/docs/glossary/threshold-signature-scheme","18e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/TOAD",component:p("/WOT-terms/docs/glossary/TOAD","48e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/top-level-section",component:p("/WOT-terms/docs/glossary/top-level-section","86f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/trans-contextual-value",component:p("/WOT-terms/docs/glossary/trans-contextual-value","135"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/transaction-event-log",component:p("/WOT-terms/docs/glossary/transaction-event-log","016"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/transfer-off-ledger",component:p("/WOT-terms/docs/glossary/transfer-off-ledger","5da"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/transferable",component:p("/WOT-terms/docs/glossary/transferable","5f2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/transferable-identifier",component:p("/WOT-terms/docs/glossary/transferable-identifier","f6c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/transmission-control-protocol",component:p("/WOT-terms/docs/glossary/transmission-control-protocol","a57"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/trust-domain",component:p("/WOT-terms/docs/glossary/trust-domain","152"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/UI",component:p("/WOT-terms/docs/glossary/UI","f1f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/uniform-resource-locator",component:p("/WOT-terms/docs/glossary/uniform-resource-locator","822"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/unsolicited-issuance",component:p("/WOT-terms/docs/glossary/unsolicited-issuance","5c1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/URL",component:p("/WOT-terms/docs/glossary/URL","e93"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/user-interface",component:p("/WOT-terms/docs/glossary/user-interface","7cd"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/validate",component:p("/WOT-terms/docs/glossary/validate","a7c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/validator",component:p("/WOT-terms/docs/glossary/validator","1db"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/VC",component:p("/WOT-terms/docs/glossary/VC","830"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/VC-TEL",component:p("/WOT-terms/docs/glossary/VC-TEL","a9d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/VDS",component:p("/WOT-terms/docs/glossary/VDS","613"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/veracity",component:p("/WOT-terms/docs/glossary/veracity","ece"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verfer",component:p("/WOT-terms/docs/glossary/verfer","a00"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verifiable",component:p("/WOT-terms/docs/glossary/verifiable","032"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verifiable-credential",component:p("/WOT-terms/docs/glossary/verifiable-credential","5f6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verifiable-data-structure",component:p("/WOT-terms/docs/glossary/verifiable-data-structure","487"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verifiable-data-structure-(VDS)",component:p("/WOT-terms/docs/glossary/verifiable-data-structure-(VDS)","926"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verifiable-legal-entity-identifier",component:p("/WOT-terms/docs/glossary/verifiable-legal-entity-identifier","a79"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verified-integrity",component:p("/WOT-terms/docs/glossary/verified-integrity","ce6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verifier",component:p("/WOT-terms/docs/glossary/verifier","29e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verify",component:p("/WOT-terms/docs/glossary/verify","dd1"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/verify-signature",component:p("/WOT-terms/docs/glossary/verify-signature","06c"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/version",component:p("/WOT-terms/docs/glossary/version","ead"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/version-code",component:p("/WOT-terms/docs/glossary/version-code","91f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/version-string",component:p("/WOT-terms/docs/glossary/version-string","b80"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/virtual-credential-transaction-event-log",component:p("/WOT-terms/docs/glossary/virtual-credential-transaction-event-log","d5f"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/vLEI",component:p("/WOT-terms/docs/glossary/vLEI","102"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/vlei-credential",component:p("/WOT-terms/docs/glossary/vlei-credential","a73"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/vlei-ecosystem-governance-framework",component:p("/WOT-terms/docs/glossary/vlei-ecosystem-governance-framework","19d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/vlei-role-credential",component:p("/WOT-terms/docs/glossary/vlei-role-credential","0eb"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/wallet",component:p("/WOT-terms/docs/glossary/wallet","8e6"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/watcher",component:p("/WOT-terms/docs/glossary/watcher","c35"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/web-of-trust",component:p("/WOT-terms/docs/glossary/web-of-trust","121"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/well-known\xa0witnesses",component:p("/WOT-terms/docs/glossary/well-known\xa0witnesses","637"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/witness",component:p("/WOT-terms/docs/glossary/witness","fd0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/XBRL",component:p("/WOT-terms/docs/glossary/XBRL","4a0"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/glossary/zero-trust",component:p("/WOT-terms/docs/glossary/zero-trust","5ff"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/How we did/Chatbots",component:p("/WOT-terms/docs/How we did/Chatbots","8e2"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/check-and-accept-PR-production-Edusite-locally",component:p("/WOT-terms/docs/How we did/check-and-accept-PR-production-Edusite-locally","3e6"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/Create-search-index",component:p("/WOT-terms/docs/How we did/Create-search-index","562"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/create-terms-link-table",component:p("/WOT-terms/docs/How we did/create-terms-link-table","7fa"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/Docusaurus-process",component:p("/WOT-terms/docs/How we did/Docusaurus-process","498"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/embed-github-hosted-image-in-github-wiki-page",component:p("/WOT-terms/docs/How we did/embed-github-hosted-image-in-github-wiki-page","ae7"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/fill-out-terms-toip-wiki",component:p("/WOT-terms/docs/How we did/fill-out-terms-toip-wiki","caa"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/homepage-text-altering",component:p("/WOT-terms/docs/How we did/homepage-text-altering","181"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/intro",component:p("/WOT-terms/docs/How we did/intro","3a7"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/label-content-and-alert-changes",component:p("/WOT-terms/docs/How we did/label-content-and-alert-changes","32f"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/load-glossary-weboftrust-in-docusaurus",component:p("/WOT-terms/docs/How we did/load-glossary-weboftrust-in-docusaurus","85a"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/markdown-from-WOT-wiki",component:p("/WOT-terms/docs/How we did/markdown-from-WOT-wiki","28e"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/pull-changes-from-toip-to-terms",component:p("/WOT-terms/docs/How we did/pull-changes-from-toip-to-terms","cca"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/pull-in-markdown-documents",component:p("/WOT-terms/docs/How we did/pull-in-markdown-documents","359"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/sync-agenda-to-production-via-local",component:p("/WOT-terms/docs/How we did/sync-agenda-to-production-via-local","cdb"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/typesense-search-install-config",component:p("/WOT-terms/docs/How we did/typesense-search-install-config","077"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/How we did/why-terms-wot-manage-structure",component:p("/WOT-terms/docs/How we did/why-terms-wot-manage-structure","cf4"),exact:!0,sidebar:"HowWeDidSidebar"},{path:"/WOT-terms/docs/intro",component:p("/WOT-terms/docs/intro","518"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Overview/",component:p("/WOT-terms/docs/Overview/","b04"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Overview/Indexed in KERISSE",component:p("/WOT-terms/docs/Overview/Indexed in KERISSE","f35"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Overview/overview-and-context",component:p("/WOT-terms/docs/Overview/overview-and-context","bf9"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/intro",component:p("/WOT-terms/docs/Resources/intro","878"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/Keri.one labeled",component:p("/WOT-terms/docs/Resources/Keri.one labeled","8b2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-cesr-proof",component:p("/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-cesr-proof","867"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-did-keri",component:p("/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-did-keri","d8e"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-ptel",component:p("/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-ptel","f16"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-ssmith-acdc",component:p("/WOT-terms/docs/Resources/mdfiles/draft-ssmith-acdc","25d"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-ssmith-cesr",component:p("/WOT-terms/docs/Resources/mdfiles/draft-ssmith-cesr","aee"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-ssmith-ipex",component:p("/WOT-terms/docs/Resources/mdfiles/draft-ssmith-ipex","5b8"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-ssmith-keri",component:p("/WOT-terms/docs/Resources/mdfiles/draft-ssmith-keri","7ac"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-ssmith-oobi",component:p("/WOT-terms/docs/Resources/mdfiles/draft-ssmith-oobi","f2b"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/draft-ssmith-said",component:p("/WOT-terms/docs/Resources/mdfiles/draft-ssmith-said","cd2"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/IdentifierTheory-ssmith-uidt",component:p("/WOT-terms/docs/Resources/mdfiles/IdentifierTheory-ssmith-uidt","816"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Resources/mdfiles/kli-demo-2022",component:p("/WOT-terms/docs/Resources/mdfiles/kli-demo-2022","91a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Test/term_test",component:p("/WOT-terms/docs/Test/term_test","486"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Test/term_test2",component:p("/WOT-terms/docs/Test/term_test2","b05"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Test/term_test3",component:p("/WOT-terms/docs/Test/term_test3","a1a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Video/lets-keri-on-together",component:p("/WOT-terms/docs/Video/lets-keri-on-together","b5a"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Visualisations/Backed-and-Backerless-Issuance-and-Revocation",component:p("/WOT-terms/docs/Visualisations/Backed-and-Backerless-Issuance-and-Revocation","069"),exact:!0,sidebar:"main"},{path:"/WOT-terms/docs/Visualisations/KERI-&-ACDC-Architecture",component:p("/WOT-terms/docs/Visualisations/KERI-&-ACDC-Architecture","b2c"),exact:!0,sidebar:"main"}]},{path:"/WOT-terms/",component:p("/WOT-terms/","1a0"),exact:!0},{path:"*",component:p("*")}]},83476:(e,t,r)=>{"undefined"!=typeof window&&r(78702)},61359:(e,t,r)=>{"use strict";r.r(t),r.d(t,{onRouteDidUpdate:()=>s});var n=r(94898);const o=()=>{let e;for(let o=0;o{s<1||(o===n[e]&&""!==n[r]&&(document.querySelector("article").dataset.level=n[r],document.querySelector("article").classList.add("level"),document.querySelector("article").classList.add("level"+n[r]),document.querySelector("article").classList.add(n[r])),o===n[e]&&""!==n[t]&&(document.querySelector("article").dataset.type=n[t],document.querySelector("article").classList.add("type"),document.querySelector("article").classList.add("type"+n[t]),document.querySelector("article").classList.add(n[t])))}))}};function s(e){let{location:t,previousLocation:r}=e;o()}},83618:(e,t,r)=>{"use strict";r.r(t),r.d(t,{onRouteUpdate:()=>n});r(36809);function n(e){let{location:t,previousLocation:r}=e;setTimeout((()=>{document.querySelector("article").insertAdjacentHTML("beforeend","
")}),500)}},41747:(e,t,r)=>{"use strict";r.r(t),r.d(t,{onRouteDidUpdate:()=>s});var n=function(){if("undefined"!=typeof window){var e={"./src/add-async.js":function(e){e.exports=function(e){return function t(r,n,o){var s=r.splice(0,50);o=(o=o||[]).concat(e.add(s)),r.length>0?setTimeout((function(){t(r,n,o)}),1):(e.update(),n(o))}}},"./src/filter.js":function(e){e.exports=function(e){return e.handlers.filterStart=e.handlers.filterStart||[],e.handlers.filterComplete=e.handlers.filterComplete||[],function(t){if(e.trigger("filterStart"),e.i=1,e.reset.filter(),void 0===t)e.filtered=!1;else{e.filtered=!0;for(var r=e.items,n=0,o=r.length;nm.page,i=new h(e[o],void 0,n),m.items.push(i),r.push(i)}return m.update(),r}g(e.slice(0),t)}},this.show=function(e,t){return this.i=e,this.page=t,m.update(),m},this.remove=function(e,t,r){for(var n=0,o=0,s=m.items.length;o-1&&r.splice(n,1),m},this.trigger=function(e){for(var t=m.handlers[e].length;t--;)m.handlers[e][t](m);return m},this.reset={filter:function(){for(var e=m.items,t=e.length;t--;)e[t].filtered=!1;return m},search:function(){for(var e=m.items,t=e.length;t--;)e[t].found=!1;return m}},this.update=function(){var e=m.items,t=e.length;m.visibleItems=[],m.matchingItems=[],m.templater.clear();for(var r=0;r=m.i&&m.visibleItems.lengtht},innerWindow:function(e,t,r){return e>=t-r&&e<=t+r},dotted:function(e,t,r,n,o,s,i){return this.dottedLeft(e,t,r,n,o,s)||this.dottedRight(e,t,r,n,o,s,i)},dottedLeft:function(e,t,r,n,o,s){return t==r+1&&!this.innerWindow(t,o,s)&&!this.right(t,n)},dottedRight:function(e,t,r,n,o,s,i){return!e.items[i-1].values().dotted&&t==n&&!this.innerWindow(t,o,s)&&!this.right(t,n)}};return function(t){var n=new s(e.listContainer.id,{listClass:t.paginationClass||"pagination",item:t.item||"
  • ",valueNames:["page","dotted"],searchClass:"pagination-search-that-is-not-supposed-to-exist",sortClass:"pagination-sort-that-is-not-supposed-to-exist"});o.bind(n.listContainer,"click",(function(t){var r=t.target||t.srcElement,n=e.utils.getAttribute(r,"data-page"),o=e.utils.getAttribute(r,"data-i");o&&e.show((o-1)*n+1,n)})),e.on("updated",(function(){r(n,t)})),r(n,t)}}},"./src/parse.js":function(e,t,r){e.exports=function(e){var t=r("./src/item.js")(e),n=function(r,n){for(var o=0,s=r.length;o0?setTimeout((function(){t(r,o)}),1):(e.update(),e.trigger("parseComplete"))};return e.handlers.parseComplete=e.handlers.parseComplete||[],function(){var t=function(e){for(var t=e.childNodes,r=[],n=0,o=t.length;n]/g.exec(e)){var t=document.createElement("tbody");return t.innerHTML=e,t.firstElementChild}if(-1!==e.indexOf("<")){var r=document.createElement("div");return r.innerHTML=e,r.firstElementChild}}},o=function(t,r,n){var o=void 0,s=function(t){for(var r=0,n=e.valueNames.length;r=1;)e.list.removeChild(e.list.firstChild)},function(){var r;if("function"!=typeof e.item){if(!(r="string"==typeof e.item?-1===e.item.indexOf("<")?document.getElementById(e.item):n(e.item):function(){for(var t=e.list.childNodes,r=0,n=t.length;r32)return!1;var i=n,a=function(){var e,r={};for(e=0;e=y;w--){var T=a[e.charAt(w-1)];if(v[w]=0===g?(v[w+1]<<1|1)&T:(v[w+1]<<1|1)&T|(m[w+1]|m[w])<<1|1|m[w+1],v[w]&f){var _=c(g,w-1);if(_<=l){if(l=_,!((u=w-1)>i))break;y=Math.max(1,2*i-u)}}}if(c(g+1,i)>l)break;m=v}return!(u<0)}},"./src/utils/get-attribute.js":function(e){e.exports=function(e,t){var r=e.getAttribute&&e.getAttribute(t)||null;if(!r)for(var n=e.attributes,o=n.length,s=0;s=48&&e<=57}function s(e,t){for(var s=(e+="").length,i=(t+="").length,a=0,c=0;a=s&&c=i?-1:c>=i&&a=s?1:s-i}s.caseInsensitive=s.i=function(e,t){return s((""+e).toLowerCase(),(""+t).toLowerCase())},Object.defineProperties(s,{alphabet:{get:function(){return t},set:function(e){r=[];var o=0;if(t=e)for(;o{let e={valueNames:[]};document.querySelectorAll("table tr:first-child td").forEach((t=>{e.valueNames.push(t.getAttribute("class"))}));new n("table-container",e)};function s(e){let{location:t,previousLocation:r}=e;o()}},47249:(e,t,r)=>{"use strict";r.r(t),r.d(t,{onRouteDidUpdate:()=>o});const n=e=>{const t=document.querySelector(e),r="Make fullscreen";if(null!==t){const e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAA/1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD64ociAAAAVXRSTlMADVmZw9n0wphYDCab9v/1miQlCYv6+YkIitLQItEjL+gx7TLvNTDs0wtWl8Hb8/Lx2tjAVYgHz+cOyuqdnIz7xxnjLhjMgZZX6+n4h8bi5RstFYbIHbvg/gAACwVJREFUeAHswQEBABAAACAA/B/sBlQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SUy51NZqH3MFNjt2cSYxEANRWMv8hplxmTH/xJZ5PMeWdag/BFVZ+tp5zH/rff5rucx/b/+Ab4ViycRV+ff8D9znX6nW+KPeaJq4abbynX+pzYJO1yTH+ff65mYwJMNwZOJilD3/gVv/hmQaT0wcTMZkGjrt4GaHJaYzk+TmhyxxVDEPLQDtgGjfP0DD5f1XQw2ImT/1vqW3D0C0K6D9/27NkjveJGoDlD+F9P8EdwDQFYi3/9+dWGprxG2A8ufUUlsH0BWIuP8Bziy1c+I2QPmzYaldELcByp9L/wIEaoDy58pSuyZuA5Q/N5baFnEboPy5DfAM1Gsw3fsvwDNwh7gNUP7cufwK1hUIs//9fwVbkagNUP5sW3rlOroCMfc/9a45aBCzAcqfe/Pw8IiuQMT9T7tiLvrDiDtA3/9T15yMxvEaoPzH86CL6YWds8ZWIAiA4Hd3hQyHiHjdcLj/fchwZqN6vGbmANs1Xa9xcY8CZ6XZLcBJdgtwit0CnODmqZ8J+lcvQfj7GwYfj5dAP4AvoFfniM/R+zr9Pf4CCgJ8Abkah/xO0u3432ql/Cqer69W45hfvf38LC+7CufrixU5aD08lF8M+MI8n9eqv4Cv8HB+MQQaYnxAqsCLFfb/CUbffGGezysVvw9IjueP+b44nxcqvoDn9Hh8n38QoPm8TvUFRKb4CV+X5fMy1Z8H+O+m9LtLuizL51XK3wdcmdOndFeUz4vUX8DLG/8fKRwf0Gjbo0Bgzs6AcgAfkGjLfcDMHD0HugF8QKEt9wF/5uQFUA3gAwJtWUBZMl2T4i/Zu4MThqEgiKGQcxpK3H9fbkIDK1AJYz3/6yr68xMC4O8PjAiAuD8wIwDi/sCQAEj7A1MC4OrPjwmAqz8/JwDm/vwgPwBBf4EAMYD6A6PUAOrPzzIBqD8wzAyg/sA0M4D6A+PMAOoPzDMDqD8w0Ayg/sBEM4D6AyPNAOoPzDQDqD8w1A+g/sBUP4D682NdAOrPz1UBqD8/WAWg/vxkFYD686NVAOrPz1YBqD8/XAWg/vx0FYD68+NVAOrPz1cB4D9AAlQA+PkJEAHgxydABICfngARAH54AkQA+NkJEAHgRydABICfnAATAHxwAsQA+P4JUAHg+ydABIDvnwABAL5/AqwABv0TIABQ/4EADYBN/wT4ANR/I8ACoP4jARIA9V8JcACo/0yAAkD9dwIMAOo/FCAAUP+hAAGA+k8FnAdQ/62A6wDqPz6Zeh3A+P5rb8B1AKv/PwF+APv+CdgDGPVPgBvAvn8C/AD2/ROwB7DrnwAxgH3/BPgB7PsnYA9g2j8BbgD7/gnwA6j/VsAeQP33AvwA6r8XYARQ/7mAPYD67wX4AdR/L0AHoP5DAQIA9R8KEACo/1CAAED9NwIEAOo/ECAAUP/f5/t/Xnbp2gihKAoC6OJ+P64RGREx7k7/9SANEL0d3p3ZU8PpGNH/A/B1lot6KQV/KqvEvhQggGTdhC+tzdZMAcLpDPpwpDkxU4Cwdnu4MV6aAgR3OMKJ5tIUgOBwggv9kSkAxbkFDzamACQXOFDZKgDL9IT4rUwBaK6I3jxRAJ58CrFLmwIQ3RC7qgIwZRC7hQIw7RC7uwIwPRC7rgIwPRXgt+eb/bk2qASKogC4inNx92h9E9zdXfqvhSr45wUzHYxf2HVF3fiF7VTUkV/YcEX1+IX1VtSaX1hfVwV19fml7VfQsF/c6ETFTM775c1UzJ1fA6aPKuR+w68FZw8V8fjk14bTkwp4ePZrxcvf6rj7M792bFx0VUdNvm74NeXssqs6puvrvF9z+q563m4m64NN3rz9+d3nBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGx/GdjZnagPNrG7M9z72a85/XtD1TFD+6N+TRk7OKyOmpiZ9mvH6M/quKNjv1as7FbAyalfG0Z3K+LkzK8F03MVcj7m14CDirnwy+s/rJj/Z35xexV06Ze2PVRBXZ/9wr5U1JVf2EBFffUL26moI7+w64q68QubrKhbv7DJd3brwgYBIIbC8MPdXRZAokgMd/f9Z2EIrrk2vG+Gv5L1C8KyDMDjimQAJz6BugPgE5hnAJLi0C7BACQNoV0yygDkRJNQb8oA5OShX7HCAKRU2zCgwQCkXGBBfcEAZFzHMGFzYwAS7g8YsV4xAPduT5jx6jMA164bGDLeRRmAS9X3GLZs9s4SYADRUBv2JA/xz6nKAH5TPX163ST+z5d9ejFhKIahGJpZ3qfdf8POYEBgFd0NHJ18vv8E4HlPA/oLACQA6C8AkACgvwBAAoD+AgAJAPpbACQA6K8HkACgvx9AAvj+PIAE8P39ABLA9PcDSADcnweQAL6/H0ACsP5+AAkg+/MAEsD39wNIANnfDyABWH8eQAL4/n4ACYD7+wEkgOnPA0gA2N8PYC6g3dfg0a7tAEbH3KfN/v/zbgcwPOfMVv+zHcBBBdR/PwBUQP0FAEgB9TcAAAXUXwGAE1B/BwBMQP0lACgB9bcAgATUXwOAEVB/DwBEQP1FAAgB9TcBAATU3wQAEFB/EwBAQP1NAAAB9TcBAATU3wQAEFB/EwBAQP1NAAAB9TcBAATU3wQAEFB/EwBAQP1NAAAB9VcBSADwAOsBJAA43wUgAT926YACAAAAglj/1p/iYD7CWIAHAvADAroTwB8QwJ0A/oCAjQXwB/RoIIA5ICADAT4gAAMBzAEBFwjwAQEWCOAMCKhAgA8IoEAAbkDANAJ8QIAEAmADAqIS4AMCIBCAGhDwnAAfEOCAANCAgCYF+IAABgRgBgQsK8AHBCggADggIPkB/AERCAgADAg4D2ANCDFAAGBAQHkAZ0AMAQIAAwLGAxgDegQQABgQEB5g7F2DdjRhDC1H1XJQ27Zt6/2fpYfl7JQ3J+ne7wFyucmP4h80QEpAmD35AiQPj2+8AQNSvzL1LHv0OVooDh9vIeDJ13c9e/YuQBwO3/4OkC9vLnu4B1CHxre/AySJ+9nTFwHycPj2GyC/ugIna7oTIIXi8U1eAeHabmWNz2Gl4vEN7gBpyoVy5fFhJ1gsHl/aToOEk8rzL+Fy8fjyhlo7WvFupflXy3jBeHwxS82SPbxOn39zixeMx5cz1e66OthPm399hxeMx5e31WJV7ydT9u8hXjAeX95Ym0VdPnbejg8f8PdfEB9urX2ShyevInDq8X//k8XHm2ufYnDqPZ6H4fnjxHiAl4vHV94A/shLGsz8aTHzp8nMnzb3ff8PKHz4Pwn2SdHK92rMnw3o7ZYhFXdw/+u8AqNFEU4JP/9ad0AiwaiprDV/NiDMCxBq5v7XewVyeDpjjt782YC2AM7G5/7XfAVO4WTqNefPBnhwLg3c/5qvgAunMqU5fzZgDs5kWnP+bMA0vgCa82cDZuA85jTnzwY0wmm4mvNnAybxfw3k3/80/23Qg5PwNefPBozL/1Mw97+iK9AW4Dnk9ObPBtQLUCiE3P9ar0DYLUEh0po/GxCJMFhe4f7XeQXaizIMunv5+de4A1Y7pRj09KbiD8ug8/Wl+98jx6C76yN+RyeTqR7/4yR8Cx9GMXOpKv/zubYX+LZcN0OpOv+DU89tdJxG1xsP5NH56D+f1ffUHhwIAAAAAAD5vzaCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoANIpzUoj0ZyUAAAAASUVORK5CYII=",n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAC7lBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1zwCeAAAA+nRSTlMAC1KSwuf1//zr1q2APgUBL3Ok0Pn46siaWxEnnPPuljAfg+OnEpj9/rMunfqjFz37jAgDcfTpRFrPJBO5ZVntOt9hOOZAD+Ls3eWT0wohlXs2IpsGxKzyQyhQq5GvwFhG5N6FvQQrEC0jDsOyhnk03H4eFItPkMEHrsW8tH8CcM0zJrvVTsw8NZSqgilVmcYgQRkVDbds8Rh3ZuFeTKLvuJ9tv1e6dco3DM5T22pWtjn2X4Ec8BrLhCpIPxtgaEXJ98dvSWmeoG6wfXaNiXwxJYiOZBboO6Edl9hi13RjVKXa0UqKXbVNZ0tRQgmxpqhHqdngetTSj75r++YBkgAAD4lJREFUeAHs0gN6nWEQBtA3nNi2bdu27eSytm0vubbb/2Lme+as4eArAYFBwSGh5E9h4RGRUdExMFJsXHxCYkgS+VNySmpaegZ+JjMrm5jIyc2DcfILComJ5KI8fK+4pJQYKSuvgFHyK6uIkbLqGnyjtpCYqatvgDEam5qJmZZWfKUtifhp74AhOruIn7BufNZTShz19sEIHf3EUdkAPupLIp6yB2GAzCHiqWoY742MEldjmRCvZpy4mujEO5PE19Q0hGsMJr5K8NZMHTE2C+HmiLGwTABBxFnpPERbSCbOFoGlcGJtGaKtEGur01gj5oYh2Hop8baBAmJuE4LlEnNb2CbmkoshVswYMbeDROJuF2LtEXf7OCDuKiHWIXEXigniLhFiHRF3ZZgg7pJtkKqQ2MMEsVcDoWJKNYAn2CGUgzSAJzghVI0G8AgXhHJrAI9wQKjYMA3gAb0Qa1wDeMAxiHVcA3jACYh1UgN4wBrEOqUBrEuxQazY0xrAsnoIdkYDWFV1FoKdy9YAFuVCtPMawJreTojm3tcAlrRBuAtlGsCCLIh3UQP8v0uXIV7jFQ3wv66OwADT1zTA/7keACNcLtIA/yHsxk0YIvZWkgb4V7fvwCB372mAf3J/9yaMEvvgoQb4W/tpj2Cgx08OjA7Q/tQTFp/tPoexXC9uvHzqCa8YBsi5Ax9RZ8ffsHcXNkAsYRhF5wnuWgBRLIpHiWGloFEKQCK4S7W0gE3OTnK/Fu6Zf+PrASTA9/cAEuD7ewAJ8P09gAT4/h5AAnx/DCABvr8FkADf3wJIgO3vASTA9vcAEmD7ewAJsP09gATY/h5AAmx/DyABtr8HkADb3wNIgO3vASTA9vcAEmD7ewAJsP09gATY/h5AAmx/DyABtr8HkADb3wNIAOvvASQA9PcAEgD6ewAJAP09gASA/h5AAkB/D+Dpn/xnfM+Z8Qtrb6/v+v1dfD4FwL2XO7oBK7z/ne9ezwEw1hBQ/zELwBoC6j8NwBIC6j8PwAoC6j8RwAIC6j8TwAIC6j8TwAIC6j8TwAIC6j8TwAIC6j8TwAIC6j8TwAIC6j8TwAIC6j8TwAIC6j8TwAIC6j8TQAI22x8ASMCG+gMACdhQfwAgARvqDwAkYEP9JYAE+P4WQAJ8fwsgAb6/BZAA398CSIDvbwEkwPe3ABLg+1sACfD9LYAE+P4WQAJ8fwsgAb6/BZAA398CSIDvbwEkwPe3ABLg+1sACfD9LYAE+P4WQAJ8fwsgAb4/BZAA358CSIDvTwEkwPenABLg+1MACfD9KYAE+P4UQAJ8fwogAb4/BZAA358CSIDvDwBMEHDyzPi91Z8CSIDvTwEkwPenABLg+1MACfD9KYAE+P4UQAJ8fwIgAb4/AJAA338BAOPMyV2/v0vXxqJ7/yf9Lx4YmwQABDz6MJbcx2Oo/0QA5ivw6dBYcefN/Z8JQN2Az2PBXVHvfyIAdQO+fB3L7eNt9f4nAmA34M5YbqfY+58IgN2AnR/GYvvnJnv/EwG4G/BtLLbv7v1PBOBuwLGx2B679z8RALwBb39Qaw9dcEZBEIbf8E5s27a9i23btpNNuI5t27aTPxUn4286rNPPus+5qBoPrlRuoHn8/3oBDppHJ6BswCFcOazMnxrm9WJsNs8eQdmAfriyQZk/y80LHmWEeXY8ygYcw5XSyvwZbF5xKsfNsydQNmAzrpxU5s8p85KnOWOe7YCyAb1w5awyf2bbn9Y5Zx1teh5lAwrgygVl/mysbl30IjOOGkfzg7IBl3BlnjJ/WGNctGUXqGicvYy0ARVwZYI0f64YV70KXLONXu+CtAGlcWW5NH9a97Ate8X+bJUPpA1YiCs3pPnDTdvrahuA0ZbRgrfQNmAbrgzV5k+Xo/avVxlnfwDKGnB7OL4sluYPlw3rri3BV3dyJ3F3OH/f7F9owHGcuafNnzarcq97n+8eNAjRjs4BbQMe4kznmDR/eJTzch/z05MQqexTIvyP/wc8w52R/+H3/0jbq4VI04hjYYjwfAVxmueAp7gzu6Xm8R/3tF2I0K8EiQ40Ddn0eAjiBkzAoX7i/OFc+5BNg8GkuHYwZPaiFogbUP4ODu26JM4f7kzMdqMPSDN3ZcuQbu/LGSBuQOwVLm1/Ls4fNr6uHtI1fLOTTKq8bRqS3Z4Wn9Q14DJOXWygyj+uXtEeqc/+42qSzc53E8vF03/fcQD/w+z2IcoH3DoQ2YBRxfjETj0C6AGAAQD9hn+228pUZtu2bZaxzLZte2VeXJxts/d+6Yx2fq/nlxda3aqY2kCLVS8fRo6G3ul1/9W+12+mv20deeXdwLLZKvc4CrFbtctmK/E28sq6BXsXvd/3YffHykeiQPrUpWw2Ps+IQu3L6bLZGLssSLGuzfiyWdnVLAq5hl+blM1CmRFzg7QONapdNqPSfaMI6DGnbEa1Ln4LMjrxYkvZNLrX6x1FxI7vA8qm8aPSg8gSnX7W3/yrf2LJqnPXes+NImTujd9fVy1J9P+1+fufd5ENAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2/V30Yd++lr8nLYvihtYznibKpjg9fHvVKCpWNF/07/rAdjP/z2nUdWJkhSR26wHIkiAIwnAe82zbtm3btkNn27Zt27Zt22bYa++gV1PXG+8LG/n3TA291JdBvE89GpFBwXWHGMDzUYfhEtTFdzQwdi+0d+Y8g0re9DACcinSjsZytUsArR1uTyPpE4+GH5cCk2lq00Jo7EMKmthUAP+l0eNX7Vq2bPODkk/hmLk7aWHyAGhrcU6aqn0XTuk+rlS8j7ML9/vUpxksLdx/rSJ9dV49KIEz+1empckLoanrtFKiF5ywbeXn9PRVfO3ynjDTYFpMBpZiVHb5/clyRaGl9bSWwoEClg5sycDOPZtrHMrHfAxuyYXuiFiZK9PWAejoS05KF5Bgc3EGl+9eFART1WyHLU3E92esrdDP01qkcAFNjtBY7T4I4ms+mjnUKSL370IVR0ZDOyNJ4QJaHaKZZFXUrxUm6yi9P9kRuvlGChfwPTnN5bqBABbTUqzviBj9a1NR0oTQzFiqSZEHEeNHcloaAz+DctFazF6y759kVeilFUnRb8D4lrSW86LfDhlo5+U24f05GHpJQtkChialndgH1a8VDkS4e9qXVLcTWvmZniQF/wKjaO8XvAyignzHEM76d2GInIRO5pGiBcw9RwWr4GkyVfwWff8kv0En1ylbQEaqGJsQwBkqidVA5v73Uww6+UPRAgaco5K/AN5SzSjZ/fkROjlC0QIWU80/4GdMqnkuuz+fQSe1KVrAcKo5FwXzqOqp6P6cDZ08omQBCwtR0UVcp6rUCCdPazMUbkInWSlZwBmquoffVHVUdH8uc2/HHoBuyaEgjvfqnrWNZ9u2X9a2bdu2bdu2bdu2XVqbUzeTmz7z9b9s9K9mksBTL1hOAbdb0TriFivap1nuf791Pjx1puUUML8V7TM8Z0XbPev+9gg8tbDlFNDVijYB461oc2TdfwxcNcpyCljRitYDwYq2V8797W64al3LKWADK1xjAVxR9/72CXy1gNVZs135AWTY//M14asvLMM3gBzAFRdY3Z0GZz1xqcV/A8gAZNz/+AXhreYW/w0gA5Bvf5sU7nriZIv/BnAByLf/p3DYaZbtG0AIIGr/F46Aw2bYwHJ9A/gARO0/5hC47PBNcn0D6ADcELP/7OvAaYP6ZRLABuCYqRn2z9ABU8T/BYgA5Nm/EyAB/AC0P5MAFgDx+zfbFZAAVgDan0AAAQDtTyCAAID2JxBAAED7EwhgAdBN++cRQAKg2x7aP70ADgDan0AAAQDtTyCAAED8/hsjIgkgAKD98wggABC//8lR+0sAAQDtn0IAAQDtTyCAAID2JxBAAED7EwggAKD9CQRkAECwvwQQAND+BAJ4AMTtvw8ikgACAN2+1P4MAhIB0P4kAlgBPKH9SQQkAqD9aQQQAND+BAIIAGh/AgEZAGh/AgEEALQ/gQACANqfQEAGANqfQAADgCcWiNl/UUQkARkAaH8eAQwAova/Mm5/CcgAQPtTCcgAQPtTCcgAQPtTCcgAQPtTCcgAQPtTCcgAQPtTCcgAQPtTCcgB4PCo/c+BSiCggQAO/0r70wpICkD78wtICkD78wtICkD78wtICkD78wtICkD78wtICkD78wtICkD78wtICUD78wtICSBu/9FQ6QWkBKD9+QWkA+BlfwlIBSBq/6O1f8MEJALgZX8JSAPggte0f8PqNJXV31R7JAFgXvbXN8BIAPDvLwEI/veXAHIAfaeDYhWAwL+/BLAC8L+/BCA06f0lAMH//hLAC6Dv9VDUAhD495cAVgD+95cABP79JYAVgP/9JQChSe8vAQj+95cAQgB9x0J5EIDgdH8JIADgf38JQHC6vwQQAPC/vwQgON1fAggA+N9fAhCc7i8BBAD87y8BCP73lwAaADWe/SUgA4DaoVDOBCA43V8CCAD4318CEPzvLwEUAPY6qIwefeiiTjuhoq33yc7zz7xfGQ1MAICnZtte1AuVq9vOc0xpfCEYY8MvH4xKNWjxWY0yBOPs5Nt7ozItuDrp/MQAzLa+ARVp2a/MiAHQNvtoVKITayYAddX3ZlSgYT1MAOqsNgLuu3lWE4C663cVnPfI0iYAEa20E1y3zWsmAFHdBNc9ZAIQV7O2cNwNlwpAbNPCcY+ZAMQ2vBfcdkRfAYjvQLhtlAlAfNPAbRcLQAkN3wlOW3NpASijdeC0XU0AmvQhYC4BKKWN4LT7BKCUHoTTegpAKS0MpzUXgFJ6DE77WgBK6XI47XIBKKXH4bSXBKCUpoPTnjL6OmCisddjPThtwdmMvb7YxdibA26b3NhrjeX1DpSuPsbeN7jPyGu/GdzWrYuR9xi6G3krwnEnGXknovcYo67DxnDcslMadSf3Ah416maG61Yw6vYFcNitRlyzw+C69cYbcV0OAYDVjbcO78F558xqvG2BH1vwM6PtGrjvOKPtgiPwUzPWjLTOM8B/GxlptYfxSyf2MMq22glV6Nv2xliPt/Fbe15qfN16EyrSJ/2Mr77v4g/tuomxdfaMqEyH7WdsvbAO/tQRj/UwpkY+vhOq1PuTG1OX7v8B/tpCzU82kqY8c67pUbUuOaiZkbTqht3wT/U6cavTQ1/LWYdmq+0+2UWHo5L1XvTFzut/OTFvt3y6yCU74fe+BwS7xqku9X5mAAAAAElFTkSuQmCC";let o=!1;document.head.insertAdjacentHTML("beforeend",""),t.style.position="relative";let s=document.createElement("button");s.classList.add("maxMinButton"),s.classList.add("button--secondary"),s.classList.add("margin--md"),s.classList.add("button"),s.style.width="2.5em",s.style.height="2.5em",s.style.padding="0.5em",s.style.position="absolute",s.style.top="0.5em",s.style.right="0.5em",s.style.background=`#EBEDF0 url(${n}) no-repeat center`,s.style.backgroundSize="60% 60%",s.style.cursor="pointer",s.title=r,t.appendChild(s),s.addEventListener("click",(function(){t.classList.toggle("elementGoFullScreen"),o?(s.style.background=`#EBEDF0 url(${n}) no-repeat center`,s.title=r,s.style.backgroundSize="70% 70%"):(s.style.background=`#EBEDF0 url(${e}) no-repeat center`,s.title="Make smaller",s.style.backgroundSize="70% 70%"),o=!o})),document.addEventListener("keyup",(e=>{if("Escape"===e.key)t.classList.remove("elementGoFullScreen"),t.classList.remove("elementGoFullScreenStarter"),s.style.background=`#EBEDF0 url(${n}) no-repeat center`,s.style.backgroundSize="70% 70%"}))}};function o(e){let{location:t,previousLocation:r}=e;n("#table-container")}},65417:(e,t,r)=>{"use strict";r.r(t),r.d(t,{onRouteDidUpdate:()=>o});const n=e=>{const t=document.querySelector(e);if(null!==t){t.style.position="relative";const r=document.createElement("p");function n(){t.scrollWidth>t.clientWidth?(r.style.opacity="1",r.style.transition="all 1s ease-in-out"):(r.style.opacity="0",r.style.transition="all 1s ease-in-out")}r.classList.add("scrollHint"),r.innerHTML="finger scrolling horizontally Scroll to the right",r.style.opacity="0",r.style.animation="arrow-tweet-panel-pulse 0.82s ease-in-out infinite",t.appendChild(r),document.head.insertAdjacentHTML("beforeend",""),n(),new ResizeObserver(n).observe(t);let o=!1;t.onscroll=function(e){r.style.opacity="0",r.style.transition="all 1s ease-in-out",o=!0}}};function o(e){let{location:t,previousLocation:r}=e;n(".googlesheet")}},15677:(e,t,r)=>{"use strict";r.r(t),r.d(t,{onRouteDidUpdate:()=>o});const n=()=>{let e=document.querySelector(".counter"),t=document.querySelector(".subtitlecontainer");const r=e=>60*+e[0]*60+60*+e[1]+ +e[2][0];if(null!==t){const n=document.querySelectorAll("p");let o=[];n.forEach((e=>{const t=e.innerText.match(/[0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9][0-9]/)[0],n=e.innerText.match(/,[0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9][0-9]/)[0].slice(1);let s=t.split(":");s[2]=s[2].split(".");let i=r(s);i=i+"."+s[2][1];let a=n.split(":");a[2]=a[2].split(".");let c=r(a);c=c+"."+a[2][1],o.push({text:e.innerHTML.slice(24),start:i,end:c})})),document.querySelector("video").addEventListener("timeupdate",(r=>{e.innerText=r.target.currentTime,o.forEach((e=>{r.target.currentTime>e.start&&r.target.currentTime{"use strict";r.r(t),r.d(t,{onRouteDidUpdate:()=>o});const n=()=>{[...document.querySelectorAll("[data-youtubeid")].forEach((e=>{let t=``;e.insertAdjacentHTML("afterbegin",t)}))};function o(e){let{location:t,previousLocation:r}=e;t.pathname!==r?.pathname&&n()}},39518:function(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var r=0;rC});var s={maxNotifications:10,animationDuration:300,position:"bottom-right",labels:{tip:"Tip",info:"Info",success:"Success",warning:"Attention",alert:"Error",async:"Loading",confirm:"Confirmation required",confirmOk:"OK",confirmCancel:"Cancel"},icons:{tip:"question-circle",info:"info-circle",success:"check-circle",warning:"exclamation-circle",alert:"exclamation-triangle",async:"cog fa-spin",confirm:"exclamation-triangle",prefix:"",enabled:!0},replacements:{tip:null,info:null,success:null,warning:null,alert:null,async:null,"async-block":null,modal:null,confirm:null,general:{" - +
    @@ -248,6 +248,6 @@ Using the aggregate, B of blinded ACDC saids as the TEL registry entry identifier allows all members of the bulk-issued set to share the same TEL without any third party being able to discover which TEL any ACDC is using in an un-permissioned provable way. Moreover, a second party may not discover in an un-permissioned way any other ACDCs from the bulk-issued set not specifically disclosed to that second party. In order to prove to which TEL a specific bulk issued ACDC belongs, the full inclusion proof must be disclosed.

    When the ACDC is not registered using an issuance/revocation TEL then the issuance proof seal digest is the aggregate, B, itself.

    In either case, this issuance proof seal makes a verifiable binding between the issuance of all the ACDCs in the bulk issued set and the key state of the Issuer at the time of issuance.

    A Discloser may make a basic provable non-repudiable selective disclosure of a given bulk issued ACDC, at index k by providing to the Disclosee four items of information (proof of inclusion). These are as follows:

    • The ACDC in compact form (at index k) where dk as the value of its top-level SAID, d, field.
    • The blinding factor, vk from which bk = H(vk + dk) may be computed.
    • The list of all blinded SAIDs, [b0, b1, ...., bM-1] that includes bk.
    • A reference to the anchoring seal in the Issuer's KEL or TEL that references the aggregate B. The event that references the seal or the TEL event that references B must be signed by the issuer so the signature on either event itself is sufficient to prove authorized issuance.

    The aggregate B is a point of unpermissioned correlation but not permissioned correlation. To remove B as a point of unpermissioned correlation requires using independent TEL bulk-issued ACDCs described in the section so named below.

    A Disclosee may then verify the disclosure by:

    • computing dj on the disclosed compact ACDC.
    • computing bk = H(vk + dk)
    • confirming that the computed bk appears in the provided list [b0, b1, ...., bM-1].
    • computing the aggregate B from the provided list [b0, b1, ...., bM-1]..
    • confirming the presence of an issuance seal digest in the Issuer's KEL that makes a commitment to the aggregate, B, either directly or indirectly through a TEL registry entry. This provides proof of authorized issuance.

    The last 3 steps that culminate with verifying the anchoring seal also require verifying the key state of the Issuer at the time of issuance, this may require additional verification steps as per the KERI, PTEL, and CESR-Proof protocols.

    The requirement of an anchored issuance proof seal of the aggregate B means that the forger MUST first successfully publish in the KEL of the issuer an inclusion proof digest seal bound to a set of forged bulk issued ACDCs. This makes any forgery attempt detectable. To elaborate, the only way to successfully publish such a seal is in a subsequent interaction event in a KEL that has not yet changed its key state via a rotation event. Whereas any KEL that has changed its key state via a rotation must be forked before the rotation. This makes the forgery attempt either both detectable and recoverable via rotation in any KEL that has not yet changed its key state or detectable as duplicity in any KEL that has changed its key state. In any event, the issuance proof seal makes any later attempt at forgery using compromised keys detectable.

    Inclusion Proof via Merkle Tree

    The inclusion proof via aggregated list may be somewhat verbose when there are a very large number of bulk issued ACDCs in a given set. A more efficient approach is to create a Merkle tree of the blinded SAID digests, bk and set the aggregate B value as the Merkle tree root digest {{Mrkl}}.

    The Merkle tree needs to have appropriate second-pre-image attack protection of interior branch nodes {{TwoPI}}{{MTSec}}. The discloser then only needs to provide a subset of digests from the Merkle tree to prove that a given digest, bk contributed to the Merkle tree root digest. For a small numbered bulk-issued set of ACDCs, the added complexity of the Merkle tree approach may not be worth the savings in verbosity.

    Bulk Issuance of Private ACDCs with Unique Issuee AIDs

    One potential point of provable but un-permissioned correlation among any group of colluding malicious Disclosees (Second-Party verifiers) may arise when the same Issuee AID is used for presentation/disclosure to all Disclosees in that group. Recall that the contents of private ACDCs are not disclosed except to permissioned Disclosees (Second-Parties). Thus a common Issuee AID would only be a point of correlation for a group of colluding malicious verifiers. But in some cases removing this un-permissioned point of correlation may be desirable.

    One solution to this problem is for the Issuee to use a unique AID for the copy of a bulk-issued ACDC presented to each Disclosee in a given context. This requires that each ACDC copy in the bulk-issued set use a unique Issuee AID. This would enable the Issuee in a given context to minimize provable correlation by malicious Disclosees against any given Issuee AID. In this case, the bulk issuance process may be augmented to include the derivation of a unique Issuee AID in each copy of the bulk-issued ACDC by including in the inception event that defines a given Issuee's self-addressing AID, a digest seal derived from the shared salt and copy index k. The derivation path for the digest seal is "k/0." where k is the index of the ACDC. To clarify "k/0." specifies the path to generate the UUID to be included in the inception event that generates the Issuee AID for the ACDC at index k. This can be generated on-demand by the Issuee. Each unique Issuee AID would also need its own KEL. But generation and publication of the associated KEL can be delayed until the bulk-issued ACDC is actually used. This approach completely isolates a given Issuee AID to a given context with respect to the use of a bulk-issued private ACDC. This protects against even the un-permissioned correlation among a group of malicious Disclosees (Second Parties) via the Issuee AID.

    Blindable State TEL

    In some applications, it is desirable that the current state of a transaction event log (TEL) be hidden or blinded such that the only way for a potential verifier of the state to observe that state is when the controller of a designated AID discloses it at the time of presentation. This designated AID we call the Discloser. Typically for ACDCs that have an Issuee, the Discloser is the Issuee, but the Issuer could designate any AID as the Discloser. Only the Discloser will be able to unblind the state to a potential Disclosee.

    In a blindable state TEL, the state disclosure is interactive. A Disclosee may only observe the state when unblinded via an interactive exchange with the Discloser. After disclosure, the Discloser may then request that the Issuer update the state with a new blinding factor (the blind). The Disclosee cannot then observe the current state of the TEL without yet another disclosure interaction with the Discloser.

    The blind is derived from a secret salt shared between the Issuer and the designated Discloser. The current blind is derived from this salt, and the sequence number of the TEL event is so blinded. To elaborate, the derivation path for the blind is the sequence number of the TEL event, which in combination with the salt, produces a universally unique salty nonce for the blind. Only the Issuer and Discloser have a copy of the secret salt, so only they can derive the current blind. The Issuer provides a service endpoint to which the Discloser can make a signed request to update the blind. Each new event in the TEL MUST change the blinding factor but MAY or MAY NOT change the actual blinded state. Only the Issuer can change the actual blinded state. Because each updated event in the TEL has a new blinding factor regardless of an actual change of state or not, an observer can not correlate state changes to event updates as long as the Issuer regularly updates the blinding factor by issuing a new TEL event.

    Blindable State TEL events use a unique event type, upd. The event state is hidden in the a field, whose value is the blinded SAID of a field map that holds the TEL state. The field map's SAID is its d field. The blinding factor is provided in the field map's u field. The SAID of the associated ACDC is in the field map's i field or else the aggregate value for bulk issued ACDCs. The actual state of the TEL for that ACDC is provided by other fields in the a, field map. A simple state could use the s field for state or status.

    When the u field is missing or empty, then the event is not blindable. When the u field has sufficient entropy, then the SAID of the enclosing field map effectively blinds the state provided by that map. The discloser must disclose the field map to the Disclosee, who can verify that its SAID matches the SAID in the TEL. A subsequent update event entered into that TEL will then re-blind the state of the TEL so that any prior Disclosees may no longer verify the current state of the TEL.

    Blindable State TEL Top-Level Fields

    LabelDescriptionNotes
    vversion string
    devent digestSAID
    ssequence number of event
    tmessage type of eventupd
    dtissuer system data/time in iso format
    pprior event digestSAID
    riregistry identifier from management TEL
    raregistry anchor to management TEL
    astate attributed digestSAID

    Blindable State TEL Attribute (state) Fields

    LabelDescriptionNotes
    dattribute digestSAID
    usalty nonce blinding factorUUID
    inamespaced identifier of VC or aggregate when bulk issuedSAID or Aggregate
    sstate valueissued or revoked

    Independent TEL Bulk-Issued ACDCs

    Recall that the purpose of using the aggregate B for a bulk-issued set from which the TEL identifier is derived is to enable a set of bulk-issued ACDCs to share a single public TEL and/or a single anchoring seal in the Issuer's KEL without enabling un-permissioned correlation to any other members of the bulk set by virtue of the shared aggregate B used for either the TEL or anchoring seal in the KEL. When using a TEL this enables the issuance/revocation/transfer state of all copies of a set of bulk-issued ACDCs to be provided by a single TEL which minimizes the storage and compute requirements on the TEL registry while providing selective disclosure to prevent un-permissioned correlation via the public TEL. When using an anchoring seal, this enables one signature to provide proof of inclusion in the bulk-issued aggregate B.

    However, in some applications where chain-link confidentiality does not sufficiently deter malicious provable correlation by Disclosees (Second-Party verifiers), an Issuee may benefit from using ACDC with independent TELs or independent aggregates B but that are still bulk-issued.

    In this case, the bulk issuance process must be augmented so that each uniquely identified copy of the ACDC gets its own TEL entry (or equivalently its own aggregate B) in the registry. Each Disclosee (verifier) of a full presentation/disclosure of a given copy of the ACDC only receives proof of one uniquely identified TEL and can NOT provably correlate the TEL state of one presentation to any other presentation because the ACDC SAID, the TEL identifier, and the signature of the issuer on each aggregate B will be different for each copy. There is, therefore no point of provable correlation, permissioned or otherwise. One could for example, modulate this apprach by having a set of smaller bulk issued sets that are more contextualized than one large bulk issued set.

    The obvious drawbacks of this approach (independent unique TELs for each private ACDC) are that the size of the registry database increases as a multiple of the number of copies of each bulk-issued ACDC and every time an Issuer must change the TEL state of a given set of copies it must change the state of multiple TELs in the registry. This imposes both a storage and computation burden on the registry. The primary advantage of this approach, however, is that each copy of a private ACDC has a uniquely identified TEL. This minimizes un-permissioned Third-Party exploitation via provable correlation of TEL identifiers even with colluding Second-Party verifiers. They are limited to statistical correlation techniques.

    In this case, the set of private ACDCs may or may not share the same Issuee AID because for all intents and purposes each copy appears to be a different ACDC even when issued to the same Issuee. Nonetheless, using unique Issuee AIDs may further reduce correlation by malicious Disclosees (Second-Party verifiers) beyond using independent TELs.

    To summarize the main benefit of this approach, in spite of its storage and compute burden, is that in some applications chain-link confidentiality does not sufficiently deter un-permissioned malicious collusion. Therefore completely independent bulk-issued ACDCs may be used.

    Extensibility

    ToDo

    Append-only verifiable data structures have strong security properties that simplify end-verifiability & foster decentralization.

    Append-only provides permission-less extensibility by downstream issuers, presenters, and/or verifiers

    Each ACDC has a universally-unique content-based identifier with a universally-unique content-based schema identifier.

    Fully decentralized name-spacing.

    Custom fields are appended via chaining via one or more custom ACDCs defined by custom schema (type-is-schema).

    No need for centralized permissioned name-space registries to resolve name-space collisions.

    The purposes of a registry now become merely schema discovery or schema blessing for a given context or ecosystem.

    The reach of the registry is tuned to the reach of desired interoperability by the ecosystem participants.

    Human meaningful labels on SAIDs are local context only.

    Versioning is simplified because edges still verify if new schema are backwards compatible. (persistent data structure model).

    Appendix: Performance and Scalability

    The compact disclosure and distribute property graph fragment mechanisms in ACDC can be leveraged to enable high performance at scale. Simply using SAIDs and signed SAIDs of ACDCs in whole or in part enables compact but securely attributed and verifiable references to ACDCs to be employed anywhere performance is an issue. Only the SAID and its signature need be transmitted to verify secure attribution of the data represented by the SAID. Later receipt of the data may be verified against the SAID. The signature does not need to be re-verified because a signature on a SAID is making a unique (to within the cryptographic strength of the SAID) commitment to the data represented by the SAID. The actual detailed ACDC in whole or in part may then be cached or provided on-demand or just-in-time.

    Hierarchical decomposition of data into a distributed verifiable property graph, where each ACDC is a distributed graph fragment, enables performant reuse of data or more compactly performant reuse of SAIDs and their signatures. The metadata and attribute sections of each ACDC provide a node in the graph and the edge section of each ACDC provides the edges to that node. Higher-up nodes in the graph with many lower-level nodes need only be transmitted, verified, and cached once per every node or leaf in the branch not redundantly re-transmitted and re-verified for each node or leaf as is the case for document-based verifiable credentials where the whole equivalent of the branched (graph) structure must be contained in one document. This truly enables the bow-tie model popularized by Ricardian contracts, not merely for contracts, but for all data authenticated, authorized, referenced, or conveyed by ACDCs.

    Appendix: Cryptographic Strength and Security

    Cryptographic Strength

    For crypto-systems with perfect-security, the critical design parameter is the number of bits of entropy needed to resist any practical brute force attack. In other words, when a large random or pseudo-random number from a cryptographic strength pseudo-random number generator (CSPRNG) {{CSPRNG}} expressed as a string of characters is used as a seed or private key to a cryptosystem with perfect-security, the critical design parameter is determined by the amount of random entropy in that string needed to withstand a brute force attack. Any subsequent cryptographic operations must preserve that minimum level of cryptographic strength. In information theory {{IThry}}{{ITPS}} the entropy of a message or string of characters is measured in bits. Another way of saying this is that the degree of randomness of a string of characters can be measured by the number of bits of entropy in that string. Assuming conventional non-quantum computers, the convention wisdom is that, for systems with information-theoretic or perfect security, the seed/key needs to have on the order of 128 bits (16 bytes, 32 hex characters) of entropy to practically withstand any brute force attack. A cryptographic quality random or pseudo-random number expressed as a string of characters will have essentially as many bits of entropy as the number of bits in the number. For other crypto-systems such as digital signatures that do not have perfect security, the size of the seed/key may need to be much larger than 128 bits in order to maintain 128 bits of cryptographic strength.

    An N-bit long base-2 random number has 2N different possible values. Given that no other information is available to an attacker with perfect security, the attacker may need to try every possible value before finding the correct one. Thus the number of attempts that the attacker would have to try maybe as much as 2N-1. Given available computing power, one can easily show that 128 is a large enough N to make brute force attack computationally infeasible.

    Let's suppose that the adversary has access to supercomputers. Current supercomputers can perform on the order of one quadrillion operations per second. Individual CPU cores can only perform about 4 billion operations per second, but a supercomputer will parallelly employ many cores. A quadrillion is approximately 250 = 1,125,899,906,842,624. Suppose somehow an adversary had control over one million (220 = 1,048,576) supercomputers which could be employed in parallel when mounting a brute force attack. The adversary could then try 250 220 = 270 values per second (assuming very conservatively that each try only took one operation). There are about 3600 24 * 365 = 313,536,000 = 2log2313536000=224.91 ~= 225 seconds in a year. Thus this set of a million super computers could try 250+20+25 = 295 values per year. For a 128-bit random number this means that the adversary would need on the order of 2128-95 = 233 = 8,589,934,592 years to find the right value. This assumes that the value of breaking the cryptosystem is worth the expense of that much computing power. Consequently, a cryptosystem with perfect security and 128 bits of cryptographic strength is computationally infeasible to break via brute force attack.

    Information Theoretic Security and Perfect Security

    The highest level of cryptographic security with respect to a cryptographic secret (seed, salt, or private key) is called information-theoretic security {{ITPS}}. A cryptosystem that has this level of security cannot be broken algorithmically even if the adversary has nearly unlimited computing power including quantum computing. It must be broken by brute force if at all. Brute force means that in order to guarantee success the adversary must search for every combination of key or seed. A special case of information-theoretic security is called perfect-security {{ITPS}}. Perfect-security means that the ciphertext provides no information about the key. There are two well-known cryptosystems that exhibit perfect security. The first is a one-time-pad (OTP) or Vernum Cipher {{OTP}}{{VCphr}}, the other is secret splitting {{SSplt}}, a type of secret sharing {{SShr}} that uses the same technique as a one-time-pad.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    • SAID - Self-Addressing Identifier - any identifier which is deterministically generated out of the content, digest of the content

    Security Considerations

    Refer to the body of the specification. Security considerations are included in the context of each section. The ACDC specification is security driven so the specification itself is riddled with discussions of the security considerations in the context in which those discussions are most understandable and relevant.

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    ACDC community.

    - + \ No newline at end of file diff --git a/docs/CarbonCopies/WebOfTrust-ietf-cesr-proof-main-draft-pfeairheller-cesr-proof/index.html b/docs/CarbonCopies/WebOfTrust-ietf-cesr-proof-main-draft-pfeairheller-cesr-proof/index.html index 9f8920495e7..c5e6d866df6 100644 --- a/docs/CarbonCopies/WebOfTrust-ietf-cesr-proof-main-draft-pfeairheller-cesr-proof/index.html +++ b/docs/CarbonCopies/WebOfTrust-ietf-cesr-proof-main-draft-pfeairheller-cesr-proof/index.html @@ -7,7 +7,7 @@ - +
    @@ -70,6 +70,6 @@ author:

      -
    name: Stefan Gössner
    -
    name: Glyn Normington
    -
    name: Carsten Bormann
    date: 2021-10-25

    tags: IETF, CESR, SAID, KERI, ACDC

    --- abstract

    CESR Proof Signatures are an extension to the Composable Event Streaming Representation [CESR] that provide transposable cryptographic signature attachments on self-addressing data (SAD) [SAID]. Any SAD, such as an Authentic Chained Data Container (ACDC) Verifiable Credential [ACDC] for example, may be signed with a CESR Proof Signature and streamed along with any other CESR content. In addition, a signed SAD can be embedded inside another SAD and the CESR proof signature attachment can be transposed across envelope boundaries and streamed without losing any cryptographic integrity.

    --- middle

    Introduction

    Composable Event Streaming Representation (CESR) is a dual text-binary encoding format that has the unique property of text-binary concatenation composability. The CESR specification not only provides the definition of the streaming format but also the attachment codes needed for differentiating the types of cryptographic material (such as signatures) used as attachments on all event types for the Key Event Receipt Infrastructure (KERI) [KERI]. While all KERI event messages are self-addressing data (SAD), there is a broad class of SADs that are not KERI events but that require signature attachments. ACDC Verifiable credentials fit into this class of SADs. With more complex data structures represented as SADs, such as verifiable credentials, there is a need to provide signature attachments on nested subsets of SADs. Similar to indices in indexed controller signatures in KERI that specify the location of the public key they represent, nested SAD signatures need a path mechanism to specify the exact location of the nested content that they are signing. CESR Proof Signatures provide this mechanism with the CESR SAD Path Language and new CESR attachment codes, detailed in this specification.

    Streamable SADs

    A primary goal of CESR Proof Signatures is to allow any signed self-addressing data (SAD) to be streamed inline with any other CESR content. In support of that goal, CESR Proof Signatures leverage CESR attachments to define a signature scheme that can be attached to any SAD content serialized as JSON [JSON], MessagePack [MGPK] or CBOR [CBOR]. Using this capability, SADs signed with CESR Proof Signatures can be streamed inline in either the text (T) or binary (B) domain alongside any other KERI event message over, for example TCP or UDP. In addition, signed SADs can be transported via HTTP as a CESR HTTP Request (todo: reference needed).

    Nested Partial Signatures

    CESR Proof Signatures can be used to sign as many portions of a SAD as needed, including the entire SAD. The signed subsets are either SADs themselves or the self-addressing identifer (SAID) of a SAD that will be provided out of band. A new CESR count code is included with this specification to allow for multiple signatures on nested portions of a SAD to be grouped together under one attachment. By including a SAD Path in the new CESR attachment for grouping signatures, the entire group of signatures can be transposed across envelope boundaries by changing only the root path of the group attachment code.

    Transposable Signature Attachments

    There are several events in KERI that can contain context specific embedded self-addressing data (SADs). Exchange events (exn) for peer-to-peer communication and Replay events (rpy) for responding to data requests as well as Expose events (exp) for providing anchored data are all examples of KERI events that contain embedded SADs as part of their payload. If the SAD payload for one of these event types is signed with a CESR attachment, the resulting structure is not embeddable in one of the serializations of map or dictionary like data models. (JSON, CBOR, MessagePack) supported by CESR. To solve this problem, CESR Proof Signatures are transposable across envelope boundaries in that a single SAD signature or an entire signature group on any given SAD can be transposed to attach to the end of an enveloping SAD without losing its meaning. This unique feature is provided by the SAD Path language used in either a SAD signature or the root path designation in the outermost attachment code of any SAD signature group. These paths can be updated to point to the embedded location of the signed SAD inside the envelope. Protocols for verifiable credential issuance and proof presentation can be defined using this capability to embed the same verifiable credential SAD at and location in an enveloping exn message as appropriate for the protocol without having to define a unique signature scheme for each protocol.

    CESR SAD Path Language

    CESR Proof Signatures defines a SAD Path Language to be used in signature attachments for specifying the location of the SAD content within the signed SAD that a signature attachment is verifying. This path language has a more limited scope than alternatives like JSONPtr [RFC6901] or JSONPath [JSONPath] and is therefore simpler and more compact when encoding in CESR signature attachments. SADs in CESR and therefore CESR Proof Signatures require static field ordering of all maps. The SAD path language takes advantage of this feature to allow for a Base64 compatible syntax into SADs even when a SAD uses non-Base64 compatible characters for field labels.

    Description and Usage

    The SAD path language contains a single reserved character, the - (dash) character. Similar to the / (forward slack) character in URLs, the - in the SAD Path Language is the path separator between components of the path. The - was selected because it is a one of the valid Base64 characters.

    The simplest path in the SAD Path Language is a single - character representing the root path which specifies the top level of the SAD content.

    Root Path

     -

    After the root path, path components follow, delimited by the - character. Path components may be integer indices into field labels or arrays or may be full field labels. No wildcards are supported by the SAD Path Language.

    An example SAD Path using only labels that resolve to map contexts follows:

    -a-personal

    In addition, integers can be specified and their meaning is dependent on the context of the SAD.

    -1-12-personal-0

    The rules for a SAD Path Language processor are simple. If a path consists of only a single -, it represents the root of the SAD and therefore the entire SAD content. Following any - character is a path component that points to a field if the current context is a map in the SAD or is an index of an element if the current context is an array. It is an error for any sub-path to resolve to a value this is not a map or an array. Any trailing - character in a SAD Path can be ignored.

    The root context (after the initial -) is always a map. Therefore, the first path component represents a field of that map. The SAD is traversed following the path components as field labels or indexes in arrays until the end of the path is reached. The value at the end of the path is then returned as the resolution of the SAD Path. If the current context is a map and the path component is an integer, the path component represents an index into fields of the map. This feature takes advantage of the static field ordering of SADs and is used against any SAD that contains field labels that use non-Base64 compatible characters or the - character. Any combination of integer and field label path components can be used when the current context is a map. All path components MUST be an integer when the current context is an array.

    CESR Encoding for SAD Path Language

    SAD Paths are variable raw size primitives that require CESR variable size codes. We will use the A small variable size code for SAD Paths which has 3 code entries being added to the Master Code Table, 4A##, 5A## and 6A## for SAD Paths with 0 lead bytes, 1 lead byte and 2 lead bytes respecively. This small variable size code is reserved for text values that only contain valid Base64 characters. These codes are detailed in Table 2 below. The selector not only encodes the table but also implicitly encodes the number of lead bytes. The variable size is measured in quadlets of 4 characters each in the T domain and equivalently in triplets of 3 bytes each in the B domain. Thus computing the number of characters when parsing or off-loading in the T domain means multiplying the variable size by 4. Computing the number of bytes when parsing or off-loading in the B domain means multiplying the variable size by 3. The two Base64 size characters provide value lengths in quadlets/triplets from 0 to 4095 (64*2 -1). This corresponds to path lengths of up to 16,380 characters (4095 4) or 12,285 bytes (4095 * 3).

    SAD Path Examples

    This section provides some more examples for SAD Path expressions. The examples are based on Authentic Chained Data Containers (ACDCs) representing verifiable credentials.

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "legalName": "John Doe",
    "home-city": "Durham"
    }
    },
    "p": [
    {
    "qualifiedIssuerCredential": {
    "d": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA",
    "i": "Et2DOOu4ivLsjpv89vgv6auPntSLx4CvOhGUxMhxPS24"
    }
    },
    {
    "certifiedLender": {
    "d": "EglG9JLG6UhkLrrv012NPuLEc1F3ne5vPH_sHGP_QPN0",
    "i": "E8YrUcVIqrMtDJHMHDde7LHsrBOpvN38PLKe_JCDzVrA"
    }
    }
    ]
    }

    Figure 1. Example ACDC Credential SAD

    The examples in Table 1 represent all the features of the SAD Path language when referring to the SAD in Figure 1. along with the CESR text encoding.

    SAD PathResultCESR T Domain Encoding
    -The root of the SAD6AABAAA-
    -a-personalThe personal map of the a field4AADA-a-personal
    -4-5The personal map of the a field4AAB-4-5
    -4-5-legalName"John Doe"5AAEAA-4-5-legalName
    -a-personal-1"Durham"6AAEAAA-a-personal-1
    -p-1The second element in the p array4AAB-p-1
    -a-LEI"254900OPPU84GM83MG36"5AACAA-a-LEI
    -p-0-0-d"EIl3MORH...6DZA"4AAC-p-0-0-d
    -p-0-certifiedLender-i"E8YrUcVI...zVrA"5AAGAA-p-0-certifiedLender-i

    Alternative Pathing / Query Languages

    The SAD Path language was chosen over alternatives such as JSONPtr and JSONPath in order to create a more compact representation of a pathing language in the text domain. Many of the features of the alternatives are not needed for CESR Proof Signatures. The only token in the language (-) is Base64 compatible. The use of field indices in SADs (which require staticly ordered fields) allows for Base64 compatible pathing even when the field labels of the target SAD are not Base64 compatible. The language accomplishes the goal of uniquely locating any path in a SAD using minimally sufficient means in a manner that allows it to be embedded in a CESR attachment as Base64. Alternative syntaxes would need to be Base64 encoded to be used in a CESR attachment in the text domain thus incurring the additional bandwidth cost of such an encoding.

    CESR Attachments

    This specification adds 2 Counter Four Character Codes to the Master Code Table and uses 1 Small Variable Raw Size Code Type and 1 Large Variable Raw Size Code Type from the Master Code Table (each of which have 3 code entries).

    Counter Four Character Codes

    The SAD Path Signature counter code is represented by the four character code -J##. The first two characters reserve this code for attaching the couplet (SAD Path, Signature Group). The second two characters represent the count in hexidecimal of SAD path signatures are in this attachment. The path is attached in the T domain using the codes described in the next section. The signature group is from either a transferable identifier or a non-transferable identifier and therefore attached using the CESR codes -F## or -C## respectively as described in the CESR Specification [CESR].

    Variable Size Codes

    The code A is reserved as a Small Variable Raw Size Code and AAA as a Large Variable Raw Size Code for Base64 URL safe strings. SAD Paths are Base64 URL safe strings and so leverage these codes when encoded in the CESR T domain. To account for the variable nature of path strings, the variable size types reserve 3 codes each with prefix indicators of lead byte size used for adjusting the T domain encoding to multiples of 4 characters and the B domain to multiples of 3 bytes. For the Small codes the prefix indicators are 4, 5 and 6 representing 0, 1 and 2 lead bytes respectively and for Large codes the prefix indicators are 7, 8, and 9 representing 0, 1 and 2 lead bytes respectively. The resulting 6 code entries are displayed in the table that follows.

    The additions to the Master Code Table of CESR is shown below:

    CodeDescriptionCode LengthCount or Index LengthTotal Length
    Counter Four Character Codes
    -J##Count of attached qualified Base64 SAD path sig groups path+sig group (trans or non-trans)224
    -K##Count of attached qualified Base64 SAD Path groups224
    Small Variable Raw Size Code
    4A##String Base64 Only with 0 Lead Bytes224
    5A##String Base64 Only with 1 Lead Byte224
    6A##String Base64 Only with 2 Lead Bytes224
    Large Variable Raw Size Code
    7AAA####String Base64 Only with 0 Lead Bytes448
    8AAA####String Base64 Only with 1 Lead Byte448
    9AAA####String Base64 Only with 2 Lead Bytes448

    CESR Signature Attachments

    CESR defines several counter codes for attaching signatures to serialized CESR event messages. For KERI event messages, the signatures in the attachments apply to the entire serialized content of the KERI event message. As all KERI event messages are SADs, the same rules for signing a KERI event message applies to signing SADs for CESR Proof Signatures. A brief review of CESR signatures for transferable and non-transferable identifiers follows. In addition, signatures on nested content must be specified.

    Signing SAD Content

    Signatures on SAD content require signing the serialized encoding format of the data ensuring that the signature applies to the data over the wire. The serialization for any SAD is identified in the version string which can be found in the v field of any KERI event message or ACDC credential. An example version string follows:

     {
    "v": "KERI10JSON00011c_"
    }

    where KERI is the identifier of KERI events followed by the hexidecimal major and minor version code and then the serialized encoding format of the event, JSON in this case. KERI and ACDC support JSON, MessagePack and CBOR currently. Field ordering is important when apply cryptographic signatures and all serialized encoding formats must support static field ordering. Serializing a SAD starts with reading the version string from the SAD field (v for KERI and ACDC events message) to determine the serialized encoding format of the message. The serialized encoding format is used to generate the SAID at creation and can not be changed. The event map is serialized using a library that ensures the static field order perserved across serialization and deserialization and the private keys are used to generate the qualified cryptographic material that represents the signatures over the SAD content.

    The same serialized encoding format must be used when nesting a SAD in another SAD. For example, an ACDC credential that was issued using JSON can only be embedded and presented in a KERI exn presentation event message that uses JSON as its serialized encoding format. That same credential can not be transmitted using CBOR or MessagePack. Controllers can rely on this restriction when verifying signatures of embedded SADs. When processing the signature attachments and resolving the data at a given SAD path, the serialization of the outter most SAD can be used at any depth of the traversal. New verison string processing does not need to occur at nested paths. However, if credential signature verification is pipelined and processed in parallel to the event message such that the event message is not avaiable, the version string of the nested SAD will still be valid and can be used if needed.

    Each attached signature is accompanied by a SAD Path that indicates the content that is signed. The path must resolve within the enveloping SAD to either a nested SAD (map) or a SAID (string) of an externally provided SAD. This of course, includes a root path that resolves to the enveloping SAD itself.

    Signatures with Non-Transferable Identifiers

    Non-transferable identifiers only ever have one public key. In addition, the identifier prefix is identical to the qualified cryptographic material of the public key and therefore no KEL is required to validate the signature of a non-transferable identifier [KERI]. The attachment code for witness receipt couplets, used for CESR Proof Signatures, takes this into account. The four character couner code -C## is used for non-transferable identifiers and contains the signing identfier prefix and the signature [CESR]. Since the verification key can be extracted from the identifier prefix and the identifier can not be rotated, all that is required to validate the signature is the identifier prefix, the data signed and the signature.

    Signatures with Transferable Identifiers

    Transferable identifiers require full KEL resolution and verfication to determine the correct public key used to sign some content [KERI]. In addition, the attachment code used for transferable identifiers, -F## must specify the location in the KEL at which point the signature was generated [CESR]. To accomplish this, this counter code includes the identifier prefix, the sequence number of the event in the KEL, the digest of the event in the KEL and the indexed signatures (transferable identifiers support multiple public/private keys and require index signatures). Using all the values, one can verify the signature(s) by retrieving the KEL of the identifier prefix and determine the key state at the sequence number along with validating the digest of the event against the actual event. Then using the key(s) at the determined key state, validate the signature(s).

    Additional Count Codes

    This specification adds two Counter Four Character Codes to the CESR Master Code Table for attaching and grouping transposable signatures on SAD and nested SAD content. The first code (-J##) is reserved for attaching a SAD path and the associated signatures on the content at the resolution of the SAD Path (either a SAD or its associated SAID). The second reserved code (-K##) is for grouping all SAD Path signature groups under a root path for a given SAD. The root path in the second grouping code provides signature attachment transposability for embedding SAD content in other messages.

    SAD Path Signature Group

    The SAD Path Signature Group provides a four character counter code, -J##, for attaching an encoded variable length SAD Path along with either a transferable index signature group or non-transferable identifer receipt couplets. The SAD Path identifies the content that this attachment is signing. The path must resolve to either a nested SAD (map) or a SAID (string) of an externally provided SAD within the context of the SAD and root path against which this attachment is applied. Using the following ACDC SAD embedded in a KERI exn message:

    {
    "v": "KERI10JSON00011c_",
    "t": "exn",
    "dt": "2020-08-22T17:50:12.988921+00:00",
    "r": "/credential/offer",
    "a": {
    "credential": { // SIGNATURE TARGET OF TRANSPOSED SAD PATH GROUP
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "legalName": "John Doe",
    "home": "Durham"
    }
    }
    }
    }
    }

    the following signature applies to the nested credential SAD signed by a transferable identifier using the transferable index signature group. The example is annotated with spaces and line feeds for clarity and an accompanied table is provided with comments.

    -JAB
    6AAEAAA-a-credential
    -FAB
    E_T2_p83_gRSuAYvGhqV3S0JzYEF2dIa-OCPLbIhBO7Y
    -EAB0AAAAAAAAAAAAAAAAAAAAAAB
    EwmQtlcszNoEIDfqD-Zih3N6o5B3humRKvBBln2juTEM
    -AAD
    AA5267UlFg1jHee4Dauht77SzGl8WUC_0oimYG5If3SdIOSzWM8Qs9SFajAilQcozXJVnbkY5stG_K4NbKdNB4AQ
    ABBgeqntZW3Gu4HL0h3odYz6LaZ_SMfmITL-Btoq_7OZFe3L16jmOe49Ur108wH7mnBaq2E_0U0N0c5vgrJtDpAQ
    ACTD7NDX93ZGTkZBBuSeSGsAQ7u0hngpNTZTK_Um7rUZGnLRNJvo5oOnnC1J2iBQHuxoq8PyjdT3BHS2LiPrs2Cg
    codedescription
    -JABSAD path signature group counter code 1 following the group
    6AAEAAA-a-credentialencoded SAD path designation
    -FABTrans Indexed Sig Groups counter code 1 following group
    E_T2_p83_gRSuAYvGhqV3S0JzYEF2dIa-OCPLbIhBO7Ytrans prefix of signer for sigs
    -EAB0AAAAAAAAAAAAAAAAAAAAAABsequence number of est event of signer's public keys for sigs
    EwmQtlcszNoEIDfqD-Zih3N6o5B3humRKvBBln2juTEMdigest of est event of signer's public keys for sigs
    -AADController Indexed Sigs counter code 3 following sigs
    AA5267...4AQsig 0
    ABBgeq...pAQsig 1
    ACTD7N...2Cgsig 2

    The next example demostrates the use of a non-transferable identifier to sign SAD content. In this example, the entire nested SAD located at the a field is signed by the non-transferable identfier:

    -JAB
    5AABAA-a
    -CAB
    BmMfUwIOywRkyc5GyQXfgDA4UOAMvjvnXcaK9G939ArM
    0BT7b5PzUBmts-lblgOBzdThIQjKCbq8gMinhymgr4_dD0JyfN6CjZhsOqqUYFmRhABQ-vPywggLATxBDnqQ3aBg
    codedescription
    -JABSAD path signature group counter code 1 following the group
    5AABAA-aencoded SAD path designation
    -CABNonTrans witness receipt couplet
    BmMfUwIOywRkyc5GyQXfgDA4UOAMvjvnXcaK9G939ArMnon-trans prefix of signer of sig
    0BT7b5... aBgsig

    SAD Path Groups

    The SAD Path Group provides a four character counter code, -K##, for attaching encoded variable length root SAD Path along with 1 or more SAD Path Signature Groups. The root SAD Path identifies the root context against which the paths in all included SAD Path Signature Groups are resolved. When parsing a SAD Path Group, if the root path is the single - character, all SAD paths are treated as absolute paths. Otherwise, the root path is prepended to the SAD paths in each of the SAD Path Signature Groups. Given the following snippet of a SAD Path Group:

    -KAB6AABAAA--JAB5AABAA-a...

    The root path is the single - character meaning that all subsequent SAD Paths are absolute and therefore the first path is resolved as the a field of the root map of the SAD as seen in the following example:

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // SIGNATURE TARGET OF SAD PATH GROUP
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "legalName": "John Doe",
    "city": "Durham"
    }
    }
    }

    Transposable Signature Attachments

    To support nesting of signed SAD content in other SAD content the root path of SAD Path Groups or the path of a SAD Path Signature Group provides transposability of CESR SAD signatures such that a single SAD Path Signature Group or an entire SAD Path Group attachment can be transposed across envelope boundaries by updating the single path or root path to indicate the new location. Extending the example above, the SAD content is now embedded in a KERI exn event message as follows:

    {
    "v": "KERI10JSON00011c_",
    "t": "exn",
    "dt": "2020-08-22T17:50:12.988921+00:00"
    "r": "/credential/offer"
    "a": {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // SIGNATURE TARGET OF TRANSPOSED SAD PATH GROUP
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "legalName": "John Doe",
    "city": "Durham"
    }
    }
    }
    }

    The same signature gets transposed to the outer exn SAD by updating the root path of the -K## attachment:

    -KAB5AABAA-a-JAB5AABAA-a...

    Now the SAD Path of the first signed SAD content resolves to the a field of the a field of the streamed exn message

    Small Variable Raw Size SAD Path Code

    The small variable raw side code reserved for SAD Path encoding is A which results in the addition of 3 entries (4A##, 5A## and 6A##) in the Master Code Table for each lead byte configuration. These codes and their use are discussed in detail in CESR Encoding for SAD Path Language.

    Nested Partial Signatures

    Additional signatures on nested content can be included in a SAD Path Group and are applied to the serialized data at the resolution of a SAD path in a SAD. Signatures can be applied to the SAID or an entire nested SAD. When verifying a CESR Proof Signature, the content at the resolution of the SAD path is the data that was signed. The choice to sign a SAID or the full SAD effects how the data may be used in presentations and the rules for verifying the signature.

    Signing Nested SADs

    When signing nested SAD content, the serialization used at the time of signing is the only serialization that can be used when presenting the signed data. When transposing the signatures and nesting the signed data, the enveloping SAD must use the same serialization that was used to create the signatures. This is to ensure that all signatures apply to the data over the wire and not a transformation of that data. The serialization can be determined from the version field (v) of the nested SAD or any parent of the nested SAD as they are guaranteed to be identical. Consider the following ACDC Credential SAD:

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // SIGNATURE TARGET OF SAD PATH GROUP
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
    "first": "John",
    "last": "Doe"
    }
    }
    }

    To sign the SAD located at the path -a, JSON serialization would be used because the SAD at that path does not have a version field so the version field of its parent is used. The serialization rules (spacing, field ordering, etc) for a SAD would be used for the SAD and the serialization encoding format and the signature would be applied to the bytes of the JSON for that map. Any presentation of the signed data must always include the fully nested SAD. The only valid nesting of this credential would be as follows:

    {
    "v": "KERI10JSON00011c_",
    "t": "exn",
    "dt": "2020-08-22T17:50:12.988921+00:00"
    "r": "/credential/apply"
    "a": {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // FULL SAD MUST BE PRESENT
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "legalName": {
    "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
    "first": "John",
    "last": "Doe"
    }
    }
    }
    }

    Signing SAIDs

    Applying signatures to a SAD with SAIDs in place of fully expanded nested SAD content enables compact credentials for domains with bandwidth restrictions such as IoT. Consider the following fully expanded credential:

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "legalName": {
    "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
    "n": "sKHtYSiCdlibuLDS2PTJg1AZXtPhaySZ9O3DoKrRXWY",
    "first": "John
    "middle": "William"
    "last": "Doe"
    },
    "address": {
    "d": "E-0luqYSg6cPcMFmhiAz8VBQObZLmTQPrgsr7Z1j6CA4",
    "n": "XiSoVDNvqV8ldofPyTVqQ-EtVPlkIIQTln9Ai0yI05M",
    "street": "123 Main St",
    "city": "Salt Lake City",
    "state": "Utah",
    "zipcode": "84157"
    },
    "phone": {
    "d": "E6lty8H2sA_1acq8zg89_kqF194DbF1cDpwA7UPtwjPQ",
    "n": "_XKNVntbcIjp12DmsAGhv-R7JRwuzjD6KCHC7Fw3zvU"
    "mobile": "555-121-3434",
    "home": "555-121-3435",
    "work": "555-121-3436",
    "fax": "555-121-3437"
    }
    }
    }
    }

    The three nested blocks of the a block legalName, address and phone are SADs with a SAID in the d field and are candidates for SAID replacement in an issued credential. A compact credential can be created and signed by replacing those three nested blocks with the SAID of each nested SAD. The schema for this verifiable credential would need to specify conditional subschema for the field labels at each nesting location that requires the full schema of the nested SAD or a string for the SAID. The commitment to a SAID in place of a SAD contains nearly the same cryptographic integrity as a commitment to the SAD itself since the SAID is the qualified cryptographic material of a digest of the SAD. The same credential could be converted to a compact credential containing the SAIDs of each nested block and signed as follows:

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "legalName": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
    "address": "E-0luqYSg6cPcMFmhiAz8VBQObZLmTQPrgsr7Z1j6CA4",
    "phone": "E6lty8H2sA_1acq8zg89_kqF194DbF1cDpwA7UPtwjPQ"
    }
    }

    It is important to note that if this version of the credential is the one issued to the holder and the signature over the entire credential is on the serialized data of this version of the credential it is the only version that can be presented. The full SAD data of the three nested blocks would be delivered out of band from the signed credential. The top level schema would describe the blocks with conditional subschema for each section. The credential signature becomes a cryptographic commitment to the contents of the overall credential as well as the content of each of the blocks and will still validate the presented credential with significantly less bandwidth.

    With this approach, credential presentation request and exchange protocols can be created that modify the schema with the conditional subschema, removing the conditions that allow for SAIDs in place of the required (or presented) nested blocks. The modified schema can be used in such a protocol to indicate the required sections to be delivered out of bounds or as a commitment to provide the nested blocks after the crendential presentation has occurred.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    TODO Security

    IANA Considerations

    The Internet Assigned Numbers Authority (IANA) is a standards organization that oversees global IP address allocation, autonomous system number allocation, root zone management in the Domain Name System (DNS), media types, and other Internet Protocol-related symbols and Internet numbers.

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    Dr Sam Smith, Kevin Griffin and the Global Legal Entity Identifier Foundation (GLEIF)

    - + \ No newline at end of file diff --git a/docs/CarbonCopies/WebOfTrust-ietf-ipex-main-draft-ssmith-ipex/index.html b/docs/CarbonCopies/WebOfTrust-ietf-ipex-main-draft-ssmith-ipex/index.html index 1e769b32f31..9589b30498d 100644 --- a/docs/CarbonCopies/WebOfTrust-ietf-ipex-main-draft-ssmith-ipex/index.html +++ b/docs/CarbonCopies/WebOfTrust-ietf-ipex-main-draft-ssmith-ipex/index.html @@ -7,7 +7,7 @@ - +
    @@ -143,6 +143,6 @@ The process of verifying that a SAD via its SAID of a section is included in a schema authorized variant down from the top-level SAID is equivalent to a Merkle Tree proof of inclusion along a path in the Merkel Tree down from its Root. This allows a single signature to provide proof of Issuance of the presentation of any schema authorized variants of the ACDC.

    An Issuer MAY provide signatures of the SAIDS of other variants, as well as signatures of the SADs of other variants.

    Proof of issuance is provided by disclosing the SAID of the most compact variant and the signature by the Issuer on that SAID.

    Proof of disclosure is provided by disclosing the SAD of the most compact variant and then recursively disclosing the nested SADs of each of the top level sections of the most compact variant as needed for the promised disclosure.

    Thus for any disclosed variant of an ACDC, the Disclosee need only verify only one proof of issuance as defined above and may need to verify a different proof of disclosure for each disclosed variant as defined above.

    Example Most Compact Variant

    The following schema supports a compact variant

    {
    "$id": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "Public ACDC",
    "description": "Example JSON Schema Public ACDC.",
    "credentialType": "PublicACDCExample",
    "type": "object",
    "required":
    [
    "v",
    "d",
    "i",
    "ri",
    "s",
    "a",
    "e",
    "r"
    ],
    "properties":
    {
    "v":
    {
    "description": "ACDC version string",
    "type": "string"
    },
    "d":
    {
    "description": "ACDC SAID",
    "type": "string"
    },
    "i":
    {
    "description": "Issuer AID",
    "type": "string"
    },
    "ri":
    {
    "description": "credential status registry AID",
    "type": "string"
    },
    "s":
    {
    "description": "schema section",
    "oneOf":
    [
    {
    "description": "schema section SAID",
    "type": "string"
    },
    {
    "description": "schema detail",
    "type": "object"
    },
    ]
    },
    "a":
    {
    "description": "attribute section",
    "oneOf":
    [
    {
    "description": "attribute section SAID",
    "type": "string"
    },
    {
    "description": "attribute detail",
    "type": "object",
    "required":
    [
    "d",
    "i",
    "score",
    "name"
    ],
    "properties":
    {
    "d":
    {
    "description": "attribute section SAID",
    "type": "string"
    },
    "i":
    {
    "description": "Issuee AID",
    "type": "string"
    },
    "score":
    {
    "description": "test score",
    "type": "integer"
    },
    "name":
    {
    "description": "test taker full name",
    "type": "string"
    }
    },
    "additionalProperties": false,
    }
    ]
    },
    "e":
    {
    "description": "edge section",
    "oneOf":
    [
    {
    "description": "edge section SAID",
    "type": "string"
    },
    {
    "description": "edge detail",
    "type": "object",
    "required":
    [
    "d",
    "boss"
    ],
    "properties":
    {
    "d":
    {
    "description": "edge section SAID",
    "type": "string"
    },
    "boss":
    {
    "description": "boss edge",
    "type": "object",
    "required":
    [
    "d",
    "n",
    's',
    "w"
    ],
    "properties":
    {
    "d":
    {
    "description": "edge SAID",
    "type": "string"
    },
    "n":
    {
    "description": "far node SAID",
    "type": "string"
    },
    "s":
    {
    "description": "far node schema SAID",
    "type": "string",
    "const": ""EiheqcywJcnjtJtQIYPvAu6DZAIl3MORH3dCdoFOLe71"
    },
    "w":
    {
    "description": "edge weight",
    "type": "string"
    },
    "additionalProperties": false
    },
    },
    "additionalProperties": false
    }
    ]
    },
    "r":
    {
    "description": "rule section",
    "oneOf":
    [
    {
    "description": "rule section SAID",
    "type": "string"
    },
    {
    "description": "rule detail",
    "type": "object",
    "required":
    [
    "d",
    "warrantyDisclaimer",
    "liabilityDisclaimer"
    ],
    "properties":
    {
    "d":
    {
    "description": "edge section SAID",
    "type": "string"
    },
    "warrantyDisclaimer":
    {
    "description": "warranty disclaimer clause",
    "type": "object",
    "required":
    [
    "d",
    "l"
    ],
    "properties":
    {
    "d":
    {
    "description": "clause SAID",
    "type": "string"
    },
    "l":
    {
    "description": "legal language",
    "type": "string"
    }
    },
    "additionalProperties": false
    },
    "liabilityDisclaimer":
    {
    "description": "liability disclaimer clause",
    "type": "object",
    "required":
    [
    "d",
    "l"
    ],
    "properties":
    {
    "d":
    {
    "description": "clause SAID",
    "type": "string"
    },
    "l":
    {
    "description": "legal language",
    "type": "string"
    }
    },
    "additionalProperties": false
    }
    },
    "additionalProperties": false
    }
    ]
    }
    },
    "additionalProperties": false
    }

    The following JSON field map serialization satisfies the rules for most compact variant of the schema above.

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "did:keri:EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "ri": "did:keri:EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "e": "ERH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZIl3MOA",
    "r": "Ee71iheqcywJcnjtJtQIYPvAu6DZIl3MORH3dCdoFOLB"
    }

    The Issuer signs the SAID, d field value of the field map above.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    TODO Security

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    TODO acknowledge.

    - + \ No newline at end of file diff --git a/docs/CarbonCopies/WebOfTrust-keria-main-docs-protocol/index.html b/docs/CarbonCopies/WebOfTrust-keria-main-docs-protocol/index.html index 3c955a95cae..cc450570cc2 100644 --- a/docs/CarbonCopies/WebOfTrust-keria-main-docs-protocol/index.html +++ b/docs/CarbonCopies/WebOfTrust-keria-main-docs-protocol/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ can be generated using a salt or truly random depending on the requirements of the service hosting the KERIA service.

    {
    "v": "KERI10JSON00015f_",
    "t": "dip", // Delegated AID
    "d": "EEXekkGu9IAzav6pZVJhkLnjtjM5v3AcyA-pdKUcaGei",
    "i": "EEXekkGu9IAzav6pZVJhkLnjtjM5v3AcyA-pdKUcaGei", // Agent AID
    "s": "0",
    "kt": "1",
    "k": [
    "DMZh_y-H5C3cSbZZST-fqnsmdNTReZxIh0t2xSTOJQ8a"
    ],
    "nt": "1",
    "n": [
    "EM9M2EQNCBK0MyAhVYBvR98Q0tefpvHgE-lHLs82XgqC"
    ],
    "bt": "0",
    "b": [],
    "c": [],
    "a": [],
    "di": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose" // Delegated signing authority from Client AID
    }

    Step Three: Signify Client Delegation Approval

    Note that all HTTP requests against the Admin Interface must be signed by the Client AID and expect all responses to be signed by the Agent AID.

    The Signify Client will approve the delegation of the client AID with an interaction event that it sends back to the KERIA service over the Admin interface.

    Once these steps are complete the Signify Client can begin using the rest of the Admin interface to create AIDs, issue credentials, etc.

    Reconnecting to Existing Agent Worker

    Document the steps for retrieving state from the Admin interface and updating.

    Key Generate Methods

    The KERIA service supports the following key generation methods where the Signify Client generates the keys and only ever sends encrypted key material (if any) to the server.

    1. Salty Keys - HDK key chain generated from a salt per aid that is encrypted and stored server.
    2. Randy Keys - Randomly generated keys (signing and rotation) that are encrypted and store on the server.
    3. Sandy Keys - Keys generated from a different salt for inception and each rotation.
    4. Group Keys - Signify Client/KERIA Service AIDs participating in a distributed group multisig AID.
    5. HSM Keys - Signify Client uses a Signify HSM Integration Module (SHIM) to manage keys and signatures.

    For all key generation methods, the Signify Client creates and signs all KERI events, credentials, etc. ensuring that unencrypted private key material never leaves the client. The key generate methods are descrive in more detail in the following sections.

    Salty Keys

    The Salty Key algorithm is used to create a hierarchical deterministic key chain for each AID by generating a unique random salt for each AID and stretching the salt using Argon2 with a path that is calculated from the AIDs index relative to all other AIDs and the key index calculated by the total number of signing and rotation keys over the lifetime of the AID.

    The salt for each AID is encrypted with the X25519 encryption key generated from the passcode and stored on the server with other AID metadata, including the AID index and current key index.

    The Signify Client API must accept the AID salt as an optional parameter to creating Salty Key AIDs allowing users to manage AID salts externally or to share Salts across AIDs if required.

    The following Python data class represents the metadata storage for Salty Key AIDs:

    class SaltyPrm:
    """
    Salty prefix's parameters for creating new key pairs
    """
    sxlt: str = '' # qualified b64 encoded AID salt
    pidx: int = 0 # prefix index for this keypair sequence
    kidx: int = 0 # key index for this keypair sequence
    stem: str = '' # default unique path stem for salty algo
    tier: str = '' # security tier for stretch index salty algo
    dcode: str = '' # next digest hasing code
    icodes: list = field(default_factory=list) # current signing key seed codes
    ncodes: list = field(default_factory=list) # next key seed codes
    transferable: bool = False

    Salty Key Salt Rotations

    Document the procedure for rotating a new Salt in for a Salty Key AID.

    Randy Keys

    The Randy Key algorithm allows for all signing and rotation private keys to be generated solely from entropy and encrypted with the X25519 encryption key generated from the passcode and stored on the server alongside other AID metadata.

    The server stores the encrypted private key material for signing and rotation keys in separate LMBD sub-databases as indexed qualified base 64 CESR encoded Cipher representations.

    Sandy Keys

    Group Keys

    The Group Key algorithm is a special key generation algorith for distributed group multisig AIDs that does not manage and keys at all. Instead this algoritm allows for the specification of an AID of one of the other three types to be the "local" participant in a distributed group multisig AID.

    All signing operations must be performed on the Signify Client on behalf of the "local" AID for this Signify Client indexed based on the local AID's location in both the signing key list and the rotation key list.

    HSM Keys (Experimental)

    The SignifyPy Signify Client defines an experimental interface for declaring external modules that can be used as Signify HSM Integration Modules to allow all key generation and event signing to occur in an external Hardware Security Module (HSM).

    Two sample implementations have been defined to date, one using the Google KSM and one using a Trezure One external HSM.

    The following psuedo Python class represents the current, experimental interface a SHIM has to implememnt to work with SignifyPy. It is anticipated that each Signify Client implementation defines a similar interface.

    class Shim:
    def incept(self, transferable=True):
    """ Create an AID using the Google KSM for key generation and event signing.

    Parameters:
    transferable (bool): True means create a transferable AID which allows for key rotation

    Returns:
    keys (list): list of qualified base64 public signing key deriviations based on the codes passed into init
    ndigs (list): list of qualified base64 digests of public rotation key derivations based on the codes
    passed into init

    """

    def rotate(self, ncount, transferable):
    """ Rotate an AID using the Google KSM for key generation and event signing.

    Parameters:
    ncount (int): number of new rotation keys to generate
    transferable (bool): True means create a transferable AID which allows for key rotation

    Returns:
    keys (list): list of qualified base64 public signing key deriviations based on the codes passed into init
    ndigs (list): list of qualified base64 digests of public rotation key derivations based on the codes
    passed into init

    """

    def sign(self, ser, indexed=True, indices=None, ondices=None, **_):
    """

    Parameters:
    ser (bytes): content to be signed
    indexed (bool): True means generated indexed signatures
    indices (list): Optional list of indices to use when generating indexed signatures
    ondices (list): Optional list of rotation indices to use when generating dual indexed signatures
    **_: Placeholder

    Returns:
    sigs (list): list of qualified base64 signatures over the based in ser
    """

    Passcode Rotation

    To perform a passcode rotation, the Signify Client requires both old and new passcodes and must perform the following steps:

    1. Encrypted the old passcode with X25519 key generated from the new passcode.
    2. Perform a partial rotation of the Client AID as described below.
    3. Decrypt all salts with X25519 key from old passcode for Salty Keys, validate them against current public keys, encrypt with X25519 key from new passcode
    4. Decrypt all keys with X25519 key from old passcode for Randy Keys, validate them against current public keys, encrypt with X25519 key from new passcode
    5. Send all rotation event and all recrypted material in a POST request to the agent on /agent/<Client AID>

    Partial Client AID Rotaion in Support of Passcode Rotation

    To provide post-quantum secure passcode recovery, a passcode recovery must be accompanied by partial rotation of the Client AID. This partial rotation is possible because the user will have to provide both old and new passcodes to initiate the process.

    The partial rotation of the Client AID is accomplished by using the old passcode to regenerate the the prior rotation key pair called R0 from the latest establishment event. In addition, two new key pairs are generated from the new passocde, one used for signing authority (S0) and one used for rotation authority (R1) in the new rotation event.

    The public key for S0 is used as the first signing key in the new rotation event; it is giving a fractionally weighted threshold of "1". The public key for R0 is used as the second signing key in the new rotation event; it is giving a fractionally weighted threshold of "0". A Blake3 has is created of the public key for R1 and is used as the next rotation key commitment.

    The rotation event is signed with the private keys of both S0 and R0. An example of a partial rotation event of the Client AID from above follows with its signatures:

    {
    "v": "KERI10JSON000195_",
    "t": "rot",
    "d": "EGTAY6x1tTbOO27LCy3poh5iW0Oa2Cq1s7wsVnj152Zi",
    "i": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose",
    "s": "1",
    "p": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose",
    "kt": [
    "1", // Threshold for key derived from NEW passcode, has full signing authority
    "0" // Threshold for key derived from OLD passcode, no signing authority
    ],
    "k": [
    "DAbWjobbaLqRB94KiAutAHb_qzPpOHm3LURA_ksxetVc", // Derived from NEW passcode as salt, kidx = 0
    "DHMAZEksiqGxlNKnm0pSAyMRPK1ZKyBfGV8q_B9r6pLs" // Derived from OLD passcode as salt, kidx = 1 (matches previous rotation key)
    ],
    "nt": "1",
    "n": [
    "EIFG_uqfr1yN560LoHYHfvPAhxQ5sN6xZZT_E3h7d2tL" // Derived from NEW passcode as salt, kidx = 1, Blake3 Hashed
    ],
    "bt": "0",
    "br": [],
    "ba": [],
    "a": []
    }

    With the following attached signatures:

    [
    "AADuzJ4zU8MkLBPP8Os9UPbTvNqoQ4YDImNkTjfknWgJW25V6EmwZ59PXas0zKhxtp_dOhvkPqtqIhgarOFwt7sC",
    "2AABAACRZGDB7s4hmYnt7vTYGWCawhnqHndWUy_rtR_L8mfNmrJ4N5S05wAZ6w5RoL68h1HjIzO7ZuiF30XBz1cC6eUA"
    ]

    The first signature satisfies the current signing threshold and has only one index, 0 for signing key index. The second signature satifies the prior rotation threshold and thus uses dual index code to specify a current signing index of 1 and a prior signing index of 0.

    The following steps are followed to accept the passcode rotation:

    1. Verify and accept the Client AID rotation
    2. Verify the signature on the request against the NEW signing key of the Client AID
    3. Save encrypted old passcode
    4. Update all Salty Key encrypted salts
    5. Update all Randy Key encrypted keys
    6. Delete encrypted old passcode

    Passcode Rotation Recovery

    When each Agent Worker is loaded it will check for a saved old passcode to detect an aborted passcode rotation. If a saved encrypted old passcode is found the Agent Worker will notify the client in the response to the state call that a passcode rotation recovery is needed and lock out all other operations until it is completed successfully.

    To perform a passcode rotation recovery, the Signify Client requires only the new passcode and must perform the following steps:

    1. Retrieve the encrypted old passcode and decrypt it with X25519 key generated from the new passcode.
    2. Perform a revised partial rotation of the Client AID where you rotate out to a new next key not new signing key.
    3. Attempt to decrypt all salts with the X25519 keys from both the old and new passcode for Salty Keys
    4. For any salt still encrypted with the old passcode, encrypt with X25519 key from new passcode
    5. Attempt to decrypt all keys with the X25519 keys from both the old and new passcode for Randy Keys
    6. Validate them against current public keys and for any key still encrypted with the old passcode, encrypt with X25519 key from new passcode
    7. Send all rotation event and all recrypted material in a POST request to the agent on /agent/<Client AID>

    Signify Request/Response Authentication

    Signify clients must sign all requests to the KERIA Admin Interface using the latest signing key of the Client AID and must expect all responses from the KERIA service be signed by the latest signing key of the Agent AID. Both request and response signing rely on the same set of HTTP headers to accomplish request/response signing.

    Metadata Headers

    Document Signify-Resource and Signify-Timestamp headers here.

    Signature Input Header

    Document the Signagture-Input header here with link to https://httpwg.org/http-extensions/draft-ietf-httpbis-message-signatures.html

    Signature Header

    Docuemnt the signing method and Signature header.

    - + \ No newline at end of file diff --git a/docs/Concepts/index.html b/docs/Concepts/index.html index 233309ee979..2d49831e0b7 100644 --- a/docs/Concepts/index.html +++ b/docs/Concepts/index.html @@ -7,7 +7,7 @@ - +
    @@ -63,6 +63,6 @@ We consider all other control and surveillance to be "needless".

    Manifestion: A robust witness network along with consistent witness rotation provides protection from monitoring and association of an individual's activity inside a KERI network.\ Source Phil Feairheller

    - + \ No newline at end of file diff --git a/docs/Concepts/intro/index.html b/docs/Concepts/intro/index.html index 25a2e34f690..ff9e0e6a03b 100644 --- a/docs/Concepts/intro/index.html +++ b/docs/Concepts/intro/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/docs/Concepts/keri-dev-env/index.html b/docs/Concepts/keri-dev-env/index.html index 9d53775055a..743e6275bd9 100644 --- a/docs/Concepts/keri-dev-env/index.html +++ b/docs/Concepts/keri-dev-env/index.html @@ -7,7 +7,7 @@ - +
    @@ -24,6 +24,6 @@ It is an object-oriented, class-based, garbage-collected language with C-style syntax.It can compile to either native code or JavaScript, and supports interfaces, mixins, abstract classes, reified generics and type inference.

    Source

    Why is it relevant for KERI, CESR and/or ACDC?

    Not yet, we might want to support it, it's been proposed in the past.

    Why Dart and not something else?

    | TBW |

    KeriML

    What is KeriML?

    KIMI Keri Interactive Mobile Interface, pronounced “Caramel”

    Why is it relevant for KERI, CESR and/or ACDC?

    Keep repackage Electron app to invoke python backend IIW demos (April 2022) on UX/UI

    Why KeriML and not something else?

    It's been subject to name squating, it's pending.

    HIO

    What is HIO?

    Weightless Hierarchical asynchronous coroutines and I/O in Python.\ Rich Flow Based Programming Hierarchical Structured Concurrency with Asynchronous IO.

    Why is it relevant for KERI, CESR and/or ACDC?

    Choosing HIO fits the asynchronous nature of KERI. See more at Github Repository

    Why KeriML and not something else?

    The minimal sufficient means design principle of KERI and the leading KERIpy implementation.

    - + \ No newline at end of file diff --git a/docs/Education/KERI-Mooc/index.html b/docs/Education/KERI-Mooc/index.html index cd1413581e6..a252c214b01 100644 --- a/docs/Education/KERI-Mooc/index.html +++ b/docs/Education/KERI-Mooc/index.html @@ -7,7 +7,7 @@ - +
    @@ -19,6 +19,6 @@ Be aware that in this MOOC, that is individually focussed, we skip the more team-oriented topics, like multisig schemes, network security, verifiable credentials and governance and alike.

    *including keeping your priv keys private

    By Who: The creators

    • Content
      • Current team members are busy programming. We should not disturb them too much. We might call on non-programming volunteers that have advanced fudamental knowledge.
    • e-Learning Management System (LMS)
      • Moodle

    Use of English

    For Central Europeans a non-native proficient use of English could be satisfactory.

    Personally I think it is not a good idea to have KERI theory translated into Spanish, Mandarin, etc. KERI theory sounds like English, but it's not and we'll create even more hurdles to overcome when we translate to another foreign language.

    Native speaking

    Maybe a non-native speaker is better than native speakers from the UK, Canada or the US because native speakers in a complex technology field tend to use hard to grasp constructions?

    For US, Canada and UK, we might need to record a native speaker to come across more convincingly. But in that case we need to be careful that the wording is simple and understandable for laymen.

    How it's done

    • e-learning with vids.
      • Presentation skills of the creators will certainly help to bring the message across smoothly.
    • Incentive program
    • On mobile phone
      • offline
    • Asynchronous learning
      • practise on prototypes and test environments
    • Synchronous learning and participation
    • Test and graduation / certification

    Pre-recorded video play and text chat

    AMA 1

    First we play a video for first timers, and in the meanwhile we'll be available on the chat for guidance and first answers and after this prerecorded video with text-chat option we'll go over to interactive Q&A.

    AMA 2 Full-swing Zoom Q&A and text chat

    We could open up on Zoom with other interested Newbies who join in later (because they've already seen the pre-recorded stuff)

    for live discussion and Q&A, of course with a host that repeats questions posed in the chat and gives the person that has sent in the question the opportunity to repeat the question with voice & vid. We've tested this concept in the Netherlands and it went well.

    Example program bi-weekly

    So the example program could be:

    Wednesday 4 PM CEST Pre-recorded video play and text chat

    Wednesday 4:30 PM CEST Zoom Q&A and text chat, **this week's topics only!**

    Repetition every 8 weeks

    The whole series will be repeated and revised every 8 weeks. New tutors can be trained (train the teacher) and within 2 month play a role in teaching others.

    TopicWkDatePrePost
    You get to decide1dategeneral knowledge of identity systems and identifiersknow three types of identifier systems and why they are important
    Practise Self Sov2dateAwareness of status of algoritmic and autonomic identifier systemsKnowledge and practise of pseudonymous self determining identifiers in social media: creation, binding and removal.
    Universal IDs3dateKnows where to draw the line between administrative identifiers and self-sovereign identifiersFundamental knowledge about the pre-requisites and features of a truly universal identifier
    Basic cryptographical one way functions4dateCryptography: hiding, encryption and decryption minimal knowledgeHashing, Signing, Public Private keys
    KERI why and basics5dateUniversal identifiers, basic Internet technology expertise, "https:" and certificates, decentralization in general, basic cryptographical one way functionsKERI thin layers, KERI's unique universal objective, self-certifying and self-admin identifiers, key event logs, primairy and secondary roots of trust.
    Key event logs, KERI duplicity game6dateKERI basics, basic crypography, gamification: eavesdropping, hostile behaviour, etcFully grasp what KERI is about and what it isn't. What KERI cares about and what not. Understand the set bounderies of KERI core and its expandable thin layering.
    KERI and DIDs7dateKnowledgeable about what KERI is, and what DIDs comprise ofSimilarities, Differences, mutual positioning, combination, challenges
    Key rotation and key delegation, Consensus protocols for secondary roots of trust8dateLegal identifiers in generalUnderstanding of the new concepts introduced by KERI and their impact on the internet and self-sovereign public identifiers

    Supportive resources

    When students find our 'KERI MOOC" in the middle of an ongoing series, then there are two options:

    1. work backwards in high speed
    2. wait until the next series

    Backward learning

    We will have more than one video of half an hour pre-recording of which the text-chat will also be recorded. And the Q&A will also be recorded.

    To facilitate catching up for students that want to hop on the bandwagon the latest series will be available publicly as Zoom recording.

    Further reading

    Every lesson will have sufficient links to Keri.one resources, but the level of abstraction should increase step by step.

    We can only re-use or create Open Source course material, e.g. CC by SA

    Example video

    Future Internet Identity

    This example is a general introduction about the why of autonomic IDs and tries to put listeners to work at the end. We could also focus more specific on KERI in future recordings or even the relationship between KERI and DIDs, KERI and other algorithmic and autonomic ID systems.

    Henk van Cann's presentation about (the why of) autonomic identifiers called: "You control, therefore you are, and you get to decide" https://vimeo.com/552459966/2586f0e23c.

    It is a first-time, one-take presentation based on this article: https://medium.com/happy-blockchains/you-control-therefore-you-are-and-you-get-to-decide-2e2e615714a9.

    How

    Moodle expert Peter Haasdijk, working from the Netherlands thinks along with us. His first recommendations:

    • don't depend too heavily on the off-line capacities of the Moodle e-learning system
    • two VP servers needed, one for Moodle (e-learning), one for BigBluebutton ( online video conferencing )
    • Forget about HSP content (too heavy)
    • It's going to be a flat MOOC, no java, no graphical highlights
    • How's the KERI specific content currently served, like video's, articles, etc.

    For a first set-up he needs these parameters:

    • participants

    • concurrent participants

    • content
    • mobile adaptive content

    Henk's prediction

    We're going to fail. To do continuous development and deployment in a Moodle stack and also alter content in a 24x7 available system that needs to serve mobile phones and authenticate users is doomed to fail. But let's fail fast and let's fail often. From what we learn by failure, we'll adjust the solution every MOOC cycle.

    When?

    As soon as possible, but it's done when it's done.

    First steps to take:

    1. Select an e-LMS (Moodle is a good candidate)
    2. Find experts to create the MOOC
    3. Gather open source course material to reference for further reading
    4. Write high abstraction level articles which have a narative flow
    5. Practise presenting the content of the articles
    6. Professionally record the first three half hour pre-recorded vids
    7. Get the series started and see where we get
    - + \ No newline at end of file diff --git a/docs/Education/Q-and-A-Security/index.html b/docs/Education/Q-and-A-Security/index.html index 02e4c927c53..16ba327a339 100644 --- a/docs/Education/Q-and-A-Security/index.html +++ b/docs/Education/Q-and-A-Security/index.html @@ -7,7 +7,7 @@ - +
    @@ -169,6 +169,6 @@ Actually BA came years before PoW so its the other way around (PoW provides BA like guarantees) but thats a quibble. So anyone trying to grasp how KERI security is guaranteed should first learn how non-PoW BA works before he/she could begin to believe why KERI could even work at all. Once you see this, then the dominos will start to fall.

    ***Q: The guarantees stated about KERI are inappropriate without a particular witness structure?

    ...and then you have to evaluate the witness strategy, which means KERI on its own doesn’t have the guarantees that the KERI creator keeps claiming.

    A KERI witness structure never needs to provide total ordering (where total ordering is precisely defined in the literature for distributed consensus algorithms as providing one ordering for the union of transactions from multiple sets of transactions from multiple sets of clients where each set of transactions is ordered independently by each client that generates it. I.e. all the transactions from all the clients are combined into one set with one ordering = one total ordering. Most people can't define this correctly whenever asked.

    Byzantine fault tolerant total ordering is the hard problem of distributed consensus. Safe agreement which is all that KERI provides is much much simpler. So almost any witness structure is much simpler and will still work good enough. And its not the witness structure alone but the witness and watcher structure:

    • Witness for controllers
    • Watchers for validators

    Both are simpler consensus mechanisms compared to DLT algorithms. Distributed consensus describes a family of algorithms of which BFT Total Ordering distributed consensus is a subset. Pretty much all cloud databases that have redundant copies use some form of distributed consensus for synchronizing the copies of the database. They all use some form of authentication for securing that consensus but they are not in any real sense of the term using Byzantine Fault tolerant total ordering distributed consensus. Setting up witness pools and watcher pools in KERI is of comparable complexity to spinning up a redundant Postgres or CouchDB cluster. So KERI's guarantees come from nothing much more complicated than that. Nobody thinks that a CouchDB cluster is too complex to understand but few actually know the algorithmic details of its low level of distributed consensus.\ (SamMSmith)

    ***Q: How can I bind external key material to AIDs in KERI?

    How can I bind external key material to AIDs, such that the AID retains its own key, but picks up an association to an additional key that has meaning elsewhere?

    In ascending degree of security:

    1. BADA policy, you don't anchor to a KEL. It's a date-time stamp together with the keystate
    2. Put a seal in your KEL. You can do this by creating an interaction event with the KLI.
    3. Add a TEL for the key material and thus add additional security
    - + \ No newline at end of file diff --git a/docs/Education/Q-and-A/index.html b/docs/Education/Q-and-A/index.html index 90617fb2f7e..5353a291e10 100644 --- a/docs/Education/Q-and-A/index.html +++ b/docs/Education/Q-and-A/index.html @@ -7,7 +7,7 @@ - +
    @@ -147,6 +147,6 @@ (SamMSmith)


    Q&A Virtual Credentials


    *Q: Why doesn't KERI use certification as a root of trust?

    Why do we want portable identifiers instead of the Ledger Locked IDs, since we have DIDs that can resolve a ledger locked Id uniformly? You say “We don’t want to use certification as a root of trust, we want to do it self-certified all the way” -> what about the issuance of a credential based on the ledger locking, isn’t that beneficial?

    *Q: Is Custodianship of KERI identifiers possible?

    Or does (Delegated, Multi-sig) Self-Addressing do the job? | TBW Prio 2 |

    Acknowledgements

    Platypus - Welcome Collection gallery (2018-03-21): https://wellcomecollection.org/works/w3wxxrtv CC-BY-4.0

    - + \ No newline at end of file diff --git a/docs/Education/intro/index.html b/docs/Education/intro/index.html index 9ad44dbad02..6ac6b025070 100644 --- a/docs/Education/intro/index.html +++ b/docs/Education/intro/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/docs/GLEIF/2022-02-07_verifiable-LEI-(vLEI)-Ecosystem-Information-Trust-Policies-Prep-1.0-Publication_v0.1_work/index.html b/docs/GLEIF/2022-02-07_verifiable-LEI-(vLEI)-Ecosystem-Information-Trust-Policies-Prep-1.0-Publication_v0.1_work/index.html index b98286bab21..fa07bb2e814 100644 --- a/docs/GLEIF/2022-02-07_verifiable-LEI-(vLEI)-Ecosystem-Information-Trust-Policies-Prep-1.0-Publication_v0.1_work/index.html +++ b/docs/GLEIF/2022-02-07_verifiable-LEI-(vLEI)-Ecosystem-Information-Trust-Policies-Prep-1.0-Publication_v0.1_work/index.html @@ -7,12 +7,12 @@ - +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-02-07_vlei-q-a_v1.1-final/index.html b/docs/GLEIF/2022-02-07_vlei-q-a_v1.1-final/index.html index 8d9407f9906..8417e4940d7 100644 --- a/docs/GLEIF/2022-02-07_vlei-q-a_v1.1-final/index.html +++ b/docs/GLEIF/2022-02-07_vlei-q-a_v1.1-final/index.html @@ -7,7 +7,7 @@ - +
    @@ -449,6 +449,6 @@ within KERI is focused solely on interoperability of control establishment. But that interoperability is total and complete and is not dependent on anchored data context.

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-10-28_Qualified-vLEI-Issuer-vLEI-Identifer-Credential-GF-Prep-1.0-Publication_v0.9_work/index.html b/docs/GLEIF/2022-10-28_Qualified-vLEI-Issuer-vLEI-Identifer-Credential-GF-Prep-1.0-Publication_v0.9_work/index.html index 5c9204af844..b425592b4f6 100644 --- a/docs/GLEIF/2022-10-28_Qualified-vLEI-Issuer-vLEI-Identifer-Credential-GF-Prep-1.0-Publication_v0.9_work/index.html +++ b/docs/GLEIF/2022-10-28_Qualified-vLEI-Issuer-vLEI-Identifer-Credential-GF-Prep-1.0-Publication_v0.9_work/index.html @@ -7,7 +7,7 @@ - +
    @@ -195,6 +195,6 @@ Issuance and Presentation Exchange (IPEX) protocol specification, which can be found in: https://github.com/WebOfTrust/IETF-IPEX

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-11-01_GLEIF-Identifier-GF-Prep-1.0-Publication_v0.6_work/index.html b/docs/GLEIF/2022-11-01_GLEIF-Identifier-GF-Prep-1.0-Publication_v0.6_work/index.html index e05de1f0a7b..a1a21da23b7 100644 --- a/docs/GLEIF/2022-11-01_GLEIF-Identifier-GF-Prep-1.0-Publication_v0.6_work/index.html +++ b/docs/GLEIF/2022-11-01_GLEIF-Identifier-GF-Prep-1.0-Publication_v0.6_work/index.html @@ -7,7 +7,7 @@ - +
    @@ -270,6 +270,6 @@ and External AIDs and create and publish its new Root AID and Delegated Internal and External AIDs.

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-11-22_Legal-Entity-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html b/docs/GLEIF/2022-11-22_Legal-Entity-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html index 6113f776b50..d192aaa0a94 100644 --- a/docs/GLEIF/2022-11-22_Legal-Entity-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html +++ b/docs/GLEIF/2022-11-22_Legal-Entity-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html @@ -7,7 +7,7 @@ - +
    @@ -126,6 +126,6 @@ Official Organizational Role vLEI or a Legal Entity Engagement Context vLEI Credential.

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-11-23_Legal-Entity-Engagement-Context-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html b/docs/GLEIF/2022-11-23_Legal-Entity-Engagement-Context-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html index f2915e5554a..13488e835a7 100644 --- a/docs/GLEIF/2022-11-23_Legal-Entity-Engagement-Context-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html +++ b/docs/GLEIF/2022-11-23_Legal-Entity-Engagement-Context-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html @@ -7,7 +7,7 @@ - +
    @@ -161,6 +161,6 @@ Issuance and Presentation Exchange (IPEX) protocol specification, which can be found in: https://github.com/WebOfTrust/IETF-IPEX

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-11-23_Legal-Entity-Official-Organizational-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html b/docs/GLEIF/2022-11-23_Legal-Entity-Official-Organizational-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html index b65d9dc4763..1b4da6d9dea 100644 --- a/docs/GLEIF/2022-11-23_Legal-Entity-Official-Organizational-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html +++ b/docs/GLEIF/2022-11-23_Legal-Entity-Official-Organizational-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work/index.html @@ -7,7 +7,7 @@ - +
    @@ -140,6 +140,6 @@ Issuance and Presentation Exchange (IPEX) protocol specification, which can be found in: https://github.com/WebOfTrust/IETF-IPEX

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-11-30_Legal-Entity-QVI-AUTH-vLEI-Credential-GF-Prep-1.0-Publication_v0.6_work/index.html b/docs/GLEIF/2022-11-30_Legal-Entity-QVI-AUTH-vLEI-Credential-GF-Prep-1.0-Publication_v0.6_work/index.html index 3145e82d286..c6f8f9415c8 100644 --- a/docs/GLEIF/2022-11-30_Legal-Entity-QVI-AUTH-vLEI-Credential-GF-Prep-1.0-Publication_v0.6_work/index.html +++ b/docs/GLEIF/2022-11-30_Legal-Entity-QVI-AUTH-vLEI-Credential-GF-Prep-1.0-Publication_v0.6_work/index.html @@ -7,7 +7,7 @@ - +
    @@ -132,6 +132,6 @@ Issuance and Presentation Exchange (IPEX) protocol specification, which can be found in: https://github.com/WebOfTrust/IETF-IPEX

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-12-01_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part 3-vLEI-Credential-Schema-Registry-Prep-1.0-Publication_v0.1_work/index.html b/docs/GLEIF/2022-12-01_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part 3-vLEI-Credential-Schema-Registry-Prep-1.0-Publication_v0.1_work/index.html index c11d17018cd..c75cccd1f9a 100644 --- a/docs/GLEIF/2022-12-01_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part 3-vLEI-Credential-Schema-Registry-Prep-1.0-Publication_v0.1_work/index.html +++ b/docs/GLEIF/2022-12-01_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part 3-vLEI-Credential-Schema-Registry-Prep-1.0-Publication_v0.1_work/index.html @@ -7,12 +7,12 @@ - +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-12-06_appendix-1-non-disclosure-agreement_v1.0_final/index.html b/docs/GLEIF/2022-12-06_appendix-1-non-disclosure-agreement_v1.0_final/index.html index e5c2d0a8813..d4c44b13e93 100644 --- a/docs/GLEIF/2022-12-06_appendix-1-non-disclosure-agreement_v1.0_final/index.html +++ b/docs/GLEIF/2022-12-06_appendix-1-non-disclosure-agreement_v1.0_final/index.html @@ -7,7 +7,7 @@ - +
    @@ -45,6 +45,6 @@ XVII. Mediation and Arbitration XVIII. Miscellaneous

    ***
    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-12-06_appendix-2-vlei-issuer-qualification-program-manual_v1.0_final/index.html b/docs/GLEIF/2022-12-06_appendix-2-vlei-issuer-qualification-program-manual_v1.0_final/index.html index 453830c4722..c5a63eb7897 100644 --- a/docs/GLEIF/2022-12-06_appendix-2-vlei-issuer-qualification-program-manual_v1.0_final/index.html +++ b/docs/GLEIF/2022-12-06_appendix-2-vlei-issuer-qualification-program-manual_v1.0_final/index.html @@ -7,7 +7,7 @@ - +
    @@ -161,6 +161,6 @@ Chief Executive Officer: Stephan Wolf © 202 2 All rights reserved

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-12-06_appendix-3-vlei-issuer-qualification-program-checklist_v1.0_final/index.html b/docs/GLEIF/2022-12-06_appendix-3-vlei-issuer-qualification-program-checklist_v1.0_final/index.html index fee5b07cbd1..3e274ee2c4b 100644 --- a/docs/GLEIF/2022-12-06_appendix-3-vlei-issuer-qualification-program-checklist_v1.0_final/index.html +++ b/docs/GLEIF/2022-12-06_appendix-3-vlei-issuer-qualification-program-checklist_v1.0_final/index.html @@ -7,7 +7,7 @@ - +
    @@ -157,6 +157,6 @@ and unrestrictedly responsible and liable to complying with, and acting in the spirit of, all the requirements for Qualification?

    Yes
    Yes
    No Not Applicable
    No Not Applicable
    1. Will you keep your vLEI Issuer Qualification up to date?

    St. Alban-Vorstadt 5, PO Box

    4002 Basel

    Switzerland

    accreditation@gleif .org

    gleif .org

    Chairman of the Board: Steven Joachim

    Chief Executive Officer: Stephan Wolf

    © 2022 All rights reserved

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-12-06_appendix-4-vlei-issuer-contact-details_v1.0_final/index.html b/docs/GLEIF/2022-12-06_appendix-4-vlei-issuer-contact-details_v1.0_final/index.html index 798e572f641..79e6afbd081 100644 --- a/docs/GLEIF/2022-12-06_appendix-4-vlei-issuer-contact-details_v1.0_final/index.html +++ b/docs/GLEIF/2022-12-06_appendix-4-vlei-issuer-contact-details_v1.0_final/index.html @@ -7,7 +7,7 @@ - +
    @@ -37,6 +37,6 @@ Management

    Termination of Qualified vLEI Issuer Qualification

    GLEIF Qualified vLEI Issuer Relationship Management

    email addresses of current Designated
    Authorized Representatives (DARs) of the Legal
    Entity to be provided to GLEIF by the Qualified
    vLEI Issuer which may be used in the event of
    termination of the Qualified vLEI Issuer
    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part1-KERI-Infrastructure-Prep-1.0-Publication_v0.6_work/index.html b/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part1-KERI-Infrastructure-Prep-1.0-Publication_v0.6_work/index.html index 625d252a467..16373f84094 100644 --- a/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part1-KERI-Infrastructure-Prep-1.0-Publication_v0.6_work/index.html +++ b/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part1-KERI-Infrastructure-Prep-1.0-Publication_v0.6_work/index.html @@ -7,12 +7,12 @@ - +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part2-vLEI-Credentials_v0.3_work/index.html b/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part2-vLEI-Credentials_v0.3_work/index.html index ab81d57c0b0..73afdaff3ad 100644 --- a/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part2-vLEI-Credentials_v0.3_work/index.html +++ b/docs/GLEIF/2022-12-06_verifiable-LEI-(vLEI)-Ecosystem-Governance-Framework-Technical-Requirements-Part2-vLEI-Credentials_v0.3_work/index.html @@ -7,12 +7,12 @@ - +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    - + \ No newline at end of file diff --git a/docs/GLEIF/2022-12-16_Legal-Entity-QVI-AUTH-vLEI-Credential-Governance-Framework_v1.0_final/index.html b/docs/GLEIF/2022-12-16_Legal-Entity-QVI-AUTH-vLEI-Credential-Governance-Framework_v1.0_final/index.html index cab1ade51b1..2812cd74d5d 100644 --- a/docs/GLEIF/2022-12-16_Legal-Entity-QVI-AUTH-vLEI-Credential-Governance-Framework_v1.0_final/index.html +++ b/docs/GLEIF/2022-12-16_Legal-Entity-QVI-AUTH-vLEI-Credential-Governance-Framework_v1.0_final/index.html @@ -7,7 +7,7 @@ - +
    @@ -69,6 +69,6 @@ Presentation Exchange (IPEX) protocol specification, which can be found in: https://github.com/WebOfTrust/IETF-IPEX
    - + \ No newline at end of file diff --git a/docs/How we did/Chatbots/index.html b/docs/How we did/Chatbots/index.html index 3dbdb598fa9..e9e78916110 100644 --- a/docs/How we did/Chatbots/index.html +++ b/docs/How we did/Chatbots/index.html @@ -7,7 +7,7 @@ - +
    @@ -19,6 +19,6 @@ You can fine-tune the PaLM2 model on a dataset of documents that contain the specific terms or phrases that you want the model to be able to recognize. This will help the model to learn to identify these terms or phrases in new documents. I hope this helps!”

    Keep in mind that Bart and PaLM2 are not available in EU zone/ Canada.

    Source: Robert Mitwicki

    - + \ No newline at end of file diff --git a/docs/How we did/Create-search-index/index.html b/docs/How we did/Create-search-index/index.html index 373483a40ee..f51d7338f19 100644 --- a/docs/How we did/Create-search-index/index.html +++ b/docs/How we did/Create-search-index/index.html @@ -7,12 +7,12 @@ - +

    Create search index

    Fetch the content from various websites.

    First we have to fetch the content from various websites.

    We use the Puppeteer library. Puppeteer can also process JavaScript, so dynamically added content, like knowledgelevel will also be collected.

    Import into Typesense

    In Typesense a “document” is what a “record” is in a database.

    More info on the Typesense website: https://typesense.org/docs/0.24.1/api/documents.html#index-multiple-documents

    The documents we want to import have to follow a scheme. The current scheme we use is:

    {
    "created_at": xxx,
    "default_sorting_field": "",
    "enable_nested_fields": false,
    "fields": [
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "url",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "content",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "timestamp",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "hierarchy.lvl0",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "hierarchy.lvl1",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "hierarchy.lvl2",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "hierarchy.lvl3",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "knowledgeLevel",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "siteName",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "tag",
    "optional": true,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "type",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "pageTitle",
    "optional": true,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "firstHeadingBeforeElement",
    "optional": true,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "source",
    "optional": true,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "author",
    "optional": true,
    "sort": false,
    "type": "string"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "creationDate",
    "optional": true,
    "sort": false,
    "type": "string"
    },
    {
    "facet": true,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "imgUrl",
    "optional": true,
    "sort": false,
    "type": "string"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "imgMeta",
    "optional": false,
    "sort": false,
    "type": "string"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "contentLength",
    "optional": false,
    "sort": false,
    "type": "int32"
    },
    {
    "facet": false,
    "index": true,
    "infix": false,
    "locale": "",
    "name": "imgMetaLength",
    "optional": false,
    "sort": false,
    "type": "int32"
    }
    ],
    "name": "xxx",
    "num_documents": xxx,
    "symbols_to_index": [],
    "token_separators": []
    }

    You can create a scheme yourself. For example: the imgMeta entry is something we chose to create and it contains text around an image. Later on in your client code, you can retrieve this information.

    - + \ No newline at end of file diff --git a/docs/How we did/Docusaurus-process/index.html b/docs/How we did/Docusaurus-process/index.html index b2bef8f3410..9774a383dae 100644 --- a/docs/How we did/Docusaurus-process/index.html +++ b/docs/How we did/Docusaurus-process/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/docs/How we did/check-and-accept-PR-production-Edusite-locally/index.html b/docs/How we did/check-and-accept-PR-production-Edusite-locally/index.html index d9324819ae5..3024692f1f3 100644 --- a/docs/How we did/check-and-accept-PR-production-Edusite-locally/index.html +++ b/docs/How we did/check-and-accept-PR-production-Edusite-locally/index.html @@ -7,12 +7,12 @@ - +

    Check and accept PR production Edusite locally

    git stash 
    git status
    git fetch upstream main
    git log
    • fix-mdfiles is the name of the PR.
    • testSC1 is the acronym of the developer that I use in this example.

    Pull the proposed changes in

    git checkout -b testSC1  
    git fetch upstream
    git merge upstream/fix-mdfiles

    Test

    Now the changes that the PR proposes have been locally applied to the new branch

    npm run build
    npm run serve

    Now you can locally test the site at the address that look something like http://localhost:3000/WOT-terms/. The result of npm run serve will tell you the exact URL.

    After succesfull test merge result

    git checkout main
    git merge testSC1

    After merge push to production environment

    git push -u upstream main

    Result: PR remotely accepted

    Clean up

    git stash pop
    git branch -D testSC1
    - + \ No newline at end of file diff --git a/docs/How we did/create-terms-link-table/index.html b/docs/How we did/create-terms-link-table/index.html index 8c07ab1f26f..b55a5c2ffad 100644 --- a/docs/How we did/create-terms-link-table/index.html +++ b/docs/How we did/create-terms-link-table/index.html @@ -7,12 +7,12 @@ - +

    Create an online table to link terms to resources

    Input

    • A resource (like footage, e.g. Phil's IIW demo interview with Steven)
    • Subtitle (.sbv) file
    • Glossary
    • Excel or open source alternative
    • Excel function to transform Youtube time format to URL format
    • Mark down table creation tool
    • Mark Down Editor
    • Version control (git, Github or Gitlab)

    Steps

    Demand

    A certain resource needs to be subtitled, explained further, etc. Be sure it has the added value you think it has. Ask around. Because there'll be a hugh effort involved to:

    • transcribe the resource
    • correct the subtitles by listening carefully what's been said by whom
    • connect the resource to the glossary
    • create new glossary items and amend existing ones (to avoid confusion when a term in a different context means something else)
    • create an index of terms used in the resource into the video (timing) and into the glossary
    • document the resource properly and take into production after testing.

    An hour of footage can take days to decipher and document. Again, be sure it's worth it.

    Use a video platform to subtitle the resource

    Upload the video to for example Youtube. Choose the right confidentiality and Youtube will start to create subtitles automatically. Download the subtitle-file to your local machine once it's ready: a .sbv file. Mind the copy rights of your video platform.

    Edit subtitles

    As you edit, also have a an Excel sheet open with a few columns:

    • term
    • text
    • level
    • link
    • vidstart

    Terms are words used by the speakers in the resource, you can provide a link to more explanation, mainly to the ACDC glossary. The point in the video where a speaker mentions the term for the first time is called vidstart, you can copy this data from from the .sbv subtitle file downloaded from Youtube. the level of understanding at which this term might need explanation, and finally a brief explanation in field text of the term in the first column.

    Tools and techniques

    There are lots of tips and tools on the web you can find to edit your Youtube subtitles / captions. Just to link a few:

    Level

    Since KERI and ACDC education start off at the level of SSI-expert, a beginner is not a layman, but somebody with a good common understanding of IT and digital identity.

    • 1=beginner digital identity expert
    • 2=advanced self-sovereign identity expert
    • 3=SSI experts

    Change the subtitles and fill the glossary and Excel sheet

    Do this simultaneously.

    Use these functions in Excel to create the URL time format

    Mind you F2 is the cell that contains the time in Youtube time format: 0:00:00.000

    • Minutes: =MID(TRIM(F2);3;2) the example here has the Minutes in cell G2
    • Seconds: =MID(TRIM(F2);6;2) the example here has the Seconds in cell H2

    And glue it together into a clickable and working URL to the right spot/timing in the footage:

    =CONCATENATE("https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=";G2;"m";H2;"s")

    Export to CSV

    The start of example Excel sheet would like this:

    The Excel file can be saved as a Comma Separated file .csv

    Usage of the Comma Separated file

    The .CSV-file, an example here that is the basis for a descriptive page, could be used to be imported elsewhere, to filter on the level field, and/or provide links or brief explanation to students.

    Create a Mark Down table using a free web-tool

    I've used Tablesgenerator.com. Use the following settings:

    • Markdown (menu - switch)
    • Compact (toggle checkbox)

    Upload .csv file

    Check the result

    And then copy the result; use the clipboard

    and paste into your editor. After pasting the column headers in compact form will show

    remove the column you don't need, by not referencing them (the data is still in the column, redundantly). In this example I removed 3 columns:

    I explain this to create three types: a HackMD file and a Github basic repo .MD page and pages created using a static site generator and/or Github Actions.

    HackMD file

    Use the following CSS styling and adjust the column width at will (be sure it's "100%" in total):

    <!-- <link rel="stylesheet" href="../style.css" type="text/css"></link> -->

    <!-- This should be placed in a CSS file and referenced with the command above in comments -->
    \<style\>
    table a {
    display: inline-block;
    width: 50px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    }

    table th:first-of-type {
    width: 20%;
    }
    table th:nth-of-type(2) {
    width: 50%;
    }
    table th:nth-of-type(3) {
    width: 10%;
    }
    table th:nth-of-type(4) {
    width: 10%;
    }
    table th:nth-of-type(5) {
    width: 10%;
    }
    \</style\>

    Github Repo markdown file

    Use git functionality to push the HackMD file to your destination repo and or use a local repository to sync the .md file with your remote production repo.

    The .md file will show, however:

    Scroll table to the right

    To get to the links and other columns of the table you might need to scroll the table all the way to the right.

    The reason is that Github ignores all CSS input to normal repo .md files while rendering the output of .MD files in browsers. There are work-arounds but I don't advice those. Static pages generators can overcome this.

    Static pages generator

    You could also use the resulting Markdown file as input to a static site generator and or Github Actions to create more sophisticated version of the description file and / or glossary.

    Any source that uses the css to adjust the column and cell width (to shrink the size of the clickable links). Additionally this should be placed in a CSS file and referenced with the command above in comments:

    <link rel="stylesheet" href="../style.css" type="text/css"></link>

    For example:

    Result

    This is the HackMD result from the step by step above

    kli-demo-2022

    And this the file on Github (notice the fact you need to scroll right through the table)

    kli-demo-2022.md

    - + \ No newline at end of file diff --git a/docs/How we did/embed-github-hosted-image-in-github-wiki-page/index.html b/docs/How we did/embed-github-hosted-image-in-github-wiki-page/index.html index 5d3e7c0d6b3..208ec0cedba 100644 --- a/docs/How we did/embed-github-hosted-image-in-github-wiki-page/index.html +++ b/docs/How we did/embed-github-hosted-image-in-github-wiki-page/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ The link the image was broken here: https://trustoverip.github.io/acdc/glossary#prefix, it did not show an image. However, copying the image link results in "https://github.com/WebOfTrust/keri/blob/main/images/prefix.png", and if you paste this link, you do get an image!

    What's going on here? And why is this relevant?

    We are better off knowing what the difference between 'raw' and 'generated' in Github means, so we can move faster and more be efficient. Read on.

    Confusion

    When you check an image into Github, and then browse to the image's path in the repo, github doesn't display the raw picture.

    Rather, it displays a generated html page that includes a bunch of Github framing so you can see the repo, the version history, etc.

    Example continued\ If you look at the wiki page for the glossary entry in question: https://github.com/trustoverip/acdc/wiki//prefix, you will see that the URL of the image is https://github.com/WebOfTrust/keri/blob/main/images/prefix.png.

    Even though that URL ends with "png", what it returns is not a raw PNG, but an actual web page.

    How to do it the right way?

    To embed an image properly in a github wiki page (whether the wiki page is a terms wiki or not), you need to get the URL for the raw image file. You can get this done by

    THREE different ways!

    A.

    1. clicking the button that says "Download" and
    2. right-clicking the image and choose "Copy Image Address"

    Example result: https://raw.githubusercontent.com/WebOfTrust/keri/main/images/prefix.png

    OR

    B.

    1. right-clicking on the button that says "Download" and
    2. choosing "Copy Link"

    Example result: https://github.com/WebOfTrust/keri/raw/main/images/prefix.png

    Either way will work. Here's the proof :), that I've deleted already:

    C. Just add ?raw=true to the URL

    example result: https://github.com/WebOfTrust/keri/blob/main/images/prefix.png?raw=true

    Either way will work. And here is the proof, that I've already deleted of course from the production environment:

    Resume

    I think this will fix your broken image links and resolve the issue mentioned above.

    - + \ No newline at end of file diff --git a/docs/How we did/fill-out-terms-toip-wiki/index.html b/docs/How we did/fill-out-terms-toip-wiki/index.html index 1462fd6e6b5..fa092d04f5c 100644 --- a/docs/How we did/fill-out-terms-toip-wiki/index.html +++ b/docs/How we did/fill-out-terms-toip-wiki/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ you could save the newcomers by throwing links in the chat to the matching terms in the wiki.

    Result filtered pages

    How to filter terms in the terms wiki

    A few guidelines

    "So we decided that it was simpler to handle acronyms a different way. Whenever you have a term with an associated acronym, just create two wiki pages. One should document the full, spelled out version of the term, including its definition and any other interesting metadata. The other should NOT contain a ## Definition block but rather a ## See block that contains a cross reference. You can see this pattern in the TOIP glossary entries for SSI and self-sovereign identity: https://trustoverip.github.io/toip/glossary#ssi" (Source: Daniel Hardman)

    This is the resulting to do

    1. all lower case words with spaces. These will be converted to dashed terms

    2. Only for those entries complying to 1.

    ## Definition
    The authentic web is the internet as a whole giant verifiable data structure. Also called Web5. The web will be one big graph. That's the mental model of the 'authentic web'.

    How to create a new term in the terms wiki

    1. Abbreviations

    Example CESR:

    ## See
    [composable event streaming representation](composable-event-streaming-representation.md)

    The resulting markdown file will be saved and accessible as CESR.md

    What problem does this extra glossary item solve?

    Originally, the instruction was to create a term and is acronym the way you have done -- a single page in the wiki, where the page tile is "term with many words (acronym)". The term tool generates entries for both.

    However, it turns out that generating two entries from one wiki page creates some undesirable complications. The tool needs to generate two tag lists and two edit histories as well. References to the term have an ID that is the same for both the short and the long form, and which authors may not remember. (You're writing a doc and you want to link to "SSI" but you have to remember to link to "self sovereign identity (SSI)" instead.) Etc.\ (Source: Daniel Hardman)

    - + \ No newline at end of file diff --git a/docs/How we did/homepage-text-altering/index.html b/docs/How we did/homepage-text-altering/index.html index b876458b6ef..54a69bcfa6d 100644 --- a/docs/How we did/homepage-text-altering/index.html +++ b/docs/How we did/homepage-text-altering/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/docs/How we did/intro/index.html b/docs/How we did/intro/index.html index 3a2f7b8752d..bc5778f5ba3 100644 --- a/docs/How we did/intro/index.html +++ b/docs/How we did/intro/index.html @@ -7,12 +7,12 @@ - +

    WOT How we did's

    This is a source directory that explains how this site came to be and how it can be maintained.

    What is this?

    In how-we-did we document 'the making of' this site that consists of

    • data; which we call WOT-terminology or WOT-terms
    • functionality; which we call KERISSE

    WOT-terms

    Is the data part of this site and consists of:

    • whitepapers
    • code of the KERI Suite
    • Glossary
    • Q-and-A's
    • Concepts behind the KERI Suite
    • blogs
    • etc

    KERISSE

    • Typesense Search Engine
    • Artificial Intelligence chatBot
    • Docusaurus static site functionality

    How we did

    ...answers questions like:

    • why did we make these things listed above
    • how to create the result step by step
    • how to update the result step by step
    • how to use the result step by step after that
    • why do we have this component (and not something else)
    • who does benefit from the component or process
    • what's the precedence, the workflow, the triggers, what comes after this
    - + \ No newline at end of file diff --git a/docs/How we did/label-content-and-alert-changes/index.html b/docs/How we did/label-content-and-alert-changes/index.html index 1cbc157680f..f842d39b7ea 100644 --- a/docs/How we did/label-content-and-alert-changes/index.html +++ b/docs/How we did/label-content-and-alert-changes/index.html @@ -7,12 +7,12 @@ - +

    Label Content and Alert Changes

    We have:

    • data: WOT-terms, tab LabelContent link
    • checks: Link checker in Google Apps script link
    • functionality: | TBW Kor |

    Data

    In the tab LabelContent in WOT-terms Google sheet we find instructions and tests on:

    1. how to scrape sources

    2. how to modify the sources

      • column ourid delivers the bidirectional link between the content and its labelling recipe in one row of the WOT-terms LabelContent tab
      • We create a Data attribute for this: <div data-ourid=23612 ..
    3. where to put the resulting sources

    4. how to present the sources in Docusaurus

    Input

    • A resource file for the Docusaurus site
    • WOT-terms Google sheet, tabblad 'LabelContent'
    • Link checker function in Google Sheet
    • Script | TBW Kor? |

    Attention

    • List of Characters in the filename that cause trouble in Docusaurus

    Checks

    UrlOK AnchorOK

    function CHECKANCHOR(url)

    Webapp

    https://script.google.com/macros/s/AKfycbzmcGVlaLfy0ZIQH9_afGrGYU-TgQp1YoxfGlfP3C9BQU2FeosxgCmHjUU-MMuA6d48eQ/exec

    function CHECKURL(url)

    Webapp

    https://script.google.com/macros/s/AKfycbzLGQzbDHvr3wtjxDrArCQ8wNdhR3aWQADnaqN2eSOoDShoNyECdK0nifxjrV85Xca37Q/exec

    Functionality

    Steps

    1. Look for the Source that needs to be:
    • Put in the Filesystem (specified in column Filesystem)
    • Scrapped (is then in right place X in file system?)
    • Converted
      • weird characters out if we can expect them
      • more meaningfull names and shorter names (column MenuItemName)
    • Labeled Content (based on management sheet)
    • Presenting (where some names could also come from the sheet again)

    What is the advantage of this, who's going to benefit and what's the result?

    Management of the sheet and the data it references

    1. Is a source and references (anchors) to its blocks of content already in the sheet? There is no check for duplicity, so the first entry that matches will be executed and the next entries for the same filename will fail.
    2. If not already present: Add a row for a source that needs to be declared and labeled in the tab LabelContent in WOT-terms Google sheet. Put it in the 'Source' column. Do add the path to the raw version of the source filename.
    3. Fill out the desired filename in the 'MenuItemName' column. Now, don't add the path to the MenuItemName OR use an conversion function already available in the sheet.
    4. Choose a corresponding Filesystem directory for the file.
    5. the filename will be the filename of the source, the path will be the path in the Filesystem.
    6. Add an ourid in the Column ourid. We raise the IDs per file by 100 and then number the blocks, that have a different labelling than the file as a total, from there on by 1,2,3 etc. This is not mandatory. The code has to be unique only and the sheet will report with a color if not.
    caxe-logo

    Postcondition

    1. MenuItemNames are practical and usable for Docusaurus
    2. The sources are labeled client side on the fly conform value in the arrays
    3. The links to anchors are checked on the fly in Google Sheet

    Usage

    A Docusaurus site script collects the information in WOT-terms Google sheet, tabblad 'LabelContent' to perform the actions mentioned under Steps at will.

    Advantage

    This has the advantage:

    • You can always scrape
    • you can always check links
    • you can always adjust levels
    • you don't have to label multiple times

    WHo benefits

    • Curators
    • Users of the site can filter on Level and Category

    Unique Result

    - + \ No newline at end of file diff --git a/docs/How we did/load-glossary-weboftrust-in-docusaurus/index.html b/docs/How we did/load-glossary-weboftrust-in-docusaurus/index.html index d53f065c60f..b41451576b6 100644 --- a/docs/How we did/load-glossary-weboftrust-in-docusaurus/index.html +++ b/docs/How we did/load-glossary-weboftrust-in-docusaurus/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ In 2022 we reasoned:

    • we would to have to build similar Github Actions tooling like ToIP already has.
    • we can't join the synchronization effort already taking place with eSSIF-lab
    • we would have to maintain these auxiliary which keeps us off other important work

    In 2023 we experienced:

    • lagtime by ToIP and Linux Foundation internal github governance rules
    • the knowledge and skills needed to "roll our own" had been acquired

    Mid 2023 we decided:

    Software environment

    For Github pages Docusaurus runs locally and remotely (Github Actions). Be sure to:

    1. Have the same version of Docusaurus installed locally as Github currently uses remotely
    2. study this guide to avoid frustration with paths.

    Steps

    Pull the WebofTrust wiki

    Because the glossary is maintained in Github wiki using Github userinterface here: Weboftrust wiki, the most recent version is a remote repo. We have to pull this wiki-repo (be sure to have the wiki repo not the "normal" WOT-terms repo!) to local to be able to create our own glossary and Docusaurus static site from this. The static site is then run as a github project page (branch gh-pages).

    Initial clone of the WOT-terms.wiki repo to local

    git clone https://github.com/weboftrust/WOT-terms.wiki.git
    cd WOT-terms.wiki
    git remote get-url origin
    ls
    wiki-repo-ls-result

    Refresh the WOT-terms.wiki repo to local

    git pull origin master

    Copy the WebofTrust glossary resources into the Docusaurus file structure

    To able to generate a tailor made explanation site we use two inputs (see full list of inputs here):

    1. The WebofTrust glossary locally (all the .md files pulled from Weboftrust wiki
    2. Terms WOT manage (xls or csv) table, currently maintained in Google Sheets (mid 2023)

    Step into the Docusaurus dir structure to WOT-terms/docs/glossary and execute the command cp ../../../WOT-terms.wiki/* . to finish what we'd like to achieve: Copy the glossary resources into the Docusaurus file structure.

    Script YYYYYYY to put WOT-terms sheet into JSON structure

    | TBW by creator Kor |

    • it reads the input file (2.) per line.
    • each row describes a term and its resource file
    • we create a proper file name
    • we try to match the terms in the ToIP glossary resources and bind them

    Docusaurus takes care of

    • writing .md files with Front matter code and includes

    Constraint on WOT-terms sheet

    Columns

    • key
    • (WWWWW-key) multiple foreign keys
    • term
    • text
    • level
    • link
    • (Cat-CCCC) multiple categories

    Explanation

    • key needs to be unique and once established it should not change.
    • Terms are words used in the resource,
    • you can provide a link to more explanation, mainly to the WOT glossary.
    • Then the level of understanding at which this term might need explanation, and finally
    • a brief explanation in field text of the term in the first column.

    Level

    Since KERI Suite education starts off at the level of SSI-expert, a beginner is not a layman, but somebody with a good common understanding of IT and digital identity.

    • 1=general digital identity expert
    • 2=advanced self-sovereign identity expert
    • 3=autonomic identifier & KERI experts

    Github Repo

    Push the locally updated files to the remote WebofTrust repo:

    git status
    git add .
    git commit -m "update the WebofTrust glossary"
    git push <remote> gh-pages

    Static pages generator

    The push will activate Github Actions and the resources will be input to a static site generator.

    Result

    This is the Github pages result from the step by step above:

    https://weboftrust.github.io/WOT-terms/glossary.html

    - + \ No newline at end of file diff --git a/docs/How we did/markdown-from-WOT-wiki/index.html b/docs/How we did/markdown-from-WOT-wiki/index.html index b3760116909..5a682c6b191 100644 --- a/docs/How we did/markdown-from-WOT-wiki/index.html +++ b/docs/How we did/markdown-from-WOT-wiki/index.html @@ -7,7 +7,7 @@ - +
    @@ -19,6 +19,6 @@ Save

    Be careful

    Changes are immediate. A change like the one the example above, will be promoted to the production glossary because of installed Github Actions and triggers that go off there.

    But I want the actual .MD-file in my hands!

    Wiki is a special kind of repo in Github

    The wiki section of Repo has an own git remote link.

    Steps to download all the .md files

    Copy the link to the wiki repo of certain Github repo. Use the functionality at the bottom of the glossary:

    clone the wiki of a repo

    Go to a folder on your local computer and type

    Clone <paste the URL here>

    Example:\ Clone https://github.com/weboftrust/WOT-terms.wiki.git

    Go to your newly created local repository and all the .MD files will be there

    Example:\

    list of term .MD files in the wiki repo

    How to retrieve updates of the actual .MD-file to my local machine?

    Suppose you're in the root of the WOT-terms.wiki

    Command

    git remote -v

    tells you from which remote location you'd like to pull the changes from

    Then pull the .md-files in:

    git pull origin main

    Then go to the destination directory in the Docusaurus file tree and copy the files over:

    cp <path to>/WOT-terms.wiki/* .
    - + \ No newline at end of file diff --git a/docs/How we did/pull-changes-from-toip-to-terms/index.html b/docs/How we did/pull-changes-from-toip-to-terms/index.html index 0d3d5bf8f60..2404f74f6b1 100644 --- a/docs/How we did/pull-changes-from-toip-to-terms/index.html +++ b/docs/How we did/pull-changes-from-toip-to-terms/index.html @@ -7,12 +7,12 @@ - +

    Pull changes from toip to terms

    Preposition

    Docusaurus build (npm run build) needs to pass thruogh valid markdown.

    Problem

    We don't control the source of the glossary here.

    If npm run build doesn't pass without errors, we change the source and then run this on the commandline:

    cd ~/apps/acdc.wiki
    git pull
    cd ../WOT-terms/docs/terms/glossary
    cp ~/apps/acdc.wiki/* .
    git status
    Git add .
    Git commit --amend
    - + \ No newline at end of file diff --git a/docs/How we did/pull-in-markdown-documents/index.html b/docs/How we did/pull-in-markdown-documents/index.html index 6d879982577..ca94c7a01ba 100644 --- a/docs/How we did/pull-in-markdown-documents/index.html +++ b/docs/How we did/pull-in-markdown-documents/index.html @@ -7,13 +7,13 @@ - +

    Pull in markdown documents

    IETF drafts are standardized write-ups for experts. Although these drafts contains loads of valuable information and learning resources, the layout and accessibility is cumbersome for training and education purposes. Therefore we pull in the original documents in markdown format in our Jekyll site and semi-automatically reorganize the data using our Terms and Glossaries.

    How to find a document

    Search the WebofTrust Github repos for an interesting resource.

    ## Save the doc as a 'raw' .md file

    Where?

    In your local copy of the repository WebofTrust WOT-terms It MUST be in:

    • the docs directory of the Docusaurus site.
    • In the gh-pages branch

    Next?

    We are going to process this document with shell scripts and Docusaurus to produce a copy of the documents in a static Docusaurus website that has sidebars, filter options, automatic links in text to the glossary etc.

    - + \ No newline at end of file diff --git a/docs/How we did/sync-agenda-to-production-via-local/index.html b/docs/How we did/sync-agenda-to-production-via-local/index.html index 2b31fcd81db..5ff7f5cd09f 100644 --- a/docs/How we did/sync-agenda-to-production-via-local/index.html +++ b/docs/How we did/sync-agenda-to-production-via-local/index.html @@ -7,13 +7,13 @@ - +

    Sync agenda to production via local

    Problem

    We edit HackMD.io files during meetings. There is a Versions and github sync option in HackMD.io.

    If this is not configured to direct access the production site, we need to sync this explicitly.

    Solution

    Suppose origin is the github site where to HackMD.io file has been push to.

    Then locally in git repo and present in the main branch (!) say:

    git fetch origin
    git checkout origin/main -- agenda.md

    The command reports back

    Changes to be committed: (use "git restore --staged \<file>..." to unstage)\ modified: agenda.md

    git commit -m "agenda.md updated"

    Be sure that you've staged what you wanted to stage

    git commit -m "agenda.md updated"
    git push upstream main

    Upstream is in this case the production server.

    - + \ No newline at end of file diff --git a/docs/How we did/typesense-search-install-config/index.html b/docs/How we did/typesense-search-install-config/index.html index e7b2562dcd2..8bd70a6932c 100644 --- a/docs/How we did/typesense-search-install-config/index.html +++ b/docs/How we did/typesense-search-install-config/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/docs/How we did/why-terms-wot-manage-structure/index.html b/docs/How we did/why-terms-wot-manage-structure/index.html index cc9d0fd3ab6..4c7ecf66ab2 100644 --- a/docs/How we did/why-terms-wot-manage-structure/index.html +++ b/docs/How we did/why-terms-wot-manage-structure/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ "virtual-credential-transaction-event-log", then "credential transaction event log" and lastly "transaction event log". No double counts here. Same with acronyms: an exact match for "VC-TEL" implies that there's no count for "TEL". Lastly also in syllables: a hit for "keridemlia" doesn't count "keri" in this word.

    Results

    The count of terms are in the Cat_CCCCC columns after a (re)run of the counting tool.

    | TBW prio 1: the tool is currently being re-developed, August 18 2022 |

    Why do we need this?

    • Key: We might need a Key field to be able to have a unique long-living identifier for a term in the WebofTrust domain. However, any term goes through a life cycle, with the end state of a term being well-known, unchanged for a while and unique. The Key field has become superfluous by then.
    • Type: We don't need this, but it's courtesy to users / learners to be able to filter or select just specific terms to SSI, Autonomic identifier space and KERI suite specific consequetively.
    • TTTTT_Fkey / TTTTT_start: We use this Foreign Key to link to other educational resources of the this term, like Youtube footage*, webpages and other glossaries.
    • level: We assess a level of understanding to meaningful study a term. Regardless this subjective and personal judgement, the filtering options are numerous:
    1. offer everything (a glossary)
    2. offer a learning trajectory
    3. filter in the opposite direction: exclude terms for experts; don't bother them with Noob answers.
    4. etc.
    • Cat_CCCCC: we are now able to store the counts and then offer the term in various relevant contexts at the front end of the site.

    '* Youtube footage: plus the start time of where the term is mentioned first or most extensively.

    Why not a term-content file per level of understanding?

    Per term various levels of explanation (plus related further readings) are offered within one source file .md. The reason for this is that every individual learner is different. Within the source file of a term we can label "stars" to both questions and answers, compliant to what's explained in this section of the README.md file : Levels of Understanding

    By offering "everything we have" about a certain term in one file, a reader is able to identify herself / himself with a certain level in a specific context and "filter the stars" in an eye blink.

    What's the whole point of managing WOT terms in a sheet?

    Three major applications:

    Being the home of our terms maintenance, we load ToIP glossary and generate our Docusaurus static content site on Github. This whole process is steered with the content in the Terms WOT manage sheet.

    Any resource that mentions WebofTrust terms can be much easier enriched with the use of Terms WOT manage sheet. For example, we can create a terms link table for any footage from the sheet Terms WOT manage sheet.

    Integration and synchronisation with other glossaries and destination information sources is possible by maintenance of Key and Foreign Keys in Terms WOT manage sheet.

    This is a non-exhaustive list of application options.

    - + \ No newline at end of file diff --git a/docs/Overview/Indexed in KERISSE/index.html b/docs/Overview/Indexed in KERISSE/index.html index e3192b02fd4..2ed2e9ed6cb 100644 --- a/docs/Overview/Indexed in KERISSE/index.html +++ b/docs/Overview/Indexed in KERISSE/index.html @@ -7,12 +7,12 @@ - +

    Indexed in KERISSE

    All pages that are indexed in KERISSE

    https://github.com/WebOfTrust/keria/blob/main/.github/workflows/publish-keria.yml

    https://github.com/WebOfTrust/keri/blob/main/.gitignore

    https://github.com/WebOfTrust/keripy/blob/main/.coveragerc

    https://github.com/trustoverip/acdc/wiki

    https://github.com/WebOfTrust/cesride/blob/main/.github/CODEOWNERS

    https://github.com/WebOfTrust/signify-ts/blob/main/.github/workflows/main.yml

    https://github.com/WebOfTrust/keria/blob/main/.github/workflows/python-app-ci.yml

    https://github.com/WebOfTrust/keri/blob/main/CONTRIBUTING.md

    https://github.com/WebOfTrust/keripy/blob/main/.github/FUNDING.yml

    https://kentbull.com/2023/03/09/keri-tutorial-series-treasure-hunting-in-abydos-issuing-and-verifying-a-credential-acdc/

    https://github.com/WebOfTrust/signify-ts/blob/main/.gitignore

    https://github.com/WebOfTrust/cesride/blob/main/.github/workflows/publish.yml

    https://humancolossus.foundation/blog/thinking-of-did-keri-on

    https://github.com/WebOfTrust/keria/blob/main/.gitignore

    https://github.com/WebOfTrust/keripy/blob/main/.github/workflows/interop/Dockerfile

    https://www.gleif.org/en/about

    https://github.com/WebOfTrust/keri/blob/main/LICENSE

    https://github.com/trustoverip/acdc/wiki/ACDC

    https://github.com/WebOfTrust/signify-ts/blob/main/LICENSE

    https://github.com/WebOfTrust/cesride/blob/main/.github/workflows/test.yml

    https://github.com/WebOfTrust/keria/blob/main/LICENSE

    https://github.com/WebOfTrust/keripy/blob/main/.github/workflows/publish-keripy.yml

    https://github.com/WebOfTrust/keri/blob/main/LICENSE.md

    https://kentbull.com/2023/01/27/keri-tutorial-series-kli-sign-and-verify-with-heartnet/

    https://github.com/WebOfTrust/cesride/blob/main/.gitignore

    https://weboftrust.github.io/WOT-terms/docs/tags

    https://github.com/WebOfTrust/keria/blob/main/Makefile

    https://www.gleif.org/en/about/this-is-gleif

    https://github.com/WebOfTrust/signify-ts/blob/main/README.md

    https://github.com/WebOfTrust/keripy/blob/main/.github/workflows/python-app-ci.yml

    https://github.com/WebOfTrust/keri/blob/main/README.md

    https://github.com/trustoverip/acdc/wiki/ADC

    https://ksoeteman.nl/2022/08/self-sovereign-identity-can-do-just-fine-blockchain-less/

    https://github.com/WebOfTrust/cesride/blob/main/.rustfmt.toml

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/.eslintrc.cjs

    https://github.com/WebOfTrust/keripy/blob/main/.gitignore

    https://github.com/WebOfTrust/keria/blob/main/README.md

    https://medium.com/spherity/introducing-keri-8f50ed1d8ed7

    https://github.com/trustoverip/acdc/wiki/agency

    https://kentbull.com/2022/06/05/keri-start/

    https://github.com/WebOfTrust/cesride/blob/main/Cargo.toml

    https://github.com/WebOfTrust/keripy/blob/main/.readthedocs.yaml

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/.gitignore

    https://github.com/WebOfTrust/keri/blob/main/agenda.md

    https://weboftrust.github.io/WOT-terms/docs/tags/acdc

    https://github.com/WebOfTrust/keria/blob/main/docs/protocol.md

    https://github.com/WebOfTrust/cesride/blob/main/LICENSE

    https://github.com/WebOfTrust/keripy/blob/main/LICENSE

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/.puppeteerrc.cjs

    https://github.com/trustoverip/acdc/wiki/agent

    https://github.com/WebOfTrust/keria/blob/main/images/keria.dockerfile

    https://github.com/WebOfTrust/keri/blob/main/agenda2022.md

    https://github.com/WebOfTrust/keripy/blob/main/Makefile

    https://github.com/WebOfTrust/cesride/blob/main/Makefile

    https://github.com/WebOfTrust/keria/blob/main/requirements.txt

    https://weboftrust.github.io/WOT-terms/docs/tags/keri

    https://www.gleif.org/en/about/our-vision

    https://github.com/WebOfTrust/keri/blob/main/docs/.DS_Store

    https://github.com/trustoverip/acdc/wiki/AID

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/client.png

    https://github.com/WebOfTrust/cesride/blob/main/README.md

    https://github.com/WebOfTrust/keripy/blob/main/README.md

    https://github.com/WebOfTrust/keria/blob/main/scripts/keri/cf/demo-witness-oobis.json

    https://github.com/WebOfTrust/keripy/blob/main/docs/Makefile

    https://github.com/trustoverip/acdc/wiki/ambient-verifiability

    https://github.com/WebOfTrust/cesride/blob/main/codecov.yml

    https://github.com/WebOfTrust/keria/blob/main/scripts/keri/cf/keria.json

    https://weboftrust.github.io/WOT-terms/feedback

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/connecting.png

    https://github.com/WebOfTrust/keria/blob/main/scripts/keri/cf/main/keria.json

    https://github.com/WebOfTrust/keri/blob/main/docs/Glossary.md

    https://github.com/WebOfTrust/keripy/blob/main/docs/conf.py

    https://medium.com/finema/minimal-disclosure-of-identity-with-zero-knowledge-proof-and-cl-signature-517ed2a61307

    https://github.com/WebOfTrust/cesride/blob/main/src/core/bexter.rs

    https://github.com/trustoverip/acdc/wiki/AN

    https://www.gleif.org/en/about/our-values

    https://github.com/WebOfTrust/keria/blob/main/setup.py

    https://github.com/WebOfTrust/keri/blob/main/docs/KERI-Mooc.md

    https://github.com/WebOfTrust/keripy/blob/main/docs/index.rst

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/identifier.png

    https://www.gleif.org/en/about/gleif-services

    https://github.com/WebOfTrust/cesride/blob/main/src/core/cigar.rs

    https://github.com/WebOfTrust/keria/blob/main/src/keria/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/docs/keri_app.rst

    https://github.com/trustoverip/acdc/wiki/APC

    https://weboftrust.github.io/WOT-terms/howtos-menu

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/index.html

    https://github.com/WebOfTrust/keripy/blob/main/docs/keri_core.rst

    https://github.com/WebOfTrust/keria/blob/main/src/keria/__main__.py

    https://github.com/WebOfTrust/keri/blob/main/docs/KERI_Msg_Seal.md

    https://github.com/WebOfTrust/cesride/blob/main/src/core/common.rs

    https://www.gleif.org/en/about/gleif-services/gleif-service-catalog

    https://github.com/trustoverip/acdc/wiki/API

    https://github.com/WebOfTrust/keripy/blob/main/docs/keri_db.rst

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/docs/keri_end.rst

    https://weboftrust.github.io/WOT-terms/howtos/hwt_embed-github-hosted-image-in-github-wiki-page

    https://github.com/WebOfTrust/cesride/blob/main/src/core/counter/mod.rs

    https://github.com/WebOfTrust/keri/blob/main/docs/PartialRotation.md

    https://github.com/trustoverip/acdc/wiki/append-only-event-logs

    https://medium.com/finema/verifiable-credential-and-verifiable-presentation-for-decentralized-digital-identity-132d107c2d9f

    https://github.com/WebOfTrust/keripy/blob/main/docs/keri_help.rst

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/agenting.py

    https://www.gleif.org/en/about/gleif-services/service-reports

    https://github.com/WebOfTrust/cesride/blob/main/src/core/counter/tables.rs

    https://github.com/WebOfTrust/keripy/blob/main/docs/keri_peer.rst

    https://github.com/trustoverip/acdc/wiki/application-programming-interface

    https://weboftrust.github.io/WOT-terms/howtos/hwt_get-markdown-from-ToIP-wiki

    https://github.com/WebOfTrust/keripy/blob/main/docs/keri_vc.rst

    https://github.com/WebOfTrust/cesride/blob/main/src/core/creder.rs

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/package-lock.json

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/aiding.py

    https://github.com/WebOfTrust/keripy/blob/main/docs/keri_vdr.rst

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/package.json

    https://github.com/WebOfTrust/cesride/blob/main/src/core/dater.rs

    https://github.com/trustoverip/acdc/wiki/authentic-chained-data-container

    https://github.com/WebOfTrust/keri/blob/main/docs/Q-and-A-Security.md

    https://github.com/WebOfTrust/keripy/blob/main/docs/make.bat

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/cli/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/docs/readme.rst

    https://www.gleif.org/en/about/gleif-services/service-reports/service-reports-archive

    https://github.com/WebOfTrust/cesride/blob/main/src/core/diger.rs

    https://weboftrust.github.io/WOT-terms/howtos/hwt_load-toip-glossary-in-weboftrust-github-page

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/cli/commands/__init__.py

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/public/vite.svg

    https://github.com/trustoverip/acdc/wiki/authentic-data-container

    https://medium.com/finema/remote-identity-proofing-for-digital-identity-c9a285c1b774

    https://github.com/WebOfTrust/keripy/blob/main/docs/requirements.txt

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/cli/commands/start.py

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/scripts/keri/cf/demo-witness-oobis.json

    https://github.com/WebOfTrust/keripy/blob/main/images/keripy.dockerfile

    https://github.com/WebOfTrust/keri/blob/main/docs/Q-and-A.md

    https://github.com/WebOfTrust/cesride/blob/main/src/core/indexer/mod.rs

    https://github.com/trustoverip/acdc/wiki/authentic-provenance-chain

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/cli/keria.py

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/App.css

    https://github.com/WebOfTrust/keripy/blob/main/images/witness.demo.dockerfile

    https://github.com/WebOfTrust/keri/blob/main/docs/README.md

    https://www.gleif.org/en/about/gleif-services/daily-service-availability

    https://weboftrust.github.io/WOT-terms/howtos/hwt_pull-in-markdown-documents

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/App.tsx

    https://github.com/trustoverip/acdc/wiki/authentic-web

    https://github.com/WebOfTrust/keripy/blob/main/interop/README.md

    https://github.com/WebOfTrust/cesride/blob/main/src/core/indexer/tables.rs

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/credentialing.py

    https://github.com/WebOfTrust/keripy/blob/main/publish.sh

    https://www.gleif.org/en/about/gleif-services/iso-20000-certification

    https://github.com/WebOfTrust/keri/blob/main/docs/keri-dev-env.md

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/MainComponent.tsx

    https://github.com/trustoverip/acdc/wiki/authenticity

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/indirecting.py

    https://github.com/WebOfTrust/keri/blob/main/docs/oobi.md

    https://weboftrust.github.io/WOT-terms/howtos/hwt_why-terms-wot-manage-structure

    https://github.com/WebOfTrust/cesride/blob/main/src/core/matter/mod.rs

    https://medium.com/finema/anonymous-credential-part-1-brief-overview-and-history-c6679034c914

    https://github.com/WebOfTrust/keripy/blob/main/ref/CypherSuites.md

    https://github.com/WebOfTrust/keri/blob/main/images/.DS_Store

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/notifying.py

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/Signify.tsx

    https://github.com/trustoverip/acdc/wiki/authoritative

    https://github.com/WebOfTrust/keripy/blob/main/ref/MultisigIssuance.md

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/SignifyDemo.tsx

    https://github.com/WebOfTrust/keri/blob/main/images/Arelle.png

    https://weboftrust.github.io/WOT-terms/markdown-page

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/presenting.py

    https://www.gleif.org/en/about/open-data

    https://github.com/trustoverip/acdc/wiki/authority

    https://essif-lab.github.io/framework/docs/essifLab

    https://github.com/WebOfTrust/keripy/blob/main/ref/Peer2PeerCredentials.md

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/TestsComponent.tsx

    https://github.com/WebOfTrust/keria/blob/main/src/keria/app/specing.py

    https://github.com/WebOfTrust/cesride/blob/main/src/core/matter/tables.rs

    https://github.com/WebOfTrust/keri/blob/main/images/Direct-mode-kel-kerl.png

    https://essif-lab.github.io/framework/docs/essifLab-collaborative-understanding

    https://github.com/trustoverip/acdc/wiki/authorization

    https://github.com/WebOfTrust/keripy/blob/main/ref/PythonStyleGuide.md

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/assets/react.svg

    https://github.com/WebOfTrust/keria/blob/main/src/keria/core/__init__.py

    https://github.com/WebOfTrust/cesride/blob/main/src/core/mod.rs

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/index.css

    https://essif-lab.github.io/framework/docs/essifLab-fw

    https://github.com/WebOfTrust/keri/blob/main/images/Docker.png

    https://weboftrust.github.io/WOT-terms/visualisations

    https://github.com/WebOfTrust/keripy/blob/main/ref/getting_started.md

    https://github.com/WebOfTrust/keria/blob/main/src/keria/core/authing.py

    https://github.com/trustoverip/acdc/wiki/authorized-vlei-representative

    https://github.com/WebOfTrust/keria/blob/main/src/keria/core/httping.py

    https://github.com/trustoverip/acdc/wiki/autonomic-computing-systems

    https://github.com/WebOfTrust/keripy/blob/main/ref/tel.md

    https://github.com/WebOfTrust/keria/blob/main/src/keria/core/keeping.py

    https://github.com/WebOfTrust/keripy/blob/main/requirements.txt

    https://github.com/trustoverip/acdc/wiki/autonomic-identifier

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/README.md

    https://github.com/WebOfTrust/keria/blob/main/src/keria/core/longrunning.py

    https://essif-lab.github.io/framework/docs/essifLab-fw-backlog

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/main.tsx

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/alice-bob-agent.sh

    https://github.com/WebOfTrust/keria/blob/main/src/keria/db/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/challenge.sh

    https://github.com/WebOfTrust/keria/blob/main/src/keria/db/basing.py

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/test_components/Challenges.tsx

    https://github.com/trustoverip/acdc/wiki/autonomic-identity-system

    https://github.com/WebOfTrust/keri/blob/main/images/Java_logo.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/clear.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/test_components/Credentials.tsx

    https://github.com/WebOfTrust/keria/blob/main/src/keria/end/__init__.py

    https://github.com/WebOfTrust/keri/blob/main/images/KERI_image_by_CChunningham.png

    https://github.com/trustoverip/acdc/wiki/autonomic-namespace

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/delegate-agent.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/test_components/Delegation.tsx

    https://github.com/WebOfTrust/keria/blob/main/src/keria/end/ending.py

    https://github.com/WebOfTrust/keri/blob/main/images/Keri_logo_color_on_white.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/delegate.sh

    https://www.gleif.org/en/about/open-source

    https://github.com/trustoverip/acdc/wiki/AVR

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/test_components/Multisig.tsx

    https://github.com/WebOfTrust/keria/blob/main/src/keria/keriaing.py

    https://github.com/WebOfTrust/keri/blob/main/images/Key-Event.png

    https://github.com/WebOfTrust/cesride/blob/main/src/core/number.rs

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/test_components/Randy.tsx

    https://medium.com/finema/keri-jargon-in-a-nutshell-part-1-fb554d58f9d0

    https://github.com/trustoverip/acdc/wiki/backer

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/demo-script.sh

    https://github.com/WebOfTrust/keria/blob/main/src/keria/testing/__init__.py

    https://github.com/WebOfTrust/keri/blob/main/images/Sphinx.png

    https://github.com/WebOfTrust/cesride/blob/main/src/core/pather.rs

    https://github.com/trustoverip/acdc/wiki/BADA

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/demo-witness-script.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/test_components/Salty.tsx

    https://github.com/WebOfTrust/keri/blob/main/images/TEL-and-KEL.png

    https://github.com/WebOfTrust/keria/blob/main/src/keria/testing/testing_helper.py

    https://github.com/WebOfTrust/cesride/blob/main/src/core/prefixer.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/multisig-agent.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/test_components/Witnesses.tsx

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/README.md

    https://github.com/trustoverip/acdc/wiki/base-media-type

    https://github.com/WebOfTrust/keri/blob/main/images/XBRL.png

    https://github.com/WebOfTrust/cesride/blob/main/src/core/sadder.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/multisig-delegate-agent.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/src/vite-env.d.ts

    https://github.com/trustoverip/acdc/wiki/base64

    https://github.com/WebOfTrust/cesride/blob/main/src/core/saider.rs

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/favicon-16x16.png

    https://github.com/WebOfTrust/keri/blob/main/images/ais.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/multisig-delegate-delegator-agent.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/tests/integrations.js

    https://github.com/WebOfTrust/cesride/blob/main/src/core/salter.rs

    https://github.com/trustoverip/acdc/wiki/bespoke-credential

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/favicon-32x32.png

    https://github.com/WebOfTrust/keri/blob/main/images/autonomic-architecture.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/multisig-delegate-delegator.sh

    https://essif-lab.github.io/framework/docs/essifLab-fw-conceptual-architecture-framework

    https://github.com/trustoverip/acdc/wiki/best-available-data-acceptance-mechanism

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/tsconfig.json

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/index.css

    https://github.com/WebOfTrust/cesride/blob/main/src/core/seqner.rs

    https://github.com/WebOfTrust/keri/blob/main/images/backer-witness.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/multisig-delegate.sh

    https://github.com/trustoverip/acdc/wiki/BFT

    https://github.com/WebOfTrust/cesride/blob/main/src/core/serder.rs

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/tsconfig.node.json

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/index.html

    https://github.com/WebOfTrust/keri/blob/main/images/basic-scid.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/multisig-partial-rotation.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/vite.config.ts

    https://github.com/WebOfTrust/cesride/blob/main/src/core/siger.rs

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/oauth2-redirect.html

    https://github.com/trustoverip/acdc/wiki/binding

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/multisig-triple.sh

    https://github.com/WebOfTrust/keri/blob/main/images/bazel-logo.png

    https://github.com/trustoverip/acdc/wiki/blake3

    https://github.com/WebOfTrust/signify-ts/blob/main/examples/signify-react-ts/vite.config.ts.timestamp-1685395612909-bba831f8e6577.mjs

    https://github.com/WebOfTrust/cesride/blob/main/src/core/signer.rs

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-initializer.js

    https://github.com/WebOfTrust/keri/blob/main/images/caxe.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/multisig.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/package-lock.json

    https://github.com/WebOfTrust/cesride/blob/main/src/core/tholder.rs

    https://github.com/trustoverip/acdc/wiki/blind-oobi

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui-bundle.js

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/single-witness-create-agent.sh

    https://github.com/WebOfTrust/keri/blob/main/images/dart.png

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui-bundle.js.map

    https://github.com/WebOfTrust/signify-ts/blob/main/package.json

    https://github.com/trustoverip/acdc/wiki/blinded-revocation-registry

    https://github.com/WebOfTrust/cesride/blob/main/src/core/util.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/start-agent.sh

    https://github.com/WebOfTrust/keri/blob/main/images/delegation-keri-muggles.png

    https://github.com/WebOfTrust/signify-ts/blob/main/src/index.ts

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui-es-bundle-core.js

    https://github.com/trustoverip/acdc/wiki/branch

    https://github.com/WebOfTrust/cesride/blob/main/src/core/verfer.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/basic/start-witness.sh

    https://github.com/WebOfTrust/keri/blob/main/images/delegation_flow.plantuml

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/app/apping.ts

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui-es-bundle-core.js.map

    https://github.com/trustoverip/acdc/wiki/byzantine-agreement

    https://github.com/WebOfTrust/cesride/blob/main/src/crypto/csprng.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/credentials/multisig-holder-agent.sh

    https://github.com/WebOfTrust/keri/blob/main/images/delegation_flow.png

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/app/client.ts

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui-es-bundle.js

    https://github.com/trustoverip/acdc/wiki/byzantine-fault-tolerance

    https://github.com/WebOfTrust/cesride/blob/main/src/crypto/hash.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/credentials/multisig-issuer-agent.sh

    https://github.com/WebOfTrust/keri/blob/main/images/derivation-code.png

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/app/controller.ts

    https://github.com/trustoverip/acdc/wiki/certificate-transparency

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui-es-bundle.js.map

    https://github.com/WebOfTrust/cesride/blob/main/src/crypto/mod.rs

    https://weboftrust.github.io/WOT-terms/docs/category/gleif

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/credentials/multisig-issuer.sh

    https://github.com/WebOfTrust/cesride/blob/main/src/crypto/salt.rs

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/app/habery.ts

    https://github.com/WebOfTrust/keri/blob/main/images/didcomm.png

    https://github.com/trustoverip/acdc/wiki/CESR

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui-standalone-preset.js

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/credentials/single-issuer-agent.sh

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/app/signify.ts

    https://github.com/WebOfTrust/cesride/blob/main/src/crypto/sign.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/credentials/single-issuer.sh

    https://github.com/WebOfTrust/keri/blob/main/images/gh-actions.png

    https://github.com/trustoverip/acdc/wiki/cesr-proof-signatures

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui-standalone-preset.js.map

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/app/tsconfig.json

    https://github.com/WebOfTrust/cesride/blob/main/src/data.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/README.md

    https://github.com/WebOfTrust/keri/blob/main/images/gitflow.png

    https://github.com/trustoverip/acdc/wiki/cesride

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui.css

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/authing.ts

    https://github.com/WebOfTrust/cesride/blob/main/src/error.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/anchor.json

    https://github.com/WebOfTrust/keri/blob/main/images/hash-function.jpg

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui.css.map

    https://github.com/trustoverip/acdc/wiki/chain-link-confidentiality

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/cigar.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/challenge-sample-pool2.json

    https://github.com/WebOfTrust/cesride/blob/main/src/lib.rs

    https://github.com/WebOfTrust/keri/blob/main/images/identity_system_security_overlay.png

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui.js

    https://github.com/trustoverip/acdc/wiki/chain-of-custody

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/cipher.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/challenge-sample.json

    https://github.com/WebOfTrust/cesride/blob/main/wasm/.gitignore

    https://github.com/WebOfTrust/keri/blob/main/images/inception-rotation.png

    https://github.com/WebOfTrust/keria/blob/main/static/swaggerui/swagger-ui.js.map

    https://github.com/trustoverip/acdc/wiki/cigar

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/core.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/credential-data.json

    https://github.com/WebOfTrust/cesride/blob/main/wasm/Cargo.toml

    https://github.com/WebOfTrust/keri/blob/main/images/inception-statement.png

    https://github.com/WebOfTrust/keria/blob/main/tests/__init__.py

    https://github.com/trustoverip/acdc/wiki/claim

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/counter.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/delegate-1.json

    https://github.com/trustoverip/acdc/wiki/CLC

    https://github.com/WebOfTrust/cesride/blob/main/wasm/README.md

    https://github.com/WebOfTrust/keri/blob/main/images/internet_broken.png

    https://github.com/WebOfTrust/keria/blob/main/tests/app/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/delegate-2.json

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/decrypter.ts

    https://github.com/WebOfTrust/keria/blob/main/tests/app/test_agenting.py

    https://github.com/WebOfTrust/keri/blob/main/images/keri-gdpr-compliance-muggles.png

    https://github.com/trustoverip/acdc/wiki/clone

    https://essif-lab.github.io/framework/docs/essifLab-glossary

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/node/.gitignore

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/diger.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/delegatee.json

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/node/package.json

    https://github.com/WebOfTrust/keria/blob/main/tests/app/test_aiding.py

    https://github.com/trustoverip/acdc/wiki/cloud-agent

    https://github.com/WebOfTrust/keri/blob/main/images/key-event-log-muggles.png

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/encrypter.ts

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/node/src/main.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/delegator-1.json

    https://github.com/trustoverip/acdc/wiki/code-table

    https://github.com/WebOfTrust/keri/blob/main/images/key-infra-valence.png

    https://github.com/WebOfTrust/keria/blob/main/tests/app/test_credentialing.py

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/eventing.ts

    https://github.com/trustoverip/acdc/wiki/code-table-selector

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/node/tslint.json

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/delegator-2.json

    https://github.com/WebOfTrust/keria/blob/main/tests/app/test_indirecting.py

    https://github.com/WebOfTrust/keri/blob/main/images/key-rotation-muggles-steps1-2.png

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/httping.ts

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/indexer.ts

    https://github.com/trustoverip/acdc/wiki/cold-start-stream-parsing

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/delegator.json

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/node/yarn.lock

    https://github.com/WebOfTrust/keri/blob/main/images/key-rotation-muggles-steps3-4.png

    https://github.com/WebOfTrust/keria/blob/main/tests/app/test_notifying.py

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/keeping.ts

    https://github.com/WebOfTrust/keria/blob/main/tests/app/test_presenting.py

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/web/bootstrap.js

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/ecr-auth-data.json

    https://github.com/WebOfTrust/keri/blob/main/images/key-rotation-muggles-steps5-6.png

    https://github.com/trustoverip/acdc/wiki/collective-signature

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/kering.ts

    https://github.com/WebOfTrust/keria/blob/main/tests/app/test_specing.py

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/ecr-auth-edges-filter.jq

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/web/index.html

    https://github.com/trustoverip/acdc/wiki/collision

    https://github.com/WebOfTrust/keri/blob/main/images/key-rotation-muggles-steps7-8.png

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/manager.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/ecr-auth-rules.json

    https://github.com/trustoverip/acdc/wiki/compact-variant

    https://github.com/WebOfTrust/keria/blob/main/tests/conftest.py

    https://github.com/WebOfTrust/keri/blob/main/images/key-rotation-muggles-steps9-10.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/web/index.js

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/matter.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/ecr-data.json

    https://github.com/trustoverip/acdc/wiki/complementary-integrity-verification

    https://github.com/WebOfTrust/keria/blob/main/tests/core/__init__.py

    https://github.com/WebOfTrust/keri/blob/main/images/loci-of-control.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/web/package-lock.json

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/number.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/ecr-edges-filter.jq

    https://github.com/trustoverip/acdc/wiki/composability

    https://github.com/WebOfTrust/keri/blob/main/images/me-and-mother-in-law.jpg

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/prefixer.ts

    https://github.com/WebOfTrust/keria/blob/main/tests/core/test_authing.py

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/web/package.json

    https://github.com/trustoverip/acdc/wiki/composable

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/ecr-rules.json

    https://github.com/WebOfTrust/keri/blob/main/images/mother-in-law-scolding.gif

    https://github.com/WebOfTrust/keria/blob/main/tests/core/test_httping.py

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/web/webpack.config.js

    https://essif-lab.github.io/framework/docs/essifLab-objectives

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/saider.ts

    https://github.com/WebOfTrust/keria/blob/main/tests/scripts/keri/cf/keria.json

    https://github.com/trustoverip/acdc/wiki/composable-event-streaming-representation

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/salter.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/estonly-sample.json

    https://github.com/WebOfTrust/keri/blob/main/images/nodejs.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/demo/web/yarn.lock

    https://github.com/trustoverip/acdc/wiki/concatenation

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/seqner.ts

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/error.rs

    https://github.com/WebOfTrust/keria/blob/main/tests/scripts/keri/cf/main/keria.json

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/external-gar-incept.json

    https://github.com/WebOfTrust/keri/blob/main/images/npm.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/lib.rs

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/serder.ts

    https://github.com/trustoverip/acdc/wiki/configuration-files

    https://github.com/WebOfTrust/keria/blob/main/tests/testing/test_testing_helper.py

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/external-gar-nodel-incept.json

    https://github.com/WebOfTrust/keri/blob/main/images/ntru.png

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/siger.ts

    https://github.com/trustoverip/acdc/wiki/consensus-mechanism

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/bexter.rs

    https://github.com/WebOfTrust/keri/blob/main/images/openapi.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/extgar-delegate-icp-anchor.json

    https://github.com/trustoverip/acdc/wiki/content-addressable-hash

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/cigar.rs

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/signer.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/gleif-sample.json

    https://github.com/WebOfTrust/keri/blob/main/images/paw.png

    https://github.com/trustoverip/acdc/wiki/contextual-linkability

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/tholder.ts

    https://weboftrust.github.io/WOT-terms/docs/Concepts/

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/codex.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/holder-sample.json

    https://github.com/WebOfTrust/keri/blob/main/images/platform_locked_trust.png

    https://github.com/trustoverip/acdc/wiki/contingent-disclosure

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/common.rs

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/tsconfig.json

    https://github.com/WebOfTrust/keri/blob/main/images/platypus.jpg

    https://github.com/trustoverip/acdc/wiki/contractually-protected-disclosure

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/utils.ts

    https://github.com/WebOfTrust/keri/blob/main/images/postman.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/dater.rs

    https://essif-lab.github.io/framework/docs/essifLab-pattern-list

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/inquisitor-sample.json

    https://github.com/trustoverip/acdc/wiki/control-authority

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/core/verfer.ts

    https://github.com/WebOfTrust/keri/blob/main/images/prefix.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/diger.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/internal-gar-incept.json

    https://github.com/trustoverip/acdc/wiki/controller

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/end/ending.ts

    https://github.com/WebOfTrust/keri/blob/main/images/pubprivkey-caveat.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/mod.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/internal-gar-nodel-incept.json

    https://github.com/trustoverip/acdc/wiki/coroutines

    https://github.com/WebOfTrust/signify-ts/blob/main/src/keri/end/tsconfig.json

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/legal-entity-data.json

    https://github.com/WebOfTrust/keri/blob/main/images/restapi.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/number.rs

    https://github.com/trustoverip/acdc/wiki/correlation

    https://github.com/WebOfTrust/signify-ts/blob/main/test/app/controller.test.ts

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/prefixer.rs

    https://github.com/WebOfTrust/keri/blob/main/images/sai_sci.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/legal-entity-edges-filter.jq

    https://github.com/trustoverip/acdc/wiki/count-code

    https://www.gleif.org/en/about/gleif-engagement

    https://github.com/WebOfTrust/signify-ts/blob/main/test/app/habery.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/mbx.json

    https://github.com/trustoverip/acdc/wiki/credential

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/saider.rs

    https://github.com/WebOfTrust/keri/blob/main/images/sci-muggles.png

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/authing.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-1-sample.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/coring.test.ts

    https://github.com/WebOfTrust/keri/blob/main/images/sci_issue_bind.png

    https://github.com/trustoverip/acdc/wiki/CRUD

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/salter.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-2-sample.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/counter.test.ts

    https://github.com/trustoverip/acdc/wiki/crypto-libraries

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/seqner.rs

    https://github.com/WebOfTrust/keri/blob/main/images/sci_ssi_book.png

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-3-sample.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/decrypter.test.ts

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/serder.rs

    https://github.com/WebOfTrust/keri/blob/main/images/spanning_layer.png

    https://github.com/trustoverip/acdc/wiki/cryptocurrency

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-delegate-icp-anchor.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/diger.test.ts

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/siger.rs

    https://github.com/trustoverip/acdc/wiki/cryptographic-commitment-scheme

    https://github.com/WebOfTrust/keri/blob/main/images/swagger.png

    https://essif-lab.github.io/framework/docs/essifLab-principles

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-delegate-sample.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/encrypter.test.ts

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/signer.rs

    https://github.com/WebOfTrust/keri/blob/main/images/trade-space-limitations.png

    https://github.com/trustoverip/acdc/wiki/cryptographic-primitive

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-delegate.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/eventing.test.ts

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/tholder.rs

    https://github.com/WebOfTrust/keri/blob/main/images/trust-over-ip-stack.png

    https://github.com/trustoverip/acdc/wiki/cryptographic-strength

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/httping.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-delegator.json

    https://github.com/trustoverip/acdc/wiki/cryptonym

    https://github.com/WebOfTrust/keri/blob/main/images/waist_neck.png

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/primitives/verfer.rs

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-sample.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/indexer.test.ts

    https://github.com/WebOfTrust/cesride/blob/main/wasm/src/util.rs

    https://github.com/trustoverip/acdc/wiki/CSPRNG

    https://github.com/WebOfTrust/keri/blob/main/images/web-of-trust.png

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/manager.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/multisig-triple-sample.json

    https://github.com/trustoverip/acdc/wiki/CT

    https://github.com/WebOfTrust/keri/blob/main/images/webauth.png

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/matter.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/non-transferable-sample.json

    https://github.com/trustoverip/acdc/wiki/custodial-agent

    https://github.com/WebOfTrust/keri/blob/main/images/workiva.png

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/prefixer.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/oor-auth-data.json

    https://github.com/trustoverip/acdc/wiki/custodial-rotation

    https://github.com/WebOfTrust/keri/blob/main/interop/credential.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/saider.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/oor-auth-edges-filter.jq

    https://github.com/trustoverip/acdc/wiki/DAG

    https://github.com/WebOfTrust/keri/blob/main/interop/holder.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/salter.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/oor-data.json

    https://essif-lab.github.io/framework/docs/essifLab-project

    https://github.com/WebOfTrust/keri/blob/main/interop/issuer.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/seqner.test.ts

    https://github.com/trustoverip/acdc/wiki/DAR

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/oor-edges-filter.jq

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/serder.test.ts

    https://github.com/WebOfTrust/keri/blob/main/interop/schema.json

    https://github.com/trustoverip/acdc/wiki/data-anchor

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/qvi-data.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/signer.test.ts

    https://github.com/trustoverip/acdc/wiki/dead-drop

    https://github.com/WebOfTrust/keri/blob/main/interop/tel.json

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/remote-witness-sample.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/core/verfer.test.ts

    https://github.com/trustoverip/acdc/wiki/decentralized-identifier

    https://github.com/WebOfTrust/keri/blob/main/interop/witness.json

    https://github.com/WebOfTrust/signify-ts/blob/main/test/end/ending.test.ts

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/rootgar-sample.json

    https://github.com/trustoverip/acdc/wiki/decentralized-identity

    https://github.com/WebOfTrust/keri/blob/main/interop/witnesses.json

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/rotate-sample.json

    https://github.com/WebOfTrust/signify-ts/blob/main/tsconfig.json

    https://github.com/trustoverip/acdc/wiki/decentralized-key-management-infrastructure

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/rules.json

    https://github.com/trustoverip/acdc/wiki/DEL

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/trans-wits-sample.json

    https://weboftrust.github.io/WOT-terms/docs/Concepts/intro

    https://github.com/trustoverip/acdc/wiki/delegated-identifier

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/transferable-sample.json

    https://github.com/trustoverip/acdc/wiki/delegation

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/wil-witness-sample.json

    https://essif-lab.github.io/framework/docs/essifLab-vision

    https://github.com/trustoverip/acdc/wiki/derivation-code

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/xbrl-data.jq

    https://github.com/trustoverip/acdc/wiki/designated-authorized-representative

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/data/xbrl-edges-filter.jq

    https://github.com/trustoverip/acdc/wiki/DHT

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/demo-scripts.sh

    https://github.com/trustoverip/acdc/wiki/DID

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/test_scripts.sh

    https://medium.com/decentralized-identity/peer-dids-moving-to-difs-id-working-group-7f1664bcbf30

    https://github.com/trustoverip/acdc/wiki/diger

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/README.md

    https://github.com/trustoverip/acdc/wiki/digest

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/external-gar-init.sh

    https://github.com/trustoverip/acdc/wiki/digital-signature

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/internal-gar-init.sh

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/internal-gar.sh

    https://github.com/trustoverip/acdc/wiki/directed-acyclic-graph

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/intgar-challenge.sh

    https://github.com/trustoverip/acdc/wiki/disclosee

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/issue-xbrl-attestation-agent.sh

    https://github.com/trustoverip/acdc/wiki/discloser

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/issue-xbrl-attestation.sh

    https://github.com/trustoverip/acdc/wiki/distributed-hash-table

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/legal-entity.sh

    https://github.com/trustoverip/acdc/wiki/DKMI

    https://essif-lab.github.io/framework/docs/functional-components/essifLab-fcomp-%3Cfcompid%3E

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/qar.sh

    https://github.com/trustoverip/acdc/wiki/domain

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/root-gar-init.sh

    https://github.com/trustoverip/acdc/wiki/domain-name

    https://github.com/WebOfTrust/keripy/blob/main/scripts/demo/vLEI/root-gar.sh

    https://github.com/trustoverip/acdc/wiki/DPKI

    https://github.com/trustoverip/acdc/wiki/dual-indexed-codes

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/ci-witness-oobis.json

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/demo-witness-oobis-schema.json

    https://github.com/trustoverip/acdc/wiki/dual-text-binary-encoding-format

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/demo-witness-oobis.json

    https://github.com/trustoverip/acdc/wiki/duplicitous-event-log

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/main/wan.json

    https://github.com/trustoverip/acdc/wiki/duplicity

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/main/wes.json

    https://github.com/trustoverip/acdc/wiki/eclipse-attack

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/main/wil.json

    https://github.com/trustoverip/acdc/wiki/ECR

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/main/wit.json

    https://github.com/trustoverip/acdc/wiki/electronic-signature

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/main/wub.json

    https://www.gleif.org/en/about/gleif-engagement/organization-and-committee-engagement

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/main/wyz.json

    https://github.com/trustoverip/acdc/wiki/end-verifiable

    https://essif-lab.github.io/framework/docs/generic-governance-process

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/pool2-witness-oobis.json

    https://github.com/trustoverip/acdc/wiki/engagement-context-role

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/remote-witness-oobis-schema.json

    https://github.com/trustoverip/acdc/wiki/entity

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/remote-witness-oobis.json

    https://github.com/trustoverip/acdc/wiki/entropy

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/vlei-gar-oobis-schema.json

    https://github.com/trustoverip/acdc/wiki/ephemeral

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/vlei-lar-oobis-schema.json

    https://github.com/trustoverip/acdc/wiki/escrow

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/vlei-qar-oobis-schema.json

    https://github.com/trustoverip/acdc/wiki/escrow-state

    https://weboftrust.github.io/WOT-terms/docs/Concepts/keri-dev-env

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/vlei-root-oobis-schema.json

    https://github.com/trustoverip/acdc/wiki/establishment-event

    https://github.com/WebOfTrust/keripy/blob/main/scripts/keri/cf/witness.json

    https://github.com/trustoverip/acdc/wiki/extensible-business-reporting-language

    https://github.com/WebOfTrust/keripy/blob/main/setup.py

    https://github.com/trustoverip/acdc/wiki/FFI

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/__init__.py

    https://essif-lab.github.io/framework/docs/miscellaneous

    https://github.com/trustoverip/acdc/wiki/field-map

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/__init__.py

    https://github.com/trustoverip/acdc/wiki/first-seen

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/agenting.py

    https://github.com/trustoverip/acdc/wiki/foreign-function-interface

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/apping.py

    https://www.gleif.org/en/about/gleif-engagement/consultation-responses

    https://github.com/trustoverip/acdc/wiki/frame-code

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/booting.py

    https://github.com/trustoverip/acdc/wiki/full-disclosure

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/challenging.py

    https://github.com/trustoverip/acdc/wiki/fully-compact

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/__init__.py

    https://github.com/trustoverip/acdc/wiki/fully-expanded

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/__init__.py

    https://github.com/trustoverip/acdc/wiki/GAR

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/agent/__init__.py

    https://github.com/trustoverip/acdc/wiki/ghost-credential

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/agent/demo.py

    https://github.com/trustoverip/acdc/wiki/GLEIF

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/agent/start.py

    https://github.com/trustoverip/acdc/wiki/gleif-authorized-representative

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/agent/vlei.py

    https://github.com/trustoverip/acdc/wiki/GLEIS

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/challenge/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/challenge/generate.py

    https://github.com/trustoverip/acdc/wiki/gnu-privacy-guard

    https://essif-lab.github.io/framework/docs/notations-and-conventions

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/challenge/respond.py

    https://github.com/trustoverip/acdc/wiki/governance-framework

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/challenge/verify.py

    https://github.com/trustoverip/acdc/wiki/GPG

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/contacts/__init__.py

    https://github.com/trustoverip/acdc/wiki/graduated-disclosure

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/contacts/list.py

    https://github.com/trustoverip/acdc/wiki/graph-fragment

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/delegate/__init__.py

    https://github.com/trustoverip/acdc/wiki/group-code

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/delegate/confirm.py

    https://github.com/trustoverip/acdc/wiki/group-framing-code

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/delegate/request.py

    https://github.com/trustoverip/acdc/wiki/habery

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/did/__init__.py

    https://github.com/trustoverip/acdc/wiki/hardware-security-module

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/did/generate.py

    https://essif-lab.github.io/framework/docs/ssi-standards

    https://github.com/trustoverip/acdc/wiki/hierarchical-asynchronous-coroutines-and-input-output

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/ends/__init__.py

    https://github.com/trustoverip/acdc/wiki/hierarchical-composition

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/ends/export.py

    https://github.com/trustoverip/acdc/wiki/hierchical-deterministic-keys

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/escrow.py

    https://github.com/trustoverip/acdc/wiki/hio

    https://weboftrust.github.io/WOT-terms/docs/Education/intro

    https://github.com/trustoverip/acdc/wiki/HSM

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/export.py

    https://github.com/trustoverip/acdc/wiki/I-O

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/incept.py

    https://github.com/trustoverip/acdc/wiki/IANA

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/init.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/interact.py

    https://github.com/trustoverip/acdc/wiki/identifier

    https://www.gleif.org/en/about/gleif-engagement/gleif-stakeholder-groups

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/kevers.py

    https://github.com/trustoverip/acdc/wiki/identifier-system

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/list.py

    https://github.com/trustoverip/acdc/wiki/identity

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/local/__init__.py

    https://github.com/trustoverip/acdc/wiki/inception

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/local/watch.py

    https://essif-lab.github.io/framework/docs/TBD

    https://github.com/trustoverip/acdc/wiki/inception-event

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/mailbox/__init__.py

    https://github.com/trustoverip/acdc/wiki/inconsistency

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/mailbox/debug.py

    https://github.com/trustoverip/acdc/wiki/indexed-signature

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/mailbox/update.py

    https://github.com/trustoverip/acdc/wiki/input-output

    https://daniel-hardman.medium.com/big-desks-and-little-people-e1b1b9e92d79

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/__init__.py

    https://github.com/trustoverip/acdc/wiki/inquisitor

    https://github.com/trustoverip/acdc/wiki/integrity

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/continue.py

    https://github.com/trustoverip/acdc/wiki/interaction-event

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/demo.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/incept.py

    https://github.com/trustoverip/acdc/wiki/interleaved-serialisation

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/interact.py

    https://github.com/trustoverip/acdc/wiki/internal-inconsistency

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/join.py

    https://github.com/trustoverip/acdc/wiki/internet-assigned-numbers-authority

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/rotate.py

    https://github.com/trustoverip/acdc/wiki/interoperability

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/shell.py

    https://github.com/trustoverip/acdc/wiki/interoperable

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/multisig/update.py

    https://github.com/trustoverip/acdc/wiki/ip-address

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/nonce.py

    https://github.com/trustoverip/acdc/wiki/IPEX

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/oobi/__init__.py

    https://github.com/trustoverip/acdc/wiki/issuance-and-presentation-exchange-protocol

    https://essif-lab.github.io/framework/docs/terminology-contributions

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/oobi/clean.py

    https://github.com/trustoverip/acdc/wiki/issuance-event

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/oobi/generate.py

    https://github.com/trustoverip/acdc/wiki/issuance-exchange

    https://github.com/trustoverip/acdc/wiki/issuee

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/oobi/resolve.py

    https://github.com/trustoverip/acdc/wiki/issuer

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/passcode/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/passcode/generate.py

    https://github.com/trustoverip/acdc/wiki/ixn

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/passcode/remove.py

    https://github.com/trustoverip/acdc/wiki/javascript-object-signing-and-encryption

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/passcode/set.py

    https://github.com/trustoverip/acdc/wiki/JOSE

    https://github.com/trustoverip/acdc/wiki/JSON

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/rename.py

    https://weboftrust.github.io/WOT-terms/docs/Education/KERI-Mooc

    https://github.com/trustoverip/acdc/wiki/judge

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/rollback.py

    https://github.com/trustoverip/acdc/wiki/juror

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/rotate.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/saidify.py

    https://github.com/trustoverip/acdc/wiki/jury

    https://github.com/trustoverip/acdc/wiki/KA2CE

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/salt.py

    https://github.com/trustoverip/acdc/wiki/KAACE

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/sign.py

    https://essif-lab.github.io/framework/docs/terminology-design/backgrounds/expressing-oneself

    https://github.com/trustoverip/acdc/wiki/keep

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/status.py

    https://github.com/trustoverip/acdc/wiki/KEL

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/__init__.py

    https://github.com/trustoverip/acdc/wiki/KERI

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/export.py

    https://github.com/trustoverip/acdc/wiki/keri-agreement-algorithm-for-control-establishment

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/issue.py

    https://github.com/trustoverip/acdc/wiki/keri-command-line-interface

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/list.py

    https://github.com/trustoverip/acdc/wiki/keri-improvement-doc

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/present.py

    https://github.com/trustoverip/acdc/wiki/keri-ox

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/registry/__init__.py

    https://github.com/trustoverip/acdc/wiki/keri-request-authentication-method

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/registry/incept.py

    https://github.com/trustoverip/acdc/wiki/keri-suite

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/registry/list.py

    https://github.com/trustoverip/acdc/wiki/keri-suite-search-engine

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/registry/status.py

    https://github.com/trustoverip/acdc/wiki/keria

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/vc/revoke.py

    https://github.com/trustoverip/acdc/wiki/keride

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/verify.py

    https://github.com/trustoverip/acdc/wiki/keridemlia

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/version.py

    https://github.com/trustoverip/acdc/wiki/keripy

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/wallet/__init__.py

    https://github.com/trustoverip/acdc/wiki/KERISSE

    https://essif-lab.github.io/framework/docs/terminology-design/backlog

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/wallet/start.py

    https://github.com/trustoverip/acdc/wiki/KERL

    https://github.com/trustoverip/acdc/wiki/key

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/watcher/__init__.py

    https://github.com/trustoverip/acdc/wiki/key-compromise

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/watcher/list.py

    https://github.com/trustoverip/acdc/wiki/key-event

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/watcher/rotate.py

    https://github.com/trustoverip/acdc/wiki/key-event-log

    https://github.com/trustoverip/acdc/wiki/key-event-message

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/watcher/start.py

    https://weboftrust.github.io/WOT-terms/docs/Education/Q-and-A

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/watcher/update.py

    https://github.com/trustoverip/acdc/wiki/key-event-receipt

    https://github.com/trustoverip/acdc/wiki/key-event-receipt-infrastructure

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/witness/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/witness/demo.py

    https://github.com/trustoverip/acdc/wiki/key-event-receipt-log

    https://github.com/trustoverip/acdc/wiki/key-management

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/witness/start.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/commands/witness/submit.py

    https://github.com/trustoverip/acdc/wiki/key-pair

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/common/__init__.py

    https://github.com/trustoverip/acdc/wiki/key-state

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/common/config.py

    https://github.com/trustoverip/acdc/wiki/key-stretching

    https://essif-lab.github.io/framework/docs/terminology-design/manuals/authoring

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/common/displaying.py

    https://github.com/trustoverip/acdc/wiki/key-transparency

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/common/existing.py

    https://github.com/trustoverip/acdc/wiki/keystore

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/common/incepting.py

    https://github.com/trustoverip/acdc/wiki/KID

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/common/rotating.py

    https://github.com/trustoverip/acdc/wiki/kli

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/common/terming.py

    https://github.com/trustoverip/acdc/wiki/KRAM

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/kli.py

    https://github.com/trustoverip/acdc/wiki/large-language-model

    https://github.com/trustoverip/acdc/wiki/lead-bytes

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/cli/readme.md

    https://github.com/trustoverip/acdc/wiki/ledger-backer

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/configing.py

    https://github.com/trustoverip/acdc/wiki/legal-entity

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/connecting.py

    https://weboftrust.github.io/WOT-terms/docs/Education/Q-and-A-Security

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/delegating.py

    https://github.com/trustoverip/acdc/wiki/legal-entity-engagement-context-role-vlei-credential-governance-framework

    https://essif-lab.github.io/framework/docs/terminology-design/manuals/contributing

    https://github.com/trustoverip/acdc/wiki/legal-entity-official-organizational-role-vlei-credential-governance-framework

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/directing.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/forwarding.py

    https://github.com/trustoverip/acdc/wiki/legal-entity-vlei-credential-governance-framework

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/grouping.py

    https://github.com/trustoverip/acdc/wiki/LEI

    https://www.gleif.org/en/about/gleif-engagement/gleif-stakeholder-groups/gleif-vendor-relationship-group

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/habbing.py

    https://github.com/trustoverip/acdc/wiki/levels-of-assurance

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/httping.py

    https://github.com/trustoverip/acdc/wiki/liveness

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/indirecting.py

    https://github.com/trustoverip/acdc/wiki/LLM

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/keeping.py

    https://github.com/trustoverip/acdc/wiki/LoA

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/kiwiing.py

    https://github.com/trustoverip/acdc/wiki/LoC

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/notifying.py

    https://github.com/trustoverip/acdc/wiki/loci-of-control

    https://essif-lab.github.io/framework/docs/terminology-design/manuals/curating

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/oobiing.py

    https://github.com/trustoverip/acdc/wiki/locked-state

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/signaling.py

    https://github.com/trustoverip/acdc/wiki/management-TEL

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/signing.py

    https://github.com/trustoverip/acdc/wiki/management-transaction-event-log

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/specing.py

    https://github.com/trustoverip/acdc/wiki/message

    https://www.gleif.org/en/about/gleif-engagement/gleif-stakeholder-groups/gleif-gifi-relationship-group

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/storing.py

    https://github.com/trustoverip/acdc/wiki/most-compact

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/app/watching.py

    https://github.com/trustoverip/acdc/wiki/multicodec

    https://github.com/trustoverip/acdc/wiki/multiplexing

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/core/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/core/coring.py

    https://github.com/trustoverip/acdc/wiki/multisig

    https://github.com/trustoverip/acdc/wiki/naive-conversion

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/core/eventing.py

    https://github.com/trustoverip/acdc/wiki/namespace

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/core/parsing.py

    https://essif-lab.github.io/framework/docs/terminology-design/methods

    https://github.com/trustoverip/acdc/wiki/ndigs

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/core/routing.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/core/scheming.py

    https://github.com/trustoverip/acdc/wiki/nested-cooperative-delegated-identifiers

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/db/__init__.py

    https://github.com/trustoverip/acdc/wiki/NFT

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/db/basing.py

    https://github.com/trustoverip/acdc/wiki/non-establishment-event

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/db/dbing.py

    https://github.com/trustoverip/acdc/wiki/non-fungible-token

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/db/escrowing.py

    https://github.com/trustoverip/acdc/wiki/non-normative

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/db/koming.py

    https://github.com/trustoverip/acdc/wiki/non-repudiable

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/db/subing.py

    https://github.com/trustoverip/acdc/wiki/non-transferable

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/.gitignore

    https://github.com/trustoverip/acdc/wiki/non-transferable-identifier

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/__init__.py

    https://essif-lab.github.io/framework/docs/terminology-design/methods/1-1-discussions

    https://github.com/trustoverip/acdc/wiki/normative

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/demo.md

    https://github.com/trustoverip/acdc/wiki/official-organizational-role

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/demo_bob.py

    https://github.com/trustoverip/acdc/wiki/one-way-functions

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/demo_eve.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/demo_kev.py

    https://github.com/trustoverip/acdc/wiki/OOBI

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/demo_sam.py

    https://github.com/trustoverip/acdc/wiki/OOR

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/demoing.py

    https://github.com/trustoverip/acdc/wiki/opcode

    https://www.gleif.org/en/about/gleif-engagement/gleif-stakeholder-groups/gleif-ca-stakeholder-group

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/vectors/bob.2021-03-08_21-37-25_238349.txt

    https://github.com/trustoverip/acdc/wiki/out-of-band-introduction

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/vectors/bob.2021-03-08_23-41-35_745844.txt

    https://github.com/trustoverip/acdc/wiki/owner

    https://github.com/trustoverip/acdc/wiki/ownership

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/vectors/eve.2021-03-08_21-37-25_262367.txt

    https://essif-lab.github.io/framework/docs/terminology-design/methods/criteria-elicitation

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/vectors/eve.2021-03-08_21-38-11_244687.txt

    https://github.com/trustoverip/acdc/wiki/P2P

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/vectors/eve.2021-03-08_23-41-40_603809.txt

    https://github.com/trustoverip/acdc/wiki/pad

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/vectors/eve.2021-03-08_23-52-55_318751.txt

    https://github.com/trustoverip/acdc/wiki/parside

    https://github.com/trustoverip/acdc/wiki/partial-disclosure

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/vectors/sam.2021-03-08_21-38-11_220617.txt

    https://github.com/trustoverip/acdc/wiki/partial-pre-rotation

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/demo/vectors/sam.2021-03-08_23-52-46_400816.txt

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/end/__init__.py

    https://github.com/trustoverip/acdc/wiki/partial-rotation

    https://github.com/trustoverip/acdc/wiki/passcode

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/end/ending.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/end/priming.py

    https://github.com/trustoverip/acdc/wiki/payload

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/end/static/favicon.ico

    https://github.com/trustoverip/acdc/wiki/peer-to-peer

    https://github.com/trustoverip/acdc/wiki/percolated-information-discovery

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/end/static/index.html

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/end/static/index.js

    https://github.com/trustoverip/acdc/wiki/persistent-data-structure

    https://essif-lab.github.io/framework/docs/terminology-design/methods/real-life-example

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/end/static/robots.txt

    https://github.com/trustoverip/acdc/wiki/persistent-identifier

    https://github.com/trustoverip/acdc/wiki/PGP

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/help/__init__.py

    https://github.com/trustoverip/acdc/wiki/PID

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/help/helping.py

    https://github.com/trustoverip/acdc/wiki/pii

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/kering.py

    https://github.com/trustoverip/acdc/wiki/pipelining

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/peer/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/peer/exchanging.py

    https://github.com/trustoverip/acdc/wiki/PKI

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vc/__init__.py

    https://github.com/trustoverip/acdc/wiki/post-pad

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vc/protocoling.py

    https://github.com/trustoverip/acdc/wiki/pre-pad

    https://github.com/trustoverip/acdc/wiki/pre-rotation

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vc/proving.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vc/walleting.py

    https://github.com/trustoverip/acdc/wiki/prefix

    https://essif-lab.github.io/framework/docs/terminology-design/methods/terminology-process

    https://github.com/trustoverip/acdc/wiki/presentation-exchange

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vdr/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vdr/credentialing.py

    https://github.com/trustoverip/acdc/wiki/pretty-good-privacy

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vdr/eventing.py

    https://github.com/trustoverip/acdc/wiki/primary-root-of-trust

    https://github.com/trustoverip/acdc/wiki/primitive

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vdr/verifying.py

    https://github.com/WebOfTrust/keripy/blob/main/src/keri/vdr/viring.py

    https://github.com/trustoverip/acdc/wiki/PRNG

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/favicon-16x16.png

    https://github.com/trustoverip/acdc/wiki/promiscuous-mode

    https://github.com/trustoverip/acdc/wiki/proof-of-authority

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/favicon-32x32.png

    https://github.com/trustoverip/acdc/wiki/proof-of-authorship

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/index.html

    https://github.com/trustoverip/acdc/wiki/protocol

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/oauth2-redirect.html

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/swagger-ui-bundle.js

    https://github.com/trustoverip/acdc/wiki/provenance

    https://essif-lab.github.io/framework/docs/terminology-design/overview

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/swagger-ui-bundle.js.map

    https://github.com/trustoverip/acdc/wiki/pseudo-random-number

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/swagger-ui-standalone-preset.js

    https://github.com/trustoverip/acdc/wiki/PTEL

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-02-07_vlei-q-a_v1.1-final

    https://github.com/trustoverip/acdc/wiki/public-key-infrastructure

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/swagger-ui-standalone-preset.js.map

    https://github.com/trustoverip/acdc/wiki/public-transaction-event-log

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/swagger-ui.css

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/swagger-ui.css.map

    https://github.com/trustoverip/acdc/wiki/public-verifiable-credential-registry

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/swagger-ui.js

    https://github.com/trustoverip/acdc/wiki/QAR

    https://github.com/WebOfTrust/keripy/blob/main/static/swaggerui/swagger-ui.js.map

    https://github.com/trustoverip/acdc/wiki/qualified

    https://github.com/WebOfTrust/keripy/blob/main/tests/__init__.py

    https://github.com/trustoverip/acdc/wiki/qualified-vlei-issuer

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/__init__.py

    https://github.com/trustoverip/acdc/wiki/qualified-vlei-issuer-vlei-credential-governance-framework

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/__init__.py

    https://github.com/trustoverip/acdc/wiki/QVI

    https://essif-lab.github.io/framework/docs/terminology-design/overview/common-understanding

    https://github.com/trustoverip/acdc/wiki/qvi-authorized-representative

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/anchor.json

    https://github.com/trustoverip/acdc/wiki/race-condition

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands.py

    https://github.com/trustoverip/acdc/wiki/rainbow-table-attack

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/__init__.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/challenge/alice.json

    https://github.com/trustoverip/acdc/wiki/receipt

    https://github.com/trustoverip/acdc/wiki/receipt-log

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/challenge/bob.json

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/challenge/keri/cf/demo-witness-oobis.json

    https://github.com/trustoverip/acdc/wiki/redundant-credential

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/challenge/keri/cf/main/wan.json

    https://github.com/trustoverip/acdc/wiki/registrar

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/challenge/keri/cf/main/wes.json

    https://github.com/trustoverip/acdc/wiki/registry

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/challenge/keri/cf/main/wil.json

    https://github.com/trustoverip/acdc/wiki/replay-attack

    https://github.com/trustoverip/acdc/wiki/repo

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/delegate-1.json

    https://github.com/trustoverip/acdc/wiki/reserve-rotation

    https://essif-lab.github.io/framework/docs/terminology-design/overview/design-principles

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/delegate-2.json

    https://www.gleif.org/en/about/management

    https://github.com/trustoverip/acdc/wiki/revocation-event

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/delegatee.json

    https://github.com/trustoverip/acdc/wiki/ricardian-contract

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/delegator-1.json

    https://github.com/trustoverip/acdc/wiki/root-of-trust

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/delegator-2.json

    https://github.com/trustoverip/acdc/wiki/rot

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/delegator.json

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/multisig-delegate.json

    https://github.com/trustoverip/acdc/wiki/rotation

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/multisig-delegator.json

    https://github.com/trustoverip/acdc/wiki/rotation-authority

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/delegate/rotate-sample.json

    https://github.com/trustoverip/acdc/wiki/rotation-event

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/__init__.py

    https://github.com/trustoverip/acdc/wiki/RUN

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/mtest-sample.json

    https://github.com/trustoverip/acdc/wiki/run-off-the-crud

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/mtest/keri/cf/demo-witness-oobis.json

    https://github.com/trustoverip/acdc/wiki/SAD

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/mtest/keri/cf/main/wan.json

    https://github.com/trustoverip/acdc/wiki/SAID

    https://essif-lab.github.io/framework/docs/terminology-design/overview/purpose

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/mtest/keri/cf/main/wes.json

    https://github.com/trustoverip/acdc/wiki/sally

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/mtest/keri/cf/main/wil.json

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-10-28_Qualified-vLEI-Issuer-vLEI-Identifer-Credential-GF-Prep-1.0-Publication_v0.9_work

    https://github.com/trustoverip/acdc/wiki/salt

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/multisig-1-sample.json

    https://github.com/trustoverip/acdc/wiki/salter

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/multisig-2-sample.json

    https://github.com/trustoverip/acdc/wiki/SATP

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/multisig-3-sample.json

    https://github.com/trustoverip/acdc/wiki/schema-namespace-registry

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/multisig-delegate-sample.json

    https://github.com/trustoverip/acdc/wiki/schema-registry

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/multisig/multisig-sample.json

    https://github.com/trustoverip/acdc/wiki/SCID

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/oobi/keri/cf/test.json

    https://github.com/trustoverip/acdc/wiki/seal

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/oobi/non-transferable-sample.json

    https://www.gleif.org/en/about/governance

    https://github.com/trustoverip/acdc/wiki/secondary-root-of-trust

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/watcher/__init__.py

    https://github.com/trustoverip/acdc/wiki/secure-asset-transfer-protocol

    https://essif-lab.github.io/framework/docs/terminology-design/terms/@

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/commands/watcher/watcher-sample.json

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/ctrl-sample.json

    https://github.com/trustoverip/acdc/wiki/secure-attribution

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/estonly-sample.json

    https://github.com/trustoverip/acdc/wiki/secure-private-authentic-confidentiality

    https://github.com/trustoverip/acdc/wiki/seed

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/non-transferable-sample.json

    https://github.com/trustoverip/acdc/wiki/selective-disclosure

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/rotate-sample.json

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/test_kli_commands.py

    https://github.com/trustoverip/acdc/wiki/self-addressing-data

    https://github.com/trustoverip/acdc/wiki/self-addressing-identifier

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/transferable-sample.json

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/wan-witness-sample.json

    https://github.com/trustoverip/acdc/wiki/self-certifying-identifier

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/wes-witness-sample.json

    https://github.com/trustoverip/acdc/wiki/self-framing

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/wil-witness-sample.json

    https://github.com/trustoverip/acdc/wiki/self-sovereign-identity

    https://github.com/trustoverip/acdc/wiki/self-sovereignty

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/cli/witness-sample.json

    https://github.com/trustoverip/acdc/wiki/server-sent-event

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/schema.json

    https://github.com/trustoverip/acdc/wiki/service-endpoint

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_agenting.py

    https://essif-lab.github.io/framework/docs/terminology-design/terms/author

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_apping.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_configing.py

    https://github.com/trustoverip/acdc/wiki/siger

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_connecting.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_credentials.py

    https://github.com/trustoverip/acdc/wiki/signed-digest

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_delegating.py

    https://github.com/trustoverip/acdc/wiki/signer

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_directing.py

    https://github.com/trustoverip/acdc/wiki/signify

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_forwarding.py

    https://github.com/trustoverip/acdc/wiki/signify-keria-request-authentication-protocol

    https://www.gleif.org/en/about/governance/financial-stability-board-fsb

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_grouping.py

    https://github.com/trustoverip/acdc/wiki/signing-authority

    https://github.com/trustoverip/acdc/wiki/signing-threshold

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_habbing.py

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-11-01_GLEIF-Identifier-GF-Prep-1.0-Publication_v0.6_work

    https://essif-lab.github.io/framework/docs/terminology-design/terms/common-understanding

    https://github.com/trustoverip/acdc/wiki/simple-keri-for-web-auth

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_httping.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_indirecting.py

    https://github.com/trustoverip/acdc/wiki/single-signature-identifier

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_keeping.py

    https://github.com/trustoverip/acdc/wiki/SKRAP

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_kiwiing.py

    https://github.com/trustoverip/acdc/wiki/SKWA

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_multisig.py

    https://github.com/trustoverip/acdc/wiki/sniffer

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_notifying.py

    https://github.com/trustoverip/acdc/wiki/solicited-issuance

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_oobiing.py

    https://github.com/trustoverip/acdc/wiki/source-of-truth

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_signaling.py

    https://github.com/trustoverip/acdc/wiki/SPAC

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_signing.py

    https://github.com/trustoverip/acdc/wiki/spanning-layer

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_specing.py

    https://github.com/trustoverip/acdc/wiki/SSI

    https://essif-lab.github.io/framework/docs/terminology-design/terms/domain-expert

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_storing.py

    https://github.com/trustoverip/acdc/wiki/ssi-system

    https://github.com/WebOfTrust/keripy/blob/main/tests/app/test_watching.py

    https://github.com/trustoverip/acdc/wiki/strip-parameter

    https://github.com/WebOfTrust/keripy/blob/main/tests/comply/__init__.py

    https://github.com/trustoverip/acdc/wiki/sub-shell

    https://github.com/WebOfTrust/keripy/blob/main/tests/comply/test_direct_mode.py

    https://github.com/trustoverip/acdc/wiki/TCP

    https://github.com/trustoverip/acdc/wiki/tcp-endpoint

    https://github.com/WebOfTrust/keripy/blob/main/tests/conftest.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/__init__.py

    https://github.com/trustoverip/acdc/wiki/TEL

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_bare.py

    https://github.com/trustoverip/acdc/wiki/text-binary-concatenation-composability

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_coring.py

    https://github.com/trustoverip/acdc/wiki/threshold-of-accountable-duplicity

    https://github.com/trustoverip/acdc/wiki/threshold-signature-scheme

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_crypto.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_delegating.py

    https://github.com/trustoverip/acdc/wiki/TOAD

    https://github.com/trustoverip/acdc/wiki/top-level-section

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_escrow.py

    https://essif-lab.github.io/framework/docs/terminology-design/terms/linguistic-unity

    https://github.com/trustoverip/acdc/wiki/trans-contextual-value

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_eventing.py

    https://github.com/trustoverip/acdc/wiki/transaction-event-log

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_kevery.py

    https://github.com/trustoverip/acdc/wiki/transfer-off-ledger

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_keystate.py

    https://github.com/trustoverip/acdc/wiki/transferable

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_parsing.py

    https://github.com/trustoverip/acdc/wiki/transferable-identifier

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_parsing_pathed.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_partial_rotation.py

    https://github.com/trustoverip/acdc/wiki/transmission-control-protocol

    https://github.com/trustoverip/acdc/wiki/trust-domain

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_replay.py

    https://github.com/trustoverip/acdc/wiki/UI

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_reply.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_scheming.py

    https://github.com/trustoverip/acdc/wiki/uniform-resource-locator

    https://github.com/trustoverip/acdc/wiki/unsolicited-issuance

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_weighted_threshold.py

    https://essif-lab.github.io/framework/docs/terminology-design/terms/patterns/pattern-terminology

    https://github.com/WebOfTrust/keripy/blob/main/tests/core/test_witness.py

    https://github.com/trustoverip/acdc/wiki/URL

    https://github.com/trustoverip/acdc/wiki/user-interface

    https://github.com/WebOfTrust/keripy/blob/main/tests/db/__init__.py

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-11-22_Legal-Entity-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work

    https://github.com/WebOfTrust/keripy/blob/main/tests/db/test_basing.py

    https://github.com/trustoverip/acdc/wiki/validate

    https://github.com/WebOfTrust/keripy/blob/main/tests/db/test_dbing.py

    https://github.com/trustoverip/acdc/wiki/validator

    https://github.com/WebOfTrust/keripy/blob/main/tests/db/test_escrowing.py

    https://github.com/trustoverip/acdc/wiki/VC

    https://github.com/WebOfTrust/keripy/blob/main/tests/db/test_koming.py

    https://github.com/trustoverip/acdc/wiki/VC-TEL

    https://github.com/WebOfTrust/keripy/blob/main/tests/db/test_subing.py

    https://github.com/trustoverip/acdc/wiki/VDS

    https://github.com/WebOfTrust/keripy/blob/main/tests/demo/__init__.py

    https://github.com/trustoverip/acdc/wiki/veracity

    https://github.com/WebOfTrust/keripy/blob/main/tests/demo/test_demo.py

    https://github.com/trustoverip/acdc/wiki/verfer

    https://github.com/WebOfTrust/keripy/blob/main/tests/end/__init__.py

    https://github.com/trustoverip/acdc/wiki/verifiable

    https://github.com/WebOfTrust/keripy/blob/main/tests/end/test_ending.py

    https://github.com/trustoverip/acdc/wiki/verifiable-credential

    https://github.com/WebOfTrust/keripy/blob/main/tests/help/__init__.py

    https://github.com/trustoverip/acdc/wiki/verifiable-data-structure

    https://github.com/WebOfTrust/keripy/blob/main/tests/help/test_helping.py

    https://essif-lab.github.io/framework/docs/terms/action

    https://github.com/trustoverip/acdc/wiki/verifiable-legal-entity-identifier

    https://github.com/trustoverip/acdc/wiki/verified-integrity

    https://github.com/WebOfTrust/keripy/blob/main/tests/help/test_ogling.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/peer/__init__.py

    https://github.com/trustoverip/acdc/wiki/verifier

    https://github.com/trustoverip/acdc/wiki/verify

    https://github.com/WebOfTrust/keripy/blob/main/tests/peer/test_exchanging.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/vc/__init__.py

    https://github.com/trustoverip/acdc/wiki/verify-signature

    https://github.com/WebOfTrust/keripy/blob/main/tests/vc/test_protocoling.py

    https://github.com/trustoverip/acdc/wiki/version

    https://github.com/WebOfTrust/keripy/blob/main/tests/vc/test_proving.py

    https://github.com/trustoverip/acdc/wiki/version-code

    https://github.com/trustoverip/acdc/wiki/version-string

    https://github.com/WebOfTrust/keripy/blob/main/tests/vc/test_walleting.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/vdr/__init__.py

    https://github.com/trustoverip/acdc/wiki/virtual-credential-transaction-event-log

    https://github.com/trustoverip/acdc/wiki/vLEI

    https://github.com/WebOfTrust/keripy/blob/main/tests/vdr/test_eventing.py

    https://github.com/WebOfTrust/keripy/blob/main/tests/vdr/test_issuing.py

    https://github.com/trustoverip/acdc/wiki/vlei-credential

    https://essif-lab.github.io/framework/docs/terms/actor

    https://github.com/WebOfTrust/keripy/blob/main/tests/vdr/test_txn_state.py

    https://github.com/trustoverip/acdc/wiki/vlei-ecosystem-governance-framework

    https://www.gleif.org/en/about/governance/regulatory-oversight-committee-roc

    https://github.com/WebOfTrust/keripy/blob/main/tests/vdr/test_verifying.py

    https://github.com/trustoverip/acdc/wiki/vlei-role-credential

    https://github.com/WebOfTrust/keripy/blob/main/tests/vdr/test_viring.py

    https://github.com/trustoverip/acdc/wiki/wallet

    https://github.com/trustoverip/acdc/wiki/watcher

    https://github.com/trustoverip/acdc/wiki/web-of-trust

    https://github.com/trustoverip/acdc/wiki/well-known%C2%A0witnesses

    https://github.com/trustoverip/acdc/wiki/witness

    https://github.com/trustoverip/acdc/wiki/XBRL

    https://github.com/trustoverip/acdc/wiki/zero-trust

    https://essif-lab.github.io/framework/docs/terms/advertisement

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-11-23_Legal-Entity-Engagement-Context-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work

    https://www.gleif.org/en/about/governance/mou-between-gleif-and-roc

    https://essif-lab.github.io/framework/docs/terms/agent

    https://essif-lab.github.io/framework/docs/terms/assertion

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-11-23_Legal-Entity-Official-Organizational-Role-vLEI-Credential-GF-Prep-1.0-Publication_v0.12_work

    https://essif-lab.github.io/framework/docs/terms/assessment-framework

    https://essif-lab.github.io/framework/docs/terms/attribute

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-11-30_Legal-Entity-QVI-AUTH-vLEI-Credential-GF-Prep-1.0-Publication_v0.6_work

    https://essif-lab.github.io/framework/docs/terms/authority

    https://www.gleif.org/en/about/governance/board-of-directors

    https://essif-lab.github.io/framework/docs/terms/capability

    https://www.gleif.org/en/about/governance/roc-observers

    https://essif-lab.github.io/framework/docs/terms/capability-of-an-actor

    https://essif-lab.github.io/framework/docs/terms/colleague

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-12-06_appendix-1-non-disclosure-agreement_v1.0_final

    https://essif-lab.github.io/framework/docs/terms/commitment-decision

    https://essif-lab.github.io/framework/docs/terms/communication-channel

    https://www.gleif.org/en/about/governance/board-committees

    https://essif-lab.github.io/framework/docs/terms/communication-session

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-12-06_appendix-2-vlei-issuer-qualification-program-manual_v1.0_final

    https://essif-lab.github.io/framework/docs/terms/community

    https://essif-lab.github.io/framework/docs/terms/compliance

    https://essif-lab.github.io/framework/docs/terms/compliance-level

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-12-06_appendix-3-vlei-issuer-qualification-program-checklist_v1.0_final

    https://essif-lab.github.io/framework/docs/terms/compliance-management

    https://www.gleif.org/en/about/governance/board-minutes

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-12-06_appendix-4-vlei-issuer-contact-details_v1.0_final

    https://essif-lab.github.io/framework/docs/terms/compliance-objective

    https://essif-lab.github.io/framework/docs/terms/concept

    https://essif-lab.github.io/framework/docs/terms/concept-file

    https://essif-lab.github.io/framework/docs/terms/control

    https://www.gleif.org/en/about/governance/statutes

    https://essif-lab.github.io/framework/docs/terms/control-level

    https://www.gleif.org/en/about/governance/by-laws

    https://essif-lab.github.io/framework/docs/terms/control-objective

    https://www.gleif.org/en/about/governance/policies

    https://essif-lab.github.io/framework/docs/terms/control-process

    https://essif-lab.github.io/framework/docs/terms/controller

    https://weboftrust.github.io/WOT-terms/docs/GLEIF/2022-12-16_Legal-Entity-QVI-AUTH-vLEI-Credential-Governance-Framework_v1.0_final

    https://essif-lab.github.io/framework/docs/terms/controllership

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/change-source-filename-if-unusable

    https://essif-lab.github.io/framework/docs/terms/corpus

    https://www.gleif.org/en/about/governance/annual-report

    https://essif-lab.github.io/framework/docs/terms/credential

    https://essif-lab.github.io/framework/docs/terms/credential-catalogue

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/Chatbots

    https://essif-lab.github.io/framework/docs/terms/credential-type

    https://essif-lab.github.io/framework/docs/terms/data

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/check-and-accept-PR-production-Edusite-locally

    https://www.gleif.org/en/about/governance/call-for-applications-for-the-board-of-directors

    https://essif-lab.github.io/framework/docs/terms/decision

    https://essif-lab.github.io/framework/docs/terms/definition

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/Create-search-index

    https://essif-lab.github.io/framework/docs/terms/delegate

    https://essif-lab.github.io/framework/docs/terms/dependent

    https://essif-lab.github.io/framework/docs/terms/dictionary

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/create-terms-link-table

    https://www.gleif.org/en/about/history

    https://essif-lab.github.io/framework/docs/terms/dictionary-file

    https://www.gleif.org/en/about-lei

    https://essif-lab.github.io/framework/docs/terms/documentation-interop

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/Docusaurus-process

    https://www.gleif.org/en/about-lei/introducing-the-legal-entity-identifier-lei

    https://essif-lab.github.io/framework/docs/terms/ecosystem

    https://essif-lab.github.io/framework/docs/terms/employee

    https://www.gleif.org/en/about-lei/gleif-management-of-the-global-lei-system

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/embed-github-hosted-image-in-github-wiki-page

    https://essif-lab.github.io/framework/docs/terms/employer

    https://essif-lab.github.io/framework/docs/terms/employment-contract

    https://www.gleif.org/en/about-lei/gleif-management-of-the-global-lei-system/global-lei-system-a-network-of-federated-services

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/fill-out-terms-toip-wiki

    https://essif-lab.github.io/framework/docs/terms/entity

    https://essif-lab.github.io/framework/docs/terms/eSSIFLab-scope

    https://www.gleif.org/en/about-lei/get-an-lei-find-lei-issuing-organizations

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/fuzzy-count-terms

    https://essif-lab.github.io/framework/docs/terms/expectation

    https://www.gleif.org/en/about-lei/get-an-lei-find-lei-issuing-organizations/registration-agents

    https://essif-lab.github.io/framework/docs/terms/framework

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/intro

    https://essif-lab.github.io/framework/docs/terms/glossary

    https://www.gleif.org/en/about-lei/the-lifecycle-of-a-lei-issuer

    https://essif-lab.github.io/framework/docs/terms/glossary-file

    https://www.gleif.org/en/about-lei/the-lifecycle-of-a-lei-issuer/gleif-accreditation-of-lei-issuers

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/load-toip-glossary-in-weboftrust-github-page

    https://essif-lab.github.io/framework/docs/terms/governance

    https://www.gleif.org/en/about-lei/the-lifecycle-of-a-lei-issuer/gleif-accreditation-of-lei-issuers/accreditation-process

    https://essif-lab.github.io/framework/docs/terms/governor

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/markdown-from-ToIP-wiki

    https://essif-lab.github.io/framework/docs/terms/guardian

    https://www.gleif.org/en/about-lei/the-lifecycle-of-a-lei-issuer/gleif-accreditation-of-lei-issuers/current-candidates

    https://essif-lab.github.io/framework/docs/terms/guardianship-arrangement

    https://www.gleif.org/en/about-lei/the-lifecycle-of-a-lei-issuer/gleif-accreditation-of-lei-issuers/questions-and-answers

    https://essif-lab.github.io/framework/docs/terms/guardianship-type

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/pull-changes-from-toip-to-terms

    https://essif-lab.github.io/framework/docs/terms/holder

    https://www.gleif.org/en/about-lei/the-lifecycle-of-a-lei-issuer/gleif-accreditation-of-lei-issuers/accreditation-resources

    https://essif-lab.github.io/framework/docs/terms/holder-policy

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/pull-in-markdown-documents

    https://www.gleif.org/en/about-lei/the-lifecycle-of-a-lei-issuer/gleif-accreditation-of-lei-issuers/required-documents

    https://essif-lab.github.io/framework/docs/terms/human-being

    https://essif-lab.github.io/framework/docs/terms/identifier

    https://www.gleif.org/en/about-lei/the-lifecycle-of-a-lei-issuer/lei-issuer-offboarding-process

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/sync-agenda-to-production-via-local

    https://essif-lab.github.io/framework/docs/terms/identify

    https://www.gleif.org/en/about-lei/iso-17442-the-lei-code-structure

    https://essif-lab.github.io/framework/docs/terms/identity

    https://weboftrust.github.io/WOT-terms/docs/How%20we%20did/why-terms-wot-manage-structure

    https://essif-lab.github.io/framework/docs/terms/information-process

    https://www.gleif.org/en/about-lei/iso-17442-the-lei-code-structure/the-lei-in-digital-certificates

    https://essif-lab.github.io/framework/docs/terms/issuer

    https://essif-lab.github.io/framework/docs/terms/issuer-policy

    https://weboftrust.github.io/WOT-terms/docs/intro

    https://essif-lab.github.io/framework/docs/terms/jurisdiction

    https://essif-lab.github.io/framework/docs/terms/knowledge

    https://www.gleif.org/en/about-lei/lei-namespace

    https://essif-lab.github.io/framework/docs/terms/legal-entity

    https://www.gleif.org/en/about-lei/common-data-file-format

    https://essif-lab.github.io/framework/docs/terms/legal-jurisdiction

    https://essif-lab.github.io/framework/docs/terms/legal-system

    https://www.gleif.org/en/about-lei/common-data-file-format/current-versions

    https://essif-lab.github.io/framework/docs/terms/management

    https://www.gleif.org/en/about-lei/common-data-file-format/current-versions/level-1-data-lei-cdf-3-1-format

    https://essif-lab.github.io/framework/docs/terms/mandate

    https://essif-lab.github.io/framework/docs/terms/mental-model

    https://www.gleif.org/en/about-lei/common-data-file-format/current-versions/level-2-data-relationship-record-rr-cdf-2-1-format

    https://essif-lab.github.io/framework/docs/terms/mission

    https://essif-lab.github.io/framework/docs/terms/normative-framework

    https://www.gleif.org/en/about-lei/common-data-file-format/current-versions/level-2-data-reporting-exceptions-2-1-format

    https://essif-lab.github.io/framework/docs/terms/objective

    https://essif-lab.github.io/framework/docs/terms/obligation

    https://essif-lab.github.io/framework/docs/terms/onboarding

    https://essif-lab.github.io/framework/docs/terms/organization

    https://www.gleif.org/en/about-lei/common-data-file-format/current-versions/supporting-documents

    https://essif-lab.github.io/framework/docs/terms/outsourcing

    https://www.gleif.org/en/about-lei/common-data-file-format/previous-versions

    https://essif-lab.github.io/framework/docs/terms/owned

    https://essif-lab.github.io/framework/docs/terms/owner

    https://www.gleif.org/en/about-lei/code-lists

    https://essif-lab.github.io/framework/docs/terms/ownership

    https://www.gleif.org/en/about-lei/code-lists/gleif-registration-authorities-list

    https://essif-lab.github.io/framework/docs/terms/partial-identity

    https://essif-lab.github.io/framework/docs/terms/participant

    https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list

    https://essif-lab.github.io/framework/docs/terms/party

    https://essif-lab.github.io/framework/docs/terms/pattern

    https://weboftrust.github.io/WOT-terms/docs/Overview/

    https://essif-lab.github.io/framework/docs/terms/pattern-decentralized-grc

    https://essif-lab.github.io/framework/docs/terms/pattern-decentralized-risk-management

    https://www.gleif.org/en/about-lei/code-lists/iso-5009-official-organizational-roles-code-list

    https://essif-lab.github.io/framework/docs/terms/pattern-decision-making

    https://www.gleif.org/en/about-lei/code-lists/gleif-accepted-legal-jurisdictions-code-list

    https://essif-lab.github.io/framework/docs/terms/pattern-duties-and-rights

    https://essif-lab.github.io/framework/docs/terms/pattern-file

    https://www.gleif.org/en/about-lei/semantic-representation-of-the-lei

    https://essif-lab.github.io/framework/docs/terms/pattern-governance-and-management

    https://www.gleif.org/en/about-lei/semantic-representation-of-the-lei/lei-model-in-xbrl-extensible-business-reporting-language

    https://essif-lab.github.io/framework/docs/terms/pattern-guardianship

    https://weboftrust.github.io/WOT-terms/docs/Overview/Indexed%20in%20KERISSE

    https://essif-lab.github.io/framework/docs/terms/pattern-identification

    https://www.gleif.org/en/about-lei/semantic-representation-of-the-lei/lei-model-in-rdf-resource-description-framework

    https://essif-lab.github.io/framework/docs/terms/pattern-identifier

    https://www.gleif.org/en/about-lei/questions-and-answers

    https://essif-lab.github.io/framework/docs/terms/pattern-identity

    https://essif-lab.github.io/framework/docs/terms/pattern-jurisdiction

    https://www.gleif.org/en/vlei

    https://essif-lab.github.io/framework/docs/terms/pattern-mandates-delegation-hiring

    https://www.gleif.org/en/vlei/introducing-the-verifiable-lei-vlei

    https://essif-lab.github.io/framework/docs/terms/pattern-mental-model

    https://essif-lab.github.io/framework/docs/terms/pattern-party-actor-action

    https://www.gleif.org/en/vlei/introducing-the-verifiable-lei-vlei/gleif-ebook-the-vlei-introducing-digital-i-d-for-legal-entities-everywhere

    https://essif-lab.github.io/framework/docs/terms/pattern-party-representation

    https://www.gleif.org/en/vlei/introducing-the-vlei-ecosystem-governance-framework

    https://essif-lab.github.io/framework/docs/terms/pattern-semantics

    https://essif-lab.github.io/framework/docs/terms/pattern-terminology

    https://www.gleif.org/en/vlei/get-a-vlei-list-of-qualified-vlei-issuing-organizations

    https://essif-lab.github.io/framework/docs/terms/pattern-trust

    https://www.gleif.org/en/vlei/the-lifecycle-of-a-vlei-issuer

    https://essif-lab.github.io/framework/docs/terms/pattern-world-model

    https://essif-lab.github.io/framework/docs/terms/peer-actor

    https://www.gleif.org/en/vlei/the-lifecycle-of-a-vlei-issuer/gleif-qualification-of-vlei-issuers

    https://essif-lab.github.io/framework/docs/terms/peer-agent

    https://www.gleif.org/en/vlei/the-lifecycle-of-a-vlei-issuer/gleif-qualification-of-vlei-issuers/qualification-process

    https://essif-lab.github.io/framework/docs/terms/peer-party

    https://essif-lab.github.io/framework/docs/terms/policy

    https://www.gleif.org/en/vlei/the-lifecycle-of-a-vlei-issuer/gleif-qualification-of-vlei-issuers/required-documents

    https://essif-lab.github.io/framework/docs/terms/presentation

    https://essif-lab.github.io/framework/docs/terms/presentation-request

    https://essif-lab.github.io/framework/docs/terms/principal

    https://essif-lab.github.io/framework/docs/terms/qualified-data

    https://essif-lab.github.io/framework/docs/terms/revocation-component

    https://www.gleif.org/en/lei-solutions

    https://essif-lab.github.io/framework/docs/terms/revocation-policy

    https://weboftrust.github.io/WOT-terms/docs/Overview/overview-and-context

    https://essif-lab.github.io/framework/docs/terms/revoke

    https://www.gleif.org/en/lei-solutions/better-knowledge-better-business

    https://essif-lab.github.io/framework/docs/terms/risk

    https://weboftrust.github.io/WOT-terms/docs/Resources/intro

    https://essif-lab.github.io/framework/docs/terms/risk-level

    https://www.gleif.org/en/lei-solutions/validation-agents

    https://weboftrust.github.io/WOT-terms/docs/Resources/Keri.one%20resources

    https://essif-lab.github.io/framework/docs/terms/risk-management

    https://essif-lab.github.io/framework/docs/terms/risk-objective

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-cesr-proof

    https://essif-lab.github.io/framework/docs/terms/risk-owner

    https://essif-lab.github.io/framework/docs/terms/role

    https://www.gleif.org/en/lei-solutions/validation-agents/gleif-ebook-introducing-the-lei-validation-agent

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-did-keri

    https://essif-lab.github.io/framework/docs/terms/role-name

    https://www.gleif.org/en/lei-solutions/validation-agents/gleif-ebook-a-closer-look-at-the-validation-agent-trial-process

    https://essif-lab.github.io/framework/docs/terms/scope

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-pfeairheller-ptel

    https://essif-lab.github.io/framework/docs/terms/scope-file

    https://www.gleif.org/en/lei-solutions/the-lei-the-key-to-unlocking-financial-inclusion-in-developing-economies

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-ssmith-acdc

    https://essif-lab.github.io/framework/docs/terms/scope-of-control

    https://www.gleif.org/en/lei-solutions/mckinsey-company-and-gleif-leis-and-client-lifecycle-management-in-banking-a-u-s-4-billion-beginning

    https://essif-lab.github.io/framework/docs/terms/scoped-term

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-ssmith-cesr

    https://essif-lab.github.io/framework/docs/terms/self-sovereign-identity

    https://www.gleif.org/en/lei-solutions/mckinsey-company-and-gleif-leis-and-client-lifecycle-management-in-banking-a-u-s-4-billion-beginning/gleif-infographic-leis-transforming-banks-client-lifecycle-management

    https://essif-lab.github.io/framework/docs/terms/self-sovereignty

    https://www.gleif.org/en/lei-solutions/mckinsey-company-and-gleif-creating-business-value-with-the-lei

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-ssmith-ipex

    https://essif-lab.github.io/framework/docs/terms/semantics

    https://essif-lab.github.io/framework/docs/terms/ssi

    https://www.gleif.org/en/lei-solutions/mckinsey-company-and-gleif-creating-business-value-with-the-lei/lei-in-capital-markets

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-ssmith-keri

    https://essif-lab.github.io/framework/docs/terms/ssi-agent

    https://essif-lab.github.io/framework/docs/terms/ssi-assurance-community

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-ssmith-oobi

    https://essif-lab.github.io/framework/docs/terms/ssi-infrastructure

    https://essif-lab.github.io/framework/docs/terms/subject

    https://www.gleif.org/en/lei-solutions/mckinsey-company-and-gleif-creating-business-value-with-the-lei/lei-in-trade-finance

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/draft-ssmith-said

    https://essif-lab.github.io/framework/docs/terms/tag

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/IdentifierTheory-ssmith-uidt

    https://essif-lab.github.io/framework/docs/terms/term

    https://essif-lab.github.io/framework/docs/terms/term-file

    https://weboftrust.github.io/WOT-terms/docs/Resources/mdfiles/kli-demo-2022

    https://essif-lab.github.io/framework/docs/terms/terminology

    https://www.gleif.org/en/lei-solutions/mckinsey-company-and-gleif-creating-business-value-with-the-lei/lei-in-commercial-credit

    https://essif-lab.github.io/framework/docs/terms/terminology-process

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ACDC

    https://www.gleif.org/en/lei-solutions/lei-in-kyc-a-new-future-for-legal-entity-identification

    https://essif-lab.github.io/framework/docs/terms/terms-community

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ADC

    https://essif-lab.github.io/framework/docs/terms/transaction

    https://essif-lab.github.io/framework/docs/terms/transaction-agreement

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/agency

    https://essif-lab.github.io/framework/docs/terms/transaction-form

    https://essif-lab.github.io/framework/docs/terms/transaction-id

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/agent

    https://www.gleif.org/en/lei-solutions/lei-in-kyc-a-new-future-for-legal-entity-identification/gleif-research-the-pitfalls-of-onboarding

    https://essif-lab.github.io/framework/docs/terms/transaction-proposal

    https://www.gleif.org/en/lei-solutions/gleifs-digital-strategy-for-the-lei

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/AID

    https://essif-lab.github.io/framework/docs/terms/transaction-request

    https://essif-lab.github.io/framework/docs/terms/trust

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ambient-verifiability

    https://essif-lab.github.io/framework/docs/terms/trust-level

    https://essif-lab.github.io/framework/docs/terms/validate

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/AN

    https://www.gleif.org/en/lei-solutions/gleifs-digital-strategy-for-the-lei/gleif-idc-research-creating-agile-resilient-global-trade-with-the-lei-and-vlei

    https://essif-lab.github.io/framework/docs/terms/validator

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/APC

    https://essif-lab.github.io/framework/docs/terms/validator-policy

    https://www.gleif.org/en/lei-solutions/regulatory-use-of-the-lei

    https://essif-lab.github.io/framework/docs/terms/verifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/API

    https://essif-lab.github.io/framework/docs/terms/verifier-policy

    https://www.gleif.org/en/lei-solutions/regulatory-use-of-the-lei/gleif-and-data-foundation-comprehensive-entity-id-for-u-s-federal-government

    https://essif-lab.github.io/framework/docs/terms/verify

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/append-only-event-logs

    https://www.gleif.org/en/lei-data

    https://essif-lab.github.io/framework/docs/terms/vocabulary

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/application-programming-interface

    https://essif-lab.github.io/framework/docs/terms/wallet

    https://www.gleif.org/en/lei-data/access-and-use-lei-data

    https://essif-lab.github.io/framework/docs/terms/wallet-policy

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authentic-chained-data-container

    https://essif-lab.github.io/framework/docs/tev1/conceptID

    https://www.gleif.org/en/lei-data/access-and-use-lei-data/level-1-data-who-is-who

    https://essif-lab.github.io/framework/docs/tev1/dictionaryID

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authentic-data-container

    https://essif-lab.github.io/framework/docs/tev1/glossaryID

    https://www.gleif.org/en/lei-data/access-and-use-lei-data/level-1-data-who-is-who/roc-policy-on-level-1-data

    https://essif-lab.github.io/framework/docs/tev1/patternID

    https://www.gleif.org/en/lei-data/access-and-use-lei-data/level-2-data-who-owns-whom

    https://essif-lab.github.io/framework/docs/tev1/scopeID

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authentic-provenance-chain

    https://essif-lab.github.io/framework/docs/tev1/termID

    https://www.gleif.org/en/lei-data/access-and-use-lei-data/level-2-data-who-owns-whom/roc-policy-on-level-2-data

    https://essif-lab.github.io/framework/docs/tev1/terminology-engine-v1

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authentic-web

    https://essif-lab.github.io/framework/docs/tev1/typeID

    https://essif-lab.github.io/framework/docs/tev2/

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authenticity

    https://essif-lab.github.io/framework/docs/tev2/manuals/author

    https://essif-lab.github.io/framework/docs/tev2/manuals/contributor

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authoritative

    https://www.gleif.org/en/lei-data/global-lei-index

    https://essif-lab.github.io/framework/docs/tev2/manuals/contributors-LaTeX

    https://essif-lab.github.io/framework/docs/tev2/manuals/contributors-repo

    https://www.gleif.org/en/lei-data/global-lei-index/lei-statistics

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authority

    https://essif-lab.github.io/framework/docs/tev2/manuals/contributors-wiki

    https://essif-lab.github.io/framework/docs/tev2/manuals/curator

    https://essif-lab.github.io/framework/docs/tev2/manuals/tev2-installation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authorization

    https://essif-lab.github.io/framework/docs/tev2/miscellaneous/toip-terminology-toolbox

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/authorized-vlei-representative

    https://essif-lab.github.io/framework/docs/tev2/miscellaneous/tool-development

    https://essif-lab.github.io/framework/docs/tev2/notations-and-conventions

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/autonomic-computing-systems

    https://www.gleif.org/en/lei-data/global-lei-index/download-global-lei-system-business-reports

    https://essif-lab.github.io/framework/docs/tev2/overview/tev2-architecture

    https://www.gleif.org/en/lei-data/global-lei-index/global-lei-system-business-reports-archive

    https://essif-lab.github.io/framework/docs/tev2/overview/tev2-common-understanding

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/autonomic-identifier

    https://essif-lab.github.io/framework/docs/tev2/overview/tev2-design-principles

    https://essif-lab.github.io/framework/docs/tev2/overview/tev2-purpose

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/autonomic-identity-system

    https://essif-lab.github.io/framework/docs/tev2/overview/tev2-terminology-curation

    https://www.gleif.org/en/lei-data/lei-search

    https://essif-lab.github.io/framework/docs/tev2/spec-files/ctext

    https://www.gleif.org/en/lei-data/lei-search/about-lei-search

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/autonomic-namespace

    https://essif-lab.github.io/framework/docs/tev2/spec-files/hrd

    https://essif-lab.github.io/framework/docs/tev2/spec-files/hrg

    https://www.gleif.org/en/lei-data/lei-search/about-lei-search/how-to-use-lei-search

    https://essif-lab.github.io/framework/docs/tev2/spec-files/mrd

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/AVR

    https://essif-lab.github.io/framework/docs/tev2/spec-files/mrg

    https://www.gleif.org/en/lei-data/gleif-concatenated-file

    https://essif-lab.github.io/framework/docs/tev2/spec-files/profile-templates

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/backer

    https://www.gleif.org/en/lei-data/gleif-concatenated-file/about-the-concatenated-file

    https://essif-lab.github.io/framework/docs/tev2/spec-files/saf

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/BADA

    https://essif-lab.github.io/framework/docs/tev2/spec-syntax/form-phrase-syntax

    https://essif-lab.github.io/framework/docs/tev2/spec-syntax/hrg-termselcrit

    https://www.gleif.org/en/lei-data/gleif-concatenated-file/download-the-concatenated-file

    https://essif-lab.github.io/framework/docs/tev2/spec-syntax/term-ref-syntax

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/base64

    https://www.gleif.org/en/lei-data/gleif-concatenated-file/lei-issuers-original-sources

    https://essif-lab.github.io/framework/docs/tev2/spec-tools/hrdt

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/best-available-data-acceptance-mechanism

    https://essif-lab.github.io/framework/docs/tev2/spec-tools/hrgt

    https://www.gleif.org/en/lei-data/gleif-concatenated-file/lei-issuers-historical-files

    https://essif-lab.github.io/framework/docs/tev2/spec-tools/hrgt-old

    https://essif-lab.github.io/framework/docs/tev2/spec-tools/ict

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/BFT

    https://www.gleif.org/en/lei-data/gleif-golden-copy

    https://essif-lab.github.io/framework/docs/tev2/spec-tools/mrdt

    https://essif-lab.github.io/framework/docs/tev2/spec-tools/mrgt

    https://www.gleif.org/en/lei-data/gleif-golden-copy/download-the-golden-copy

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/binding

    https://essif-lab.github.io/framework/docs/tev2/spec-tools/terminology-construction

    https://essif-lab.github.io/framework/docs/tev2/spec-tools/trrt

    https://www.gleif.org/en/lei-data/gleif-api

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/blake3

    https://essif-lab.github.io/framework/docs/tev2/terms/@

    https://essif-lab.github.io/framework/docs/tev2/terms/concept

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/blind-oobi

    https://essif-lab.github.io/framework/docs/tev2/terms/corpus

    https://essif-lab.github.io/framework/docs/tev2/terms/curated-text

    https://essif-lab.github.io/framework/docs/tev2/terms/curatedir

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/blinded-revocation-registry

    https://www.gleif.org/en/lei-data/lei-mapping

    https://essif-lab.github.io/framework/docs/tev2/terms/definition

    https://www.gleif.org/en/lei-data/lei-mapping/download-bic-to-lei-relationship-files

    https://essif-lab.github.io/framework/docs/tev2/terms/dictionary

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/branch

    https://essif-lab.github.io/framework/docs/tev2/terms/glossary

    https://www.gleif.org/en/lei-data/lei-mapping/download-isin-to-lei-relationship-files

    https://essif-lab.github.io/framework/docs/tev2/terms/glossarydir

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/byzantine-agreement

    https://essif-lab.github.io/framework/docs/tev2/terms/grouptag

    https://www.gleif.org/en/lei-data/lei-mapping/download-mic-to-lei-relationship-files

    https://essif-lab.github.io/framework/docs/tev2/terms/hrg-entry

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/byzantine-fault-tolerance

    https://www.gleif.org/en/lei-data/lei-mapping/s-p-global-company-id-to-lei-relationship

    https://essif-lab.github.io/framework/docs/tev2/terms/identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/certificate-transparency

    https://essif-lab.github.io/framework/docs/tev2/terms/identify

    https://essif-lab.github.io/framework/docs/tev2/terms/ingestion-profile

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/CESR

    https://essif-lab.github.io/framework/docs/tev2/terms/knowledge-artifact

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cesr-proof-signatures

    https://essif-lab.github.io/framework/docs/tev2/terms/mental-model

    https://essif-lab.github.io/framework/docs/tev2/terms/mrg-entry

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cesride

    https://essif-lab.github.io/framework/docs/tev2/terms/patterns/pattern-terminology

    https://www.gleif.org/en/lei-data/lei-mapping/download-oc-to-lei-relationship-files

    https://essif-lab.github.io/framework/docs/tev2/terms/renderable-ref

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/chain-link-confidentiality

    https://www.gleif.org/en/lei-data/lei-mapping/gleif-certification-process

    https://essif-lab.github.io/framework/docs/tev2/terms/scope

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/chain-of-custody

    https://essif-lab.github.io/framework/docs/tev2/terms/scope-directory

    https://www.gleif.org/en/lei-data/gleif-data-quality-management

    https://essif-lab.github.io/framework/docs/tev2/terms/scoped-term

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/claim

    https://essif-lab.github.io/framework/docs/tev2/terms/scopetag

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/data-quality-checks/details

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/CLC

    https://essif-lab.github.io/framework/docs/tev2/terms/semantics

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/quality-reports/previous-data-quality-reports

    https://essif-lab.github.io/framework/docs/tev2/terms/synonym

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/downloads

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/clone

    https://essif-lab.github.io/framework/docs/tev2/terms/tag

    https://essif-lab.github.io/framework/docs/tev2/terms/term

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cloud-agent

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/about-the-data-quality-reports/download-data-quality-reports

    https://essif-lab.github.io/framework/docs/tev2/terms/term-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/code-table

    https://essif-lab.github.io/framework/docs/tev2/terms/term-ref

    https://essif-lab.github.io/framework/docs/tev2/terms/term-syntax

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/code-table-selector

    https://essif-lab.github.io/framework/docs/tev2/terms/term-type

    https://essif-lab.github.io/framework/docs/tev2/terms/terminology

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cold-start-stream-parsing

    https://essif-lab.github.io/framework/docs/tev2/terms/terminology-under-construction

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/about-the-data-quality-reports/archive

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/collective-signature

    https://essif-lab.github.io/framework/docs/tev2/terms/terms-community

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/about-the-data-quality-reports/download-lei-issuer-data-quality-reports

    https://essif-lab.github.io/framework/docs/tev2/terms/tev2

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/collision

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/about-the-data-quality-reports/lou-data-quality-reports-archive

    https://essif-lab.github.io/framework/docs/tev2/terms/versiontag

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/compact-variant

    https://essif-lab.github.io/framework/docs/tev2/terms/vocabulary

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/about-the-data-quality-reports/questions-and-answers

    https://essif-lab.github.io/framework/docs/tev2/tev2-glossary

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/complementary-integrity-verification

    https://www.gleif.org/en/lei-data/gleif-data-quality-management/about-the-data-quality-reports/supporting-documents

    https://essif-lab.github.io/framework/docs/tev2/tev2-overview

    https://essif-lab.github.io/framework/docs/tev2/tev2-roles

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/composability

    https://essif-lab.github.io/framework/docs/tev2/tev2-spec-files

    https://essif-lab.github.io/framework/docs/tev2/tev2-student-assignment

    https://essif-lab.github.io/framework/docs/tev2/tev2-syntax

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/composable

    https://essif-lab.github.io/framework/docs/tev2/tev2-toolbox

    https://essif-lab.github.io/framework/docs/vision-and-purpose

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/composable-event-streaming-representation

    https://essif-lab.github.io/framework/

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/concatenation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/configuration-files

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/consensus-mechanism

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/content-addressable-hash

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/contextual-linkability

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/contingent-disclosure

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/contractually-protected-disclosure

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/control-authority

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/controller

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/coroutines

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/correlation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/count-code

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/credential

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/CRUD

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/crypto-libraries

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cryptocurrency

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cryptographic-commitment-scheme

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cryptographic-primitive

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cryptographic-strength

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/cryptonym

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/CT

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/custodial-agent

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/custodial-rotation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/DAG

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/DAR

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/data-anchor

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/decentralized-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/decentralized-identity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/decentralized-key-management-infrastructure

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/DEL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/delegated-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/delegation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/derivation-code

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/designated-authorized-representative

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/DHT

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/DID

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/digest

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/digital-signature

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/directed-acyclic-graph

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/disclosee

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/discloser

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/distributed-hash-table

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/DKMI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/domain

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/domain-name

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/DPKI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/dual-text-binary-encoding-format

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/duplicitous-event-log

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/duplicity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/eclipse-attack

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ECR

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/electronic-signature

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/end-verifiable

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/engagement-context-role

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/entity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/entropy

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ephemeral

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/escrow

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/escrow-state

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/establishment-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/extensible-business-reporting-language

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/first-seen

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/frame-code

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/fully-compact

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/fully-expanded

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/GAR

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ghost-credential

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/GLEIF

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/gleif-authorized-representative

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/GLEIS

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/gnu-privacy-guard

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/governance-framework

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/GPG

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/graduated-disclosure

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/graph-fragment

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/group-code

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/group-framing-code

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/habery

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/hierarchical-asynchronous-coroutines-and-input-output

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/hierarchical-composition

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/hio

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/Home

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/I-O

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/IANA

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/identifier-system

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/identity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/inception

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/inception-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/inconsistency

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/indexed-signature

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/input-output

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/inquisitor

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/integrity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/interaction-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/interleaved-serialisation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/internal-inconsistency

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/internet-assigned-numbers-authority

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/interoperability

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/interoperable

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/intro

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ip-address

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/IPEX

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/issuance-and-presentation-exchange-protocol

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/issuance-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/issuance-exchange

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/issuee

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/issuer

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/javascript-object-signing-and-encryption

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/JOSE

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/judge

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/juror

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/jury

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/KA2CE

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/KAACE

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keep

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/KEL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/KERI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keri-agreement-algorithm-for-control-establishment

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keri-command-line-interface

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keri-improvement-doc

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keri-ox

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keri-request-authentication-method

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keridemlia

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keripy

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/KERL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-compromise

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-event-log

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-event-message

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-event-receipt

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-event-receipt-infrastructure

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-event-receipt-log

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-management

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-pair

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-state

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-stretching

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/key-transparency

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/keystore

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/KID

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/kli

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/KRAM

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/lead-bytes

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ledger-backer

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/legal-entity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/legal-entity-engagement-context-role-vlei-credential-governance-framework

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/legal-entity-official-organizational-role-vlei-credential-governance-framework

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/legal-entity-vlei-credential-governance-framework

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/LEI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/levels-of-assurance

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/liveness

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/LoA

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/LoC

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/loci-of-control

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/locked-state

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/management-TEL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/management-transaction-event-log

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/message

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/most-compact

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/multicodec

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/multiplexing

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/multisig

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/naive-conversion

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/namespace

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/nested-cooperative-delegated-identifiers

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/NFT

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/non-establishment-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/non-fungible-token

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/non-normative

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/non-repudiable

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/non-transferable

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/non-transferable-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/normative

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/official-organizational-role

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/one-way-functions

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/OOBI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/OOR

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/opcode

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/out-of-band-introduction

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/owner

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ownership

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/P2P

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/pad

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/parside

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/partial-pre-rotation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/partial-rotation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/passcode

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/payload

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/peer-to-peer

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/persistent-data-structure

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/persistent-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/PGP

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/pii

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/pipelining

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/PKI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/post-pad

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/pre-pad

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/pre-rotation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/prefix

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/presentation-exchange

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/pretty-good-privacy

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/primary-root-of-trust

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/primitive

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/promiscuous-mode

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/proof-of-authority

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/proof-of-authorship

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/protocol

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/provenance

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/pseudo-random-number

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/PTEL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/public-key-infrastructure

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/public-transaction-event-log

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/public-verifiable-credential-registry

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/QAR

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/qualified

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/qualified-vlei-issuer

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/qualified-vlei-issuer-vlei-credential-governance-framework

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/QVI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/qvi-authorized-representative

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/race-condition

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/rainbow-table-attack

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/receipt

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/receipt-log

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/redundant-credential

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/registrar

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/registry

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/replay-attack

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/repo

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/reserve-rotation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/revocation-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ricardian-contract

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/root-of-trust

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/rotation

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/rotation-authority

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/rotation-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/RUN

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/run-off-the-crud

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/SAD

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/SAID

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/sally

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/salt

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/SATP

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/schema-namespace-registry

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/schema-registry

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/SCID

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/seal

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/secondary-root-of-trust

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/secure-asset-transfer-protocol

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/secure-attribution

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/seed

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/self-addressing-data

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/self-addressing-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/self-certifying-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/self-framing

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/self-sovereign-identity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/self-sovereignty

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/server-sent-event

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/service-endpoint

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/signed-digest

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/signify

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/signing-authority

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/signing-threshold

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/simple-keri-for-web-auth

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/single-signature-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/SKWA

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/sniffer

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/solicited-issuance

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/source-of-truth

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/spanning-layer

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/SSI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/ssi-system

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/strip-parameter

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/sub-shell

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/TCP

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/tcp-endpoint

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/TEL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/text-binary-concatenation-composability

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/threshold-signature-scheme

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/top-level-section

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/trans-contextual-value

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/transaction-event-log

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/transfer-off-ledger

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/transferable

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/transferable-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/transmission-control-protocol

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/trust-domain

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/UI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/uniform-resource-locator

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/unsolicited-issuance

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/URL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/user-interface

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/validate

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/validator

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/VC

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/VC-TEL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/VDS

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/veracity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/verifiable

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/verifiable-credential

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/verifiable-data-structure

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/verifiable-legal-entity-identifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/verified-integrity

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/verifier

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/verify

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/verify-signature

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/version

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/version-code

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/version-string

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/virtual-credential-transaction-event-log

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/vLEI

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/vlei-credential

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/vlei-ecosystem-governance-framework

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/vlei-role-credential

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/wallet

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/watcher

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/web-of-trust

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/well-known%C2%A0witnesses

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/witness

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/XBRL

    https://weboftrust.github.io/WOT-terms/docs/Terms/glossary/zero-trust

    https://weboftrust.github.io/WOT-terms/docs/Test/term_test

    https://weboftrust.github.io/WOT-terms/docs/Test/term_test2

    https://weboftrust.github.io/WOT-terms/docs/Test/term_test3

    https://weboftrust.github.io/WOT-terms/docs/Video/lets-keri-on-together

    https://weboftrust.github.io/WOT-terms/docs/Visualisations/Backed-and-Backerless-Issuance-and-Revocation

    https://weboftrust.github.io/WOT-terms/docs/Visualisations/KERI-&-ACDC-Architecture

    - + \ No newline at end of file diff --git a/docs/Overview/index.html b/docs/Overview/index.html index ddde4f2e5b5..d7e07b3df93 100644 --- a/docs/Overview/index.html +++ b/docs/Overview/index.html @@ -7,12 +7,12 @@ - +

    Overview

    KeyTypeToIP_FkeyPhilvid_FkeyTerm text linkPhilvid_start levelCat_PTELCat_IPEXCat_OOBICat_CESRCat_ACDCCat_KERICat_SAIDCat_GLEIFShortened version@dropdownShortened version static copy
    1KACDCACDCtype of data as issuance concretely defined by the authentic-chained-data-container specificationLinkLink3#REF!1
    2KADCADCan authentic data container conveys data that allows the authenticity of its content to be proved.LinkLink3#REF!1
    3SAIDAIDan identifier that is self-certifying and self-sovereign.LinkLink3#REF!11
    4SANANa namespace that is truly self-sovereign.LinkLink3#REF!1
    5KAPCAPCauthentic provenance chain; evidence of data to be verfiably tracked back to its originLinkLink3#REF!
    6KBADABADAbest available data acceptance, mechanism that provides a degree of replay attack protectionLinkLink31#REF!
    7GBFTBFTByzantine Fault TolleranceLinkLink3#REF!
    8KCESRCESRcomposable event streaming representationLinkLink3#REF!1
    9GCTCTcertificate transparency; internet security standard for digital certificatesLinkLink2#REF!
    10GDAGDAGdirected acyclic graph, mathematical construct, no cycles in itLinkLink2#REF!
    11KDELDELduplicitous event logLinkLink3#REF!1
    12GDHTDHTdistributed hash tableLinkLink2#REF!1
    13SDKMIDKMIdecentralized key management infrastructure; ensure no single third-party can compromise the integrity and security of a systemLinkLink2#REF!1
    14SDPKIDPKIdecentralized public key infrastructure; ensure no single third-party can compromise the integrity and security of a systemLinkLink2#REF!
    15GGPGGPGGnu Privacy Guard, a free-software replacement for Symantec's PGP cryptographic software suiteLinkLink2#REF!
    16GI-OI-OInput OutputLinkLink1#REF!
    17GIANAIANAInternet assigned numbers authority; oversees the allocation of IP addresses to internet service providers (ISPs)LinkLink2#REF!
    18KIPEXIPEXissuance and presentation exchange protocol; mechanism for the issuance and presentation of ACDCsLinkLink31#REF!1
    19GJOSEJOSEJavascript object signing and encryption; method to securely transfer claims between partiesLinkLink3#REF!1
    20KKA2CEKA2CEKERI agreement algorithm for control establishmentLinkLink3#REF!1
    21KKAACEKAACEKERI agreement algorithm for control establishmentLinkLink3#REF!1
    22KKELKELKey Event LogLinkLink3#REF!1
    23KKERIKERIKey Event Receipt InfrastructureLinkLink3#REF!1
    24KKERLKERLKey Event Receipt LogLinkLink3#REF!1
    25KKIDKIDKERI improvement docLinkLink3#REF!1
    26GLoALoAany time a judgement is not a binary Yes or No, you have levels of assuranceLinkLink2#REF!
    27GLoCLoCLocus of ControlLinkLink2#REF!
    28GNFTNFTNon-fungible tokenLinkLink1#REF!
    29KOOBIOOBIOut of band introductionLinkLink31#REF!
    30GP2PP2PPeer to peerLinkLink1#REF!
    31GPGPPGPPretty Good PrivacyLinkLink1#REF!
    32GPKIPKIPublic Key InfrastructureLinkLink2#REF!111
    33KPTELPTELis a public transaction event log that can be used to securely track state anchored to a KELLinkLink31#REF!
    34KSADSADSelf-Adressing DataLinkLink3#REF!1
    35KSAIDSAIDSelf-Adressing IdentifierLinkLink3#REF!11
    36GSATPSATPsecure asset transfer protocol; IETF protocol (and working group) in the making (as of mid 2022) for moving assets between blockchainsLinkLink3#REF!
    37SSCIDSCIDSelf-Certifying Identifier, cryptographically binds an identifier to a public and private key pair.LinkLink3#REF!1
    38SSSISSISelf-Sovereign IdentityLinkLink1#REF!111
    39GTCPTCPtransmission control protocol, one of the main protocols of the Internet protocol suite.LinkLink21#REF!11
    40KTELTELprovides a cryptographic proof of registry state by reference to the corresponding controlling KEL.LinkLink31#REF!11
    41GUIUIthe space where interactions between humans and machines occur.LinkLink1111#REF!1111
    42GURLURLuniform resource locator or 'web address', is a reference to a web resource that specifies its location on a computer networkLinkLink1111#REF!1111
    43KVC-TELVC-TELvirtual credential transaction event logLinkLink31#REF!
    44GVCVCvirtual credentialLinkLink1#REF!11
    45GVDSVDSverifiable data structureLinkLink3#REF!
    46Gagencyagencya service that a representative for an identity (agent) offersLinkLink2#REF!111
    47Kambient-verifiabilityambient-verifiabilityVerifiable by anyone, anywhere, at anytime.LinkLink3#REF!
    48Gappend-only-event-logsappend-only-event-logsis a property of computer data storage such that new data can be appended to the storage, but where existing data is immutableLinkLink2#REF!
    49Kauthentic-chained-data-containerauthentic-chained-data-containerdata structure that proves digital data consistency and authenticity in one goLinkLink3#REF!
    50Kauthentic-data-containerauthentic-data-containerdata structure that proves digital data consistency and authenticity in one goLinkLink3#REF!
    51Kauthentic-provenance-chainauthentic-provenance-chainevidence of data to be tracked back to its origin in an verifiable wayLinkLink3#REF!
    52Gauthenticityauthenticitythe quality of having an objectively verifiable originLinkLink2#REF!
    53Gautonomic-computing-systemsautonomic-computing-systemsself-managing computing systems using algorithmic governanceLinkLink2#REF!
    54Sautonomic-identity-systemautonomic-identity-systemidentity systems where you can verify (establishment of) the authenticity all the way back to the root-of-trustLinkLink2#REF!
    55Sautonomic-namespaceautonomic-namespacenamespace that is self-certifying and hence self-administrating, is truly self-sovereignLinkLink2#REF!
    56Kbest-available-data-acceptance-mechanismbest-available-data-acceptance-mechanismBADA, mechanism that provides a degree of replay attack protectionLinkLink3#REF!
    57Sbindingbindingthe association of data or an identifier with another identifier or a subject (a person, organization or machine)LinkLink1#REF!
    58Gbyzantine-agreementbyzantine-agreementis Byzantine fault tolerance of distributed computing system coming to consensus despite arbitrary behavior from a fraction of the networkLinkLink2#REF!
    59Gbyzantine-fault-tolerancebyzantine-fault-toleranceis a condition of a (distributed) computer system, where components may fail and there is imperfect information on whether a component has failedLinkLink2#REF!
    60Gcertificate-transparencycertificate-transparencyinternet security standard and framework for digital certificatesLinkLink2#REF!
    61Kcesr-proof-signaturescesr-proof-signaturesLinkLink3#REF!
    62Gchain-of-custodychain-of-custodylegal chronological documentation or paper trail that records the sequence of custody of materialsLinkLink2#REF!
    63Gclaimclaimassertion of the truth of something, typically one which is disputed or in doubtLinkLink1#REF!#NAME?
    64Kcomposable-event-streaming-representationcomposable-event-streaming-representationLinkLink3#REF!NO INPUT
    65Gconsensus-mechanismconsensus-mechanismLinkLink2#REF!NO INPUT
    66Gcontent-addressable-hashcontent-addressable-hashLinkLink2#REF!NO INPUT
    67Scontrol-authoritycontrol-authorityLinkLink2#REF!NO INPUT
    68Gcontrollercontrollerthe entity that has the ability to make changes to an identity, cryptocurrency or verifiable credential.LinkLink2#REF!
    69Gcorrelationcorrelationan identifier used to indicate that external parties have observed how wallet contents are related.LinkLink1#REF!
    70Gcredentialcredentialevidence of authority, status, rights, entitlement to privileges, or the like.LinkLink1#REF!
    71Gcrypto-librariescrypto-librariesdeal with cryptography algorithms and have API function calls to each of the supported featuresLinkLink1#REF!
    72Gcryptocurrencycryptocurrencya digital asset designed to work as a medium of exchange wherein individual coin ownership records are stored in a digital ledger.LinkLink1#REF!
    73Gcryptographic-commitment-schemecryptographic-commitment-schemeLinkLink2#REF!NO INPUT
    74Gcryptographic-strengthcryptographic-strengthLinkLink1#REF!NO INPUT
    75GcryptonymcryptonymLinkLink2#REF!NO INPUT
    76Sdecentralized-identitydecentralized-identityLinkLink1#REF!NO INPUT
    77Gdecentralized-key-management-infrastructuredecentralized-key-management-infrastructureLinkLink2#REF!NO INPUT
    78Sdelegated-identifierdelegated-identifierLinkLink3#REF!NO INPUT
    79Gdigital-signaturedigital-signaturea mathematical scheme for verifying the authenticity of digital messages or documentsLinkLink1#REF!
    80Gdirected-acyclic-graphdirected-acyclic-graphDAG, a mathematical construct, particularly graph theory, the acyclic property stems from a directed graph with no cyclesLinkLink2#REF!1
    81Gdistributed-hash-tabledistributed-hash-tableLinkLink2#REF!NO INPUT
    82Kdual-text-binary-encoding-formatdual-text-binary-encoding-formatLinkLink3#REF!1NO INPUT
    83Kduplicitous-event-logduplicitous-event-logLinkLink3#REF!1NO INPUT
    84GduplicityduplicityLinkLink3#REF!1NO INPUT
    85Gelectronic-signatureelectronic-signatureLinkLink1#REF!NO INPUT
    86Gend-verifiableend-verifiableLinkLink3#REF!1NO INPUT
    87GentropyentropyLinkLink2#REF!1NO INPUT
    88GephemeralephemeralLinkLink2#REF!1NO INPUT
    89Kfirst-seenfirst-seenLinkLink3#REF!1NO INPUT
    90Ggnu-privacy-guardgnu-privacy-guardGPG is a free-software replacement for Symantec's PGP cryptographic software suiteLinkLink2#REF!
    91KhaberyhaberyLinkLink3#REF!NO INPUT
    92Ghierarchical-asynchronous-coroutines-and-input-outputhierarchical-asynchronous-coroutines-and-input-outputLinkLink3#REF!NO INPUT
    93GidentifieridentifierSomething to uniquely identify (public) identities; pointing to something or someone else.LinkLink1#REF!
    94Gidentityidentitya unique entity. Typically represented by a unique identifier.LinkLink2#REF!
    95Kinception-eventinception-eventthe first event in KERI that establishes an identifier. LinkLink31#REF!1
    96Ginceptioninceptionoperation creating an AID by binding it to the initial set of authoritative keypairs and any other associated information.LinkLink2#REF!
    97Ginconsistencyinconsistencydifferent parts of a reason, idea or opinion do not agree, or it does not agree with something else.LinkLink1#REF!1
    98Kindexed-signatureindexed-signaturean index telling which public key is used when signing anything with a multi-key autonomic identifier.LinkLink3#REF!
    99Ginternal-inconsistencyinternal-inconsistencyA status that exists within an entity where different parts of a reason, idea or opinion disagree.LinkLink2#REF!1
    100Ginternet-assigned-numbers-authorityinternet-assigned-numbers-authorityAlso IANA; the organization that oversees the allocation of IP addresses to internet service providers (ISPs)LinkLink3#REF!
    101Kissuance-and-presentation-exchange-protocolissuance-and-presentation-exchange-protocolprovides a uniform mechanism for the issuance and presentation of ACDCs in a securely attributable mannerLinkLink3#REF!1
    102Gjavascript-object-signing-and-encryptionjavascript-object-signing-and-encryptionJavascript object signing and encryption; method to securely transfer claims between partiesLinkLink1#REF!
    103KjudgejudgeLinkLink3#REF!NO INPUT
    104Kkeri-agreement-algorithm-for-control-establishmentkeri-agreement-algorithm-for-control-establishmentLinkLink3#REF!1NO INPUT
    105Kkeri-command-line-interfacekeri-command-line-interfaceLinkLink3#REF!11NO INPUT
    106Kkeri-improvement-dockeri-improvement-docLinkLink3#REF!1NO INPUT
    107KkeridemliakeridemliaLinkLink3#REF!NO INPUT
    108Gkey-compromisekey-compromiseLinkLink2#REF!1NO INPUT
    109Kkey-event-messagekey-event-messageLinkLink3#REF!1NO INPUT
    110Kkey-event-receipt-infrastructurekey-event-receipt-infrastructureLinkLink3#REF!1NO INPUT
    111Kkey-event-receipt-logkey-event-receipt-logLinkLink3#REF!1NO INPUT
    112Kkey-event-receiptkey-event-receiptLinkLink3#REF!1NO INPUT
    113Gkey-statekey-stateLinkLink2#REF!1NO INPUT
    114Gkey-transparencykey-transparencyLinkLink3#REF!1NO INPUT
    115GkeykeyLinkLink2#REF!1NO INPUT
    116Glevels-of-assurancelevels-of-assuranceLoA, any time a judgement is not a binary Yes or No, you have levels of assuranceLinkLink3#REF!
    117GlivenesslivenessLinkLink3#REF!NO INPUT
    118Gloci-of-controlloci-of-controlLinkLink3#REF!NO INPUT
    119Kmanagement-transaction-event-logmanagement-transaction-event-logLinkLink3#REF!NO INPUT
    120GmessagemessageLinkLink1#REF!NO INPUT
    121GmulticodecmulticodecLinkLink2#REF!NO INPUT
    122GnamespacenamespaceLinkLink11#REF!NO INPUT
    123Knested-cooperative-delegated-identifiersnested-cooperative-delegated-identifiersLinkLink3#REF!NO INPUT
    124Knon-establishment-eventnon-establishment-eventLinkLink3#REF!NO INPUT
    125Gnon-fungible-tokennon-fungible-tokenLinkLink2#REF!NO INPUT
    126Gnon-normativenon-normativethe purpose of non-normative theories is not to give answers, but rather to describe possibilities or predict results of certain actionsLinkLink1#REF!
    127Snon-repudiablenon-repudiablea statement's author cannot successfully dispute its authorship or the validity of an associated contract, signature or commitment.LinkLink2#REF!
    128Gnon-transferablenon-transferableNo capacity to transfer (the control over) a certain digital asset in an unobstructed or loss-less manner. LinkLink1#REF!
    129Gnormativenormativea theory that tells you what you should do - what action you should takeLinkLink1#REF!
    130Gone-way-functionsone-way-functionsa one-way function is a function that is easy to compute on every input, but hard to invert given the image of a random inputLinkLink2#REF!
    131Gpayloadpayloadthe payload of an item in KERI is a specific cryptographic building blockLinkLink1#REF!
    132Gpretty-good-privacypretty-good-privacyLinkLink1#REF!NO INPUT
    133Kprimary-root-of-trustprimary-root-of-trustLinkLink2#REF!NO INPUT
    134GprimitiveprimitiveLinkLink1#REF!NO INPUT
    135Gproof-of-authorityproof-of-authorityproof that somebody or something has certain rights or permissions on data LinkLink2#REF!
    136Kproof-of-authorshipproof-of-authorshipproof that somebody or something has originally created certain contentLinkLink2#REF!
    137Gprovenanceprovenancehistoric documentation of cryptographic verifiable key states , data consistency and cedentialsLinkLink2#REF!
    138Gpublic-key-infrastructurepublic-key-infrastructureset of roles, policies, hardware, software and procedures needed to create, manage, distribute, use, store and revoke digital certificatesLinkLink2#REF!
    139Kpublic-verifiable-credential-registrypublic-verifiable-credential-registrya Verifiable Data Registry that tracks the issuance/revocation state of credentialsLinkLink31#REF!
    140Grace-conditionrace-conditionthe condition where a system's substantive behavior is dependent on the sequence or timing of external uncontrollable eventsLinkLink3#REF!
    141Kreceipt-logreceipt-logordered record of all key event receipts for a given set of witnessesLinkLink3#REF!
    142Greceiptreceiptevent message or reference with one or more witness signaturesLinkLink3#REF!
    143Kregistrarregistraridentifiers that serve as backers for each transaction event log under its provenanceLinkLink3#REF!
    144Groot-of-trustroot-of-trusttrust in end-verifiable digital signatures from asymmetric key cryptography, replaces human basis-of-trustLinkLink2#REF!
    145Krotationrotationthe operation of revoking and replacing the set of authoritative key pairs for an AIDLinkLink2#REF!
    146Ksecondary-root-of-trustsecondary-root-of-trusta root-of-trust that, for its secure attribution, depends on another primary root-of-trustLinkLink3#REF!
    147Ssecure-asset-transfer-protocolsecure-asset-transfer-protocolan IETF protocol for moving assets between blockchainsLinkLink3#REF!
    148Ssecure-attributionsecure-attributionis 'whodunit?!' in cyberspaceLinkLink3#REF!
    149Gseedseeda pseudorandomly generated number, often expressed in representation of a series of wordsLinkLink1#REF!
    150Sself-addressing-dataself-addressing-dataan encryption program that provides cryptographic privacy and authentication for data communicationLinkLink3#REF!
    151Sself-certifying-identifierself-certifying-identifiercryptographically binds an identifier to a public and private key pairLinkLink3#REF!
    152Kself-framingself-framingA textual encoding that includes type, size, and value is self-framing; and thus parseable without needing any additional delimiting characters.LinkLink3#REF!
    153Sself-sovereign-identityself-sovereign-identityLinkLink2#REF!NO INPUT
    154Gsigned-digestsigned-digestLinkLink2#REF!NO INPUT
    155Gspanning-layerspanning-layerLinkLink3#REF!NO INPUT
    156Ktext-binary-concatenation-composabilitytext-binary-concatenation-composabilityWhen any set of self-framing concatenated primitives expressed in either the text domain or binary domain may be converted as a group to the other domain and back again without loss.LinkLink3#REF!
    157Ktransaction-event-logtransaction-event-logThe set of transactions that determine registry state form a log called a Transaction Event Log (TEL) and is cryptographically linked to corresponding controlling KEL.LinkLink3#REF!
    158Gtransmission-control-protocoltransmission-control-protocolTCP is one of the main protocols of the Internet protocol suiteLinkLink1#REF!
    159Strust-domaintrust-domainA trust domain is the ecosystem of interactions that rely on a trust basis. A trust basis binds controllers, identifiers, and key-pairs.LinkLink1#REF!
    160Gvalidatorvalidatorthe capability to determine whether or not (verified) data is valid to be used for some specific purpose(s).LinkLink21#REF!
    161Gveracityveracitythe quest for the truthLinkLink2#REF!
    162Gverifiable-data-structureverifiable-data-structurea verifiable data structure is a data structure that incorporates cryptographic techniques to ensure the integrity and authenticity of its contentsLinkLink3#REF!
    163Gverifiableverifiableable to cryptographically verify a certain data structure on its consistency and its authenticityLinkLink2#REF!
    164Gverifierverifierthe entity that (cryptogrpahically) verifies data received from peers (check structure, signatures, dates)LinkLink2#REF!
    165Gversionversionis a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of informationLinkLink1#REF!
    166Kvirtual-credential-transaction-event-logvirtual-credential-transaction-event-logLinkLink3#REF!NO INPUT
    167Gweb-of-trustweb-of-trustLinkLink2#REF!NO INPUT
    168Kwell-known-witnesseswell-known witnessesLinkLink3#REF!NO INPUT
    169SIIWInternet Identity Workshop twice in a year un-conference since 2005LinkLink3#REF!
    170KKERIKey Event Receipt InfrastructureLinkLink31#REF!
    171GreporeporepoSoftware repositoryLinkLink2#REF!
    172KKERIpyPython implementation of KERILinkLink3#REF!
    173GcoroutinescoroutinescoroutinesComputer programs that can be suspended and resumed at will.LinkLink1#REF!
    174Ginput-outputI/Oinput-outputInput / outputLinkLink1#REF!
    175GhiohiohioHierarchical asynchronous coroutines and I/O in PythonLinkLink3#REF!
    176GSam SmithSamuel M. Smith PhD, Inventor and lead developer of KERILinkLink3#REF!
    177GpythonProgramming LanguageLinkLink2#REF!
    178GcloneclonecloneA copy of a system that is - and works exactly as the originalLinkLink2#REF!
    179GbranchbranchbranchA duplicate of an object under version control for further separate modificationLinkLink2#REF!
    180KkliklikliKERI command line interfaceLinkLink3#REF!
    181GKuberneteskubernetes is an open source platform for managing software containersLinkLink2#REF!
    182Gkubectlkubernetes command line interfaceLinkLink3#REF!
    183Sverifiable-credentialverifiable credentialsverifiable-credentialthe digital variant of our daily live's credentials (ike passport, driver's license), but in a machine-verifiable wayLinkLink1#REF!
    184GDocker containersDocker takes away repetitive, mundane configuration tasks and is used for application developmentLinkLink2#REF!
    185sub-shellsub shellsub-shella child shell started up from - and contained in another parent shellLinkLink1#REF!
    186Sagentagentagenta representative for an identityLinkLink2#REF!
    187Gcloud-agentcloud agentcloud-agentis software installed on the cloud server instances for security, monitoring, and analysisLinkLink2#REF!
    188GPy installerPython installer bundles a Python application and all its dependencies into a single packageLinkLink2#REF!
    189GElectronA Python interface for Apache Electron command line interfaceLinkLink2#REF!
    190Guser-interfaceU/Iuser-interfaceA user interface (UI) is the space where interactions between humans and machines occur.LinkLink1#REF!
    191Gmultisigmulti-sigmultisigA digital signature scheme which allows a group of users to sign a single piece of digital data.LinkLink1#REF!
    192Gidentifier-systemidentifieridentifier-systemSomething to uniquely identify (public) identities, pointing to something or someone else.LinkLink2#REF!
    193GwalletwalletwalletA wallet is a collection of data stores, made up of a keystore, local and remote key event log database and credential database.LinkLink3#REF!
    194Gwallet commandsThe section of kli where verifiable credentials can be listedLinkLink3#REF!
    195KwitnesswitnesseswitnessEntity that may receive, verify, and store key events for an identifierLinkLink3#REF!
    196KwatcherwatcherswatcherGuarantee that KERI logs are immutableLinkLink3#REF!
    197Gkey-managementkey managementkey-managementManagement of cryptographic keys in a crypto-system.LinkLink3#REF!
    198GinitInitialization, a command in the kliLinkLink2#REF!
    199Ssingle-signature-identifiersingle sig identifiersingle-signature-identifierAn identifier that is controlled by a one-of-one signing keypairLinkLink2#REF!
    200Gkeystorekey storekeystoreA keystore in KERI is the encrypted data store that hold the private keys for a collection of AIDs.LinkLink3#REF!
    201Skey-eventkey eventskey-eventEvents happening to controlling keys of an identifier recorded in a Key Event Log (KEL).LinkLink21#REF!
    202Sinteraction-eventinteraction eventinteraction-eventAnchors external data to the key-state as established by the most recent prior establishment eventLinkLink3#REF!
    203Srotation-eventrotation eventrotation-eventChanges the key-state which includes a change to the set of authoritative keypairs for an AIDLinkLink3#REF!
    204Gsigning-thresholdsigning thresholdssigning-thresholdMinimum number of valid signatures to satisfy the requirement for successful validationLinkLink3#REF!
    205Kkey-event-logKELkey-event-logKey Event Log is the native KERI verifiable data structureLinkLink31#REF!
    206Gverify-signatureverify signaturesverify-signatureApplying an algorithm that either accepts or rejects the message's claim to authenticity; when you can succesfully verify a signatureLinkLink2#REF!
    207Gpeer-to-peerpeer-to-peer communicationspeer-to-peerPeers are equally privileged, equipotent participants in a networkLinkLink2#REF!
    208Gbootstrap commandStart an empty agent or to run a single agent against one that's already been startedLinkLink2#REF!
    209GsaltsaltssaltRandom data that is used as an additional input to a cryptographic one-way functionLinkLink3#REF!
    210KdelegationdelegationdelegationDelegation can be defined as “the act of empowering to act for another”LinkLink3#REF!
    211Kmulti-sig-delegationmulti-sig delegationmulti-sig-delegationdelegated identifiers under multi-signature controlLinkLink3#REF!
    212GjsonJavaScript Object NotationLinkLink2#REF!
    213Stransferable-identifiertransferabletransferable-identifierControl over identifier can be transferred by rotating keysLinkLink3#REF!
    214GportsA number assigned to uniquely identify a connection endpoint and to direct data to a specific service.LinkLink2#REF!
    215Gconfiguration-filesconfiguration fileconfiguration-filesFile used to configure the parameters and initial settings for some computer programsLinkLink1#REF!
    216GRESTREpresentational State Transfer (REST) is a software architectural style that developers apply to web APIsLinkLink2#REF!
    217GAPIsApplication Programming InterfaceLinkLink2#REF!
    218GcurlCommand-line tool (curl) for transferring data using various network protocols. LinkLink2#REF!
    219Gtransfer_Protocolpost and puttransfer_ProtocolHTTP request methods to indicate the desired action to be performed on the identified resource LinkLink2#REF!
    220GSwaggerOpenAPI (former Swagger) is important to KERI, CESR and ACDC. It's open sourced and has many ready-usable extensions in JSON available.LinkLink3#REF!
    221GpasscodepasscodepasscodeSecret data, typically a string of characters, usually used to confirm a user's identityLinkLink2#REF!
    222Gkey-stretchingstretched into an encryption keykey-stretchingmake a possibly weak key, typically a password or passphrase, more secure against a brute-force attack by increasing the resourcesLinkLink3#REF!
    223GflagMany command line programs can be set to various mode by using a flag, e.g. -v or --verbose for verbose modeLinkLink2#REF!
    224Knon-transferable-identitifernon-transferable identifiernon-transferable-identitiferControlling keys over this identifier cannot be rotated and therefore this identifier is non-transferable to other controlLinkLink3#REF!
    225KtoadField in KERI data structure for describing the witness thressholdLinkLink3#REF!
    226Kthreshold-signature-schemewitness thresholdthreshold-signature-schemeThe minimum number of valid witness signatures requiredLinkLink3#REF!
    227Kpre-rotationpre-rotationpre-rotationcommitment to next rotated key set in previous rotation or inception eventLinkLink3#REF!
    228KprefixprefixesprefixA prefix that is composed of a basic Base-64 (URL safe) derivation code pre-pended to Base-64 encoding of a basic public digital signing keyLinkLink3#REF!
    229Gbase64base64base64A group of binary-to-text encoding schemes that represent binary dataLinkLink3#REF!
    230Kqualifiedqualifiedqualifiedwhen qualified, a cryptographic primitive includes a prepended derivation codeLinkLink3#REF!
    231Kderivation-codederivation codederivation-codeA special character that encodes the derivation process, pre-pended to the identifierLinkLink3#REF!
    232Gblake3Blake3 hashblake3BLAKE3 is a relatively young (2020) cryptographic hash function based on Bao and BLAKE2.LinkLink3#REF!
    233Gdata-anchoranchor data intodata-anchorData anchors are digests of digital data, that uniquely identify this dataLinkLink3#REF!
    234Sautonomic-identifierAIDautonomic-identifierAn identifier that is self-certifying and self-sovereignLinkLink3#REF!
    235Gsequence numberIncremental number in a logLinkLink2#REF!
    236GdigestdigestdigestVerifiable cryptographic commitment. It's a collision resistant hash of contentLinkLink21#REF!
    237Kissuance-eventissuance eventissuance-eventThe inception event of a verifiable credentialLinkLink3#REF!
    238Kpublic-transaction-event-logpublic transaction event logpublic-transaction-event-logIs a hash linked data structure of transactions that can be used to track stateLinkLink3#REF!
    239GRustRustprogramming languageLinkLink3#REF!
    240Kestablishment-eventestablishmentestablishment-eventAn event that establishes control authorityLinkLink3#REF!
    241Gmemory-Mapped_Databaselmdb databasesmemory-Mapped_DatabaseLightning Memory-Mapped DatabaseLinkLink3#REF!
    242Kindexed-signature indexed signaturesindexed-signature Used when signing anything with a multi-key autonomic identifier, a verifier knows which of the multiple public keys was usedLinkLink3#REF!
    243GhexHexadecimal notationLinkLink2#REF!
    244GverboseAn option available in many computer operating systems and programming languages that provides additional details as to what the computer is doingLinkLink2#REF!
    245Kself-addressing-identifierself-addressing identifiersself-addressing-identifierAn identifier that is deterministically generated from and embedded in the content it identifies, making it and its data mutually tamper-evidentLinkLink3#REF!
    246KbackerBackers include both regular KERI witnesses and ledger-registered backersLinkLink3#REF!
    247Kledger-backerledger backerledger-backerA witness in KERI that is ledger-registeredLinkLink3#REF!
    248Kwitnesswitness backerwitnessA native KERI witness whose control authority is established in a KELLinkLink3#REF!
    249Kverifiable-legal-entity-identifiervLEIverifiable-legal-entity-identifierDigital verifiable credentials issued by (delegates) of GLEIF to prove that information about a legel entity is verifiably authenticLinkLink3#REF!
    250Sssi-systemSSI systemssi-systemSSI Infrastructure consisting of the technological components that are deployed all over the worldLinkLink1#REF!
    251SIndy networkHyperledger Indy network is an SSI system based on a private blockchainLinkLink3#REF!
    252Ktransfer-off-ledgertransfer off a ledgertransfer-off-ledgerThe act of transferring control authority over an identifier from a ledger (or blockchain) to the native verifiable KERI data structure KELLinkLink3#REF!
    253GEthereumEthereum is the community-run technology powering the cryptocurrency ether (ETH) and thousands of decentralized applicationsLinkLink3#REF!
    254GAriesHyperledger Aries provides an interoperable tool kit for creating, transmitting and storing verifiable digital credentialsLinkLink3#REF!
    255Gservice-endpointservice endpointsservice-endpointA web service endpoint which is a URL at which clients of specific service can get access to the service.LinkLink2#REF!
    256Guniform-resource-locatorURLsuniform-resource-locatorA reference to a web resource that specifies its location on a computer network and a mechanism for retrieving itLinkLink1#REF!
    257Gip-addressip-addressip-addressA numerical label such as '192.0.2.1' that is connected to a computer network that uses the Internet Protocol for communicationLinkLink1#REF!
    258Gtcp-endpointTCP endpointtcp-endpointThis is a service endpoint of the web transmission control protocolLinkLink2#REF!
    259KinquisitorinquisitorinquisitorSomeone (in a validating role) that launches an inquiry at some KERI witnessLinkLink3#REF!
    260Greplay-attackreplay-attackintercept and then fraudulently delays or resend a message to misdirect the receiver into doing what the attacker wantsLinkLink3#REF!
    261GXBRLXBRLextensible business reporting language, standard for digital business reportingLinkLink1
    262Gextensible-business-reporting-languageextensible-business-reporting-languageXBRL, standard for digital business reportingLinkLink1
    263Klocked-statelocked statelocked-statedefault state of an encrypted KERI data store with a passcodeLinkLink3#REF!
    264Gonepasspassword manager LinkLink3#REF!
    265Kout-of-band-introductiondata OOBIsout-of-band-introductiondata out-of-band introductionsLinkLink3#REF!
    266Kout-of-band-introductioncredential schema OOBIsout-of-band-introductioncredential schema out-of-band introductionsLinkLink3#REF!
    267Kkeepkeepkeepis KERI's and ACDC's depreciated crypto wallet, a task orientated application for managing AIDs in ecosystems, e.g. the vLEI EcosystemLinkLink3#REF!
    268Gzero-trustzero trustzero-trusta Zero Trust approach trusts no oneLinkLink2#REF!
    269Kcredential registriesIs a functional component that has the capability to register and advertise the information about Credential Types that their respective Governing Parties have decided to discloseLinkLink2#REF!
    270Krevocation-eventrevocation eventsrevocation-eventAn event that revokes control authority over an identifierLinkLink2#REF!
    271Gtwo-factor authIs an electronic authentication method in which a user is granted access to a website or application only after successfully presenting two or more pieces of evidence LinkLink1#REF!
    272Kescrow-stateescrow statesescrow-stateThe current state of all the temporary storage locations (what events are waiting for what other information) that KERI protocol needs to keep track of, due to its fully asynchronous nature.LinkLink3#REF!
    273Kserver-sent-eventserver-sent eventsserver-sent-eventMailbox notifications, a streaming service for the agent U/I, to get notifications from the KERI system itselfLinkLink3#REF!
    274Gsealsealcryptographic proof in a secondary root-of-trust that is anchored in a primary-root-of-trustLinkLink21#REF!
    275Sauthoritativeauthoritative(control over) an identifier is 'authoritative' because it can be considered accurate, renowned, honourable and / or respectedLinkLink31#REF!
    276KQVIQVIqualified vlei issuer, contracting party qualified by GLEIF LinkLink2#REF!1
    277Kqualified-vlei-issuerqualified-vlei-issuerQVI, contracting party qualified by GLEIF LinkLink2#REF!1
    278Kghost-credentialghost-credentiala valid credential within in a 90 days grace periodLinkLink2#REF!1
    279Kredundant-credentialredundant-credentialmultiple -, independently valid credentials issued by the same issuerLinkLink2#REF!1
    280Kengagement-context-roleengagement-context-roleA person that represents the Legal Entity in a context role and is issued an ECR vLEI Credential.LinkLink2#REF!1
    281KECRECRA person that represents the Legal Entity in a context role and is issued an ECR vLEI Credential.LinkLink2#REF!1
    282Kgleif-authorized-representativegleif authorized representativeA GLEIF representative authorized to perform verification needed to issue the QVI vLEI Credential.LinkLink2#REF!1
    283KGARGARA GLEIF representative authorized to perform verification needed to issue the QVI vLEI Credential.LinkLink2#REF!1
    284GGLEIFGLEIFGlobal Legal Entity Identifier FoundationLinkLink1#REF!1
    285KDARDARA representative of a Legal Entity authorized by the Legal Entity to act officially on behalf of the Legal Entity.LinkLink2#REF!1
    286Kdesignated-authorized-representativedesignated-authorized-representativeA representative of a Legal Entity authorized by the Legal Entity to act officially on behalf of the Legal Entity.LinkLink2#REF!1
    287KAVRAVRauthorized vlei representativeLinkLink2#REF!1
    288Kauthorized-vlei-representativeauthorized-vlei-representativea representative of a Legal Entity that's authorized to request issuance and revocation of credentialsLinkLink2#REF!1
    289GLEILEILegal Entity InstituteLinkLink2#REF!1
    290Glegal-entitylegal-entityunique parties that are legally or financially responsible for financial transactions or have the legal right to enter into legal contractsLinkLink2#REF!1
    291KOOROORofficial organizational role, a person holding a vLEI credential person and representing the Legal EntityLinkLink2#REF!1
    292Kofficial-organizational-roleofficial-organizational-roleOOR, a person holding a vLEI credential person and representing the Legal EntityLinkLink2#REF!1
    293Kqvi-authorized-representativeqvi-authorized-representativeQAR, conducts QVI operations with GLEIF and Legal EntitiesLinkLink2#REF!1
    294KQARQARqvi authorized representative, conducts QVI operations with GLEIF and Legal EntitiesLinkLink2#REF!1
    295Kvlei-ecosystem-governance-frameworkvlei-ecosystem-governance-frameworka document that defines the information security, privacy, availability, confidentiality and processing integrity policies that applyLinkLink2#REF!1
    296Ksolicited-issuancesolicited-issuanceissuance of Legal Entity vLEI / OOR / ECR Credentials upon receipt by the QARLinkLink2#REF!1
    297Kunsolicited-issuanceunsolicited-issuanceissuance of a Legal Entity vLEI Credential upon notice by a QAR to its AVR(s)LinkLink2#REF!1
    298Ggovernance-frameworkgovernance-frameworka set of rules how to apply technologyLinkLink2#REF!1
    299KGLEISGLEISGlobal Legal Entity Identifier SystemLinkLink2#REF!1
    300Kvlei-credentialvlei-credentialverifiable Legal Entity IdentifierLinkLink2#REF!1
    301Klegal-entity-engagement-context-role-vlei-credential-governance-frameworklegal-entity-engagement-context-role-vlei-credential-governance-frameworkLinkLink2#REF!1NO INPUT
    302Kvlei-role-credentialvlei-role-credentialLinkLink2#REF!1NO INPUT
    303Klegal-entity-official-organizational-role-vlei-credential-governance-frameworklegal-entity-official-organizational-role-vlei-credential-governance-frameworkLinkLink2#REF!1NO INPUT
    304Klegal-entity-vlei-credential-governance-frameworklegal-entity-vlei-credential-governance-frameworkLinkLink2#REF!1NO INPUT
    305Kqualified-vlei-issuer-vlei-credential-governance-frameworkqualified-vlei-issuer-vlei-credential-governance-frameworkLinkLink2#REF!1NO INPUT
    306SDIDDIDDecentralized IdentifierLinkLink2#REF!
    307Sdecentralized-identifierdecentralized-identifierLinkLink1#REF!
    308Kpartial-pre-rotationpartial-pre-rotationchange of control but partially keep some keys unexposed while exposing others as needed.LinkLink3#REF!1
    309Kpartial-rotationpartial-rotationchange of control but partially keep some keys unexposed while exposing others as needed.LinkLink3#REF!1
    310Kcustodial-rotationcustodial-rotationchange of control that is split between two key setsLinkLink3#REF!1
    311Kreserve-rotationreserve-rotationpreparatory key pairs being held in reserve and not exposedLinkLink3#REF!1
    312Kcustodial-agentcustodial-agenta custodian who has been granted signing authority and usually also being the host of the running agent software.LinkLink3#REF!1
    313Ssigning-authoritysigning-authoritythe authority to sign on behalf of the controller of an identifierLinkLink3#REF!1
    314Srotation-authorityrotation-authoritythe (exclusive) right to change control over an identifierLinkLink3#REF!1
    315Gtrans-contextual-valuetrans-contextual-valuevalue that is transferrable between contextsLinkLink1#REF!1
    316Gsource-of-truthsource-of-trutha trusted data source that gives a complete picture of the truth about a data object.LinkLink1#REF!1
    317Gauthorizationauthorizationspecifying access rights or privileges to resourcesLinkLink11#REF!11
    318Gapplication-programming-interfaceapplication-programming-interface a way for two or more computer programs to communicate with each other.LinkLink1#REF!11
    319GAPIAPIan application Programming Interface, a way for two or more computer programs to communicate with each other.LinkLink1#REF!11
    320Gkey-pairkey-paira public key and its corresponding private key.LinkLink11#REF!11
    321Gownerownera role that exercizes its legal, rightful or natural title to control something.LinkLink1#REF!1111
    322Gownershipownershipa relationship between two, one of these (the owner) is entitled to enjoy, dispose of, and control the other sovereignly. LinkLink1#REF!1111
    323Gself-sovereigntyself-sovereigntythe characteristic of every party that it is autonomous in managing and operating its own knowledgeLinkLink1#REF!111
    324Kpresentation-exchangepresentation-exchangean exchange that provides disclosure of one or more ACDCs between a Discloser and a Disclosee.LinkLink31#REF!
    325Gdiscloserdiscloseran ACDC in a disclosure is disclosed by the Discloser.LinkLink11#REF!
    326Gdiscloseediscloseean ACDC in a disclosure is disclosed to the Disclosee.LinkLink11#REF!
    327Gissuerissueran ACDC is issued by the Issuer. The Issuer identifier (AID) appears in the top level of the ACDC.LinkLink11#REF!
    328Gissueeissueean ACDC is optionally issued to the Issuee.LinkLink11#REF!
    329Kissuance-exchangeissuance-exchangea special case of a presentation exchange where the Discloser is the Issuer of the origin (Primary) ACDCLinkLink31#REF!
    330Kchain-link-confidentialitychain-link-confidentialitychains together a sequence of Disclosees. Each Disclosee in the sequence in turn is the Discloser to the next Disclosee.LinkLink31#REF!
    331Kgraduated-disclosuregraduated-disclosuredisclosure performed by a presentation exchange that has cross-variant Issuer commitment verifiability as an essential property. LinkLink31#REF!
    332Ktop-level-sectiontop-level-sectionare the fields of an ACDC compact variant.LinkLink21#REF!
    333Kcompact-variantcompact-variantan Issuer commitment via a signature to any variant of ACDCLinkLink31#REF!
    334Kcontractually-protected-disclosurecontractually-protected-disclosurethe most elaborate form of disclosure by an IPEX. Contractually protected disclosure includes both chain-link confidential and contingent disclosure.LinkLink31#REF!
    335Gricardian-contractricardian-contracta method of recording a document as a contract at law, and linking it securely to other systemsLinkLink21#REF!
    336Kcontingent-disclosurecontingent-disclosureLinkLink31#REF!
    337Geclipse-attackeclipse-attackan eclipse attack is a P2P network-based attack, an attacker tries to isolate a node from the rest of the networkLinkLink2#REF!1
    338Kpromiscuous-modepromiscuous-modethe indiscriminate mode a watcher (network) runs in.LinkLink3#REF!
    339Gprotocolprotocola code of correct conduct, in our case specifically communication protocols, cryptographic protocols, and decentralized network protocolsLinkLink1111#REF!11
    340Gpseudo-random-numberpseudo-random-numbera value that is statistically random, but it is (repeatedly) derived from a known starting pointLinkLink1
    341Gvalidatevalidatea decision to accept an outcomeLinkLink1
    342Gverifyverifythe capability to (cryptogrpahically) verify data received from peers (check structure, signatures, dates)LinkLink1
    343Spersistent-identifierpersistent-identifierControl over this type of long-living identifier can be transferred by rotating keys.LinkLink2
    344Kinterleaved-serializationsinterleaved-serializationsSerializations of different types interleaved in an overarching formatLinkLink2
    345Scollective-signaturecollective-signatureMultisignature scheme for a single resulting pubic keyLinkLink2
    346Ggraph-fragmentgraph-fragmentan ACDC is a verifiable data structure and part of a graph consisting of a node fragment and edge fragmentsLinkLink2
    347Gpersistent-datastructurepersistent-datastructurean append only verifiable data structure. Hence, making them immutable means distributable and concurrency-friendly. What we sign may not change. LinkLink2
    348Gcollisioncollisiona circumstance where two or more identifiers in a given namespace or a given scope cannot be unambiguously resolvedLinkLink1
    349Gschema-namespace-registryschema-namespace-registrya centrally managed schema registry where corporations or individuals reserve schemas within a specific namespace in order to have an interoperable schema that is labeled with a corporation-specific or individual-specific namespaceLinkLink2
    350Gschema-registryschema-registryregistry for credential schemas based on namespacesLinkLink2
    351Gdomain-namedomain-nameis a string that identifies a realm of administrative autonomy on the internetLinkLink1
    352Gdomaindomaingeneral term for (an identifier of) an autonomous space LinkLink1
    353Gregistryregistryan official digital record book, usually refering to one means to a specific instance, within a multi-tenant registry.LinkLink1
    354GcomposabilitycomposabilityWhen any set of self-framing concatenated primitives expressed in either the text domain or binary domain may be converted as a group to the other domain and back again without loss.LinkLink2
    356GinteroperableinteroperableInteroperability is a characteristic of a product or system to work with other products or systems.LinkLink1
    357GinteroperabilityinteroperabilityInteroperability is a characteristic of a product or system to work with other products or systems.LinkLink1
    358Gcryptographic-primitivecryptographic-primitiveWell-established, low-level cryptographic algorithm that is frequently used to build cryptographic protocols for computer security systems; e.g. one-way hash functions and encryption functions.LinkLink1
    359Gconcatenationconcatenationthe operation of joining character strings end-to-end. E.g. 'snow' and 'ball' becomes 'snowball'LinkLink1
    360Gmultiplexingmultiplexingis a method by which multiple analog or digital signals are combined into one signal over a shared medium. The aim is to share a scarce resource.LinkLink2
    361Gpipeliningpipelininga set of data processing elements connected in series, where the output of one element is the input of the next one.LinkLink2
    362Kgroup-framing-codegroup-framing-codecodes that can be specified to support groups of primitives. Grouping enables pipelining.LinkLink3
    363Khierarchical-compositionhierarchical-compositionencoding protocol that is composable in a hierarchy and enables pipelining of complex streams in either text or compact binaryLinkLink3
    364Kframe-codeframe-codecodes that can be specified to support groups of primitives. Grouping enables pipelining.LinkLink3
    365Kcount-codecount-codecodes that can be specified to support groups of primitives. Grouping enables pipelining.LinkLink3
    366Kgroup-codegroup-codecodes that can be specified to support groups of primitives. Grouping enables pipelining.LinkLink3
    367Stransferable transferable capable of loss-less transfer of control over identifiers, private keys, etc.LinkLink1
    368Gpost-padpost-padthe action and / or result of extending a string with trailing pad characters to align to a certain length in bits or bytes.LinkLink3
    369Gpre-padpre-padthe action and / or result of prepending a string with leading pad characters to align to a certain length in bits or bytes.LinkLink3
    370Knaive-conversionnaive-conversiona text to binary conversion or vice versa that doesn't anticipate on either composability and / or on the concatenation capability of the result of such an operation.LinkLink3
    371Gpadpadis a character used to fill empty spaceLinkLink2
    372Glead-byteslead-bytespre-conversion added characters in a pre-padded way, used to fill empty spaceLinkLink2
    373Gcode-tablecode-tablea code table is the Internet's most comprehensive yet simple resource for browsing and searching for various codes.LinkLink1
    374Kcode-table-selectorcode-table-selectorthe first character in the text code of CESR stream that determines which code table to use.LinkLink3
    375Ksallysallya vLEI Audit Reporting Agent that receives presentations of credentials and notices of revocation.LinkLink3
    376Ksignifysignifyis a web client (key) event signing - and key pair creation app that minimizes the use of KERI on the client.LinkLink3
    377Gescrow escrow a third party temporarily holds money or property until a particular condition has been met. The verb refers to handling out of order events in KERI.LinkLink1
    378Kkeri-suite-search-enginekeri-suite-search-enginethe Docusaurus self-education site of Web-of-Trust GitHub repo with Typesense search facilitiesLinkLink1
    379Kfield-mapfield-mapa traditional key:value pair renamed to avoid confusing with the cryptographic use of the term 'key'LinkLink3
    380KCLCCLCchain-link confidential, a disclosure mechnism of credentialsLinkLink3
    381Kcold-start-stream-parsingcold-start-stream-parsingAfter a reboot a stream processor looks for framing information to know how to parse groups of elements in the stream.LinkLink3
    382Kfully-compactfully-compactthe intermediate variant of a ACDC credential -> signed and its proofs anchored in key event logs.LinkLink3
    383Kmost-compactmost-compactthe most brief least disclosing version of an ACDC based credential.LinkLink3
    384Kfully-expandedfully-expandedthe most extensive most disclosing and most user-friendly version of an ACDC based credential.LinkLink3
    385GRUNRUNread, update, nullify -> the new peer-to-peer end-verifiable monotonic update policyLinkLink1
    386GCRUDCRUDcreate, read, update, delete -> the traditional client-server database update policyLinkLink1
    387Gauthentic-webauthentic-weba mental model in which the whole internet is considered as a one giant verifiable data structureLinkLink1
    388Krun-off-the-crudrun-off-the-cruda decentralised controlling peer does not create records in the traditional sense of a server LinkLink3
    389Gintegrityintegritythe information is whole, complete, sound, in good order and unimpaired (not necessarily correct)LinkLink1
    390Gverified-integrityverified-integritya proof of unambiguous assessment whether the information is/continues to be whole, sound and unimpairedLinkLink2
    391Gcomplementary-integrity-verificationcomplementary-integrity-verificationa mechanism that can verify integrity independent of needing access to a previous instance or reference version of the information for comparisonLinkLink3
    392Kprior-next-thresholdprior-next-thresholdLinkLink3NO INPUT
    393Kcurrent-signing-thresholdcurrent-signing-thresholdLinkLink2NO INPUT
    394Kdual-indexed-codesdual-indexed-codesa context-specific coding scheme, for the common use case of thresholded multi-signature schemes in CESRLinkLink3
    395KkeripykeripyPython implementation of KERILinkLink2
    396Kkeri-oxkeri-oxRUST implementation of KERILinkLink2
    397Spiipiipersonally identifiable informationLinkLink1
    398Scontextual-linkabilitycontextual-linkabilitywhen data capture points provide enough context to be able to use statistical correlation to link existing data sets describing a person to that same person's disclosed attributesLinkLink3
    399Kblinded-revocation-registryblinded-revocation-registrya transaction event log hidden or blinded; the only way a verifier can observe the state is when the AID controller discloses it at presentation timeLinkLink3
    400Grainbow-table-attackrainbow-table-attacka password cracking method that uses a special table (a “rainbow table”) to crack the password hashes in a databaseLinkLink1
    401KSKWASKWASimple KERI for Web AuthLinkLink3
    402Ksimple-keri-for-web-authsimple-keri-for-web-authA KERI implementation that sacrifices performance or other non-security feature for usability.LinkLink3
    403KKRAMKRAMKERI Request Authentication Method for replay protectionLinkLink3
    404Kkeri-request-authentication-methodkeri-request-authentication-methodKERI Request Authentication Method for replay protectionLinkLink3
    405Kjurorjurorperforms duplicity detection on events and event receiptsLinkLink3
    406Kjuryjuryset of entities or components acting as jurorsLinkLink3
    407Kopcodeopcodeprovide stream processing instructions that are more general and flexibleLinkLink3
    408Kversion-codeversion-codeLinkLink3
    409Kstrip-parameterstrip-parametertells us what part of the CESR stream will be parsed by which codeLinkLink3
    410Kparsideparsideparser library for Composable Event Streaming Representation (CESR)LinkLink3
    411Gversion-stringversion-stringLinkLink3
    412Kcesridecesridecryptographic primitives for use with Composable Event Streaming Representation (CESR)LinkLink3
    413Ksniffersnifferthe sniffer is part of Parside and detects if the CESR stream contains CESR binary, CESR Text, JSON, CBOR, MGPKLinkLink3
    414GPRNGPRNGPseudorandom Number GeneratorLinkLink2
    415GCSPRNGCSPRNGCryptographically Secure Pseudorandom Number GeneratorLinkLink2
    416FFIFFIForeign Function Interface LinkLink2
    417Gforeign-function-interfaceforeign-function-interfaceIs a mechanism by which a program written in one programming language that can call routines or make use of services written or compiled in another oneLinkLink2
    418GHDKHDKhierchical deterministic keysLinkLink1
    419GHSMHSMhardware security moduleLinkLink1
    420Kpartial-disclosurepartial-disclosurean ACDC attribute section that can disclosed (a nested branch in a tree), you can either decide to disclose or notLinkLink3
    421Kselective-disclosureselective-disclosureselective disclosure is a list of field maps, that you can choose to blind and publish, however all are disclosuredLinkLink3
    422Kfull-disclosurefull-disclosurea disclosure of data in all its detailsLinkLink1
    423Kthreshold-of-accountable-duplicitythreshold-of-accountable-duplicityController provides itself with any degree of protection by giving a minimum number of confirming witnesses sufficient given a certain accountability.LinkLink3
    424KTOADTOADthreshold of accountable duplicity; provided by controller concerning witnessesLinkLink3
    425KkeridekerideRust library for Key Event Receipt InfrastructureLinkLink3
    426KKERIAKERIAKERI agent in the cloudLinkLink3
    427KSignifideSignifidesigning at the edgeLinkLink3
    428KkiwikiwiUI tooling for working with KERILinkLink3
    429Ghardware-security-modulehardware-security-modulea physical computing device that safeguards and manages secrets (most importantly digital keys)LinkLink1
    430Ghierchical-deterministic-keyshierchical-deterministic-keysa type of deterministic bitcoin wallet derived from a known seed, that allow for the creation of child keys from the parent keyLinkLink1
    431KSKRAPSKRAPSignify/KERIA Request Authentication ProtocolLinkLink3
    432Ksignify-keria-request-authentication-protocolsignify-keria-request-authentication-protocolThe KERIA service will expose 3 separate HTTP endpoints on 3 separate network interfacesLinkLink3
    433
    434KprefixingprefixingprefixingLinkLink3
    435KpathingpathingpathingLinkLink3
    436KparsingparsingparsingLinkLink3
    437Kbespoke-credentialbespoke-credentialIt's a custom issuance of the presentation of other ACDCs, it serves as an on-the-fly contract with the issuee; it's a self-referencing and self-contained contractLinkLink3
    438KKERIMaskKERIMaskLinkLink3
    439KKERISSEKERISSEKERI Suite Search EngineLinkLink1
    440Kkeri-suitekeri-suiteis the set of inter-related developments (KERI, ACDC, OOBI, CESR, IPEX, etc) under the Web-of -Trust user on GithubLinkLink1
    441KndigsndigsDigests of keys, used to prove control over keys or to hide keysLink
    442Kverferverfera primitive that represents a public keyLink
    443Kdigerdigera primitive that represents a digestLink
    444Kcigarcigaran unindexed signature Link
    445Ksigersigeran indexed signature used within KERI when there are multiple current keys to an identifierLink
    446Ksignersignera primitive that represents a private keyLink
    447Ksaltersaltera primitive that represents a seed that has the ability to generate new SignersLink
    448GLLMLLMLarge Language ModelLink
    449Glarge-language-modellarge-language-modelIs a language model consisting of a neural network with many parametersLink
    450KixnixnField name for Interaction Event; its content contains a hash pointerLink
    451KrotrotField name for Rotation Event; its content contains a hash pointerLink
    452GJSONJSONJavaScript Object NotationLink
    453Kicpicp|TBW|Link
    454Kvcpvcp|TBW|Link
    455Kbisbis|TBW|Link
    456KMGMTMGMT|TBW|Link
    457Kbrvbrv|TBW|Link
    458Kvrtvrt|TBW|Link
    459Kixnixn|TBW|Link
    460Ksecure-private-authentic-confidentialitysecure-private-authentic-confidentialityLink
    461KSPACSPACsecure private authentic confidentialityLink
    462Gdead-dropdead-dropLink
    463-WWWWWWLink
    464-WWWWWWLink
    465-WWWWWWLink
    - + \ No newline at end of file diff --git a/docs/Overview/overview-and-context/index.html b/docs/Overview/overview-and-context/index.html index 5ad88fabfbd..a7313fd9eea 100644 --- a/docs/Overview/overview-and-context/index.html +++ b/docs/Overview/overview-and-context/index.html @@ -7,12 +7,12 @@ - +

    overview-and-context

    KeyTypeToIP_FkeyPhilvid_FkeyTerm text linkPhilvid_start levelCat_PTELCat_IPEXCat_OOBICat_CESRCat_ACDCCat_KERICat_SAIDCat_GLEIFShortened version@dropdownShortened version static copy
    1KACDCACDCtype of data as issuance concretely defined by the authentic-chained-data-container specificationLinkLink311#NAME?
    2KADCADCan authentic data container conveys data that allows the authenticity of its content to be proved.LinkLink31#NAME?
    3SAIDAIDan identifier that is self-certifying and self-sovereign.LinkLink3111#NAME?
    4SANANa namespace that is truly self-sovereign.LinkLink31671#NAME?
    5KAPCAPCauthentic provenance chain; evidence of data to be verfiably tracked back to its originLinkLink3#NAME?
    6KBADABADAbest available data acceptance, mechanism that provides a degree of replay attack protectionLinkLink31#NAME?
    7GBFTBFTByzantine Fault TolleranceLinkLink3#NAME?
    8KCESRCESRcomposable event streaming representationLinkLink3321#NAME?
    9GCTCTcertificate transparency; internet security standard for digital certificatesLinkLink2163#NAME?
    10GDAGDAGdirected acyclic graph, mathematical construct, no cycles in itLinkLink2#NAME?
    11KDELDELduplicitous event logLinkLink331#NAME?
    12GDHTDHTdistributed hash tableLinkLink21#NAME?
    13SDKMIDKMIdecentralized key management infrastructure; ensure no single third-party can compromise the integrity and security of a systemLinkLink21#NAME?
    14SDPKIDPKIdecentralized public key infrastructure; ensure no single third-party can compromise the integrity and security of a systemLinkLink2#NAME?
    15GGPGGPGGnu Privacy Guard, a free-software replacement for Symantec's PGP cryptographic software suiteLinkLink22#NAME?
    16GI-OI-OInput OutputLinkLink1400#NAME?
    17GIANAIANAInternet assigned numbers authority; oversees the allocation of IP addresses to internet service providers (ISPs)LinkLink22#NAME?
    18KIPEXIPEXissuance and presentation exchange protocol; mechanism for the issuance and presentation of ACDCsLinkLink311#NAME?
    19GJOSEJOSEJavascript object signing and encryption; method to securely transfer claims between partiesLinkLink31#NAME?
    20KKA2CEKA2CEKERI agreement algorithm for control establishmentLinkLink31#NAME?
    21KKAACEKAACEKERI agreement algorithm for control establishmentLinkLink31#NAME?
    22KKELKELKey Event LogLinkLink31#NAME?
    23KKERIKERIKey Event Receipt InfrastructureLinkLink341#NAME?
    24KKERLKERLKey Event Receipt LogLinkLink31#NAME?
    25KKIDKIDKERI improvement docLinkLink31#NAME?
    26GLoALoAany time a judgement is not a binary Yes or No, you have levels of assuranceLinkLink28#NAME?
    27GLoCLoCLocus of ControlLinkLink23#NAME?
    28GNFTNFTNon-fungible tokenLinkLink1#NAME?
    29KOOBIOOBIOut of band introductionLinkLink31#NAME?
    30GP2PP2PPeer to peerLinkLink1#NAME?
    31GPGPPGPPretty Good PrivacyLinkLink1#NAME?
    32GPKIPKIPublic Key InfrastructureLinkLink2111#NAME?
    33KPTELPTELis a public transaction event log that can be used to securely track state anchored to a KELLinkLink31#NAME?
    34KSADSADSelf-Adressing DataLinkLink31#NAME?
    35KSAIDSAIDSelf-Adressing IdentifierLinkLink311#NAME?
    36GSATPSATPsecure asset transfer protocol; IETF protocol (and working group) in the making (as of mid 2022) for moving assets between blockchainsLinkLink3#NAME?
    37SSCIDSCIDSelf-Certifying Identifier, cryptographically binds an identifier to a public and private key pair.LinkLink31#NAME?
    38SSSISSISelf-Sovereign IdentityLinkLink116111#NAME?
    39GTCPTCPtransmission control protocol, one of the main protocols of the Internet protocol suite.LinkLink21111#NAME?
    40KTELTELprovides a cryptographic proof of registry state by reference to the corresponding controlling KEL.LinkLink31211#NAME?
    41GUIUIthe space where interactions between humans and machines occur.LinkLink1111331111#NAME?
    42GURLURLuniform resource locator or 'web address', is a reference to a web resource that specifies its location on a computer networkLinkLink111111111#NAME?
    43KVC-TELVC-TELvirtual credential transaction event logLinkLink312#NAME?
    44GVCVCvirtual credentialLinkLink111#NAME?
    45GVDSVDSverifiable data structureLinkLink3#NAME?
    46Gagencyagencya service that a representative for an identity (agent) offersLinkLink2111#NAME?
    47Kambient-verifiabilityambient-verifiabilityVerifiable by anyone, anywhere, at anytime.LinkLink3#NAME?
    48Gappend-only-event-logsappend-only-event-logsis a property of computer data storage such that new data can be appended to the storage, but where existing data is immutableLinkLink21#NAME?
    49Kauthentic-chained-data-containerauthentic-chained-data-containerdata structure that proves digital data consistency and authenticity in one goLinkLink3#NAME?
    50Kauthentic-data-containerauthentic-data-containerdata structure that proves digital data consistency and authenticity in one goLinkLink3#NAME?
    51Kauthentic-provenance-chainauthentic-provenance-chainevidence of data to be tracked back to its origin in an verifiable wayLinkLink3#NAME?
    52Gauthenticityauthenticitythe quality of having an objectively verifiable originLinkLink2#NAME?
    53Gautonomic-computing-systemsautonomic-computing-systemsself-managing computing systems using algorithmic governanceLinkLink2#NAME?
    54Sautonomic-identity-systemautonomic-identity-systemidentity systems where you can verify (establishment of) the authenticity all the way back to the root-of-trustLinkLink21#NAME?
    55Sautonomic-namespaceautonomic-namespacenamespace that is self-certifying and hence self-administrating, is truly self-sovereignLinkLink2#NAME?
    56Kbest-available-data-acceptance-mechanismbest-available-data-acceptance-mechanismBADA, mechanism that provides a degree of replay attack protectionLinkLink31#NAME?
    57Sbindingbindingthe association of data or an identifier with another identifier or a subject (a person, organization or machine)LinkLink1#NAME?
    58Gbyzantine-agreementbyzantine-agreementis Byzantine fault tolerance of distributed computing system coming to consensus despite arbitrary behavior from a fraction of the networkLinkLink2#NAME?
    59Gbyzantine-fault-tolerancebyzantine-fault-toleranceis a condition of a (distributed) computer system, where components may fail and there is imperfect information on whether a component has failedLinkLink2#NAME?
    60Gcertificate-transparencycertificate-transparencyinternet security standard and framework for digital certificatesLinkLink2#NAME?
    61Kcesr-proof-signaturescesr-proof-signaturesLinkLink39NO INPUT
    62Gchain-of-custodychain-of-custodylegal chronological documentation or paper trail that records the sequence of custody of materialsLinkLink2#NAME?
    63Gclaimclaimassertion of the truth of something, typically one which is disputed or in doubtLinkLink1#NAME?
    64Kcomposable-event-streaming-representationcomposable-event-streaming-representationLinkLink322NO INPUT
    65Gconsensus-mechanismconsensus-mechanismLinkLink21NO INPUT
    66Gcontent-addressable-hashcontent-addressable-hashLinkLink23NO INPUT
    67Scontrol-authoritycontrol-authorityLinkLink2NO INPUT
    68Gcontrollercontrollerthe entity that has the ability to make changes to an identity, cryptocurrency or verifiable credential.LinkLink23#NAME?
    69Gcorrelationcorrelationan identifier used to indicate that external parties have observed how wallet contents are related.LinkLink1#NAME?
    70Gcredentialcredentialevidence of authority, status, rights, entitlement to privileges, or the like.LinkLink1#NAME?
    71Gcrypto-librariescrypto-librariesdeal with cryptography algorithms and have API function calls to each of the supported featuresLinkLink13#NAME?
    72Gcryptocurrencycryptocurrencya digital asset designed to work as a medium of exchange wherein individual coin ownership records are stored in a digital ledger.LinkLink1#NAME?
    73Gcryptographic-commitment-schemecryptographic-commitment-schemeLinkLink213NO INPUT
    74Gcryptographic-strengthcryptographic-strengthLinkLink18NO INPUT
    75GcryptonymcryptonymLinkLink2NO INPUT
    76Sdecentralized-identitydecentralized-identityLinkLink1NO INPUT
    77Gdecentralized-key-management-infrastructuredecentralized-key-management-infrastructureLinkLink21NO INPUT
    78Sdelegated-identifierdelegated-identifierLinkLink32NO INPUT
    79Gdigital-signaturedigital-signaturea mathematical scheme for verifying the authenticity of digital messages or documentsLinkLink118#NAME?
    80Gdirected-acyclic-graphdirected-acyclic-graphDAG, a mathematical construct, particularly graph theory, the acyclic property stems from a directed graph with no cyclesLinkLink2191#NAME?
    81Gdistributed-hash-tabledistributed-hash-tableLinkLink292NO INPUT
    82Kdual-text-binary-encoding-formatdual-text-binary-encoding-formatLinkLink3521NO INPUT
    83Kduplicitous-event-logduplicitous-event-logLinkLink361NO INPUT
    84GduplicityduplicityLinkLink31NO INPUT
    85Gelectronic-signatureelectronic-signatureLinkLink117NO INPUT
    86Gend-verifiableend-verifiableLinkLink311NO INPUT
    87GentropyentropyLinkLink211NO INPUT
    88GephemeralephemeralLinkLink21NO INPUT
    89Kfirst-seenfirst-seenLinkLink321NO INPUT
    90Ggnu-privacy-guardgnu-privacy-guardGPG is a free-software replacement for Symantec's PGP cryptographic software suiteLinkLink2#NAME?
    91KhaberyhaberyLinkLink3NO INPUT
    92Ghierarchical-asynchronous-coroutines-and-input-outputhierarchical-asynchronous-coroutines-and-input-outputLinkLink31NO INPUT
    93GidentifieridentifierSomething to uniquely identify (public) identities; pointing to something or someone else.LinkLink12#NAME?
    94Gidentityidentitya unique entity. Typically represented by a unique identifier.LinkLink2#NAME?
    95Kinception-eventinception-eventthe first event in KERI that establishes an identifier. LinkLink3171#NAME?
    96Ginceptioninceptionoperation creating an AID by binding it to the initial set of authoritative keypairs and any other associated information.LinkLink2#NAME?
    97Ginconsistencyinconsistencydifferent parts of a reason, idea or opinion do not agree, or it does not agree with something else.LinkLink11#NAME?
    98Kindexed-signatureindexed-signaturean index telling which public key is used when signing anything with a multi-key autonomic identifier.LinkLink322#NAME?
    99Ginternal-inconsistencyinternal-inconsistencyA status that exists within an entity where different parts of a reason, idea or opinion disagree.LinkLink21#NAME?
    100Ginternet-assigned-numbers-authorityinternet-assigned-numbers-authorityAlso IANA; the organization that oversees the allocation of IP addresses to internet service providers (ISPs)LinkLink3#NAME?
    101Kissuance-and-presentation-exchange-protocolissuance-and-presentation-exchange-protocolprovides a uniform mechanism for the issuance and presentation of ACDCs in a securely attributable mannerLinkLink3111#NAME?
    102Gjavascript-object-signing-and-encryptionjavascript-object-signing-and-encryptionJavascript object signing and encryption; method to securely transfer claims between partiesLinkLink13#NAME?
    103KjudgejudgeLinkLink3NO INPUT
    104Kkeri-agreement-algorithm-for-control-establishmentkeri-agreement-algorithm-for-control-establishmentLinkLink31NO INPUT
    105Kkeri-command-line-interfacekeri-command-line-interfaceLinkLink311NO INPUT
    106Kkeri-improvement-dockeri-improvement-docLinkLink371NO INPUT
    107KkeridemliakeridemliaLinkLink3NO INPUT
    108Gkey-compromisekey-compromiseLinkLink21NO INPUT
    109Kkey-event-messagekey-event-messageLinkLink381NO INPUT
    110Kkey-event-receipt-infrastructurekey-event-receipt-infrastructureLinkLink341NO INPUT
    111Kkey-event-receipt-logkey-event-receipt-logLinkLink361NO INPUT
    112Kkey-event-receiptkey-event-receiptLinkLink351NO INPUT
    113Gkey-statekey-stateLinkLink231NO INPUT
    114Gkey-transparencykey-transparencyLinkLink31NO INPUT
    115GkeykeyLinkLink2261NO INPUT
    116Glevels-of-assurancelevels-of-assuranceLoA, any time a judgement is not a binary Yes or No, you have levels of assuranceLinkLink3#NAME?
    117GlivenesslivenessLinkLink3NO INPUT
    118Gloci-of-controlloci-of-controlLinkLink33NO INPUT
    119Kmanagement-transaction-event-logmanagement-transaction-event-logLinkLink36NO INPUT
    120GmessagemessageLinkLink18NO INPUT
    121GmulticodecmulticodecLinkLink26NO INPUT
    122GnamespacenamespaceLinkLink11NO INPUT
    123Knested-cooperative-delegated-identifiersnested-cooperative-delegated-identifiersLinkLink3NO INPUT
    124Knon-establishment-eventnon-establishment-eventLinkLink37NO INPUT
    125Gnon-fungible-tokennon-fungible-tokenLinkLink2NO INPUT
    126Gnon-normativenon-normativethe purpose of non-normative theories is not to give answers, but rather to describe possibilities or predict results of certain actionsLinkLink11#NAME?
    127Snon-repudiablenon-repudiablea statement's author cannot successfully dispute its authorship or the validity of an associated contract, signature or commitment.LinkLink2#NAME?
    128Gnon-transferablenon-transferableNo capacity to transfer (the control over) a certain digital asset in an unobstructed or loss-less manner. LinkLink110#NAME?
    129Gnormativenormativea theory that tells you what you should do - what action you should takeLinkLink11#NAME?
    130Gone-way-functionsone-way-functionsa one-way function is a function that is easy to compute on every input, but hard to invert given the image of a random inputLinkLink21#NAME?
    131Gpayloadpayloadthe payload of an item in KERI is a specific cryptographic building blockLinkLink1#NAME?
    132Gpretty-good-privacypretty-good-privacyLinkLink1NO INPUT
    133Kprimary-root-of-trustprimary-root-of-trustLinkLink22NO INPUT
    134GprimitiveprimitiveLinkLink179NO INPUT
    135Gproof-of-authorityproof-of-authorityproof that somebody or something has certain rights or permissions on data LinkLink2#NAME?
    136Kproof-of-authorshipproof-of-authorshipproof that somebody or something has originally created certain contentLinkLink2#NAME?
    137Gprovenanceprovenancehistoric documentation of cryptographic verifiable key states , data consistency and cedentialsLinkLink2#NAME?
    138Gpublic-key-infrastructurepublic-key-infrastructureset of roles, policies, hardware, software and procedures needed to create, manage, distribute, use, store and revoke digital certificatesLinkLink21#NAME?
    139Kpublic-verifiable-credential-registrypublic-verifiable-credential-registrya Verifiable Data Registry that tracks the issuance/revocation state of credentialsLinkLink311#NAME?
    140Grace-conditionrace-conditionthe condition where a system's substantive behavior is dependent on the sequence or timing of external uncontrollable eventsLinkLink3#NAME?
    141Kreceipt-logreceipt-logordered record of all key event receipts for a given set of witnessesLinkLink36#NAME?
    142Greceiptreceiptevent message or reference with one or more witness signaturesLinkLink33#NAME?
    143Kregistrarregistraridentifiers that serve as backers for each transaction event log under its provenanceLinkLink3#NAME?
    144Groot-of-trustroot-of-trusttrust in end-verifiable digital signatures from asymmetric key cryptography, replaces human basis-of-trustLinkLink22#NAME?
    145Krotationrotationthe operation of revoking and replacing the set of authoritative key pairs for an AIDLinkLink2#NAME?
    146Ksecondary-root-of-trustsecondary-root-of-trusta root-of-trust that, for its secure attribution, depends on another primary root-of-trustLinkLink32#NAME?
    147Ssecure-asset-transfer-protocolsecure-asset-transfer-protocolan IETF protocol for moving assets between blockchainsLinkLink311#NAME?
    148Ssecure-attributionsecure-attributionis 'whodunit?!' in cyberspaceLinkLink3#NAME?
    149Gseedseeda pseudorandomly generated number, often expressed in representation of a series of wordsLinkLink15#NAME?
    150Sself-addressing-dataself-addressing-dataan encryption program that provides cryptographic privacy and authentication for data communicationLinkLink312#NAME?
    151Sself-certifying-identifierself-certifying-identifiercryptographically binds an identifier to a public and private key pairLinkLink32#NAME?
    152Kself-framingself-framingA textual encoding that includes type, size, and value is self-framing; and thus parseable without needing any additional delimiting characters.LinkLink327#NAME?
    153Sself-sovereign-identityself-sovereign-identityLinkLink2NO INPUT
    154Gsigned-digestsigned-digestLinkLink216NO INPUT
    155Gspanning-layerspanning-layerLinkLink3NO INPUT
    156Ktext-binary-concatenation-composabilitytext-binary-concatenation-composabilityWhen any set of self-framing concatenated primitives expressed in either the text domain or binary domain may be converted as a group to the other domain and back again without loss.LinkLink335#NAME?
    157Ktransaction-event-logtransaction-event-logThe set of transactions that determine registry state form a log called a Transaction Event Log (TEL) and is cryptographically linked to corresponding controlling KEL.LinkLink36#NAME?
    158Gtransmission-control-protocoltransmission-control-protocolTCP is one of the main protocols of the Internet protocol suiteLinkLink111#NAME?
    159Strust-domaintrust-domainA trust domain is the ecosystem of interactions that rely on a trust basis. A trust basis binds controllers, identifiers, and key-pairs.LinkLink167#NAME?
    160Gvalidatorvalidatorthe capability to determine whether or not (verified) data is valid to be used for some specific purpose(s).LinkLink21#NAME?
    161Gveracityveracitythe quest for the truthLinkLink2#NAME?
    162Gverifiable-data-structureverifiable-data-structurea verifiable data structure is a data structure that incorporates cryptographic techniques to ensure the integrity and authenticity of its contentsLinkLink38#NAME?
    163Gverifiableverifiableable to cryptographically verify a certain data structure on its consistency and its authenticityLinkLink21#NAME?
    164Gverifierverifierthe entity that (cryptogrpahically) verifies data received from peers (check structure, signatures, dates)LinkLink2#NAME?
    165Gversionversionis a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of informationLinkLink143#NAME?
    166Kvirtual-credential-transaction-event-logvirtual-credential-transaction-event-logLinkLink36NO INPUT
    167Gweb-of-trustweb-of-trustLinkLink22NO INPUT
    168Kwell-known-witnesseswell-known witnessesLinkLink3NO INPUT
    169SIIWInternet Identity Workshop twice in a year un-conference since 2005LinkLink30#NAME?
    170KKERIKey Event Receipt InfrastructureLinkLink310#NAME?
    171GreporeporepoSoftware repositoryLinkLink2#NAME?
    172KKERIpyPython implementation of KERILinkLink30#NAME?
    173GcoroutinescoroutinescoroutinesComputer programs that can be suspended and resumed at will.LinkLink1#NAME?
    174Ginput-outputI/Oinput-outputInput / outputLinkLink11#NAME?
    175GhiohiohioHierarchical asynchronous coroutines and I/O in PythonLinkLink3#NAME?
    176GSam SmithSamuel M. Smith PhD, Inventor and lead developer of KERILinkLink30#NAME?
    177GpythonProgramming LanguageLinkLink20#NAME?
    178GcloneclonecloneA copy of a system that is - and works exactly as the originalLinkLink2#NAME?
    179GbranchbranchbranchA duplicate of an object under version control for further separate modificationLinkLink2#NAME?
    180KkliklikliKERI command line interfaceLinkLink3#NAME?
    181GKuberneteskubernetes is an open source platform for managing software containersLinkLink20#NAME?
    182Gkubectlkubernetes command line interfaceLinkLink30#NAME?
    183Sverifiable-credentialverifiable credentialsverifiable-credentialthe digital variant of our daily live's credentials (ike passport, driver's license), but in a machine-verifiable wayLinkLink1#NAME?
    184GDocker containersDocker takes away repetitive, mundane configuration tasks and is used for application developmentLinkLink20#NAME?
    185sub-shellsub shellsub-shella child shell started up from - and contained in another parent shellLinkLink1#NAME?
    186Sagentagentagenta representative for an identityLinkLink2#NAME?
    187Gcloud-agentcloud agentcloud-agentis software installed on the cloud server instances for security, monitoring, and analysisLinkLink2#NAME?
    188GPy installerPython installer bundles a Python application and all its dependencies into a single packageLinkLink20#NAME?
    189GElectronA Python interface for Apache Electron command line interfaceLinkLink20#NAME?
    190Guser-interfaceU/Iuser-interfaceA user interface (UI) is the space where interactions between humans and machines occur.LinkLink1#NAME?
    191Gmultisigmulti-sigmultisigA digital signature scheme which allows a group of users to sign a single piece of digital data.LinkLink1#NAME?
    192Gidentifier-systemidentifieridentifier-systemSomething to uniquely identify (public) identities, pointing to something or someone else.LinkLink21#NAME?
    193GwalletwalletwalletA wallet is a collection of data stores, made up of a keystore, local and remote key event log database and credential database.LinkLink32#NAME?
    194Gwallet commandsThe section of kli where verifiable credentials can be listedLinkLink30#NAME?
    195KwitnesswitnesseswitnessEntity that may receive, verify, and store key events for an identifierLinkLink32#NAME?
    196KwatcherwatcherswatcherGuarantee that KERI logs are immutableLinkLink3#NAME?
    197Gkey-managementkey managementkey-managementManagement of cryptographic keys in a crypto-system.LinkLink31#NAME?
    198GinitInitialization, a command in the kliLinkLink20#NAME?
    199Ssingle-signature-identifiersingle sig identifiersingle-signature-identifierAn identifier that is controlled by a one-of-one signing keypairLinkLink22#NAME?
    200Gkeystorekey storekeystoreA keystore in KERI is the encrypted data store that hold the private keys for a collection of AIDs.LinkLink3#NAME?
    201Skey-eventkey eventskey-eventEvents happening to controlling keys of an identifier recorded in a Key Event Log (KEL).LinkLink218#NAME?
    202Sinteraction-eventinteraction eventinteraction-eventAnchors external data to the key-state as established by the most recent prior establishment eventLinkLink37#NAME?
    203Srotation-eventrotation eventrotation-eventChanges the key-state which includes a change to the set of authoritative keypairs for an AIDLinkLink37#NAME?
    204Gsigning-thresholdsigning thresholdssigning-thresholdMinimum number of valid signatures to satisfy the requirement for successful validationLinkLink31#NAME?
    205Kkey-event-logKELkey-event-logKey Event Log is the native KERI verifiable data structureLinkLink316#NAME?
    206Gverify-signatureverify signaturesverify-signatureApplying an algorithm that either accepts or rejects the message's claim to authenticity; when you can succesfully verify a signatureLinkLink217#NAME?
    207Gpeer-to-peerpeer-to-peer communicationspeer-to-peerPeers are equally privileged, equipotent participants in a networkLinkLink2#NAME?
    208Gbootstrap commandStart an empty agent or to run a single agent against one that's already been startedLinkLink20#NAME?
    209GsaltsaltssaltRandom data that is used as an additional input to a cryptographic one-way functionLinkLink32#NAME?
    210KdelegationdelegationdelegationDelegation can be defined as “the act of empowering to act for another”LinkLink3#NAME?
    211Kmulti-sig-delegationmulti-sig delegationmulti-sig-delegationdelegated identifiers under multi-signature controlLinkLink3#NAME?
    212GjsonJavaScript Object NotationLinkLink20#NAME?
    213Stransferable-identifiertransferabletransferable-identifierControl over identifier can be transferred by rotating keysLinkLink34#NAME?
    214GportsA number assigned to uniquely identify a connection endpoint and to direct data to a specific service.LinkLink20#NAME?
    215Gconfiguration-filesconfiguration fileconfiguration-filesFile used to configure the parameters and initial settings for some computer programsLinkLink1#NAME?
    216GRESTREpresentational State Transfer (REST) is a software architectural style that developers apply to web APIsLinkLink20#NAME?
    217GAPIsApplication Programming InterfaceLinkLink20#NAME?
    218GcurlCommand-line tool (curl) for transferring data using various network protocols. LinkLink20#NAME?
    219Gtransfer_Protocolpost and puttransfer_ProtocolHTTP request methods to indicate the desired action to be performed on the identified resource LinkLink2#NAME?
    220GSwaggerOpenAPI (former Swagger) is important to KERI, CESR and ACDC. It's open sourced and has many ready-usable extensions in JSON available.LinkLink30#NAME?
    221GpasscodepasscodepasscodeSecret data, typically a string of characters, usually used to confirm a user's identityLinkLink2#NAME?
    222Gkey-stretchingstretched into an encryption keykey-stretchingmake a possibly weak key, typically a password or passphrase, more secure against a brute-force attack by increasing the resourcesLinkLink3#NAME?
    223GflagMany command line programs can be set to various mode by using a flag, e.g. -v or --verbose for verbose modeLinkLink20#NAME?
    224Knon-transferable-identitifernon-transferable identifiernon-transferable-identitiferControlling keys over this identifier cannot be rotated and therefore this identifier is non-transferable to other controlLinkLink3#NAME?
    225KtoadField in KERI data structure for describing the witness thressholdLinkLink30#NAME?
    226Kthreshold-signature-schemewitness thresholdthreshold-signature-schemeThe minimum number of valid witness signatures requiredLinkLink315#NAME?
    227Kpre-rotationpre-rotationpre-rotationcommitment to next rotated key set in previous rotation or inception eventLinkLink3#NAME?
    228KprefixprefixesprefixA prefix that is composed of a basic Base-64 (URL safe) derivation code pre-pended to Base-64 encoding of a basic public digital signing keyLinkLink35#NAME?
    229Gbase64base64base64A group of binary-to-text encoding schemes that represent binary dataLinkLink3104#NAME?
    230Kqualifiedqualifiedqualifiedwhen qualified, a cryptographic primitive includes a prepended derivation codeLinkLink321#NAME?
    231Kderivation-codederivation codederivation-codeA special character that encodes the derivation process, pre-pended to the identifierLinkLink3152#NAME?
    232Gblake3Blake3 hashblake3BLAKE3 is a relatively young (2020) cryptographic hash function based on Bao and BLAKE2.LinkLink33#NAME?
    233Gdata-anchoranchor data intodata-anchorData anchors are digests of digital data, that uniquely identify this dataLinkLink32#NAME?
    234Sautonomic-identifierAIDautonomic-identifierAn identifier that is self-certifying and self-sovereignLinkLink32#NAME?
    235Gsequence numberIncremental number in a logLinkLink20#NAME?
    236GdigestdigestdigestVerifiable cryptographic commitment. It's a collision resistant hash of contentLinkLink2116#NAME?
    237Kissuance-eventissuance eventissuance-eventThe inception event of a verifiable credentialLinkLink37#NAME?
    238Kpublic-transaction-event-logpublic transaction event logpublic-transaction-event-logIs a hash linked data structure of transactions that can be used to track stateLinkLink36#NAME?
    239GRustRustprogramming languageLinkLink317#REF!
    240Kestablishment-eventestablishmentestablishment-eventAn event that establishes control authorityLinkLink37#NAME?
    241Gmemory-Mapped_Databaselmdb databasesmemory-Mapped_DatabaseLightning Memory-Mapped DatabaseLinkLink3#NAME?
    242Kindexed-signature indexed signaturesindexed-signature Used when signing anything with a multi-key autonomic identifier, a verifier knows which of the multiple public keys was usedLinkLink312#NAME?
    243GhexHexadecimal notationLinkLink20#NAME?
    244GverboseAn option available in many computer operating systems and programming languages that provides additional details as to what the computer is doingLinkLink20#NAME?
    245Kself-addressing-identifierself-addressing identifiersself-addressing-identifierAn identifier that is deterministically generated from and embedded in the content it identifies, making it and its data mutually tamper-evidentLinkLink32#NAME?
    246KbackerBackers include both regular KERI witnesses and ledger-registered backersLinkLink30#NAME?
    247Kledger-backerledger backerledger-backerA witness in KERI that is ledger-registeredLinkLink3#NAME?
    248Kwitnesswitness backerwitnessA native KERI witness whose control authority is established in a KELLinkLink32#NAME?
    249Kverifiable-legal-entity-identifiervLEIverifiable-legal-entity-identifierDigital verifiable credentials issued by (delegates) of GLEIF to prove that information about a legel entity is verifiably authenticLinkLink32#NAME?
    250Sssi-systemSSI systemssi-systemSSI Infrastructure consisting of the technological components that are deployed all over the worldLinkLink11#NAME?
    251SIndy networkHyperledger Indy network is an SSI system based on a private blockchainLinkLink30#NAME?
    252Ktransfer-off-ledgertransfer off a ledgertransfer-off-ledgerThe act of transferring control authority over an identifier from a ledger (or blockchain) to the native verifiable KERI data structure KELLinkLink31#NAME?
    253GEthereumEthereum is the community-run technology powering the cryptocurrency ether (ETH) and thousands of decentralized applicationsLinkLink30#NAME?
    254GAriesHyperledger Aries provides an interoperable tool kit for creating, transmitting and storing verifiable digital credentialsLinkLink30#NAME?
    255Gservice-endpointservice endpointsservice-endpointA web service endpoint which is a URL at which clients of specific service can get access to the service.LinkLink2#NAME?
    256Guniform-resource-locatorURLsuniform-resource-locatorA reference to a web resource that specifies its location on a computer network and a mechanism for retrieving itLinkLink1#NAME?
    257Gip-addressip-addressip-addressA numerical label such as '192.0.2.1' that is connected to a computer network that uses the Internet Protocol for communicationLinkLink19#NAME?
    258Gtcp-endpointTCP endpointtcp-endpointThis is a service endpoint of the web transmission control protocolLinkLink2#NAME?
    259KinquisitorinquisitorinquisitorSomeone (in a validating role) that launches an inquiry at some KERI witnessLinkLink3#NAME?
    260Greplay-attackreplay-attackintercept and then fraudulently delays or resend a message to misdirect the receiver into doing what the attacker wantsLinkLink30#NAME?
    261GXBRLXBRLextensible business reporting language, standard for digital business reportingLinkLink1#NAME?
    262Gextensible-business-reporting-languageextensible-business-reporting-languageXBRL, standard for digital business reportingLinkLink1#NAME?
    263Klocked-statelocked statelocked-statedefault state of an encrypted KERI data store with a passcodeLinkLink33#NAME?
    264Gonepasspassword manager LinkLink30#NAME?
    265Kout-of-band-introductiondata OOBIsout-of-band-introductiondata out-of-band introductionsLinkLink31#NAME?
    266Kout-of-band-introductioncredential schema OOBIsout-of-band-introductioncredential schema out-of-band introductionsLinkLink31#NAME?
    267Kkeepkeepkeepis KERI's and ACDC's depreciated crypto wallet, a task orientated application for managing AIDs in ecosystems, e.g. the vLEI EcosystemLinkLink3#NAME?
    268Gzero-trustzero trustzero-trusta Zero Trust approach trusts no oneLinkLink23#NAME?
    269Kcredential registriesIs a functional component that has the capability to register and advertise the information about Credential Types that their respective Governing Parties have decided to discloseLinkLink20#NAME?
    270Krevocation-eventrevocation eventsrevocation-eventAn event that revokes control authority over an identifierLinkLink27#NAME?
    271Gtwo-factor authIs an electronic authentication method in which a user is granted access to a website or application only after successfully presenting two or more pieces of evidence LinkLink10#NAME?
    272Kescrow-stateescrow statesescrow-stateThe current state of all the temporary storage locations (what events are waiting for what other information) that KERI protocol needs to keep track of, due to its fully asynchronous nature.LinkLink33#NAME?
    273Kserver-sent-eventserver-sent eventsserver-sent-eventMailbox notifications, a streaming service for the agent U/I, to get notifications from the KERI system itselfLinkLink37#NAME?
    274Gsealsealcryptographic proof in a secondary root-of-trust that is anchored in a primary-root-of-trustLinkLink216#NAME?
    275Sauthoritativeauthoritative(control over) an identifier is 'authoritative' because it can be considered accurate, renowned, honourable and / or respectedLinkLink31#NAME?
    276KQVIQVIqualified vlei issuer, contracting party qualified by GLEIF LinkLink21#NAME?
    277Kqualified-vlei-issuerqualified-vlei-issuerQVI, contracting party qualified by GLEIF LinkLink21#NAME?
    278Kghost-credentialghost-credentiala valid credential within in a 90 days grace periodLinkLink21#NAME?
    279Kredundant-credentialredundant-credentialmultiple -, independently valid credentials issued by the same issuerLinkLink21#NAME?
    280Kengagement-context-roleengagement-context-roleA person that represents the Legal Entity in a context role and is issued an ECR vLEI Credential.LinkLink21#NAME?
    281KECRECRA person that represents the Legal Entity in a context role and is issued an ECR vLEI Credential.LinkLink21#NAME?
    282Kgleif-authorized-representativegleif authorized representativeA GLEIF representative authorized to perform verification needed to issue the QVI vLEI Credential.LinkLink21#NAME?
    283KGARGARA GLEIF representative authorized to perform verification needed to issue the QVI vLEI Credential.LinkLink231#NAME?
    284GGLEIFGLEIFGlobal Legal Entity Identifier FoundationLinkLink11#NAME?
    285KDARDARA representative of a Legal Entity authorized by the Legal Entity to act officially on behalf of the Legal Entity.LinkLink2291#NAME?
    286Kdesignated-authorized-representativedesignated-authorized-representativeA representative of a Legal Entity authorized by the Legal Entity to act officially on behalf of the Legal Entity.LinkLink21#NAME?
    287KAVRAVRauthorized vlei representativeLinkLink21#NAME?
    288Kauthorized-vlei-representativeauthorized-vlei-representativea representative of a Legal Entity that's authorized to request issuance and revocation of credentialsLinkLink21#NAME?
    289GLEILEILegal Entity InstituteLinkLink21#NAME?
    290Glegal-entitylegal-entityunique parties that are legally or financially responsible for financial transactions or have the legal right to enter into legal contractsLinkLink21#NAME?
    291KOOROORofficial organizational role, a person holding a vLEI credential person and representing the Legal EntityLinkLink211#NAME?
    292Kofficial-organizational-roleofficial-organizational-roleOOR, a person holding a vLEI credential person and representing the Legal EntityLinkLink21#NAME?
    293Kqvi-authorized-representativeqvi-authorized-representativeQAR, conducts QVI operations with GLEIF and Legal EntitiesLinkLink21#NAME?
    294KQARQARqvi authorized representative, conducts QVI operations with GLEIF and Legal EntitiesLinkLink21#NAME?
    295Kvlei-ecosystem-governance-frameworkvlei-ecosystem-governance-frameworka document that defines the information security, privacy, availability, confidentiality and processing integrity policies that applyLinkLink21#NAME?
    296Ksolicited-issuancesolicited-issuanceissuance of Legal Entity vLEI / OOR / ECR Credentials upon receipt by the QARLinkLink21#NAME?
    297Kunsolicited-issuanceunsolicited-issuanceissuance of a Legal Entity vLEI Credential upon notice by a QAR to its AVR(s)LinkLink21#NAME?
    298Ggovernance-frameworkgovernance-frameworka set of rules how to apply technologyLinkLink21#NAME?
    299KGLEISGLEISGlobal Legal Entity Identifier SystemLinkLink21#NAME?
    300Kvlei-credentialvlei-credentialverifiable Legal Entity IdentifierLinkLink21#NAME?
    301Klegal-entity-engagement-context-role-vlei-credential-governance-frameworklegal-entity-engagement-context-role-vlei-credential-governance-frameworkLinkLink21NO INPUT
    302Kvlei-role-credentialvlei-role-credentialLinkLink21NO INPUT
    303Klegal-entity-official-organizational-role-vlei-credential-governance-frameworklegal-entity-official-organizational-role-vlei-credential-governance-frameworkLinkLink21NO INPUT
    304Klegal-entity-vlei-credential-governance-frameworklegal-entity-vlei-credential-governance-frameworkLinkLink21NO INPUT
    305Kqualified-vlei-issuer-vlei-credential-governance-frameworkqualified-vlei-issuer-vlei-credential-governance-frameworkLinkLink21NO INPUT
    306SDIDDIDDecentralized IdentifierLinkLink21#NAME?
    307Sdecentralized-identifierdecentralized-identifierLinkLink12NO INPUT
    308Kpartial-pre-rotationpartial-pre-rotationchange of control but partially keep some keys unexposed while exposing others as needed.LinkLink31#NAME?
    309Kpartial-rotationpartial-rotationchange of control but partially keep some keys unexposed while exposing others as needed.LinkLink31#NAME?
    310Kcustodial-rotationcustodial-rotationchange of control that is split between two key setsLinkLink31#NAME?
    311Kreserve-rotationreserve-rotationpreparatory key pairs being held in reserve and not exposedLinkLink31#NAME?
    312Kcustodial-agentcustodial-agenta custodian who has been granted signing authority and usually also being the host of the running agent software.LinkLink31#NAME?
    313Ssigning-authoritysigning-authoritythe authority to sign on behalf of the controller of an identifierLinkLink31#NAME?
    314Srotation-authorityrotation-authoritythe (exclusive) right to change control over an identifierLinkLink31#NAME?
    315Gtrans-contextual-valuetrans-contextual-valuevalue that is transferrable between contextsLinkLink1561#NAME?
    316Gsource-of-truthsource-of-trutha trusted data source that gives a complete picture of the truth about a data object.LinkLink11#NAME?
    317Gauthorizationauthorizationspecifying access rights or privileges to resourcesLinkLink1111#NAME?
    318Gapplication-programming-interfaceapplication-programming-interface a way for two or more computer programs to communicate with each other.LinkLink111#NAME?
    319GAPIAPIan application Programming Interface, a way for two or more computer programs to communicate with each other.LinkLink1511#NAME?
    320Gkey-pairkey-paira public key and its corresponding private key.LinkLink11411#NAME?
    321Gownerownera role that exercizes its legal, rightful or natural title to control something.LinkLink11111#NAME?
    322Gownershipownershipa relationship between two, one of these (the owner) is entitled to enjoy, dispose of, and control the other sovereignly. LinkLink11111#NAME?
    323Gself-sovereigntyself-sovereigntythe characteristic of every party that it is autonomous in managing and operating its own knowledgeLinkLink1111#NAME?
    324Kpresentation-exchangepresentation-exchangean exchange that provides disclosure of one or more ACDCs between a Discloser and a Disclosee.LinkLink31#NAME?
    325Gdiscloserdiscloseran ACDC in a disclosure is disclosed by the Discloser.LinkLink11#NAME?
    326Gdiscloseediscloseean ACDC in a disclosure is disclosed to the Disclosee.LinkLink11#NAME?
    327Gissuerissueran ACDC is issued by the Issuer. The Issuer identifier (AID) appears in the top level of the ACDC.LinkLink11#NAME?
    328Gissueeissueean ACDC is optionally issued to the Issuee.LinkLink11#NAME?
    329Kissuance-exchangeissuance-exchangea special case of a presentation exchange where the Discloser is the Issuer of the origin (Primary) ACDCLinkLink31#NAME?
    330Kchain-link-confidentialitychain-link-confidentialitychains together a sequence of Disclosees. Each Disclosee in the sequence in turn is the Discloser to the next Disclosee.LinkLink31#NAME?
    331Kgraduated-disclosuregraduated-disclosuredisclosure performed by a presentation exchange that has cross-variant Issuer commitment verifiability as an essential property. LinkLink31#NAME?
    332Ktop-level-sectiontop-level-sectionare the fields of an ACDC compact variant.LinkLink211#NAME?
    333Kcompact-variantcompact-variantan Issuer commitment via a signature to any variant of ACDCLinkLink313#NAME?
    334Kcontractually-protected-disclosurecontractually-protected-disclosurethe most elaborate form of disclosure by an IPEX. Contractually protected disclosure includes both chain-link confidential and contingent disclosure.LinkLink31#NAME?
    335Gricardian-contractricardian-contracta method of recording a document as a contract at law, and linking it securely to other systemsLinkLink212#NAME?
    336Kcontingent-disclosurecontingent-disclosureLinkLink31NO INPUT
    337Geclipse-attackeclipse-attackan eclipse attack is a P2P network-based attack, an attacker tries to isolate a node from the rest of the networkLinkLink211#NAME?
    338Kpromiscuous-modepromiscuous-modethe indiscriminate mode a watcher (network) runs in.LinkLink33#NAME?
    339Gprotocolprotocola code of correct conduct, in our case specifically communication protocols, cryptographic protocols, and decentralized network protocolsLinkLink11111111#NAME?
    340Gpseudo-random-numberpseudo-random-numbera value that is statistically random, but it is (repeatedly) derived from a known starting pointLinkLink1#NAME?
    341Gvalidatevalidatea decision to accept an outcomeLinkLink1#NAME?
    342Gverifyverifythe capability to (cryptogrpahically) verify data received from peers (check structure, signatures, dates)LinkLink1#NAME?
    343Spersistent-identifierpersistent-identifierControl over this type of long-living identifier can be transferred by rotating keys.LinkLink2#NAME?
    344Kinterleaved-serializationsinterleaved-serializationsSerializations of different types interleaved in an overarching formatLinkLink2#NAME?
    345Scollective-signaturecollective-signatureMultisignature scheme for a single resulting pubic keyLinkLink2#NAME?
    346Ggraph-fragmentgraph-fragmentan ACDC is a verifiable data structure and part of a graph consisting of a node fragment and edge fragmentsLinkLink2#NAME?
    347Gpersistent-datastructurepersistent-datastructurean append only verifiable data structure. Hence, making them immutable means distributable and concurrency-friendly. What we sign may not change. LinkLink2#NAME?
    348Gcollisioncollisiona circumstance where two or more identifiers in a given namespace or a given scope cannot be unambiguously resolvedLinkLink1#NAME?
    349Gschema-namespace-registryschema-namespace-registrya centrally managed schema registry where corporations or individuals reserve schemas within a specific namespace in order to have an interoperable schema that is labeled with a corporation-specific or individual-specific namespaceLinkLink2#NAME?
    350Gschema-registryschema-registryregistry for credential schemas based on namespacesLinkLink2#NAME?
    351Gdomain-namedomain-nameis a string that identifies a realm of administrative autonomy on the internetLinkLink1#NAME?
    352Gdomaindomaingeneral term for (an identifier of) an autonomous space LinkLink1#NAME?
    353Gregistryregistryan official digital record book, usually refering to one means to a specific instance, within a multi-tenant registry.LinkLink1#NAME?
    354GcomposabilitycomposabilityWhen any set of self-framing concatenated primitives expressed in either the text domain or binary domain may be converted as a group to the other domain and back again without loss.LinkLink2#NAME?
    356GinteroperableinteroperableInteroperability is a characteristic of a product or system to work with other products or systems.LinkLink1#NAME?
    357GinteroperabilityinteroperabilityInteroperability is a characteristic of a product or system to work with other products or systems.LinkLink1#NAME?
    358Gcryptographic-primitivecryptographic-primitiveWell-established, low-level cryptographic algorithm that is frequently used to build cryptographic protocols for computer security systems; e.g. one-way hash functions and encryption functions.LinkLink1#NAME?
    359Gconcatenationconcatenationthe operation of joining character strings end-to-end. E.g. 'snow' and 'ball' becomes 'snowball'LinkLink1#NAME?
    360Gmultiplexingmultiplexingis a method by which multiple analog or digital signals are combined into one signal over a shared medium. The aim is to share a scarce resource.LinkLink2#NAME?
    361Gpipeliningpipelininga set of data processing elements connected in series, where the output of one element is the input of the next one.LinkLink2#NAME?
    362Kgroup-framing-codegroup-framing-codecodes that can be specified to support groups of primitives. Grouping enables pipelining.LinkLink3#NAME?
    363Khierarchical-compositionhierarchical-compositionencoding protocol that is composable in a hierarchy and enables pipelining of complex streams in either text or compact binaryLinkLink3#NAME?
    364Kframe-codeframe-codecodes that can be specified to support groups of primitives. Grouping enables pipelining.LinkLink3#NAME?
    365Kcount-codecount-codecodes that can be specified to support groups of primitives. Grouping enables pipelining.LinkLink3#NAME?
    366Kgroup-codegroup-codecodes that can be specified to support groups of primitives. Grouping enables pipelining.LinkLink3#NAME?
    367Stransferable transferable capable of loss-less transfer of control over identifiers, private keys, etc.LinkLink1#NAME?
    368Gpost-padpost-padthe action and / or result of extending a string with trailing pad characters to align to a certain length in bits or bytes.LinkLink3#NAME?
    369Gpre-padpre-padthe action and / or result of prepending a string with leading pad characters to align to a certain length in bits or bytes.LinkLink3#NAME?
    370Knaive-conversionnaive-conversiona text to binary conversion or vice versa that doesn't anticipate on either composability and / or on the concatenation capability of the result of such an operation.LinkLink3#NAME?
    371Gpadpadis a character used to fill empty spaceLinkLink2#NAME?
    372Glead-byteslead-bytespre-conversion added characters in a pre-padded way, used to fill empty spaceLinkLink2#NAME?
    373Gcode-tablecode-tablea code table is the Internet's most comprehensive yet simple resource for browsing and searching for various codes.LinkLink1#NAME?
    374Kcode-table-selectorcode-table-selectorthe first character in the text code of CESR stream that determines which code table to use.LinkLink3#NAME?
    375Ksallysallya vLEI Audit Reporting Agent that receives presentations of credentials and notices of revocation.LinkLink3#NAME?
    376Ksignifysignifyis a web client (key) event signing - and key pair creation app that minimizes the use of KERI on the client.LinkLink3#NAME?
    377Gescrow escrow a third party temporarily holds money or property until a particular condition has been met. The verb refers to handling out of order events in KERI.LinkLink1#NAME?
    378Kkeri-suite-search-enginekeri-suite-search-enginethe Docusaurus self-education site of Web-of-Trust GitHub repo with Typesense search facilitiesLinkLink1#NAME?
    379Kfield-mapfield-mapa traditional key:value pair renamed to avoid confusing with the cryptographic use of the term 'key'LinkLink3
    380KCLCCLCchain-link confidential, a disclosure mechnism of credentialsLinkLink3#NAME?
    381Kcold-start-stream-parsingcold-start-stream-parsingAfter a reboot a stream processor looks for framing information to know how to parse groups of elements in the stream.LinkLink3#NAME?
    382Kfully-compactfully-compactthe intermediate variant of a ACDC credential -> signed and its proofs anchored in key event logs.LinkLink3#NAME?
    383Kmost-compactmost-compactthe most brief least disclosing version of an ACDC based credential.LinkLink3#NAME?
    384Kfully-expandedfully-expandedthe most extensive most disclosing and most user-friendly version of an ACDC based credential.LinkLink3#NAME?
    385GRUNRUNread, update, nullify -> the new peer-to-peer end-verifiable monotonic update policyLinkLink1#NAME?
    386GCRUDCRUDcreate, read, update, delete -> the traditional client-server database update policyLinkLink1#NAME?
    387Gauthentic-webauthentic-weba mental model in which the whole internet is considered as a one giant verifiable data structureLinkLink1#NAME?
    388Krun-off-the-crudrun-off-the-cruda decentralised controlling peer does not create records in the traditional sense of a server LinkLink3#NAME?
    389Gintegrityintegritythe information is whole, complete, sound, in good order and unimpaired (not necessarily correct)LinkLink1#NAME?
    390Gverified-integrityverified-integritya proof of unambiguous assessment whether the information is/continues to be whole, sound and unimpairedLinkLink2#NAME?
    391Gcomplementary-integrity-verificationcomplementary-integrity-verificationa mechanism that can verify integrity independent of needing access to a previous instance or reference version of the information for comparisonLinkLink3#NAME?
    392Kprior-next-thresholdprior-next-thresholdLinkLink3NO INPUT
    393Kcurrent-signing-thresholdcurrent-signing-thresholdLinkLink2NO INPUT
    394Kdual-indexed-codesdual-indexed-codesa context-specific coding scheme, for the common use case of thresholded multi-signature schemes in CESRLinkLink3#NAME?
    395KkeripykeripyPython implementation of KERILinkLink2#NAME?
    396Kkeri-oxkeri-oxRUST implementation of KERILinkLink2#NAME?
    397Spiipiipersonally identifiable informationLinkLink1#NAME?
    398Scontextual-linkabilitycontextual-linkabilitywhen data capture points provide enough context to be able to use statistical correlation to link existing data sets describing a person to that same person's disclosed attributesLinkLink3#NAME?
    399Kblinded-revocation-registryblinded-revocation-registrya transaction event log hidden or blinded; the only way a verifier can observe the state is when the AID controller discloses it at presentation timeLinkLink3#NAME?
    400Grainbow-table-attackrainbow-table-attacka password cracking method that uses a special table (a “rainbow table”) to crack the password hashes in a databaseLinkLink1#NAME?
    401KSKWASKWASimple KERI for Web AuthLinkLink3#NAME?
    402Ksimple-keri-for-web-authsimple-keri-for-web-authA KERI implementation that sacrifices performance or other non-security feature for usability.LinkLink3#NAME?
    403KKRAMKRAMKERI Request Authentication Method for replay protectionLinkLink3#NAME?
    404Kkeri-request-authentication-methodkeri-request-authentication-methodKERI Request Authentication Method for replay protectionLinkLink3#NAME?
    405Kjurorjurorperforms duplicity detection on events and event receiptsLinkLink3
    406Kjuryjuryset of entities or components acting as jurorsLinkLink3
    407Kopcodeopcodeprovide stream processing instructions that are more general and flexibleLinkLink3
    408Kversion-codeversion-codeLinkLink3
    409Kstrip-parameterstrip-parametertells us what part of the CESR stream will be parsed by which codeLinkLink3
    410Kparsideparsideparser library for Composable Event Streaming Representation (CESR)LinkLink3
    411Gversion-stringversion-stringLinkLink3
    412Kcesridecesridecryptographic primitives for use with Composable Event Streaming Representation (CESR)LinkLink3
    413Ksniffersnifferthe sniffer is part of Parside and detects if the CESR stream contains CESR binary, CESR Text, JSON, CBOR, MGPKLinkLink3
    414GPRNGPRNGPseudorandom Number GeneratorLinkLink2
    415GCSPRNGCSPRNGCryptographically Secure Pseudorandom Number GeneratorLinkLink2
    416FFIFFIForeign Function Interface LinkLink2
    417Gforeign-function-interfaceforeign-function-interfaceIs a mechanism by which a program written in one programming language that can call routines or make use of services written or compiled in another oneLinkLink2
    418GHDKHDKhierchical deterministic keysLinkLink1
    419GHSMHSMhardware security moduleLinkLink1
    420Kpartial-disclosurepartial-disclosurean ACDC attribute section that can disclosed (a nested branch in a tree), you can either decide to disclose or notLinkLink3
    421Kselective-disclosureselective-disclosureselective disclosure is a list of field maps, that you can choose to blind and publish, however all are disclosuredLinkLink3
    422Kfull-disclosurefull-disclosurea disclosure of data in all its detailsLinkLink1
    423Kthreshold-of-accountable-duplicitythreshold-of-accountable-duplicityController provides itself with any degree of protection by giving a minimum number of confirming witnesses sufficient given a certain accountability.LinkLink3
    424KTOADTOADthreshold of accountable duplicity; provided by controller concerning witnessesLinkLink3
    425KkeridekerideRust library for Key Event Receipt InfrastructureLinkLink3
    426KKERIAKERIAKERI agent in the cloudLinkLink3
    427KSignifideSignifidesigning at the edgeLinkLink3
    428KkiwikiwiUI tooling for working with KERILinkLink3
    429Ghardware-security-modulehardware-security-modulea physical computing device that safeguards and manages secrets (most importantly digital keys)LinkLink1
    430Ghierchical-deterministic-keyshierchical-deterministic-keysa type of deterministic bitcoin wallet derived from a known seed, that allow for the creation of child keys from the parent keyLinkLink1
    431KSKRAPSKRAPSignify/KERIA Request Authentication ProtocolLinkLink3
    432Ksignify-keria-request-authentication-protocolsignify-keria-request-authentication-protocolThe KERIA service will expose 3 separate HTTP endpoints on 3 separate network interfacesLinkLink3
    433
    434KprefixingprefixingprefixingLinkLink3
    435KpathingpathingpathingLinkLink3
    436KparsingparsingparsingLinkLink3
    437Kbespoke-credentialbespoke-credentialIt's a custom issuance of the presentation of other ACDCs, it serves as an on-the-fly contract with the issuee; it's a self-referencing and self-contained contractLinkLink3
    438KKERIMaskKERIMaskLinkLink3
    439KKERISSEKERISSEKERI Suite Search EngineLinkLink1
    440Kkeri-suitekeri-suiteis the set of inter-related developments (KERI, ACDC, OOBI, CESR, IPEX, etc) under the Web-of -Trust user on GithubLinkLink1
    441KndigsndigsDigests of keys, used to prove control over keys or to hide keysLink
    442Kverferverfera primitive that represents a public keyLink
    443Kdigerdigera primitive that represents a digestLink
    444Kcigarcigaran unindexed signature Link
    445Ksigersigeran indexed signature used within KERI when there are multiple current keys to an identifierLink
    446Ksignersignera primitive that represents a private keyLink
    447Ksaltersaltera primitive that represents a seed that has the ability to generate new SignersLink
    448WWWWWWLink
    449WWWWWWLink
    450WWWWWWLink
    451WWWWWWLink
    - + \ No newline at end of file diff --git a/docs/Resources/Keri.one labeled/index.html b/docs/Resources/Keri.one labeled/index.html index 1ad51909385..092ee37ccdf 100644 --- a/docs/Resources/Keri.one labeled/index.html +++ b/docs/Resources/Keri.one labeled/index.html @@ -7,12 +7,12 @@ - +

    Keri.one labeled

    Primary Resources

    • Title: KERI White Paper

      • Description: The foundational paper on the Key Event Receipt Infrastructure.
      • Target group: General Public, Researchers
      • Level: 1
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Keri White Paper Slide Deck

      • Description: Slide deck providing a visual and concise overview of KERI.
      • Target Group: General Audience, Developers
      • Level: 2
      • Type: Slide Presentation
      • Category: KERI
    • Title: Secure Privacy Authenticity Confidentiality (SPAC)

      • Description: Detailed paper on the SPAC concept as it applies to KERI.
      • Target Group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: SPAC Presentation

      • Description: A slide deck offering an overview of the SPAC concept.
      • Target Group: General Audience, Developers
      • Level: 2
      • Type: Slide Presentation
      • Category: KERI, SAID

    Developer Resources

    • Title: Community

      • Description: Engage with an active community of developers around KERI.
      • Target group: Developers
      • Level: 2
      • Type: Community
      • Category: KERI
    • Title: Open Source Implementation

      • Description: Access open-source implementations for KERI.
      • Target group: Developers
      • Level: 3
      • Type: Implementation
      • Category: KERI

    More KERI Resources

    • Title: KERI Q&A Slides IIW 2021 Spring
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: Other Related White Papers
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: Other Related Slide Decks
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: How KERI Tackles the Problem of Trust
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: DID Method Discussion for KERI
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: On KERI: A Way Not to Reveal More Personal Info Than You Need To
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: Thinking of DID? KERI On
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: KERI MOOC (Massive Online Opensource Course) Github Repo
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: KERIdemilia DHT for Discovery
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID
    • Title: SSI can do just fine, blockchain-less
      • Description: Slide deck for KERI Q&A session held in spring 2021.
      • Target group: General Public, Developers, Researchers
      • Level: 2
      • Type: Slides
      • Category: KERI, SAID

    Podcasts

    • Title: The Architecture of Identity Systems
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: The Architecture of Identity Systems
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: GLEIF vLEI KERI Implementation
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Presentation to HyperLedger Identity WG
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Nonconformist Keynote Address
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Slides from Nonconformist Keynote
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Dynamic Data Economy Webinar
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Slides from DDE Presentation
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: KERI: A More Performant Ledger for Trust Identities
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Quantum Secure DIDs (RWOT X)
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Decentralized Identity as a Meta-platform: How Cooperation Beats Aggregation (RWOT IX)
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Meta-Platforms and Cooperative Network-of-Networks Effects
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: A DID for Everything (RWOT VII)
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Decentralized Autonomic Data (DAD) and the three R’s of Key Management (RWOT VI)
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Identity System Essentials
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Open Reputation Framework
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID
    • Title: Open Reputation
      • Description: An in-depth look into the architecture of identity systems.
      • Target group: Researchers, Developers
      • Level: 3
      • Type: White Paper
      • Category: KERI, SAID

    Adoption Use Cases

    • Title: GLEIF vLEI in Production
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID

    MORE Adoption Use Cases

    • Title: GLEIF Ecosystem Governance Framework for vLEI
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: The Birth of the vLEI
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: Digital Identity: It’s All About Authenticity
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: GLEIF Unveils Issuance and Infrastructure Models for Verifiable LEI
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: GLEIF’s Digital Strategy for the LEI
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: GLEIF vLEI schema and credentials
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: Annual Report vLEI Signing Demo
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: Annual Report vLEI Signing Press Release
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: vLEIs for Cross-Border Payments
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: GLEIF Newsroom
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: Digital Identity: It’s All About Authenticity
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    • Title: Simplifying legal entity identification in the digital age
      • Description: An example of GLEIF vLEI implemented in a production environment.
      • Target group: Developers, Researchers
      • Level: 3
      • Type: Use Case
      • Category: GLEIF, KERI, SAID
    - + \ No newline at end of file diff --git a/docs/Resources/intro/index.html b/docs/Resources/intro/index.html index e548cc38bce..19cf1acdd3a 100644 --- a/docs/Resources/intro/index.html +++ b/docs/Resources/intro/index.html @@ -7,13 +7,13 @@ - +

    Delving into the WOT Knowledge Repository

    Welcome to our comprehensive knowledge base – a dynamic compendium of whitepapers, slide presentations, video content, HackMD files, and much more. This repository isn't just a store of information; it's a meticulously curated and enhanced platform designed to augment your understanding of WOT and serve as your springboard for deep exploration and learning.

    Our strategic decision to house copies of these resources, rather than merely linking or directing to them, is guided by several critical objectives:

    1. Adaptability – Our user interface is powered by React, often necessitating resources in plain markdown or PDF formats. By hosting these resources ourselves, we ensure their full compatibility with our system.

    2. Searchability – Our integration with Typesense provides a seamless and efficient search experience, enabling you to navigate effortlessly through our expansive repository.

    3. Enhanced Comprehension – For contextual understanding, we dynamically add hyperlinks and hover texts to terms within the text, enabling immediate inline explanations and offering additional information at your fingertips.

    4. Chatbot Integration – The information in these documents also enhances the capabilities of our sophisticated chatbot (Powered By Chatbase.co), improving its ability to assist and engage with users.

    Dive into the directory structure presented in the left menu to explore our vast collection of resources. Among these, you will discover select material from keri.one, maintained by Samuel Smith – the founding father of KERI.

    While keri.one is an invaluable resource in its own right, we've taken the added step of carefully cataloging and integrating these resources into our platform for your convenience. To make these resources even more accessible, we've

    • meticulously labeled them with metadata,
    • assigned user levels, and
    • organized them into intuitive categories. This comprehensive enhancement allows for a more personalized and seamless learning experience, enabling you to delve into the depths of KERI right here on our platform.

    Stay, explore, and continue your journey of discovery with us. We're committed to continually refining KERISSE to enhance your learning experience.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/IdentifierTheory-ssmith-uidt/index.html b/docs/Resources/mdfiles/IdentifierTheory-ssmith-uidt/index.html index f9998183a1c..553313b0fb8 100644 --- a/docs/Resources/mdfiles/IdentifierTheory-ssmith-uidt/index.html +++ b/docs/Resources/mdfiles/IdentifierTheory-ssmith-uidt/index.html @@ -7,7 +7,7 @@ - +
    @@ -21,6 +21,6 @@ Financial services " Legal entity identifier (LEI) " Part 1: Assignment," ISO, 2020/08/01 https://www.iso.org/standard/78829.html

    [33] "ISO 17442-2:2020 Financial services " Legal entity identifier (LEI) " Part 2: Application in digital certificates," ISO, 2020/08/01 https://www.iso.org/standard/79917.html

    [34] Kaminsky, M. and Banks, E., "SFS-HTTP: Securing the Web with Self-Certifying URLs," MIT, 1999 https://pdos.csail.mit.edu/~kaminsky/sfs-http.ps

    [35] "KERI Project DIF," Decentralized Identity Foundation, https://github.com/decentralized-identity/keri

    [36] Mazieres, D. and Kaashoek, M. F., "Escaping the Evils of Centralized Control with self-certifying pathnames," MIT Laboratory for Computer Science, 2000 http://www.sigops.org/ew-history/1998/papers/mazieres.ps

    [37] Mazieres, D., "Self-certifying File System," MIT Ph.D. Dissertation, 2000/06/01 https://pdos.csail.mit.edu/~ericp/doc/sfs-thesis.ps

    [38] Nottingham, M., "Well-Known Uniform Resource Identifiers (URIs)," IETF 8615, 2019/05/01 https://tools.ietf.org/html/rfc8615

    [39] "Remote ATtestation proceduresS (RATS) WG," IETF, https://datatracker.ietf.org/wg/rats/about/

    [40] Serrano, N., Hadan, H. and Camp, L. J., "A complete study of PKI (PKI's Known Incidents)," Available at SSRN 3425554, 2019 https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3425554

    [41] Shae, M., Smith, S. M. and Stocker, C., "Decentralized Identity as a Meta-platform: How Cooperation Beats Aggregation," Rebooting the Web of Trust, vol. RWOT 9, 2019/11/19 https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/CooperationBeatsAggregation.pdf

    [42] Smith, S. M., "Kery Event Receipt Infrastructure (KERI) Design," Github, 2020/04/22 https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/KERI_WP_2.x.web.pdf

    [43] Smith, S. M., "Open Reputation Framework," vol. Version 1.2, 2015/05/13 https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/open-reputation-low-level-whitepaper.pdf

    [44] Smith, S. M. and Khovratovich, D., "Identity System Essentials," 2016/03/29 https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/Identity-System-Essentials.pdf

    [45] Smith, S. M., "Meta-Platforms and Cooperative Network-of-Networks Effects: Why Decentralized Platforms Will Eat Centralized Platforms," SelfRule, 2018/04/25 https://medium.com/selfrule/meta-platforms-and-cooperative-network-of-networks-effects-6e61eb15c586

    [46] Smith, S. M., "Decentralized Autonomic Data (DAD) and the three R's of Key Management," Rebooting the Web of Trust RWOT 6, Spring 2018 https://github.com/SmithSamuelM/Papers/blob/master/whitepapers/DecentralizedAutonomicData.pdf

    [47] "Sovrin: A Protocol and Token for Self- Sovereign Identity and Decentralized Trust," Sovrin.org, 2018/01/01 https://sovrin.org/wp-content/uploads/2018/03/Sovrin-Protocol-and-Token-White-Paper.pdf

    [48] Stevens, G., "DNS Poisoning Attacks: A Guide for Website Admins," HashedOut, 2020/01/21 https://www.thesslstore.com/blog/dns-poisoning-attacks-a-guide-for-website-admins/

    [49] Stocker, C., Smith, S. and Caballero, J., "Quantum Secure DIDs," RWOT10, 2020/07/09 https://github.com/WebOfTrustInfo/rwot10-buenosaires/blob/master/final-documents/quantum-secure-dids.pdf

    [50] Szabo, N., "Secure Property Titles with Owner Authority," 1998 https://nakamotoinstitute.org/secure-property-titles/

    [51] Szabo, N., "Advances in Distributed Security," 2003 https://nakamotoinstitute.org/advances-in-distributed-security/

    [52] TCG, "Implicit Identity Based Device Attestation," Trusted Computing Group, vol. Version 1.0, 2018/03/05 https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Arch-Implicit-Identity-Based-Device-Attestation-v1-rev93.pdf

    [53] "Transport Layer Security," Wikipedia, https://en.wikipedia.org/wiki/Transport_Layer_Security

    [54] "Uniform Resource Identifier (URI): Generic Syntax," IETF RFC-3986, 2005/01/01 https://tools.ietf.org/html/rfc3986

    [55] "Verifiable Credentials Data Model," W3C Candidate Recommendation, https://w3c.github.io/vc-data-model/

    [56] "Verification Messaging: GS1 Lightweight Messaging Standard for Verification of Product Identifiers," GS1, https://www.gs1.org/verification-messaging

    [57] W3C, "Decentralized Identifiers (DIDs)," W3C Draft Community Group Report, https://www.w3.org/TR/did-core/

    [58] "Well Known DID Configuration: DIF Working Group Approved Draft," DIF, https://identity.foundation/.well-known/resources/did-configuration/

    [59] Windley, P. J., "The Architecture of Identity Systems," Technometria, 2020/09/28 https://www.windley.com/archives/2020/09/the_architecture_of_identity_systems.shtml

    [60] "X.509," Wikipedia, https://en.wikipedia.org/wiki/X.509

    [61] "Zooko's Triange, " Wikipedia, https://en.wikipedia.org/wiki/Zooko%27s_triangle

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-pfeairheller-cesr-proof/index.html b/docs/Resources/mdfiles/draft-pfeairheller-cesr-proof/index.html index 78dc3d52323..bedfb0816aa 100644 --- a/docs/Resources/mdfiles/draft-pfeairheller-cesr-proof/index.html +++ b/docs/Resources/mdfiles/draft-pfeairheller-cesr-proof/index.html @@ -7,7 +7,7 @@ - +
    @@ -70,6 +70,6 @@ author:

      -
    name: Stefan Gössner
    -
    name: Glyn Normington
    -
    name: Carsten Bormann
    date: 2021-10-25

    tags: IETF, CESR, SAID, KERI, ACDC

    --- abstract

    CESR Proof Signatures are an extension to the Composable Event Streaming Representation [CESR] that provide transposable cryptographic signature attachments on self-addressing data (SAD) [SAID]. Any SAD, such as an Authentic Chained Data Container (ACDC) Verifiable Credential [ACDC] for example, may be signed with a CESR Proof Signature and streamed along with any other CESR content. In addition, a signed SAD can be embedded inside another SAD and the CESR proof signature attachment can be transposed across envelope boundaries and streamed without losing any cryptographic integrity.

    --- middle

    Introduction

    Composable Event Streaming Representation (CESR) is a dual text-binary encoding format that has the unique property of text-binary concatenation composability. The CESR specification not only provides the definition of the streaming format but also the attachment codes needed for differentiating the types of cryptographic material (such as signatures) used as attachments on all event types for the Key Event Receipt Infrastructure (KERI) [KERI]. While all KERI event messages are self-addressing data (SAD), there is a broad class of SADs that are not KERI events but that require signature attachments. ACDC Verifiable credentials fit into this class of SADs. With more complex data structures represented as SADs, such as verifiable credentials, there is a need to provide signature attachments on nested subsets of SADs. Similar to indices in indexed controller signatures in KERI that specify the location of the public key they represent, nested SAD signatures need a path mechanism to specify the exact location of the nested content that they are signing. CESR Proof Signatures provide this mechanism with the CESR SAD Path Language and new CESR attachment codes, detailed in this specification.

    Streamable SADs

    A primary goal of CESR Proof Signatures is to allow any signed self-addressing data (SAD) to be streamed inline with any other CESR content. In support of that goal, CESR Proof Signatures leverage CESR attachments to define a signature scheme that can be attached to any SAD content serialized as JSON [JSON], MessagePack [MGPK] or CBOR [CBOR]. Using this capability, SADs signed with CESR Proof Signatures can be streamed inline in either the text (T) or binary (B) domain alongside any other KERI event message over, for example TCP or UDP. In addition, signed SADs can be transported via HTTP as a CESR HTTP Request (todo: reference needed).

    Nested Partial Signatures

    CESR Proof Signatures can be used to sign as many portions of a SAD as needed, including the entire SAD. The signed subsets are either SADs themselves or the self-addressing identifer (SAID) of a SAD that will be provided out of band. A new CESR count code is included with this specification to allow for multiple signatures on nested portions of a SAD to be grouped together under one attachment. By including a SAD Path in the new CESR attachment for grouping signatures, the entire group of signatures can be transposed across envelope boundaries by changing only the root path of the group attachment code.

    Transposable Signature Attachments

    There are several events in KERI that can contain context specific embedded self-addressing data (SADs). Exchange events (exn) for peer-to-peer communication and Replay events (rpy) for responding to data requests as well as Expose events (exp) for providing anchored data are all examples of KERI events that contain embedded SADs as part of their payload. If the SAD payload for one of these event types is signed with a CESR attachment, the resulting structure is not embeddable in one of the serializations of map or dictionary like data models. (JSON, CBOR, MessagePack) supported by CESR. To solve this problem, CESR Proof Signatures are transposable across envelope boundaries in that a single SAD signature or an entire signature group on any given SAD can be transposed to attach to the end of an enveloping SAD without losing its meaning. This unique feature is provided by the SAD Path language used in either a SAD signature or the root path designation in the outermost attachment code of any SAD signature group. These paths can be updated to point to the embedded location of the signed SAD inside the envelope. Protocols for verifiable credential issuance and proof presentation can be defined using this capability to embed the same verifiable credential SAD at and location in an enveloping exn message as appropriate for the protocol without having to define a unique signature scheme for each protocol.

    CESR SAD Path Language

    CESR Proof Signatures defines a SAD Path Language to be used in signature attachments for specifying the location of the SAD content within the signed SAD that a signature attachment is verifying. This path language has a more limited scope than alternatives like JSONPtr [RFC6901] or JSONPath [JSONPath] and is therefore simpler and more compact when encoding in CESR signature attachments. SADs in CESR and therefore CESR Proof Signatures require static field ordering of all maps. The SAD path language takes advantage of this feature to allow for a Base64 compatible syntax into SADs even when a SAD uses non-Base64 compatible characters for field labels.

    Description and Usage

    The SAD path language contains a single reserved character, the - (dash) character. Similar to the / (forward slack) character in URLs, the - in the SAD Path Language is the path separator between components of the path. The - was selected because it is a one of the valid Base64 characters.

    The simplest path in the SAD Path Language is a single - character representing the root path which specifies the top level of the SAD content.

    Root Path

     -

    After the root path, path components follow, delimited by the - character. Path components may be integer indices into field labels or arrays or may be full field labels. No wildcards are supported by the SAD Path Language.

    An example SAD Path using only labels that resolve to map contexts follows:

    -a-personal

    In addition, integers can be specified and their meaning is dependent on the context of the SAD.

    -1-12-personal-0

    The rules for a SAD Path Language processor are simple. If a path consists of only a single -, it represents the root of the SAD and therefore the entire SAD content. Following any - character is a path component that points to a field if the current context is a map in the SAD or is an index of an element if the current context is an array. It is an error for any sub-path to resolve to a value this is not a map or an array. Any trailing - character in a SAD Path can be ignored.

    The root context (after the initial -) is always a map. Therefore, the first path component represents a field of that map. The SAD is traversed following the path components as field labels or indexes in arrays until the end of the path is reached. The value at the end of the path is then returned as the resolution of the SAD Path. If the current context is a map and the path component is an integer, the path component represents an index into fields of the map. This feature takes advantage of the static field ordering of SADs and is used against any SAD that contains field labels that use non-Base64 compatible characters or the - character. Any combination of integer and field label path components can be used when the current context is a map. All path components MUST be an integer when the current context is an array.

    CESR Encoding for SAD Path Language

    SAD Paths are variable raw size primitives that require CESR variable size codes. We will use the A small variable size code for SAD Paths which has 3 code entries being added to the Master Code Table, 4A##, 5A## and 6A## for SAD Paths with 0 lead bytes, 1 lead byte and 2 lead bytes respecively. This small variable size code is reserved for text values that only contain valid Base64 characters. These codes are detailed in Table 2 below. The selector not only encodes the table but also implicitly encodes the number of lead bytes. The variable size is measured in quadlets of 4 characters each in the T domain and equivalently in triplets of 3 bytes each in the B domain. Thus computing the number of characters when parsing or off-loading in the T domain means multiplying the variable size by 4. Computing the number of bytes when parsing or off-loading in the B domain means multiplying the variable size by 3. The two Base64 size characters provide value lengths in quadlets/triplets from 0 to 4095 (64*2 -1). This corresponds to path lengths of up to 16,380 characters (4095 4) or 12,285 bytes (4095 * 3).

    SAD Path Examples

    This section provides some more examples for SAD Path expressions. The examples are based on Authentic Chained Data Containers (ACDCs) representing verifiable credentials.

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "legalName": "John Doe",
    "home-city": "Durham"
    }
    },
    "p": [
    {
    "qualifiedIssuerCredential": {
    "d": "EIl3MORH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZA",
    "i": "Et2DOOu4ivLsjpv89vgv6auPntSLx4CvOhGUxMhxPS24"
    }
    },
    {
    "certifiedLender": {
    "d": "EglG9JLG6UhkLrrv012NPuLEc1F3ne5vPH_sHGP_QPN0",
    "i": "E8YrUcVIqrMtDJHMHDde7LHsrBOpvN38PLKe_JCDzVrA"
    }
    }
    ]
    }

    Figure 1. Example ACDC Credential SAD

    The examples in Table 1 represent all the features of the SAD Path language when referring to the SAD in Figure 1. along with the CESR text encoding.

    SAD PathResultCESR T Domain Encoding
    -The root of the SAD6AABAAA-
    -a-personalThe personal map of the a field4AADA-a-personal
    -4-5The personal map of the a field4AAB-4-5
    -4-5-legalName"John Doe"5AAEAA-4-5-legalName
    -a-personal-1"Durham"6AAEAAA-a-personal-1
    -p-1The second element in the p array4AAB-p-1
    -a-LEI"254900OPPU84GM83MG36"5AACAA-a-LEI
    -p-0-0-d"EIl3MORH...6DZA"4AAC-p-0-0-d
    -p-0-certifiedLender-i"E8YrUcVI...zVrA"5AAGAA-p-0-certifiedLender-i

    Alternative Pathing / Query Languages

    The SAD Path language was chosen over alternatives such as JSONPtr and JSONPath in order to create a more compact representation of a pathing language in the text domain. Many of the features of the alternatives are not needed for CESR Proof Signatures. The only token in the language (-) is Base64 compatible. The use of field indices in SADs (which require staticly ordered fields) allows for Base64 compatible pathing even when the field labels of the target SAD are not Base64 compatible. The language accomplishes the goal of uniquely locating any path in a SAD using minimally sufficient means in a manner that allows it to be embedded in a CESR attachment as Base64. Alternative syntaxes would need to be Base64 encoded to be used in a CESR attachment in the text domain thus incurring the additional bandwidth cost of such an encoding.

    CESR Attachments

    This specification adds 2 Counter Four Character Codes to the Master Code Table and uses 1 Small Variable Raw Size Code Type and 1 Large Variable Raw Size Code Type from the Master Code Table (each of which have 3 code entries).

    Counter Four Character Codes

    The SAD Path Signature counter code is represented by the four character code -J##. The first two characters reserve this code for attaching the couplet (SAD Path, Signature Group). The second two characters represent the count in hexidecimal of SAD path signatures are in this attachment. The path is attached in the T domain using the codes described in the next section. The signature group is from either a transferable identifier or a non-transferable identifier and therefore attached using the CESR codes -F## or -C## respectively as described in the CESR Specification [CESR].

    Variable Size Codes

    The code A is reserved as a Small Variable Raw Size Code and AAA as a Large Variable Raw Size Code for Base64 URL safe strings. SAD Paths are Base64 URL safe strings and so leverage these codes when encoded in the CESR T domain. To account for the variable nature of path strings, the variable size types reserve 3 codes each with prefix indicators of lead byte size used for adjusting the T domain encoding to multiples of 4 characters and the B domain to multiples of 3 bytes. For the Small codes the prefix indicators are 4, 5 and 6 representing 0, 1 and 2 lead bytes respectively and for Large codes the prefix indicators are 7, 8, and 9 representing 0, 1 and 2 lead bytes respectively. The resulting 6 code entries are displayed in the table that follows.

    The additions to the Master Code Table of CESR is shown below:

    CodeDescriptionCode LengthCount or Index LengthTotal Length
    Counter Four Character Codes
    -J##Count of attached qualified Base64 SAD path sig groups path+sig group (trans or non-trans)224
    -K##Count of attached qualified Base64 SAD Path groups224
    Small Variable Raw Size Code
    4A##String Base64 Only with 0 Lead Bytes224
    5A##String Base64 Only with 1 Lead Byte224
    6A##String Base64 Only with 2 Lead Bytes224
    Large Variable Raw Size Code
    7AAA####String Base64 Only with 0 Lead Bytes448
    8AAA####String Base64 Only with 1 Lead Byte448
    9AAA####String Base64 Only with 2 Lead Bytes448

    CESR Signature Attachments

    CESR defines several counter codes for attaching signatures to serialized CESR event messages. For KERI event messages, the signatures in the attachments apply to the entire serialized content of the KERI event message. As all KERI event messages are SADs, the same rules for signing a KERI event message applies to signing SADs for CESR Proof Signatures. A brief review of CESR signatures for transferable and non-transferable identifiers follows. In addition, signatures on nested content must be specified.

    Signing SAD Content

    Signatures on SAD content require signing the serialized encoding format of the data ensuring that the signature applies to the data over the wire. The serialization for any SAD is identified in the version string which can be found in the v field of any KERI event message or ACDC credential. An example version string follows:

     {
    "v": "KERI10JSON00011c_"
    }

    where KERI is the identifier of KERI events followed by the hexidecimal major and minor version code and then the serialized encoding format of the event, JSON in this case. KERI and ACDC support JSON, MessagePack and CBOR currently. Field ordering is important when apply cryptographic signatures and all serialized encoding formats must support static field ordering. Serializing a SAD starts with reading the version string from the SAD field (v for KERI and ACDC events message) to determine the serialized encoding format of the message. The serialized encoding format is used to generate the SAID at creation and can not be changed. The event map is serialized using a library that ensures the static field order perserved across serialization and deserialization and the private keys are used to generate the qualified cryptographic material that represents the signatures over the SAD content.

    The same serialized encoding format must be used when nesting a SAD in another SAD. For example, an ACDC credential that was issued using JSON can only be embedded and presented in a KERI exn presentation event message that uses JSON as its serialized encoding format. That same credential can not be transmitted using CBOR or MessagePack. Controllers can rely on this restriction when verifying signatures of embedded SADs. When processing the signature attachments and resolving the data at a given SAD path, the serialization of the outter most SAD can be used at any depth of the traversal. New verison string processing does not need to occur at nested paths. However, if credential signature verification is pipelined and processed in parallel to the event message such that the event message is not avaiable, the version string of the nested SAD will still be valid and can be used if needed.

    Each attached signature is accompanied by a SAD Path that indicates the content that is signed. The path must resolve within the enveloping SAD to either a nested SAD (map) or a SAID (string) of an externally provided SAD. This of course, includes a root path that resolves to the enveloping SAD itself.

    Signatures with Non-Transferable Identifiers

    Non-transferable identifiers only ever have one public key. In addition, the identifier prefix is identical to the qualified cryptographic material of the public key and therefore no KEL is required to validate the signature of a non-transferable identifier [KERI]. The attachment code for witness receipt couplets, used for CESR Proof Signatures, takes this into account. The four character couner code -C## is used for non-transferable identifiers and contains the signing identfier prefix and the signature [CESR]. Since the verification key can be extracted from the identifier prefix and the identifier can not be rotated, all that is required to validate the signature is the identifier prefix, the data signed and the signature.

    Signatures with Transferable Identifiers

    Transferable identifiers require full KEL resolution and verfication to determine the correct public key used to sign some content [KERI]. In addition, the attachment code used for transferable identifiers, -F## must specify the location in the KEL at which point the signature was generated [CESR]. To accomplish this, this counter code includes the identifier prefix, the sequence number of the event in the KEL, the digest of the event in the KEL and the indexed signatures (transferable identifiers support multiple public/private keys and require index signatures). Using all the values, one can verify the signature(s) by retrieving the KEL of the identifier prefix and determine the key state at the sequence number along with validating the digest of the event against the actual event. Then using the key(s) at the determined key state, validate the signature(s).

    Additional Count Codes

    This specification adds two Counter Four Character Codes to the CESR Master Code Table for attaching and grouping transposable signatures on SAD and nested SAD content. The first code (-J##) is reserved for attaching a SAD path and the associated signatures on the content at the resolution of the SAD Path (either a SAD or its associated SAID). The second reserved code (-K##) is for grouping all SAD Path signature groups under a root path for a given SAD. The root path in the second grouping code provides signature attachment transposability for embedding SAD content in other messages.

    SAD Path Signature Group

    The SAD Path Signature Group provides a four character counter code, -J##, for attaching an encoded variable length SAD Path along with either a transferable index signature group or non-transferable identifer receipt couplets. The SAD Path identifies the content that this attachment is signing. The path must resolve to either a nested SAD (map) or a SAID (string) of an externally provided SAD within the context of the SAD and root path against which this attachment is applied. Using the following ACDC SAD embedded in a KERI exn message:

    {
    "v": "KERI10JSON00011c_",
    "t": "exn",
    "dt": "2020-08-22T17:50:12.988921+00:00",
    "r": "/credential/offer",
    "a": {
    "credential": { // SIGNATURE TARGET OF TRANSPOSED SAD PATH GROUP
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "legalName": "John Doe",
    "home": "Durham"
    }
    }
    }
    }
    }

    the following signature applies to the nested credential SAD signed by a transferable identifier using the transferable index signature group. The example is annotated with spaces and line feeds for clarity and an accompanied table is provided with comments.

    -JAB
    6AAEAAA-a-credential
    -FAB
    E_T2_p83_gRSuAYvGhqV3S0JzYEF2dIa-OCPLbIhBO7Y
    -EAB0AAAAAAAAAAAAAAAAAAAAAAB
    EwmQtlcszNoEIDfqD-Zih3N6o5B3humRKvBBln2juTEM
    -AAD
    AA5267UlFg1jHee4Dauht77SzGl8WUC_0oimYG5If3SdIOSzWM8Qs9SFajAilQcozXJVnbkY5stG_K4NbKdNB4AQ
    ABBgeqntZW3Gu4HL0h3odYz6LaZ_SMfmITL-Btoq_7OZFe3L16jmOe49Ur108wH7mnBaq2E_0U0N0c5vgrJtDpAQ
    ACTD7NDX93ZGTkZBBuSeSGsAQ7u0hngpNTZTK_Um7rUZGnLRNJvo5oOnnC1J2iBQHuxoq8PyjdT3BHS2LiPrs2Cg
    codedescription
    -JABSAD path signature group counter code 1 following the group
    6AAEAAA-a-credentialencoded SAD path designation
    -FABTrans Indexed Sig Groups counter code 1 following group
    E_T2_p83_gRSuAYvGhqV3S0JzYEF2dIa-OCPLbIhBO7Ytrans prefix of signer for sigs
    -EAB0AAAAAAAAAAAAAAAAAAAAAABsequence number of est event of signer's public keys for sigs
    EwmQtlcszNoEIDfqD-Zih3N6o5B3humRKvBBln2juTEMdigest of est event of signer's public keys for sigs
    -AADController Indexed Sigs counter code 3 following sigs
    AA5267...4AQsig 0
    ABBgeq...pAQsig 1
    ACTD7N...2Cgsig 2

    The next example demostrates the use of a non-transferable identifier to sign SAD content. In this example, the entire nested SAD located at the a field is signed by the non-transferable identfier:

    -JAB
    5AABAA-a
    -CAB
    BmMfUwIOywRkyc5GyQXfgDA4UOAMvjvnXcaK9G939ArM
    0BT7b5PzUBmts-lblgOBzdThIQjKCbq8gMinhymgr4_dD0JyfN6CjZhsOqqUYFmRhABQ-vPywggLATxBDnqQ3aBg
    codedescription
    -JABSAD path signature group counter code 1 following the group
    5AABAA-aencoded SAD path designation
    -CABNonTrans witness receipt couplet
    BmMfUwIOywRkyc5GyQXfgDA4UOAMvjvnXcaK9G939ArMnon-trans prefix of signer of sig
    0BT7b5... aBgsig

    SAD Path Groups

    The SAD Path Group provides a four character counter code, -K##, for attaching encoded variable length root SAD Path along with 1 or more SAD Path Signature Groups. The root SAD Path identifies the root context against which the paths in all included SAD Path Signature Groups are resolved. When parsing a SAD Path Group, if the root path is the single - character, all SAD paths are treated as absolute paths. Otherwise, the root path is prepended to the SAD paths in each of the SAD Path Signature Groups. Given the following snippet of a SAD Path Group:

    -KAB6AABAAA--JAB5AABAA-a...

    The root path is the single - character meaning that all subsequent SAD Paths are absolute and therefore the first path is resolved as the a field of the root map of the SAD as seen in the following example:

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // SIGNATURE TARGET OF SAD PATH GROUP
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "legalName": "John Doe",
    "city": "Durham"
    }
    }
    }

    Transposable Signature Attachments

    To support nesting of signed SAD content in other SAD content the root path of SAD Path Groups or the path of a SAD Path Signature Group provides transposability of CESR SAD signatures such that a single SAD Path Signature Group or an entire SAD Path Group attachment can be transposed across envelope boundaries by updating the single path or root path to indicate the new location. Extending the example above, the SAD content is now embedded in a KERI exn event message as follows:

    {
    "v": "KERI10JSON00011c_",
    "t": "exn",
    "dt": "2020-08-22T17:50:12.988921+00:00"
    "r": "/credential/offer"
    "a": {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // SIGNATURE TARGET OF TRANSPOSED SAD PATH GROUP
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "legalName": "John Doe",
    "city": "Durham"
    }
    }
    }
    }

    The same signature gets transposed to the outer exn SAD by updating the root path of the -K## attachment:

    -KAB5AABAA-a-JAB5AABAA-a...

    Now the SAD Path of the first signed SAD content resolves to the a field of the a field of the streamed exn message

    Small Variable Raw Size SAD Path Code

    The small variable raw side code reserved for SAD Path encoding is A which results in the addition of 3 entries (4A##, 5A## and 6A##) in the Master Code Table for each lead byte configuration. These codes and their use are discussed in detail in CESR Encoding for SAD Path Language.

    Nested Partial Signatures

    Additional signatures on nested content can be included in a SAD Path Group and are applied to the serialized data at the resolution of a SAD path in a SAD. Signatures can be applied to the SAID or an entire nested SAD. When verifying a CESR Proof Signature, the content at the resolution of the SAD path is the data that was signed. The choice to sign a SAID or the full SAD effects how the data may be used in presentations and the rules for verifying the signature.

    Signing Nested SADs

    When signing nested SAD content, the serialization used at the time of signing is the only serialization that can be used when presenting the signed data. When transposing the signatures and nesting the signed data, the enveloping SAD must use the same serialization that was used to create the signatures. This is to ensure that all signatures apply to the data over the wire and not a transformation of that data. The serialization can be determined from the version field (v) of the nested SAD or any parent of the nested SAD as they are guaranteed to be identical. Consider the following ACDC Credential SAD:

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // SIGNATURE TARGET OF SAD PATH GROUP
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "personal": {
    "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
    "first": "John",
    "last": "Doe"
    }
    }
    }

    To sign the SAD located at the path -a, JSON serialization would be used because the SAD at that path does not have a version field so the version field of its parent is used. The serialization rules (spacing, field ordering, etc) for a SAD would be used for the SAD and the serialization encoding format and the signature would be applied to the bytes of the JSON for that map. Any presentation of the signed data must always include the fully nested SAD. The only valid nesting of this credential would be as follows:

    {
    "v": "KERI10JSON00011c_",
    "t": "exn",
    "dt": "2020-08-22T17:50:12.988921+00:00"
    "r": "/credential/apply"
    "a": {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": { // FULL SAD MUST BE PRESENT
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "legalName": {
    "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
    "first": "John",
    "last": "Doe"
    }
    }
    }
    }

    Signing SAIDs

    Applying signatures to a SAD with SAIDs in place of fully expanded nested SAD content enables compact credentials for domains with bandwidth restrictions such as IoT. Consider the following fully expanded credential:

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "legalName": {
    "d": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
    "n": "sKHtYSiCdlibuLDS2PTJg1AZXtPhaySZ9O3DoKrRXWY",
    "first": "John
    "middle": "William"
    "last": "Doe"
    },
    "address": {
    "d": "E-0luqYSg6cPcMFmhiAz8VBQObZLmTQPrgsr7Z1j6CA4",
    "n": "XiSoVDNvqV8ldofPyTVqQ-EtVPlkIIQTln9Ai0yI05M",
    "street": "123 Main St",
    "city": "Salt Lake City",
    "state": "Utah",
    "zipcode": "84157"
    },
    "phone": {
    "d": "E6lty8H2sA_1acq8zg89_kqF194DbF1cDpwA7UPtwjPQ",
    "n": "_XKNVntbcIjp12DmsAGhv-R7JRwuzjD6KCHC7Fw3zvU"
    "mobile": "555-121-3434",
    "home": "555-121-3435",
    "work": "555-121-3436",
    "fax": "555-121-3437"
    }
    }
    }
    }

    The three nested blocks of the a block legalName, address and phone are SADs with a SAID in the d field and are candidates for SAID replacement in an issued credential. A compact credential can be created and signed by replacing those three nested blocks with the SAID of each nested SAD. The schema for this verifiable credential would need to specify conditional subschema for the field labels at each nesting location that requires the full schema of the nested SAD or a string for the SAID. The commitment to a SAID in place of a SAD contains nearly the same cryptographic integrity as a commitment to the SAD itself since the SAID is the qualified cryptographic material of a digest of the SAD. The same credential could be converted to a compact credential containing the SAIDs of each nested block and signed as follows:

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": {
    "d": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "i": "EQzFVaMasUf4cZZBKA0pUbRc9T8yUXRFLyM1JDASYqAA",
    "dt": "2021-06-09T17:35:54.169967+00:00",
    "ri": "EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "LEI": "254900OPPU84GM83MG36",
    "legalName": "E2X8OLaLnM0XRQEYgM5UV3bZmWg3UUn7CP4SoKkvsl-s",
    "address": "E-0luqYSg6cPcMFmhiAz8VBQObZLmTQPrgsr7Z1j6CA4",
    "phone": "E6lty8H2sA_1acq8zg89_kqF194DbF1cDpwA7UPtwjPQ"
    }
    }

    It is important to note that if this version of the credential is the one issued to the holder and the signature over the entire credential is on the serialized data of this version of the credential it is the only version that can be presented. The full SAD data of the three nested blocks would be delivered out of band from the signed credential. The top level schema would describe the blocks with conditional subschema for each section. The credential signature becomes a cryptographic commitment to the contents of the overall credential as well as the content of each of the blocks and will still validate the presented credential with significantly less bandwidth.

    With this approach, credential presentation request and exchange protocols can be created that modify the schema with the conditional subschema, removing the conditions that allow for SAIDs in place of the required (or presented) nested blocks. The modified schema can be used in such a protocol to indicate the required sections to be delivered out of bounds or as a commitment to provide the nested blocks after the crendential presentation has occurred.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    TODO Security

    IANA Considerations

    The Internet Assigned Numbers Authority (IANA) is a standards organization that oversees global IP address allocation, autonomous system number allocation, root zone management in the Domain Name System (DNS), media types, and other Internet Protocol-related symbols and Internet numbers.

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    Dr Sam Smith, Kevin Griffin and the Global Legal Entity Identifier Foundation (GLEIF)

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-pfeairheller-did-keri/index.html b/docs/Resources/mdfiles/draft-pfeairheller-did-keri/index.html index b9b21599430..6edb6d0f922 100644 --- a/docs/Resources/mdfiles/draft-pfeairheller-did-keri/index.html +++ b/docs/Resources/mdfiles/draft-pfeairheller-did-keri/index.html @@ -7,7 +7,7 @@ - +
    @@ -37,6 +37,6 @@ org: ProSapien LLC date: 2021

    tags: IETF, KERI, CESR

    --- abstract

    KERI provides a means for secure and decentralised key management. This specification defines a DID method based on KERI.

    --- middle

    Introduction

    The Key Event Receipt Infrastructure is a system for secure self-certifying Identifiers which aims at minimum sufficiency and maximum security. It defines mechanisms for proving the Root of Trust for self-certifying Identifiers and their associated Key State. This spec defines a transform from Key State to DID Document, such that any valid Key Event Log can be processed into a DID Document.

    A close analogy is did:peer, except that where the data model of did:peer is a DID Document and JSON patches on said Document, the basic data model of did:keri is an append-only log of Key Events. KERI-based Identifiers are suitable for both any-wise and n-wise purposes.

    Concepts

    Events

    A Key Event is an atomic transaction over the Key State of an Identifier. While all events have some semantic meaning within KERI, only a subset will change the keys in a Key State (rotation and delegated rotation).

    Key Event Log

    The Key Event Log is a type of hash-chained data structure from which the Key State of an Identifier can be derived. It can always be used to recreate the state at any point ("event-sourcing").

    Key Event Receipt Log

    The Key Event Receipt Logs are built from receipts of events signed by the witnesses of those events (these are called commitments); these are also append-only but not hash-chained.

    Key State

    Key State represents the current values for the keys, witnesses and thresholds for a given identifier, signed by a provider. The signature from the provider signifies that the provider has verified the KEL for the identifier and the result of that verification is the key state. The key state is represented in a Key State Notification Message detailed fully in Event Serialization Key State Messages. The following fields are defined for a Key State Notification Message:

    • v: Version String
    • i: Identifier Prefix
    • s: Sequence Number
    • t: Message Type
    • d: Event Digest (Seal or Receipt)
    • p: Prior Event Digest
    • kt: Keys Signing Threshold
    • k: List of Signing Keys (ordered key set)
    • n: Next Key Set Commitment
    • wt: Witnessing Threshold
    • w: List of Witnesses (ordered witness set)
    • wr: List of Witnesses to Remove (ordered witness set)
    • wa: List of Witnesses to Add (ordered witness set)
    • c: List of Configuration Traits/Modes
    • a: List of Anchors (seals)
    • da: Delegator Anchor Seal in Delegated Event (Location Seal)
    • di: Delegator Identifier Prefix in Key State
    • rd: Merkle Tree Root Digest
    • e: Last received Event Map in Key State
    • ee: Last Establishment Event Map in Key State
    • vn: Version Number ("major.minor")

    Key state notification messages differ depending on whether the signer is using a delegated identifier. The follow examples detail the fields needed for each permutation.

            {
    "v": "KERI10JSON00011c\_",
    "i": "EaU6JR2nmwyZ-i0d8JZAoTNZH3ULvYAfSVPzhzS6b5CM",
    "s": "2",
    "t": "ksn",
    "d": "EAoTNZH3ULvaU6JR2nmwyYAfSVPzhzZ-i0d8JZS6b5CM",
    "te": "rot",
    "kt": "1",
    "k": \["DaU6JR2nmwyZ-i0d8JZAoTNZH3ULvYAfSVPzhzS6b5CM"\],
    "n": "EZ-i0d8JZAoTNZH3ULvaU6JR2nmwyYAfSVPzhzS6b5CM",
    "wt": "1",
    "w": \["DnmwyYAfSVPzhzS6b5CMZ-i0d8JZAoTNZH3ULvaU6JR2"\],
    "c": \["eo"\],
    "ee":
    {
    "s": "1",
    "d": "EAoTNZH3ULvaU6JR2nmwyYAfSVPzhzZ-i0d8JZS6b5CM",
    "wr": \["Dd8JZAoTNZH3ULvaU6JR2nmwyYAfSVPzhzS6b5CMZ-i0"\],
    "wa": \["DnmwyYAfSVPzhzS6b5CMZ-i0d8JZAoTNZH3ULvaU6JR2"\]
    },
    "di": "EJZAoTNZH3ULvYAfSVPzhzS6b5CMaU6JR2nmwyZ-i0d8"
    }


    {
    "v": "KERI10JSON00011c\_",
    "i": "EaU6JR2nmwyZ-i0d8JZAoTNZH3ULvYAfSVPzhzS6b5CM",
    "s": "2",
    "t": "ksn",
    "d": "EAoTNZH3ULvaU6JR2nmwyYAfSVPzhzZ-i0d8JZS6b5CM",
    "te": "rot",
    "kt": "1",
    "k": \["DaU6JR2nmwyZ-i0d8JZAoTNZH3ULvYAfSVPzhzS6b5CM"\],
    "n": "EZ-i0d8JZAoTNZH3ULvaU6JR2nmwyYAfSVPzhzS6b5CM",
    "wt": "1",
    "w": \["DnmwyYAfSVPzhzS6b5CMZ-i0d8JZAoTNZH3ULvaU6JR2"\],
    "c": \["eo"\],
    "ee":
    {
    "s": "1",
    "d": "EAoTNZH3ULvaU6JR2nmwyYAfSVPzhzZ-i0d8JZS6b5CM",
    "wr": \["Dd8JZAoTNZH3ULvaU6JR2nmwyYAfSVPzhzS6b5CMZ-i0"\],
    "wa": \["DnmwyYAfSVPzhzS6b5CMZ-i0d8JZAoTNZH3ULvaU6JR2"\]
    },
    "di": "EJZAoTNZH3ULvYAfSVPzhzS6b5CMaU6JR2nmwyZ-i0d8"
    }

    Resolver Metadata

    did:keri defines keyState DID Document Metadata (see DID Document Metadata in [[?DID-RESOLUTION]]).

    • keyState is the verified state of the KEL for the identifier represented by this DID Doc (See Key State).

      {
      "didDocument": DID\_DOCUMENT\_OBJECT,
      "didDocumentMetadata": {
      "keyState": {
      "v": "KERI10JSON00011c\_",
      "i": "EaU6JR2nmwyZ-i0d8JZAoTNZH3ULvYAfSVPzhzS6b5CM",
      "t": "ksn",
      "kt": "1",
      "k": \["DaU6JR2nmwyZ-i0d8JZAoTNZH3ULvYAfSVPzhzS6b5CM"\],
      "n": "EZ-i0d8JZAoTNZH3ULvaU6JR2nmwyYAfSVPzhzS6b5CM",
      "wt": "1",
      "w": \["DnmwyYAfSVPzhzS6b5CMZ-i0d8JZAoTNZH3ULvaU6JR2"\],
      "c": \["eo"\],
      "e":
      {
      "s": "2",
      "t": "rot",
      "d": "EAoTNZH3ULvaU6JR2nmwyYAfSVPzhzZ-i0d8JZS6b5CM",
      },
      "ee":
      {
      "s": "1",
      "d": "EAoTNZH3ULvaU6JR2nmwyYAfSVPzhzZ-i0d8JZS6b5CM",
      "wr": \["Dd8JZAoTNZH3ULvaU6JR2nmwyYAfSVPzhzS6b5CMZ-i0"\],
      "wa": \["DnmwyYAfSVPzhzS6b5CMZ-i0d8JZAoTNZH3ULvaU6JR2"\]
      },
      "di": "",
      "a": {}
      }
      }
      }

    The DID Document

    The following field MAY appear in a did:keri DID document: verificationMethod

    Non-normative note: multiple namespaces using the same DID method could prove control or replay history for one controlling keypair that has been used across multiple ledgers. KERL logs could be stored in a secondary root of trust (i.e., a ledger), and similar or identical resolver metadata could be returned by querying the same identifier there.

    The following field is not a core field in a did:keri DID document: Services. The did:keri method is provided for interoperability for the purpose of using KERI to establish control authority of the current public keys associated with KERI identifier behind the keri:did DID. It is anticipated that KERI tunnel methods (eg. did:indy:sov:keri) will provide these features to enable addition interop.

    The did:keri Format

    The format for the did:keri method conforms to the [[DID-CORE]] specification and is simple. It consists of the did:keri: prefix, followed by the identifier prefix.

    Method Name

    The method name that identifies this DID method SHALL be: keri

    A DID that uses this method MUST begin with the following prefix: did:keri:. Per the DID specification, this string MUST be in lowercase. The remainder of the DID, after the prefix, is the method specific identifier (MSI) described below.

    Method Specific Identifier

    The method specific identifier for the did:keri method is the prefix for a content self-addressing self-certifying identifier.

    A self-addressing, self-certifying identifier is cryptographically bound to the inception keys used to create it. The rationale and process for the derivation of an identifier is described in detail in the Derivation Codes section of [[KID0001]]

         did:keri:EXq5YqaL6L48pf0fu7IUhL0JRaU2\_RxFP0AL43wYn148

    Operations

    The following section outlines the DID operations for the did:keri method.

    Create

    Creation of a did:keri DID is accomplished by creating, signing and publishing an Inception event. If witnesses are listed in the inception event, the receipts are also required for DID creation to be complete.

    Detailed steps for prefix derivation are in [[KID0001]] and witness configuration in [[KID0009]]. Inception events are covered in [[KID0003]].

    Read

    Steps to resolve a `did:keri:$PREFIX` DID:

    1. Find the Key Event Log for the prefix `$PREFIX`. The method for discovering the Key Event Log is outside the scope of this specification. Possible implementations include the use of a Distributed Hash Table (DHT), anchoring a KEL in a ledger or the use of a gossip protocol involving a witness network.
    2. Process the KEL into a Key State, according to the state validation rules/semantics of KERI as defined in [[KID0008]]
    3. Create a DID Document with the DID `did:keri:$PREF`
    4. For each key K in the Key State, add a Verification Method to the DID Doc containing K and the appropriate type, with the ID of K being K's prefix form (alternatively, the ID could be an integer of K's index in the current signer list)
    5. Add the Key State as DID Document Metadata as defined in Resolver Metadata

    Establishment of control authority can be done independently of DID document contents, as long as the Key State is provided in the DID Document Metadata. See Resolver Metadata.

    Update

    Updating a did:keri DID is accomplished by publishing establishment events to the KEL for performing operations such as key rotation and updating signature thresholds, witnesses and delegates.

    A detailed description of event types, their semantics and uses can be found in [[KID0003]].

    Deactivate

    Deactivation of a did:keri DID consists of rotation to 0 controlling keys, which terminates the ability to recover the identifier and indicates that the identifier has been abandoned. Identifiers which are delegated to by an abandoned Identifier are also considered abandoned (delegating Ixn events can no longer be created).

    Detailed steps are specified in [[KID0003]].

    Privacy Considerations

    A breakdown of the privacy considerations from [[RFC6973]] section 5 is provided below.

    Surveillance

    A robust witness network along with consistent witness rotation provides protection from monitoring and association of an individual's activity inside a KERI network.

    Stored Data Compromise

    For resolvers that simply discover the Key State endorsed by another party in a discovery network, caching policies of that network would guide stored data security considerations. In the event that a resolver is also the endorsing party, meaning they have their own KERI identifier and are verifying the KEL and signing the Key State themselves, leveraging the facilities provided by the KERI protocol (key rotation, witness maintenance, multi-sig) should be used to protect the identities used to sign the Key State.

    See [[KID0005]] for information on KERI key rotation, [[KID0009]] for a discussion on witnesses and [[KID0004]] for KERI's support of multi-sig.

    Unsolicited Traffic

    DID Documents are not required to provide endpoints and thus not subject to unsolicited traffic.

    Misattribution

    This DID Method relies on KERI's duplicity detection to determine when the non-repudiable controller of a DID has been inconsistent and can no longer be trusted. This establishment of non-repudiation enables consistent attribution.

    See [[KID0010]] for a detailed description of KERI’S Agreement Algorithm for Control Establishment (KAACE).

    Correlation

    The root of trust for KERI identifiers is entropy and therefore offers no direct means of correlation. In addition, KERI provides two modes of communication, direct mode and indirect mode. Direct mode allows for pairwise (n-wise as well) relationships that can be used to establish private relationships.

    See [[KID0001]] for a description of KID prefix generation and [[KID0009]] for a comparison between Direct and Indirect modes.

    Identification

    The root of trust for KERI identifiers is entropy and therefore offers no direct means of identification. In addition, KERI provides two modes of communication, direct mode and indirect mode. Direct mode allows for pairwise (n-wise as well) relationships that can be used to establish private relationships.

    See [[KID0001]] for a description of KID prefix generation and [[KID0009]] for a comparison between Direct and Indirect modes.

    Secondary Use

    The Key State made available in the metadata of this DID method is generally available and can be used by any party to retrieve and verify the state of the KERL for the given identifier.

    Disclosure

    No data beyond the Key State for the identifier is provided by this DID method.

    Exclusion

    This DID method provides no opportunity for correlation (See ), identification (See ) or disclosure (See ) and therefore there is no opportunity to exclude the controller from knowing about data that others have about them.

    Security Considerations

    Key State Verification

    Users of a did:keri did method resolver MUST verify the key state returned in the document metadata of the resolution result. The signature of the resolver can be used to determine if the resolver is dysfunctional and should no longer be trusted. However it should not be used to verify the key state.

    The only definitive method for verifying the key state is to pass the key state to a KERI library and perform the verification of that key state.

    A breakdown of the security considerations from [[RFC3552]] is provided below.

    Confidentiality Violations, Password Sniffing

    All private keys used to establish control over the KERI identifier of a KERI DID method DID should be held secret. KERI's use of delegation ensures that private keys for each identifier never need to be transferred. DID controllers can delegate levels of authority of other identities to enable remote agents.

    See [[KID0007]] for a discussion of delegation.

    In addition, pre-rotation mechanism provides key rotation capabilities while eliminating exposure of the next public key until it is rotated into the current signing key. Enforcing key rotation for every event of a given identifier provides further protection against key exposure.

    See [[KID0005]] for a description of pre-rotation and the protections it provides

    Replay Attacks

    did:keri relies on the KERI protocol which is not susceptible to replay attacks. The hash linking, signatures and sequence numbers of events ensures that replayed messages do not effect the protocol.

    See [[KID0003]] for a description of KERI events.

    Message Insertion, Deletion, Modification

    did:keri relies on the KERI protocol which is not susceptible to message deletion or modification attacks. The hash linking, signatures and sequence numbers of events ensures that messages can not be modified or deleted without immediate detection. In addition, KERI's duplicity detection mechanisms allow easy detection of inserted messages allowing validators to determine the consistency of a DID controller.

    See [[KID0003]] for a description of KERI events and [[KID0010]] for the KAACE algorithm.

    Man-In-The-Middle Attacks

    The protections mentioned in Replay Attacks and Message Attacks render Man-In-The-Middle attacks ineffective against the KERI protocol and this DID Method.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    TODO Security

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    TODO acknowledge.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-pfeairheller-ptel/index.html b/docs/Resources/mdfiles/draft-pfeairheller-ptel/index.html index 8f1d0a5c400..cebb27b85ff 100644 --- a/docs/Resources/mdfiles/draft-pfeairheller-ptel/index.html +++ b/docs/Resources/mdfiles/draft-pfeairheller-ptel/index.html @@ -7,7 +7,7 @@ - +
    @@ -101,6 +101,6 @@ to use to retrieve the VC TEL.
  • Retrieve the VC TEL and calculate the issuance/revocation state of the VC from the events in the TEL.
  • Using the keys from the KERI event to which the iss event is anchored, verify the signature on the VC.
  • Security Considerations

    1. To avoid DDoS attack by flooding an Endorser with TEL events that are not associated with any identifiers they are associated with, TEL events need to be placed in escrow until an anchoring KEL event is seen for the TEL identifier.

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    TODO acknowledge.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-ssmith-acdc/index.html b/docs/Resources/mdfiles/draft-ssmith-acdc/index.html index 940ebb6f190..db1e7eb180c 100644 --- a/docs/Resources/mdfiles/draft-ssmith-acdc/index.html +++ b/docs/Resources/mdfiles/draft-ssmith-acdc/index.html @@ -7,7 +7,7 @@ - +
    @@ -249,6 +249,6 @@ append-to-extend

    Appendix: Performance and Scalability

    The compact disclosure and distribute property graph fragment mechanisms in ACDC can be leveraged to enable high performance at scale. Simply using SAIDs and signed SAIDs of ACDCs in whole or in part enables compact but securely attributed and verifiable references to ACDCs to be employed anywhere performance is an issue. Only the SAID and its signature need be transmitted to verify secure attribution of the data represented by the SAID. Later receipt of the data may be verified against the SAID. The signature does not need to be re-verified because a signature on a SAID is making a unique (to within the cryptographic strength of the SAID) commitment to the data represented by the SAID. The actual detailed ACDC in whole or in part may then be cached or provided on-demand or just-in-time.

    Hierarchical decomposition of data into a distributed verifiable property graph, where each ACDC is a distributed graph fragment, enables performant reuse of data or more compactly performant reuse of SAIDs and their signatures. The metadata and attribute sections of each ACDC provide a node in the graph and the edge section of each ACDC provides the edges to that node. Higher-up nodes in the graph with many lower-level nodes need only be transmitted, verified, and cached once per every node or leaf in the branch not redundantly re-transmitted and re-verified for each node or leaf as is the case for document-based verifiable credentials where the whole equivalent of the branched (graph) structure must be contained in one document. This truly enables the bow-tie model popularized by Ricardian contracts, not merely for contracts, but for all data authenticated, authorized, referenced, or conveyed by ACDCs.

    Appendix: Cryptographic Strength and Security

    Cryptographic Strength

    For crypto-systems with perfect-security, the critical design parameter is the number of bits of entropy needed to resist any practical brute force attack. In other words, when a large random or pseudo-random number from a cryptographic strength pseudo-random number generator (CSPRNG) {{CSPRNG}} expressed as a string of characters is used as a seed or private key to a cryptosystem with perfect-security, the critical design parameter is determined by the amount of random entropy in that string needed to withstand a brute force attack. Any subsequent cryptographic operations must preserve that minimum level of cryptographic strength. In information theory {{IThry}}{{ITPS}} the entropy of a message or string of characters is measured in bits. Another way of saying this is that the degree of randomness of a string of characters can be measured by the number of bits of entropy in that string. Assuming conventional non-quantum computers, the convention wisdom is that, for systems with information-theoretic or perfect security, the seed/key needs to have on the order of 128 bits (16 bytes, 32 hex characters) of entropy to practically withstand any brute force attack. A cryptographic quality random or pseudo-random number expressed as a string of characters will have essentially as many bits of entropy as the number of bits in the number. For other crypto-systems such as digital signatures that do not have perfect security, the size of the seed/key may need to be much larger than 128 bits in order to maintain 128 bits of cryptographic strength.

    An N-bit long base-2 random number has 2N different possible values. Given that no other information is available to an attacker with perfect security, the attacker may need to try every possible value before finding the correct one. Thus the number of attempts that the attacker would have to try maybe as much as 2N-1. Given available computing power, one can easily show that 128 is a large enough N to make brute force attack computationally infeasible.

    Let's suppose that the adversary has access to supercomputers. Current supercomputers can perform on the order of one quadrillion operations per second. Individual CPU cores can only perform about 4 billion operations per second, but a supercomputer will parallelly employ many cores. A quadrillion is approximately 250 = 1,125,899,906,842,624. Suppose somehow an adversary had control over one million (220 = 1,048,576) supercomputers which could be employed in parallel when mounting a brute force attack. The adversary could then try 250 220 = 270 values per second (assuming very conservatively that each try only took one operation). There are about 3600 24 * 365 = 313,536,000 = 2log2313536000=224.91 ~= 225 seconds in a year. Thus this set of a million super computers could try 250+20+25 = 295 values per year. For a 128-bit random number this means that the adversary would need on the order of 2128-95 = 233 = 8,589,934,592 years to find the right value. This assumes that the value of breaking the cryptosystem is worth the expense of that much computing power. Consequently, a cryptosystem with perfect security and 128 bits of cryptographic strength is computationally infeasible to break via brute force attack.

    Information Theoretic Security and Perfect Security

    The highest level of cryptographic security with respect to a cryptographic secret (seed, salt, or private key) is called information-theoretic security {{ITPS}}. A cryptosystem that has this level of security cannot be broken algorithmically even if the adversary has nearly unlimited computing power including quantum computing. It must be broken by brute force if at all. Brute force means that in order to guarantee success the adversary must search for every combination of key or seed. A special case of information-theoretic security is called perfect-security {{ITPS}}. Perfect-security means that the ciphertext provides no information about the key. There are two well-known cryptosystems that exhibit perfect security. The first is a one-time-pad (OTP) or Vernum Cipher {{OTP}}{{VCphr}}, the other is secret splitting {{SSplt}}, a type of secret sharing {{SShr}} that uses the same technique as a one-time-pad.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    • SAID - Self-Addressing Identifier - any identifier which is deterministically generated out of the content, digest of the content

    Security Considerations

    Refer to the body of the specification. Security considerations are included in the context of each section. The ACDC specification is security driven so the specification itself is riddled with discussions of the security considerations in the context in which those discussions are most understandable and relevant.

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    ACDC community.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-ssmith-cesr/index.html b/docs/Resources/mdfiles/draft-ssmith-cesr/index.html index 0192bc1805f..1e4f4385596 100644 --- a/docs/Resources/mdfiles/draft-ssmith-cesr/index.html +++ b/docs/Resources/mdfiles/draft-ssmith-cesr/index.html @@ -7,7 +7,7 @@ - +
    @@ -91,6 +91,6 @@ followed by a ControllerIdxSigs group that in turn consists of a counter code -A## followed by one or more indexed signature primitives. The following example details how this complex group may appear.

    The example has only one group. The example is annotated with comments, spaces and line feeds for clarity.

    -FAB     # Trans Indexed Sig Groups counter code 1 following group
    E_T2_p83_gRSuAYvGhqV3S0JzYEF2dIa-OCPLbIhBO7Y # trans prefix of signer for sigs
    -EAB0AAAAAAAAAAAAAAAAAAAAAAB # sequence number of est event of signer's public keys for sigs
    EwmQtlcszNoEIDfqD-Zih3N6o5B3humRKvBBln2juTEM # digest of est event of signer's public keys for sigs
    -AAD # Controller Indexed Sigs counter code 3 following sigs
    AA5267UlFg1jHee4Dauht77SzGl8WUC_0oimYG5If3SdIOSzWM8Qs9SFajAilQcozXJVnbkY5stG_K4NbKdNB4AQ # sig 0
    ABBgeqntZW3Gu4HL0h3odYz6LaZ_SMfmITL-Btoq_7OZFe3L16jmOe49Ur108wH7mnBaq2E_0U0N0c5vgrJtDpAQ # sig 1
    ACTD7NDX93ZGTkZBBuSeSGsAQ7u0hngpNTZTK_Um7rUZGnLRNJvo5oOnnC1J2iBQHuxoq8PyjdT3BHS2LiPrs2Cg # sig 2

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    TODO Security

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    The keripy development team, the KERI community, and the ToIP ACDC working group.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-ssmith-ipex/index.html b/docs/Resources/mdfiles/draft-ssmith-ipex/index.html index 4bbe743980f..0f550d75807 100644 --- a/docs/Resources/mdfiles/draft-ssmith-ipex/index.html +++ b/docs/Resources/mdfiles/draft-ssmith-ipex/index.html @@ -7,7 +7,7 @@ - +
    @@ -143,6 +143,6 @@ The process of verifying that a SAD via its SAID of a section is included in a schema authorized variant down from the top-level SAID is equivalent to a Merkle Tree proof of inclusion along a path in the Merkel Tree down from its Root. This allows a single signature to provide proof of Issuance of the presentation of any schema authorized variants of the ACDC.

    An Issuer MAY provide signatures of the SAIDS of other variants, as well as signatures of the SADs of other variants.

    Proof of issuance is provided by disclosing the SAID of the most compact variant and the signature by the Issuer on that SAID.

    Proof of disclosure is provided by disclosing the SAD of the most compact variant and then recursively disclosing the nested SADs of each of the top level sections of the most compact variant as needed for the promised disclosure.

    Thus for any disclosed variant of an ACDC, the Disclosee need only verify only one proof of issuance as defined above and may need to verify a different proof of disclosure for each disclosed variant as defined above.

    Example Most Compact Variant

    The following schema supports a compact variant

    {
    "$id": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "title": "Public ACDC",
    "description": "Example JSON Schema Public ACDC.",
    "credentialType": "PublicACDCExample",
    "type": "object",
    "required":
    [
    "v",
    "d",
    "i",
    "ri",
    "s",
    "a",
    "e",
    "r"
    ],
    "properties":
    {
    "v":
    {
    "description": "ACDC version string",
    "type": "string"
    },
    "d":
    {
    "description": "ACDC SAID",
    "type": "string"
    },
    "i":
    {
    "description": "Issuer AID",
    "type": "string"
    },
    "ri":
    {
    "description": "credential status registry AID",
    "type": "string"
    },
    "s":
    {
    "description": "schema section",
    "oneOf":
    [
    {
    "description": "schema section SAID",
    "type": "string"
    },
    {
    "description": "schema detail",
    "type": "object"
    },
    ]
    },
    "a":
    {
    "description": "attribute section",
    "oneOf":
    [
    {
    "description": "attribute section SAID",
    "type": "string"
    },
    {
    "description": "attribute detail",
    "type": "object",
    "required":
    [
    "d",
    "i",
    "score",
    "name"
    ],
    "properties":
    {
    "d":
    {
    "description": "attribute section SAID",
    "type": "string"
    },
    "i":
    {
    "description": "Issuee AID",
    "type": "string"
    },
    "score":
    {
    "description": "test score",
    "type": "integer"
    },
    "name":
    {
    "description": "test taker full name",
    "type": "string"
    }
    },
    "additionalProperties": false,
    }
    ]
    },
    "e":
    {
    "description": "edge section",
    "oneOf":
    [
    {
    "description": "edge section SAID",
    "type": "string"
    },
    {
    "description": "edge detail",
    "type": "object",
    "required":
    [
    "d",
    "boss"
    ],
    "properties":
    {
    "d":
    {
    "description": "edge section SAID",
    "type": "string"
    },
    "boss":
    {
    "description": "boss edge",
    "type": "object",
    "required":
    [
    "d",
    "n",
    's',
    "w"
    ],
    "properties":
    {
    "d":
    {
    "description": "edge SAID",
    "type": "string"
    },
    "n":
    {
    "description": "far node SAID",
    "type": "string"
    },
    "s":
    {
    "description": "far node schema SAID",
    "type": "string",
    "const": ""EiheqcywJcnjtJtQIYPvAu6DZAIl3MORH3dCdoFOLe71"
    },
    "w":
    {
    "description": "edge weight",
    "type": "string"
    },
    "additionalProperties": false
    },
    },
    "additionalProperties": false
    }
    ]
    },
    "r":
    {
    "description": "rule section",
    "oneOf":
    [
    {
    "description": "rule section SAID",
    "type": "string"
    },
    {
    "description": "rule detail",
    "type": "object",
    "required":
    [
    "d",
    "warrantyDisclaimer",
    "liabilityDisclaimer"
    ],
    "properties":
    {
    "d":
    {
    "description": "edge section SAID",
    "type": "string"
    },
    "warrantyDisclaimer":
    {
    "description": "warranty disclaimer clause",
    "type": "object",
    "required":
    [
    "d",
    "l"
    ],
    "properties":
    {
    "d":
    {
    "description": "clause SAID",
    "type": "string"
    },
    "l":
    {
    "description": "legal language",
    "type": "string"
    }
    },
    "additionalProperties": false
    },
    "liabilityDisclaimer":
    {
    "description": "liability disclaimer clause",
    "type": "object",
    "required":
    [
    "d",
    "l"
    ],
    "properties":
    {
    "d":
    {
    "description": "clause SAID",
    "type": "string"
    },
    "l":
    {
    "description": "legal language",
    "type": "string"
    }
    },
    "additionalProperties": false
    }
    },
    "additionalProperties": false
    }
    ]
    }
    },
    "additionalProperties": false
    }

    The following JSON field map serialization satisfies the rules for most compact variant of the schema above.

    {
    "v": "ACDC10JSON00011c_",
    "d": "EBdXt3gIXOf2BBWNHdSXCJnFJL5OuQPyM5K0neuniccM",
    "i": "did:keri:EmkPreYpZfFk66jpf3uFv7vklXKhzBrAqjsKAn2EDIPM",
    "ri": "did:keri:EymRy7xMwsxUelUauaXtMxTfPAMPAI6FkekwlOjkggt",
    "s": "E46jrVPTzlSkUPqGGeIZ8a8FWS7a6s4reAXRZOkogZ2A",
    "a": "EgveY4-9XgOcLxUderzwLIr9Bf7V_NHwY1lkFrn9y2PY",
    "e": "ERH3dCdoFOLe71iheqcywJcnjtJtQIYPvAu6DZIl3MOA",
    "r": "Ee71iheqcywJcnjtJtQIYPvAu6DZIl3MORH3dCdoFOLB"
    }

    The Issuer signs the SAID, d field value of the field map above.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    TODO Security

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    TODO acknowledge.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-ssmith-keri/index.html b/docs/Resources/mdfiles/draft-ssmith-keri/index.html index f35848251b2..798ea34f0c3 100644 --- a/docs/Resources/mdfiles/draft-ssmith-keri/index.html +++ b/docs/Resources/mdfiles/draft-ssmith-keri/index.html @@ -7,7 +7,7 @@ - +
    @@ -320,6 +320,6 @@ A bare, 'bre', message is a SAD item with an associated derived SAID in its 'd' field.

    {
    "v": "KERI10JSON00011c_",
    "t": "bre",
    "d": "EZ-i0d8JZAoTNZH3ULaU6JR2nmwyvYAfSVPzhzS6b5CM",
    "r": "process/sealed/data",
    "a": {
    "d": "EaU6JR2nmwyZ-i0d8JZAoTNZH3ULvYAfSVPzhzS6b5CM",
    "i": "EAoTNZH3ULvYAfSVPzhzS6baU6JR2nmwyZ-i0d8JZ5CM",
    "dt": "2020-08-22T17:50:12.988921+00:00",
    "name": "John Jones",
    "role": "Founder"
    }
    }

    Exchange Message Body

    {
    "v": "KERI10JSON00006a_",
    "t": "exn",
    "d": "EF3Dd96ATbbMIZgUBBwuFAWx3_8s5XSt_0jeyCRXq_bM",
    "dt": "2021-11-12T19:11:19.342132+00:00",
    "r": "/echo",
    "rr": "/echo/response",
    "a": {
    "msg": "test"
    }
    }

    Notices Embedded in Reply Messages

    Key State Notice (KSN)

    {
    "v": "KERI10JSON0001d9_",
    "d": "EYk4PigtRsCd5W2so98c8r8aeRHoixJK7ntv9mTrZPmM",
    "i": "E4BsxCYUtUx3d6UkDVIQ9Ke3CLQfqWBfICSmjIzkS1u4",
    "s": "0",
    "p": "",
    "f": "0",
    "dt": "2021-01-01T00:00:00.000000+00:00",
    "et": "icp",
    "kt": "1",
    "k": ["DqI2cOZ06RwGNwCovYUWExmdKU983IasmUKMmZflvWdQ"],
    "n": "E7FuL3Z_KBgt_QAwuZi1lUFNC69wvyHSxnMFUsKjZHss",
    "bt": "1",
    "b": ["BFUOWBaJz-sB_6b-_u_P9W8hgBQ8Su9mAtN9cY2sVGiY"],
    "c": [],
    "ee": {
    "s": "0",
    "d": "EYk4PigtRsCd5W2so98c8r8aeRHoixJK7ntv9mTrZPmM",
    "br": [],
    "ba": []
    },
    "di": ""
    }

    Embedded in Reply

    {
    "v": "KERI10JSON00011c_",
    "t": "rpy",
    "d": "EZ-i0d8JZAoTNZH3ULaU6JR2nmwyvYAfSVPzhzS6b5CM",
    "dt": "2020-08-22T17:50:12.988921+00:00",
    "r": "/ksn/BFUOWBaJz-sB_6b-_u_P9W8hgBQ8Su9mAtN9cY2sVGiY",
    "a": {
    "v": "KERI10JSON0001d9_",
    "d": "EYk4PigtRsCd5W2so98c8r8aeRHoixJK7ntv9mTrZPmM",
    "i": "E4BsxCYUtUx3d6UkDVIQ9Ke3CLQfqWBfICSmjIzkS1u4",
    "s": "0",
    "p": "",
    "f": "0",
    "dt": "2021-01-01T00:00:00.000000+00:00",
    "et": "icp",
    "kt": "1",
    "k": ["DqI2cOZ06RwGNwCovYUWExmdKU983IasmUKMmZflvWdQ"],
    "n": "E7FuL3Z_KBgt_QAwuZi1lUFNC69wvyHSxnMFUsKjZHss",
    "bt": "1",
    "b": ["BFUOWBaJz-sB_6b-_u_P9W8hgBQ8Su9mAtN9cY2sVGiY"],
    "c": [],
    "ee": {
    "s": "0",
    "d": "EYk4PigtRsCd5W2so98c8r8aeRHoixJK7ntv9mTrZPmM",
    "br": [],
    "ba": []
    },
    "di": ""
    }
    }

    Transaction State Notice (TSN)

    {
    "v": "KERI10JSON0001b0_",
    "d": "EpltHxeKueSR1a7e0_oSAhgO6U7VDnX7x4KqNCwBqbI0",
    "i": "EoN_Ln_JpgqsIys-jDOH8oWdxgWqs7hzkDGeLWHb9vSY",
    "s": "1",
    "ii": "EaKJ0FoLxO1TYmyuprguKO7kJ7Hbn0m0Wuk5aMtSrMtY",
    "dt": "2021-01-01T00:00:00.000000+00:00",
    "et": "vrt",
    "a": {
    "s": 2,
    "d": "Ef12IRHtb_gVo5ClaHHNV90b43adA0f8vRs3jeU-AstY"
    },
    "bt": "1",
    "br": [],
    "ba": ["BwFbQvUaS4EirvZVPUav7R_KDHB8AKmSfXNpWnZU_YEU"],
    "b": ["BwFbQvUaS4EirvZVPUav7R_KDHB8AKmSfXNpWnZU_YEU"],
    "c": []
    }

    Embedded in Reply

    {
    "v": "KERI10JSON00011c_",
    "t": "rpy",
    "d": "EZ-i0d8JZAoTNZH3ULaU6JR2nmwyvYAfSVPzhzS6b5CM",
    "dt": "2020-08-22T17:50:12.988921+00:00",
    "r": "/ksn/registry/BwFbQvUaS4EirvZVPUav7R_KDHB8AKmSfXNpWnZU_YEU",
    "a": {
    "v": "KERI10JSON0001b0_",
    "d": "EpltHxeKueSR1a7e0_oSAhgO6U7VDnX7x4KqNCwBqbI0",
    "i": "EoN_Ln_JpgqsIys-jDOH8oWdxgWqs7hzkDGeLWHb9vSY",
    "s": "1",
    "ii": "EaKJ0FoLxO1TYmyuprguKO7kJ7Hbn0m0Wuk5aMtSrMtY",
    "dt": "2021-01-01T00:00:00.000000+00:00",
    "et": "vrt",
    "a": {
    "s": 2,
    "d": "Ef12IRHtb_gVo5ClaHHNV90b43adA0f8vRs3jeU-AstY"
    },
    "bt": "1",
    "br": [],
    "ba": ["BwFbQvUaS4EirvZVPUav7R_KDHB8AKmSfXNpWnZU_YEU"],
    "b": ["BwFbQvUaS4EirvZVPUav7R_KDHB8AKmSfXNpWnZU_YEU"],
    "c": []
    }
    }

    Transaction Event Log Messages

    Registry Inception Event Message Body

    {
    "v": "KERI10JSON00011c_",
    "t": "vcp",
    "d": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "i": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "ii": "EJJR2nmwyYAfSVPzhzS6b5CMZAoTNZH3ULvaU6Z-i0d8",
    "s": "0",
    "bt": "1",
    "b": ["BbIg_3-11d3PYxSInLN-Q9_T2axD6kkXd3XRgbGZTm6s"],
    "c": ["NB"]
    }

    Registry Rotation Event Message Body

    {
    "v": "KERI10JSON00011c_",
    "t": "vrt",
    "d": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "i": "E_D0eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqA7BxL",
    "s": "2",
    "p": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "bt": "1",
    "br": ["BbIg_3-11d3PYxSInLN-Q9_T2axD6kkXd3XRgbGZTm6s"],
    "ba": []
    }

    Backerless ACDC Issuance Message Body

    {
    "v": "KERI10JSON00011c_",
    "t": "iss",
    "d": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "i": "E_D0eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqA7BxL",
    "s": "0",
    "ri": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "dt": "2020-08-01T12:20:05.123456+00:00"
    }

    Backerless ACDC Revocation Message Body

    {
    "v": "KERI10JSON00011c_",
    "t": "rev",
    "d": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "i": "E_D0eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqA7BxL",
    "s": "1",
    "p": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "ri": "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "dt": "2020-08-01T12:20:05.123456+00:00"
    }

    Backered ACDC Issuance Message Body

    {
    "v" : "KERI10JSON00011c_",
    "t" : "bis",
    "d" : "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "i" : "E_D0eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqA7BxL",
    "s" : "0",
    "ri" : "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "ra" : {
    "d": "E8ipype17kJlQfYp3gcF3F1PNKfdX6vpOLXU8YyykB5o",
    "i": "EFvQCx4-O9bb9fGzY7KgbPeUtjtU0M4OBQWsiIk8za24",
    "s": 0
    }
    "dt": "2020-08-01T12:20:05.123456+00:00"
    }

    Backered ACDC Revocation Message Body

    {
    "v" : "KERI10JSON00011c_",
    "t" : "brv",
    "d" : "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "i" : "E_D0eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqA7BxL",
    "s" : "1",
    "p" : "ELh3eYC2W_Su1izlvm0xxw01n3XK8bdV2Zb09IqlXB7A",
    "ri" : "EvxMACzQxU2rDj-X5SPDZYtUn56i4fjjH8yDRFRzaMfI",
    "ra" : {
    "d": "E8ipype17kJlQfYp3gcF3F1PNKfdX6vpOLXU8YyykB5o",
    "i": "EFvQCx4-O9bb9fGzY7KgbPeUtjtU0M4OBQWsiIk8za24",
    "s": 0
    }
    "dt": "2020-08-01T12:20:05.123456+00:00"
    }

    Appendix: Cryptographic Strength and Security

    Cryptographic Strength

    For crypto-systems with perfect-security, the critical design parameter is the number of bits of entropy needed to resist any practical brute force attack. In other words, when a large random or pseudo-random number from a cryptographic strength pseudo-random number generator (CSPRNG) {{CSPRNG}} expressed as a string of characters is used as a seed or private key to a cryptosystem with perfect-security, the critical design parameter is determined by the amount of random entropy in that string needed to withstand a brute force attack. Any subsequent cryptographic operations must preserve that minimum level of cryptographic strength. In information theory {{IThry}}{{ITPS}} the entropy of a message or string of characters is measured in bits. Another way of saying this is that the degree of randomness of a string of characters can be measured by the number of bits of entropy in that string. Assuming conventional non-quantum computers, the convention wisdom is that, for systems with information-theoretic or perfect security, the seed/key needs to have on the order of 128 bits (16 bytes, 32 hex characters) of entropy to practically withstand any brute force attack {{TMCrypto}}{{QCHC}}. A cryptographic quality random or pseudo-random number expressed as a string of characters will have essentially as many bits of entropy as the number of bits in the number. For other crypto-systems such as digital signatures that do not have perfect security, the size of the seed/key may need to be much larger than 128 bits in order to maintain 128 bits of cryptographic strength.

    An N-bit long base-2 random number has 2N different possible values. Given that no other information is available to an attacker with perfect security, the attacker may need to try every possible value before finding the correct one. Thus the number of attempts that the attacker would have to try maybe as much as 2N-1. Given available computing power, one can easily show that 128 is a large enough N to make brute force attack computationally infeasible.

    Let's suppose that the adversary has access to supercomputers. Current supercomputers can perform on the order of one quadrillion operations per second. Individual CPU cores can only perform about 4 billion operations per second, but a supercomputer will parallelly employ many cores. A quadrillion is approximately 250 = 1,125,899,906,842,624. Suppose somehow an adversary had control over one million (220 = 1,048,576) supercomputers which could be employed in parallel when mounting a brute force attack. The adversary could then try 250 220 = 270 values per second (assuming very conservatively that each try only took one operation). There are about 3600 24 * 365 = 313,536,000 = 2log2313536000=224.91 ~= 225 seconds in a year. Thus this set of a million super computers could try 250+20+25 = 295 values per year. For a 128-bit random number this means that the adversary would need on the order of 2128-95 = 233 = 8,589,934,592 years to find the right value. This assumes that the value of breaking the cryptosystem is worth the expense of that much computing power. Consequently, a cryptosystem with perfect security and 128 bits of cryptographic strength is computationally infeasible to break via brute force attack.

    Information Theoretic Security and Perfect Security

    The highest level of cryptographic security with respect to a cryptographic secret (seed, salt, or private key) is called information-theoretic security {{ITPS}}. A cryptosystem that has this level of security cannot be broken algorithmically even if the adversary has nearly unlimited computing power including quantum computing. It must be broken by brute force if at all. Brute force means that in order to guarantee success the adversary must search for every combination of key or seed. A special case of information-theoretic security is called perfect-security {{ITPS}}. Perfect-security means that the ciphertext provides no information about the key. There are two well-known cryptosystems that exhibit perfect security. The first is a one-time-pad (OTP) or Vernum Cipher {{OTP}}{{VCphr}}, the other is secret splitting {{SSplt}}, a type of secret sharing {{SShr}} that uses the same technique as a one-time-pad.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    TODO Security

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    KERI Community at the WebOfTrust Github project.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-ssmith-oobi/index.html b/docs/Resources/mdfiles/draft-ssmith-oobi/index.html index 25f9cf5e7ad..b26718f7b07 100644 --- a/docs/Resources/mdfiles/draft-ssmith-oobi/index.html +++ b/docs/Resources/mdfiles/draft-ssmith-oobi/index.html @@ -7,7 +7,7 @@ - +
    @@ -135,6 +135,6 @@ which OOBI queries it will respond to. This may also be inited with a config file.

    Data OOBI (DOOBI)

    ToDo

    DID Resolvers with OOBIs

    ToDo

    DID-Comm with OOBIs

    ToDo

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    OOBIs are out-of-band with respect to the security of the infrastructure to which they provide an introduction. OOBIs assume that any introduced endpoints will be subsequently verified by their associated in-band mechanisms. There are no other security considerations.

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    TODO acknowledge.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/draft-ssmith-said/index.html b/docs/Resources/mdfiles/draft-ssmith-said/index.html index d1dc336c96c..b2d8e86b793 100644 --- a/docs/Resources/mdfiles/draft-ssmith-said/index.html +++ b/docs/Resources/mdfiles/draft-ssmith-said/index.html @@ -7,7 +7,7 @@ - +
    @@ -44,6 +44,6 @@ layers. The OOBI protocol is an example of using embedded SAIDs inside URLs merely for verifiable discovery while using the bare SAID in the discovered data item.

    Appendix: JSON Schema with SAIDs

    ToDo. Provide normative rules for using SAIDs to lock-down JSON Schema (immutable) to prevent schema malleability attacks.

    Conventions and Definitions

    {::boilerplate bcp14-tagged}

    Security Considerations

    TODO Security

    IANA Considerations

    This document has no IANA actions.

    --- back

    Acknowledgments

    {:numbered="false"}

    Members of the keripy development team and the ToIP ACDC WG.

    - + \ No newline at end of file diff --git a/docs/Resources/mdfiles/kli-demo-2022/index.html b/docs/Resources/mdfiles/kli-demo-2022/index.html index 58729f9cccb..c3594ebad25 100644 --- a/docs/Resources/mdfiles/kli-demo-2022/index.html +++ b/docs/Resources/mdfiles/kli-demo-2022/index.html @@ -7,13 +7,13 @@ - +

    kli-demo-2022

    kli-demo-2022

    Interviewer: Steven Milstein\ Interviewee: Phil Feairheller

    Subtitles, Links table, Brief explanations: Henk van Cann

    This footage is the topic of this file.

    Explanation

    Terms are words used by Phil Feairheller, I provided a link to more explanation, mainly to the ACDC glossary. The point in the video where Phil mentions the term for the first time is called vidstart, the level of understanding at which this term might need explanation, and finally a brief explanation in field text of the term in the first column.

    Scroll table to the right

    To get to the links and other columns of the table you might need to scroll the table all the way to the right.

    Level

    Since KERI and ACDC education start off at the level of SSI-expert, a beginner is not a layman, but somebody with a good common understanding of IT and digital identity.

    • 1=beginner digital identity expert
    • 3=advanced self-sovereign identity expert
    • 7=SSI experts
    Just my 2 cents:
    Don't try KERI and ACDC on your family, friends and other innocent bystanders.
    Termtextlinkvidstartlevel
    IIWInternet Identity Workshop twice in a year un-conference since 2005https://internetidentityworkshop.comhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m03s7
    KERIKey Event Receipt Infrastructurehttps://github.com/WebOfTrust/kerihttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m12s7
    repoSoftware repositoryhttps://github.com/trustoverip/acdc/wiki/repohttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m27s3
    KERIpyPython implementation of KERIhttps://github.com/WebOfTrust/keripyhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m27s7
    repoSoftware repositoryhttps://github.com/trustoverip/acdc/wiki/repohttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m33s1
    coroutinesComputer programs that can be suspended and resumed at will.https://github.com/trustoverip/acdc/wiki/coroutineshttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m41s1
    I/OInput / outputhttps://github.com/trustoverip/acdc/wiki/input-output-(I-O)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m41s1
    HIOHierarchical asynchronous coroutines and I/O in Pythonhttps://github.com/trustoverip/acdc/wiki/hiohttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m41s7
    Sam SmithSamuel M. Smith PhD, Inventor and lead developer of KERIhttps://www.linkedin.com/in/samuel-m-smith/https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m41s7
    pythonProgramming Languagehttps://www.python.orghttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m49s3
    cloneA copy of a system that is - and works exactly as the originalhttps://github.com/trustoverip/acdc/wiki/clonehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=00m55s3
    branchA duplicate of an object under version control for further separate modificationhttps://github.com/trustoverip/acdc/wiki/branchhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=01m00s3
    kliKERI command line interfacehttps://github.com/trustoverip/acdc/wiki/klihttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=01m12s7
    KubernetesKubernetes is an open source platform for managing software containershttps://kubernetes.iohttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=01m18s3
    kubectlKubernetes command line interfacehttps://kubernetes.io/docs/reference/kubectl/https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=01m18s7
    verifiable credentialsThe digital variant of our daily live's credentials (ike passport, driver's license), but in a machine-verifiable wayhttps://github.com/trustoverip/acdc/wiki/verifiable-credential-(VC)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=01m26s1
    Docker containersDocker takes away repetitive, mundane configuration tasks and is used for application developmenthttps://www.docker.comhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=01m38s3
    sub shella child shell started up from - and contained in another parent shellhttps://github.com/trustoverip/acdc/wiki/sub-shellhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=01m46s1
    agentA representative for an identityhttps://github.com/trustoverip/acdc/wiki/agenthttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m01s3
    cloud agentCloud agent is software that is installed on the cloud server instances for security, monitoring, and analysishttps://github.com/trustoverip/acdc/wiki/cloud-agenthttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m01s3
    Py installerPython installer bundles a Python application and all its dependencies into a single packagehttps://pypi.org/project/pyinstaller/https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m09s3
    ElectronA Python interface for Apache Electron command line interfacehttps://pypi.org/project/python-electron/https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m16s3
    U/IA user interface (UI) is the space where interactions between humans and machines occur.https://github.com/trustoverip/acdc/wiki/user-interface-(U-I)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m16s1
    multi-sigA digital signature scheme which allows a group of users to sign a single piece of digital data.https://github.com/trustoverip/acdc/wiki/multisighttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m29s1
    identifierSomething to uniquely identify (public) identities; pointing to something or someone else.https://github.com/trustoverip/acdc/wiki/identifier-systemhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m29s3
    walletA wallet is a collection of data stores; made up of a keystore, local and remote key event log database and credential database.https://github.com/trustoverip/acdc/wiki/wallethttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m34s7
    wallet commandsThe section of kli where verifiable credentials can be listedhttps://docs.google.com/presentation/d/1RIMX7J-cdg8OctoG4JqxPOfqKZsVNodqajtpQ0oFIyE/edit#slide=id.gf2168aef68_0_12https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m34s7
    witnessesEntity that may receive, verify, and store key events for an identifierhttps://github.com/trustoverip/acdc/wiki/witnesshttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m44s7
    watchersGuarantee that KERI logs are immutablehttps://github.com/trustoverip/acdc/wiki/watcherhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=02m44s7
    key managementManagement of cryptographic keys in a crypto-system.https://github.com/trustoverip/acdc/wiki/key-managementhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=04m16s7
    initInitialization, a command in the klihttps://docs.google.com/presentation/d/1RIMX7J-cdg8OctoG4JqxPOfqKZsVNodqajtpQ0oFIyE/edit#slide=id.gf2168aef68_0_12https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=04m21s3
    single sig identifierAn identifier that is controlled by a one-of-one signing keypairhttps://github.com/trustoverip/acdc/wiki/single-signature-identifierhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=04m27s3
    key storeA keystore in KERI is the encrypted data store that hold the private keys for a collection of AIDs.https://github.com/trustoverip/acdc/wiki/keystorehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=04m33s7
    key eventsEvents happening to controlling keys of an identifier recorded in a Key Event Log (KEL).https://github.com/trustoverip/acdc/wiki/key-eventhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=04m39s3
    interaction eventAnchors external data to the key-state as established by the most recent prior establishment eventhttps://github.com/trustoverip/acdc/wiki/interaction-eventhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=04m39s7
    rotation eventChanges the key-state which includes a change to the set of authoritative keypairs for an AIDhttps://github.com/trustoverip/acdc/wiki/rotation-eventhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=04m39s7
    signing thresholdsMinimum number of valid signatures to satisfy the requirement for successful validationhttps://github.com/trustoverip/acdc/wiki/signing-thresholdhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=04m48s7
    KELKey Event Log is the native KERI verifiable data structurehttps://github.com/trustoverip/acdc/wiki/key-event-log-(KEL)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=05m01s7
    verify signaturesApplying an algorithm that either accepts or rejects the message's claim to authenticityhttps://github.com/trustoverip/acdc/wiki/verify-signaturehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=05m32s3
    peer-to-peer communicationsPeers are equally privileged, equipotent participants in a networkhttps://github.com/trustoverip/acdc/wiki/peer-to-peer-(P2P)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=06m13s3
    bootstrap commandStart an empty agent or to run a single agent against one that's already been startedhttps://docs.google.com/presentation/d/1RIMX7J-cdg8OctoG4JqxPOfqKZsVNodqajtpQ0oFIyE/edit#slide=id.gf2168aef68_0_20https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=06m31s3
    saltsRandom data that is used as an additional input to a cryptographic one-way functionhttps://github.com/trustoverip/acdc/wiki/salthttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=06m50s7
    delegationDelegation can be defined as “the act of empowering to act for another”https://github.com/trustoverip/acdc/wiki/delegationhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=07m44s7
    multi-sig delegationdelegated identifiers under multi-signature controlhttps://github.com/trustoverip/acdc/wiki/delegationhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=07m44s7
    JSONJavaScript Object Notationhttps://en.wikipedia.org/wiki/JSONhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=08m08s3
    transferableControl over identifier can be transferred by rotating keyshttps://github.com/trustoverip/acdc/wiki/transferable-identifierhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=08m34s7
    portsA number assigned to uniquely identify a connection endpoint and to direct data to a specific service.https://en.wikipedia.org/wiki/Port_(computer_networking)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=09m04s3
    configuration fileFile used to configure the parameters and initial settings for some computer programshttps://github.com/trustoverip/acdc/wiki/configuration-fileshttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=09m16s1
    RESTREpresentational State Transfer (REST) is a software architectural style that developers apply to web APIshttps://github.com/WebOfTrust/keri/blob/main/docs/keri-dev-env.md#what-exactly-is-a-rest-apihttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=10m00s3
    APIsApplication Programming Interfacehttps://github.com/WebOfTrust/keri/blob/main/docs/keri-dev-env.md#what-exactly-is-a-rest-apihttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=10m00s3
    CURLCommand-line tool (curl) for transferring data using various network protocols.https://en.wikipedia.org/wiki/CURLhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=10m17s3
    post and putHTTP request methods to indicate the desired action to be performed on the identified resourcehttps://en.wikipedia.org/wiki/Hypertext_Transfer_Protocolhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=10m17s3
    SwaggerOpenAPI (former Swagger) is important to KERI, CESR and ACDC. It's open sourced and has many ready-usable extensions in JSON available.https://github.com/WebOfTrust/keri/blob/main/docs/keri-dev-env.md#what-is-swagger-and-openapihttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=10m31s7
    passcodeSecret data, typically a string of characters, usually used to confirm a user's identityhttps://github.com/trustoverip/acdc/wiki/passcodehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=11m06s3
    stretched into an encryption keymake a possibly weak key, typically a password or passphrase, more secure against a brute-force attack by increasing the resourceshttps://github.com/trustoverip/acdc/wiki/key-stretchinghttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=11m11s7
    flagMany command line programs can be set to various mode by using a flag; e.g. -v or --verbose for verbose modehttps://en.wikipedia.org/wiki/Verbose_modehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=12m20s3
    non-transferable identifierControlling keys over this identifier cannot be rotated and therefore this identifier is non-transferable to other controlhttps://github.com/trustoverip/acdc/wiki/non-transferable-identitiferhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=14m28s7
    toadField in KERI data structure for describing the witness thressholdhttps://github.com/WebOfTrust/keripy/blob/28873f42aabef096d2b6f4bf1af5dbd9e219d13f/src/keri/core/eventing.pyhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=15m37s7
    witness thresholdThe minimum number of valid witness signatures requiredhttps://github.com/trustoverip/acdc/wiki/threshold-signature-schemehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=15m37s7
    pre-rotationcommitment to next rotated key set in previous rotation or inception eventhttps://github.com/trustoverip/acdc/wiki/pre-rotationhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=15m54s7
    prefixesA prefix that is composed of a basic Base-64 (URL safe) derivation code pre-pended to Base-64 encoding of a basic public digital signing keyhttps://github.com/trustoverip/acdc/wiki/prefixhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=16m47s7
    Base64A group of binary-to-text encoding schemes that represent binary datahttps://github.com/trustoverip/acdc/wiki/base64https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=16m53s7
    qualifiedwhen qualified, a cryptographic primitive includes a prepended derivation codehttps://github.com/trustoverip/acdc/wiki/qualifiedhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=16m53s7
    derivation codeA special character that encodes the derivation process, pre-pended to the identifierhttps://github.com/trustoverip/acdc/wiki/derivation-codehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=16m53s7
    Blake3 hashBLAKE3 is a relatively young (2020) cryptographic hash function based on Bao and BLAKE2.https://github.com/trustoverip/acdc/wiki/blake3https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=16m57s7
    anchor data intoData anchors are digests of digital data, that uniquely identify this datahttps://github.com/trustoverip/acdc/wiki/data-anchorhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=17m14s7
    AIDAn identifier that is self-certifying and self-sovereignhttps://github.com/trustoverip/acdc/wiki/autonomic-identifier-(AID)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=17m50s7
    sequence numberIncremental number in a loghttps://www.storyofmathematics.com/number-sequences/https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=17m57s3
    digestVerifiable cryptographic commitment. It's a collision resistant hash of contenthttps://github.com/trustoverip/acdc/wiki/digesthttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=17m57s3
    issuance eventThe inception event of a verifiable credentialhttps://github.com/trustoverip/acdc/wiki/issuance-eventhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=18m02s7
    public transaction event logIs a hash linked data structure of transactions that can be used to track statehttps://github.com/trustoverip/acdc/wiki/public-transaction-event-log-(PTEL)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=18m05s7
    verifiableWhen you can succesfully verify a signaturehttps://github.com/trustoverip/acdc/wiki/verify-signaturehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=19m34s7
    establishmentAn event that establishes control authorityhttps://github.com/trustoverip/acdc/wiki/establishment-eventhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=19m39s7
    lmdb databasesLightning Memory-Mapped Databasehttps://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Databasehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=21m42s7
    indexed signaturesUsed when signing anything with a multi-key autonomic identifier; a verifier knows which of the multiple public keys was usedhttps://github.com/trustoverip/acdc/wiki/indexed-signaturehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=23m46s7
    hexHexadecimal notationhttps://en.wikipedia.org/wiki/Hexadecimalhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=23m59s3
    verboseAn option available in many computer operating systems and programming languages that provides additional details as to what the computer is doinghttps://en.wikipedia.org/wiki/Verbose_modehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=25m01s3
    self-addressing identifiersAn identifier that is deterministically generated from and embedded in the content it identifies, making it and its data mutually tamper-evidenthttps://github.com/trustoverip/acdc/wiki/self-addressing-identifier-(SAID)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=25m29s7
    backerBackers include both regular KERI witnesses and ledger-registered backershttps://github.com/trustoverip/acdc/wiki/backerhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=27m48s7
    ledger backerA witness in KERI that is ledger-registeredhttps://github.com/trustoverip/acdc/wiki/ledger-backerhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=27m55s7
    witness backerA native KERI witness whose control authority is established in a KELhttps://github.com/trustoverip/acdc/wiki/witnesshttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=27m55s7
    vLEIDigital verifiable credentials issued by (delegates) of GLEIF to prove that information about a legel entity is verifiably authentichttps://github.com/trustoverip/acdc/wiki/verifiable-legal-entity-identifier-(vLEI)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=30m17s7
    SSI systemSSI Infrastructure consisting of the technological components that are deployed all over the worldhttps://github.com/trustoverip/acdc/wiki/ssi-systemhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=30m22s1
    Indy networkHyperledger Indy network is an SSI system based on a private blockchainhttps://www.hyperledger.org/use/hyperledger-indyhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=30m22s7
    transfer off a ledgerThe act of transferring control authority over an identifier from a ledger (or blockchain) to the native verifiable KERI data structure KELhttps://github.com/trustoverip/acdc/wiki/transfer-off-ledgerhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=30m39s7
    EthereumEthereum is the community-run technology powering the cryptocurrency ether (ETH) and thousands of decentralized applicationshttps://ethereum.org/en/https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=31m02s7
    AriesHyperledger Aries provides an interoperable tool kit for creating, transmitting and storing verifiable digital credentialshttps://www.hyperledger.org/use/arieshttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=31m46s7
    service endpointsA web service endpoint which is a URL at which clients of specific service can get access to the service.https://github.com/trustoverip/acdc/wiki/service-endpointhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=32m54s3
    URLsA reference to a web resource that specifies its location on a computer network and a mechanism for retrieving ithttps://github.com/trustoverip/acdc/wiki/uniform-resource-locator-(URL)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=33m00s1
    IP-addressA numerical label such as '192.0.2.1' that is connected to a computer network that uses the Internet Protocol for communicationhttps://github.com/trustoverip/acdc/wiki/ip-addresshttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=33m42s1
    TCP endpointThis is a service endpoint of the web transmission control protocolhttps://github.com/trustoverip/acdc/wiki/tcp-endpointhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=34m00s3
    inquisitorhttps://github.com/trustoverip/acdc/wiki/inquisitorhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=37m19s7
    dip: taghttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=49m13s7
    icp: taghttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=49m13s7
    di: taghttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=49m20s7
    locked statedefault state of an encrypted KERI data store with a passcodehttps://github.com/trustoverip/acdc/wiki/locked-statehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=52m22s7
    onepasspassword managerhttps://github.com/doglex/onepasshttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=53m04s7
    data OOBIsdata out-of-band ntroductionshttps://github.com/trustoverip/acdc/wiki/out-of-band-introduction-(OOBI)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=53m48s7
    credential schema OOBIscredential schema out-of-band ntroductionshttps://github.com/trustoverip/acdc/wiki/out-of-band-introduction-(OOBI)https://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=53m54s7
    KeepIs KERI's and ACDC's crypto wallet: A task orientated application for managing AIDs in ecosystems, e.g. the vLEI Ecosystemhttps://github.com/trustoverip/acdc/wiki/keephttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=54m12s7
    zero trusta Zero Trust approach trusts no onehttps://github.com/trustoverip/acdc/wiki/zero-trusthttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=55m37s3
    credential registriesIs a functional component that has the capability to register and advertise the information about Credential Types that their respective Governing Parties have decided to disclosehttps://essif-lab.github.io/framework/docs/terms/credential-cataloguehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=55m53s3
    revocation eventsAn event that revokes control authority over an identifierhttps://github.com/trustoverip/acdc/wiki/revocation-eventhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=55m58s3
    two-factor authIs an electronic authentication method in which a user is granted access to a website or application only after successfully presenting two or more pieces of evidencehttps://en.wikipedia.org/wiki/Multi-factor_authenticationhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=56m13s1
    escrow stateshttps://github.com/trustoverip/acdc/wiki/escrow-statehttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=56m59s7
    server-sent eventsMailbox notifications; a streaming service for the agent U/I, to get notifications from the KERI system itselfhttps://github.com/trustoverip/acdc/wiki/server-sent-eventhttps://youtu.be/GqjsRuu0V5A?list=PLXVbQu7JH_LHVhs0rZ9Bb8ocyKlPljkaG&t=57m19s7
    - + \ No newline at end of file diff --git a/docs/Test/term_test/index.html b/docs/Test/term_test/index.html index 6c6c8a5c390..30116d74bb6 100644 --- a/docs/Test/term_test/index.html +++ b/docs/Test/term_test/index.html @@ -7,12 +7,12 @@ - +

    TEST

    Winnie-the-Pooh, also called Pooh Bear and Pooh, is a fictional anthropomorphic teddy bear created by English author A. A. Milne and English illustrator E. H. Shepard.

    KERI logoThe first collection of stories about the character was the book Winnie-the-Pooh (1926), and this was followed by The House at Pooh Corner (1928). Milne also included a poem about the bear in the children's verse book When We Were Very Young (1924) and many more in Now We Are Six (1927). All four volumes were illustrated by E. H. Shepard.

    The Pooh stories have been translated into many languages, including Alexander Lenard's Latin translation, Winnie ille Pu, which was first published in 1958, and, in 1960, became the only Latin book ever to have been featured on The New York Times Best Seller list.[1]

    In 1961, Walt Disney Productions licensed certain film and other rights of Milne's Winnie-the-Pooh stories from the estate of A. A. Milne and the licensing agent Stephen Slesinger, Inc., and adapted the Pooh stories, using the unhyphenated name "Winnie the Pooh", into a series of features that would eventually become one of its most successful franchises.

    In popular film adaptations, Pooh has been voiced by actors Sterling Holloway, Hal Smith, and Jim Cummings in English, and Yevgeny Leonov in Russian.

    - + \ No newline at end of file diff --git a/docs/Test/term_test2/index.html b/docs/Test/term_test2/index.html index 075f36a8b92..7484a458c47 100644 --- a/docs/Test/term_test2/index.html +++ b/docs/Test/term_test2/index.html @@ -7,12 +7,12 @@ - +

    TEST2

    Paddington Bear is a fictional character in children's literature. He first appeared on 13 October 1958 in the children's book A Bear Called Paddington and has been featured in more than twenty books written by British author Michael Bond, and illustrated by Peggy Fortnum and other artists.[1]

    KERI logo

    The friendly spectacled bear from “darkest Peru” – with his old hat, battered suitcase, duffel coat and love of marmalade – has become a classic character in children's literature.[2] An anthropomorphised bear, Paddington is always polite – addressing people as “Mr”, “Mrs” and “Miss” but rarely by first names – and kindhearted, though he inflicts hard stares on those who incur his disapproval.[3] He has an endless capacity for innocently getting into trouble, but he is known to “try so hard to get things right”. He was discovered in London Paddington station by the (human) Brown family who adopted him and gives his full name as “Paddington Brown,” as his original name in bear language was too hard for them to pronounce.

    One of the most beloved British fictional characters, a Paddington Bear soft toy was chosen by British tunnellers as the first item to pass through to their French counterparts when the two sides of the Channel Tunnel were linked in 1994.[4] Paddington books have been translated into 30 languages across 70 titles and have sold more than 30 million copies worldwide. As of June 2016, the Paddington Bear franchise was owned by Vivendi's StudioCanal. Bond, however, continued to own the publishing rights to his series, which was licensed to HarperCollins in April 2017.[5]

    Paddington Bear has been adapted for television, films and commercials since its first appearance on the BBC in 1966. Television adaptations include Paddington broadcast from 1976 to 1980. The critically acclaimed and commercially successful films Paddington (2014) and Paddington 2 (2017) were both nominated for the BAFTA Award for Outstanding British Film.

    - + \ No newline at end of file diff --git a/docs/Test/term_test3/index.html b/docs/Test/term_test3/index.html index 7d6c3b59c5a..339cfef021f 100644 --- a/docs/Test/term_test3/index.html +++ b/docs/Test/term_test3/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Source ToIP issue 10

    message integrity seems to be included in technical integrity.

    The further separation of Authenticity and Integrity in the ToIP glossary can be largely adopted by KERI? {TBW}

    See also

    verified integrity\ (complementary) integrity verification

    *Validation in relation to integrity, in KERI's view would be an assessment of what's been verified before; in a certain context from a certain angle. And this mechanism is too close to veracity judgement, to be an objective verdict over integrity of data.

    - + \ No newline at end of file diff --git a/docs/Video/lets-keri-on-together/index.html b/docs/Video/lets-keri-on-together/index.html index 26e16ec4395..c62ad1092a6 100644 --- a/docs/Video/lets-keri-on-together/index.html +++ b/docs/Video/lets-keri-on-together/index.html @@ -7,7 +7,7 @@ - +
    @@ -1198,6 +1198,6 @@ with signed events everywhere, It's really cool so  maybe we can do that sometime next week. Steven: okay

    - + \ No newline at end of file diff --git a/docs/Visualisations/Backed-and-Backerless-Issuance-and-Revocation/index.html b/docs/Visualisations/Backed-and-Backerless-Issuance-and-Revocation/index.html index 1095b0e8d72..da4db84bb51 100644 --- a/docs/Visualisations/Backed-and-Backerless-Issuance-and-Revocation/index.html +++ b/docs/Visualisations/Backed-and-Backerless-Issuance-and-Revocation/index.html @@ -7,12 +7,12 @@ - +

    Backed and Backerless Issuance and Revocation

    Flow charts created by Jason Colburne.

    Backed Issuance and Revocation

    (Most terms in this visualisation are clickable)

    icpKELixnpVCbisra.dACDCrivcpiMGMTiiia.dixnpra.ivrtppa.dixna.da.ia.ia.ivcppbrvpra.ira.dia.da.ibackedissuance/revocation;

    Backerless Issuance and Revocation

    icpKELixnpVCissACDCrivcpiMGMTiiiaixnpria.da.iixnprevpia.da.ibackerlessissuance/revocationri;
    - + \ No newline at end of file diff --git a/docs/Visualisations/KERI-&-ACDC-Architecture/index.html b/docs/Visualisations/KERI-&-ACDC-Architecture/index.html index d98d011ce0a..2a15712e438 100644 --- a/docs/Visualisations/KERI-&-ACDC-Architecture/index.html +++ b/docs/Visualisations/KERI-&-ACDC-Architecture/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/docs/category/gleif/index.html b/docs/category/gleif/index.html index 8701de11178..41a68cb98bb 100644 --- a/docs/category/gleif/index.html +++ b/docs/category/gleif/index.html @@ -7,12 +7,12 @@ - +

    GLEIF

    GLEIF documents.

    - + \ No newline at end of file diff --git a/docs/glossary-ToIP/index.html b/docs/glossary-ToIP/index.html index 9da5037526a..db2bd456b53 100644 --- a/docs/glossary-ToIP/index.html +++ b/docs/glossary-ToIP/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/docs/glossary/ACDC/index.html b/docs/glossary/ACDC/index.html index 3d560fb985d..a3a18670586 100644 --- a/docs/glossary/ACDC/index.html +++ b/docs/glossary/ACDC/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/ADC/index.html b/docs/glossary/ADC/index.html index 5da06f2a1a3..376abb63b95 100644 --- a/docs/glossary/ADC/index.html +++ b/docs/glossary/ADC/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/AID/index.html b/docs/glossary/AID/index.html index f0262532839..393b6effe4b 100644 --- a/docs/glossary/AID/index.html +++ b/docs/glossary/AID/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/AN/index.html b/docs/glossary/AN/index.html index 52e8d11b86b..958e5263fa1 100644 --- a/docs/glossary/AN/index.html +++ b/docs/glossary/AN/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/APC/index.html b/docs/glossary/APC/index.html index 5e25a59996f..d63e04cd9f0 100644 --- a/docs/glossary/APC/index.html +++ b/docs/glossary/APC/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/API/index.html b/docs/glossary/API/index.html index 118103b8487..197456a5b9e 100644 --- a/docs/glossary/API/index.html +++ b/docs/glossary/API/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/AVR/index.html b/docs/glossary/AVR/index.html index c1737b0af82..2dd91a29466 100644 --- a/docs/glossary/AVR/index.html +++ b/docs/glossary/AVR/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/BADA/index.html b/docs/glossary/BADA/index.html index e825ac06b80..5d1811338f0 100644 --- a/docs/glossary/BADA/index.html +++ b/docs/glossary/BADA/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/BFT/index.html b/docs/glossary/BFT/index.html index c064ac05d07..1935eea02c0 100644 --- a/docs/glossary/BFT/index.html +++ b/docs/glossary/BFT/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/CESR/index.html b/docs/glossary/CESR/index.html index 5c7d4005a63..ebe7f75d418 100644 --- a/docs/glossary/CESR/index.html +++ b/docs/glossary/CESR/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/CLC/index.html b/docs/glossary/CLC/index.html index b7f9bde33d8..352d2719605 100644 --- a/docs/glossary/CLC/index.html +++ b/docs/glossary/CLC/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/CRUD/index.html b/docs/glossary/CRUD/index.html index db771341ee7..1f0cfe1e0fa 100644 --- a/docs/glossary/CRUD/index.html +++ b/docs/glossary/CRUD/index.html @@ -7,12 +7,12 @@ - +

    CRUD

    Definition

    Is acronym for the traditional client-server database update policy is CRUD (Create, Read, Update, Delete).

    CRUD as opposed to RUN which is the acronym for the new peer-to-peer end-verifiable monotonic update policy.

    We RUN off the CRUD, which means that because the source of truth for each data item is a decentralized controller Peer, a given database hosted by any Peer does not create records in the traditional sense of a server creating records for a client.

    - + \ No newline at end of file diff --git a/docs/glossary/CSPRNG/index.html b/docs/glossary/CSPRNG/index.html index 2acfcdaee58..695397a5c7f 100644 --- a/docs/glossary/CSPRNG/index.html +++ b/docs/glossary/CSPRNG/index.html @@ -7,13 +7,13 @@ - +

    CSPRNG

    Definition

    means "Cryptographically Secure Pseudorandom Number Generator" which means that a sequence of numbers (bits, bytes...) that is produced from an algorithm which is deterministic (the sequence is generated from some unknown internal state), hence pseudorandom, is also cryptographically secure, or not.

    It is cryptographically secure if nobody can reliably distinguish the output from true randomness, even if the PRNG algorithm is perfectly known (but not its internal state). A non-cryptographically secure PRNG would fool basic statistical tests but can be distinguished from true randomness by an intelligent attacker.\ (Source: https://crypto.stackexchange.com/questions/12436/what-is-the-difference-between-csprng-and-prng)

    See also

    PRNG

    - + \ No newline at end of file diff --git a/docs/glossary/CT/index.html b/docs/glossary/CT/index.html index 5a4321b146f..09edd1e95b2 100644 --- a/docs/glossary/CT/index.html +++ b/docs/glossary/CT/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/DAG/index.html b/docs/glossary/DAG/index.html index 816ded96d7a..56fe70df62b 100644 --- a/docs/glossary/DAG/index.html +++ b/docs/glossary/DAG/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/DAR/index.html b/docs/glossary/DAR/index.html index f045ec9fd00..7439bbada71 100644 --- a/docs/glossary/DAR/index.html +++ b/docs/glossary/DAR/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/DEL/index.html b/docs/glossary/DEL/index.html index 8f1447592a9..46c4c4ad5a1 100644 --- a/docs/glossary/DEL/index.html +++ b/docs/glossary/DEL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/DHT/index.html b/docs/glossary/DHT/index.html index 1dd9d90c494..cb40dd2cd09 100644 --- a/docs/glossary/DHT/index.html +++ b/docs/glossary/DHT/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/DID/index.html b/docs/glossary/DID/index.html index c32141d0bda..a717e013cd5 100644 --- a/docs/glossary/DID/index.html +++ b/docs/glossary/DID/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/DKMI/index.html b/docs/glossary/DKMI/index.html index 12d8d4507c7..84a9906c110 100644 --- a/docs/glossary/DKMI/index.html +++ b/docs/glossary/DKMI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/DPKI/index.html b/docs/glossary/DPKI/index.html index 0eb74f7e908..1f8d07aa197 100644 --- a/docs/glossary/DPKI/index.html +++ b/docs/glossary/DPKI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/ECR/index.html b/docs/glossary/ECR/index.html index 63662891b2c..4d9e4f19a97 100644 --- a/docs/glossary/ECR/index.html +++ b/docs/glossary/ECR/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/FFI/index.html b/docs/glossary/FFI/index.html index c6180e7d715..b6407d89e27 100644 --- a/docs/glossary/FFI/index.html +++ b/docs/glossary/FFI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/GAR/index.html b/docs/glossary/GAR/index.html index 19ae5f03f6d..0c74e6ce8a0 100644 --- a/docs/glossary/GAR/index.html +++ b/docs/glossary/GAR/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/GLEIF/index.html b/docs/glossary/GLEIF/index.html index 1f1bff140c6..f96291a62db 100644 --- a/docs/glossary/GLEIF/index.html +++ b/docs/glossary/GLEIF/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/GLEIS/index.html b/docs/glossary/GLEIS/index.html index fa65fa163bf..68fb622b12e 100644 --- a/docs/glossary/GLEIS/index.html +++ b/docs/glossary/GLEIS/index.html @@ -7,12 +7,12 @@ - +

    GLEIS

    Definition

    Global Legal Entity Identifier System

    - + \ No newline at end of file diff --git a/docs/glossary/GPG/index.html b/docs/glossary/GPG/index.html index 36a6ad2cfd2..561132b2e90 100644 --- a/docs/glossary/GPG/index.html +++ b/docs/glossary/GPG/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/HSM/index.html b/docs/glossary/HSM/index.html index b77a00c7fdf..ef3cb2de9b6 100644 --- a/docs/glossary/HSM/index.html +++ b/docs/glossary/HSM/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/Home/index.html b/docs/glossary/Home/index.html index dbd322b0daf..04da70a52ed 100644 --- a/docs/glossary/Home/index.html +++ b/docs/glossary/Home/index.html @@ -7,12 +7,12 @@ - +

    Home

    Welcome to the acdc-terms wiki!

    The wiki also serves the glossary terms for the underlying and related techniques to ACDC, like KERI, CESR and OOBI.

    - + \ No newline at end of file diff --git a/docs/glossary/I-O/index.html b/docs/glossary/I-O/index.html index 1b425316dbd..c28c736b0c6 100644 --- a/docs/glossary/I-O/index.html +++ b/docs/glossary/I-O/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/IANA/index.html b/docs/glossary/IANA/index.html index 5d8b12e19f2..d71d9b8f353 100644 --- a/docs/glossary/IANA/index.html +++ b/docs/glossary/IANA/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/IPEX/index.html b/docs/glossary/IPEX/index.html index 497059591e8..23adb1fc620 100644 --- a/docs/glossary/IPEX/index.html +++ b/docs/glossary/IPEX/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/JOSE/index.html b/docs/glossary/JOSE/index.html index 932f237cce0..10bed2c9fd9 100644 --- a/docs/glossary/JOSE/index.html +++ b/docs/glossary/JOSE/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/JSON/index.html b/docs/glossary/JSON/index.html index d9c645ac38b..ec3973079b4 100644 --- a/docs/glossary/JSON/index.html +++ b/docs/glossary/JSON/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/KA2CE/index.html b/docs/glossary/KA2CE/index.html index e23d0026d00..283b1df8d2f 100644 --- a/docs/glossary/KA2CE/index.html +++ b/docs/glossary/KA2CE/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/KAACE/index.html b/docs/glossary/KAACE/index.html index 5d0d3ed151f..ad46bdb93cc 100644 --- a/docs/glossary/KAACE/index.html +++ b/docs/glossary/KAACE/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/KEL/index.html b/docs/glossary/KEL/index.html index 530ab2e9fd6..c6efb5097f9 100644 --- a/docs/glossary/KEL/index.html +++ b/docs/glossary/KEL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/KERI/index.html b/docs/glossary/KERI/index.html index 560ea738412..a28f94e2d31 100644 --- a/docs/glossary/KERI/index.html +++ b/docs/glossary/KERI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/KERISSE/index.html b/docs/glossary/KERISSE/index.html index 9e465154f64..671d1358dd1 100644 --- a/docs/glossary/KERISSE/index.html +++ b/docs/glossary/KERISSE/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/KERL/index.html b/docs/glossary/KERL/index.html index 14a53dd6505..19aeae3b24a 100644 --- a/docs/glossary/KERL/index.html +++ b/docs/glossary/KERL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/KID/index.html b/docs/glossary/KID/index.html index 6f55d63bf3f..8ed2f303345 100644 --- a/docs/glossary/KID/index.html +++ b/docs/glossary/KID/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/KRAM/index.html b/docs/glossary/KRAM/index.html index 2d0542ffd34..8f07b2a1ff2 100644 --- a/docs/glossary/KRAM/index.html +++ b/docs/glossary/KRAM/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/LEI/index.html b/docs/glossary/LEI/index.html index cbf4b8dbd21..db96c7856ce 100644 --- a/docs/glossary/LEI/index.html +++ b/docs/glossary/LEI/index.html @@ -7,12 +7,12 @@ - +

    LEI

    Definition

    Legal Entity Identifier

    - + \ No newline at end of file diff --git a/docs/glossary/LLM/index.html b/docs/glossary/LLM/index.html index 7dc90b87cca..997c91bd8b9 100644 --- a/docs/glossary/LLM/index.html +++ b/docs/glossary/LLM/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/LoA/index.html b/docs/glossary/LoA/index.html index f5596cdc48c..89604952563 100644 --- a/docs/glossary/LoA/index.html +++ b/docs/glossary/LoA/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/LoC/index.html b/docs/glossary/LoC/index.html index d23af08ab87..2e8e8a7d8c3 100644 --- a/docs/glossary/LoC/index.html +++ b/docs/glossary/LoC/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/NFT/index.html b/docs/glossary/NFT/index.html index be5857f149f..d1e58edb545 100644 --- a/docs/glossary/NFT/index.html +++ b/docs/glossary/NFT/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/OOBI/index.html b/docs/glossary/OOBI/index.html index e44eca038fd..60f9f52bcbd 100644 --- a/docs/glossary/OOBI/index.html +++ b/docs/glossary/OOBI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/OOR/index.html b/docs/glossary/OOR/index.html index 3dab1008c1b..1306fc8c4cc 100644 --- a/docs/glossary/OOR/index.html +++ b/docs/glossary/OOR/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/P2P/index.html b/docs/glossary/P2P/index.html index 35a0af8ca45..6b850d91523 100644 --- a/docs/glossary/P2P/index.html +++ b/docs/glossary/P2P/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/PGP/index.html b/docs/glossary/PGP/index.html index 474dbad4e41..ed0e905d28d 100644 --- a/docs/glossary/PGP/index.html +++ b/docs/glossary/PGP/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/PID/index.html b/docs/glossary/PID/index.html index de1c3ec96a0..eeb149dd2f3 100644 --- a/docs/glossary/PID/index.html +++ b/docs/glossary/PID/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/PKI/index.html b/docs/glossary/PKI/index.html index 68efdfc9136..382d2ab03f8 100644 --- a/docs/glossary/PKI/index.html +++ b/docs/glossary/PKI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/PRNG/index.html b/docs/glossary/PRNG/index.html index 6e63db22b48..4730a5ae24e 100644 --- a/docs/glossary/PRNG/index.html +++ b/docs/glossary/PRNG/index.html @@ -7,13 +7,13 @@ - +

    PRNG

    Definition

    means "Pseudorandom Number Generator" which means that a sequence of numbers (bits, bytes...) is produced from an algorithm which looks random, but is in fact deterministic (the sequence is generated from some unknown internal state), hence pseudorandom.

    Such pseudorandomness can be cryptographically secure, or not. It is cryptographically secure if nobody can reliably distinguish the output from true randomness, even if the PRNG algorithm is perfectly known (but not its internal state). A non-cryptographically secure PRNG would fool basic statistical tests but can be distinguished from true randomness by an intelligent attacker.\ (Source: https://crypto.stackexchange.com/questions/12436/what-is-the-difference-between-csprng-and-prng)

    See also

    CSPRNG

    - + \ No newline at end of file diff --git a/docs/glossary/PTEL/index.html b/docs/glossary/PTEL/index.html index be4a7d1934c..74f2c9bce75 100644 --- a/docs/glossary/PTEL/index.html +++ b/docs/glossary/PTEL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/QAR/index.html b/docs/glossary/QAR/index.html index 9d7e720fb78..f8ed4262162 100644 --- a/docs/glossary/QAR/index.html +++ b/docs/glossary/QAR/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/QVI/index.html b/docs/glossary/QVI/index.html index b9595e2921f..e339c48f85b 100644 --- a/docs/glossary/QVI/index.html +++ b/docs/glossary/QVI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/RUN/index.html b/docs/glossary/RUN/index.html index e282ece63e3..13a671acedb 100644 --- a/docs/glossary/RUN/index.html +++ b/docs/glossary/RUN/index.html @@ -7,12 +7,12 @@ - +

    RUN

    Definition

    The acronym for the new peer-to-peer end-verifiable monotonic update policy is RUN (Read, Update, Nullify).

    RUN as opposed to CRUD which is the traditional client-server database update policy.

    We RUN off the CRUD, which means that because the source of truth for each data item is a decentralized controller Peer, a given database hosted by any Peer does not create records in the traditional sense of a server creating records for a client.

    - + \ No newline at end of file diff --git a/docs/glossary/SAD/index.html b/docs/glossary/SAD/index.html index 3fcc5cf0401..0d4f1d3fedd 100644 --- a/docs/glossary/SAD/index.html +++ b/docs/glossary/SAD/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/SAID/index.html b/docs/glossary/SAID/index.html index 72cf60e40ec..e771c9a2525 100644 --- a/docs/glossary/SAID/index.html +++ b/docs/glossary/SAID/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/SATP/index.html b/docs/glossary/SATP/index.html index e02a6cba24f..01e529d24ce 100644 --- a/docs/glossary/SATP/index.html +++ b/docs/glossary/SATP/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/SCID/index.html b/docs/glossary/SCID/index.html index b677fba1680..1f7b536aadf 100644 --- a/docs/glossary/SCID/index.html +++ b/docs/glossary/SCID/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/SKRAP/index.html b/docs/glossary/SKRAP/index.html index acf9dde0bfa..c74ec1dacc5 100644 --- a/docs/glossary/SKRAP/index.html +++ b/docs/glossary/SKRAP/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/SKWA/index.html b/docs/glossary/SKWA/index.html index f9b6821ab0d..7fb6dfca3ff 100644 --- a/docs/glossary/SKWA/index.html +++ b/docs/glossary/SKWA/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/SPAC/index.html b/docs/glossary/SPAC/index.html index f633de7eaf3..2e912a27f96 100644 --- a/docs/glossary/SPAC/index.html +++ b/docs/glossary/SPAC/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/SSI/index.html b/docs/glossary/SSI/index.html index 1bcbe91f017..55fa89e76e1 100644 --- a/docs/glossary/SSI/index.html +++ b/docs/glossary/SSI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/TCP/index.html b/docs/glossary/TCP/index.html index 7cef612c077..ad4838e2845 100644 --- a/docs/glossary/TCP/index.html +++ b/docs/glossary/TCP/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/TEL/index.html b/docs/glossary/TEL/index.html index 27c48b9669b..ae916fab964 100644 --- a/docs/glossary/TEL/index.html +++ b/docs/glossary/TEL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/TOAD/index.html b/docs/glossary/TOAD/index.html index be28afb0a26..247a42083be 100644 --- a/docs/glossary/TOAD/index.html +++ b/docs/glossary/TOAD/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/UI/index.html b/docs/glossary/UI/index.html index b7565afc73a..5a0f0fdf38c 100644 --- a/docs/glossary/UI/index.html +++ b/docs/glossary/UI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/URL/index.html b/docs/glossary/URL/index.html index ec447b41faf..11204fec19e 100644 --- a/docs/glossary/URL/index.html +++ b/docs/glossary/URL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/VC-TEL/index.html b/docs/glossary/VC-TEL/index.html index 726fb7a77ae..a76282209f9 100644 --- a/docs/glossary/VC-TEL/index.html +++ b/docs/glossary/VC-TEL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/VC/index.html b/docs/glossary/VC/index.html index 56e4778ee82..2a9f186e545 100644 --- a/docs/glossary/VC/index.html +++ b/docs/glossary/VC/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/VDS/index.html b/docs/glossary/VDS/index.html index c61518ee0f1..5cf8d56c52a 100644 --- a/docs/glossary/VDS/index.html +++ b/docs/glossary/VDS/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/XBRL/index.html b/docs/glossary/XBRL/index.html index b40ea60ccff..8eb7ce49ded 100644 --- a/docs/glossary/XBRL/index.html +++ b/docs/glossary/XBRL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/agency/index.html b/docs/glossary/agency/index.html index c348ea5e041..a59f68846aa 100644 --- a/docs/glossary/agency/index.html +++ b/docs/glossary/agency/index.html @@ -7,12 +7,12 @@ - +

    agency

    Definition

    Agents can be people, edge computers and the functionality within wallets. The service an agent offers is agency.

    - + \ No newline at end of file diff --git a/docs/glossary/agent/index.html b/docs/glossary/agent/index.html index f166c88667d..e82bacee74b 100644 --- a/docs/glossary/agent/index.html +++ b/docs/glossary/agent/index.html @@ -7,12 +7,12 @@ - +

    agent

    Definition

    A representative for an identity. MAY require the use of a wallet. MAY support transfer.

    eSSIF-lab definition

    agent in the #essiflab glossary here. Term also synced in the ToIP glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/ambient-verifiability/index.html b/docs/glossary/ambient-verifiability/index.html index c0a88a8b6e9..3cce4347f6d 100644 --- a/docs/glossary/ambient-verifiability/index.html +++ b/docs/glossary/ambient-verifiability/index.html @@ -7,12 +7,12 @@ - +

    ambient-verifiability

    Definition

    Verifiable by anyone, anywhere, at anytime. Although this seems a pretty general term, it was first used in the context of KERI by Sam Smith.

    An example of ambient verifiability is Ambient Duplicity Detection that describes the possibility of detecting duplicity by anyone, anywhere, anytime.

    - + \ No newline at end of file diff --git a/docs/glossary/append-only-event-logs/index.html b/docs/glossary/append-only-event-logs/index.html index c73712de075..d94749ece03 100644 --- a/docs/glossary/append-only-event-logs/index.html +++ b/docs/glossary/append-only-event-logs/index.html @@ -7,12 +7,12 @@ - +

    append-only-event-logs

    Definition

    Append-only is a property of computer data storage such that new data can be appended to the storage, but where existing data is immutable.

    A blockchain is an example of an append-only log. The events can be transactions. Bitcoin is a well-known Append only log where the events are totally ordered and signed transfers of control over unspent transaction output.

    More on Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/application-programming-interface/index.html b/docs/glossary/application-programming-interface/index.html index a7636b6bc2b..acb798c8d84 100644 --- a/docs/glossary/application-programming-interface/index.html +++ b/docs/glossary/application-programming-interface/index.html @@ -7,12 +7,12 @@ - +

    application-programming-interface

    Definition

    An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software.

    API specification

    A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation.

    More on source Wikipedia.

    - + \ No newline at end of file diff --git a/docs/glossary/authentic-chained-data-container/index.html b/docs/glossary/authentic-chained-data-container/index.html index c73e8331a17..eaa37301e11 100644 --- a/docs/glossary/authentic-chained-data-container/index.html +++ b/docs/glossary/authentic-chained-data-container/index.html @@ -7,12 +7,12 @@ - +

    authentic-chained-data-container

    Definition

    In brief, an ACDC or ADC proves digital data consistency and authenticity in one go. An ACDC cryptographically secures commitment to data contained, and its identifiers are self-addressing, which means they point to themselves and are also contained ìn the data.

    - + \ No newline at end of file diff --git a/docs/glossary/authentic-data-container/index.html b/docs/glossary/authentic-data-container/index.html index e6fa71f73eb..68cab2e27c3 100644 --- a/docs/glossary/authentic-data-container/index.html +++ b/docs/glossary/authentic-data-container/index.html @@ -7,12 +7,12 @@ - +

    authentic-data-container

    Definition

    A mechanism for conveying data that allows the authenticity of its content to be proved.

    Instance

    A Verifiable Credential is an ACDC.

    - + \ No newline at end of file diff --git a/docs/glossary/authentic-provenance-chain/index.html b/docs/glossary/authentic-provenance-chain/index.html index 98f7daf3047..4529417bfb6 100644 --- a/docs/glossary/authentic-provenance-chain/index.html +++ b/docs/glossary/authentic-provenance-chain/index.html @@ -7,12 +7,12 @@ - +

    authentic-provenance-chain

    Definition

    Interlinked presentations of evidence that allow data to be tracked back to its origin in an objectively verifiable way.

    - + \ No newline at end of file diff --git a/docs/glossary/authentic-web/index.html b/docs/glossary/authentic-web/index.html index 4694d8ec2a0..2e3146bf2ca 100644 --- a/docs/glossary/authentic-web/index.html +++ b/docs/glossary/authentic-web/index.html @@ -7,12 +7,12 @@ - +

    authentic-web

    Definition

    The authentic web is the internet as a whole giant verifiable data structure. Also called Web5. The web will be one big graph. That's the mental model of the 'authentic web'.

    • Signed at rest - the data never throws away any signature of data. Because otherwise we can't validate data in the future
    • Key state at rest - you need to solve this hard problem too. This is the hard problem KERI solves.
    • Signed in motion - signatures get thrown away. You use ephemeral identifiers. You have to do everything anew every time you want to reconstruct a verifiable data structure. Therefore we need 'Signed at rest'.

    Scalability of Key state at rest

    • You can append to any part of the (directed-acyclic) graph
    • You can hop into the graph to verify any fragment of the graph
    • You don't have to sign the data,you just have to sign hashes of this data
    • Every tree that gets integrated in this giant graph-forest has its own Root of Trust

    KERI solves all hard problems of the authentic web in a scalable manner.

    Technically oriented deep dive

    See more in Mental Model of KERI suite and Concepts behind KERI

    - + \ No newline at end of file diff --git a/docs/glossary/authenticity/index.html b/docs/glossary/authenticity/index.html index 1e5a175c2c0..78c91d176c9 100644 --- a/docs/glossary/authenticity/index.html +++ b/docs/glossary/authenticity/index.html @@ -7,12 +7,12 @@ - +

    authenticity

    Definition

    The quality of having an objectively verifiable origin; contrast veracity. When a newspaper publishes a story about an event, every faithful reproduction of that story may be authentic but that does not mean the story was true (has veracity).

    - + \ No newline at end of file diff --git a/docs/glossary/authoritative/index.html b/docs/glossary/authoritative/index.html index 727a035a3ac..be6aa3ba840 100644 --- a/docs/glossary/authoritative/index.html +++ b/docs/glossary/authoritative/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Also used to describe PKI key pairs that have this feature.

    Four A’s of secure data control

    1. Author: creator, source-of-truth
    2. Authentic: provable origin, root-of-trust
    3. Authorized: consent, loci-of-control
    4. Authoritative: accurate, reputable

    "A4" data control securely is established via self-certifying pseudonymous identifiers\ Source Samuel M. Smith

    - + \ No newline at end of file diff --git a/docs/glossary/authority/index.html b/docs/glossary/authority/index.html index ba2b0c599d2..eb03873fe9e 100644 --- a/docs/glossary/authority/index.html +++ b/docs/glossary/authority/index.html @@ -7,12 +7,12 @@ - +

    authority

    See

    Authority in ToIP glossary

    - + \ No newline at end of file diff --git a/docs/glossary/authorization/index.html b/docs/glossary/authorization/index.html index bf97fd7349d..a7061f5885b 100644 --- a/docs/glossary/authorization/index.html +++ b/docs/glossary/authorization/index.html @@ -7,12 +7,12 @@ - +

    authorization

    Definition

    Is the function of specifying access rights/privileges to resources, which is related to general information security and computer security, and to access control in particular.

    More formally, "to authorize" is to define an access policy.

    - + \ No newline at end of file diff --git a/docs/glossary/authorized-vlei-representative/index.html b/docs/glossary/authorized-vlei-representative/index.html index d8c96c1e6b8..79fea100a05 100644 --- a/docs/glossary/authorized-vlei-representative/index.html +++ b/docs/glossary/authorized-vlei-representative/index.html @@ -7,12 +7,12 @@ - +

    authorized-vlei-representative

    Definition

    Also 'AVR'. This a representative of a Legal Entity that are authorized by the DAR of a Legal Entity to request issuance and revocation of:

    • vLEI Legal Entity Credentials
    • Legal Entity Official Organizational Role vLEI Credentials (OOR vLEI Credentials)
    • Legal Entity Engagement Context Role vLEI Credentials (ECR vLEI Credentials).

    Paraphrased by @henkvancann from source Draft vLEI Ecosystem Governance Framework Glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/autonomic-computing-systems/index.html b/docs/glossary/autonomic-computing-systems/index.html index 189d3e9cc89..6857a6aabce 100644 --- a/docs/glossary/autonomic-computing-systems/index.html +++ b/docs/glossary/autonomic-computing-systems/index.html @@ -7,12 +7,12 @@ - +

    autonomic-computing-systems

    Definition

    Self managing computing systems using algorithmic governance, from the 90's way way way before DAOs. KERI creator Sam Smith worked at funded Navy research in the 90's on autonomic survivable systems as in "self-healing" systems: "We called them autonomic way back then".

    - + \ No newline at end of file diff --git a/docs/glossary/autonomic-identifier/index.html b/docs/glossary/autonomic-identifier/index.html index 5c2fc3145e0..2c9eb7f9d2a 100644 --- a/docs/glossary/autonomic-identifier/index.html +++ b/docs/glossary/autonomic-identifier/index.html @@ -7,13 +7,13 @@ - +

    autonomic-identifier

    Definition

    An identifier that is self-certifying and self-sovereign.

    A self-managing cryptonymous identifier that MUST be self-certifying (self-authenticating) and MUST be encoded in CESR as a qualified cryptographic primitive. An AID MAY exhibit other self-managing properties such as transferable control using key pre-rotation which enables control over such an AID to persist in spite of key weakness or compromise due to exposure. Authoritative control over the identifier persists in spite of the evolution of the key-state.\ Source Samuel M. Smith, ietf-keri draft

    Autonomic Identifier more general

    Autonomic Identifiers have been pretty well described in this piece as opposed to centralised (administrative) and blockchain-based (algorithmic) identifier systems: Architectural types of Identity Systems; originally by Phil Windley in this article.

    A summarizing comparison table might say more than a hundred words:

    summarising the trust bases of administrative, algorithmic and autonomic identifier systems
    - + \ No newline at end of file diff --git a/docs/glossary/autonomic-identity-system/index.html b/docs/glossary/autonomic-identity-system/index.html index 10b5d61ecd8..cf0cdec1b9a 100644 --- a/docs/glossary/autonomic-identity-system/index.html +++ b/docs/glossary/autonomic-identity-system/index.html @@ -7,12 +7,12 @@ - +

    autonomic-identity-system

    Definition

    There's nobody that can intervene with the establishment of the authenticity of a control operation because you can verify all the way back to the root-of-trust.

    - + \ No newline at end of file diff --git a/docs/glossary/autonomic-namespace/index.html b/docs/glossary/autonomic-namespace/index.html index eeefc3ce034..7f7e4b15536 100644 --- a/docs/glossary/autonomic-namespace/index.html +++ b/docs/glossary/autonomic-namespace/index.html @@ -7,12 +7,12 @@ - +

    autonomic-namespace

    Definition

    A namespace that is self-certifying and hence self-administrating. ANs are therefore portable = truly self sovereign.

    - + \ No newline at end of file diff --git a/docs/glossary/backer/index.html b/docs/glossary/backer/index.html index 4bde66e34f7..e2bca085269 100644 --- a/docs/glossary/backer/index.html +++ b/docs/glossary/backer/index.html @@ -7,12 +7,12 @@ - +

    backer

    Definition

    The terms Backer and Witness are closely related in KERI. Backers include both regular KERI witnesses and ledger-registered backers.

    - + \ No newline at end of file diff --git a/docs/glossary/base-media-type/index.html b/docs/glossary/base-media-type/index.html index 37a2b821fe6..65519cd57e3 100644 --- a/docs/glossary/base-media-type/index.html +++ b/docs/glossary/base-media-type/index.html @@ -7,13 +7,13 @@ - +

    base-media-type

    Definition

    credential plus ld plus json.

    Other media types of credentials are allowed by must provide either unidirectional or bidirectional transformations. So for example we would create credential+acdc+json and provide a unidirectional transformation to credential+ld+json.

    We are going for credential plus acdc plus json without @context. The main objection to use @context is that it can change the meaning of a credential. The other way around: ACDCs will include W3C credentials.

    Media types will be used to differentiate between types of credentials and verifiable credentials.

    - + \ No newline at end of file diff --git a/docs/glossary/base64/index.html b/docs/glossary/base64/index.html index 9c8cd25dbc4..644fd7cf7fb 100644 --- a/docs/glossary/base64/index.html +++ b/docs/glossary/base64/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/bespoke-credential/index.html b/docs/glossary/bespoke-credential/index.html index cf77043222e..4a7b0836984 100644 --- a/docs/glossary/bespoke-credential/index.html +++ b/docs/glossary/bespoke-credential/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Consider a disclosure-specific ACDC, aka tailor made, custom or bespoke. The Issuer is the Discloser, the Issuee is the Disclosee. The rule section includes a context-specific (anti) assimilation clause that limits the use of the information to a single one-time usage purpose, that is for example, admittance to a restaurant. The ACDC includes an edge that references some other ACDC that may for example be a coupon or gift card. The attribute section could include the date and place of admittance.\ For the code of this example, see this section 11.1 in Github

    Advantage

    We can use all the tools available for issuance and presentation we already have.

    How the process work

    Similar to a presentation exchange, a verifier will first be asked for what they are looking for, secondly the discloser creates the dataset and publishes only the structure and the fields. To accomplish this, thirdly a compact ACDC will be issued (you publish the fields, not the content) and then issuer asks to sign it first. After signing, the disclosee can get the content associated with the on-the-fly contract.

    More at Github source

    - + \ No newline at end of file diff --git a/docs/glossary/best-available-data-acceptance-mechanism/index.html b/docs/glossary/best-available-data-acceptance-mechanism/index.html index dd83f773ee9..397d4ecfc2a 100644 --- a/docs/glossary/best-available-data-acceptance-mechanism/index.html +++ b/docs/glossary/best-available-data-acceptance-mechanism/index.html @@ -7,13 +7,13 @@ - +

    best-available-data-acceptance-mechanism

    Definition

    The BADA security model provides a degree of replay attack protection. The attributate originator (issuer, author, source) is provided by an attached signature couple or quadruple. A single reply could have multiple originators. When used as an authorization the reply attributes may include the identifier of the authorizer and the logic for processing the associated route may require a matching attachment. BADA is part of KERI's Zero Trust Computing Architecture for Data Management: How to support Secure Async Data Flow Routing in KERI enabled Applications.

    - + \ No newline at end of file diff --git a/docs/glossary/binding/index.html b/docs/glossary/binding/index.html index 271d652faf2..d0c15cf3ecb 100644 --- a/docs/glossary/binding/index.html +++ b/docs/glossary/binding/index.html @@ -7,12 +7,12 @@ - +

    binding

    Definition

    In short, the technique of connecting two data elements together. In the context of KERI it's the association of data or an identifier with another identifier or a subject (a person, organization or machine), thereby lifting the privacy of the subject through that connection, i.e. binding.

    - + \ No newline at end of file diff --git a/docs/glossary/blake3/index.html b/docs/glossary/blake3/index.html index bfaf1ed530f..040c795423f 100644 --- a/docs/glossary/blake3/index.html +++ b/docs/glossary/blake3/index.html @@ -7,12 +7,12 @@ - +

    blake3

    Definition

    BLAKE3 is a relatively young (2020) cryptographic hash function based on Bao and BLAKE2.

    Features and programming languages

    BLAKE3 is a single algorithm with many desirable features (parallelism, XOF, KDF, PRF and MAC), in contrast to BLAKE and BLAKE2, which are algorithm families with multiple variants. BLAKE3 has a binary tree structure, so it supports a practically unlimited degree of parallelism (both SIMD and multithreading) given long enough input.

    The official Rust and C implementations[24] are dual-licensed as public domain (CC0) and the Apache License.

    Fast, parallel and streaming

    BLAKE3 is designed to be as fast as possible. It is consistently a few times faster than BLAKE2. The BLAKE3 compression function is closely based on that of BLAKE2s, with the biggest difference being that the number of rounds is reduced from 10 to 7, a change based on the assumption that current cryptography is too conservative. In addition to providing parallelism, the Merkle tree format also allows for verified streaming (on-the-fly verifying) and incremental updates.

    - + \ No newline at end of file diff --git a/docs/glossary/blind-oobi/index.html b/docs/glossary/blind-oobi/index.html index 31f291e88de..035117d409b 100644 --- a/docs/glossary/blind-oobi/index.html +++ b/docs/glossary/blind-oobi/index.html @@ -7,13 +7,13 @@ - +

    blind-oobi

    Definition

    A blind OOBI means that you have some mechanisms in place for verifying the AID instead of via the OOBI itself. A blind OOBI is essentially a URL. It's called "blind" because the witness is not in the OOBI itself. You haves other ways of verifying the AID supplied.

    Example

    A blind OOBI through an AID that is on some witness list and has been verified to root-of-trust already. So you know the human being behind this referred AID. Because it's an AID that has a KEL out there, which has been securely established, you can trust it. So a blind OOBI makes a via-via commitment.

    The working

    A natural person that you trust is an owner of an AID. Then you cryptographically commit this AID to another AID through some mechanism (e.g. a witness list).

    "Here's my public key and here's my AID and because this in an another witness list I trust it."

    Unblind

    A 'blind' AID becomes "unblind" when you establish a direct relationship with human being who controls the referenced AID. You shortcut the blind OOBI because you established a direct OOBI to the formerly reference AID.

    Why is a blind OOBI interesting

    type 2 authentication: minimise the friction {TBW prio 3}

    Authentication by reference, latent authenticity

    - + \ No newline at end of file diff --git a/docs/glossary/blinded-revocation-registry/index.html b/docs/glossary/blinded-revocation-registry/index.html index 44f00ac2347..77a2e3e7bb5 100644 --- a/docs/glossary/blinded-revocation-registry/index.html +++ b/docs/glossary/blinded-revocation-registry/index.html @@ -7,13 +7,13 @@ - +

    blinded-revocation-registry

    Definition

    The current state of a transaction event log (TEL) be hidden or blinded such that the only way for a potential verifier of the state to observe that state is when the controller of a designated AID discloses it at the time of presentation.

    {BE CAREFUL WITH THE REST, JUST TEXT SNIPPETS TYPED IN FROM A CONVERSATION }

    No information can be obtained via a rainbow table attack because the hash has enough entropy added to it.

    {TBW on the basis of the last half hour of the recording ACDC meetup Dec 6 }

    The issuer creates and signs of the bulk issuance set of credentials and shares a salt with the any presenters. The shared salt correlates between the issuer and the issuee, but that is the worst problem we have to consider, which is acceptable.

    See more in the section blindable state tel

    Important observation

    The presenter get to do the decomposition. And conclude: "Yes that was an approved schema issued by the issuer!"

    - + \ No newline at end of file diff --git a/docs/glossary/branch/index.html b/docs/glossary/branch/index.html index 1d2bd93b61e..e243137599e 100644 --- a/docs/glossary/branch/index.html +++ b/docs/glossary/branch/index.html @@ -7,12 +7,12 @@ - +

    branch

    Definition

    In software development a 'branch' refers to the result of branching: the duplication of an object under version control for further separate modification.

    More info on Wikipedia

    Branching, in version control and software configuration management, is the duplication of an object under version control (such as a source code file or a directory tree). Each object can thereafter be modified separately and in parallel so that the objects become different. In this context the objects are called branches. The users of the version control system can branch any branch.

    - + \ No newline at end of file diff --git a/docs/glossary/byzantine-agreement/index.html b/docs/glossary/byzantine-agreement/index.html index 70396a04e9b..f02dd6533a9 100644 --- a/docs/glossary/byzantine-agreement/index.html +++ b/docs/glossary/byzantine-agreement/index.html @@ -7,12 +7,12 @@ - +

    byzantine-agreement

    Definition

    (non PoW) Byzantine Agreement is Byzantine fault tolerance of distributed computing systems that enable them to come to consensus despite arbitrary behavior from a fraction of the nodes in the network. BA consensus makes no assumptions about the behavior of nodes in the system. Practical Byzantine Fault Tolerance (pBFT) is the prototypical model for Byzantine agreement, and it can reach consensus fast and efficiently while concurrently decoupling consensus from resources (i.e., financial stake in PoS or electricity in PoW).

    Stellar

    More about the Stellar consensus protocol

    "What if PBFT and Stellar had a baby?
    that was missing liveness and total ordering
    but had safety and was completely decentralized, portable, and permission-less?
    It would be named KERI."
    SamMSmith
    - + \ No newline at end of file diff --git a/docs/glossary/byzantine-fault-tolerance/index.html b/docs/glossary/byzantine-fault-tolerance/index.html index 0ec28ef5a33..66ea3ac5b21 100644 --- a/docs/glossary/byzantine-fault-tolerance/index.html +++ b/docs/glossary/byzantine-fault-tolerance/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Byzantine fault tolerance (BFT) is the dependability of a fault-tolerant computer system to such conditions.

    Consensus two third

    A system has Byzantine Fault Tolerance (BFT) when it can keep functioning correctly as long as two-thirds of the network agree or reaches consensus. BFT is a property or characteristic of a system that can resist up to one-third of the nodes failing or acting maliciously.

    The pBFT model primarily focuses on providing a practical Byzantine state machine replication that tolerates Byzantine faults (malicious nodes) through an assumption that there are independent node failures and manipulated messages propagated by specific, independent nodes. The algorithm is designed to work in asynchronous systems and is optimized to be high-performance with an impressive overhead runtime and only a slight increase in latency. More on wikipedia about

    More on Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/certificate-transparency/index.html b/docs/glossary/certificate-transparency/index.html index e839587c635..b14e0b9dad1 100644 --- a/docs/glossary/certificate-transparency/index.html +++ b/docs/glossary/certificate-transparency/index.html @@ -7,12 +7,12 @@ - +

    certificate-transparency

    Definition

    Certificate Transparency (CT) is an Internet security standard and open source framework for monitoring and auditing digital certificates. The standard creates a system of public logs that seek to eventually record all certificates issued by publicly trusted certificate authorities, allowing efficient identification of mistakenly or maliciously issued certificates. As of 2021, Certificate Transparency is mandatory for all SSL/TLS certificates.

    2011 Diginotar Attack

    Certificate Transparency was a response to the 2011 attack on DigiNotar and other Certificate Authorities. These attacks showed that the lack of transparency in the way CAs operated was a significant risk to the Web Public Key Infrastructure. It led to the creation of this ambitious project to improve security online by bringing accountability to the system that protects HTTPS.

    More information

    More on certificate.transparency.dev and Wikipedia.

    - + \ No newline at end of file diff --git a/docs/glossary/cesr-proof-signatures/index.html b/docs/glossary/cesr-proof-signatures/index.html index 9e1783e0d09..7040107a5b0 100644 --- a/docs/glossary/cesr-proof-signatures/index.html +++ b/docs/glossary/cesr-proof-signatures/index.html @@ -7,13 +7,13 @@ - +

    cesr-proof-signatures

    Definition

    CESR Proof Signatures are an extension to the Composable Event Streaming Representation [CESR] that provide transposable cryptographic signature attachments on self-addressing data (SAD) [SAID]. Any SAD, such as an Authentic Chained Data Container (ACDC) Verifiable Credential [ACDC] for example, may be signed with a CESR Proof Signature and streamed along with any other CESR content. In addition, a signed SAD can be embedded inside another SAD and the CESR proof signature attachment can be transposed across envelope boundaries and streamed without losing any cryptographic integrity.\ (Philip Feairheller, IETF-cesr-proof)

    - + \ No newline at end of file diff --git a/docs/glossary/cesride/index.html b/docs/glossary/cesride/index.html index 3b375dced96..c0f9add391c 100644 --- a/docs/glossary/cesride/index.html +++ b/docs/glossary/cesride/index.html @@ -7,12 +7,12 @@ - +

    cesride

    Definition

    is concerned with parsing CESR primitives.

    Cesride is built from cryptographic primitives that are named clearly and concisely. There are:

    Each primitive will have methods attached to it that permit one to generate and parse the qualified base2 or base64 representation. Common methods you'll find:

    • .qb64() - qualified base-64 representation of cryptographic material as a string
    • .qb64b() - qualified base-64 representation of cryptographic material as octets (bytes)
    • .qb2() - qualified base-2 representation of cryptographic material as octets (bytes)
    • .code() - qualifying code (describes the type of cryptographic material)
    • .raw() - raw cryptographic material (unqualified) as octets (bytes)

    Source by Jason Colburne

    Parside

    - + \ No newline at end of file diff --git a/docs/glossary/chain-link-confidentiality/index.html b/docs/glossary/chain-link-confidentiality/index.html index a43526873ae..fd871565394 100644 --- a/docs/glossary/chain-link-confidentiality/index.html +++ b/docs/glossary/chain-link-confidentiality/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ More info at source

    Article Woodrow Hartzog

    An important article on the topic can be found here:\ Woodrow Hartzog “Chain-Link Confidentiality”

    - + \ No newline at end of file diff --git a/docs/glossary/chain-of-custody/index.html b/docs/glossary/chain-of-custody/index.html index 62d95a6f94a..8990e9dce41 100644 --- a/docs/glossary/chain-of-custody/index.html +++ b/docs/glossary/chain-of-custody/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Chain of custody (CoC), in legal contexts, is the chronological documentation or paper trail that records the sequence of custody, control, transfer, analysis, and disposition of materials, including physical or electronic evidence. Of particular importance in criminal cases, the concept is also applied in civil litigation and more broadly in drug testing of athletes and in supply chain management, e.g. to improve the traceability of food products, or to provide assurances that wood products originate from sustainably managed forests.

    New technology shortens CoC

    It is often a tedious process that has been required for evidence to be shown legally in court. Now, however, with new portable technology that allows accurate laboratory quality results from the scene of the crime, the chain of custody is often much shorter which means evidence can be processed for court much faster.\ (Source)

    - + \ No newline at end of file diff --git a/docs/glossary/cigar/index.html b/docs/glossary/cigar/index.html index 48f8e82e9c3..11bc2956c6e 100644 --- a/docs/glossary/cigar/index.html +++ b/docs/glossary/cigar/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/claim/index.html b/docs/glossary/claim/index.html index e5b75d64c63..0c8586ce9a9 100644 --- a/docs/glossary/claim/index.html +++ b/docs/glossary/claim/index.html @@ -7,12 +7,12 @@ - +

    claim

    Definition

    An assertion of the truth of something, typically one which is disputed or in doubt. A set of claims might convey personally identifying information: name, address, date of birth and citizenship, for example. (Source).

    - + \ No newline at end of file diff --git a/docs/glossary/clone/index.html b/docs/glossary/clone/index.html index 9a62596669d..61dc40eb517 100644 --- a/docs/glossary/clone/index.html +++ b/docs/glossary/clone/index.html @@ -7,13 +7,13 @@ - +

    clone

    Definition

    A copy of a system that is - and works exactly as the original

    More detail

    In computing, a clone is hardware or software that is designed to function in exactly the same way as another system.

    A specific subset of clones are remakes (or remades), which are revivals of old, obsolete, or discontinued products.\ Source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/cloud-agent/index.html b/docs/glossary/cloud-agent/index.html index 2d955f27eb5..be53393fc7f 100644 --- a/docs/glossary/cloud-agent/index.html +++ b/docs/glossary/cloud-agent/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Also see Agent.

    Cloud computing

    Cloud computing[1] is the on-demand availability of computer system resources, especially data storage (cloud storage) and computing power, without direct active management by the user.\ More at source on Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/code-table-selector/index.html b/docs/glossary/code-table-selector/index.html index e92b8507155..231b7c6308d 100644 --- a/docs/glossary/code-table-selector/index.html +++ b/docs/glossary/code-table-selector/index.html @@ -7,12 +7,12 @@ - +

    code-table-selector

    Definition

    the first character in the text code of CESR stream that determines which code table to use, either a default code table or a code table selector character when not the default code table. Thus the 1 character text code table must do double duty. It must provide selectors for the different text code tables and also provide type codes for the most popular primitives that have a pad size of 1 that appear is the default code table.

    Selector code table

    See row 1.

    - + \ No newline at end of file diff --git a/docs/glossary/code-table/index.html b/docs/glossary/code-table/index.html index fe5a984a464..ffc2546a7c6 100644 --- a/docs/glossary/code-table/index.html +++ b/docs/glossary/code-table/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/cold-start-stream-parsing/index.html b/docs/glossary/cold-start-stream-parsing/index.html index 0478390d81e..0be3692200b 100644 --- a/docs/glossary/cold-start-stream-parsing/index.html +++ b/docs/glossary/cold-start-stream-parsing/index.html @@ -7,13 +7,13 @@ - +

    cold-start-stream-parsing

    Definition

    After a reboot (or cold start), a stream processor looks for framing information to know how to parse groups of elements in the stream.

    If that framing information is ambiguous then the parser may become confused and require yet another cold start. While processing a given stream a parser may become confused especially if a portion of the stream is malformed in some way. This usually requires flushing the stream and forcing a cold start to resynchronize the parser to subsequent stream elements.

    re-synchronization

    Better than flushing the stream and forcing a cold start is a re-synchronization mechanism that does not require flushing the in-transit buffers but merely skipping to the next well-defined stream element boundary in order to execute a cold start.\ See an example in the source

    Special CESR count codes support re-synchronization at each boundary between interleaved CESR and other serializations like JSON, CBOR, or MGPK.

    - + \ No newline at end of file diff --git a/docs/glossary/collective-signature/index.html b/docs/glossary/collective-signature/index.html index d757b455d06..438e9b989e3 100644 --- a/docs/glossary/collective-signature/index.html +++ b/docs/glossary/collective-signature/index.html @@ -7,13 +7,13 @@ - +

    collective-signature

    Definition

    a group signature scheme, that (i) is shared by a set of signing groups and (ii) combined collective signature shared by several signing groups and several individual signers. The protocol of the first type is constructed and described in detail. It is possible to modify the described protocol which allows transforming the protocol of the first type into the protocol of the second type. The proposed collective signature protocols have significant merits, one of which is connected with possibility of their practical using on the base of the existing public key infrastructures.\ Source

    Collective signature have a variable length as a function of the number of signers.

    - + \ No newline at end of file diff --git a/docs/glossary/collision/index.html b/docs/glossary/collision/index.html index 22b2e87f4cb..6c6ef3d1d76 100644 --- a/docs/glossary/collision/index.html +++ b/docs/glossary/collision/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Another example is name(space) collision.

    Naming collision

    A circumstance where two or more identifiers in a given namespace or a given scope cannot be unambiguously resolved.\ Source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/compact-variant/index.html b/docs/glossary/compact-variant/index.html index 1ee696241d9..2aec76b6b9e 100644 --- a/docs/glossary/compact-variant/index.html +++ b/docs/glossary/compact-variant/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Fully compact(ed) version of an ACDC\ Most compact version of an ACDC.

    - + \ No newline at end of file diff --git a/docs/glossary/complementary-integrity-verification/index.html b/docs/glossary/complementary-integrity-verification/index.html index 3279a98dcfb..32b9b81ff11 100644 --- a/docs/glossary/complementary-integrity-verification/index.html +++ b/docs/glossary/complementary-integrity-verification/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Source: Neil Thomson

    Complementary nature

    Independent Integrity Verification is what is achieved by use of a public key from the data "controller" such that it does not need to compare received data/messages against the sent data/message.

    The already verified chain up to a certain point in time in the past (previous instance or reference version) no longer needs to be verified.

    Example: The tail of a KEL that has been verified to its root-of-trust on a certain date and time, can be cut off. You don't need to verify this any more from this date.

    See also

    integrity\ verified integrity

    - + \ No newline at end of file diff --git a/docs/glossary/composability/index.html b/docs/glossary/composability/index.html index 5c810dc6ee5..d5d4737cb88 100644 --- a/docs/glossary/composability/index.html +++ b/docs/glossary/composability/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/composable-event-streaming-representation/index.html b/docs/glossary/composable-event-streaming-representation/index.html index fb668d809fa..85fe419c30e 100644 --- a/docs/glossary/composable-event-streaming-representation/index.html +++ b/docs/glossary/composable-event-streaming-representation/index.html @@ -7,12 +7,12 @@ - +

    composable-event-streaming-representation

    Definition

    This compact encoding scheme fully supports both textual and binary streaming applications of attached crypto material of all types. This approach includes composability in both the textual and binary streaming domains. The primitives may be the minimum possible but still composable size. Making composability a guaranteed property allows future extensible support of new compositions of streaming formats based on pre-existing core primitives and compositions of core primitives. This enables optimized stream processing in both the binary and text domains. Also called 'CESR'.

    - + \ No newline at end of file diff --git a/docs/glossary/composable/index.html b/docs/glossary/composable/index.html index ef9223103ea..e07d2ba6a77 100644 --- a/docs/glossary/composable/index.html +++ b/docs/glossary/composable/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/concatenation/index.html b/docs/glossary/concatenation/index.html index 59fd8b48a8a..d020ecea29c 100644 --- a/docs/glossary/concatenation/index.html +++ b/docs/glossary/concatenation/index.html @@ -7,13 +7,13 @@ - +

    concatenation

    In formal language theory and computer programming, string concatenation is the operation of joining character strings end-to-end. For example, the concatenation of "snow" and "ball" is "snowball".\ More on source Wikipedia page

    In CESR Concatenation is an important property of CESR's Composability; it is associative and may be applied to any two primitives or any two groups or sets of concatenated primitives.

    The composability property of CESR allows us to create arbitrary compositions of primitives via concatenation in either the text or binary domain and then convert the composition en masse to the other domain and then de-concatenate the result without loss. The self-framing property of the primitives enables de-concatenation.

    - + \ No newline at end of file diff --git a/docs/glossary/concise-binary-object-representation-(CBOR)/index.html b/docs/glossary/concise-binary-object-representation-(CBOR)/index.html index 5a0767578b1..128a92b35bd 100644 --- a/docs/glossary/concise-binary-object-representation-(CBOR)/index.html +++ b/docs/glossary/concise-binary-object-representation-(CBOR)/index.html @@ -7,12 +7,12 @@ - +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    - + \ No newline at end of file diff --git a/docs/glossary/configuration-files/index.html b/docs/glossary/configuration-files/index.html index 7c229fe7297..d874adcc991 100644 --- a/docs/glossary/configuration-files/index.html +++ b/docs/glossary/configuration-files/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/consensus-mechanism/index.html b/docs/glossary/consensus-mechanism/index.html index d481ad58f3a..e330a8c4828 100644 --- a/docs/glossary/consensus-mechanism/index.html +++ b/docs/glossary/consensus-mechanism/index.html @@ -7,12 +7,12 @@ - +

    consensus-mechanism

    Definition

    How groups of entitities come to decisions. In general to learn about consensus mechanisms read any textbook on decision making, automated reasoning, multi-objective decision making, operations research etc.

    Overall reliability

    A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes. This often requires coordinating processes to reach consensus, or agree on some data value that is needed during computation.

    More information

    More on wikipedia or in this 2018 report from the cryptocurrency field.

    - + \ No newline at end of file diff --git a/docs/glossary/content-addressable-hash/index.html b/docs/glossary/content-addressable-hash/index.html index d452426424e..d4c4abf64ab 100644 --- a/docs/glossary/content-addressable-hash/index.html +++ b/docs/glossary/content-addressable-hash/index.html @@ -7,12 +7,12 @@ - +

    content-addressable-hash

    Definition

    Finding content by a hash of this content, generated by a one-way hash function applied to the content.

    Content addressing is a way to find data in a network using its content rather than its location. The way we do is by taking the content of the content and hashing it. Try uploading an image to IPFS and get the hash using the below button.

    Content Addressable Storage

    Content Addressable Storage systems work by passing the content of the file through a cryptographic hash function to generate a unique key, the "content address". The file system's directory stores these addresses and a pointer to the physical storage of the content. Because an attempt to store the same file will generate the same key, CAS systems ensure that the files within them are unique, and because changing the file will result in a new key, CAS systems provide assurance that the file is unchanged.

    IPFS

    In the IPFS ecosystem, this hash is called Content Identifier, or CID.

    - + \ No newline at end of file diff --git a/docs/glossary/contextual-linkability/index.html b/docs/glossary/contextual-linkability/index.html index 956890beffa..5be1e1f248f 100644 --- a/docs/glossary/contextual-linkability/index.html +++ b/docs/glossary/contextual-linkability/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ More at source

    Contractually protected disclosure is the primary defense against contextual linkability.

    Example

    Cameras in stores are already able to identify you due to the extremely high prevalence of modern security systems who do facial recognition or mobile device ping recognition on each person entering the premises of a store. In the context of you buying stuff in their store they can capture data linked to you and then go and sell your data to third parties since there is an implicit grant of permission to use the data and also since there are no legal constraints on the distribution of that data.

    Dangers

    Just have a look at what "they" are doing:\ https://linkgraph.io/blog/how-to-contextual-link-building/

    - + \ No newline at end of file diff --git a/docs/glossary/contingent-disclosure/index.html b/docs/glossary/contingent-disclosure/index.html index 2e271e1e724..d4f93ff4e42 100644 --- a/docs/glossary/contingent-disclosure/index.html +++ b/docs/glossary/contingent-disclosure/index.html @@ -7,12 +7,12 @@ - +

    contingent-disclosure

    Definition

    Chain link confidentiality is a form of contingent disclosure.

    {TBW prio 1}

    - + \ No newline at end of file diff --git a/docs/glossary/contractually-protected-disclosure/index.html b/docs/glossary/contractually-protected-disclosure/index.html index 9bb6daabbb4..a681eb5ec47 100644 --- a/docs/glossary/contractually-protected-disclosure/index.html +++ b/docs/glossary/contractually-protected-disclosure/index.html @@ -7,13 +7,13 @@ - +

    contractually-protected-disclosure

    Definition

    Usage of schema-based and contract-based controls to limit the exchange of information to provide both mechanical and legal protection on the sharing of data.

    Mechanical protection is composed of sharing the schema of the data to be shared prior to sharing the actual data contents. This mechanical protection is then combined through the IPEX protocol with disclosures of legal contracts to be agreed to prior to sharing the desired data contents.

    Once the legal agreements have been met then the disclosure mechanism exchanges the desired data contents.

    This is also the most elaborate form of disclosure by an IPEX. Contractually protected disclosure includes both chain-link confidential and contingent disclosure.\ Paraphrased by @henkvancann based on source

    Relation

    This IPEX protocol leverages important features of ACDCs and ancillary protocols such as CESR, SAIDs, and CESR-Proofs as well as Ricardian contracts and graduated disclosure (partial, selective, full) to enable contractually protected disclosure. Contractually protected disclosure includes both [chain-link confidential](chain-link confidential) and [contingent disclosure](contingent disclosure).

    Rule

    The disclosure performed by a presentation exchange MAY be graduated and MAY be contractually protected.

    - + \ No newline at end of file diff --git a/docs/glossary/control-authority/index.html b/docs/glossary/control-authority/index.html index 3debfd59815..1cf5b2f8bb8 100644 --- a/docs/glossary/control-authority/index.html +++ b/docs/glossary/control-authority/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ In new rotation rules, you can rotate to new keys that aren't in the prior next key digests. You just need to reach the appropriate thresholds of prior next threshold and current signing threshold. So you now only need one rotation to change control authority.\ Note: This change was the forcing function to require dual indexed codes in CESR.

    - + \ No newline at end of file diff --git a/docs/glossary/controller/index.html b/docs/glossary/controller/index.html index 383ceea2c8e..5044553d81e 100644 --- a/docs/glossary/controller/index.html +++ b/docs/glossary/controller/index.html @@ -7,12 +7,12 @@ - +

    controller

    Definition

    A controller is a controlling entity (person, organization, or autonomous software) of an identifier. For an autonomic identifier (AID), a controlling entity has the capability to make changes to the key event log (KEL) of the AID. This capability is typically asserted by the control of a set of cryptographic keys used by software acting on behalf of the controller, though it might also be asserted via other mechanisms.

    At any point in time, an identifier has at least one but may have more than one controlling entity. This set of controlling entities constitutes the controller. Without loss of generality, when the context is unambiguous, the term controller may refer either to the whole set or a member of the set of controlling entities.

    All key events on the identifier must include a signature from the sole controlling entity when there is only one controlling entity or at least one signature from one of the controlling entities when there is more than one. Typically, when there is more than one controlling entity, control is established via signatures from all or a subset of controlling entities. This is called multi-signature (multi-sig). In a threshold multi-sig scheme, the control authority is split among the controlling entities, where each is assigned a weight. In this case, the control authority over the identifier is established via signatures from a subset of controlling entities whose combined weights exceed an agreed threshold. These thresholded multiple signatures may be expressed as a single collective threshold signature when a collective signing scheme is used.

    The control authority over an identifier can also be divided into signing authority and rotation authority. The controller of the identifier may grant their authority to other entities. For example, in custodial rotation, the controller grants a designated custodial agent the signing authority while retaining their rotation authority. In the case of a delegated identifier, the delegated identifier is granted some degree of control authority from its delegating identifier.

    - + \ No newline at end of file diff --git a/docs/glossary/coroutines/index.html b/docs/glossary/coroutines/index.html index ccd998e6048..9bc8d6cb373 100644 --- a/docs/glossary/coroutines/index.html +++ b/docs/glossary/coroutines/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/correlation/index.html b/docs/glossary/correlation/index.html index bae74f16fc7..6cbadc42d01 100644 --- a/docs/glossary/correlation/index.html +++ b/docs/glossary/correlation/index.html @@ -7,12 +7,12 @@ - +

    correlation

    Definition

    In our scope this is an identifier used to indicate that external parties have observed how wallet contents are related.

    Example

    When a public key is reused, it conveys that some common entity is controlling both identifiers. Tracking correlation allows for software to warn when some new information might be about to be exposed, for example: "Looks like you are about to send cryptocurrency, from an account you frequently use to a new account you just created."

    - + \ No newline at end of file diff --git a/docs/glossary/count-code/index.html b/docs/glossary/count-code/index.html index ec80e70e223..61b932bd4c1 100644 --- a/docs/glossary/count-code/index.html +++ b/docs/glossary/count-code/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/credential/index.html b/docs/glossary/credential/index.html index 9d5dc230ec6..b905fc1de7d 100644 --- a/docs/glossary/credential/index.html +++ b/docs/glossary/credential/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ A credential has its current state and a history, which is captured in a doc or a graph.

    ACDC specific

    The credential is the whole graph.\ The pointers in the doc that contain the whole graph are universally globally distributable references via the SAIDs. Whereas in other credential systems pointers are only local in a credential doc.

    - + \ No newline at end of file diff --git a/docs/glossary/crypto-libraries/index.html b/docs/glossary/crypto-libraries/index.html index caaa6588001..b3d1258df3f 100644 --- a/docs/glossary/crypto-libraries/index.html +++ b/docs/glossary/crypto-libraries/index.html @@ -7,12 +7,12 @@ - +

    crypto-libraries

    Definition

    Cryptography libraries deal with cryptography algorithms and have API function calls to each of the supported features.

    Selection criteria

    Criteria to chose one or the other:

    • Open Source (most of them are)
    • Compliant with standards
    • Key operations include key generation algorithms, key exchange agreements and public key cryptography standards.
    • Supported cryptographic hash functions
    • Implementations of message authentication code (MAC) algorithms
    • Implementations of block ciphers
    • Hardware-assisted support
    • Code size and code to comment ratio
    • Composable derivation codes

    See a comparison here at Wikipedia.

    - + \ No newline at end of file diff --git a/docs/glossary/cryptocurrency/index.html b/docs/glossary/cryptocurrency/index.html index 841832a6fa0..58b2975280e 100644 --- a/docs/glossary/cryptocurrency/index.html +++ b/docs/glossary/cryptocurrency/index.html @@ -7,13 +7,13 @@ - +

    cryptocurrency

    Definition

    A digital asset designed to work as a medium of exchange wherein individual coin ownership records are stored in a digital ledger or computerized database using strong cryptography to secure transaction record entries, to control the creation of additional digital coin records.\ See more on source Wikipedia.

    KERI doesn't need total global ordering, whereas cryptocurrencies do need this. As a consequence has been designed, without the need of a consensus-based distributed ledger (blockchain).

    KERI doesn't provide for a currency system, however a KERI-based system can be easily extended with a money - or token system.

    See also Non Fungible Tokens.

    - + \ No newline at end of file diff --git a/docs/glossary/cryptographic-commitment-scheme/index.html b/docs/glossary/cryptographic-commitment-scheme/index.html index d188da7389c..1b46c9e7ed6 100644 --- a/docs/glossary/cryptographic-commitment-scheme/index.html +++ b/docs/glossary/cryptographic-commitment-scheme/index.html @@ -7,13 +7,13 @@ - +

    cryptographic-commitment-scheme

    Definition

    is a cryptographic primitive that allows one to commit to a chosen value (or chosen statement) while keeping it hidden to others, with the ability to reveal the committed value later.

    Commitment schemes are designed so that a party cannot change the value or statement after they have committed to it: that is, commitment schemes are binding.\ More on wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/cryptographic-primitive/index.html b/docs/glossary/cryptographic-primitive/index.html index f84432d5cd5..e2fc655e61f 100644 --- a/docs/glossary/cryptographic-primitive/index.html +++ b/docs/glossary/cryptographic-primitive/index.html @@ -7,13 +7,13 @@ - +

    cryptographic-primitive

    Definition

    Cryptographic primitives are well-established, low-level cryptographic algorithms that are frequently used to build cryptographic protocols for computer security systems. These routines include, but are not limited to, one-way hash functions and encryption functions.\ More on source Wikipedia-page

    In KERI and ACDC it a serialization of a unitary value associated with a cryptographic operation including but not limited to a digest (hash), a salt, a seed, a private key, a public key, or a signature. All primitives in KERI MUST be expressed in CESR.

    See also

    The more general term primitive.

    - + \ No newline at end of file diff --git a/docs/glossary/cryptographic-strength/index.html b/docs/glossary/cryptographic-strength/index.html index c825fd2560e..1a439bf007b 100644 --- a/docs/glossary/cryptographic-strength/index.html +++ b/docs/glossary/cryptographic-strength/index.html @@ -7,13 +7,13 @@ - +

    cryptographic-strength

    Definition

    The term "cryptographically strong" is often used to describe an encryption algorithm, and implies, in comparison to some other algorithm (which is thus cryptographically weak), greater resistance to attack. But it can also be used to describe hashing and unique identifier and filename creation algorithms.\ More on Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/cryptonym/index.html b/docs/glossary/cryptonym/index.html index 4712a08c407..d870e6751e4 100644 --- a/docs/glossary/cryptonym/index.html +++ b/docs/glossary/cryptonym/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Due the entropy in its derivation, a cryptonym is a universally unique identifier and only the controller of the secret salt or seed from which the cryptonym is derived may prove control over the cryptonym. Therefore the derivation function MUST be associated with the cryptonym and MAY be encoded as part of the cryptonym itself.\ Source Smith, ietf-keri draft

    - + \ No newline at end of file diff --git a/docs/glossary/custodial-agent/index.html b/docs/glossary/custodial-agent/index.html index d2617c12870..07e13391b37 100644 --- a/docs/glossary/custodial-agent/index.html +++ b/docs/glossary/custodial-agent/index.html @@ -7,13 +7,13 @@ - +

    custodial-agent

    Definition

    An agent owned by an individual who has granted signing authority to a custodian who is usually also the host of the running agent software. Using partial rotation to facilitate custodial key management the owner of the identifier retains rotational authority and thus the ability to "fire" the custodian at any time without requiring the cooperation of the custodian.

    Importance

    Custodial Agents are important for individuals who may not be comfortable managing their own signing keys and agent software but still want to participate in a decentralized identity ecosystem and they enable a software as a service business model without centralizing control on the service provider.\ (Source: Philip Feairheller)

    Key functionality

    Since ninety-nine percent of people in the world might not feel comfortable taking responsibility for their own practical key management but still want to be stay in control over their assets and be able to hire and fire service providers, this functionality is considered a key feature for KERI and ACDC.

    - + \ No newline at end of file diff --git a/docs/glossary/custodial-rotation/index.html b/docs/glossary/custodial-rotation/index.html index 84bfaabf025..b7cceb09862 100644 --- a/docs/glossary/custodial-rotation/index.html +++ b/docs/glossary/custodial-rotation/index.html @@ -7,13 +7,13 @@ - +

    custodial-rotation

    Definition

    Rotation based on control authority that is split between two key sets. The first for signing authority and the second (pre-roateted) for rotation authority the associated thresholds and key list can be structured in such a way that a designated custodial agent can hold signing authority while the original controller can hold exclusive rotation authority.

    Partial pre-rotation supports the important use case that of custodial key rotation to authorize a custodial agent.\ Paraphrased by @henkvancann on the bases of the IETF-KERI draft 2022 by Samual Smith.

    - + \ No newline at end of file diff --git a/docs/glossary/data-anchor/index.html b/docs/glossary/data-anchor/index.html index 27e4324e4d3..75feda0e78a 100644 --- a/docs/glossary/data-anchor/index.html +++ b/docs/glossary/data-anchor/index.html @@ -7,12 +7,12 @@ - +

    data-anchor

    Definition

    Data anchors are digests of digital data, that uniquely identify this data. The digest is the anchor and can be used to identify - and point to the data at the same time.

    Anchoring data

    The act of creating the digest of arbitrary data and then hook (or reference) the digest to (in) another data structure is called 'anchoring data'.

    SADs are a type of data anchors.

    Beware

    Link anchors are a totally different concepts.

    - + \ No newline at end of file diff --git a/docs/glossary/dead-drop/index.html b/docs/glossary/dead-drop/index.html index a97ed69ef6a..741076bdbb9 100644 --- a/docs/glossary/dead-drop/index.html +++ b/docs/glossary/dead-drop/index.html @@ -7,13 +7,13 @@ - +

    dead-drop

    Definition

    | TBW | the presenter controls the disclosure so you can't re-identify the data

    Tech meet KERI recording from minute 55, date June 29 2023

    - + \ No newline at end of file diff --git a/docs/glossary/decentralized-identifier/index.html b/docs/glossary/decentralized-identifier/index.html index 1de30932f7e..f97c95b29db 100644 --- a/docs/glossary/decentralized-identifier/index.html +++ b/docs/glossary/decentralized-identifier/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Source W3C.org.

    Technical presence

    DIDs are URIs that associate a DID subject with a DID document allowing trustable interactions associated with that subject.\ Source W3C.org.

    - + \ No newline at end of file diff --git a/docs/glossary/decentralized-identity/index.html b/docs/glossary/decentralized-identity/index.html index b01ffb176ad..df00ac91d1c 100644 --- a/docs/glossary/decentralized-identity/index.html +++ b/docs/glossary/decentralized-identity/index.html @@ -7,12 +7,12 @@ - +

    decentralized-identity

    Definition

    is a technology that uses cryptography to allow individuals to create and control their own unique identifiers. They can use these identifiers to obtain Verifiable Credentials from trusted organizations and, subsequently, present elements of these credentials as proof of claims about themselves. In this model, the individual takes ownership of their own identity and need not cede control to centralized service providers or companies.

    KERIs definition of decentralization (centralization) is about control not spatial distribution. In our definition decentralized is not necessarily the same as distributed. By distributed we mean that activity happens at more than one site. Thus decentralization is about control and distribution is about place. To elaborate, when we refer to decentralized infrastructure we mean infrastructure under decentralized (centralized) control no matter its spatial distribution. Thus decentralized infrastructure is infrastructure sourced or controlled by more than one entity.

    - + \ No newline at end of file diff --git a/docs/glossary/decentralized-key-management-infrastructure/index.html b/docs/glossary/decentralized-key-management-infrastructure/index.html index 9d88806a0a1..60d58000ebf 100644 --- a/docs/glossary/decentralized-key-management-infrastructure/index.html +++ b/docs/glossary/decentralized-key-management-infrastructure/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/delegated-identifier/index.html b/docs/glossary/delegated-identifier/index.html index c5324150be1..89b30bbf8da 100644 --- a/docs/glossary/delegated-identifier/index.html +++ b/docs/glossary/delegated-identifier/index.html @@ -7,12 +7,12 @@ - +

    delegated-identifier

    Definition

    Matches the act of delegation with the appropriate digital twin. Consequently when applied recursively, delegation may be used to compose arbitrarily complex trees of hierarchical (delegative) key management event streams. This is a most powerful capability that may provide an essential building block for a generic universal decentralized key management infrastructure (DKMI) that is also compatible with the demand of generic event streaming applications.

    More in the whitepaper

    More KERI context

    The KERI design approach is to build composable primitives instead of custom functionality that is so typical of other DKMI approaches:

    - + \ No newline at end of file diff --git a/docs/glossary/delegation/index.html b/docs/glossary/delegation/index.html index 78d7c28d0a8..3fe75be2e7a 100644 --- a/docs/glossary/delegation/index.html +++ b/docs/glossary/delegation/index.html @@ -7,12 +7,12 @@ - +

    delegation

    Definition

    A person or group of persons officially elected or appointed to represent another or others.

    Assign tasks but stay in control

    Delegation can be defined as “the act of empowering to act for another”. With this bestowed power, a person, usually a subordinate, is able to carry out specific activities (normally given by a manager or supervisor). Delegation is a management tool designed to increase the efficiency of an organization. It allows for the goals of the organization to be broken down into tasks and assigned to the team member best suited for the duty.

    - + \ No newline at end of file diff --git a/docs/glossary/derivation-code/index.html b/docs/glossary/derivation-code/index.html index 862552723a5..1df543a1573 100644 --- a/docs/glossary/derivation-code/index.html +++ b/docs/glossary/derivation-code/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ BF5pxRJP6THrUtlDdhh07hJEDKrJxkcR9m5u1xs33bhp

    Relation with KERI

    All crypto material appears in KERI in a fully qualified representation. This includes a derivation code prepended to the crypto-material.

    Beware

    Key derivation functions are not related to the pre-pended derivation codes used in KERI.

    - + \ No newline at end of file diff --git a/docs/glossary/designated-authorized-representative/index.html b/docs/glossary/designated-authorized-representative/index.html index 07e025fba3f..f379403c47e 100644 --- a/docs/glossary/designated-authorized-representative/index.html +++ b/docs/glossary/designated-authorized-representative/index.html @@ -7,12 +7,12 @@ - +

    designated-authorized-representative

    Definition

    Also 'DAR'. These are representatives of a Legal Entity that are authorized by the Legal Entity to act officially on behalf of the Legal Entity. DARs can authorize:

    1. vLEI Issuer Qualification Program Checklists
    2. execute the vLEI Issuer Qualification Agreement
    3. provide designate/replace Authorized vLEI Representatives (AVRs).

    Paraphrased by @henkvancann from source Draft vLEI Ecosystem Governance Framework Glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/diger/index.html b/docs/glossary/diger/index.html index 5eb53db712e..b2245f5832b 100644 --- a/docs/glossary/diger/index.html +++ b/docs/glossary/diger/index.html @@ -7,13 +7,13 @@ - +

    diger

    Definition

    A primitive that represents a digest. It has the ability to verify that an input hashes to its raw value.\ Source by Jason Colburne

    - + \ No newline at end of file diff --git a/docs/glossary/digest/index.html b/docs/glossary/digest/index.html index c9f9e6477e2..38d570b9580 100644 --- a/docs/glossary/digest/index.html +++ b/docs/glossary/digest/index.html @@ -7,12 +7,12 @@ - +

    digest

    Definition

    verifiable cryptographic commitment. It's a collision resistant hash of content.

    From Wikipedia (Source):

    A digest is a cryptographic hash function (CHF) is a mathematical algorithm that maps data of an arbitrary size (often called the "message") to a bit array of a fixed size (the "hash value", "hash", or "message digest"). It is a one-way function, that is, a function for which it is practically infeasible to invert or reverse the computation.[1]

    Digest and ACDCs

    An important property of high-strength cryptographic digests is that a verifiable cryptographic commitment (such as a digital signature) to the digest of some data is equivalent to a commitment to the data itself. Authentic Chained Data Containers (ACDCs) leverage this property to enable compact chains of ACDCs that anchor data via digests. The data contained in an ACDC may therefore be merely its equivalent anchoring digest. The anchored data is thereby equivalently authenticated or authorized by the chain of ACDCs.

    - + \ No newline at end of file diff --git a/docs/glossary/digital-signature/index.html b/docs/glossary/digital-signature/index.html index 36c89780b2f..f811123db05 100644 --- a/docs/glossary/digital-signature/index.html +++ b/docs/glossary/digital-signature/index.html @@ -7,12 +7,12 @@ - +

    digital-signature

    Definition

    A digital signature is a mathematical scheme for verifying the authenticity of digital messages or documents. A valid digital signature, where the prerequisites are satisfied, gives a recipient very strong reason to believe that the message was created by a known sender (authentication), and that the message was not altered in transit (integrity).

    Electronic signatures

    There are digital signatures and Electronic signatures, the latter are quite different in purpose and practical use.

    - + \ No newline at end of file diff --git a/docs/glossary/directed-acyclic-graph/index.html b/docs/glossary/directed-acyclic-graph/index.html index 64fae09d94d..0717127137a 100644 --- a/docs/glossary/directed-acyclic-graph/index.html +++ b/docs/glossary/directed-acyclic-graph/index.html @@ -7,12 +7,12 @@ - +

    directed-acyclic-graph

    Definition

    From Wikipedia (source):

    In mathematics, particularly graph theory, and computer science, a directed acyclic graph (DAG /ˈdæɡ/ (listen)) is a directed graph with no directed cycles. That is, it consists of vertices and edges (also called arcs), with each edge directed from one vertex to another.

    A directed acyclic graph (DAG)

    Why a directed acyclic graph (DAG)

    Following directions in a DAG will never form a closed loop. Steps through a DAG are finite. That's the main reason to choose for a DAG.

    Unique properties

    From Wikipedia (source):

    A directed graph is a DAG if and only if it can be topologically ordered, by arranging the vertices as a linear ordering that is consistent with all edge directions.

    Applications

    From Wikipedia (source):

    DAGs have numerous scientific and computational applications, ranging from biology (evolution, family trees, epidemiology) to information science (citation networks) to computation (scheduling).

    - + \ No newline at end of file diff --git a/docs/glossary/disclosee/index.html b/docs/glossary/disclosee/index.html index e47057467a2..e34fe703bc6 100644 --- a/docs/glossary/disclosee/index.html +++ b/docs/glossary/disclosee/index.html @@ -7,12 +7,12 @@ - +

    disclosee

    ##Definition

    an ACDC in a disclosure is disclosed to the Disclosee

    - + \ No newline at end of file diff --git a/docs/glossary/discloser/index.html b/docs/glossary/discloser/index.html index f1b9e33e694..95f5f7a3384 100644 --- a/docs/glossary/discloser/index.html +++ b/docs/glossary/discloser/index.html @@ -7,12 +7,12 @@ - +

    discloser

    Definition

    An ACDC in a disclosure is disclosed by the Discloser.

    - + \ No newline at end of file diff --git a/docs/glossary/distributed-hash-table/index.html b/docs/glossary/distributed-hash-table/index.html index 7c1bf9e5f29..3e52a7fffdd 100644 --- a/docs/glossary/distributed-hash-table/index.html +++ b/docs/glossary/distributed-hash-table/index.html @@ -7,13 +7,13 @@ - +

    distributed-hash-table

    Definition

    It is a distributed system that provides a lookup service similar to a hash table: key-value pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key. The main advantage of a DHT is that nodes can be added or removed with minimum work around re-distributing keys. Keys are unique identifiers which map to particular values, which in turn can be anything from addresses, to documents, to arbitrary data.\ (Source: Wikipedia)

    - + \ No newline at end of file diff --git a/docs/glossary/domain-name/index.html b/docs/glossary/domain-name/index.html index 3df546479a6..857fac3a2a5 100644 --- a/docs/glossary/domain-name/index.html +++ b/docs/glossary/domain-name/index.html @@ -7,13 +7,13 @@ - +

    domain-name

    Definition

    A domain name is a string that identifies a realm of administrative autonomy, authority or control within the Internet. Domain names are used in various networking contexts and for application-specific naming and addressing purposes.\ More on Source Wikipedia.

    - + \ No newline at end of file diff --git a/docs/glossary/domain/index.html b/docs/glossary/domain/index.html index 64ce67f36ba..e165fa86c76 100644 --- a/docs/glossary/domain/index.html +++ b/docs/glossary/domain/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/dual-indexed-codes/index.html b/docs/glossary/dual-indexed-codes/index.html index 727b780193d..7a8aef33cd1 100644 --- a/docs/glossary/dual-indexed-codes/index.html +++ b/docs/glossary/dual-indexed-codes/index.html @@ -7,13 +7,13 @@ - +

    dual-indexed-codes

    Definition

    a context-specific coding scheme, for the common use case of thresholded multi-signature schemes in CESR.

    One way to compactly associated each signature with its public key is to include in the text code for that signature the index into the ordered set of public keys. A popular signature raw binary size is 64 bytes which has a pad size of 2. This gives two code characters for a compact text code. The first character is the selector and type code. The second character is the Base64 encoded integer index.

    More at source Github Repo Ietf-CESR

    - + \ No newline at end of file diff --git a/docs/glossary/dual-text-binary-encoding-format/index.html b/docs/glossary/dual-text-binary-encoding-format/index.html index 72bbd489a4b..fa23494f062 100644 --- a/docs/glossary/dual-text-binary-encoding-format/index.html +++ b/docs/glossary/dual-text-binary-encoding-format/index.html @@ -7,12 +7,12 @@ - +

    dual-text-binary-encoding-format

    Definition

    (ietf-cesr-proof)

    {TBW prio2}

    - + \ No newline at end of file diff --git a/docs/glossary/duplicitous-event-log/index.html b/docs/glossary/duplicitous-event-log/index.html index 3146d6a27e2..1c3e7d0de06 100644 --- a/docs/glossary/duplicitous-event-log/index.html +++ b/docs/glossary/duplicitous-event-log/index.html @@ -7,12 +7,12 @@ - +

    duplicitous-event-log

    Definition

    This is a record of inconsistent event messages produced by a given controller or witness with respect to a given KERL. The duplicitous events are indexed to the corresponding event in a KERL. A duplicitous event is represented by a set of two or more provably mutually inconsistent event messages with respect to a KERL. Each juror keeps a duplicitous event log (DEL) for each controller and all designated witness with respect to a KERL. Any validator may confirm duplicity by examining a DEL.

    - + \ No newline at end of file diff --git a/docs/glossary/duplicity/index.html b/docs/glossary/duplicity/index.html index 0830c7fa588..354e0499761 100644 --- a/docs/glossary/duplicity/index.html +++ b/docs/glossary/duplicity/index.html @@ -7,13 +7,13 @@ - +

    duplicity

    Duplicity

    Duplicity is used to describe external inconsistency. Publication of two or more versions of a KEL, each of which is internally consistent is duplicity. Given that signatures are non-repudiable any duplicity is detectable and provable given possession of any two mutually inconsistent versions of a KEL. In KERI consistency is is used to described data that is internally consistent and cryptographically verifiably so.

    Duplicity means the existence of more than one version of a verifiable KEL for a given AID. Because every event in a KEL must be signed with non-repudiable signatures any inconsistency between any two instances of the KEL for a given AID is provable evidence of duplicity on the part of the signers with respect to either or both the key-state of that AID and/or any anchored data at a given key-state. A shorter KEL that does not differ in any of its events with respect to another but longer KEL is not duplicitous but merely incomplete. To clarify, duplicity evident means that duplicity is provable via the presentation of a set of two or more mutually inconsistent but independently verifiable instances of a KEL. Source Sam Smith

    Outside world

    In common language 'duplicity' has a slightly different connotation: 'two-facedness', 'dishonesty', 'deceitfulness', 'deviousness,'two-facedness', 'falseness'.

    - + \ No newline at end of file diff --git a/docs/glossary/easyCLA_trick/index.html b/docs/glossary/easyCLA_trick/index.html index 2e9f74d20df..acc8cba1036 100644 --- a/docs/glossary/easyCLA_trick/index.html +++ b/docs/glossary/easyCLA_trick/index.html @@ -7,12 +7,12 @@ - +

    easyCLA_trick

    - + \ No newline at end of file diff --git a/docs/glossary/eclipse-attack/index.html b/docs/glossary/eclipse-attack/index.html index 9eb7a674895..f61a7c8446b 100644 --- a/docs/glossary/eclipse-attack/index.html +++ b/docs/glossary/eclipse-attack/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Source Samuel Smith / Phil Feairheller

    Working of Eclipse Attack

    Eclipse attacks are possible because nodes within the network are unable to connect with all other nodes and can connect with a limited number of neighboring nodes. This limitation might make it seem convenient for attackers to isolate a node from the rest of the network, but it is not an easy task. \ More at Source GeeksforGeeks

    working of an eclipse attack
    - + \ No newline at end of file diff --git a/docs/glossary/electronic-signature/index.html b/docs/glossary/electronic-signature/index.html index 314dfe3ebd0..39a0e633a4f 100644 --- a/docs/glossary/electronic-signature/index.html +++ b/docs/glossary/electronic-signature/index.html @@ -7,12 +7,12 @@ - +

    electronic-signature

    Definition

    An electronic signature, or e-signature, refers to data in electronic form, which is logically associated with other data in electronic form and which is used by the signatory to sign. This type of signature has the same legal standing as a handwritten signature as long as it adheres to the requirements of the specific regulation under which it was created (e.g., eIDAS in the European Union, NIST-DSS in the USA or ZertES in Switzerland).

    Digital signature implementation of e-signatures

    Electronic signatures are a legal concept distinct from digital signatures, a cryptographic mechanism often used to implement electronic signatures. While an electronic signature can be as simple as a name entered in an electronic document, digital signatures are increasingly used in e-commerce and in regulatory filings to implement electronic signatures in a cryptographically protected way.

    - + \ No newline at end of file diff --git a/docs/glossary/end-verifiable/index.html b/docs/glossary/end-verifiable/index.html index d8d07b59a01..f9795ce1452 100644 --- a/docs/glossary/end-verifiable/index.html +++ b/docs/glossary/end-verifiable/index.html @@ -7,12 +7,12 @@ - +

    end-verifiable

    Definition

    When a log is end verifiable, it means that the log may be verified by any end user that receives a copy. No trust in intervening infrastructure is needed to verify the log and validate the content.

    - + \ No newline at end of file diff --git a/docs/glossary/engagement-context-role/index.html b/docs/glossary/engagement-context-role/index.html index 2125501444a..bff07bf90a9 100644 --- a/docs/glossary/engagement-context-role/index.html +++ b/docs/glossary/engagement-context-role/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/entity/index.html b/docs/glossary/entity/index.html index 4335ec8da69..86671701935 100644 --- a/docs/glossary/entity/index.html +++ b/docs/glossary/entity/index.html @@ -7,12 +7,12 @@ - +

    entity

    See

    entity in the #essiflab glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/entropy/index.html b/docs/glossary/entropy/index.html index 40552d53f05..9547b5b2404 100644 --- a/docs/glossary/entropy/index.html +++ b/docs/glossary/entropy/index.html @@ -7,12 +7,12 @@ - +

    entropy

    Definition

    Unpredictable information. Often used as a secret or as input to a key generation algorithm.

    More on Wikipedia

    Entropy

    The term entropy is also used to describe the degree of unpredictability of a message. Entropy is then measured in bits. The degree or strength of randomness determines how difficult it would be for someone else to reproduce the same large random number. This is called collision resistance.

    - + \ No newline at end of file diff --git a/docs/glossary/ephemeral/index.html b/docs/glossary/ephemeral/index.html index 60ad5112b3f..a41209e284a 100644 --- a/docs/glossary/ephemeral/index.html +++ b/docs/glossary/ephemeral/index.html @@ -7,13 +7,13 @@ - +

    ephemeral

    Definition

    Lasting for a markedly brief time. Having a short lifespan.\ In the context of identifiers is often referred to as identifiers for one time use; or throw-away identifiers.

    - + \ No newline at end of file diff --git a/docs/glossary/escrow-state/index.html b/docs/glossary/escrow-state/index.html index 349a06e42ee..c4fe2cb1957 100644 --- a/docs/glossary/escrow-state/index.html +++ b/docs/glossary/escrow-state/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ To account for this asynchronous nature, implementations need to "escrow" events (store them temporarily) while waiting for other events or additional signatures to show up. The current state of all the temporary storage locations (what events are waiting for what other information) is called the "escrow state".\ Source: Philip Feairheller

    Beware

    An physical Escrow State that you might know from Real Estate transaction is not at all related to the one we define.

    - + \ No newline at end of file diff --git a/docs/glossary/escrow/index.html b/docs/glossary/escrow/index.html index 8dbdb9387de..cc2106aef5d 100644 --- a/docs/glossary/escrow/index.html +++ b/docs/glossary/escrow/index.html @@ -7,12 +7,12 @@ - +

    escrow

    Definition

    'Escrow' as a noun is a (legal) arrangement in which a third party temporarily holds money or property until a particular condition has been met.

    'Escrow' as a verb: we use it in protocol design to handle out of order events. Store the event and wait for the other stuff to show up and then continue processing of the event. So escrowing is the process of storing this event. We root back to the event later.

    - + \ No newline at end of file diff --git a/docs/glossary/establishment-event/index.html b/docs/glossary/establishment-event/index.html index eca0eb06b5d..c13685d2b53 100644 --- a/docs/glossary/establishment-event/index.html +++ b/docs/glossary/establishment-event/index.html @@ -7,12 +7,12 @@ - +

    establishment-event

    Definition

    A key creation or rotation event that establishes or transfers control authority for an identifier.

    Establishment events indicate which key pairs are authoritative (controlling) for an identifier at a given point in time.

    The subset of a key event log (KEL) that are establishment events are an ordered subsequence of the full KEL.

    For a non-transferable identifier this is one authoritative key pair and it never changes so there will only ever be one establishment event, the inception event.

    For transferable identifiers there can be multiple establishment events which would include the initial rotation event and any subsequent rotation events.

    Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/extensible-business-reporting-language/index.html b/docs/glossary/extensible-business-reporting-language/index.html index 7c86429f47a..ec2a444b68c 100644 --- a/docs/glossary/extensible-business-reporting-language/index.html +++ b/docs/glossary/extensible-business-reporting-language/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Source

    Technical

    XBRL stands for eXtensible Business Reporting Language. It is one of a family of “XML” languages which is becoming a standard means of communicating information between businesses and on the internet.\ Source

    - + \ No newline at end of file diff --git a/docs/glossary/field-map/index.html b/docs/glossary/field-map/index.html index 3fdee9d1a4e..c5273d7fb2a 100644 --- a/docs/glossary/field-map/index.html +++ b/docs/glossary/field-map/index.html @@ -7,12 +7,12 @@ - +

    field-map

    Definition

    A traditional key:value pair renamed to avoid confusing with the cryptographic use of the term 'key'.

    To avoid confusion with the cryptographic use of the term key we instead use the term field to refer to a mapping pair and the terms field label and field value for each member of a pair. These pairs can be represented by two tuples e.g (label, value). We qualify this terminology when necessary by using the term field map to reference such a mapping.

    Nested field maps

    Field maps may be nested where a given field value is itself a reference to another field map. We call this nested set of fields a nested field map or simply a nested map for short.

    - + \ No newline at end of file diff --git a/docs/glossary/first-seen/index.html b/docs/glossary/first-seen/index.html index 2eacbaeef21..0777fbf6694 100644 --- a/docs/glossary/first-seen/index.html +++ b/docs/glossary/first-seen/index.html @@ -7,12 +7,12 @@ - +

    first-seen

    Definition

    "First seen" in KERI is the first verified event, accepted in the KEL. It has no effect on the timing of what has arrived in escrow for example; in escrow there can be garbage. Every 'first seen' event is propagated world wide within micro-seconds to the watchers. Only in this microseconds windows that you could have a live key conprise attack. If that happens, this where you have to look after this duplicity-attack a bit more in depth to handle it safely. E.g. a valid key rotation.

    - + \ No newline at end of file diff --git a/docs/glossary/foreign-function-interface/index.html b/docs/glossary/foreign-function-interface/index.html index 5d4424c90d3..5bbbdb73216 100644 --- a/docs/glossary/foreign-function-interface/index.html +++ b/docs/glossary/foreign-function-interface/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/frame-code/index.html b/docs/glossary/frame-code/index.html index df4731c27ec..33b2c1d2ff6 100644 --- a/docs/glossary/frame-code/index.html +++ b/docs/glossary/frame-code/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/full-disclosure/index.html b/docs/glossary/full-disclosure/index.html index 1c3a61d0584..b56eabe1c3c 100644 --- a/docs/glossary/full-disclosure/index.html +++ b/docs/glossary/full-disclosure/index.html @@ -7,12 +7,12 @@ - +

    full-disclosure

    Definition

    A disclosure of data in all its details.

    When used in the context of selective disclosure, full disclosure means detailed disclosure of the selectively disclosed attributes not detailed disclosure of all selectively disclosable attributes. Whereas when used in the context of partial disclosure, full disclosure means detailed disclosure of the field map that was so far only partially disclosed.

    - + \ No newline at end of file diff --git a/docs/glossary/fully-compact/index.html b/docs/glossary/fully-compact/index.html index 894aefeac32..042955f3e64 100644 --- a/docs/glossary/fully-compact/index.html +++ b/docs/glossary/fully-compact/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ This form is part of the graduated disclosure mechanism in ACDCs.

    Anchoring to the TEL

    The extra a fully compact version has to offer over a most compact version is the anchoring to the Tranaction event log. Here were various proofs (hashes) can be "stored" which are optional in all kind of ACDC variants.

    See

    Fully (expanded) version of an ACDC\ Most compact version of an ACDC.

    Analogy

    A fully compact ACDC is like the core of an onion and the fully expanded ACDC is like rest of the outer layers of the onion. Turn this onion inside-out: you only need to sign the core (most compact), and then the whole onion (expanded version) would verify. The complete (expanded) onion is the most user friendly information bulb you can get, and you don't need to peel off all the rings of the onion to securely attribute all the information to the controller of the SAID that signed the core.

    You can present any version of the onion you like: only the core, one partially stripped back, one layer at a time, or the whole thing (fully expanded). This illustrates part of the rational for why ACDCs matter. They offer a layered, graduated disclosure mechanism of verifiable credentials never seen before in the SSI field.

    - + \ No newline at end of file diff --git a/docs/glossary/fully-expanded/index.html b/docs/glossary/fully-expanded/index.html index 449c8726e65..174f3702cac 100644 --- a/docs/glossary/fully-expanded/index.html +++ b/docs/glossary/fully-expanded/index.html @@ -7,13 +7,13 @@ - +

    fully-expanded

    Definition

    The most user-friendly version of an ACDC credential. It doesn't need to be signed and typically is not signed since the most compact version which is signed can be computed from this form and then the signature can be looked up in the transaction event log of the ACDC in question.

    Regarding the graduated disclosure objective this form is the one with the highest amount of disclosure for a given node of an ACDC graph.

    See also

    Fully compact(ed) version of an ACDC\ Most compact version of an ACDC.

    - + \ No newline at end of file diff --git a/docs/glossary/ghost-credential/index.html b/docs/glossary/ghost-credential/index.html index 082b93cae34..fd0f3ca4933 100644 --- a/docs/glossary/ghost-credential/index.html +++ b/docs/glossary/ghost-credential/index.html @@ -7,12 +7,12 @@ - +

    ghost-credential

    Definition

    Is a valid credential within in a 90 days grace period (the revocation transaction time frame before it's booked to revocation registry). {TBW prio 3}

    Design

    When a relationship needs to be terminated with a QVI and the QVI has not revoked their credentials (yet) then those credentials become ghost credentials.

    - + \ No newline at end of file diff --git a/docs/glossary/gleif-authorized-representative/index.html b/docs/glossary/gleif-authorized-representative/index.html index 6ef397bb165..adeca2e28d6 100644 --- a/docs/glossary/gleif-authorized-representative/index.html +++ b/docs/glossary/gleif-authorized-representative/index.html @@ -7,12 +7,12 @@ - +

    gleif-authorized-representative

    Definition

    A representative of GLEIF authorized to perform the identity verifications requirements needed to issue the QVI vLEI Credential.

    Source: Draft vLEI Ecosystem Governance Framework Glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/gnu-privacy-guard/index.html b/docs/glossary/gnu-privacy-guard/index.html index 7fd0ec0f74d..d5fc2c31293 100644 --- a/docs/glossary/gnu-privacy-guard/index.html +++ b/docs/glossary/gnu-privacy-guard/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ More on wikipedia\ See more about the closely related and often-confusing term PGP.

    - + \ No newline at end of file diff --git a/docs/glossary/governance-framework/index.html b/docs/glossary/governance-framework/index.html index 07c20f6e689..e4bf449b276 100644 --- a/docs/glossary/governance-framework/index.html +++ b/docs/glossary/governance-framework/index.html @@ -7,13 +7,13 @@ - +

    governance-framework

    Definition

    Also called 'Governance structure'. Governance frameworks are the structure of a government and reflect the interrelated relationships, factors, and other influences upon the institution. Governance frameworks structure and delineate power and the governing or management roles in an organization. They also set rules, procedures, and other informational guidelines.\ More in source Wikipedia.

    In addition, governance frameworks define, guide, and provide for enforcement of these processes. These frameworks are shaped by the goals, strategic mandates, financial incentives, and established power structures and processes of the organization.

    Within GLEIF context, governance frameworks manifest in a document that details the requirements for vLEI credentials.

    eSSIF-lab definition

    governance framework in the #gswg glossary here.

    - + \ No newline at end of file diff --git a/docs/glossary/graduated-disclosure/index.html b/docs/glossary/graduated-disclosure/index.html index bc266dff077..ffd699a8c2c 100644 --- a/docs/glossary/graduated-disclosure/index.html +++ b/docs/glossary/graduated-disclosure/index.html @@ -7,13 +7,13 @@ - +

    graduated-disclosure

    Definition

    selectively disclosing more data as time and/or necessity progresses.

    Disclosure performed by a presentation exchange that has cross-variant (see compact variant) Issuer commitment verifiability as an essential property. It supports graduated disclosure by the Disclosee of any or all variants wether it be full, compact, metadata, partial, selective, bulk issued, or contractually protected.\ Paraphrased by @henkvancann based on source

    Reuse

    The SAID of a given variant is useful even when it is not the SAID of the variant the Issuer signed because during graduated disclosure the Discloser MAY choose to sign that given variant to fulfil a given step in an IPEX graduated disclosure transaction.

    Rule

    The disclosure performed by a presentation exchange MAY be graduated and MAY be contractually protected.

    {TBW check prio 1}

    - + \ No newline at end of file diff --git a/docs/glossary/graph-fragment/index.html b/docs/glossary/graph-fragment/index.html index f72c17263b7..3df2b739878 100644 --- a/docs/glossary/graph-fragment/index.html +++ b/docs/glossary/graph-fragment/index.html @@ -7,12 +7,12 @@ - +

    graph-fragment

    Definition

    An ACDC is a verifiable data structure and part of a graph, consisting of a node property and one or two edge proporties.

    - + \ No newline at end of file diff --git a/docs/glossary/group-code/index.html b/docs/glossary/group-code/index.html index b86e88eb57c..a1bfd15a5ca 100644 --- a/docs/glossary/group-code/index.html +++ b/docs/glossary/group-code/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/group-framing-code/index.html b/docs/glossary/group-framing-code/index.html index b67f4cad507..ada19a53dba 100644 --- a/docs/glossary/group-framing-code/index.html +++ b/docs/glossary/group-framing-code/index.html @@ -7,13 +7,13 @@ - +

    group-framing-code

    Definition

    special framing codes can be specified to support groups of primitives in CESR. Grouping enables pipelining. Other suitable terms for these special framing codes are group codes or count codes for short. These are suitable terms because these framing codes can be used to count characters, primitives in a group, or groups of primitives in a larger group when parsing and off-loading a stream of CESR primitives.\ Source

    Composability property

    One of the primary advantages of composable encoding is that we can use special framing code to support the above mentioned grouping.

    - + \ No newline at end of file diff --git a/docs/glossary/habery/index.html b/docs/glossary/habery/index.html index 78d7af398bb..8f3882eaf76 100644 --- a/docs/glossary/habery/index.html +++ b/docs/glossary/habery/index.html @@ -7,12 +7,12 @@ - +

    habery

    Definition

    'Hab' comes from ‘Habitat’. It’s a place where multi-sigs and AIDs are linked. Habery manages a collection of Habs. A Hab is a datastructure (a Python object).

    {TBW-prio2}

    Beware

    The only hit (2022) in a Google search pointing to a github site 'habery DOT github DOT io' is NOT related.

    - + \ No newline at end of file diff --git a/docs/glossary/hardware-security-module/index.html b/docs/glossary/hardware-security-module/index.html index 3dc9fe778e0..6abef51b615 100644 --- a/docs/glossary/hardware-security-module/index.html +++ b/docs/glossary/hardware-security-module/index.html @@ -7,13 +7,13 @@ - +

    hardware-security-module

    Definition

    A HSM is a physical computing device that safeguards and manages secrets (most importantly digital keys), performs encryption and decryption functions for digital signatures, strong authentication and other cryptographic functions.\ More in source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/hierarchical-asynchronous-coroutines-and-input-output/index.html b/docs/glossary/hierarchical-asynchronous-coroutines-and-input-output/index.html index cce121d9b91..edc36916d3d 100644 --- a/docs/glossary/hierarchical-asynchronous-coroutines-and-input-output/index.html +++ b/docs/glossary/hierarchical-asynchronous-coroutines-and-input-output/index.html @@ -7,12 +7,12 @@ - +

    hierarchical-asynchronous-coroutines-and-input-output

    Definition

    HIO is an acronym which stands for 'Weightless hierarchical asynchronous coroutines and I/O in Python'.

    It's Rich Flow Based Programming Hierarchical Structured Concurrency with Asynchronous IO. That mouthful of terms has been explained further on Github.

    HIO builds on very early work on hierarchical structured concurrency with lifecycle contexts from ioflo, ioflo github, and ioflo manuals.

    More info on Github

    Repo ioflo hio

    - + \ No newline at end of file diff --git a/docs/glossary/hierarchical-composition/index.html b/docs/glossary/hierarchical-composition/index.html index 78a3f5808f2..9c71878fa1e 100644 --- a/docs/glossary/hierarchical-composition/index.html +++ b/docs/glossary/hierarchical-composition/index.html @@ -7,12 +7,12 @@ - +

    hierarchical-composition

    Definition

    Encoding protocol that is composable in a hierarchy and enables pipelining (multiplexing and de-multiplexing) of complex streams in either text or compact binary. This allows management at scale for high-bandwidth applications.

    Example

    | TBW prio2 |

    Because of count codes and the composability - and concatenation property in CESR, pipelining is possible, which then uses multiplexing (combining self-framing primitives) and de-multiplexing (unravelling self-framing primitives).

    - + \ No newline at end of file diff --git a/docs/glossary/hierchical-deterministic-keys/index.html b/docs/glossary/hierchical-deterministic-keys/index.html index b012a427405..0524116c6da 100644 --- a/docs/glossary/hierchical-deterministic-keys/index.html +++ b/docs/glossary/hierchical-deterministic-keys/index.html @@ -7,13 +7,13 @@ - +

    hierchical-deterministic-keys

    Definition

    A HDK type is a type of deterministic bitcoin wallet derived from a known seed, that allow for the creation of child keys from the parent key. Because the child key is generated from a known seed there is a relationship between the child and parent keys that is invisible to anyone without that seed. The HD protocol (BIP 32) can generate a near infinite number of child keys from a deterministically-generated seed (chain code) from its parent, providing the functionality of being able to recreate those exact same child keys as long as you have the seed.\ More at W3 source

    - + \ No newline at end of file diff --git a/docs/glossary/hio/index.html b/docs/glossary/hio/index.html index 7bb37906de7..23bac79006b 100644 --- a/docs/glossary/hio/index.html +++ b/docs/glossary/hio/index.html @@ -7,13 +7,13 @@ - +

    hio

    Definition

    Weightless hierarchical asynchronous coroutines and I/O in Python.\ Rich Flow Based Programming Hierarchical Structured Concurrency with Asynchronous IO.

    More on Github

    This very technical topic can best be studied further at the Github Repository

    Relation to KERI

    Choosing HIO complies with the asynchronous nature of KERI, the minimal sufficient means design principle of KERI and the leading KERIpy implementation.

    - + \ No newline at end of file diff --git a/docs/glossary/identifier-system/index.html b/docs/glossary/identifier-system/index.html index fd28befc948..851bc2497d9 100644 --- a/docs/glossary/identifier-system/index.html +++ b/docs/glossary/identifier-system/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ Verifiable Credentials are digitally signed credentials that are not only tamper-resistant but capable of being verified in decentralized manner. vLEIs are based on the Trust over IP Authentic Chained Data Container (ACDC) specification (based on the Key Event Receipt Infrastructure (KERI) protocol (github.com/WebOfTrust/keri), both Internet Engineering Task Force (IETF) draft specifications). More info on GLEIF site

    - + \ No newline at end of file diff --git a/docs/glossary/identifier/index.html b/docs/glossary/identifier/index.html index 8a229f00f33..fb9f266db56 100644 --- a/docs/glossary/identifier/index.html +++ b/docs/glossary/identifier/index.html @@ -7,12 +7,12 @@ - +

    identifier

    Definition

    Something to uniquely identify (public) identities; pointing to something or someone else.

    More in ToIP glossary

    Identifier

    - + \ No newline at end of file diff --git a/docs/glossary/identity/index.html b/docs/glossary/identity/index.html index 7691e009fd9..407b8cf8966 100644 --- a/docs/glossary/identity/index.html +++ b/docs/glossary/identity/index.html @@ -7,12 +7,12 @@ - +

    identity

    Definition

    A unique entity. Typically represented by a unique identifier.

    More in ToIP glossary

    Identity

    - + \ No newline at end of file diff --git a/docs/glossary/inception-event/index.html b/docs/glossary/inception-event/index.html index 6f6c33cbba1..632c8b4b838 100644 --- a/docs/glossary/inception-event/index.html +++ b/docs/glossary/inception-event/index.html @@ -7,7 +7,7 @@ - +
    @@ -22,6 +22,6 @@ A KERI inception statement is completely self-contained. No additional infrastructure is needed or more importantly must be trusted in order to verify the derivation and initial configuration (inception) of the identifier. The initial trust basis for the identifier is simply the signed inception statement.\ (SamMSmith)

    - + \ No newline at end of file diff --git a/docs/glossary/inception/index.html b/docs/glossary/inception/index.html index 01e8ad24e07..58e51abf568 100644 --- a/docs/glossary/inception/index.html +++ b/docs/glossary/inception/index.html @@ -7,13 +7,13 @@ - +

    inception

    Definition

    The operation of creating an AID by binding it to the initial set of authoritative keypairs and any other associated information. This operation is made verifiable and duplicity evident upon acceptance as the inception event that begins the AID's KEL.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/inconsistency/index.html b/docs/glossary/inconsistency/index.html index d4a07b51ead..89141a859c3 100644 --- a/docs/glossary/inconsistency/index.html +++ b/docs/glossary/inconsistency/index.html @@ -7,12 +7,12 @@ - +

    inconsistency

    Definition

    If a reason, idea, opinion, etc. is inconsistent, different parts of it do not agree, or it does not agree with something else. Data inconsistency occurs when similar data is kept in different formats in more than one file. When this happens, it is important to match the data between files.

    A data structure like a KEL can be internally inconsistent which is a clear indication that this data structure is not verifiable.

    - + \ No newline at end of file diff --git a/docs/glossary/indexed-signature/index.html b/docs/glossary/indexed-signature/index.html index 09726648b58..b619c5dff2a 100644 --- a/docs/glossary/indexed-signature/index.html +++ b/docs/glossary/indexed-signature/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Source:Philip Feairheller

    Witness signatures indexed

    In addition, witness signatures can also be attached as indexed signatures. So a verifier can determine which witness signed a particular receipt. This is useful when witnesses are receipting an event and only attaching their own signature. The controller knows which witness signed the receipt by looking up the index in their list of witnesses for that event.\ Source:Philip Feairheller

    - + \ No newline at end of file diff --git a/docs/glossary/input-output/index.html b/docs/glossary/input-output/index.html index a79352532ef..2696db4bb87 100644 --- a/docs/glossary/input-output/index.html +++ b/docs/glossary/input-output/index.html @@ -7,12 +7,12 @@ - +

    input-output

    Definition

    In computing, input/output (I/O, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system. Inputs are the signals or data received by the system and outputs are the signals or data sent from it. The term can also be used as part of an action; to "perform I/O" is to perform an input or output operation.

    More on source Wikipedia

    Input/Output

    - + \ No newline at end of file diff --git a/docs/glossary/inquisitor/index.html b/docs/glossary/inquisitor/index.html index d8c9ac34080..01dffa41f98 100644 --- a/docs/glossary/inquisitor/index.html +++ b/docs/glossary/inquisitor/index.html @@ -7,13 +7,13 @@ - +

    inquisitor

    Definition

    In the ACDC context it's a general term for someone (in a validating role) that launches an inquiry at some KERI witness.

    More broadly accepted notion

    An inquisitor was an official (usually with judicial or investigative functions) in an inquisition – an organization or program intended to eliminate heresy and other things contrary to the doctrine or teachings.\ Source: Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/integrity/index.html b/docs/glossary/integrity/index.html index 82834dea192..d696b6ec3e8 100644 --- a/docs/glossary/integrity/index.html +++ b/docs/glossary/integrity/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Source ToIP issue 10

    message integrity seems to be included in technical integrity.

    The further separation of Authenticity and Integrity in the ToIP glossary can be largely adopted by KERI? {TBW}

    See also

    verified integrity\ (complementary) integrity verification

    *Validation in relation to integrity, in KERI's view would be an assessment of what's been verified before; in a certain context from a certain angle. And this mechanism is too close to veracity judgement, to be an objective verdict over integrity of data.

    - + \ No newline at end of file diff --git a/docs/glossary/interaction-event/index.html b/docs/glossary/interaction-event/index.html index d9402d4a453..747bc60ae73 100644 --- a/docs/glossary/interaction-event/index.html +++ b/docs/glossary/interaction-event/index.html @@ -7,13 +7,13 @@ - +

    interaction-event

    Non-establishment Event that anchors external data to the key-state as established by the most recent prior establishment event.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/interleaved-serialisation/index.html b/docs/glossary/interleaved-serialisation/index.html index d28fd30682d..10d5a3382bc 100644 --- a/docs/glossary/interleaved-serialisation/index.html +++ b/docs/glossary/interleaved-serialisation/index.html @@ -7,13 +7,13 @@ - +

    interleaved-serialisation

    Definition

    Serializations of different types interleaved in an overarching format

    One extremely useful property of CESR is that special count codes enable CESR to be interleaved with other serializations. For example, Many applications use JSON RFC4627, CBOR RFC8949, or MsgPack (MGPK) to serialize flexible self-describing data structures based on field maps, also known as dictionaries or hash tables.\ Source IETF-CESR

    - + \ No newline at end of file diff --git a/docs/glossary/internal-inconsistency/index.html b/docs/glossary/internal-inconsistency/index.html index c463c3a9a2e..c19fbc35a2a 100644 --- a/docs/glossary/internal-inconsistency/index.html +++ b/docs/glossary/internal-inconsistency/index.html @@ -7,12 +7,12 @@ - +

    internal-inconsistency

    Definition

    Internal is used to describe things that exist or happen inside an entity. In our scope of digital identifiers its (in)consistency is considered within the defining data structures and related data stores.

    In KERI we are protected against internal inconsistency by the hash chain datastructure of the KEL, because the only authority that can sign the log is the controller itself.

    - + \ No newline at end of file diff --git a/docs/glossary/internet-assigned-numbers-authority/index.html b/docs/glossary/internet-assigned-numbers-authority/index.html index 18217074b08..80c3e8aa1f2 100644 --- a/docs/glossary/internet-assigned-numbers-authority/index.html +++ b/docs/glossary/internet-assigned-numbers-authority/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Source

    What are IANA responsibilities?

    In addition to global IP addressing, IANA is also responsible for domain name system (DNS) root zone management, autonomous system numbers and any "unique parameters and protocol values" for the internet community.\ Source

    More information

    Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/interoperability/index.html b/docs/glossary/interoperability/index.html index d651f027b6f..59e0adfed9d 100644 --- a/docs/glossary/interoperability/index.html +++ b/docs/glossary/interoperability/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ More on source Wikipedia

    Beyond the ability of two or more computer systems to exchange information, semantic interoperability is the ability to automatically interpret the information exchanged meaningfully and accurately in order to produce useful results as defined by the end users of both systems.

    Cross-domain interoperability involves multiple social, organizational, political, legal entities working together for a common interest or information exchange.\ More on source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/interoperable/index.html b/docs/glossary/interoperable/index.html index fa58db88272..723217b37f0 100644 --- a/docs/glossary/interoperable/index.html +++ b/docs/glossary/interoperable/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/ip-address/index.html b/docs/glossary/ip-address/index.html index 240c3662423..460414fc64e 100644 --- a/docs/glossary/ip-address/index.html +++ b/docs/glossary/ip-address/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/issuance-and-presentation-exchange-protocol/index.html b/docs/glossary/issuance-and-presentation-exchange-protocol/index.html index 89c28781d08..bef0bde612f 100644 --- a/docs/glossary/issuance-and-presentation-exchange-protocol/index.html +++ b/docs/glossary/issuance-and-presentation-exchange-protocol/index.html @@ -7,13 +7,13 @@ - +

    issuance-and-presentation-exchange-protocol

    Definition

    provides a uniform mechanism for the issuance and presentation of ACDCs in a securely attributable manner.

    Relation

    A single protocol is able to work for both types of exchanges (issuance and presentation) by recognizing that all exchanges (both issuance and presentation) may be modeled as the disclosure of information by a Discloser to a Disclosee.\ The difference between exchange types is the information disclosed not the mechanism for disclosure.

    More info at source

    (Source)

    - + \ No newline at end of file diff --git a/docs/glossary/issuance-event/index.html b/docs/glossary/issuance-event/index.html index cfd05027636..354fec95259 100644 --- a/docs/glossary/issuance-event/index.html +++ b/docs/glossary/issuance-event/index.html @@ -7,13 +7,13 @@ - +

    issuance-event

    Definition

    The initial transaction event log event anchored to the issuing AID’s key event log that represents the issuance of an ACDC credential.\ Source: Philip Feairheller.

    It's a sort of "inception event" of a verifiable credential.

    - + \ No newline at end of file diff --git a/docs/glossary/issuance-exchange/index.html b/docs/glossary/issuance-exchange/index.html index 175a7959801..b3b35750b67 100644 --- a/docs/glossary/issuance-exchange/index.html +++ b/docs/glossary/issuance-exchange/index.html @@ -7,12 +7,12 @@ - +

    issuance-exchange

    Definition

    A special case of a presentation exchange where the Discloser is the Issuer of the origin (Primary) ACDC of the DAG formed by the set of chained ACDCs so disclosed.

    In an issuance exchange, when the origin ACDC has an Issuee, the Disclosee MAY also be the origin ACDC's Issuee.

    - + \ No newline at end of file diff --git a/docs/glossary/issuee/index.html b/docs/glossary/issuee/index.html index 95805d82922..02399685e78 100644 --- a/docs/glossary/issuee/index.html +++ b/docs/glossary/issuee/index.html @@ -7,12 +7,12 @@ - +

    issuee

    Definition

    An ACDC is optionally issued to the Issuee. When present, the Issuee identifier (AID) appears at the top level of the attribute section or in the attribute list at the top level of the attribute aggregate section of the ACDC.

    Rule

    Each ACDC MUST have an Issuer and MAY have an Issuee. The set of ACDCs so disclosed in a presentation exchange MUST be chained. This set of chained ACDCs define a directed acyclic graph that MUST have at least one vertex and MAY have zero or more edges pointing to other vertices.

    - + \ No newline at end of file diff --git a/docs/glossary/issuer/index.html b/docs/glossary/issuer/index.html index 306a7ed48ee..b2fc3f3a4dc 100644 --- a/docs/glossary/issuer/index.html +++ b/docs/glossary/issuer/index.html @@ -7,12 +7,12 @@ - +

    issuer

    Definition

    An ACDC is issued by the Issuer. The Issuer identifier (AID) appears in the top level of the ACDC.

    Rule

    Each ACDC MUST have an Issuer and MAY have an Issuee. The set of ACDCs so disclosed in a presentation exchange MUST be chained. This set of chained ACDCs define a directed acyclic graph that MUST have at least one vertex and MAY have zero or more edges pointing to other vertices.

    - + \ No newline at end of file diff --git a/docs/glossary/ixn/index.html b/docs/glossary/ixn/index.html index 05b538792bd..8aedb2e53bb 100644 --- a/docs/glossary/ixn/index.html +++ b/docs/glossary/ixn/index.html @@ -7,13 +7,13 @@ - +

    ixn

    Definition

    JSON field name (attribute) for Interaction Event; its content (value) contains a hash pointer. All TEL events are anchored in a KEL in either ixn (interaction) or rot (rotation events). This is the foundation enabling a verifiable credential protocol to be built on top of KERI.\ Source Kent Bull 2023

    Also see

    rot

    - + \ No newline at end of file diff --git a/docs/glossary/javascript-object-notation-(JSON)/index.html b/docs/glossary/javascript-object-notation-(JSON)/index.html index e09962b1c8f..4d6315a65be 100644 --- a/docs/glossary/javascript-object-notation-(JSON)/index.html +++ b/docs/glossary/javascript-object-notation-(JSON)/index.html @@ -7,12 +7,12 @@ - +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    - + \ No newline at end of file diff --git a/docs/glossary/javascript-object-signing-and-encryption/index.html b/docs/glossary/javascript-object-signing-and-encryption/index.html index 091275143ac..9a0f5249106 100644 --- a/docs/glossary/javascript-object-signing-and-encryption/index.html +++ b/docs/glossary/javascript-object-signing-and-encryption/index.html @@ -7,12 +7,12 @@ - +

    javascript-object-signing-and-encryption

    Definition

    is a framework intended to provide a method to securely transfer claims (such as authorization information) between parties. The JOSE framework provides a collection of specifications to serve this purpose.

    Related: JWK, JWT. More info

    - + \ No newline at end of file diff --git a/docs/glossary/judge/index.html b/docs/glossary/judge/index.html index e2e3080647f..876bb4844ea 100644 --- a/docs/glossary/judge/index.html +++ b/docs/glossary/judge/index.html @@ -7,13 +7,13 @@ - +

    judge

    Definition

    A judge is an entity or component that examines the entries of one or more KERLs and DELs of a given identifier to validate that the event history is from a non-duplicitous controller and has been witnessed by a sufficient number of non-duplicitous witnesses such that it may be trusted or conversely not-trusted by a validator.

    Task and result

    A judge determines current [authoritative] key set for identifier from the key event receipt logs from a set of witnesses. Judges transmit the 'judgement' of watchers concerning duplicity.

    Where judges run

    Example AT&T vs T-Mobile. The only "fault" that is apparent, is an attack on the KEL. And that can only occur via key compromise. So a successful multi-threshold attack causing duplicity is the only thing watchers are looking for.

    Competitor and common interest

    So even competitors will want to share across the entire ecosystem. Similar to certificate transparency, all competitors in the internet hosting space share the information with each other because it is in their best interest to eliminate fraud / duplicity.\ Paraphrased by @henkvancann based on source Samuel Smith / Phil Feairheller

    - + \ No newline at end of file diff --git a/docs/glossary/juror/index.html b/docs/glossary/juror/index.html index c4ff040e3df..7c14c8e4249 100644 --- a/docs/glossary/juror/index.html +++ b/docs/glossary/juror/index.html @@ -7,12 +7,12 @@ - +

    juror

    Definition

    A juror has a simpler task of performing duplicity detection on events and event receipts.

    - + \ No newline at end of file diff --git a/docs/glossary/jury/index.html b/docs/glossary/jury/index.html index 640f205bd1e..1df002ba679 100644 --- a/docs/glossary/jury/index.html +++ b/docs/glossary/jury/index.html @@ -7,12 +7,12 @@ - +

    jury

    Definition

    The jury is the set of entities or components acting as jurors.

    - + \ No newline at end of file diff --git a/docs/glossary/keep/index.html b/docs/glossary/keep/index.html index 290d80cad40..e874e9b023f 100644 --- a/docs/glossary/keep/index.html +++ b/docs/glossary/keep/index.html @@ -7,13 +7,13 @@ - +

    keep

    Definition

    Is KERI's and ACDC's user interface that uses the keripy agent for its backend. It uses the REST API exposed from the keripy agent.\ Source: Philip Feairheller

    Interface

    Keep is a task orientated application for managing AIDs in ecosystems, e.g. the vLEI Ecosystem.

    Usecases

    Keep can be used to:

    • establish and manage local AIDs
    • create, join and manage distributed Multi-Sig AIDs (with or without delegation)
    • issue and revoke credentials specified within the vLEI Ecosystem

    More info on Github repo of Keep.

    - + \ No newline at end of file diff --git a/docs/glossary/keri-agreement-algorithm-for-control-establishment/index.html b/docs/glossary/keri-agreement-algorithm-for-control-establishment/index.html index 27c282c71eb..11a06f49d90 100644 --- a/docs/glossary/keri-agreement-algorithm-for-control-establishment/index.html +++ b/docs/glossary/keri-agreement-algorithm-for-control-establishment/index.html @@ -7,7 +7,7 @@ - +
    @@ -20,6 +20,6 @@ Source [KERI Whitepaper Section 11.4.2 Agreement]

    Additional Definition

    A newly invented algorithm that is a simplification of PBFT class algorithms, separation of control of distributed consensus using distinct promulgation (witness) and confirmation (watcher) networks (new invention) but many non-BFT consensus algorithms do something similar and one BFT algorithm Stellar does something similar but not the same.

    What if PBFT and Stellar had a baby that was missing liveness and total ordering but had safety and was completely decentralized, portable, and permission less? It would be named KERI.\ (SamMSmith)

    - + \ No newline at end of file diff --git a/docs/glossary/keri-command-line-interface/index.html b/docs/glossary/keri-command-line-interface/index.html index b3a9cbe34c0..779c726e4d2 100644 --- a/docs/glossary/keri-command-line-interface/index.html +++ b/docs/glossary/keri-command-line-interface/index.html @@ -7,12 +7,12 @@ - +

    keri-command-line-interface

    Definition

    Command line tool used to create identifiers, manage keys, query for KELs and participate in delegated identifiers or multi-signature group identifiers. It also includes operations for running witnesses, watchers and cloud agents to establish a cloud presence for any identifier.

    Most commands require a “name” parameter which references a named Habitat (think wallet) for performing the operation.

    More information

    IIW34 presentation slides

    - + \ No newline at end of file diff --git a/docs/glossary/keri-improvement-doc/index.html b/docs/glossary/keri-improvement-doc/index.html index 787b760500b..2c0b67d050e 100644 --- a/docs/glossary/keri-improvement-doc/index.html +++ b/docs/glossary/keri-improvement-doc/index.html @@ -7,12 +7,12 @@ - +

    keri-improvement-doc

    Definition

    These docs are modular so teams of contributors can independently work and create PRs of individual KIDs; KIDs answer the question "how we do it". We add commentary to the indivudual KIDs that elaborate on the why. It has been split from the how to not bother implementors with the why.

    - + \ No newline at end of file diff --git a/docs/glossary/keri-ox/index.html b/docs/glossary/keri-ox/index.html index 377b5b56579..7a882632e17 100644 --- a/docs/glossary/keri-ox/index.html +++ b/docs/glossary/keri-ox/index.html @@ -7,12 +7,12 @@ - +

    keri-ox

    Definition

    The RUST programming-language implementation of the KERI protocol.

    - + \ No newline at end of file diff --git a/docs/glossary/keri-request-authentication-method/index.html b/docs/glossary/keri-request-authentication-method/index.html index cbedc2b72b4..a963d72d8ba 100644 --- a/docs/glossary/keri-request-authentication-method/index.html +++ b/docs/glossary/keri-request-authentication-method/index.html @@ -7,13 +7,13 @@ - +

    keri-request-authentication-method

    Definition

    All requests from a web client must use KRAM (KERI Request Authentication Method) for reply attack protection. The method is essentially based on each request body needing to include a date time string field in ISO-8601 format that must be within an acceptable time window relative to the server's date time.\ Source SKWA GitHub repo, more info in Hacked.io write-up

    SKWA

    - + \ No newline at end of file diff --git a/docs/glossary/keri-suite-search-engine/index.html b/docs/glossary/keri-suite-search-engine/index.html index 9ff684cb8e4..57b09833471 100644 --- a/docs/glossary/keri-suite-search-engine/index.html +++ b/docs/glossary/keri-suite-search-engine/index.html @@ -7,12 +7,12 @@ - +

    keri-suite-search-engine

    Definition

    KERISSE is the Docusaurus self-education site of Web-of-Trust GitHub repo with Typesense search facilities. Because of its focus on well-versed developers in the field of SSI and the support of their journey to understand the structure of the code and how things work in the KERI suite it's more a search engine that drills down on documentation.

    - + \ No newline at end of file diff --git a/docs/glossary/keri-suite/index.html b/docs/glossary/keri-suite/index.html index 90dcfa98ccd..847e9a8819f 100644 --- a/docs/glossary/keri-suite/index.html +++ b/docs/glossary/keri-suite/index.html @@ -7,12 +7,12 @@ - +

    keri-suite

    Definition

    The KERI suite is the set of inter-related developments (KERI, ACDC, OOBI, CESR, IPEX, etc) under the Web-of -Trust user on Github

    - + \ No newline at end of file diff --git a/docs/glossary/keria/index.html b/docs/glossary/keria/index.html index d634b362ed7..e46473787d4 100644 --- a/docs/glossary/keria/index.html +++ b/docs/glossary/keria/index.html @@ -7,12 +7,12 @@ - +

    keria

    Definition

    KERI Agent in the cloud. The KERIA service will expose 3 separate HTTP endpoints on 3 separate network interfaces.

    1. Boot Interface - Exposes one endpoint for Agent Worker initialization.
    2. Admin Interface - The REST API for command and control operations from the Signify Client.
    3. KERI Protocol Interface - CESR over HTTP endpoint for KERI protocol interactions with the rest of the world.

    More at Source Github repo

    - + \ No newline at end of file diff --git a/docs/glossary/keride/index.html b/docs/glossary/keride/index.html index 34a5e49d799..f80a796a8cc 100644 --- a/docs/glossary/keride/index.html +++ b/docs/glossary/keride/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ is CESR, signing, prefixing, pathing, and parsing.\ More on Github repo

    - + \ No newline at end of file diff --git a/docs/glossary/keridemlia/index.html b/docs/glossary/keridemlia/index.html index 0956d272378..f5d2bf2a3a8 100644 --- a/docs/glossary/keridemlia/index.html +++ b/docs/glossary/keridemlia/index.html @@ -7,13 +7,13 @@ - +

    keridemlia

    Definition

    It is a contraction of KERI and Kademlia. It's the distributed database of Witness IP-addresses based on a Distributed Hash Tabel. It also does the CNAME - stuff that DNS offers for KERI: the mapping between an identifier and it's controller AID stored in the KEL to its current wittness AID and the wittness AID to the IP address. (@henkvancann)

    - + \ No newline at end of file diff --git a/docs/glossary/keripy/index.html b/docs/glossary/keripy/index.html index 029a29cc6ec..ce54d910bac 100644 --- a/docs/glossary/keripy/index.html +++ b/docs/glossary/keripy/index.html @@ -7,12 +7,12 @@ - +

    keripy

    Definition

    The Python programming-language implementation of the KERI protocol.

    - + \ No newline at end of file diff --git a/docs/glossary/key-compromise/index.html b/docs/glossary/key-compromise/index.html index 6b4a30c5976..14067fb4001 100644 --- a/docs/glossary/key-compromise/index.html +++ b/docs/glossary/key-compromise/index.html @@ -7,13 +7,13 @@ - +

    key-compromise

    Definition

    Basically there are three infrastructures that are included in “key management” systems that must be protected:

    • Key pair creation and storage
    • Event signing
    • Event signature verification So when we say “key compromise” we really mean compromise of one of those three things.

    More information

    More in the security sections of Universal Identifier Theory

    - + \ No newline at end of file diff --git a/docs/glossary/key-event-log/index.html b/docs/glossary/key-event-log/index.html index 7e377340674..e727e336334 100644 --- a/docs/glossary/key-event-log/index.html +++ b/docs/glossary/key-event-log/index.html @@ -7,13 +7,13 @@ - +

    key-event-log

    Definition

    A verifiable data structure that is a backward and forward chained, signed, append-only log of key events for an AID. The first entry in a KEL MUST be the one and only Inception Event of that AID.\ Source Sam Smith

    Put differently

    KELs are hash-chained Key Events. These are blockchains in a narrow definition, but not in the sense of ordering (not ordered) or global consensus mechanisms (which is not needed). (SamMSmith)

    A KEL is KERI's VDS: the proof of key state of its identifier.

    - + \ No newline at end of file diff --git a/docs/glossary/key-event-message/index.html b/docs/glossary/key-event-message/index.html index 2bfb955acb7..82b722a056b 100644 --- a/docs/glossary/key-event-message/index.html +++ b/docs/glossary/key-event-message/index.html @@ -7,13 +7,13 @@ - +

    key-event-message

    Definition

    Message whose body is a key event and whose attachments may include signatures on its body.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/key-event-receipt-infrastructure/index.html b/docs/glossary/key-event-receipt-infrastructure/index.html index 071ea564779..74ad54be3e8 100644 --- a/docs/glossary/key-event-receipt-infrastructure/index.html +++ b/docs/glossary/key-event-receipt-infrastructure/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ KERI provides a trust spanning layer for the internet, because the protocol solves the secure attribution problem in a general, portable, fully decentralized way. There are more types of trust IN KERI but they all depend on the most important attributive trust. From KERI we've learned that secure attribution is the essential problem for any identifier system to solve.

    - + \ No newline at end of file diff --git a/docs/glossary/key-event-receipt-log/index.html b/docs/glossary/key-event-receipt-log/index.html index 556da6c65f9..c64f3669c43 100644 --- a/docs/glossary/key-event-receipt-log/index.html +++ b/docs/glossary/key-event-receipt-log/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ The Key Event Receipt Logs are built from receipts of events signed by the witnesses of those events (these are called commitments); these are also append-only but not hash-chained. (@henkvancann)

    - + \ No newline at end of file diff --git a/docs/glossary/key-event-receipt/index.html b/docs/glossary/key-event-receipt/index.html index 2be61d86ccf..87540446708 100644 --- a/docs/glossary/key-event-receipt/index.html +++ b/docs/glossary/key-event-receipt/index.html @@ -7,13 +7,13 @@ - +

    key-event-receipt

    Definition

    Message whose body references a key event and whose attachments MUST include one or more signatures on that key event.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/key-event/index.html b/docs/glossary/key-event/index.html index 2098e91f41f..de198dc5430 100644 --- a/docs/glossary/key-event/index.html +++ b/docs/glossary/key-event/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Source Sam Smith

    Loose definition in KERI

    Events happening to controlling keys of an identifier recorded in a Key Event Log (KEL).

    Data structure angle

    A key event is data structure that consist of a header (Key Event header), a configuration section (Key Event Data spans Header and configuration) and signatures (Key event Message spans Data and signatures)\ (@henkvancann)

    - + \ No newline at end of file diff --git a/docs/glossary/key-management/index.html b/docs/glossary/key-management/index.html index 2cebb012240..b1f3afc3ead 100644 --- a/docs/glossary/key-management/index.html +++ b/docs/glossary/key-management/index.html @@ -7,12 +7,12 @@ - +

    key-management

    Definition

    management of cryptographic keys in a crypto-system. This includes dealing with the generation, exchange, storage, use, crypto-shredding (destruction) and replacement of keys (also rotation). It includes cryptographic protocol design, key servers, user procedures, and other relevant protocols.

    Successful key management is critical to the security of a crypto-system. It is the more challenging side of cryptography in a sense that it involves aspects of social engineering such as system policy, user training, organizational and departmental interactions, and coordination between all of these elements, in contrast to pure mathematical practices that can be automated.

    More on wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/key-pair/index.html b/docs/glossary/key-pair/index.html index 8488b7a6b01..35fea3eaf90 100644 --- a/docs/glossary/key-pair/index.html +++ b/docs/glossary/key-pair/index.html @@ -7,12 +7,12 @@ - +

    key-pair

    Definition

    is a private key and its corresponding public key resulting from a one-way crypto-graphical function; a key pair is used with an asymmetric-key (public-key) algorithm in a so called Public Key Infrastructure (PKI).

    - + \ No newline at end of file diff --git a/docs/glossary/key-state/index.html b/docs/glossary/key-state/index.html index 90e75d9f979..ae14782154f 100644 --- a/docs/glossary/key-state/index.html +++ b/docs/glossary/key-state/index.html @@ -7,13 +7,13 @@ - +

    key-state

    Definition

    Includes the set of currently authoritative keypairs for an AID and any other information necessary to secure or establish control authority over an AID.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/key-stretching/index.html b/docs/glossary/key-stretching/index.html index 66f1d2c5724..28cfadd67b5 100644 --- a/docs/glossary/key-stretching/index.html +++ b/docs/glossary/key-stretching/index.html @@ -7,12 +7,12 @@ - +

    key-stretching

    Definition

    In cryptography, key stretching techniques are used to make a possibly weak key, typically a password or passphrase, more secure against a brute-force attack by increasing the resources (time and possibly space) it takes to test each possible key.

    Humans are predictable

    Passwords or passphrases created by humans are often short or predictable enough to allow password cracking, and key stretching is intended to make such attacks more difficult by complicating a basic step of trying a single password candidate. Key stretching also improves security in some real-world applications where the key length has been constrained, by mimicking a longer key length from the perspective of a brute-force attacker.

    More on source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/key-transparency/index.html b/docs/glossary/key-transparency/index.html index f50c5feb9ae..1f88677f959 100644 --- a/docs/glossary/key-transparency/index.html +++ b/docs/glossary/key-transparency/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ More on Stackexchange how key transparency works.\ (@henkvancann)

    - + \ No newline at end of file diff --git a/docs/glossary/key/index.html b/docs/glossary/key/index.html index 452cc8006b0..ec1fdbfc63f 100644 --- a/docs/glossary/key/index.html +++ b/docs/glossary/key/index.html @@ -7,12 +7,12 @@ - +

    key

    Definition

    In our digital scope it's a mechanism for granting or restricting access to something. MAY be used to issue and prove, MAY be used to transfer and control over identity and cryptocurrency. More

    - + \ No newline at end of file diff --git a/docs/glossary/keystore/index.html b/docs/glossary/keystore/index.html index cf85f2206e5..9a33b65980d 100644 --- a/docs/glossary/keystore/index.html +++ b/docs/glossary/keystore/index.html @@ -7,13 +7,13 @@ - +

    keystore

    Definition

    A keystore in KERI is the encrypted data store that hold the private keys for a collection of AIDs.\ Source: Philip Feairheller.

    KERI explicitly distinguishes keystore and wallet; the latter being a superset of the former. Keep is KERI's and ACDC's user interface with Keripy agent API as a back end.

    Beware

    A Java Keystore is a non-related concept!

    - + \ No newline at end of file diff --git a/docs/glossary/kli/index.html b/docs/glossary/kli/index.html index f2c34d6c13e..fc7e08f2786 100644 --- a/docs/glossary/kli/index.html +++ b/docs/glossary/kli/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/large-language-model/index.html b/docs/glossary/large-language-model/index.html index 26853530b33..7266fbf23b1 100644 --- a/docs/glossary/large-language-model/index.html +++ b/docs/glossary/large-language-model/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/lead-bytes/index.html b/docs/glossary/lead-bytes/index.html index 5c99f75f588..567b5987d18 100644 --- a/docs/glossary/lead-bytes/index.html +++ b/docs/glossary/lead-bytes/index.html @@ -7,12 +7,12 @@ - +

    lead-bytes

    Definition

    In order to avoid confusion with the use of the term pad character, when pre-padding with bytes that are not replaced later, we use the term lead bytes. So lead-bytes are added "pre-conversion".

    The term pad may be confusing not merely because both ways use a type of padding but it is also true that the number of pad characters when padding post-conversion equals the number of lead bytes when padding pre-conversion.

    - + \ No newline at end of file diff --git a/docs/glossary/ledger-backer/index.html b/docs/glossary/ledger-backer/index.html index d517f4ebae7..4a8fdeeba0c 100644 --- a/docs/glossary/ledger-backer/index.html +++ b/docs/glossary/ledger-backer/index.html @@ -7,12 +7,12 @@ - +

    ledger-backer

    Definition

    A witness in KERI that is ledger-registered. It's a type of backer that proof its authenticity by a signing key anchored to the public key of a data item on a (public) blockchain.

    - + \ No newline at end of file diff --git a/docs/glossary/legal-entity-engagement-context-role-vlei-credential-governance-framework/index.html b/docs/glossary/legal-entity-engagement-context-role-vlei-credential-governance-framework/index.html index 103d2fd0a0c..aed9577d489 100644 --- a/docs/glossary/legal-entity-engagement-context-role-vlei-credential-governance-framework/index.html +++ b/docs/glossary/legal-entity-engagement-context-role-vlei-credential-governance-framework/index.html @@ -7,13 +7,13 @@ - +

    legal-entity-engagement-context-role-vlei-credential-governance-framework

    Definition

    A document that details the requirements for vLEI Role Credentials issued to representatives of a Legal Entity in other than official roles but in functional or other context of engagement.\ Source: Draft vLEI Ecosystem Governance Framework Glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/legal-entity-official-organizational-role-vlei-credential-governance-framework/index.html b/docs/glossary/legal-entity-official-organizational-role-vlei-credential-governance-framework/index.html index c0465d7d7ca..3161b2e559a 100644 --- a/docs/glossary/legal-entity-official-organizational-role-vlei-credential-governance-framework/index.html +++ b/docs/glossary/legal-entity-official-organizational-role-vlei-credential-governance-framework/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/legal-entity-vlei-credential-governance-framework/index.html b/docs/glossary/legal-entity-vlei-credential-governance-framework/index.html index 76d09eb7fa0..4af35bc9a4a 100644 --- a/docs/glossary/legal-entity-vlei-credential-governance-framework/index.html +++ b/docs/glossary/legal-entity-vlei-credential-governance-framework/index.html @@ -7,12 +7,12 @@ - +

    legal-entity-vlei-credential-governance-framework

    Definition

    A document that details the requirements for vLEI Credential issued by a Qualified vLEI Issuer to a Legal Entity.

    - + \ No newline at end of file diff --git a/docs/glossary/legal-entity/index.html b/docs/glossary/legal-entity/index.html index a37f68026f9..e81576c44aa 100644 --- a/docs/glossary/legal-entity/index.html +++ b/docs/glossary/legal-entity/index.html @@ -7,12 +7,12 @@ - +

    legal-entity

    Definition

    Unique parties that are legally or financially responsible for the performance of financial transactions or have the legal right in their jurisdiction to enter independently into legal contracts.

    More detailed and inclusive

    As defined in ISO 17442:2020, includes, but is not limited to, the unique parties above, regardless of whether they are incorporated or constituted in some other way (e.g., trust, partnership, contractual). It includes governmental organizations and supranationals and individuals when acting in a business capacity but excludes natural persons. It also includes international branches.

    Paraphrased by @henkvancann from source Draft vLEI Ecosystem Governance Framework Glossary.

    More in ToIP glossary

    Identifier

    - + \ No newline at end of file diff --git a/docs/glossary/levels-of-assurance/index.html b/docs/glossary/levels-of-assurance/index.html index 94386a7eaaf..785948c7c91 100644 --- a/docs/glossary/levels-of-assurance/index.html +++ b/docs/glossary/levels-of-assurance/index.html @@ -7,12 +7,12 @@ - +

    levels-of-assurance

    Definition

    Identity and other trust decisions are often not binary. They are judgement calls. Any time that judgement is not a simple “Yes/No” answer, you have the option for levels of assurance. Also 'LoA'.

    Relation with KERI

    KERI has the same LOAs for entropy and trust in human behavior preserving the security of key pairs and preserving their own privacy. It has high LOAs for the cryptographic bindings of controllers and identifiers. Also the validation of witnesses and watchtowers has high a LOA.

    - + \ No newline at end of file diff --git a/docs/glossary/liveness/index.html b/docs/glossary/liveness/index.html index 774638096d7..45fcb55ff13 100644 --- a/docs/glossary/liveness/index.html +++ b/docs/glossary/liveness/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Unlike liveness properties, safety properties can be violated by a finite execution of a distributed system. All properties can be expressed as the intersection of safety and liveness properties.\ {TBW prio 2 how is liveness important in distributed systems? how does KERI guarantee liveness}

    More information

    On wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/loci-of-control/index.html b/docs/glossary/loci-of-control/index.html index 5699ef52fe2..0a77cf2f680 100644 --- a/docs/glossary/loci-of-control/index.html +++ b/docs/glossary/loci-of-control/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ The design principle of separating the loci-of-control between controllers and validators removes one of the major drawbacks of total ordered distributed consensus algorithms, that is, shared governance over the pool of nodes that provide the consensus algorithm.\ The primary purpose of the KA2CE algorithm is to protect the controller’s ability to promulgate the authoritative copy of its key event history despite external attack. This includes maintaining a sufficient degree of availability such that any validator may obtain an authoritative copy on demand.

    - + \ No newline at end of file diff --git a/docs/glossary/locked-state/index.html b/docs/glossary/locked-state/index.html index a44f06f9af7..d759f621885 100644 --- a/docs/glossary/locked-state/index.html +++ b/docs/glossary/locked-state/index.html @@ -7,12 +7,12 @@ - +

    locked-state

    Definition

    The default status a KERI data store is in once it has been created using a passcode; it is by default encrypted.

    - + \ No newline at end of file diff --git a/docs/glossary/management-TEL/index.html b/docs/glossary/management-TEL/index.html index 1bb6e950581..eaaad727929 100644 --- a/docs/glossary/management-TEL/index.html +++ b/docs/glossary/management-TEL/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/management-transaction-event-log/index.html b/docs/glossary/management-transaction-event-log/index.html index 280eb72b2c0..fe6741cf0b7 100644 --- a/docs/glossary/management-transaction-event-log/index.html +++ b/docs/glossary/management-transaction-event-log/index.html @@ -7,12 +7,12 @@ - +

    management-transaction-event-log

    Definition

    A 'management TEL' will signal the creation of the Virtual Credential Registry (VCR) and track the list of Registrars that will act as Backers for the individual transaction event logs (TELs) for each virtual credential (VC).

    - + \ No newline at end of file diff --git a/docs/glossary/message/index.html b/docs/glossary/message/index.html index 1b2e49714fa..0d952e34bc3 100644 --- a/docs/glossary/message/index.html +++ b/docs/glossary/message/index.html @@ -7,13 +7,13 @@ - +

    message

    Definition

    serialized data structure event, an actionable message

    KERI details

    Consists of a serialized data structure that comprises its body and a set of serialized data structures that are its attachments. Attachments may include but are not limited to signatures on the body.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/messagepack/index.html b/docs/glossary/messagepack/index.html index 6cd3619e6a7..7d65583807d 100644 --- a/docs/glossary/messagepack/index.html +++ b/docs/glossary/messagepack/index.html @@ -7,12 +7,12 @@ - +

    messagepack

    Definition

    MessagePack is a computer data interchange format. It is a binary form for representing simple data structures like arrays and associative arrays. MessagePack aims to be as compact and simple as possible. The official implementation is available in a variety of languages

    More on Wikipedia

    MessagePack

    - + \ No newline at end of file diff --git a/docs/glossary/most-compact/index.html b/docs/glossary/most-compact/index.html index 8f6d3c3f3d8..68203c5aabf 100644 --- a/docs/glossary/most-compact/index.html +++ b/docs/glossary/most-compact/index.html @@ -7,13 +7,13 @@ - +

    most-compact

    Definition

    An ACDC that, for a given level of disclosure, is as compact as it can be which means

    • it has the SAIDs for each section that are not disclosed
    • it has expanded sections that are disclosed

    Multiple forms of a single ACDC can be called the "most compact" version given that each level of graduated disclosure will have a "most compacted" version. If all the blocks are expanded of a most compact version then it becomes fully expanded. If all the blocks are replaced with SAIDs then it becomes fully compacted.

    This form is a part of the graduated disclosure objective.

    See also

    Fully (expanded) version of an ACDC\ Fully compact(ed) version of an ACDC

    - + \ No newline at end of file diff --git a/docs/glossary/multicodec/index.html b/docs/glossary/multicodec/index.html index 2d325f79f2b..145db07bd59 100644 --- a/docs/glossary/multicodec/index.html +++ b/docs/glossary/multicodec/index.html @@ -7,12 +7,12 @@ - +

    multicodec

    Definition

    Is a self-describing multi-format, it wraps other formats with a tiny bit of self-description. A multi-codec identifier is both a variant (variable length integer) and the code identifying data.

    See more at GitHub Multi-codec

    Multi-codec is an agreed-upon codec table. It is designed for use in binary representations, such as keys or identifiers (i.e CID). It is then used as a prefix to identify the data that follows.

    - + \ No newline at end of file diff --git a/docs/glossary/multiplexing/index.html b/docs/glossary/multiplexing/index.html index 5fede5ff1dc..1d0877edebf 100644 --- a/docs/glossary/multiplexing/index.html +++ b/docs/glossary/multiplexing/index.html @@ -7,13 +7,13 @@ - +

    multiplexing

    Definition

    In telecommunications and computer networking, multiplexing (sometimes contracted to muxing) is a method by which multiple analog or digital signals are combined into one signal over a shared medium. The aim is to share a scarce resource - a physical transmission medium.\ More on source Wikipedia-page

    Because of count codes and the composability - and concatenation property in CESR, pipelining is possible, which then uses multiplexing (combining self-framing primitives) and de-multiplexing (unravelling self-framing primitives). The addition of group framing codes as independently composable primitives enables hierarchical compositions.

    - + \ No newline at end of file diff --git a/docs/glossary/multisig/index.html b/docs/glossary/multisig/index.html index e44e46e711f..fbc2edaeb9b 100644 --- a/docs/glossary/multisig/index.html +++ b/docs/glossary/multisig/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Paraphrased by @henkvancann from Wikipedia source

    KERI multi-signatures

    The KERI team has conceptually chosen for minimal sufficient means and so-called dumb crypto: "'Dumb technology' is freely available, understandable to everyone and easy to implement. In our case: just hashes and digital signatures."

    KERI has thresholded set of non-repudiable signatures.\ KERI's CESR, and therefore KERI and ACDC is extensible with the latest more sophisticated multi-signature schemes like Schnorr signatures.

    - + \ No newline at end of file diff --git a/docs/glossary/naive-conversion/index.html b/docs/glossary/naive-conversion/index.html index 6f2fc33b6c5..4b4e3b159b3 100644 --- a/docs/glossary/naive-conversion/index.html +++ b/docs/glossary/naive-conversion/index.html @@ -7,13 +7,13 @@ - +

    naive-conversion

    Definition

    Non-CESR Base64 conversion. How people are used to using the Base64 encode and decode. Without pre-padding etc all the stuff CESR does to ensure aligns on 24 bit boundaries so CESR never uses the '=' pad character. But naive Base64 will pad if the length is not 24 bit aligned.\ Source: Samuel Smith in issue 34

    Naive conversion is a text to binary conversion or vice versa that doesn't anticipate on either composability and / or on the concatenation capability of the result of such an operation.

    In the IETF draft CESR there's much attention for naive Base64 conversions, because it helps explaining the necessity of stable code characters and padding in CESR to achieve:

    - + \ No newline at end of file diff --git a/docs/glossary/namespace/index.html b/docs/glossary/namespace/index.html index 6ddf5c0ad6e..85c6c466ee9 100644 --- a/docs/glossary/namespace/index.html +++ b/docs/glossary/namespace/index.html @@ -7,12 +7,12 @@ - +

    namespace

    Definition

    In an identity system, an identifier can be generalized to a namespace to provide a systematic way of organizing identifiers for related resources and their attributes. A namespace is a grouping of symbols or identifiers for a set of related objects.

    A namespace employs some scheme for assigning identifiers to the elements of the namespace. A simple name-spacing scheme uses a prefix or prefixes in a hierarchical fashion to compose identifiers. The following is an example of a namespace scheme for addresses within the USA that uses a hierarchy of prefixes:

    state.county.city.zip.street.number.

    An example element in this namespace may be identified with the following:

    utah.wasatch.heber.84032.main.150S.
    - + \ No newline at end of file diff --git a/docs/glossary/ndigs/index.html b/docs/glossary/ndigs/index.html index b2c2bbfe528..516285a0d7e 100644 --- a/docs/glossary/ndigs/index.html +++ b/docs/glossary/ndigs/index.html @@ -7,12 +7,12 @@ - +

    ndigs

    Definition

    Digests of public keys, not keys themselves. The reason to use ndigs is to prove control over public keys or to hide keys. It's used in Keripy and consists of a list of qualified base64 digests of public rotation key derivations.

    - + \ No newline at end of file diff --git a/docs/glossary/nested-cooperative-delegated-identifiers/index.html b/docs/glossary/nested-cooperative-delegated-identifiers/index.html index 9cc15204673..84dc2423a3a 100644 --- a/docs/glossary/nested-cooperative-delegated-identifiers/index.html +++ b/docs/glossary/nested-cooperative-delegated-identifiers/index.html @@ -7,12 +7,12 @@ - +

    nested-cooperative-delegated-identifiers

    Definition

    In KERI delegations are cooperative, this means that both the delegator and delegate must contribute to a delegation. The delegator creates a cryptographic commitment in either a rotation or interaction event via a seal in a delegated establishment event. The delegate creates a cryptographic commitment in its establishment event via a seal to the delegating event. Each commitment is signed respectively by the committer. This cooperative delegation together with special superseding recovery rules for events enables cooperative recovery.

    Recursive application

    This superseding rule may be recursively applied to multiple levels of delegation, thereby enabling recovery of any set of keys signing or pre-rotated in any lower levels by a superseding rotation delegation at the next higher level. This cascades the security of the key management infrastructure of higher levels to lower levels. This is a distinctive security feature of the cooperative delegation of identifiers in KERI.

    More information

    More in chapter Nested Delegation Recovery of the whitepaper

    - + \ No newline at end of file diff --git a/docs/glossary/non-establishment-event/index.html b/docs/glossary/non-establishment-event/index.html index 6192e1989e8..e91035151c0 100644 --- a/docs/glossary/non-establishment-event/index.html +++ b/docs/glossary/non-establishment-event/index.html @@ -7,7 +7,7 @@ - +
    @@ -18,6 +18,6 @@ Source Sam Smith

    Made easier

    A non-establishment event is a key event that does not change the current key-state for an identifier. The event (only) ties or anchors digital data to the key event log of the identifier.\ (@henkvancann)

    - + \ No newline at end of file diff --git a/docs/glossary/non-fungible-token/index.html b/docs/glossary/non-fungible-token/index.html index 1b407acb3ca..7f925f91109 100644 --- a/docs/glossary/non-fungible-token/index.html +++ b/docs/glossary/non-fungible-token/index.html @@ -7,12 +7,12 @@ - +

    non-fungible-token

    Definition

    A non-fungible token (NFT) is a financial security consisting of digital data stored in a blockchain, a form of distributed ledger.

    Ownership

    The ownership of an NFT is recorded in a blockchain, and can be transferred by the owner, allowing NFTs to be sold and traded. NFTs can be created by anybody, and require few or no coding skills to create. NFTs typically contain references to digital files such as photos, videos, and audio.

    Fungible

    Because NFTs are uniquely identifiable assets, they differ from cryptocurrencies, which are fungible.

    There's nothing "non fungible" to a Non-fungible Token in our perspective. It's just another unique identifier controlled by a public private key pair. The fact that an NFT uniquely identifies a digital entity isn't very impressing, because of their

    • security fault : the security is dependent of the host ledger the NFT is anchored to.
    • transferability fault : you need a transaction to transfer ownership on the host blockchain, controlling keys can't be rotated
    • monitization fault : there's no good reason whatsoever to mingle the value aspect and the uniqueness property of a digital asset, and unfortunately that's what NFTs are doing.

    Because uniqueness tokenization "done right" is to be praised, it's recommended to look into KERI identifiers and ACDC veracity claims to support the value of the identifiers, whose monetary value can be recorded elsewhere and separate from the identifier system. Key (pre-)rotation can transfer ownership of a unique digital asset without the need of a transaction on a blockchain.

    Asset backing

    Sometimes an NFT doesn't only uniquely represent a digital asset. It can be the digital twin of - and is also (hopefully) backed by - a real-life asset. Even in this perspective KERI and ACDC are more emcompassing too, because in the KERI/ACDC case we are dealing with globally portable unique digital twins, not anchored to (read locked in) a blockchain.

    - + \ No newline at end of file diff --git a/docs/glossary/non-normative/index.html b/docs/glossary/non-normative/index.html index cb123c30d2e..9624395dba3 100644 --- a/docs/glossary/non-normative/index.html +++ b/docs/glossary/non-normative/index.html @@ -7,13 +7,13 @@ - +

    non-normative

    Definition

    A theory is called non-normative if it does not do what has described under 'Normative'. In general, the purpose of non-normative theories is not to give answers, but rather to describe possibilities or predict what might happen as a result of certain actions.\ Source.

    - + \ No newline at end of file diff --git a/docs/glossary/non-repudiable/index.html b/docs/glossary/non-repudiable/index.html index 222e2db654c..28b273cbea0 100644 --- a/docs/glossary/non-repudiable/index.html +++ b/docs/glossary/non-repudiable/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ An authenticatable (verifiable) internet message (packet) or data item includes the identifier and data in its payload. Attached to the payload is a digital signature(s) made with the private key(s) from the controlling keypair(s). Given the identifier in a message, any verifier of a message (data item) can use the identifier system mapping to look up the public key(s) belonging to the controlling keypair(s). The verifier can then verify the attached signature(s) using that public key(s). Because the payload includes the identifier, the signature makes a non-repudiable cryptographic commitment to both the source identifier and the data in the payload.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/non-transferable-identifier/index.html b/docs/glossary/non-transferable-identifier/index.html index e953c7eb0e7..acc389502dc 100644 --- a/docs/glossary/non-transferable-identifier/index.html +++ b/docs/glossary/non-transferable-identifier/index.html @@ -7,13 +7,13 @@ - +

    non-transferable-identifier

    Definition

    Controlling keys over this identifier cannot be rotated and therefore this identifier is non-transferable to other control.\ An identifier of this type has specific positive features like short-lived, peer to peer, one-time use, discardable, etc. that are very practical in certain use cases. Moreover non-transferable identifiers are much easier to govern than persistent identifiers that are transferable.

    The KERI design approach is to build composable primitives instead of custom functionality that is so typical of other DKMI approaches:

    - + \ No newline at end of file diff --git a/docs/glossary/non-transferable/index.html b/docs/glossary/non-transferable/index.html index 010e9478c14..a0b8033392a 100644 --- a/docs/glossary/non-transferable/index.html +++ b/docs/glossary/non-transferable/index.html @@ -7,12 +7,12 @@ - +

    non-transferable

    Definition

    No capacity to transfer (the control over) a certain digital asset in an unobstructed or loss-less manner. As opposed to transferable.

    For example not legally transferable to the ownership of another entity.

    A specific type of identifier we distinguish is a non-transferable identifier; it is has specific positive features like short-lived, peer to peer, one-time use, discardable, etc. that are very practical in certain use cases.

    - + \ No newline at end of file diff --git a/docs/glossary/normative/index.html b/docs/glossary/normative/index.html index ce5cd0ffbe2..c53ac3f3bca 100644 --- a/docs/glossary/normative/index.html +++ b/docs/glossary/normative/index.html @@ -7,13 +7,13 @@ - +

    normative

    Definition

    a theory is “normative” if it, in some sense, tells you what you should do - what action you should take. If it includes a usable procedure for determining the optimal action in a given scenario.\ Source.

    - + \ No newline at end of file diff --git a/docs/glossary/official-organizational-role/index.html b/docs/glossary/official-organizational-role/index.html index 3027dc2366f..43eb38a2613 100644 --- a/docs/glossary/official-organizational-role/index.html +++ b/docs/glossary/official-organizational-role/index.html @@ -7,13 +7,13 @@ - +

    official-organizational-role

    Definition

    Also 'OOR'. A person that represents the Legal Entity in an official organizational role and is issued an OOR vLEI Credential.\ Source Draft vLEI Ecosystem Governance Framework Glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/one-way-functions/index.html b/docs/glossary/one-way-functions/index.html index ab45bc7c710..8fda60ee6fc 100644 --- a/docs/glossary/one-way-functions/index.html +++ b/docs/glossary/one-way-functions/index.html @@ -7,13 +7,13 @@ - +

    one-way-functions

    Definition

    In computer science, a one-way function is a function that is easy to compute on every input, but hard to invert given the image of a random input. Here, "easy" and "hard" are to be understood in the sense of computational complexity theory, specifically the theory of polynomial time problems.\ More on Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/opcode/index.html b/docs/glossary/opcode/index.html index a28c4fdccb1..07eae4902f9 100644 --- a/docs/glossary/opcode/index.html +++ b/docs/glossary/opcode/index.html @@ -7,12 +7,12 @@ - +

    opcode

    Definition

    Opcodes are meant to provide stream processing instructions that are more general and flexible than simply concatenated primitives or groups of primitives.

    Why opcodes

    A yet to be determined stack based virtual machine could be executed using a set of opcodes that provides primitive, primitive group, or stream processing instructions. This would enable highly customizable uses for CESR.

    Opcode tables

    The ‘_’ selector is reserved for the yet to be defined opcode table or tables.

    - + \ No newline at end of file diff --git a/docs/glossary/out-of-band-introduction/index.html b/docs/glossary/out-of-band-introduction/index.html index 7b56ac190ac..40e2e59e088 100644 --- a/docs/glossary/out-of-band-introduction/index.html +++ b/docs/glossary/out-of-band-introduction/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ To clarify, any information obtained from the service endpoint provided in the OOBI must be verified by some other mechanism. An OOBI, however, enables any internet and web search infrastructure to act as an out-of-band infrastructure to discover information that is verified using an in-band mechanism or protocol. The primary in-band verification protocol is KERI.

    - + \ No newline at end of file diff --git a/docs/glossary/owner/index.html b/docs/glossary/owner/index.html index 9111869c619..5f2614c0c14 100644 --- a/docs/glossary/owner/index.html +++ b/docs/glossary/owner/index.html @@ -7,12 +7,12 @@ - +

    owner

    See

    Owner in ToIP glossary

    - + \ No newline at end of file diff --git a/docs/glossary/ownership/index.html b/docs/glossary/ownership/index.html index 2ba9f7b5f3c..98f8c01dab5 100644 --- a/docs/glossary/ownership/index.html +++ b/docs/glossary/ownership/index.html @@ -7,12 +7,12 @@ - +

    ownership

    See

    Ownership in ToIP glossary

    - + \ No newline at end of file diff --git a/docs/glossary/pad/index.html b/docs/glossary/pad/index.html index 68354a75341..150de965e43 100644 --- a/docs/glossary/pad/index.html +++ b/docs/glossary/pad/index.html @@ -7,13 +7,13 @@ - +

    pad

    Definition

    is a character used to fill empty space, because many applications have fields that must be a particular length.\ Source

    In order to avoid confusion with the use of the term pad character, when pre-padding with bytes that are not replaced later, we use the term lead bytes.

    - + \ No newline at end of file diff --git a/docs/glossary/parside/index.html b/docs/glossary/parside/index.html index 912590b118e..08b2a39b2e0 100644 --- a/docs/glossary/parside/index.html +++ b/docs/glossary/parside/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Sam Smith suggested for Parside to not iterate stuff, only parse chunks delimited by the count code. (Source Cesride: meeting Feb 2 2023)

    Background

    CESR primitives are self-framing (which is relatively new). That means that you can construct your parser modually. We can dispatch the parsing of the stream to an entity. The strip parameter tells us what part will be parsed be which code.

    Design ideas Feb 2023

    1. Parside should be concerned with parsing group codes, cesride concerned with parsing primitives.
    2. Parside will contain a count code at the beginning of the stream, each cesr primitive is self framing, JSON is not; hence the Version string.
    3. Parside could "load" the tables it supports for dynamically loaded code tables
    4. Parside could look at how/if we can return an interator/generator

    Source Cesride: meeting Feb 2 2023 notes

    Cesride parses the CESR primitives

    Parside parses the group codes

    | TBW |

    Source Cesride: meeting Feb 2 2023

    Working

    Parside should start with a default version for CESR. Anytime it gets a version count code it changes the version and also elevates to the top level (the version count code must appear at the top level). The version count code determines which CESR table to load when parsing the stream. The sniffer detects if CESR binary, CESR Text, JSON, CBOR, MGPK. If any of the last three then the parser regexes to find the version string inside the JSON, CBOR, and MGPK and from the version string extracts the number of characters/bytes that is the length of the JSON, CBOR, or MGPK. The parser then resumes sniffing. When the sniff is CESR then when at the top level looks for the CESR version count code or any other count codes. The interpretation of the count codes is dependent on the version count code that is why the Parser has to start with a default version count code because the stream may not begin with a version code or may have resumed after a cold restart. When a count code is parsed then the parser may descend into parsing whats inside group for a group count code which may recursively nest down a ways.\ Source Slack Cesride thread: Feb 2 2023

    - + \ No newline at end of file diff --git a/docs/glossary/partial-disclosure/index.html b/docs/glossary/partial-disclosure/index.html index 24343991a05..cd7657b1df1 100644 --- a/docs/glossary/partial-disclosure/index.html +++ b/docs/glossary/partial-disclosure/index.html @@ -7,12 +7,12 @@ - +

    partial-disclosure

    Definition

    An ACDC attribute section can be a nested branch in a tree. Partial disclosure is the weaker version because you can either decide to disclose or not. Selective disclosure is more fine grained.

    Selective disclosure is a from partial disclosure that has a different cryptographic fundament: a sort of cryptographic aggregator (not an accumulator).

    Source: distilled from ACDC Zoom meeting, date March 28, 2023

    - + \ No newline at end of file diff --git a/docs/glossary/partial-pre-rotation/index.html b/docs/glossary/partial-pre-rotation/index.html index 9f70dbd369c..04cd41a6e1e 100644 --- a/docs/glossary/partial-pre-rotation/index.html +++ b/docs/glossary/partial-pre-rotation/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/partial-rotation/index.html b/docs/glossary/partial-rotation/index.html index c9bd84b7c03..27e7224b2f3 100644 --- a/docs/glossary/partial-rotation/index.html +++ b/docs/glossary/partial-rotation/index.html @@ -7,13 +7,13 @@ - +

    partial-rotation

    Definition

    The pre-rotation mechanism supports partial pre-rotation or more exactly partial rotation of pre-rotated keypairs. It's a rotation operation on a set of pre-rotated keys that may keep some keys in reserve (i.e unexposed) while exposing others as needed.

    Partial rotation serves two important purposes:

    Paraphrased by @henkvancann on the bases of the IETF-KERI draft 2022 by Samual Smith.

    More detailed explanation

    A valid rotation operation requires the satisfaction of two different thresholds. These are the current threshold of the given rotation (establishment) event with respect to its associated current public key list and the next threshold from the given rotation event's most recent prior establishment event with respect to its associated blinded next key digest list. For short, we denote the next threshold from the most recent prior establishment event as the prior next threshold, and the list of unblinded public keys taken from the blinded key digest list from the most recent prior establishment event as the prior next key list. Explication of the elements of the prior next key list requires exposing or unblinding the underlying public keys committed to by their corresponding digests that appear in the next key digest list of the most recent prior establishment event. The unexposed (blinded) public keys MAY be held in reserve.\ More in Source

    - + \ No newline at end of file diff --git a/docs/glossary/passcode/index.html b/docs/glossary/passcode/index.html index 808e8bf953d..16f1e74d9cb 100644 --- a/docs/glossary/passcode/index.html +++ b/docs/glossary/passcode/index.html @@ -7,13 +7,13 @@ - +

    passcode

    Definition

    A password, sometimes called a passcode (for example in Apple devices), is secret data, typically a string of characters, usually used to confirm a user's identity.\ More on source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/payload/index.html b/docs/glossary/payload/index.html index 78b54953891..19b7b043c67 100644 --- a/docs/glossary/payload/index.html +++ b/docs/glossary/payload/index.html @@ -7,13 +7,13 @@ - +

    payload

    Definition

    The term 'payload' is used to distinguish between the 'interesting' information in a chunk of data or similar, and the overhead to support it. It is borrowed from transportation, where it refers to the part of the load that 'pays': for example, a tanker truck may carry 20 tons of oil, but the fully loaded vehicle weighs much more than that - there's the vehicle itself, the driver, fuel, the tank, etc. It costs money to move all these, but the customer only cares about (and pays for) the oil, hence, 'pay-load'. Source.

    KERI context

    Now payload in KERI. The payload of an item in an Event Log is one the following cryptographic building blocks in KERI:

    • a content digest hash
    • a root hash of a Merkle-tree
    • a public key Note tha KERI never puts raw data or privacy-sensitive data in a KEL or KERL.
    - + \ No newline at end of file diff --git a/docs/glossary/peer-to-peer/index.html b/docs/glossary/peer-to-peer/index.html index cf91163a721..458ec18ba87 100644 --- a/docs/glossary/peer-to-peer/index.html +++ b/docs/glossary/peer-to-peer/index.html @@ -7,12 +7,12 @@ - +

    peer-to-peer

    Definition

    Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network. They are said to form a peer-to-peer network of nodes

    More on source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/percolated-information-discovery/index.html b/docs/glossary/percolated-information-discovery/index.html index d203f2402da..24af2d85076 100644 --- a/docs/glossary/percolated-information-discovery/index.html +++ b/docs/glossary/percolated-information-discovery/index.html @@ -7,12 +7,12 @@ - +

    percolated-information-discovery

    Definition

    In the OOBI protocol, a discovery mechanism for the KERI and the ACDC protocols is provided by a bootstrap that enables Percolated Information Discovery (PID), which is based on Invasion Percolation Theory.

    After related information for discovery and verification is bootstrapped from the OOBI, subsequent authorization is non-interactive thus making it highly scalable. This provides what we call zero-trust percolated discovery or speedy percolated discovery. Percolation means that each discoverer in turn may share what it discovers with any subsequent discoverers. Since the information so discovered is end-verifiable, the percolation mechanism and percolating intermediaries do not need to be trusted.

    Percolation Theory

    Percolation theory is a mathematical framework used to study the behavior of connected clusters in random systems. It was originally developed to understand the flow of fluids through porous media, but it has since found applications in various fields, including physics, mathematics, computer science, and social sciences.

    Invasion Percolation Theory

    Invasion percolation is a specific variant of percolation theory that models the infiltration of a fluid into a porous medium. It is used to study how a fluid, such as a gas or liquid, spreads through a random network of interconnected sites or pores.

    The invasion process follows the principle of least resistance, where the fluid seeks the path of least resistance through the porous medium. As the invasion progresses, the fluid selectively infiltrates the sites with lower resistance, forming a connected cluster of invaded sites. The invaded cluster grows by adding new invaded sites through the neighboring dry sites with the lowest resistance.

    - + \ No newline at end of file diff --git a/docs/glossary/persistent-data-structure/index.html b/docs/glossary/persistent-data-structure/index.html index 7546fa33feb..e9d7a6582de 100644 --- a/docs/glossary/persistent-data-structure/index.html +++ b/docs/glossary/persistent-data-structure/index.html @@ -7,12 +7,12 @@ - +

    persistent-data-structure

    Definition

    An append only verifiable data structure. What we sign may not change.

    The approach that ACDCs take to data structures -- making them immutable and thus distributable and concurrency-friendly -- is very similar to the one advocated and implemented by Clojure.

    The persistent data structure is a graph

    - + \ No newline at end of file diff --git a/docs/glossary/persistent-identifier/index.html b/docs/glossary/persistent-identifier/index.html index 87156713d8f..1e1b017c04a 100644 --- a/docs/glossary/persistent-identifier/index.html +++ b/docs/glossary/persistent-identifier/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/pii/index.html b/docs/glossary/pii/index.html index ff3a8df1310..c0583293773 100644 --- a/docs/glossary/pii/index.html +++ b/docs/glossary/pii/index.html @@ -7,12 +7,12 @@ - +

    pii

    Definition

    personally identifiable information

    - + \ No newline at end of file diff --git a/docs/glossary/pipelining/index.html b/docs/glossary/pipelining/index.html index c470da64f1b..94dda85dad5 100644 --- a/docs/glossary/pipelining/index.html +++ b/docs/glossary/pipelining/index.html @@ -7,13 +7,13 @@ - +

    pipelining

    Definition

    In computing, a pipeline, also known as a data pipeline, is a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion. Some amount of buffer storage is often inserted between elements.\ More on source Wikipedia-page

    Multiplexing

    - + \ No newline at end of file diff --git a/docs/glossary/post-pad/index.html b/docs/glossary/post-pad/index.html index 7165a59377c..5327a34a528 100644 --- a/docs/glossary/post-pad/index.html +++ b/docs/glossary/post-pad/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ The other way is to pre-pad leading bytes of zeros to the raw binary value before conversion to Base64 to ensure the total size of the raw binary value with pre-pad bytes is an integer multiple of 3 bytes. This ensures that the size in characters of the Base64 conversion of the pre-padded raw binary is an integer multiple of 4 characters.\ Source IEFT CESR draft

    - + \ No newline at end of file diff --git a/docs/glossary/pre-pad/index.html b/docs/glossary/pre-pad/index.html index 09c8286013c..bc31d0e734d 100644 --- a/docs/glossary/pre-pad/index.html +++ b/docs/glossary/pre-pad/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ The other way is to pre-pad leading bytes of zeros to the raw binary value before conversion to Base64 to ensure the total size of the raw binary value with pre-pad bytes is an integer multiple of 3 bytes. This ensures that the size in characters of the Base64 conversion of the pre-padded raw binary is an integer multiple of 4 characters.\ Source IEFT CESR draft

    - + \ No newline at end of file diff --git a/docs/glossary/pre-rotation/index.html b/docs/glossary/pre-rotation/index.html index ef7c3623842..ae6701b1354 100644 --- a/docs/glossary/pre-rotation/index.html +++ b/docs/glossary/pre-rotation/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ The pre-rotation scheme provides secure verifiable rotation that mitigates successful exploit of a given set of signing private keys from a set of (public, private) key-pairs when that exploit happens sometime after its creation and its first use to issue a self-certifying identifier. In other words, it assumes that the private keys remains private until after issuance of the associated identifier. Source: chapter Pre-rotation in whitepaper

    - + \ No newline at end of file diff --git a/docs/glossary/prefix/index.html b/docs/glossary/prefix/index.html index 49def2f0dec..2abb421657e 100644 --- a/docs/glossary/prefix/index.html +++ b/docs/glossary/prefix/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Including the derivation code in the prefix binds the derivation process along with the public key to the resultant identifier.

    An example of the prefix with a one character derivation code and a 32 byte public key encoded into a 44 character Based-64 string follows: BDKrJxkcR9m5u1xs33F5pxRJP6T7hJEbhpHrUtlDdhh0

    Basic Prefix Derivation image
    - + \ No newline at end of file diff --git a/docs/glossary/presentation-exchange/index.html b/docs/glossary/presentation-exchange/index.html index 989a04e7e9d..b435928b520 100644 --- a/docs/glossary/presentation-exchange/index.html +++ b/docs/glossary/presentation-exchange/index.html @@ -7,12 +7,12 @@ - +

    presentation-exchange

    Definition

    An exchange that provides disclosure of one or more ACDCs between a Discloser and a Disclosee.

    A presentation exchange is the process by which authenticatable information may be exchanged between two parties, namely, the Discloser and Disclosee.

    Rule

    Each ACDC MUST have an Issuer and MAY have an Issuee. The set of ACDCs so disclosed in a presentation exchange MUST be chained. This set of chained ACDCs define a directed acyclic graph that MUST have at least one vertex and MAY have zero or more edges pointing to other vertices.

    - + \ No newline at end of file diff --git a/docs/glossary/pretty-good-privacy/index.html b/docs/glossary/pretty-good-privacy/index.html index 04da03056e9..e45339da656 100644 --- a/docs/glossary/pretty-good-privacy/index.html +++ b/docs/glossary/pretty-good-privacy/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ More on wikipedia\ So also the often confusing GPG term.

    - + \ No newline at end of file diff --git a/docs/glossary/primary-root-of-trust/index.html b/docs/glossary/primary-root-of-trust/index.html index e7149624615..0e5a9975166 100644 --- a/docs/glossary/primary-root-of-trust/index.html +++ b/docs/glossary/primary-root-of-trust/index.html @@ -7,12 +7,12 @@ - +

    primary-root-of-trust

    Definition

    In KERI a root-of-trust that is cryptographically verifiable all the way to its current controlling key pair in a PKI.

    The characteristic primary is one-on-one related to the entropy used for the creation of (the seed of) the private keys.

    - + \ No newline at end of file diff --git a/docs/glossary/primitive/index.html b/docs/glossary/primitive/index.html index c7f6ca5dd16..8e65affdf66 100644 --- a/docs/glossary/primitive/index.html +++ b/docs/glossary/primitive/index.html @@ -7,13 +7,13 @@ - +

    primitive

    Definition

    In general in computing a 'primitive' is the simplest type of programming language item. It may also refer to the smallest processing unit accessible by a programmer.\ Source

    Cryptographic primitive

    See Cryptographic primitive

    In KERI and ACDC it a serialization of a unitary value. A cryptographic primitive is the KERI-suite sense is the serialization of a value associated with a cryptographic operation including but not limited to a digest (hash), a salt, a seed, a private key, a public key, or a signature. All primitives in KERI MUST be expressed in CESR.

    - + \ No newline at end of file diff --git a/docs/glossary/promiscuous-mode/index.html b/docs/glossary/promiscuous-mode/index.html index 75d0b7e0fad..1694865486e 100644 --- a/docs/glossary/promiscuous-mode/index.html +++ b/docs/glossary/promiscuous-mode/index.html @@ -7,13 +7,13 @@ - +

    promiscuous-mode

    Definition

    It is the mode a watcher runs in. A watcher uses the same code as a witness. However a watcher does so "lacking standards of selection; acting without careful judgment; indiscriminate". Or "Showing little forethought or critical judgment; casual."\ Source

    Meaning

    The function of watcher is different from a witness, however they can both use the same protocol and code, just in a distinct mode.

    - + \ No newline at end of file diff --git a/docs/glossary/proof-of-authority/index.html b/docs/glossary/proof-of-authority/index.html index 462c5365301..8bc310d8414 100644 --- a/docs/glossary/proof-of-authority/index.html +++ b/docs/glossary/proof-of-authority/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ (source)

    Example APC : book rights sold

    The data contained in an ACDC is a book written by Terlalu Bonito; the ACDC also contains anchoring digest, signed by the author at publishing date. Terlalu has sold all rights to publish the book to Liz Smiley The ownership of the book matches the current control over the book and its digital twin: the proof of authority by the chain of ACDCs.

    Do not confuse blockchains or consensus algorithms

    Proof of authority (PoA) is also an algorithm used with blockchains that delivers comparatively fast transactions through a consensus mechanism based on identity as a stake.\ (Source)

    This is NOT what we mean in SSI, KERI and ACDC.

    - + \ No newline at end of file diff --git a/docs/glossary/proof-of-authorship/index.html b/docs/glossary/proof-of-authorship/index.html index 7b02d91f191..a280d607e66 100644 --- a/docs/glossary/proof-of-authorship/index.html +++ b/docs/glossary/proof-of-authorship/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ These proofs of authorship and/or authority provide provenance of an ACDC itself and by association any data that is so conveyed.\ (source)

    Example APC : book rights sold

    The data contained in an ACDC is a book written by Terlalu Bonito; the ACDC also contains anchoring digest, signed by the author at publishing date. Terlalu has sold all rights to publish the book to Liz Smiley The ownership of the book matches the current control over the book and its digital twin: the proof of authority by the chain of ACDCs.

    - + \ No newline at end of file diff --git a/docs/glossary/protocol/index.html b/docs/glossary/protocol/index.html index 168c9211eff..239550463bd 100644 --- a/docs/glossary/protocol/index.html +++ b/docs/glossary/protocol/index.html @@ -7,13 +7,13 @@ - +

    protocol

    Definition

    Generic term to describe a code of correct conduct. Also called "etiquette": a code of personal behavior.

    We can distinguish three relevant elaborations on the term 'protocol' to make the concept more specific:

    - + \ No newline at end of file diff --git a/docs/glossary/provenance/index.html b/docs/glossary/provenance/index.html index c82e36f3144..e4cad8e848c 100644 --- a/docs/glossary/provenance/index.html +++ b/docs/glossary/provenance/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ (Source)

    Provenance and ACDC

    Authentic chained data containers (ACDC) establish provenance in two coherent ways:

    • historic documentation of cryptographic verifiable key states and data consistency (result: secure attribution)
    • historic documentation of credentials (result: attested veracity)\ (@henkvancann)
    - + \ No newline at end of file diff --git a/docs/glossary/pseudo-random-number/index.html b/docs/glossary/pseudo-random-number/index.html index 48f9cc69c59..46efa47604f 100644 --- a/docs/glossary/pseudo-random-number/index.html +++ b/docs/glossary/pseudo-random-number/index.html @@ -7,13 +7,13 @@ - +

    pseudo-random-number

    Definition

    A (set of) value(s) or element(s) that is statistically random, but it is derived from a known starting point and is typically repeated over and over. Pseudo-random numbers provide necessary values for processes that require randomness, such as creating test signals or for synchronizing sending and receiving devices in a spread spectrum transmission.

    It is called "pseudo" random, because the algorithm can repeat the sequence, and the numbers are thus not entirely random.\ Source

    - + \ No newline at end of file diff --git a/docs/glossary/public-key-infrastructure/index.html b/docs/glossary/public-key-infrastructure/index.html index c460a9b9a65..2dc5da722a6 100644 --- a/docs/glossary/public-key-infrastructure/index.html +++ b/docs/glossary/public-key-infrastructure/index.html @@ -7,12 +7,12 @@ - +

    public-key-infrastructure

    Definition

    Is a set of roles, policies, hardware, software and procedures needed to create, manage, distribute, use, store and revoke digital certificates and manage public-key encryption.

    Public Private Key caveat to KERI

    More on Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/public-transaction-event-log/index.html b/docs/glossary/public-transaction-event-log/index.html index 119f1d614f2..6b04f6907ab 100644 --- a/docs/glossary/public-transaction-event-log/index.html +++ b/docs/glossary/public-transaction-event-log/index.html @@ -7,12 +7,12 @@ - +

    public-transaction-event-log

    Definition

    is a public hash-linked data structure of transactions that can be used to track state anchored to a KEL.

    Public Verifiable Credential Registry

    A Public Verifiable Credential Registry can be represented in several TELs to establish issuance or revocation state of a Verifiable Credential (VC).

    Control authority vs. issuance and revocation of VCs

    The KEL is used to establish control authority over the keys used to commit to the events of the TEL and sign the VC. The events of the TEL are used to establish the issuance or revocation state of the VCs issued by the controller of the identifier represented by the KEL.

    Source: pfeairheller

    - + \ No newline at end of file diff --git a/docs/glossary/public-verifiable-credential-registry/index.html b/docs/glossary/public-verifiable-credential-registry/index.html index a1a6bf22b51..1de5c598bea 100644 --- a/docs/glossary/public-verifiable-credential-registry/index.html +++ b/docs/glossary/public-verifiable-credential-registry/index.html @@ -7,12 +7,12 @@ - +

    public-verifiable-credential-registry

    Definition

    is a form of a Verifiable Data Registry that tracks the issuance/revocation state of credentials issued by the controller of the KEL.

    Two types of TELs will be used for this purpose. The first type of TEL is the management TEL and will signal the creation of the Registry and track the list of Registrars that will act as Backers for the individual TELs for each VC. The second type of TEL is the VC TEL which will track the issued or revoked state of each VC and will contain a reference to it's corresponding management TEL.

    ToIP definition

    Credential registry

    Why do we need this?

    {TBW prio2}

    - + \ No newline at end of file diff --git a/docs/glossary/qualified-vlei-issuer-vlei-credential-governance-framework/index.html b/docs/glossary/qualified-vlei-issuer-vlei-credential-governance-framework/index.html index 0131c991787..680ba8137b1 100644 --- a/docs/glossary/qualified-vlei-issuer-vlei-credential-governance-framework/index.html +++ b/docs/glossary/qualified-vlei-issuer-vlei-credential-governance-framework/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/qualified-vlei-issuer/index.html b/docs/glossary/qualified-vlei-issuer/index.html index 256b0fd800e..5ee08c7b2b9 100644 --- a/docs/glossary/qualified-vlei-issuer/index.html +++ b/docs/glossary/qualified-vlei-issuer/index.html @@ -7,13 +7,13 @@ - +

    qualified-vlei-issuer

    Definition

    The contracting party to the vLEI Issuer Qualification Agreement that has been qualified by GLEIF as a Qualified vLEI Issuer.\ Source: Draft vLEI Ecosystem Governance Framework Glossary.

    Function

    Is an authoritative role at the GLEIF organization that is mandated to issue vLEI credentials to others.

    - + \ No newline at end of file diff --git a/docs/glossary/qualified/index.html b/docs/glossary/qualified/index.html index 0b8825f93fc..6c086bcab18 100644 --- a/docs/glossary/qualified/index.html +++ b/docs/glossary/qualified/index.html @@ -7,13 +7,13 @@ - +

    qualified

    Definition

    When qualified, a cryptographic primitive includes a prepended derivation code (as a proem) that indicates the cryptographic algorithm or suite used for that derivation. This simplifies and compactifies the essential information needed to use that cryptographic primitive. All cryptographic primitives expressed in either text or binary CESR are qualified by definition [CESR-ID]. Qualification is an essential property of CESR [CESR-ID].\ Sam Smith, IETF-keri

    - + \ No newline at end of file diff --git a/docs/glossary/qvi-authorized-representative/index.html b/docs/glossary/qvi-authorized-representative/index.html index 7bc4acfbaa3..0258b735ec8 100644 --- a/docs/glossary/qvi-authorized-representative/index.html +++ b/docs/glossary/qvi-authorized-representative/index.html @@ -7,13 +7,13 @@ - +

    qvi-authorized-representative

    A designated representative of a QVI authorized, to conduct QVI operations with GLEIF and Legal Entities. Also referring to a person in the role of a QAR.\ Paraphrased by @henkvancann from source Draft vLEI Ecosystem Governance Framework Glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/race-condition/index.html b/docs/glossary/race-condition/index.html index 889f7df1ce3..bdc2fc13b15 100644 --- a/docs/glossary/race-condition/index.html +++ b/docs/glossary/race-condition/index.html @@ -7,13 +7,13 @@ - +

    race-condition

    Definition

    A race condition or race hazard is the condition of an electronics, software, or other system where the system's substantive behavior is dependent on the sequence or timing of other uncontrollable events. It becomes a bug when one or more of the possible behaviors is undesirable.\ Source.

    {TBW prio 2}

    - + \ No newline at end of file diff --git a/docs/glossary/rainbow-table-attack/index.html b/docs/glossary/rainbow-table-attack/index.html index 0df092c59c4..4cc861ee4e3 100644 --- a/docs/glossary/rainbow-table-attack/index.html +++ b/docs/glossary/rainbow-table-attack/index.html @@ -7,13 +7,13 @@ - +

    rainbow-table-attack

    Definition

    A rainbow table attack is a password cracking method that uses a special table (a “rainbow table”) to crack the password hashes in a database. Applications don’t store passwords in plaintext, but instead encrypt passwords using hashes. After the user enters their password to login, it is converted to hashes, and the result is compared with the stored hashes on the server to look for a match. If they match, the user is authenticated and able to login to the application. \ More on source

    - + \ No newline at end of file diff --git a/docs/glossary/receipt-log/index.html b/docs/glossary/receipt-log/index.html index 7413e176198..b0ec210f519 100644 --- a/docs/glossary/receipt-log/index.html +++ b/docs/glossary/receipt-log/index.html @@ -7,12 +7,12 @@ - +

    receipt-log

    Definition

    ordered record of all key event receipts for a given set of witnesses

    - + \ No newline at end of file diff --git a/docs/glossary/receipt/index.html b/docs/glossary/receipt/index.html index e9da3b12377..7c1a047b2ee 100644 --- a/docs/glossary/receipt/index.html +++ b/docs/glossary/receipt/index.html @@ -7,13 +7,13 @@ - +

    receipt

    Definition

    event message or reference with one or more witness signatures.

    See Also:\ key event receipt

    - + \ No newline at end of file diff --git a/docs/glossary/redundant-credential/index.html b/docs/glossary/redundant-credential/index.html index a05a612fd18..060591ef018 100644 --- a/docs/glossary/redundant-credential/index.html +++ b/docs/glossary/redundant-credential/index.html @@ -7,12 +7,12 @@ - +

    redundant-credential

    Definition

    Multiple credentials issued by the same issuer (e.g. a QVI). They do not have anything to do with each other. They are independently valid.

    Misbehaviour

    If a QVI issues two instances of the same credential, and is able to only revoke one. This is a governance issue and this behaviour of a QVI is not recommended. But it can be done this way (issue two revoke one) and it leaves the outside world with one other valid credential.

    - + \ No newline at end of file diff --git a/docs/glossary/registrar/index.html b/docs/glossary/registrar/index.html index 497a06ccce1..0cb3468757d 100644 --- a/docs/glossary/registrar/index.html +++ b/docs/glossary/registrar/index.html @@ -7,12 +7,12 @@ - +

    registrar

    Definition

    identifiers that serve as backers for each transaction event log (TEL) under its provenance. This list of Registrars can be rotated with events specific to a certain type of TEL. In this way, a Registrar is analogous to a Backer in KERI KELs and Registrar lists are analogous to Backer lists in KERI KELs.

    - + \ No newline at end of file diff --git a/docs/glossary/registry/index.html b/docs/glossary/registry/index.html index d22846e0976..ba0a819e40a 100644 --- a/docs/glossary/registry/index.html +++ b/docs/glossary/registry/index.html @@ -7,12 +7,12 @@ - +

    registry

    Definition

    In our digital mental model it's an official digital record book. When people refer to a registry, they usually mean a specific instance, within a multi-tenant registry. E.g. Docker Hub is a multi-tenant registry, where there’s a set of official / public images.

    Unique Registries

    A unique registry can be referenced in one of two ways, by namespace, or by domain.

    Source

    ACDCs and SAIDS eliminated the need for a centrally controlled namespace registry for credential schemas. schema registry.

    - + \ No newline at end of file diff --git a/docs/glossary/replay-attack/index.html b/docs/glossary/replay-attack/index.html index 46058dc85f8..27aa965fa4c 100644 --- a/docs/glossary/replay-attack/index.html +++ b/docs/glossary/replay-attack/index.html @@ -7,13 +7,13 @@ - +

    replay-attack

    Definition

    A replay attack occurs when a cybercriminal eavesdrops on a secure network communication, intercepts it, and then fraudulently delays or resends it to misdirect the receiver into doing what the hacker wants. The added danger of replay attacks is that a hacker doesn't even need advanced skills to decrypt a message after capturing it from the network. The attack could be successful simply by resending the whole thing.\ More on how it works and stopping replay attacks at source

    - + \ No newline at end of file diff --git a/docs/glossary/repo/index.html b/docs/glossary/repo/index.html index 5ebe03b3d9a..2d1df80d9f3 100644 --- a/docs/glossary/repo/index.html +++ b/docs/glossary/repo/index.html @@ -7,12 +7,12 @@ - +

    repo

    Definition

    Software is our line of work. In this, 'repo' is the short hand for 'Repository', mostly referring to a software repo(sitory) on Github.com, Gitlab (https://gitlab.com) or other software repository hosting services.

    What is a software repository?

    A software repository, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package managers allow automatically installing and updating repositories (sometimes called "packages").\

    More on Wikipedia

    software repository

    - + \ No newline at end of file diff --git a/docs/glossary/reserve-rotation/index.html b/docs/glossary/reserve-rotation/index.html index 9120b3a678a..beb54cecbb1 100644 --- a/docs/glossary/reserve-rotation/index.html +++ b/docs/glossary/reserve-rotation/index.html @@ -7,13 +7,13 @@ - +

    reserve-rotation

    Definition

    One important use case for partial rotation is to enable pre-rotated key pairs designated in one establishment event to be held in reserve and not exposed at the next (immediately subsequent) establishment event.\ Source IETF-KERI draft 2022 by Samual Smith.

    - + \ No newline at end of file diff --git a/docs/glossary/revocation-event/index.html b/docs/glossary/revocation-event/index.html index 9d302f3095a..ae3cef0e2ac 100644 --- a/docs/glossary/revocation-event/index.html +++ b/docs/glossary/revocation-event/index.html @@ -7,13 +7,13 @@ - +

    revocation-event

    Definition

    Revocation is the act of recall or annulment. It is the cancelling of an act, the recalling of a grant or privilege, or the making void of some deed previously existing.\ More on source Wikipedia

    An event that revokes control authority over an identifier. From that point in time the authoritative key-pairs at hand are not valid anymore.

    The time stamp of a revocation is useful but not for security purposes, it can be gamed by an attacker. KERI should be fitted in a way so that it's not possible to rewrite history. The tool we have is the ordering of the events in a KEL.

    Beware: Suspension is non-existing

    A temporary revocation of a grant or privilege is called a suspension. We don't have this type of state or event in KERI.

    - + \ No newline at end of file diff --git a/docs/glossary/ricardian-contract/index.html b/docs/glossary/ricardian-contract/index.html index 321e4094754..a93360cbf1d 100644 --- a/docs/glossary/ricardian-contract/index.html +++ b/docs/glossary/ricardian-contract/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ It is robust through use of identification by cryptographic hash function, transparent through use of readable text for legal prose and efficient through markup language to extract essential information.\ More at source Wikipedia

    Ricardian contracts provide a human readable twin to the seals and and signatures (commitments) in binary format in ACDC.

    - + \ No newline at end of file diff --git a/docs/glossary/root-of-trust/index.html b/docs/glossary/root-of-trust/index.html index 80c439f51a8..c994c96bc0a 100644 --- a/docs/glossary/root-of-trust/index.html +++ b/docs/glossary/root-of-trust/index.html @@ -7,13 +7,13 @@ - +

    root-of-trust

    Root-of-trust

    Replace human basis-of-trust with cryptographic root-of-trust. With verifiable digital signatures from asymmetric key cryptography we may not trust in “what” was said, but we may trust in “who” said it.\ The root-of-trust is consistent attribution via verifiable integral non-repudiable statements.

    A root of trust is a foundational component or process in the identity system that is relied on by other components of the system and whose failure would compromise the integrity of the bindings. A root of trust might be primary or secondary depending on whether or not it is replaceable. Primary roots of trust are irreplaceable. Together, the roots of trust form the trust basis for the system.

    We distinguish a primary root-of-trust in a KEL and a secondary root-of-trust, for example in a TEL or data on a blockchain.

    - + \ No newline at end of file diff --git a/docs/glossary/rot/index.html b/docs/glossary/rot/index.html index 954e404ecf0..5d5a00559c1 100644 --- a/docs/glossary/rot/index.html +++ b/docs/glossary/rot/index.html @@ -7,13 +7,13 @@ - +

    rot

    Definition

    JSON field name (attribute) for Rotation Event; its content (value) contains a hash pointer. All TEL events are anchored in a KEL in either ixn (interaction) or rot (rotation events). This is the foundation enabling a verifiable credential protocol to be built on top of KERI.\ Source Kent Bull 2023

    Also see

    ixn

    - + \ No newline at end of file diff --git a/docs/glossary/rotation-authority/index.html b/docs/glossary/rotation-authority/index.html index 0fd85089fbf..799e330afbd 100644 --- a/docs/glossary/rotation-authority/index.html +++ b/docs/glossary/rotation-authority/index.html @@ -7,12 +7,12 @@ - +

    rotation-authority

    Definition

    The (exclusive) right to rotate the authoritative key pair and establish changed control authority.

    Relation to rotation authority

    The original controller of an AID can hold exclusive rotation authority. Because control authority is split between two key sets, the first for signing authority and the second (pre-rotated) for rotation authority, the associated thresholds and key list can be structured in such a way that a designated custodial agent can hold signing authority while the original controller can hold exclusive rotation authority.

    - + \ No newline at end of file diff --git a/docs/glossary/rotation-event/index.html b/docs/glossary/rotation-event/index.html index 376030524e4..a6d22508e52 100644 --- a/docs/glossary/rotation-event/index.html +++ b/docs/glossary/rotation-event/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ The infrastructure needed to keep track of these key events including inception events, rotation events, and non-establishment events is key event receipt infrastructure, thus the acronym "KERI": Key Event Receipt Infrastructure.\ (SamASmith)

    - + \ No newline at end of file diff --git a/docs/glossary/rotation/index.html b/docs/glossary/rotation/index.html index 4022c7f2f33..46cf5fe0092 100644 --- a/docs/glossary/rotation/index.html +++ b/docs/glossary/rotation/index.html @@ -7,13 +7,13 @@ - +

    rotation

    Definition

    The operation of revoking and replacing the set of authoritative key pairs for an AID. This operation is made verifiable and duplicity evident upon acceptance as a rotation event that is appended to the AID's KEL.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/run-off-the-crud/index.html b/docs/glossary/run-off-the-crud/index.html index 3b5c3247c8b..20b46913c5e 100644 --- a/docs/glossary/run-off-the-crud/index.html +++ b/docs/glossary/run-off-the-crud/index.html @@ -7,12 +7,12 @@ - +

    run-off-the-crud

    Definition

    RUN off the [[CRUD|CRUD]]

    RUN stands for Read , Update, Nullify. Why is it preferred ('run off') over the CRUD (Create, Update, Delete)?

    Consider the need to protect 'authentic data' in a decentralized environment.

    In a decentralized control model, the data always originates from a controller (aka client). The data created (sourced) by the controller follows the principle of 'Non-Interactive Replay Monotonicity' to be able to protect the data from a replay (events are changed) or a deletion (some events are deleted) attacks. That is to say, the data (or events comprising it) is never deleted, it's rather always added to via updates. Each update, therefore, forms a verifiable, continuous log ( e.g. by providing growing sequence number, date timestamp, etc for each update). To enable invalidation of data, a special update, called Nullify, is used.

    The client, therefore, updates the server (it's peer or peers), which just maintains the log following certain rules (see BADA - Best Available Data Acceptance).

    To summarise, the server can only Read the log, add Updates to it, including Nullifying ones. So no Create or Delete.

    - + \ No newline at end of file diff --git a/docs/glossary/sally/index.html b/docs/glossary/sally/index.html index ceab663fa88..0e402c63614 100644 --- a/docs/glossary/sally/index.html +++ b/docs/glossary/sally/index.html @@ -7,13 +7,13 @@ - +

    sally

    Definition

    is an implementation of a verification service and acting as a reporting server. It is purpose-built software for the vLEI ecosystem to allow participants in the vLEI ecosystem present credentials, so the GLEIF Reporting API can show what vLEIs are; issued to Legal Entities.

    Inner working

    The Sally vLEI Audit Reporting Agent receives presentations of credentials and notices of revocation, verifies the structure and cryptographic integrity of the credential or revocation event and performs a POST to the configured webhook URL.\ Source

    - + \ No newline at end of file diff --git a/docs/glossary/salt/index.html b/docs/glossary/salt/index.html index 07926420fb1..477d8405c9f 100644 --- a/docs/glossary/salt/index.html +++ b/docs/glossary/salt/index.html @@ -7,12 +7,12 @@ - +

    salt

    Definition

    In cryptography, a salt is random data that is used as an additional input to a one-way function that hashes data, a password or passphrase.

    Usage

    Salts are used to safeguard passwords in storage. Historically, only a cryptographic hash function of the password was stored on a system, but over time, additional safeguards were developed to protect against duplicate or common passwords being identifiable (as their hashes are identical).[2] Salting is one such protection.

    More in source

    Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/salter/index.html b/docs/glossary/salter/index.html index 543e28803d2..a4d72fdd177 100644 --- a/docs/glossary/salter/index.html +++ b/docs/glossary/salter/index.html @@ -7,13 +7,13 @@ - +

    salter

    Definition

    A primitive that represents a seed. It has the ability to generate new Signers.\ Source by Jason Colburne

    - + \ No newline at end of file diff --git a/docs/glossary/schema-namespace-registry/index.html b/docs/glossary/schema-namespace-registry/index.html index d8b12f7380b..525b6a0ecbb 100644 --- a/docs/glossary/schema-namespace-registry/index.html +++ b/docs/glossary/schema-namespace-registry/index.html @@ -7,12 +7,12 @@ - +

    schema-namespace-registry

    Definition

    a centrally managed schema registry where corporations or individuals reserve schemas within a specific namespace in order to have an interoperable schema that is labeled with a corporation-specific or individual-specific namespace.

    Graphs in ACDC have decentralised the old-school schema registry, so it's interoperable by design.

    - + \ No newline at end of file diff --git a/docs/glossary/schema-registry/index.html b/docs/glossary/schema-registry/index.html index 445bf550c22..c595040975c 100644 --- a/docs/glossary/schema-registry/index.html +++ b/docs/glossary/schema-registry/index.html @@ -7,12 +7,12 @@ - +

    schema-registry

    Definition

    Central registry for credential schemas based on namespaces.

    ACDCs and SAIDS eliminated the need for a centrally controlled namespace registry for credential schemas.

    From our vocabulary that contains the term "Public verifiable credential registry" there's follow-up on ToIP definitions like | TBW |

    Comparison and explanation

    Syntio comparison of (old-school?) centralized schema registries.

    This source has conceptual explanations in diagrams like the one below and code examples. However, be aware that ACDC solves this in a different way with KERI-based verifiable data structures and graph fragments.

    - + \ No newline at end of file diff --git a/docs/glossary/seal/index.html b/docs/glossary/seal/index.html index 7e0c962a1fe..c7a743a534e 100644 --- a/docs/glossary/seal/index.html +++ b/docs/glossary/seal/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Source KERI Whitepaper section 7.23 page 47

    A seal is a cryptographic proof in a secondary root-of-trust (e.g. TEL) that is anchored in a primary-root-of-trust (e.g.KEL).\ Source Same Smith

    What is it worth?

    The payload of the seal becomes immutable and the controller commits a signature to the seal.

    {TBW prio 2}

    - + \ No newline at end of file diff --git a/docs/glossary/secondary-root-of-trust/index.html b/docs/glossary/secondary-root-of-trust/index.html index 71b87eabc33..7c2fa33d69b 100644 --- a/docs/glossary/secondary-root-of-trust/index.html +++ b/docs/glossary/secondary-root-of-trust/index.html @@ -7,13 +7,13 @@ - +

    secondary-root-of-trust

    Definition

    In KERI its a root-of-trust that, for its secure attribution, depends on another verifiable data structure (VDS) which MUST be a primary root-of-trust.\ By its nature and cryptographic anchoring via seals to a primary root-of-trust, a secondary root-of-trust still has a high level of trustability and can be automatically verified.

    - + \ No newline at end of file diff --git a/docs/glossary/secure-asset-transfer-protocol/index.html b/docs/glossary/secure-asset-transfer-protocol/index.html index 9d23883c30c..78f438ca1b5 100644 --- a/docs/glossary/secure-asset-transfer-protocol/index.html +++ b/docs/glossary/secure-asset-transfer-protocol/index.html @@ -7,12 +7,12 @@ - +

    secure-asset-transfer-protocol

    Definition

    An IETF protocol (and working group) in the making (as of mid 2022) for moving assets between blockchains.

    More information at IETF

    About SATP working group

    Relationship with KERI

    KERI has portable identifiers per definition. KERI identifier are not locked into silos like distributed ledgers. KERI IDs have their own native hash-chained data structures (KEL, KERL and TEL).

    - + \ No newline at end of file diff --git a/docs/glossary/secure-attribution/index.html b/docs/glossary/secure-attribution/index.html index f68f4d51532..fd4afb29465 100644 --- a/docs/glossary/secure-attribution/index.html +++ b/docs/glossary/secure-attribution/index.html @@ -7,13 +7,13 @@ - +

    secure-attribution

    Definition

    In short: secure attribution is "whodunit?!" in cyberspace.

    Secure attribution is strongly related to making and proving statements. A controller makes statements to the a validator or verifier, who in turn validates the statements issued. A controller "owns" the statement: content and attribution via digital signatures.\ Secure attribution of a statement is a way of proving that the statement is an authentic statement of the controller.

    Relationship with KERI

    In the context of KERI and ACDC secure means a Validator may cryptographically verify the statement.

    - + \ No newline at end of file diff --git a/docs/glossary/secure-private-authentic-confidentiality/index.html b/docs/glossary/secure-private-authentic-confidentiality/index.html index b3528a281e3..b0afa4fb9ec 100644 --- a/docs/glossary/secure-private-authentic-confidentiality/index.html +++ b/docs/glossary/secure-private-authentic-confidentiality/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Related: https://www.usenix.org/system/files/sec22-cohen.pdf

    Tech meet KERI recording from minute 35, date June 29 2023

    - + \ No newline at end of file diff --git a/docs/glossary/seed/index.html b/docs/glossary/seed/index.html index 13415475f42..701eccad7c8 100644 --- a/docs/glossary/seed/index.html +++ b/docs/glossary/seed/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Paraphrased from wikipedia

    Example 24-word seed

    broken toddler farm argue elder behind sea ramp cake rabbit renew option combine guilt inflict sentence what desert manage angry manual grit copy hundred

    Test here yourself.

    Pseudorandom is not exactly random

    Although sequences that are closer to truly random can be generated using hardware random number generators, pseudorandom number generators are important in practice for their speed in number generation and their reproducibility.\ Source wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/selective-disclosure/index.html b/docs/glossary/selective-disclosure/index.html index 2d4a0ff33f8..21bb95d8795 100644 --- a/docs/glossary/selective-disclosure/index.html +++ b/docs/glossary/selective-disclosure/index.html @@ -7,12 +7,12 @@ - +

    selective-disclosure

    Definition

    Selective disclosure is a from partial disclosure that has a different cryptographic fundament: a sort of cryptographic aggregator (not an accumulator).

    Selective disclosure is a list of field maps. You can choose to blind and publish every single field map, but you have to disclosure all the field maps, either blinded or published.

    It is an aggregator because you have to disclosure all the blinded fields when you do the selective disclosure.

    Partial Disclosure

    Source: distilled from ACDC Zoom meeting, date March 28, 2023

    - + \ No newline at end of file diff --git a/docs/glossary/self-addressing-data/index.html b/docs/glossary/self-addressing-data/index.html index a30088c1279..570f5641d62 100644 --- a/docs/glossary/self-addressing-data/index.html +++ b/docs/glossary/self-addressing-data/index.html @@ -7,13 +7,13 @@ - +

    self-addressing-data

    Definition

    While all KERI event messages are self-addressing data (SAD), there is a broad class of SADs that are not KERI events but that require signature attachments. ACDC Verifiable credentials fit into this class of SADs. With more complex data structures represented as SADs, such as verifiable credentials, there is a need to provide signature attachments on nested subsets of SADs. \ (Philip Feairheller, ietf-cesr-proof)

    - + \ No newline at end of file diff --git a/docs/glossary/self-addressing-identifier/index.html b/docs/glossary/self-addressing-identifier/index.html index 4d0aa4f743c..45c08903ae7 100644 --- a/docs/glossary/self-addressing-identifier/index.html +++ b/docs/glossary/self-addressing-identifier/index.html @@ -7,12 +7,12 @@ - +

    self-addressing-identifier

    Definition

    An identifier that is deterministically generated from and embedded in the content it identifies, making it and its data mutually tamper-evident.

    To generate a SAID

    1. Fully populate the data that the SAID will identify, leaving a placeholder for the value of the SAID itself.
    2. Canonicalize the data, if needed. The result is called the SAID's identifiable basis.
    3. Hash the identifiable basis. The result is the value of the SAID.
    4. Replace the placeholder in identifiable basis the with the newly generated identifier, so the SAID is embedded in the data it identifies. The result is called the saidified data.

    To verify that a SAID truly identifies a specific chunk of data

    1. Canonicalize the data, if needed. The result is claimed saidified data.
    2. In the claimed saidified data, replace the SAID value with a placeholder. The result is the identifiable basis for the SAID.
    3. Hash the identifiable basis.
    4. Compare the hash value to the SAID. If they are equal, then the SAID identifies the claimed saidified data.

    Differences in SAID algorthms manifest in the following choices

    • how data is canonicalized
    • which hash algorithm is used
    • which placeholder is used
    • how the bytes produced by the hash algorithm are encoded
    • how the SAID value is formatted

    Notation

    A terse way to describe a SAID and its data is to write an expression that consists of the token SAID followed by a token with field names in canonical order, where the field containing the SAID itsef is marked by the suffix =said. For example, the saidification of a simple ContactInfo data structure might be given as SAID(name, address, phone, email, id=said).

    - + \ No newline at end of file diff --git a/docs/glossary/self-certifying-identifier/index.html b/docs/glossary/self-certifying-identifier/index.html index 9d6bd83cf5a..34db937209f 100644 --- a/docs/glossary/self-certifying-identifier/index.html +++ b/docs/glossary/self-certifying-identifier/index.html @@ -7,13 +7,13 @@ - +

    self-certifying-identifier

    Definition

    A Self-Certifying Identifier (SCID) cryptographically binds an identifier to a public and private key pair. It is an identifier that can be proven to be the one and only identifier tied to a public key using cryptography alone.

    Signing

    A controller issues an own Identifier by binding a generated public private key pair to an identifier. After this a controller is able to sign the identifier and create a certificate. Also called a cryptonym. The simplest form of a self-certifying identifier includes either the public key or a unique fingerprint of the public key as a prefix in the identifier.

    SCID : Self-Certifying IDentifier. A self-certifying identifier (SCID) is a type of cryptonym that is uniquely cryptographically derived from the public key of an asymmetric non-repudiable signing keypair, (public, private).\ It is self-certifying or more precisely self-authenticating because it does not rely on a trusted entity. The authenticity of a non-repudiable signature made with the private key may be verified by extracting the public key from either the identifier itself or incepting information uniquely associated with the cryptographic derivation process for the identifier. In a basic SCID, the mapping between an identifier and its controlling public key is self-contained in the identifier itself. A basic SCID is ephemeral i.e. it does not support rotation of its keypairs in the event of key weakness or compromise and therefore must be abandoned once the controlling private key becomes weakened or compromised from exposure.

    - + \ No newline at end of file diff --git a/docs/glossary/self-framing/index.html b/docs/glossary/self-framing/index.html index f9fca3d8ef1..f3d73e8b797 100644 --- a/docs/glossary/self-framing/index.html +++ b/docs/glossary/self-framing/index.html @@ -7,13 +7,13 @@ - +

    self-framing

    Definition

    a textual encoding that includes type, size, and value is self-framing.\ Source Samual M Smith

    Detailed explanation

    A self-framing text primitive may be parsed without needing any additional delimiting characters. Thus a stream of concatenated primitives may be individually parsed without the need to encapsulate the primitives inside textual delimiters or envelopes. Thus a textual self-framing encoding provides the core capability for a streaming text protocol like STOMP or RAET.

    Although a first class textual encoding of cryptographic primitives is the primary motivation for the CESR protocol defined herein, CESR is sufficiently flexible and extensible to support other useful data types, such as, integers of various sizes, floating point numbers, date-times as well as generic text. Thus this protocol is generally useful to encode in text data data structures of all types not merely those that contain cryptographic primitives.

    - + \ No newline at end of file diff --git a/docs/glossary/self-sovereign-identity/index.html b/docs/glossary/self-sovereign-identity/index.html index 5206d850ced..171dc84dac8 100644 --- a/docs/glossary/self-sovereign-identity/index.html +++ b/docs/glossary/self-sovereign-identity/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Paraphrased by @henkvancann, sources eSSIF-lab and ToIP.

    More in ToIP glossary

    SSI

    eSSIF-lab excerpt

    The definition started in the blog "The Path to Self-Sovereign Identity" by Christopher Allen in 2016. has not resulted in a consensus today. While some see the ten principles of SSI that Allen proposed as the definition of SSI, he formulated them as "a departure point to provoke a discussion about what's truly important". And it is obvious that what is important differs per party.\ Source eSSIF-lab

    - + \ No newline at end of file diff --git a/docs/glossary/self-sovereignty/index.html b/docs/glossary/self-sovereignty/index.html index e32ba8963ec..5570f5f2050 100644 --- a/docs/glossary/self-sovereignty/index.html +++ b/docs/glossary/self-sovereignty/index.html @@ -7,12 +7,12 @@ - +

    self-sovereignty

    See

    Self sovereignty in Trust over IP wiki.

    - + \ No newline at end of file diff --git a/docs/glossary/server-sent-event/index.html b/docs/glossary/server-sent-event/index.html index 394385b2d28..50aa7990ded 100644 --- a/docs/glossary/server-sent-event/index.html +++ b/docs/glossary/server-sent-event/index.html @@ -7,12 +7,12 @@ - +

    server-sent-event

    Definition

    Mailbox notifications; a streaming service for the agent U/I, to get notifications from the KERI system itself.

    - + \ No newline at end of file diff --git a/docs/glossary/service-endpoint/index.html b/docs/glossary/service-endpoint/index.html index 55cf992c593..4b84ff0cb0b 100644 --- a/docs/glossary/service-endpoint/index.html +++ b/docs/glossary/service-endpoint/index.html @@ -7,12 +7,12 @@ - +

    service-endpoint

    Definition

    In our context we consider a web service endpoint which is a URL at which clients of specific service can get access to the service.

    Inner working

    By referencing that URL, clients can get to operations provided by that service.

    Paraphrased from source

    - + \ No newline at end of file diff --git a/docs/glossary/siger/index.html b/docs/glossary/siger/index.html index 14baf83b772..506065b02d7 100644 --- a/docs/glossary/siger/index.html +++ b/docs/glossary/siger/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/signed-digest/index.html b/docs/glossary/signed-digest/index.html index 89656cc03ac..179bfce816b 100644 --- a/docs/glossary/signed-digest/index.html +++ b/docs/glossary/signed-digest/index.html @@ -7,12 +7,12 @@ - +

    signed-digest

    Definition

    commitment to content, by digitally signing a digest of this content.

    - + \ No newline at end of file diff --git a/docs/glossary/signer/index.html b/docs/glossary/signer/index.html index 6865165d24b..03d4f9c9293 100644 --- a/docs/glossary/signer/index.html +++ b/docs/glossary/signer/index.html @@ -7,13 +7,13 @@ - +

    signer

    Definition

    A primitive that represents a private key. It has the ability to create Sigers and Cigars (signatures).\ Source by Jason Colburne

    - + \ No newline at end of file diff --git a/docs/glossary/signify-keria-request-authentication-protocol/index.html b/docs/glossary/signify-keria-request-authentication-protocol/index.html index ef98b43599c..123e61f1e13 100644 --- a/docs/glossary/signify-keria-request-authentication-protocol/index.html +++ b/docs/glossary/signify-keria-request-authentication-protocol/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ KERIMask will connect to KERIA servers in order for a person to control AIDs from their browser extension.

    SKRAP is also usable from HSMs and hardware wallets because the keys from the hardware wallet, along with some app code, connect through SKRAP to agents running in a KERIA server.

    Signify signs things at the edge. This includes ACDCs. KERIA will be used to send communications between agents. The things KERIA sends are signed by Signify.\

    Source: Kent Bull in KERI Slack May 2023

    The KERIA service will expose 3 separate HTTP endpoints on 3 separate network interfaces.

    1. Boot Interface - Exposes one endpoint for Agent Worker initialization.
    2. Admin Interface - The REST API for command and control operations from the Signify Client.
    3. KERI Protocol Interface - CESR over HTTP endpoint for KERI protocol interactions with the rest of the world.

    This separation allows for the Boot interface to be expose to internal infrastructure only (or disabled all together) while exposing the other two interfaces externally. If a KERIA instance is launched in static worker mode, meaning all agent workers are configured at start up only the Boot interface can be disabled completely.\ More at source Github Signify

    - + \ No newline at end of file diff --git a/docs/glossary/signify/index.html b/docs/glossary/signify/index.html index 1c71e508d6a..675c3c35a5a 100644 --- a/docs/glossary/signify/index.html +++ b/docs/glossary/signify/index.html @@ -7,12 +7,12 @@ - +

    signify

    Definition

    Signify is a web client (key) event signing - and key pair creation app that minimizes the use of KERI on the client.

    The main reason is that we want to minimize what needs to be put in the client or the cloud. Most proofs should be cryptographically verifiable and it should not be able to be repudiated (successful pointing fingers should be prevented), and this happens when the signatures come straight from the controller.

    Background

    On a small set of activities that need to be protected in infrastructure for key management

    • key pair creation
    • key pair storage
    • event generating
    • event signing
    • event verification

    Finger pointing

    What are the liabilities do a cloud host has to worry about?

    • Cloud host does not want to see keys (non-repudiation). So we want to move event signing out of the cloud agent.
    • Key state (next digest and current signing key) come from the client
    • Cloud host ensures that the code supply chain is secure and never sees the private keys
    - + \ No newline at end of file diff --git a/docs/glossary/signing-authority/index.html b/docs/glossary/signing-authority/index.html index 48e31f6ceca..3c703c78eba 100644 --- a/docs/glossary/signing-authority/index.html +++ b/docs/glossary/signing-authority/index.html @@ -7,12 +7,12 @@ - +

    signing-authority

    Definition

    The authority to sign on behalf of the controller of the authoritative key pair. Often in situation where delegation has taken place, e.g. a custodial agent. These are limited rights because rotation authority is not included.

    Relation to rotation authority

    The original controller of an AID can hold exclusive rotation authority. Because control authority is split between two key sets, the first for signing-authority and the second (pre-rotated) for rotation authority, the associated thresholds and key list can be structured in such a way that a designated custodial agent can hold signing authority while the original controller can hold exclusive rotation authority.

    - + \ No newline at end of file diff --git a/docs/glossary/signing-threshold/index.html b/docs/glossary/signing-threshold/index.html index 2fb9a8626f9..39218e60920 100644 --- a/docs/glossary/signing-threshold/index.html +++ b/docs/glossary/signing-threshold/index.html @@ -7,12 +7,12 @@ - +

    signing-threshold

    Definition

    Is the minimum number of valid signatures to satisfy the requirement for successful verification in a Threshold Signature Scheme.

    Example 2-of-3 signature

    In a 2-of-3 signature scheme the threshold is 2. This means that 2 valid signatures are enough to fulfil the required signature.

    - + \ No newline at end of file diff --git a/docs/glossary/simple-keri-for-web-auth/index.html b/docs/glossary/simple-keri-for-web-auth/index.html index dba15a019a8..f1c41b7deb2 100644 --- a/docs/glossary/simple-keri-for-web-auth/index.html +++ b/docs/glossary/simple-keri-for-web-auth/index.html @@ -7,13 +7,13 @@ - +

    simple-keri-for-web-auth

    Definition

    A KERI implementation that sacrifices performance or other non-security feature for usability. In general a narrow application of KERI may not require all the features of KERI but those features that it does support must still be secure.\ More on source Github Repo SKWA.

    Design

    Designed for private clouds, just like Keep. Signify is designed for public clouds.

    - + \ No newline at end of file diff --git a/docs/glossary/single-signature-identifier/index.html b/docs/glossary/single-signature-identifier/index.html index 8b694b8ee49..fe273c8fd22 100644 --- a/docs/glossary/single-signature-identifier/index.html +++ b/docs/glossary/single-signature-identifier/index.html @@ -7,12 +7,12 @@ - +

    single-signature-identifier

    Definition

    or single sig identifier; is an identifier controlled by a one-of-one signing keypair

    - + \ No newline at end of file diff --git a/docs/glossary/sniffer/index.html b/docs/glossary/sniffer/index.html index 935dfe07d25..63604cb2071 100644 --- a/docs/glossary/sniffer/index.html +++ b/docs/glossary/sniffer/index.html @@ -7,12 +7,12 @@ - +

    sniffer

    Definition

    The sniffer is part of Parside and detects if the CESR stream contains CESR binary, CESR Text, JSON, CBOR, MGPK.

    Working

    If any of JSON, CBOR, MGPK then the parser regexes to find the version string inside the JSON, CBOR, and MGPK and from the version string extracts the number of characters/bytes that is the length of the JSON, CBOR, or MGPK. The parser then resumes sniffing. When the sniff result is 'CESR' then when at the top level looks for the CESR version count code or any other count codes.

    Source Slack Cesride thread: Feb 2 2023

    - + \ No newline at end of file diff --git a/docs/glossary/solicited-issuance/index.html b/docs/glossary/solicited-issuance/index.html index e781c403f3f..6e9fa835f04 100644 --- a/docs/glossary/solicited-issuance/index.html +++ b/docs/glossary/solicited-issuance/index.html @@ -7,13 +7,13 @@ - +

    solicited-issuance

    Definition

    The issuance of a Legal Entity vLEI Credentials, OOR vLEI Credentials and ECR vLEI Credentials upon receipt by the QAR of a Fully Signed issuance request from the AVR(s) of the Legal Entity.\ Source: Draft vLEI Ecosystem Governance Framework Glossary.

    See Unsolicited issuance

    - + \ No newline at end of file diff --git a/docs/glossary/source-of-truth/index.html b/docs/glossary/source-of-truth/index.html index 9baaaa8f5ff..e44bd44f538 100644 --- a/docs/glossary/source-of-truth/index.html +++ b/docs/glossary/source-of-truth/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ Compound description by @henkvancann from sources: 1, 2

    Truth

    Truth is the property of being in accord with fact or reality. In everyday language, truth is typically ascribed to things that aim to represent reality\ Source: Wikipedia.

    - + \ No newline at end of file diff --git a/docs/glossary/spanning-layer/index.html b/docs/glossary/spanning-layer/index.html index 011e7ade4b8..629f7f04d48 100644 --- a/docs/glossary/spanning-layer/index.html +++ b/docs/glossary/spanning-layer/index.html @@ -7,12 +7,12 @@ - +

    spanning-layer

    Definition

    An all encompassing layer horizontal layer in a software architecture. Each trust layer only spans platform specific applications. It bifurcates the internet trust map into domain silos (e.g. twitter.com), because there is no spanning trust layer.

    - + \ No newline at end of file diff --git a/docs/glossary/ssi-system/index.html b/docs/glossary/ssi-system/index.html index 4471a4ac4e8..1c5ff88d9e8 100644 --- a/docs/glossary/ssi-system/index.html +++ b/docs/glossary/ssi-system/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Paraphrased by @henkvancann based on source eSSIF-lab

    Purpose

    The SSI Infrastructure supports the sustainable functionality of parties by providing IT services and facilities necessary for (electronic) transactions to be negotiated and executed.\ Source eSSIF-lab

    The team has put stress on the principle 'security first, confidentiality second and privacy third'. All systems and infrastructure KERI and ACDC has presented therefore constitute a rather small subset of all self-sovereign identity systems (SSI) available nowadays.

    - + \ No newline at end of file diff --git a/docs/glossary/strip-parameter/index.html b/docs/glossary/strip-parameter/index.html index 98b6299af95..b9dad7f843a 100644 --- a/docs/glossary/strip-parameter/index.html +++ b/docs/glossary/strip-parameter/index.html @@ -7,12 +7,12 @@ - +

    strip-parameter

    Definition

    tells us what part of the CESR stream will be parsed by which code.

    Parside

    | TBW |

    - + \ No newline at end of file diff --git a/docs/glossary/sub-shell/index.html b/docs/glossary/sub-shell/index.html index 01d9d0b0851..334f64bb356 100644 --- a/docs/glossary/sub-shell/index.html +++ b/docs/glossary/sub-shell/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Source

    Parent - and child process

    A child process in computing is a process created by another process (the parent process). This technique pertains to multitasking operating systems, and is sometimes called a subprocess or traditionally a subtask.\ More on source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/tcp-endpoint/index.html b/docs/glossary/tcp-endpoint/index.html index 3903c739365..ced8706e59c 100644 --- a/docs/glossary/tcp-endpoint/index.html +++ b/docs/glossary/tcp-endpoint/index.html @@ -7,12 +7,12 @@ - +

    tcp-endpoint

    Definition

    This is a service endpoint of the web transmission control protocol

    More details

    Because TCP packets do not include a session identifier, both endpoints identify the session using the client's address and port. Whenever a packet is received, the TCP implementation must perform a lookup on this table to find the destination process.

    More on source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/text-binary-concatenation-composability/index.html b/docs/glossary/text-binary-concatenation-composability/index.html index e98d873ec53..33a7364928d 100644 --- a/docs/glossary/text-binary-concatenation-composability/index.html +++ b/docs/glossary/text-binary-concatenation-composability/index.html @@ -7,13 +7,13 @@ - +

    text-binary-concatenation-composability

    Definition

    An encoding has composability when any set of self-framing concatenated primitives expressed in either the text domain or binary domain may be converted as a group to the other domain and back again without loss.

    CESR is fully text binary concatenation composable.

    Example in analogy

    Use Google Translate to translate a piece of text from English to Dutch. Subsequently, keep copy pasting the resulting “to:” text into the “from:” field. The message changes until it comes to a standstill where you can keep swapping the texts without them changing.\

    The conclusion is: Google Translate is not composable!

    By contrast, CESR is composable. The analogy lies in the fact that we consider two languages. Suppose the English in the Google Translate example is readable, text based in CESR and Dutch is the binary form in CESR. Within these two CESR “languages”, text-based and binary, you can concatenate and swap freely as many times as you like — the data won’t change in between in their binary or text form no matter what content you express with them.\ More explanation in source.

    - + \ No newline at end of file diff --git a/docs/glossary/threshold-of-accountable-duplicity/index.html b/docs/glossary/threshold-of-accountable-duplicity/index.html index 5c788a9a504..dffd595068e 100644 --- a/docs/glossary/threshold-of-accountable-duplicity/index.html +++ b/docs/glossary/threshold-of-accountable-duplicity/index.html @@ -7,12 +7,12 @@ - +

    threshold-of-accountable-duplicity

    Definition

    The threshold of accountable duplicity (TOAD) is a threshold number M that the controller declares to accept accountability for an event when any subset M of the N witnesses confirm that event. The threshold M indicates the minimum number of confirming witnesses the controller deems sufficient given some number F of potentially faulty witnesses, given that M >= N - F. This enables a controller to provide itself with any degree of protection it deems necessary given this accountability.

    Note that what may be sufficient for a controller may not be sufficient for a validator. To clarify, let MC denote the threshold size of a sufficient agreement from the perspective of a controller and let MV denote the threshold size of a sufficient agreement from the perspective of a validator. Typically, MV >= MC.

    TOAD in KEL

    A controller declares TOAD in its key event log (KEL) during the key inception event and may edit it during subsequent key rotation events.

    Purpose of TOAD

    A highly available system needs some degree of fault tolerance. The purpose of the threshold of accountability is to enable fault tolerance of the key event service with respect to faulty behavior by either the controller or witnesses. The principal controller fault exhibits duplicitous behavior in the use of its keys. In this case, the threshold serves as the threshold of accountable duplicity. The threshold lets a validator know when it may hold the controller accountable for duplicitous behavior. Without a threshold, a validator may choose to hold a controller accountable upon any evidence of duplicity which may make the service fragile in the presence of any degree of such faulty behavior. The primary way that a validator may hold a controller accountable is to stop trusting any use of the associated identifier. This destroys any value in the identifier and does not allow the controller to recover from an exploit. Recall that the one purpose of rotation keys (pre-rotated unexposed) is to enable recovery from compromised interaction signing keys. A compromised interaction signing key may exhibit duplicitous behavior on the part of the controller. A threshold of accountable duplicity enables a validator to distinguish between potentially recoverable duplicity such as the use of a compromised signing key and non-recoverable duplicity such as the use of a compromised rotation key. This better protects both the validator and the controller and improves the robustness of the service.

    - + \ No newline at end of file diff --git a/docs/glossary/threshold-signature-scheme/index.html b/docs/glossary/threshold-signature-scheme/index.html index 7e8675e13fe..6ac77dd6c68 100644 --- a/docs/glossary/threshold-signature-scheme/index.html +++ b/docs/glossary/threshold-signature-scheme/index.html @@ -7,13 +7,13 @@ - +

    threshold-signature-scheme

    Definition

    or TSS; is a type of digital signature protocol used by Mutli-party Computation (MPC) wallets to authorize transactions or key state changes.\ Source Cryptoapis

    - + \ No newline at end of file diff --git a/docs/glossary/top-level-section/index.html b/docs/glossary/top-level-section/index.html index 56090c46fe0..86a93ae5dea 100644 --- a/docs/glossary/top-level-section/index.html +++ b/docs/glossary/top-level-section/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ An Issuer commitment via a signature to any variant of ACDC (compact, full, etc) makes a cryptographic commitment to the top-level section fields shared by all variants of that ACDC.\ Paraphrased by @henkvancann based on source.

    Example

    top level section of an ACDC
    - + \ No newline at end of file diff --git a/docs/glossary/trans-contextual-value/index.html b/docs/glossary/trans-contextual-value/index.html index d0500234d2f..0ba6286be70 100644 --- a/docs/glossary/trans-contextual-value/index.html +++ b/docs/glossary/trans-contextual-value/index.html @@ -7,13 +7,13 @@ - +

    trans-contextual-value

    Definition

    Value that is transferrable between contexts

    How do we recapture the value in our data? 1- Leverage cooperative network effects 2- Retake control of our data. \ Source Samuel Smith

    1. Leverage cooperative network effects

    How to remove primary barriers to cooperation? Different value contexts implies 'not directly competitive'. So we need to find value that is transferrable between contexts. Therefore: Use trans-contextual value creation and capture to fuel cooperative network effects.

    2. Retake control of our data

    KERI assists in this.

    - + \ No newline at end of file diff --git a/docs/glossary/transaction-event-log/index.html b/docs/glossary/transaction-event-log/index.html index 2e5c7626938..54d3c7c59fa 100644 --- a/docs/glossary/transaction-event-log/index.html +++ b/docs/glossary/transaction-event-log/index.html @@ -7,12 +7,12 @@ - +

    transaction-event-log

    Definition

    The set of transactions that determine registry state form a log called a Transaction Event Log (TEL). The TEL provides a cryptographic proof of registry state by reference to the corresponding controlling KEL. Any validator may therefore cryptographically verify the authoritative state of the registry.

    Put differently

    An externally anchored transactions log via cryptographic commitments in a KEL.

    - + \ No newline at end of file diff --git a/docs/glossary/transfer-off-ledger/index.html b/docs/glossary/transfer-off-ledger/index.html index 4039da860f1..89d114aaaa2 100644 --- a/docs/glossary/transfer-off-ledger/index.html +++ b/docs/glossary/transfer-off-ledger/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ doing rotation events and changing your anchor, your backers here.\ So an identifier cannot be anchored, let's say to multiple Indies or Ethereum. You could be only anchored in one at a time.

    Move identifiers across networks

    You can move identifiers across networks with KERI, but it's not what it has been designed for.

    - + \ No newline at end of file diff --git a/docs/glossary/transferable-identifier/index.html b/docs/glossary/transferable-identifier/index.html index 85bd2dc05dc..16c99175fb8 100644 --- a/docs/glossary/transferable-identifier/index.html +++ b/docs/glossary/transferable-identifier/index.html @@ -7,13 +7,13 @@ - +

    transferable-identifier

    Definition

    Control over the identifier can be transferred by rotating keys.\ A synonym is 'persistent identifier'.

    {TBW prio 1}

    The KERI design approach is to build composable primitives instead of custom functionality that is so typical of other DKMI approaches:

    - + \ No newline at end of file diff --git a/docs/glossary/transferable/index.html b/docs/glossary/transferable/index.html index cb95fadd472..66d7810a8c1 100644 --- a/docs/glossary/transferable/index.html +++ b/docs/glossary/transferable/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ The adjective transferable also means 'Negotiable', as a note, bill of exchange, or other evidence of property, that may be conveyed from one person to another by indorsement or other writing; capable of being transferred with no loss of value. As opposed to non-transferable.\ Source

    Focus is on the digital space and concerning the loss-less transfer of control over identifiers, private keys, etc.

    - + \ No newline at end of file diff --git a/docs/glossary/transmission-control-protocol/index.html b/docs/glossary/transmission-control-protocol/index.html index d8b0ca71ff4..b59ccbded10 100644 --- a/docs/glossary/transmission-control-protocol/index.html +++ b/docs/glossary/transmission-control-protocol/index.html @@ -7,13 +7,13 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/trust-domain/index.html b/docs/glossary/trust-domain/index.html index 58a57bbf861..650aaad23a0 100644 --- a/docs/glossary/trust-domain/index.html +++ b/docs/glossary/trust-domain/index.html @@ -7,13 +7,13 @@ - +

    trust-domain

    Definition

    A trust domain is the ecosystem of interactions that rely on a trust basis. A trust basis binds controllers, identifiers, and key-pairs. For example the Facebook ecosystem of social interactions is a trust domain that relies on Facebook’s identity system of usernames and passwords as its trust basis.\ (Source whitepaper)

    Broader definition

    A trust domain is a domain that the system trusts to authenticate users. In other words, if a user or application is authenticated by a trusted domain, this authentication is accepted by all domains that trust the authenticating domain.

    Domain name

    A more technical meaning of 'domain' is on the internet: domain name.

    - + \ No newline at end of file diff --git a/docs/glossary/uniform-resource-locator/index.html b/docs/glossary/uniform-resource-locator/index.html index 82e863441f6..25f583f5621 100644 --- a/docs/glossary/uniform-resource-locator/index.html +++ b/docs/glossary/uniform-resource-locator/index.html @@ -7,12 +7,12 @@ - +

    uniform-resource-locator

    Definition

    A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it.

    Broader context

    A URL is a specific type of Uniform Resource Identifier (URI),although many people use the two terms interchangeably. URLs occur most commonly to reference web pages (HTTP) but are also used for file transfer (FTP), email (mailto), database access (JDBC), and many other applications.

    More on source Wikipedia

    - + \ No newline at end of file diff --git a/docs/glossary/unsolicited-issuance/index.html b/docs/glossary/unsolicited-issuance/index.html index c800ade969f..b54b017a453 100644 --- a/docs/glossary/unsolicited-issuance/index.html +++ b/docs/glossary/unsolicited-issuance/index.html @@ -7,13 +7,13 @@ - +

    unsolicited-issuance

    Definition

    Issuance of a Legal Entity vLEI Credential upon notice by a QAR to the AVR(s) of the Legal Entity that a Legal Entity vLEI Credential has been solicited on the Legal Entity’s behalf.\ Source: Draft vLEI Ecosystem Governance Framework Glossary.

    See Solicited issuance

    - + \ No newline at end of file diff --git a/docs/glossary/user-interface/index.html b/docs/glossary/user-interface/index.html index ac5f8086a16..2fa0589811e 100644 --- a/docs/glossary/user-interface/index.html +++ b/docs/glossary/user-interface/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine from the human end, while the machine simultaneously feeds back information that aids the operators' decision-making process.\ Source page

    - + \ No newline at end of file diff --git a/docs/glossary/vLEI/index.html b/docs/glossary/vLEI/index.html index 56148a53192..4c91de0380a 100644 --- a/docs/glossary/vLEI/index.html +++ b/docs/glossary/vLEI/index.html @@ -7,12 +7,12 @@ - +
    - + \ No newline at end of file diff --git a/docs/glossary/validate/index.html b/docs/glossary/validate/index.html index 9e1d18ff0f3..9b96587e8e5 100644 --- a/docs/glossary/validate/index.html +++ b/docs/glossary/validate/index.html @@ -7,12 +7,12 @@ - +

    validate

    See

    ESSIF-lab definition of validate. Although this definition is very general, in the KERI/ACDC vocabulary 'validate' currently has extra diverse meanings extending the one of eSSIF-lab, such as

    In contrast, validator and verifier have been clearly outlined in the WebofTrust vocabulary.

    • verify definition is in sync with the definition in the KERI/ACDC vocabulary
    • verifier definition is in sync with the definition in the KERI/ACDC vocabulary
    • validator definition is a generalisation of the much more specific definition in the KERI/ACDC vocabulary
    - + \ No newline at end of file diff --git a/docs/glossary/validator/index.html b/docs/glossary/validator/index.html index d2fd4cc7106..03225a34730 100644 --- a/docs/glossary/validator/index.html +++ b/docs/glossary/validator/index.html @@ -7,13 +7,13 @@ - +

    validator

    Definition

    determines current authoritative key set for identifier from at least one key event (receipt) log. Types:

    • Validator of any verifiable data structure
    • Validator as a node in distributed consensus or participant

    Validator and verifier are close to synonyms for our purposes.

    A validator in KERI and ACDC is anybody that wants to establish control-authority over an identifier, created by the controller of the identifier. Validators verify the log, they apply duplicity detection or they leverage somebody else's duplicity detection or apply any other logic so they can say "Yes, these are events I can trust".

    Example

    During validation of virtual credentials for example, a verifier checks to see if a verifiable credential (VC) has been signed by the controller of this VC using the applicable verification method.

    To be Sam-Smith precise in KERI

    Any entity or agent that evaluates whether or not a given signed statement as attributed to an identifier is valid at the time of its issuance. A valid statement MUST be verifiable, that is, has a verifiable signature from the current controlling keypair(s) at the time of its issuance. Therefore a Validator must first act as a Verifier in order to establish the root authoritative set of keys. Once verified, the Validator may apply other criteria or constraints to the statement in order to determine its validity for a given use case. When that statement is part of a verifiable data structure then the cryptographic verification includes verifying digests and any other structural commitments or constraints. To elaborate, with respect to an AID, for example, a Validator first evaluates one or more KELs in order to determine if it can rely on (trust) the key state (control authority) provided by any given KEL. A necessary but insufficient condition for a valid KEL is it is verifiable i.e. is internally inconsistent with respect to compliance with the KERI protocol. An invalid KEL from the perspective of a Validator may be either unverifiable or may be verifiable but duplicitous with respect to some other verifiable version of that KEL. Detected duplicity by a given validator means that the validator has seen more than one verifiable version of a KEL for a given AID. Reconciliable duplicity means that one and only one version of a KEL as seen by a Validator is accepted as the authoritative version for that validator. Irreconcilable duplicity means that none of the versions of a KEL as seen by a validator are accepted as the authoritative one for that validator. The conditions for reconcilable duplicity are described later.\ Source Sam Smith

    ESSIF-lab definitions

    • verify definition is in sync with the definition in the KERI/ACDC vocabulary
    • verifier definition is in sync with the definition in the KERI/ACDC vocabulary
    • validate definition is very general, however in the KERI/ACDC vocabulary 'validate' currently has diverse meanings including this one
    • validator definition is a generalisation of the much more specific definition in the KERI/ACDC vocabulary
    - + \ No newline at end of file diff --git a/docs/glossary/veracity/index.html b/docs/glossary/veracity/index.html index 45c98a5fe8e..a0f19b65730 100644 --- a/docs/glossary/veracity/index.html +++ b/docs/glossary/veracity/index.html @@ -7,12 +7,12 @@ - +

    veracity

    Definition

    The quality of being true; contrast authenticity. When a newspaper publishes a story about an event, every faithful reproduction of that story may be authentic — but that does not mean the story was true (has veracity).

    - + \ No newline at end of file diff --git a/docs/glossary/verfer/index.html b/docs/glossary/verfer/index.html index 51a0ef70fe5..fb3a1c45662 100644 --- a/docs/glossary/verfer/index.html +++ b/docs/glossary/verfer/index.html @@ -7,13 +7,13 @@ - +

    verfer

    Definition

    A primitive that represents a public key. It has the ability to verify signatures on data.\ Source by Jason Colburne

    - + \ No newline at end of file diff --git a/docs/glossary/verifiable-credential/index.html b/docs/glossary/verifiable-credential/index.html index 28ef338aba1..829f0639e06 100644 --- a/docs/glossary/verifiable-credential/index.html +++ b/docs/glossary/verifiable-credential/index.html @@ -7,12 +7,12 @@ - +

    verifiable-credential

    Definition

    Verifiable credentials (VCs) are an open standard for digital credentials. They can represent information found in physical credentials, such as a passport or license, as well as new things that have no physical equivalent, such as ownership of a bank account.

    The ToIP definition

    here

    More on source Wikipedia

    VCs

    W3C DID standardization

    Importantly, there are VC specification that provide a mechanism to express these sorts of credentials on the Web in a way that is cryptographically secure, privacy respecting, and machine-verifiable. More

    - + \ No newline at end of file diff --git a/docs/glossary/verifiable-data-structure-(VDS)/index.html b/docs/glossary/verifiable-data-structure-(VDS)/index.html index fcca26fee49..1f30f74f5c0 100644 --- a/docs/glossary/verifiable-data-structure-(VDS)/index.html +++ b/docs/glossary/verifiable-data-structure-(VDS)/index.html @@ -7,12 +7,12 @@ - +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    - + \ No newline at end of file diff --git a/docs/glossary/verifiable-data-structure/index.html b/docs/glossary/verifiable-data-structure/index.html index 482f496e970..23845c12d3b 100644 --- a/docs/glossary/verifiable-data-structure/index.html +++ b/docs/glossary/verifiable-data-structure/index.html @@ -7,13 +7,13 @@ - +

    verifiable-data-structure

    Definition

    A verifiable data structure is a data structure that incorporates cryptographic techniques to ensure the integrity and authenticity of its contents. It allows users to verify the correctness of the data stored within the structure without relying on a trusted third party. Source ChatGPT

    Provides proof of key state for its identifier. In KERI it is the Key Event Log (KEL). Key management is embedded in KELs, including recovery from key compromise.


    Sources Definition ChatGPT

    1. Boneh, D., & Shacham, H. (2018). Verifiable data structures for outsourced data. Foundations and Trends® in Privacy and Security, 2(1-2), 1-116.
    2. Bamert, T., Decker, C., Elsen, L., Wattenhofer, R., & Welten, S. (2017). Have a snack, pay with bitcoins. Distributed Computing, 30(1), 69-93.
    3. Ateniese, G., Kamara, S., & Katz, J. (2014). Provable data possession at untrusted stores. ACM Transactions on Information and System Security (TISSEC), 7(2), 222-238.
    4. Andrychowicz, M., Dziembowski, S., Malinowski, D., & Mazurek, Ł. (2014). Secure multiparty computations on Bitcoin. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security (pp. 628-639).
    5. Pomarole, M., Zhang, Y., Rosulek, M., & Katz, J. (2014). Secure cloud backup and inference control. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security (pp. 812-823).
    - + \ No newline at end of file diff --git a/docs/glossary/verifiable-legal-entity-identifier/index.html b/docs/glossary/verifiable-legal-entity-identifier/index.html index 36ed23d8f57..48882a567be 100644 --- a/docs/glossary/verifiable-legal-entity-identifier/index.html +++ b/docs/glossary/verifiable-legal-entity-identifier/index.html @@ -7,12 +7,12 @@ - +

    verifiable-legal-entity-identifier

    Definition

    vLEIs are digital verifiable credentials issued by (delegates) of GLEIF to prove that information about a legel entity is verifiably authentic.

    {TBW prio1 : check definition}

    Explanation

    The v in vLEI stands for “verifiable”, but what does that mean? The term verifiable in this case comes from the term “Verifiable Credential”. A verifiable credential is just a collection of information with a mechanism that allows a computer to verify that the information has not been modified and that the information was originally stated to be correct by some third party (maybe a bank, or the driving license authority). Often (almost always really) the information will include a link to the entity the information is about.

    More information

    Here at Rapidlei.

    - + \ No newline at end of file diff --git a/docs/glossary/verifiable/index.html b/docs/glossary/verifiable/index.html index 98d5ac63cab..8d388f1b89f 100644 --- a/docs/glossary/verifiable/index.html +++ b/docs/glossary/verifiable/index.html @@ -7,13 +7,13 @@ - +

    verifiable

    Definition

    able to cryptographically verify a certain data structure on its consistency and its authenticity

    A KEL is verifiable means all content in a KEL including the digests and the signatures on that content is verifiably compliant with respect to the KERI protocol. In other words, the KEL is internally consistent and has integrity vis-a-vis its backward and forward chaining digests and authenticity vis-a-vis its non-repudiable signatures. As a verifiable data structure, the KEL satisfies the KERI protocol-defined rules for that verifiability. This includes the cryptographic verification of any digests or signatures on the contents so digested or signed.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/verified-integrity/index.html b/docs/glossary/verified-integrity/index.html index 27adab63be3..ac828b43d3c 100644 --- a/docs/glossary/verified-integrity/index.html +++ b/docs/glossary/verified-integrity/index.html @@ -7,13 +7,13 @@ - +

    verified-integrity

    Definition

    A mechanism that can unambiguously assess whether the information is/continues to be whole, sound and unimpaired

    See also

    integrity\ (complementary) integrity verification

    - + \ No newline at end of file diff --git a/docs/glossary/verifier/index.html b/docs/glossary/verifier/index.html index aa077b78b05..ef54f88e840 100644 --- a/docs/glossary/verifier/index.html +++ b/docs/glossary/verifier/index.html @@ -7,13 +7,13 @@ - +

    verifier

    Definition

    the entity that (cryptographically) verifies data received from peers (check structure, signatures, dates). More narrowly defined for the KERI suite: cryptographically verifies signature(s) on an event message.

    Notice the subtile difference between validator and verifier.

    Any entity or agent that cryptographically verifies the signature(s) and/or digests on an event message. In order to verify a signature, a verifier must first determine which set of keys are or were the controlling set for an identifier when an event was issued. In other words, a verifier must first establish control authority for an identifier. For identifiers that are declared as non-transferable at inception, this control establishment merely requires a copy of the inception event for the identifier. For identifiers that are declared transferable at inception, this control establishment requires a complete copy of the sequence of establishment events (inception and all rotations) for the identifier up to the time at which the statement was issued.\ Source Sam Smith

    ESSIF-lab definitions

    • verify definition is in sync with the definition in the KERI/ACDC vocabulary
    • verifier definition is in sync with the definition in the KERI/ACDC vocabulary
    • validate definition is very general, however in the KERI/ACDC vocabulary 'validate' currently has diverse meanings including this one
    • validator definition is a generalisation of the much more specific definition in the KERI/ACDC vocabulary
    - + \ No newline at end of file diff --git a/docs/glossary/verify-signature/index.html b/docs/glossary/verify-signature/index.html index f7a4e5035b7..43c159929ee 100644 --- a/docs/glossary/verify-signature/index.html +++ b/docs/glossary/verify-signature/index.html @@ -7,12 +7,12 @@ - +

    verify-signature

    Definition

    Applying an algorithm that, given the message, public key and signature, either accepts or rejects the message's claim to authenticity.

    Private key signing
    • verify definition is in sync with the definition in the KERI/ACDC vocabulary
    • verifier definition is in sync with the definition in the KERI/ACDC vocabulary
    • validate definition is very general, however in the KERI/ACDC vocabulary 'validate' currently has diverse meanings including this one
    • validator definition is a generalisation of the much more specific definition in the KERI/ACDC vocabulary
    - + \ No newline at end of file diff --git a/docs/glossary/verify/index.html b/docs/glossary/verify/index.html index 442699b7284..d31d8630cf9 100644 --- a/docs/glossary/verify/index.html +++ b/docs/glossary/verify/index.html @@ -7,12 +7,12 @@ - +

    verify

    See

    Verify in eSSIF-lab glossary

    - + \ No newline at end of file diff --git a/docs/glossary/version-code/index.html b/docs/glossary/version-code/index.html index ff01dccaa2b..c7a8a61c0d2 100644 --- a/docs/glossary/version-code/index.html +++ b/docs/glossary/version-code/index.html @@ -7,12 +7,12 @@ - +

    version-code

    Definition

    tells you which set of tables to load, it tells the table state. It's a unique code. what version of the table is going to load.

    Compare

    Version string

    - + \ No newline at end of file diff --git a/docs/glossary/version-string/index.html b/docs/glossary/version-string/index.html index 281bbda0242..b0b7f76aae8 100644 --- a/docs/glossary/version-string/index.html +++ b/docs/glossary/version-string/index.html @@ -7,12 +7,12 @@ - +

    version-string

    Definition

    The Version String in JSON, CBOR and MGPK is a workaround to make those self-framing.

    Compare

    Version code

    - + \ No newline at end of file diff --git a/docs/glossary/version/index.html b/docs/glossary/version/index.html index 70d5fb83eff..3d0402d40ee 100644 --- a/docs/glossary/version/index.html +++ b/docs/glossary/version/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ Source

    More than one version of a KEL for an AID exists when for any two instances of a KEL at least one event is unique between the two instances.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/virtual-credential-transaction-event-log/index.html b/docs/glossary/virtual-credential-transaction-event-log/index.html index bea11cd542f..3e4b8544f8f 100644 --- a/docs/glossary/virtual-credential-transaction-event-log/index.html +++ b/docs/glossary/virtual-credential-transaction-event-log/index.html @@ -7,12 +7,12 @@ - +

    virtual-credential-transaction-event-log

    Definition

    will track the issued or revoked state of each virtual credential (VC) and will contain a reference to its corresponding management transaction event log (management TEL).

    - + \ No newline at end of file diff --git a/docs/glossary/vlei-credential/index.html b/docs/glossary/vlei-credential/index.html index e575e3ef491..7b5732c73e2 100644 --- a/docs/glossary/vlei-credential/index.html +++ b/docs/glossary/vlei-credential/index.html @@ -7,12 +7,12 @@ - +

    vlei-credential

    Definition

    Credential concerning a verifiable Legal Entity Identifier, residing in the GLEIS and compliant with one or more of the GLEIF Governance Frameworks

    - + \ No newline at end of file diff --git a/docs/glossary/vlei-ecosystem-governance-framework/index.html b/docs/glossary/vlei-ecosystem-governance-framework/index.html index 95e1d25254c..fa600f679d4 100644 --- a/docs/glossary/vlei-ecosystem-governance-framework/index.html +++ b/docs/glossary/vlei-ecosystem-governance-framework/index.html @@ -7,13 +7,13 @@ - +

    vlei-ecosystem-governance-framework

    Definition

    The Verifiable LEI (vLEI) Ecosystem Governance Framework Information Trust Policies. It's a document that defines the information security, privacy, availability, confidentiality and processing integrity policies that apply to all vLEI Ecosystem Members.\ Paraphrased by @henkvancann from source Draft vLEI Ecosystem Governance Framework Glossary.

    - + \ No newline at end of file diff --git a/docs/glossary/vlei-role-credential/index.html b/docs/glossary/vlei-role-credential/index.html index 4e89472ed08..e9821a1512f 100644 --- a/docs/glossary/vlei-role-credential/index.html +++ b/docs/glossary/vlei-role-credential/index.html @@ -7,12 +7,12 @@ - +

    vlei-role-credential

    Definition

    A vLEI credential that attests a role.

    {TBW prio 3}

    - + \ No newline at end of file diff --git a/docs/glossary/wallet/index.html b/docs/glossary/wallet/index.html index 4dfe3c080a0..861d95d5c2a 100644 --- a/docs/glossary/wallet/index.html +++ b/docs/glossary/wallet/index.html @@ -7,7 +7,7 @@ - +
    @@ -20,6 +20,6 @@ More on source Wikipedia

    A 'wallet' in KERI would typically refer to the basic function of storing the keys, a wallet in ACDC is more focussed on storing verifiable credentials (VCs).\ KERI explicitly distinguishes keystore and wallet; the latter being a superset of the former. Keep is KERI's and ACDC's user interface with Keripy agent API as a back end.

    - + \ No newline at end of file diff --git a/docs/glossary/watcher/index.html b/docs/glossary/watcher/index.html index e3c41a013bc..5bd3c27947f 100644 --- a/docs/glossary/watcher/index.html +++ b/docs/glossary/watcher/index.html @@ -7,12 +7,12 @@ - +

    watcher

    Definition

    KERI alternative to total global ordering and consensus protocols is a mechanism called duplicity detection. In the verification and validation watchers are all that matter; they guarantee that logs are immutable by one very simple rule: "first seen wins".

    KERI operational

    This would be a set of watchers (that the validators trust) that record any and all copies of key event logs (KEL) that they see. Because these watchers can be anyone and anywhere, any controller of a public identifier is at peril should they choose to publish inconsistent copies of their KEL. This removes the incentive to be duplicitous.

    - + \ No newline at end of file diff --git a/docs/glossary/web-of-trust/index.html b/docs/glossary/web-of-trust/index.html index b47fcb82c7d..64193fe00f4 100644 --- a/docs/glossary/web-of-trust/index.html +++ b/docs/glossary/web-of-trust/index.html @@ -7,13 +7,13 @@ - +

    web-of-trust

    Definition

    In cryptography, a web of trust is a concept used in PGP, GnuPG, and other OpenPGP-compatible systems to establish the authenticity of the binding between a public key and its owner.\ Its decentralized trust model is an alternative to the centralized trust model of a public key infrastructure (PKI), which relies exclusively on a certificate authority (or a hierarchy of such). As with computer networks, there are many independent webs of trust, and any user (through their identity certificate) can be a part of, and a link between, multiple webs. The web of trust concept was first put forth by PGP creator Phil Zimmermann in 1992 in the manual for PGP.

    Web of trust illustration

    More on Wikipedia

    - + \ No newline at end of file diff --git "a/docs/glossary/well-known\302\240witnesses/index.html" "b/docs/glossary/well-known\302\240witnesses/index.html" index 764696eb4f0..5b979a4b9b4 100644 --- "a/docs/glossary/well-known\302\240witnesses/index.html" +++ "b/docs/glossary/well-known\302\240witnesses/index.html" @@ -7,12 +7,12 @@ - +

    well-known witnesses

    Definition

    Witness identifier creation by using salts to initialize their key stores so that you can predict what identifiers will be created. For testing purposes only!

    Security 

    Don't use the creation of well-known witnesses in a production environment, but for running tests it's suitable.

    - + \ No newline at end of file diff --git a/docs/glossary/witness/index.html b/docs/glossary/witness/index.html index 88b20b75385..a470bb1445d 100644 --- a/docs/glossary/witness/index.html +++ b/docs/glossary/witness/index.html @@ -7,7 +7,7 @@ - +
    @@ -16,6 +16,6 @@ More in the whitepaper

    Operational description in KERI

    Entity that may receive, verify, and store key events for an identifier. Each witness controls its own identifier used to sign key event messages, a controller is a special case of a witness.\ Source Sam Smith

    - + \ No newline at end of file diff --git a/docs/glossary/zero-trust/index.html b/docs/glossary/zero-trust/index.html index cd5bd7fb4e8..7e03a57c366 100644 --- a/docs/glossary/zero-trust/index.html +++ b/docs/glossary/zero-trust/index.html @@ -7,12 +7,12 @@ - +

    zero-trust

    Definition

    a Zero Trust approach trusts no one.

    Zero Trust is a shift of network defenses toward a more comprehensive IT security model that allows organizations to restrict access controls to networks, applications, and environment without sacrificing performance and user experience. As more organizations do more computing outside their perimeter in the cloud, security teams find it increasingly difficult to trust or identify who and what should be allowed or trusted with access to their networks. As a result, an increasing number of organizations are adopting Zero Trust as an element or a component of their trust network architecture and enterprise security strategy.

    Zero Trust is a security concept that requires all users, even those inside the organization’s enterprise network, to be authenticated, authorized, and continuously validating security configuration and posture, before being granted or keeping access to applications and data. This approach leverages advanced technologies such as multi-factor authentication, identity and access management (IAM), and next-generation endpoint security technology to verify the user’s identity and maintain system security.

    - + \ No newline at end of file diff --git a/docs/intro/index.html b/docs/intro/index.html index e0f5c7f4f7f..5853032c3fa 100644 --- a/docs/intro/index.html +++ b/docs/intro/index.html @@ -7,7 +7,7 @@ - +
    @@ -21,6 +21,6 @@ As a result the WebOfTrust keriox implementation above is somewhat behind the keripy implementation in terms of feature support. We encourage the community to step forward and continue development of the Apache2 licensed Rust implementation.

    We also encourage creation of Educational material and resources for KERI, CESR, OOBI and ACDC in other appearances. We are happy to host other activities here in the WebOfTrust project as long as they are Apache2 licensed.

    - + \ No newline at end of file diff --git a/docs/tags/acdc/index.html b/docs/tags/acdc/index.html index b8d42ba2c80..24295da1218 100644 --- a/docs/tags/acdc/index.html +++ b/docs/tags/acdc/index.html @@ -7,12 +7,12 @@ - +

    3 docs tagged with "ACDC"

    View All Tags

    TEST

    Winnie-the-Pooh, also called Pooh Bear and Pooh, is a fictional anthropomorphic teddy bear created by English author A. A. Milne and English illustrator E. H. Shepard.

    TEST2

    Paddington Bear is a fictional character in children's literature. He first appeared on 13 October 1958 in the children's book A Bear Called Paddington and has been featured in more than twenty books written by British author Michael Bond, and illustrated by Peggy Fortnum and other artists.[1]

    - + \ No newline at end of file diff --git a/docs/tags/index.html b/docs/tags/index.html index 6d843acfa9c..8cf7e1971f4 100644 --- a/docs/tags/index.html +++ b/docs/tags/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/docs/tags/keri/index.html b/docs/tags/keri/index.html index bd9209e7f24..4bda8c02075 100644 --- a/docs/tags/keri/index.html +++ b/docs/tags/keri/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/feedback/index.html b/feedback/index.html index 28df7ebe5d2..912255a8f58 100644 --- a/feedback/index.html +++ b/feedback/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/howtos-menu/index.html b/howtos-menu/index.html index 74ba965068c..8473e4e8858 100644 --- a/howtos-menu/index.html +++ b/howtos-menu/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/howtos/hwt_embed-github-hosted-image-in-github-wiki-page/index.html b/howtos/hwt_embed-github-hosted-image-in-github-wiki-page/index.html index ada7980f9da..2d4ddf842df 100644 --- a/howtos/hwt_embed-github-hosted-image-in-github-wiki-page/index.html +++ b/howtos/hwt_embed-github-hosted-image-in-github-wiki-page/index.html @@ -7,7 +7,7 @@ - +
    @@ -15,6 +15,6 @@ The link the image was broken here: https://trustoverip.github.io/acdc/glossary#prefix, it did not show an image. However, copying the image link results in "https://github.com/WebOfTrust/keri/blob/main/images/prefix.png", and if you paste this link, you do get an image!

    What's going on here? And why is this relevant?

    We are better off knowing what the difference between 'raw' and 'generated' in Github means, so we can move faster and more be efficient. Read on.

    Confusion

    When you check an image into Github, and then browse to the image's path in the repo, github doesn't display the raw picture.

    Rather, it displays a generated html page that includes a bunch of Github framing so you can see the repo, the version history, etc.

    Example continued\ If you look at the wiki page for the glossary entry in question: https://github.com/trustoverip/acdc/wiki//prefix, you will see that the URL of the image is https://github.com/WebOfTrust/keri/blob/main/images/prefix.png.

    Even though that URL ends with "png", what it returns is not a raw PNG, but an actual web page.

    How to do it the right way?

    To embed an image properly in a github wiki page (whether the wiki page is a terms wiki or not), you need to get the URL for the raw image file. You can get this done by

    THREE different ways!

    A.

    1. clicking the button that says "Download" and
    2. right-clicking the image and choose "Copy Image Address"

    Example result: https://raw.githubusercontent.com/WebOfTrust/keri/main/images/prefix.png

    OR

    B.

    1. right-clicking on the button that says "Download" and
    2. choosing "Copy Link"

    Example result: https://github.com/WebOfTrust/keri/raw/main/images/prefix.png

    Either way will work. Here's the proof :), that I've deleted already:

    C. Just add ?raw=true to the URL

    example result: https://github.com/WebOfTrust/keri/blob/main/images/prefix.png?raw=true

    Either way will work. And here is the proof, that I've already deleted of course from the production environment:

    Resume

    I think this will fix your broken image links and resolve the issue mentioned above.

    - + \ No newline at end of file diff --git a/howtos/hwt_get-markdown-from-ToIP-wiki/index.html b/howtos/hwt_get-markdown-from-ToIP-wiki/index.html index 6faf12b2c2d..ba6ea0afc6a 100644 --- a/howtos/hwt_get-markdown-from-ToIP-wiki/index.html +++ b/howtos/hwt_get-markdown-from-ToIP-wiki/index.html @@ -7,7 +7,7 @@ - +
    @@ -19,6 +19,6 @@ Save

    Be careful

    Changes are immediate. A change like the one the example above, will be promoted to the production glossary because of installed Github Actions and triggers that go off there.

    But I want the actual .MD-file in my hands!

    Wiki is a special kind of repo in Github

    The wiki section of Repo has an own git remote link.

    Steps to download all the .md files

    Copy the link to the wiki repo of certain Github repo. Use the functionality at the bottom of the glossary:

    clone the wiki of a repo

    Go to a folder on your local computer and type

    Clone <paste the URL here>

    Example:\ Clone https://github.com/trustoverip/acdc.wiki.git

    Go to your newly created local repository and all the .MD files will be there

    Example:\

    list of term .MD files in the wiki repo

    How to retrieve updates of the actual .MD-file to my local machine?

    Suppose you're in the root of the acdc.wiki

    Command

    git remote -v

    tells you from which remote location you'd like to pull the changes from

    Then pull the .md-files in:

    git pull origin master
    - + \ No newline at end of file diff --git a/howtos/hwt_load-toip-glossary-in-weboftrust-github-page/index.html b/howtos/hwt_load-toip-glossary-in-weboftrust-github-page/index.html index 1730c026611..911656fdf31 100644 --- a/howtos/hwt_load-toip-glossary-in-weboftrust-github-page/index.html +++ b/howtos/hwt_load-toip-glossary-in-weboftrust-github-page/index.html @@ -7,7 +7,7 @@ - +
    @@ -17,6 +17,6 @@ You could use Excel and export as csv (;-delimited).

    Gen-fm.bat

    This Bash command file performs a series of operations:

    • it reads the input file (2.) per line.

    • each row describes a term and its resource file

    • we create a proper file name

    • we try to match the terms in the ToIP glossary resources and bind them

    • we clean Front Matter fields:

      1. from forbidden characters
      2. preceding and trailing spaces
    • we write .md files with Front matter code and includes

    As you edit, also have a an Excel sheet open with a few columns:

    • key
    • (WWWWW-key) multiple foreign keys
    • term
    • text
    • level
    • link
    • (Cat-CCCC) multiple categories

    key needs to be unique and once established it should not change. Terms are words used in the resource, you can provide a link to more explanation, mainly to the ACDC glossary. Then the level of understanding at which this term might need explanation, and finally a brief explanation in field text of the term in the first column.

    Level

    Since KERI and ACDC education start off at the level of SSI-expert, a beginner is not a layman, but somebody with a good common understanding of IT and digital identity.

    • 1=beginner digital identity expert
    • 3=advanced self-sovereign identity expert
    • 7=SSI experts

    The command source gen-fm.bat performs the tasks mentioned above.

    Github Repo

    Push the locally updated files to the remote WebofTrust repo:

    git status
    git add .
    git commit -m "update the ToIP glossary"
    git push <remote> gh-pages

    Static pages generator

    The push will activate Github Actions and the resources will be input to a static site generator.

    Result

    This is the Github pages result from the step by step above

    https://weboftrust.github.io/WOT-terms/mydoc_glossary.html

    - + \ No newline at end of file diff --git a/howtos/hwt_pull-in-markdown-documents/index.html b/howtos/hwt_pull-in-markdown-documents/index.html index 6e7c96f3c9f..cb31d88f2c4 100644 --- a/howtos/hwt_pull-in-markdown-documents/index.html +++ b/howtos/hwt_pull-in-markdown-documents/index.html @@ -7,13 +7,13 @@ - +

    Pull in markdown documents

    Ietf draft are standardized write-ups for experts. Although these drafts contains loads of valuable information and learning resources, the layout and accessibility is cumbersome for training and education purposes. Therefore we pull in the original documents in markdown format in our Jekyll site and semi-automatically reorganize the data using our Terms and Glossaries.

    How to find a document

    Search the WebofTrust Github repos for an interesting resource.

    Save the doc as a 'raw' .md file

    Where?

    In your local copy of the repository WebofTrust WOT-terms It MUST be in:

    • the root directory of the Jekyll site.
    • In the gh-pages branch

    Next?

    We are going to process this document with shell scripts and Jekyll to produce a copy of the documents in a static Jekyll website that has sidebars, filter options, automatic links in text to the glossary etc.

    - + \ No newline at end of file diff --git a/howtos/hwt_why-terms-wot-manage-structure/index.html b/howtos/hwt_why-terms-wot-manage-structure/index.html index 267e068591d..52a01f1007e 100644 --- a/howtos/hwt_why-terms-wot-manage-structure/index.html +++ b/howtos/hwt_why-terms-wot-manage-structure/index.html @@ -7,7 +7,7 @@ - +
    @@ -19,6 +19,6 @@ "virtual-credential-transaction-event-log", then "credential transaction event log" and lastly "transaction event log". No double counts here. Same with acronyms: an exact match for "VC-TEL" implies that there's no count for "TEL". Lastly also in syllables: a hit for "keridemlia" doesn't count "keri" in this word.

    Results

    The count of terms are in the Cat_CCCCC columns after a (re)run of the counting tool.

    {TBW prio 1: the tool is currently being re-developed, August 18 2022 }

    Why do we need this?

    • Key: We might need a Key field to be able to have a unique long-living identifier for a term in the WebofTrust domain. However, any term goes through a life cycle, with the end state of a term being well-known, unchanged for a while and unique. The Key field has become superfluous by then.
    • TTTTT_Fkey / TTTTT_start: We use this Foreign Key to link to other educational resources of the this term, like Youtube footage*, webpages and other glossaries.
    • level: We assess a level of understanding to meaningful study a term. Regardless this subjective and personal judgement, the filtering options are numerous:
    1. offer everything (a glossary)
    2. offer a learning trajectory
    3. filter in the opposite direction: exclude terms for experts; don't bother them with Noob answers.
    4. etc.
    • Cat_CCCCC: we are now able to store the counts and then offer the term in various relevant contexts at the front end of the site.

    '* Youtube footage: plus the start time of where the term is mentioned first or most extensively.

    Why not a term-content file per level of understanding?

    Per term various levels of explanation (plus related further readings) are offered within one source file .md. The reason for this is that every individual learner is different. Within the source file of a term we can label "stars" to both questions and answers, compliant to what's explained in this section of the README.md file : Levels of Understanding

    By offering "everything we have" about a certain term in one file, a reader is able to identify herself / himself with a certain level in a specific context and "filter the stars" in an eye blink.

    What's the whole point of managing WOT terms in a sheet?

    Three major applications:

    Being the home of our terms maintenance, we load ToIP glossary and generate our Jekyll static content site on Github. This whole process is steered with the content in the Terms WOT manage sheet.

    Any resource that mentions WebofTrust terms can be much easier enriched with the use of Terms WOT manage sheet. For example, we can create a terms link table for any footage from the sheet Terms WOT manage sheet.

    Integration and synchronisation with other glossaries and destination information sources is possible by maintenance of Key and Foreign Keys in Terms WOT manage sheet.

    This is a non-exhaustive list of application options.

    - + \ No newline at end of file diff --git a/index.html b/index.html index 49df1954291..9699da2cdd1 100644 --- a/index.html +++ b/index.html @@ -7,12 +7,12 @@ - +

    KERISSE

    KERI Suite Search Engine

    Personal learning environment and consensus building tool

    ⚡ Documentation

    KERISSE is a technical documentation site. You'll find information on decentralized identity technologies: KERI, ACDC and more.

    ⚡ Search Engine

    KERISSE is a sophisticated search engine. It searches this documentation site, AND other relevant sites.

    ⚡ Chatbot

    You can also have a conversation with KERISSE via our chatbot. Well informed, polite and patient.

    - + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index 453338f3ab7..35253cbe5d8 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file diff --git a/visualisations/index.html b/visualisations/index.html index 5b468b4ac37..29d2af275c8 100644 --- a/visualisations/index.html +++ b/visualisations/index.html @@ -7,12 +7,12 @@ - + - + \ No newline at end of file