diff --git a/.gitbook/assets/Keplr to Leap Wallet.png b/.gitbook/assets/Keplr to Leap Wallet.png new file mode 100644 index 0000000..ee07a45 Binary files /dev/null and b/.gitbook/assets/Keplr to Leap Wallet.png differ diff --git a/.gitbook/assets/Leap to Keplr wallet.png b/.gitbook/assets/Leap to Keplr wallet.png new file mode 100644 index 0000000..1b2283b Binary files /dev/null and b/.gitbook/assets/Leap to Keplr wallet.png differ diff --git a/.gitbook/assets/Screenshot 2024-12-24 at 14.08.25.png b/.gitbook/assets/Screenshot 2024-12-24 at 14.08.25.png new file mode 100644 index 0000000..766a7ec Binary files /dev/null and b/.gitbook/assets/Screenshot 2024-12-24 at 14.08.25.png differ diff --git a/.gitbook/assets/swagger.json b/.gitbook/assets/swagger.json new file mode 100644 index 0000000..136d8fa --- /dev/null +++ b/.gitbook/assets/swagger.json @@ -0,0 +1,16519 @@ +{ + "paths": { + "/action-menu/{conn_id}/close": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ActionMenuModulesResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "action-menu" + ], + "summary": "Close the active menu associated with a connection", + "produces": [ + "application/json" + ] + } + }, + "/action-menu/{conn_id}/fetch": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ActionMenuFetchResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "action-menu" + ], + "summary": "Fetch the active menu", + "produces": [ + "application/json" + ] + } + }, + "/action-menu/{conn_id}/perform": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ActionMenuModulesResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/PerformRequest" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "action-menu" + ], + "summary": "Perform an action associated with the active menu", + "produces": [ + "application/json" + ] + } + }, + "/action-menu/{conn_id}/request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ActionMenuModulesResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "action-menu" + ], + "summary": "Request the active menu", + "produces": [ + "application/json" + ] + } + }, + "/action-menu/{conn_id}/send-menu": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ActionMenuModulesResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/SendMenu" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "action-menu" + ], + "summary": "Send an action menu to a connection", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/credential-definition": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/CredDefResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/CredDefPostRequest" + } + } + ], + "tags": [ + "anoncreds - credential definitions" + ], + "summary": "Create a credential definition on the connected datastore", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/credential-definition/{cred_def_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/GetCredDefResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "cred_def_id", + "type": "string", + "description": "Credential definition identifier", + "example": "did:(method):3:CL:20:tag", + "required": true + } + ], + "tags": [ + "anoncreds - credential definitions" + ], + "summary": "Retrieve an individual credential definition details", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/credential-definitions": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/GetCredDefsResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "issuer_id", + "type": "string", + "description": "Issuer Identifier of the credential definition", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "required": false + }, + { + "in": "query", + "name": "schema_id", + "type": "string", + "description": "Schema identifier", + "example": "did:(method):2:schema_name:1.0", + "required": false + }, + { + "in": "query", + "name": "schema_name", + "type": "string", + "description": "Schema name", + "example": "example-schema", + "required": false + }, + { + "in": "query", + "name": "schema_version", + "type": "string", + "description": "Schema version", + "example": "1.0", + "required": false + } + ], + "tags": [ + "anoncreds - credential definitions" + ], + "summary": "Retrieve all credential definition ids", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/registry/{rev_reg_id}/active": { + "put": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevocationModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)", + "description": "Revocation Registry identifier", + "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Update the active registry", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/registry/{rev_reg_id}/tails-file": { + "put": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevocationModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)", + "description": "Revocation Registry identifier", + "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Upload local tails file to server", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation-list": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevListResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/RevListCreateRequest" + } + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Create and publish a revocation status list on the connected datastore", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation-registry-definition": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevRegDefResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/RevRegCreateRequestSchemaAnoncreds" + } + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Create and publish a registration revocation on the connected datastore", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/active-registry/{cred_def_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevRegResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "cred_def_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Credential definition identifier", + "example": "did:(method):3:CL:20:tag", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Get current active revocation registry by credential definition id", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/active-registry/{cred_def_id}/rotate": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevRegsCreatedSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "cred_def_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Credential definition identifier", + "example": "did:(method):3:CL:20:tag", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Rotate revocation registry", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/credential-record": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/CredRevRecordResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "cred_rev_id", + "type": "string", + "pattern": "^[1-9][0-9]*$", + "description": "Credential revocation identifier", + "example": "12345", + "required": false + }, + { + "in": "query", + "name": "rev_reg_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Revocation registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "required": false + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Get credential revocation status", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/publish-revocations": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/PublishRevocationsResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/PublishRevocationsSchemaAnoncreds" + } + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Publish pending revocations to ledger", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/registries": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevRegsCreatedSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "cred_def_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Credential definition identifier", + "example": "did:(method):3:CL:20:tag", + "required": false + }, + { + "in": "query", + "name": "state", + "type": "string", + "enum": [ + "finished", + "failed", + "action", + "wait", + "decommissioned", + "full" + ], + "description": "Revocation registry state", + "required": false + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Search for matching revocation registries that current agent created", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/registry/{rev_reg_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevRegResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Revocation Registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Get revocation registry by revocation registry id", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/registry/{rev_reg_id}/fix-revocation-entry-state": { + "put": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevRegWalletUpdatedResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Revocation Registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "required": true + }, + { + "in": "query", + "name": "apply_ledger_update", + "type": "boolean", + "description": "Apply updated accumulator transaction to ledger", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Fix revocation state in wallet and return number of updated entries", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/registry/{rev_reg_id}/issued": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevRegIssuedResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Revocation Registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Get number of credentials issued against revocation registry", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/registry/{rev_reg_id}/issued/details": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/CredRevRecordDetailsResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Revocation Registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Get details of credentials issued against revocation registry", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/registry/{rev_reg_id}/issued/indy_recs": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/CredRevIndyRecordsResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Revocation Registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Get details of revoked credentials from ledger", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/registry/{rev_reg_id}/set-state": { + "patch": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevRegResultSchemaAnoncreds" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Revocation Registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "required": true + }, + { + "in": "query", + "name": "state", + "type": "string", + "enum": [ + "finished", + "failed", + "action", + "wait", + "decommissioned", + "full" + ], + "description": "Revocation registry state to set", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Set revocation registry state manually", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/revocation/registry/{rev_reg_id}/tails-file": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevocationAnoncredsModuleResponse" + }, + "description": "tails file" + } + }, + "parameters": [ + { + "in": "path", + "name": "rev_reg_id", + "type": "string", + "pattern": "^(.+$)", + "description": "Revocation Registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "required": true + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Download tails file", + "produces": [ + "application/octet-stream" + ] + } + }, + "/anoncreds/revocation/revoke": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/RevocationAnoncredsModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/RevokeRequestSchemaAnoncreds" + } + } + ], + "tags": [ + "anoncreds - revocation" + ], + "summary": "Revoke an issued credential", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/schema": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/SchemaResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/SchemaPostRequest" + } + } + ], + "tags": [ + "anoncreds - schemas" + ], + "summary": "Create a schema on the connected datastore", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/schema/{schema_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/GetSchemaResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "schema_id", + "type": "string", + "description": "Schema identifier", + "example": "did:(method):2:schema_name:1.0", + "required": true + } + ], + "tags": [ + "anoncreds - schemas" + ], + "summary": "Retrieve an individual schemas details", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/schemas": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/GetSchemasResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "schema_issuer_id", + "type": "string", + "description": "Schema issuer identifier", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "required": false + }, + { + "in": "query", + "name": "schema_name", + "type": "string", + "description": "Schema name", + "example": "example-schema", + "required": false + }, + { + "in": "query", + "name": "schema_version", + "type": "string", + "description": "Schema version", + "example": "1.0", + "required": false + } + ], + "tags": [ + "anoncreds - schemas" + ], + "summary": "Retrieve all schema ids", + "produces": [ + "application/json" + ] + } + }, + "/anoncreds/wallet/upgrade": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/UpgradeResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "wallet_name", + "type": "string", + "description": "Name of wallet to upgrade to anoncreds", + "example": "base-wallet", + "required": true + } + ], + "tags": [ + "anoncreds - wallet upgrade" + ], + "summary": "\n Upgrade the wallet from askar to anoncreds - Be very careful with this! You \n cannot go back! See migration guide for more information.\n ", + "produces": [ + "application/json" + ] + } + }, + "/connections": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnectionList" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "alias", + "type": "string", + "description": "Alias", + "example": "Barry", + "required": false + }, + { + "in": "query", + "name": "connection_protocol", + "type": "string", + "enum": [ + "connections/1.0", + "didexchange/1.0", + "didexchange/1.1" + ], + "description": "Connection protocol used", + "example": "connections/1.0", + "required": false + }, + { + "in": "query", + "name": "invitation_key", + "type": "string", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "description": "invitation key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "required": false + }, + { + "in": "query", + "name": "invitation_msg_id", + "type": "string", + "description": "Identifier of the associated Invitation Message", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "limit", + "type": "integer", + "default": 100, + "description": "Number of results to return", + "example": 50, + "required": false + }, + { + "in": "query", + "name": "my_did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "description": "My DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "required": false + }, + { + "in": "query", + "name": "offset", + "type": "integer", + "default": 0, + "description": "Offset for pagination", + "example": 0, + "required": false + }, + { + "in": "query", + "name": "state", + "type": "string", + "enum": [ + "abandoned", + "active", + "completed", + "error", + "init", + "invitation", + "request", + "response", + "start" + ], + "description": "Connection state", + "required": false + }, + { + "in": "query", + "name": "their_did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "description": "Their DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "required": false + }, + { + "in": "query", + "name": "their_public_did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "description": "Their Public DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "required": false + }, + { + "in": "query", + "name": "their_role", + "type": "string", + "enum": [ + "invitee", + "requester", + "inviter", + "responder" + ], + "description": "Their role in the connection protocol", + "example": "invitee", + "required": false + } + ], + "tags": [ + "connection" + ], + "summary": "Query agent-to-agent connections", + "produces": [ + "application/json" + ] + } + }, + "/connections/create-invitation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/InvitationResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/CreateInvitationRequest" + } + }, + { + "in": "query", + "name": "alias", + "type": "string", + "description": "Alias", + "example": "Barry", + "required": false + }, + { + "in": "query", + "name": "auto_accept", + "type": "boolean", + "description": "Auto-accept connection (defaults to configuration)", + "required": false + }, + { + "in": "query", + "name": "multi_use", + "type": "boolean", + "description": "Create invitation for multiple use (default false)", + "required": false + }, + { + "in": "query", + "name": "public", + "type": "boolean", + "description": "Create invitation from public DID (default false)", + "required": false + } + ], + "tags": [ + "connection" + ], + "summary": "Create a new connection invitation", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/connections/create-static": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnectionStaticResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/ConnectionStaticRequest" + } + } + ], + "tags": [ + "connection" + ], + "summary": "Create a new static connection", + "produces": [ + "application/json" + ] + } + }, + "/connections/receive-invitation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/ReceiveInvitationRequest" + } + }, + { + "in": "query", + "name": "alias", + "type": "string", + "description": "Alias", + "example": "Barry", + "required": false + }, + { + "in": "query", + "name": "auto_accept", + "type": "boolean", + "description": "Auto-accept connection (defaults to configuration)", + "required": false + }, + { + "in": "query", + "name": "mediation_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Identifier for active mediation record to be used", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + } + ], + "tags": [ + "connection" + ], + "summary": "Receive a new connection invitation", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/connections/{conn_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "connection" + ], + "summary": "Fetch a single connection record", + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnectionModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "connection" + ], + "summary": "Remove an existing connection record", + "produces": [ + "application/json" + ] + } + }, + "/connections/{conn_id}/accept-invitation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "mediation_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Identifier for active mediation record to be used", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "my_endpoint", + "type": "string", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "description": "My URL endpoint", + "example": "https://myhost:8021", + "required": false + }, + { + "in": "query", + "name": "my_label", + "type": "string", + "description": "Label for connection", + "example": "Broker", + "required": false + } + ], + "tags": [ + "connection" + ], + "summary": "Accept a stored connection invitation", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/connections/{conn_id}/accept-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "my_endpoint", + "type": "string", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "description": "My URL endpoint", + "example": "https://myhost:8021", + "required": false + } + ], + "tags": [ + "connection" + ], + "summary": "Accept a stored connection request", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/connections/{conn_id}/endpoints": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/EndpointsResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "connection" + ], + "summary": "Fetch connection remote endpoint", + "produces": [ + "application/json" + ] + } + }, + "/connections/{conn_id}/metadata": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnectionMetadata" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "key", + "type": "string", + "description": "Key to retrieve.", + "required": false + } + ], + "tags": [ + "connection" + ], + "summary": "Fetch connection metadata", + "produces": [ + "application/json" + ] + }, + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnectionMetadata" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/ConnectionMetadataSetRequest" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "connection" + ], + "summary": "Set connection metadata", + "produces": [ + "application/json" + ] + } + }, + "/connections/{conn_id}/send-message": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/BasicMessageModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/SendMessage" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "basicmessage" + ], + "summary": "Send a basic message to a connection", + "produces": [ + "application/json" + ] + } + }, + "/connections/{conn_id}/send-ping": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/PingRequestResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/PingRequest" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "trustping" + ], + "summary": "Send a trust ping to a connection", + "produces": [ + "application/json" + ] + } + }, + "/connections/{conn_id}/start-introduction": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/IntroModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "target_connection_id", + "type": "string", + "description": "Target connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "message", + "type": "string", + "description": "Message", + "example": "Allow me to introduce ...", + "required": false + } + ], + "tags": [ + "introduction" + ], + "summary": "Start an introduction between two connections", + "produces": [ + "application/json" + ] + } + }, + "/credential/mime-types/{credential_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AttributeMimeTypesResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "credential_id", + "type": "string", + "description": "Credential identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "credentials" + ], + "summary": "Get attribute MIME types from wallet", + "produces": [ + "application/json" + ] + } + }, + "/credential/revoked/{credential_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/CredRevokedResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "credential_id", + "type": "string", + "description": "Credential identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "from", + "type": "string", + "pattern": "^[0-9]*$", + "description": "Earliest epoch of revocation status interval of interest", + "example": "0", + "required": false + }, + { + "in": "query", + "name": "to", + "type": "string", + "pattern": "^[0-9]*$", + "description": "Latest epoch of revocation status interval of interest", + "example": "0", + "required": false + } + ], + "tags": [ + "credentials" + ], + "summary": "Query credential revocation status by id", + "produces": [ + "application/json" + ] + } + }, + "/credential/w3c/{credential_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/VCRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "credential_id", + "type": "string", + "description": "Credential identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "credentials" + ], + "summary": "Fetch W3C credential from wallet by id", + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/HolderModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "credential_id", + "type": "string", + "description": "Credential identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "credentials" + ], + "summary": "Remove W3C credential from wallet by id", + "produces": [ + "application/json" + ] + } + }, + "/credential/{credential_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/IndyCredInfo" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "credential_id", + "type": "string", + "description": "Credential identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "credentials" + ], + "summary": "Fetch credential from wallet by id", + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/HolderModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "credential_id", + "type": "string", + "description": "Credential identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "credentials" + ], + "summary": "Remove credential from wallet by id", + "produces": [ + "application/json" + ] + } + }, + "/credentials": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/CredInfoList" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "count", + "type": "string", + "pattern": "^[1-9][0-9]*$", + "description": "Maximum number to retrieve", + "example": "1", + "required": false + }, + { + "in": "query", + "name": "start", + "type": "string", + "pattern": "^[0-9]*$", + "description": "Start index", + "example": "0", + "required": false + }, + { + "in": "query", + "name": "wql", + "type": "string", + "pattern": "^{.*}$", + "description": "(JSON) WQL query", + "example": "{\"attr::name::value\": \"Alex\"}", + "required": false + } + ], + "tags": [ + "credentials" + ], + "summary": "Fetch credentials from wallet", + "produces": [ + "application/json" + ] + } + }, + "/credentials/w3c": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/VCRecordList" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/W3CCredentialsListRequest" + } + }, + { + "in": "query", + "name": "count", + "type": "string", + "pattern": "^[1-9][0-9]*$", + "description": "Maximum number to retrieve", + "example": "1", + "required": false + }, + { + "in": "query", + "name": "start", + "type": "string", + "pattern": "^[0-9]*$", + "description": "Start index", + "example": "0", + "required": false + }, + { + "in": "query", + "name": "wql", + "type": "string", + "pattern": "^{.*}$", + "description": "(JSON) WQL query", + "example": "{\"attr::name::value\": \"Alex\"}", + "required": false + } + ], + "tags": [ + "credentials" + ], + "summary": "Fetch W3C credentials from wallet", + "produces": [ + "application/json" + ] + } + }, + "/did-rotate/{conn_id}/hangup": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/Hangup" + }, + "description": "Hangup agent message for observer" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "did-rotate" + ], + "summary": "Send hangup of DID rotation as a rotator", + "produces": [ + "application/json" + ] + } + }, + "/did-rotate/{conn_id}/rotate": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/Rotate" + }, + "description": "Rotate agent message for observer" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/DIDRotateRequestJSON" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "did-rotate" + ], + "summary": "Begin rotation of a DID as a rotator", + "produces": [ + "application/json" + ] + } + }, + "/did/cheqd/create": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/CreateResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/CreateRequest" + } + } + ], + "tags": [ + "did" + ], + "summary": "Create a did:cheqd", + "produces": [ + "application/json" + ] + } + }, + "/did/cheqd/deactivate": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/DeactivateResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/DeactivateRequest" + } + } + ], + "tags": [ + "did" + ], + "summary": "Deactivate a did:cheqd", + "produces": [ + "application/json" + ] + } + }, + "/did/cheqd/update": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/UpdateResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/UpdateRequest" + } + } + ], + "tags": [ + "did" + ], + "summary": "Update a did:cheqd", + "produces": [ + "application/json" + ] + } + }, + "/didexchange/create-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "their_public_did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "description": "Qualified public DID to which to request connection", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "required": true + }, + { + "in": "query", + "name": "alias", + "type": "string", + "description": "Alias for connection", + "example": "Barry", + "required": false + }, + { + "in": "query", + "name": "auto_accept", + "type": "boolean", + "description": "Auto-accept connection (defaults to configuration)", + "required": false + }, + { + "in": "query", + "name": "goal", + "type": "string", + "description": "A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message", + "example": "To issue a Faber College Graduate credential", + "required": false + }, + { + "in": "query", + "name": "goal_code", + "type": "string", + "description": "A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message", + "example": "issue-vc", + "required": false + }, + { + "in": "query", + "name": "mediation_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Identifier for active mediation record to be used", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "my_endpoint", + "type": "string", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "description": "My URL endpoint", + "example": "https://myhost:8021", + "required": false + }, + { + "in": "query", + "name": "my_label", + "type": "string", + "description": "Label for connection request", + "example": "Broker", + "required": false + }, + { + "in": "query", + "name": "protocol", + "type": "string", + "enum": [ + "didexchange/1.0", + "didexchange/1.1" + ], + "description": "Which DID Exchange Protocol version to use", + "example": "didexchange/1.0", + "required": false + }, + { + "in": "query", + "name": "use_did", + "type": "string", + "description": "The DID to use to for this connection", + "example": "did:example:1234", + "required": false + }, + { + "in": "query", + "name": "use_did_method", + "type": "string", + "enum": [ + "did:peer:2", + "did:peer:4" + ], + "description": "The DID method to use to generate a DID for this connection", + "example": "did:peer:4", + "required": false + }, + { + "in": "query", + "name": "use_public_did", + "type": "boolean", + "description": "Use public DID for this connection", + "required": false + } + ], + "tags": [ + "did-exchange" + ], + "summary": "Create and send a request against public DID's implicit invitation", + "produces": [ + "application/json" + ] + } + }, + "/didexchange/receive-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/DIDXRequest" + } + }, + { + "in": "query", + "name": "alias", + "type": "string", + "description": "Alias for connection", + "example": "Barry", + "required": false + }, + { + "in": "query", + "name": "auto_accept", + "type": "boolean", + "description": "Auto-accept connection (defaults to configuration)", + "required": false + }, + { + "in": "query", + "name": "mediation_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Identifier for active mediation record to be used", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "my_endpoint", + "type": "string", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "description": "My URL endpoint", + "example": "https://myhost:8021", + "required": false + } + ], + "tags": [ + "did-exchange" + ], + "summary": "Receive request against public DID's implicit invitation", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/didexchange/{conn_id}/accept-invitation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "my_endpoint", + "type": "string", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "description": "My URL endpoint", + "example": "https://myhost:8021", + "required": false + }, + { + "in": "query", + "name": "my_label", + "type": "string", + "description": "Label for connection request", + "example": "Broker", + "required": false + }, + { + "in": "query", + "name": "use_did", + "type": "string", + "description": "The DID to use to for this connection", + "example": "did:example:1234", + "required": false + }, + { + "in": "query", + "name": "use_did_method", + "type": "string", + "enum": [ + "did:peer:2", + "did:peer:4" + ], + "description": "The DID method to use to generate a DID for this connection", + "example": "did:peer:4", + "required": false + } + ], + "tags": [ + "did-exchange" + ], + "summary": "Accept a stored connection invitation", + "produces": [ + "application/json" + ] + } + }, + "/didexchange/{conn_id}/accept-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "mediation_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Identifier for active mediation record to be used", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "my_endpoint", + "type": "string", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "description": "My URL endpoint", + "example": "https://myhost:8021", + "required": false + }, + { + "in": "query", + "name": "use_public_did", + "type": "boolean", + "description": "Use public DID for this connection", + "required": false + } + ], + "tags": [ + "did-exchange" + ], + "summary": "Accept a stored connection request", + "produces": [ + "application/json" + ] + } + }, + "/didexchange/{conn_id}/reject": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConnRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/DIDXRejectRequest" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "did-exchange" + ], + "summary": "Abandon or reject a DID Exchange", + "produces": [ + "application/json" + ] + } + }, + "/discover-features-2.0/queries": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20DiscoveryExchangeResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "connection_id", + "type": "string", + "description": "Connection identifier, if none specified, then the query will provide features for this agent.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "query_goal_code", + "type": "string", + "description": "Goal-code feature-type query", + "example": "*", + "required": false + }, + { + "in": "query", + "name": "query_protocol", + "type": "string", + "description": "Protocol feature-type query", + "example": "*", + "required": false + } + ], + "tags": [ + "discover-features v2.0" + ], + "summary": "Query supported features", + "produces": [ + "application/json" + ] + } + }, + "/discover-features-2.0/records": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20DiscoveryExchangeListResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "connection_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + } + ], + "tags": [ + "discover-features v2.0" + ], + "summary": "Discover Features v2.0 records", + "produces": [ + "application/json" + ] + } + }, + "/discover-features/query": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10DiscoveryRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "comment", + "type": "string", + "description": "Comment", + "example": "test", + "required": false + }, + { + "in": "query", + "name": "connection_id", + "type": "string", + "description": "Connection identifier, if none specified, then the query will provide features for this agent.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "query", + "type": "string", + "description": "Protocol feature query", + "example": "*", + "required": false + } + ], + "tags": [ + "discover-features" + ], + "summary": "Query supported features", + "produces": [ + "application/json" + ] + } + }, + "/discover-features/records": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10DiscoveryExchangeListResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "connection_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + } + ], + "tags": [ + "discover-features" + ], + "summary": "Discover Features records", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/create": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20IssueCredSchemaCore" + } + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Create a credential record without sending (generally for use with Out-Of-Band)", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/create-offer": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredOfferConnFreeRequest" + } + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Create a credential offer, independent of any proposal or connection", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/records": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecordListResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "connection_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "limit", + "type": "integer", + "default": 100, + "description": "Number of results to return", + "example": 50, + "required": false + }, + { + "in": "query", + "name": "offset", + "type": "integer", + "default": 0, + "description": "Offset for pagination", + "example": 0, + "required": false + }, + { + "in": "query", + "name": "role", + "type": "string", + "enum": [ + "issuer", + "holder" + ], + "description": "Role assigned in credential exchange", + "required": false + }, + { + "in": "query", + "name": "state", + "type": "string", + "enum": [ + "proposal-sent", + "proposal-received", + "offer-sent", + "offer-received", + "request-sent", + "request-received", + "credential-issued", + "credential-received", + "done", + "credential-revoked", + "abandoned" + ], + "description": "Credential exchange state", + "required": false + }, + { + "in": "query", + "name": "thread_id", + "type": "string", + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Fetch all credential exchange records", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/records/{cred_ex_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecordDetail" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Fetch a single credential exchange record", + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20IssueCredentialModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Remove an existing credential exchange record", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/records/{cred_ex_id}/issue": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecordDetail" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredIssueRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Send holder a credential", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/records/{cred_ex_id}/problem-report": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20IssueCredentialModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredIssueProblemReportRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Send a problem report for credential exchange", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/records/{cred_ex_id}/send-offer": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredBoundOfferRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Send holder a credential offer in reference to a proposal with preview", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/records/{cred_ex_id}/send-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredRequestRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Send issuer a credential request", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/records/{cred_ex_id}/store": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecordDetail" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredStoreRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Store a received credential", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/send": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredExFree" + } + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Send holder a credential, automating entire flow", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/send-offer": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredOfferRequest" + } + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Send holder a credential offer, independent of any proposal", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/send-proposal": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredExFree" + } + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Send issuer a credential proposal", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential-2.0/send-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20CredExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20CredRequestFree" + } + } + ], + "tags": [ + "issue-credential v2.0" + ], + "summary": "Send issuer a credential request not bound to an existing thread. Indy credentials cannot start at a request", + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/create": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialCreate" + } + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Create a credential record without sending (generally for use with Out-Of-Band)", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/create-offer": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialConnFreeOfferRequest" + } + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Create a credential offer, independent of any proposal or connection", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/records": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchangeListResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "connection_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "limit", + "type": "integer", + "default": 100, + "description": "Number of results to return", + "example": 50, + "required": false + }, + { + "in": "query", + "name": "offset", + "type": "integer", + "default": 0, + "description": "Offset for pagination", + "example": 0, + "required": false + }, + { + "in": "query", + "name": "role", + "type": "string", + "enum": [ + "issuer", + "holder" + ], + "description": "Role assigned in credential exchange", + "required": false + }, + { + "in": "query", + "name": "state", + "type": "string", + "enum": [ + "proposal_sent", + "proposal_received", + "offer_sent", + "offer_received", + "request_sent", + "request_received", + "credential_issued", + "credential_received", + "credential_acked", + "credential_revoked", + "abandoned" + ], + "description": "Credential exchange state", + "required": false + }, + { + "in": "query", + "name": "thread_id", + "type": "string", + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Fetch all credential exchange records", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/records/{cred_ex_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Fetch a single credential exchange record", + "deprecated": true, + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/IssueCredentialModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Remove an existing credential exchange record", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/records/{cred_ex_id}/issue": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialIssueRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Send holder a credential", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/records/{cred_ex_id}/problem-report": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/IssueCredentialModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialProblemReportRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Send a problem report for credential exchange", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/records/{cred_ex_id}/send-offer": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialBoundOfferRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Send holder a credential offer in reference to a proposal with preview", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/records/{cred_ex_id}/send-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialExchangeAutoRemoveRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Send issuer a credential request", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/records/{cred_ex_id}/store": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialStoreRequest" + } + }, + { + "in": "path", + "name": "cred_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Store a received credential", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/send": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialProposalRequestMand" + } + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Send holder a credential, automating entire flow", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/send-offer": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialFreeOfferRequest" + } + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Send holder a credential offer, independent of any proposal", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/issue-credential/send-proposal": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10CredentialProposalRequestOpt" + } + } + ], + "tags": [ + "issue-credential v1.0" + ], + "summary": "Send issuer a credential proposal", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/jsonld/sign": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/SignResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/SignRequest" + } + } + ], + "tags": [ + "jsonld" + ], + "summary": "Sign a JSON-LD structure and return it", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/jsonld/verify": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/VerifyResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/VerifyRequest" + } + } + ], + "tags": [ + "jsonld" + ], + "summary": "Verify a JSON-LD structure.", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/ledger/config": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/LedgerConfigList" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "ledger" + ], + "summary": "Fetch the multiple ledger configuration currently in use", + "produces": [ + "application/json" + ] + } + }, + "/ledger/did-endpoint": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/GetDIDEndpointResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "description": "DID of interest", + "example": "WgWxqztrNooG92RXvxSTWv", + "required": true + }, + { + "in": "query", + "name": "endpoint_type", + "type": "string", + "enum": [ + "Endpoint", + "Profile", + "LinkedDomains" + ], + "description": "Endpoint type of interest (default 'Endpoint')", + "example": "Endpoint", + "required": false + } + ], + "tags": [ + "ledger" + ], + "summary": "Get the endpoint for a DID from the ledger.", + "produces": [ + "application/json" + ] + } + }, + "/ledger/did-verkey": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/GetDIDVerkeyResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "description": "DID of interest", + "example": "WgWxqztrNooG92RXvxSTWv", + "required": true + } + ], + "tags": [ + "ledger" + ], + "summary": "Get the verkey for a DID from the ledger.", + "produces": [ + "application/json" + ] + } + }, + "/ledger/get-nym-role": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/GetNymRoleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "description": "DID of interest", + "example": "WgWxqztrNooG92RXvxSTWv", + "required": true + } + ], + "tags": [ + "ledger" + ], + "summary": "Get the role from the NYM registration of a public DID.", + "produces": [ + "application/json" + ] + } + }, + "/ledger/get-write-ledger": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/WriteLedger" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "ledger" + ], + "summary": "Fetch the current write ledger", + "produces": [ + "application/json" + ] + } + }, + "/ledger/get-write-ledgers": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ConfigurableWriteLedgers" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "ledger" + ], + "summary": "Fetch list of available write ledgers", + "produces": [ + "application/json" + ] + } + }, + "/ledger/register-nym": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TxnOrRegisterLedgerNymResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "description": "DID to register", + "example": "WgWxqztrNooG92RXvxSTWv", + "required": true + }, + { + "in": "query", + "name": "verkey", + "type": "string", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "description": "Verification key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "required": true + }, + { + "in": "query", + "name": "alias", + "type": "string", + "description": "Alias", + "example": "Barry", + "required": false + }, + { + "in": "query", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "create_transaction_for_endorser", + "type": "boolean", + "description": "Create Transaction For Endorser's signature", + "required": false + }, + { + "in": "query", + "name": "role", + "type": "string", + "enum": [ + "STEWARD", + "TRUSTEE", + "ENDORSER", + "NETWORK_MONITOR", + "reset" + ], + "description": "Role", + "required": false + } + ], + "tags": [ + "ledger" + ], + "summary": "Send a NYM registration to the ledger.", + "produces": [ + "application/json" + ] + } + }, + "/ledger/rotate-public-did-keypair": { + "patch": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/LedgerModulesResult" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "ledger" + ], + "summary": "Rotate key pair for public DID.", + "produces": [ + "application/json" + ] + } + }, + "/ledger/taa": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TAAResult" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "ledger" + ], + "summary": "Fetch the current transaction author agreement, if any", + "produces": [ + "application/json" + ] + } + }, + "/ledger/taa/accept": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/LedgerModulesResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/TAAAccept" + } + } + ], + "tags": [ + "ledger" + ], + "summary": "Accept the transaction author agreement", + "produces": [ + "application/json" + ] + } + }, + "/ledger/{ledger_id}/set-write-ledger": { + "put": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/WriteLedger" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "ledger_id", + "type": "string", + "required": true + } + ], + "tags": [ + "ledger" + ], + "summary": "Set write ledger", + "produces": [ + "application/json" + ] + } + }, + "/mediation/default-mediator": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/MediationRecord" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "mediation" + ], + "summary": "Get default mediator", + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "201": { + "schema": { + "$ref": "#/definitions/MediationRecord" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "mediation" + ], + "summary": "Clear default mediator", + "produces": [ + "application/json" + ] + } + }, + "/mediation/keylists": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/Keylist" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "conn_id", + "type": "string", + "description": "Connection identifier (optional)", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "role", + "type": "string", + "default": "server", + "enum": [ + "client", + "server" + ], + "description": "Filer on role, 'client' for keys mediated by other agents, 'server' for keys mediated by this agent", + "required": false + } + ], + "tags": [ + "mediation" + ], + "summary": "Retrieve keylists by connection or role", + "produces": [ + "application/json" + ] + } + }, + "/mediation/keylists/{mediation_id}/send-keylist-query": { + "post": { + "responses": { + "201": { + "schema": { + "$ref": "#/definitions/KeylistQuery" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/KeylistQueryFilterRequest" + } + }, + { + "in": "path", + "name": "mediation_id", + "type": "string", + "description": "Mediation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "paginate_limit", + "type": "integer", + "default": -1, + "description": "limit number of results", + "required": false + }, + { + "in": "query", + "name": "paginate_offset", + "type": "integer", + "default": 0, + "description": "offset to use in pagination", + "required": false + } + ], + "tags": [ + "mediation" + ], + "summary": "Send keylist query to mediator", + "produces": [ + "application/json" + ] + } + }, + "/mediation/keylists/{mediation_id}/send-keylist-update": { + "post": { + "responses": { + "201": { + "schema": { + "$ref": "#/definitions/KeylistUpdate" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/KeylistUpdateRequest" + } + }, + { + "in": "path", + "name": "mediation_id", + "type": "string", + "description": "Mediation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "mediation" + ], + "summary": "Send keylist update to mediator", + "produces": [ + "application/json" + ] + } + }, + "/mediation/request/{conn_id}": { + "post": { + "responses": { + "201": { + "schema": { + "$ref": "#/definitions/MediationRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/MediationCreateRequest" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "mediation" + ], + "summary": "Request mediation from connection", + "produces": [ + "application/json" + ] + } + }, + "/mediation/requests": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/MediationList" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "conn_id", + "type": "string", + "description": "Connection identifier (optional)", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "state", + "type": "string", + "enum": [ + "request", + "granted", + "denied" + ], + "description": "Mediation state (optional)", + "example": "granted", + "required": false + } + ], + "tags": [ + "mediation" + ], + "summary": "Query mediation requests, returns list of all mediation records", + "produces": [ + "application/json" + ] + } + }, + "/mediation/requests/{mediation_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/MediationRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "mediation_id", + "type": "string", + "description": "Mediation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "mediation" + ], + "summary": "Retrieve mediation request record", + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/MediationRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "mediation_id", + "type": "string", + "description": "Mediation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "mediation" + ], + "summary": "Delete mediation request by ID", + "produces": [ + "application/json" + ] + } + }, + "/mediation/requests/{mediation_id}/deny": { + "post": { + "responses": { + "201": { + "schema": { + "$ref": "#/definitions/MediationDeny" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/AdminMediationDeny" + } + }, + { + "in": "path", + "name": "mediation_id", + "type": "string", + "description": "Mediation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "mediation" + ], + "summary": "Deny a stored mediation request", + "produces": [ + "application/json" + ] + } + }, + "/mediation/requests/{mediation_id}/grant": { + "post": { + "responses": { + "201": { + "schema": { + "$ref": "#/definitions/MediationGrant" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "mediation_id", + "type": "string", + "description": "Mediation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "mediation" + ], + "summary": "Grant received mediation", + "produces": [ + "application/json" + ] + } + }, + "/mediation/update-keylist/{conn_id}": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/KeylistUpdate" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/MediationIdMatchInfo" + } + }, + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "mediation" + ], + "summary": "Update keylist for a connection", + "produces": [ + "application/json" + ] + } + }, + "/mediation/{mediation_id}/default-mediator": { + "put": { + "responses": { + "201": { + "schema": { + "$ref": "#/definitions/MediationRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "mediation_id", + "type": "string", + "description": "Mediation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "mediation" + ], + "summary": "Set default mediator", + "produces": [ + "application/json" + ] + } + }, + "/out-of-band/create-invitation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/InvitationRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/InvitationCreateRequest" + } + }, + { + "in": "query", + "name": "auto_accept", + "type": "boolean", + "description": "Auto-accept connection (defaults to configuration)", + "required": false + }, + { + "in": "query", + "name": "create_unique_did", + "type": "boolean", + "description": "Create unique DID for this invitation (default false)", + "required": false + }, + { + "in": "query", + "name": "multi_use", + "type": "boolean", + "description": "Create invitation for multiple use (default false)", + "required": false + } + ], + "tags": [ + "out-of-band" + ], + "summary": "Create a new connection invitation", + "produces": [ + "application/json" + ] + } + }, + "/out-of-band/invitations/{invi_msg_id}": { + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/InvitationRecordResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "invi_msg_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Invitation Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "out-of-band" + ], + "summary": "Delete records associated with invitation", + "produces": [ + "application/json" + ] + } + }, + "/out-of-band/receive-invitation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/OobRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/InvitationMessage" + } + }, + { + "in": "query", + "name": "alias", + "type": "string", + "description": "Alias for connection", + "example": "Barry", + "required": false + }, + { + "in": "query", + "name": "auto_accept", + "type": "boolean", + "description": "Auto-accept connection (defaults to configuration)", + "required": false + }, + { + "in": "query", + "name": "mediation_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Identifier for active mediation record to be used", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "use_existing_connection", + "type": "boolean", + "description": "Use an existing connection, if possible", + "required": false + } + ], + "tags": [ + "out-of-band" + ], + "summary": "Receive a new connection invitation", + "produces": [ + "application/json" + ] + } + }, + "/plugins": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AdminModules" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "server" + ], + "summary": "Fetch the list of loaded plugins", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/create-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20PresCreateRequestRequest" + } + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Creates a presentation request not bound to any proposal or connection", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/records": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresExRecordList" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "connection_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "limit", + "type": "integer", + "default": 100, + "description": "Number of results to return", + "example": 50, + "required": false + }, + { + "in": "query", + "name": "offset", + "type": "integer", + "default": 0, + "description": "Offset for pagination", + "example": 0, + "required": false + }, + { + "in": "query", + "name": "role", + "type": "string", + "enum": [ + "prover", + "verifier" + ], + "description": "Role assigned in presentation exchange", + "required": false + }, + { + "in": "query", + "name": "state", + "type": "string", + "enum": [ + "proposal-sent", + "proposal-received", + "request-sent", + "request-received", + "presentation-sent", + "presentation-received", + "done", + "abandoned" + ], + "description": "Presentation exchange state", + "required": false + }, + { + "in": "query", + "name": "thread_id", + "type": "string", + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Fetch all present-proof exchange records", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/records/{pres_ex_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Fetch a single presentation exchange record", + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresentProofModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Remove an existing presentation exchange record", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/records/{pres_ex_id}/credentials": { + "get": { + "responses": { + "200": { + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/IndyCredPrecis" + } + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "count", + "type": "string", + "pattern": "^[1-9][0-9]*$", + "description": "Maximum number to retrieve", + "example": "1", + "required": false + }, + { + "in": "query", + "name": "extra_query", + "type": "string", + "pattern": "^{\\s*\".*?\"\\s*:\\s*{.*?}\\s*(,\\s*\".*?\"\\s*:\\s*{.*?}\\s*)*\\s*}$", + "description": "(JSON) object mapping referents to extra WQL queries", + "example": "{\"0_drink_uuid\": {\"attr::drink::value\": \"martini\"}}", + "required": false + }, + { + "in": "query", + "name": "referent", + "type": "string", + "description": "Proof request referents of interest, comma-separated", + "example": "1_name_uuid,2_score_uuid", + "required": false + }, + { + "in": "query", + "name": "start", + "type": "string", + "pattern": "^[0-9]*$", + "description": "Start index", + "example": "0", + "required": false + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Fetch credentials from wallet for presentation request", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/records/{pres_ex_id}/problem-report": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresentProofModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20PresProblemReportRequest" + } + }, + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Send a problem report for presentation exchange", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/records/{pres_ex_id}/send-presentation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20PresSpecByFormatRequest" + } + }, + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Sends a proof presentation", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/records/{pres_ex_id}/send-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20PresentationSendRequestToProposal" + } + }, + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Sends a presentation request in reference to a proposal", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/records/{pres_ex_id}/verify-presentation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Verify a received presentation", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/send-proposal": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20PresProposalRequest" + } + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Sends a presentation proposal", + "produces": [ + "application/json" + ] + } + }, + "/present-proof-2.0/send-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V20PresExRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V20PresSendRequestRequest" + } + } + ], + "tags": [ + "present-proof v2.0" + ], + "summary": "Sends a free presentation request not bound to any proposal", + "produces": [ + "application/json" + ] + } + }, + "/present-proof/create-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentationExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10PresentationCreateRequestRequest" + } + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Creates a presentation request not bound to any proposal or connection", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/records": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentationExchangeList" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "connection_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + }, + { + "in": "query", + "name": "limit", + "type": "integer", + "default": 100, + "description": "Number of results to return", + "example": 50, + "required": false + }, + { + "in": "query", + "name": "offset", + "type": "integer", + "default": 0, + "description": "Offset for pagination", + "example": 0, + "required": false + }, + { + "in": "query", + "name": "role", + "type": "string", + "enum": [ + "prover", + "verifier" + ], + "description": "Role assigned in presentation exchange", + "required": false + }, + { + "in": "query", + "name": "state", + "type": "string", + "enum": [ + "proposal_sent", + "proposal_received", + "request_sent", + "request_received", + "presentation_sent", + "presentation_received", + "verified", + "presentation_acked", + "abandoned" + ], + "description": "Presentation exchange state", + "required": false + }, + { + "in": "query", + "name": "thread_id", + "type": "string", + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Fetch all present-proof exchange records", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/records/{pres_ex_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentationExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Fetch a single presentation exchange record", + "deprecated": true, + "produces": [ + "application/json" + ] + }, + "delete": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentProofModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Remove an existing presentation exchange record", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/records/{pres_ex_id}/credentials": { + "get": { + "responses": { + "200": { + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/IndyCredPrecis" + } + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "count", + "type": "string", + "pattern": "^[1-9][0-9]*$", + "description": "Maximum number to retrieve", + "example": "1", + "required": false + }, + { + "in": "query", + "name": "extra_query", + "type": "string", + "pattern": "^{\\s*\".*?\"\\s*:\\s*{.*?}\\s*(,\\s*\".*?\"\\s*:\\s*{.*?}\\s*)*\\s*}$", + "description": "(JSON) object mapping referents to extra WQL queries", + "example": "{\"0_drink_uuid\": {\"attr::drink::value\": \"martini\"}}", + "required": false + }, + { + "in": "query", + "name": "referent", + "type": "string", + "description": "Proof request referents of interest, comma-separated", + "example": "1_name_uuid,2_score_uuid", + "required": false + }, + { + "in": "query", + "name": "start", + "type": "string", + "pattern": "^[0-9]*$", + "description": "Start index", + "example": "0", + "required": false + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Fetch credentials for a presentation request from wallet", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/records/{pres_ex_id}/problem-report": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentProofModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10PresentationProblemReportRequest" + } + }, + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Send a problem report for presentation exchange", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/records/{pres_ex_id}/send-presentation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentationExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10PresentationSendRequest" + } + }, + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Sends a proof presentation", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/records/{pres_ex_id}/send-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentationExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10PresentationSendRequestToProposal" + } + }, + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Sends a presentation request in reference to a proposal", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/records/{pres_ex_id}/verify-presentation": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentationExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "pres_ex_id", + "type": "string", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Verify a received presentation", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/send-proposal": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentationExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10PresentationProposalRequest" + } + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Sends a presentation proposal", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/present-proof/send-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/V10PresentationExchange" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/V10PresentationSendRequestRequest" + } + } + ], + "tags": [ + "present-proof v1.0" + ], + "summary": "Sends a free presentation request not bound to any proposal", + "deprecated": true, + "produces": [ + "application/json" + ] + } + }, + "/resolver/resolve/{did}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ResolutionResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "did", + "type": "string", + "pattern": "^did:([a-z0-9]+):((?:[a-zA-Z0-9._%-]*:)*[a-zA-Z0-9._%-]+)$", + "description": "DID", + "example": "did:ted:WgWxqztrNooG92RXvxSTWv", + "required": true + } + ], + "tags": [ + "resolver" + ], + "summary": "Retrieve doc for requested did", + "produces": [ + "application/json" + ] + } + }, + "/settings": { + "put": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ProfileSettings" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/UpdateProfileSettings" + } + } + ], + "tags": [ + "settings" + ], + "summary": "Update configurable settings associated with the profile.", + "produces": [ + "application/json" + ] + }, + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ProfileSettings" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "settings" + ], + "summary": "Get the configurable settings associated with the profile.", + "produces": [ + "application/json" + ] + } + }, + "/shutdown": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AdminShutdown" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "server" + ], + "summary": "Shut down server", + "produces": [ + "application/json" + ] + } + }, + "/status": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AdminStatus" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "server" + ], + "summary": "Fetch the server status", + "produces": [ + "application/json" + ] + } + }, + "/status/config": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AdminConfig" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "server" + ], + "summary": "Fetch the server configuration", + "produces": [ + "application/json" + ] + } + }, + "/status/live": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AdminStatusLiveliness" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "server" + ], + "summary": "Liveliness check", + "produces": [ + "application/json" + ] + } + }, + "/status/ready": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AdminStatusReadiness" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "server" + ], + "summary": "Readiness check", + "produces": [ + "application/json" + ] + } + }, + "/status/reset": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AdminReset" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "server" + ], + "summary": "Reset statistics", + "produces": [ + "application/json" + ] + } + }, + "/transaction/{tran_id}/resend": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "tran_id", + "type": "string", + "description": "Transaction identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "For Author to resend a particular transaction request", + "produces": [ + "application/json" + ] + } + }, + "/transactions": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionList" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "endorse-transaction" + ], + "summary": "Query transactions", + "produces": [ + "application/json" + ] + } + }, + "/transactions/create-request": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/Date" + } + }, + { + "in": "query", + "name": "tran_id", + "type": "string", + "description": "Transaction identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "For author to send a transaction request", + "produces": [ + "application/json" + ] + } + }, + "/transactions/{conn_id}/set-endorser-info": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/EndorserInfo" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "endorser_did", + "type": "string", + "description": "Endorser DID", + "required": true + }, + { + "in": "query", + "name": "endorser_name", + "type": "string", + "description": "Endorser Name", + "required": false + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "Set Endorser Info", + "produces": [ + "application/json" + ] + } + }, + "/transactions/{conn_id}/set-endorser-role": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionJobs" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "transaction_my_job", + "type": "string", + "enum": [ + "TRANSACTION_AUTHOR", + "TRANSACTION_ENDORSER", + "reset" + ], + "description": "Transaction related jobs", + "required": false + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "Set transaction jobs", + "produces": [ + "application/json" + ] + } + }, + "/transactions/{tran_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "tran_id", + "type": "string", + "description": "Transaction identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "Fetch a single transaction record", + "produces": [ + "application/json" + ] + } + }, + "/transactions/{tran_id}/cancel": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "tran_id", + "type": "string", + "description": "Transaction identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "For Author to cancel a particular transaction request", + "produces": [ + "application/json" + ] + } + }, + "/transactions/{tran_id}/endorse": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "tran_id", + "type": "string", + "description": "Transaction identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + }, + { + "in": "query", + "name": "endorser_did", + "type": "string", + "description": "Endorser DID", + "required": false + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "For Endorser to endorse a particular transaction record", + "produces": [ + "application/json" + ] + } + }, + "/transactions/{tran_id}/refuse": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "tran_id", + "type": "string", + "description": "Transaction identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "For Endorser to refuse a particular transaction record", + "produces": [ + "application/json" + ] + } + }, + "/transactions/{tran_id}/write": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/TransactionRecord" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "tran_id", + "type": "string", + "description": "Transaction identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": true + } + ], + "tags": [ + "endorse-transaction" + ], + "summary": "For Author / Endorser to write an endorsed transaction to the ledger", + "produces": [ + "application/json" + ] + } + }, + "/vc/credentials": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ListCredentialsResponse" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "vc-api" + ], + "summary": "List credentials", + "produces": [ + "application/json" + ] + } + }, + "/vc/credentials/issue": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/IssueCredentialResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/IssueCredentialRequest" + } + } + ], + "tags": [ + "vc-api" + ], + "summary": "Issue a credential", + "produces": [ + "application/json" + ] + } + }, + "/vc/credentials/store": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/StoreCredentialResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/StoreCredentialRequest" + } + } + ], + "tags": [ + "vc-api" + ], + "summary": "Store a credential", + "produces": [ + "application/json" + ] + } + }, + "/vc/credentials/verify": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/VerifyCredentialResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/VerifyCredentialRequest" + } + } + ], + "tags": [ + "vc-api" + ], + "summary": "Verify a credential", + "produces": [ + "application/json" + ] + } + }, + "/vc/credentials/{credential_id}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/FetchCredentialResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "credential_id", + "required": true, + "type": "string" + } + ], + "tags": [ + "vc-api" + ], + "summary": "Fetch credential by ID", + "produces": [ + "application/json" + ] + } + }, + "/vc/di/add-proof": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/AddProofResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/AddProof" + } + } + ], + "tags": [ + "vc" + ], + "summary": "Add a DataIntegrityProof to a document.", + "produces": [ + "application/json" + ] + } + }, + "/vc/di/verify": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/VerifyDiResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/VerifyDiRequest" + } + } + ], + "tags": [ + "vc" + ], + "summary": "Verify a document secured with a data integrity proof.", + "produces": [ + "application/json" + ] + } + }, + "/vc/presentations/prove": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/ProvePresentationResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/ProvePresentationRequest" + } + } + ], + "tags": [ + "vc-api" + ], + "summary": "Prove a presentation", + "produces": [ + "application/json" + ] + } + }, + "/vc/presentations/verify": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/VerifyPresentationResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/VerifyPresentationRequest" + } + } + ], + "tags": [ + "vc-api" + ], + "summary": "Verify a Presentation", + "produces": [ + "application/json" + ] + } + }, + "/wallet/did": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/DIDList" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "description": "DID of interest", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "required": false + }, + { + "in": "query", + "name": "key_type", + "type": "string", + "enum": [ + "ed25519", + "bls12381g2" + ], + "example": "ed25519", + "description": "Key type to query for.", + "required": false + }, + { + "in": "query", + "name": "method", + "type": "string", + "example": "key", + "description": "DID method to query for. e.g. sov to only fetch indy/sov DIDs", + "required": false + }, + { + "in": "query", + "name": "posture", + "type": "string", + "enum": [ + "public", + "posted", + "wallet_only" + ], + "description": "Whether DID is current public DID, posted to ledger but current public DID, or local to the wallet", + "example": "wallet_only", + "required": false + }, + { + "in": "query", + "name": "verkey", + "type": "string", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "description": "Verification key of interest", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "required": false + } + ], + "tags": [ + "wallet" + ], + "summary": "List wallet DIDs", + "produces": [ + "application/json" + ] + } + }, + "/wallet/did/create": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/DIDResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/DIDCreate" + } + } + ], + "tags": [ + "wallet" + ], + "summary": "Create a local DID", + "produces": [ + "application/json" + ] + } + }, + "/wallet/did/local/rotate-keypair": { + "patch": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/WalletModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "description": "DID of interest", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "required": true + } + ], + "tags": [ + "wallet" + ], + "summary": "Rotate keypair for a DID not posted to the ledger", + "produces": [ + "application/json" + ] + } + }, + "/wallet/did/public": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/DIDResult" + }, + "description": "" + } + }, + "parameters": [], + "tags": [ + "wallet" + ], + "summary": "Fetch the current public DID", + "produces": [ + "application/json" + ] + }, + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/DIDResult" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "description": "DID of interest", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "required": true + }, + { + "in": "query", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "required": false + }, + { + "in": "query", + "name": "create_transaction_for_endorser", + "type": "boolean", + "description": "Create Transaction For Endorser's signature", + "required": false + }, + { + "in": "query", + "name": "mediation_id", + "type": "string", + "description": "Mediation identifier", + "required": false + } + ], + "tags": [ + "wallet" + ], + "summary": "Assign the current public DID", + "produces": [ + "application/json" + ] + } + }, + "/wallet/get-did-endpoint": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/DIDEndpoint" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "query", + "name": "did", + "type": "string", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "description": "DID of interest", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "required": true + } + ], + "tags": [ + "wallet" + ], + "summary": "Query DID endpoint in wallet", + "produces": [ + "application/json" + ] + } + }, + "/wallet/jwt/sign": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/WalletModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/JWSCreate" + } + } + ], + "tags": [ + "wallet" + ], + "summary": "Create a EdDSA jws using did keys with a given payload", + "produces": [ + "application/json" + ] + } + }, + "/wallet/jwt/verify": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/JWSVerifyResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/JWSVerify" + } + } + ], + "tags": [ + "wallet" + ], + "summary": "Verify a EdDSA jws using did keys with a given JWS", + "produces": [ + "application/json" + ] + } + }, + "/wallet/keys": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/CreateKeyResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/CreateKeyRequest" + } + } + ], + "tags": [ + "wallet" + ], + "summary": "Create a key pair", + "produces": [ + "application/json" + ] + }, + "put": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/UpdateKeyResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/UpdateKeyRequest" + } + } + ], + "tags": [ + "wallet" + ], + "summary": "Update a key pair's kid", + "produces": [ + "application/json" + ] + } + }, + "/wallet/keys/{multikey}": { + "get": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/FetchKeyResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "path", + "name": "multikey", + "required": true, + "type": "string" + } + ], + "tags": [ + "wallet" + ], + "summary": "Fetch key info.", + "produces": [ + "application/json" + ] + } + }, + "/wallet/sd-jwt/sign": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/WalletModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/SDJWSCreate" + } + } + ], + "tags": [ + "wallet" + ], + "summary": "Create a EdDSA sd-jws using did keys with a given payload", + "produces": [ + "application/json" + ] + } + }, + "/wallet/sd-jwt/verify": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/SDJWSVerifyResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/SDJWSVerify" + } + } + ], + "tags": [ + "wallet" + ], + "summary": "Verify a EdDSA sd-jws using did keys with a given SD-JWS with optional key binding", + "produces": [ + "application/json" + ] + } + }, + "/wallet/set-did-endpoint": { + "post": { + "responses": { + "200": { + "schema": { + "$ref": "#/definitions/WalletModuleResponse" + }, + "description": "" + } + }, + "parameters": [ + { + "in": "body", + "required": false, + "name": "body", + "schema": { + "$ref": "#/definitions/DIDEndpointWithType" + } + }, + { + "in": "query", + "name": "conn_id", + "type": "string", + "description": "Connection identifier", + "required": false + }, + { + "in": "query", + "name": "create_transaction_for_endorser", + "type": "boolean", + "description": "Create Transaction For Endorser's signature", + "required": false + } + ], + "tags": [ + "wallet" + ], + "summary": "Update endpoint in wallet and on ledger if posted to it", + "produces": [ + "application/json" + ] + } + } + }, + "info": { + "title": "cheqd", + "version": "v1.1.1" + }, + "swagger": "2.0", + "definitions": { + "AMLRecord": { + "properties": { + "aml": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "amlContext": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "ActionMenuFetchResult": { + "properties": { + "result": { + "allOf": [ + { + "$ref": "#/definitions/Menu" + } + ], + "description": "Action menu" + } + }, + "type": "object" + }, + "ActionMenuModulesResult": { + "properties": {}, + "type": "object" + }, + "AddProof": { + "properties": { + "document": { + "example": { + "hello": "world" + }, + "type": "object" + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/DataIntegrityProofOptions" + } + ], + "example": { + "cryptosuite": "eddsa-jcs-2022", + "proofPurpose": "assertionMethod", + "type": "DataIntegrityProof", + "verificationMethod": "did:web:example.com#key-01" + } + } + }, + "required": [ + "document" + ], + "type": "object" + }, + "AddProofResponse": { + "properties": { + "secured_document": { + "example": { + "hello": "world" + }, + "type": "object" + } + }, + "required": [ + "secured_document" + ], + "type": "object" + }, + "AdminConfig": { + "properties": { + "config": { + "description": "Configuration settings", + "type": "object" + } + }, + "required": [ + "config" + ], + "type": "object" + }, + "AdminMediationDeny": { + "properties": {}, + "type": "object" + }, + "AdminModules": { + "properties": { + "result": { + "description": "List of admin modules", + "items": { + "description": "admin module", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AdminReset": { + "properties": {}, + "type": "object" + }, + "AdminShutdown": { + "properties": {}, + "type": "object" + }, + "AdminStatus": { + "properties": { + "conductor": { + "description": "Conductor statistics", + "type": "object" + }, + "label": { + "description": "Default label", + "type": "string", + "x-nullable": true + }, + "timing": { + "description": "Timing results", + "type": "object" + }, + "version": { + "description": "Version code", + "type": "string" + } + }, + "type": "object" + }, + "AdminStatusLiveliness": { + "properties": { + "alive": { + "description": "Liveliness status", + "example": true, + "type": "boolean" + } + }, + "type": "object" + }, + "AdminStatusReadiness": { + "properties": { + "ready": { + "description": "Readiness status", + "example": true, + "type": "boolean" + } + }, + "type": "object" + }, + "AnonCredsSchema": { + "properties": { + "attrNames": { + "description": "Schema attribute names", + "items": { + "description": "Attribute name", + "example": "score", + "type": "string" + }, + "type": "array" + }, + "issuerId": { + "description": "Issuer Identifier of the credential definition or schema", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "type": "string" + }, + "name": { + "description": "Schema name", + "example": "Example schema", + "type": "string" + }, + "version": { + "description": "Schema version", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + }, + "AnoncredsPresentationReqAttrSpec": { + "properties": { + "name": { + "description": "Attribute name", + "example": "favouriteDrink", + "type": "string" + }, + "names": { + "description": "Attribute name group", + "items": { + "example": "age", + "type": "string" + }, + "type": "array" + }, + "non_revoked": { + "$ref": "#/definitions/AnoncredsPresentationReqAttrSpecNonRevoked", + "x-nullable": true + }, + "restrictions": { + "description": "If present, credential must satisfy one of given restrictions: specify schema_id, schema_issuer_did, schema_name, schema_version, issuer_did, cred_def_id, and/or attr::\u003Cattribute-name\u003E::value where \u003Cattribute-name\u003E represents a credential attribute name", + "items": { + "additionalProperties": { + "example": "did:(method):3:CL:20:tag", + "type": "string" + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "AnoncredsPresentationReqAttrSpecNonRevoked": { + "properties": { + "from": { + "description": "Earliest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + }, + "to": { + "description": "Latest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "AnoncredsPresentationReqPredSpec": { + "properties": { + "name": { + "description": "Attribute name", + "example": "index", + "type": "string" + }, + "non_revoked": { + "$ref": "#/definitions/AnoncredsPresentationReqPredSpecNonRevoked", + "x-nullable": true + }, + "p_type": { + "description": "Predicate type ('\u003C', '\u003C=', '\u003E=', or '\u003E')", + "enum": [ + "\u003C", + "\u003C=", + "\u003E=", + "\u003E" + ], + "example": "\u003E=", + "type": "string" + }, + "p_value": { + "description": "Threshold value", + "type": "integer" + }, + "restrictions": { + "description": "If present, credential must satisfy one of given restrictions: specify schema_id, schema_issuer_did, schema_name, schema_version, issuer_did, cred_def_id, and/or attr::\u003Cattribute-name\u003E::value where \u003Cattribute-name\u003E represents a credential attribute name", + "items": { + "additionalProperties": { + "example": "did:(method):3:CL:20:tag", + "type": "string" + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name", + "p_type", + "p_value" + ], + "type": "object" + }, + "AnoncredsPresentationReqPredSpecNonRevoked": { + "properties": { + "from": { + "description": "Earliest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + }, + "to": { + "description": "Latest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "AnoncredsPresentationRequest": { + "properties": { + "name": { + "description": "Proof request name", + "example": "Proof request", + "type": "string" + }, + "non_revoked": { + "$ref": "#/definitions/AnoncredsPresentationRequestNonRevoked", + "x-nullable": true + }, + "nonce": { + "description": "Nonce", + "example": "1", + "pattern": "^[1-9][0-9]*$", + "type": "string" + }, + "requested_attributes": { + "additionalProperties": { + "$ref": "#/definitions/AnoncredsPresentationReqAttrSpec" + }, + "description": "Requested attribute specifications of proof request", + "type": "object" + }, + "requested_predicates": { + "additionalProperties": { + "$ref": "#/definitions/AnoncredsPresentationReqPredSpec" + }, + "description": "Requested predicate specifications of proof request", + "type": "object" + }, + "version": { + "description": "Proof request version", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + } + }, + "required": [ + "requested_attributes", + "requested_predicates" + ], + "type": "object" + }, + "AnoncredsPresentationRequestNonRevoked": { + "properties": { + "from": { + "description": "Earliest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + }, + "to": { + "description": "Latest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "AttachDecorator": { + "properties": { + "@id": { + "description": "Attachment identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "byte_count": { + "description": "Byte count of data included by reference", + "example": 1234, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/AttachDecoratorData" + }, + "description": { + "description": "Human-readable description of content", + "example": "view from doorway, facing east, with lights off", + "type": "string" + }, + "filename": { + "description": "File name", + "example": "IMG1092348.png", + "type": "string" + }, + "lastmod_time": { + "description": "Hint regarding last modification datetime, in ISO-8601 format", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "mime-type": { + "description": "MIME type", + "example": "image/png", + "type": "string" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "AttachDecoratorData": { + "properties": { + "base64": { + "description": "Base64-encoded data", + "example": "ey4uLn0=", + "pattern": "^[a-zA-Z0-9+/]*={0,2}$", + "type": "string" + }, + "json": { + "description": "JSON-serialized data", + "example": "{\"sample\": \"content\"}" + }, + "jws": { + "allOf": [ + { + "$ref": "#/definitions/AttachDecoratorDataJWS" + } + ], + "description": "Detached Java Web Signature" + }, + "links": { + "description": "List of hypertext links to data", + "items": { + "example": "https://link.to/data", + "type": "string" + }, + "type": "array" + }, + "sha256": { + "description": "SHA256 hash (binhex encoded) of content", + "example": "617a48c7c8afe0521efdc03e5bb0ad9e655893e6b4b51f0e794d70fba132aacb", + "pattern": "^[a-fA-F0-9+/]{64}$", + "type": "string" + } + }, + "type": "object" + }, + "AttachDecoratorData1JWS": { + "properties": { + "header": { + "$ref": "#/definitions/AttachDecoratorDataJWSHeader" + }, + "protected": { + "description": "protected JWS header", + "example": "ey4uLn0", + "pattern": "^[-_a-zA-Z0-9]*$", + "type": "string" + }, + "signature": { + "description": "signature", + "example": "ey4uLn0", + "pattern": "^[-_a-zA-Z0-9]*$", + "type": "string" + } + }, + "required": [ + "header", + "signature" + ], + "type": "object" + }, + "AttachDecoratorDataJWS": { + "properties": { + "header": { + "$ref": "#/definitions/AttachDecoratorDataJWSHeader" + }, + "protected": { + "description": "protected JWS header", + "example": "ey4uLn0", + "pattern": "^[-_a-zA-Z0-9]*$", + "type": "string" + }, + "signature": { + "description": "signature", + "example": "ey4uLn0", + "pattern": "^[-_a-zA-Z0-9]*$", + "type": "string" + }, + "signatures": { + "description": "List of signatures", + "items": { + "$ref": "#/definitions/AttachDecoratorData1JWS" + }, + "type": "array" + } + }, + "type": "object" + }, + "AttachDecoratorDataJWSHeader": { + "properties": { + "kid": { + "description": "Key identifier, in W3C did:key or DID URL format", + "example": "did:sov:LjgpST2rjsoxYegQDRm7EL#keys-4", + "pattern": "^did:(?:key:z[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+|sov:[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}(;.*)?(\\?.*)?#.+)$", + "type": "string" + } + }, + "required": [ + "kid" + ], + "type": "object" + }, + "AttachmentDef": { + "properties": { + "id": { + "description": "Attachment identifier", + "example": "attachment-0", + "type": "string" + }, + "type": { + "description": "Attachment type", + "enum": [ + "credential-offer", + "present-proof" + ], + "example": "present-proof", + "type": "string" + } + }, + "type": "object" + }, + "AttributeMimeTypesResult": { + "properties": { + "results": { + "additionalProperties": { + "description": "MIME type", + "type": "string" + }, + "type": "object", + "x-nullable": true + } + }, + "type": "object" + }, + "BasicMessageModuleResponse": { + "properties": {}, + "type": "object" + }, + "ClaimFormat": { + "properties": { + "di_vc": { + "type": "object" + }, + "jwt": { + "type": "object" + }, + "jwt_vc": { + "type": "object" + }, + "jwt_vp": { + "type": "object" + }, + "ldp": { + "type": "object" + }, + "ldp_vc": { + "type": "object" + }, + "ldp_vp": { + "type": "object" + } + }, + "type": "object" + }, + "ConfigurableWriteLedgers": { + "properties": { + "write_ledgers": { + "description": "List of configurable write ledgers identifiers", + "items": { + "description": "Ledgers identifiers", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ConnRecord": { + "properties": { + "accept": { + "description": "Connection acceptance: manual or auto", + "enum": [ + "manual", + "auto" + ], + "example": "auto", + "type": "string" + }, + "alias": { + "description": "Optional alias to apply to connection for later use", + "example": "Bob, providing quotes", + "type": "string" + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "connection_protocol": { + "description": "Connection protocol used", + "enum": [ + "connections/1.0", + "didexchange/1.0", + "didexchange/1.1" + ], + "example": "connections/1.0", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "error_msg": { + "description": "Error message", + "example": "No DIDDoc provided; cannot connect to public DID", + "type": "string" + }, + "inbound_connection_id": { + "description": "Inbound routing connection id to use", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "invitation_key": { + "description": "Public key for connection", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "invitation_mode": { + "description": "Invitation mode", + "enum": [ + "once", + "multi", + "static" + ], + "example": "once", + "type": "string" + }, + "invitation_msg_id": { + "description": "ID of out-of-band invitation message", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "my_did": { + "description": "Our DID for connection", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "request_id": { + "description": "Connection request identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "rfc23_state": { + "description": "State per RFC 23", + "example": "invitation-sent", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Current record state", + "example": "active", + "type": "string" + }, + "their_did": { + "description": "Their DID for connection", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "their_label": { + "description": "Their label for connection", + "example": "Bob", + "type": "string" + }, + "their_public_did": { + "description": "Other agent's public DID for connection", + "example": "2cpBmR3FqGKWi5EyUbpRY8", + "type": "string" + }, + "their_role": { + "description": "Their role in the connection protocol", + "enum": [ + "invitee", + "requester", + "inviter", + "responder" + ], + "example": "requester", + "type": "string" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "required": [ + "connection_id" + ], + "type": "object" + }, + "ConnectionInvitation": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "did": { + "description": "DID for connection invitation", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "imageUrl": { + "description": "Optional image URL for connection invitation", + "example": "http://192.168.56.101/img/logo.jpg", + "format": "url", + "type": "string", + "x-nullable": true + }, + "label": { + "description": "Optional label for connection invitation", + "example": "Bob", + "type": "string" + }, + "recipientKeys": { + "description": "List of recipient keys", + "items": { + "description": "Recipient public key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "type": "array" + }, + "routingKeys": { + "description": "List of routing keys", + "items": { + "description": "Routing key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "type": "array" + }, + "serviceEndpoint": { + "description": "Service endpoint at which to reach this agent", + "example": "http://192.168.56.101:8020", + "type": "string" + } + }, + "type": "object" + }, + "ConnectionList": { + "properties": { + "results": { + "description": "List of connection records", + "items": { + "$ref": "#/definitions/ConnRecord" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" + }, + "ConnectionMetadata": { + "properties": { + "results": { + "description": "Dictionary of metadata associated with connection.", + "type": "object" + } + }, + "type": "object" + }, + "ConnectionMetadataSetRequest": { + "properties": { + "metadata": { + "description": "Dictionary of metadata to set for connection.", + "type": "object" + } + }, + "required": [ + "metadata" + ], + "type": "object" + }, + "ConnectionModuleResponse": { + "properties": {}, + "type": "object" + }, + "ConnectionStaticRequest": { + "properties": { + "alias": { + "description": "Alias to assign to this connection", + "type": "string" + }, + "my_did": { + "description": "Local DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "my_seed": { + "description": "Seed to use for the local DID", + "type": "string" + }, + "their_did": { + "description": "Remote DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "their_endpoint": { + "description": "URL endpoint for other party", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + }, + "their_label": { + "description": "Other party's label for this connection", + "type": "string" + }, + "their_seed": { + "description": "Seed to use for the remote DID", + "type": "string" + }, + "their_verkey": { + "description": "Remote verification key", + "type": "string" + } + }, + "type": "object" + }, + "ConnectionStaticResult": { + "properties": { + "my_did": { + "description": "Local DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "my_endpoint": { + "description": "My URL endpoint", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + }, + "my_verkey": { + "description": "My verification key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "record": { + "$ref": "#/definitions/ConnRecord" + }, + "their_did": { + "description": "Remote DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "their_verkey": { + "description": "Remote verification key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + } + }, + "required": [ + "my_did", + "my_endpoint", + "my_verkey", + "record", + "their_did", + "their_verkey" + ], + "type": "object" + }, + "Constraints": { + "properties": { + "fields": { + "items": { + "$ref": "#/definitions/DIFField" + }, + "type": "array" + }, + "is_holder": { + "items": { + "$ref": "#/definitions/DIFHolder" + }, + "type": "array" + }, + "limit_disclosure": { + "description": "LimitDisclosure", + "type": "string" + }, + "status_active": { + "enum": [ + "required", + "allowed", + "disallowed" + ], + "type": "string" + }, + "status_revoked": { + "enum": [ + "required", + "allowed", + "disallowed" + ], + "type": "string" + }, + "status_suspended": { + "enum": [ + "required", + "allowed", + "disallowed" + ], + "type": "string" + }, + "subject_is_issuer": { + "description": "SubjectIsIssuer", + "enum": [ + "required", + "preferred" + ], + "type": "string" + } + }, + "type": "object" + }, + "CreateInvitationRequest": { + "properties": { + "mediation_id": { + "description": "Identifier for active mediation record to be used", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "metadata": { + "description": "Optional metadata to attach to the connection created with the invitation", + "type": "object" + }, + "my_label": { + "description": "Optional label for connection invitation", + "example": "Bob", + "type": "string" + }, + "recipient_keys": { + "description": "List of recipient keys", + "items": { + "description": "Recipient public key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "type": "array" + }, + "routing_keys": { + "description": "List of routing keys", + "items": { + "description": "Routing key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "type": "array" + }, + "service_endpoint": { + "description": "Connection endpoint", + "example": "http://192.168.56.102:8020", + "type": "string" + } + }, + "type": "object" + }, + "CreateKeyRequest": { + "properties": { + "alg": { + "description": "Which key algorithm to use.", + "example": "ed25519", + "type": "string" + }, + "kid": { + "description": "Optional kid to bind to the keypair, such as a verificationMethod.", + "example": "did:web:example.com#key-01", + "type": "string" + }, + "seed": { + "description": "Optional seed to generate the key pair. Must enable insecure wallet mode.", + "example": "00000000000000000000000000000000", + "type": "string" + } + }, + "type": "object" + }, + "CreateKeyResponse": { + "properties": { + "kid": { + "description": "The associated kid", + "example": "did:web:example.com#key-01", + "type": "string" + }, + "multikey": { + "description": "The Public Key Multibase format (multikey)", + "example": "z6MkgKA7yrw5kYSiDuQFcye4bMaJpcfHFry3Bx45pdWh3s8i", + "type": "string" + } + }, + "type": "object" + }, + "CreateRequest": { + "properties": { + "features": { + "description": "Additional features to enable for the did.", + "example": "{}", + "type": "object" + }, + "options": { + "description": "Additional configuration options", + "example": { + "key_type": "ed25519", + "method_specific_id_algo": "uuid", + "network": "testnet" + }, + "type": "object" + } + }, + "type": "object" + }, + "CreateResponse": { + "properties": { + "did": { + "description": "DID created", + "example": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "type": "string" + }, + "didState": { + "description": "The published didState", + "example": { + "did": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "didDocument": { + "authentication": [ + "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1" + ], + "controller": [ + "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86" + ], + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "verificationMethod": [ + { + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1", + "type": "Ed25519VerificationKey2020", + "controller": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "publicKeyMultibase": "z6Mk..." + } + ] + }, + "secret": { + "signingResponse": [ + { + "kid": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1", + "signature": "SHFz..." + } + ] + }, + "state": "finished" + }, + "type": "object" + }, + "success": { + "description": "Flag to denote if the operation was successful", + "example": true, + "type": "boolean" + }, + "verkey": { + "description": "Verification key", + "example": "BnSWTUQmdYCewSGFrRUhT6LmKdcCcSzRGqWXMPnEP168", + "type": "string" + } + }, + "type": "object" + }, + "CredAttrSpec": { + "properties": { + "mime-type": { + "description": "MIME type: omit for (null) default", + "example": "image/jpeg", + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Attribute name", + "example": "favourite_drink", + "type": "string" + }, + "value": { + "description": "Attribute value: base64-encode if MIME type is present", + "example": "martini", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "CredDef": { + "properties": { + "issuerId": { + "description": "Issuer Identifier of the credential definition or schema", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "type": "string" + }, + "schemaId": { + "description": "Schema identifier", + "example": "did:(method):2:schema_name:1.0", + "type": "string" + }, + "tag": { + "description": "The tag value passed in by the Issuer to an AnonCred's Credential Definition create and store implementation.", + "example": "default", + "type": "string" + }, + "type": { + "enum": [ + "CL" + ], + "type": "string" + }, + "value": { + "$ref": "#/definitions/CredDefValueSchemaAnoncreds" + } + }, + "type": "object" + }, + "CredDefPostOptions": { + "properties": { + "create_transaction_for_endorser": { + "description": "Create transaction for endorser (optional, default false). Use this for agents who don't specify an author role but want to create a transaction for an endorser to sign.", + "example": false, + "type": "boolean" + }, + "endorser_connection_id": { + "description": "Connection identifier (optional) (this is an example). You can set this if you know the endorser's connection id you want to use. If not specified then the agent will attempt to find an endorser connection.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "revocation_registry_size": { + "description": "Maximum number of credential revocations per registry", + "example": 1000, + "type": "integer" + }, + "support_revocation": { + "description": "Support credential revocation", + "type": "boolean" + } + }, + "type": "object" + }, + "CredDefPostRequest": { + "properties": { + "credential_definition": { + "$ref": "#/definitions/InnerCredDef" + }, + "options": { + "$ref": "#/definitions/CredDefPostOptions" + } + }, + "type": "object" + }, + "CredDefResult": { + "properties": { + "credential_definition_metadata": { + "type": "object" + }, + "credential_definition_state": { + "$ref": "#/definitions/CredDefState" + }, + "job_id": { + "type": "string" + }, + "registration_metadata": { + "type": "object" + } + }, + "type": "object" + }, + "CredDefState": { + "properties": { + "credential_definition": { + "allOf": [ + { + "$ref": "#/definitions/CredDef" + } + ], + "description": "credential definition" + }, + "credential_definition_id": { + "description": "credential definition id", + "example": "did:(method):3:CL:20:tag", + "type": "string", + "x-nullable": true + }, + "state": { + "enum": [ + "finished", + "failed", + "action", + "wait" + ], + "type": "string" + } + }, + "type": "object" + }, + "CredDefValuePrimarySchemaAnoncreds": { + "properties": { + "n": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "r": { + "type": "object" + }, + "rctxt": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "s": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "z": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + } + }, + "type": "object" + }, + "CredDefValueRevocationSchemaAnoncreds": { + "properties": { + "g": { + "example": "1 1F14F&ECB578F 2 095E45DDF417D", + "type": "string" + }, + "g_dash": { + "example": "1 1D64716fCDC00C 1 0C781960FA66E3D3 2 095E45DDF417D", + "type": "string" + }, + "h": { + "example": "1 16675DAE54BFAE8 2 095E45DD417D", + "type": "string" + }, + "h0": { + "example": "1 21E5EF9476EAF18 2 095E45DDF417D", + "type": "string" + }, + "h1": { + "example": "1 236D1D99236090 2 095E45DDF417D", + "type": "string" + }, + "h2": { + "example": "1 1C3AE8D1F1E277 2 095E45DDF417D", + "type": "string" + }, + "h_cap": { + "example": "1 1B2A32CF3167 1 2490FEBF6EE55 1 0000000000000000", + "type": "string" + }, + "htilde": { + "example": "1 1D8549E8C0F8 2 095E45DDF417D", + "type": "string" + }, + "pk": { + "example": "1 142CD5E5A7DC 1 153885BD903312 2 095E45DDF417D", + "type": "string" + }, + "u": { + "example": "1 0C430AAB2B4710 1 1CB3A0932EE7E 1 0000000000000000", + "type": "string" + }, + "y": { + "example": "1 153558BD903312 2 095E45DDF417D 1 0000000000000000", + "type": "string" + } + }, + "type": "object" + }, + "CredDefValueSchemaAnoncreds": { + "properties": { + "primary": { + "allOf": [ + { + "$ref": "#/definitions/CredDefValuePrimarySchemaAnoncreds" + } + ], + "description": "Primary value for credential definition" + }, + "revocation": { + "allOf": [ + { + "$ref": "#/definitions/CredDefValueRevocationSchemaAnoncreds" + } + ], + "description": "Revocation value for credential definition" + } + }, + "type": "object" + }, + "CredInfoList": { + "properties": { + "results": { + "items": { + "$ref": "#/definitions/IndyCredInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "CredRevIndyRecordsResultSchemaAnoncreds": { + "properties": { + "rev_reg_delta": { + "description": "Indy revocation registry delta", + "type": "object" + } + }, + "type": "object" + }, + "CredRevRecordDetailsResultSchemaAnoncreds": { + "properties": { + "results": { + "items": { + "$ref": "#/definitions/IssuerCredRevRecordSchemaAnoncreds" + }, + "type": "array" + } + }, + "type": "object" + }, + "CredRevRecordResultSchemaAnoncreds": { + "properties": { + "result": { + "$ref": "#/definitions/IssuerCredRevRecordSchemaAnoncreds" + } + }, + "type": "object" + }, + "CredRevokedResult": { + "properties": { + "revoked": { + "description": "Whether credential is revoked on the ledger", + "type": "boolean" + } + }, + "type": "object" + }, + "Credential": { + "additionalProperties": true, + "properties": { + "@context": { + "description": "The JSON-LD context of the credential", + "example": [ + "https://www.w3.org/2018/credentials/v1", + "https://www.w3.org/2018/credentials/examples/v1" + ], + "items": {}, + "type": "array" + }, + "credentialStatus": { + "example": { + "id": "https://example.com/credentials/status/3#94567", + "statusListCredential": "https://example.com/credentials/status/3", + "statusListIndex": "94567", + "statusPurpose": "revocation", + "type": "BitstringStatusListEntry" + } + }, + "credentialSubject": { + "example": { + "alumniOf": { + "id": "did:example:c276e12ec21ebfeb1f712ebc6f1" + }, + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21" + } + }, + "expirationDate": { + "description": "The expiration date", + "example": "2010-01-01T19:23:24Z", + "pattern": "^([0-9]{4})-([0-9]{2})-([0-9]{2})([Tt ]([0-9]{2}):([0-9]{2}):([0-9]{2})(\\.[0-9]+)?)?(([Zz]|([+-])([0-9]{2}):([0-9]{2})))?$", + "type": "string" + }, + "id": { + "description": "The ID of the credential", + "example": "http://example.edu/credentials/1872", + "pattern": "\\w+:(\\/?\\/?)[^\\s]+", + "type": "string" + }, + "issuanceDate": { + "description": "The issuance date", + "example": "2010-01-01T19:23:24Z", + "pattern": "^([0-9]{4})-([0-9]{2})-([0-9]{2})([Tt ]([0-9]{2}):([0-9]{2}):([0-9]{2})(\\.[0-9]+)?)?(([Zz]|([+-])([0-9]{2}):([0-9]{2})))?$", + "type": "string" + }, + "issuer": { + "description": "The JSON-LD Verifiable Credential Issuer. Either string of object with id field.", + "example": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH" + }, + "proof": { + "allOf": [ + { + "$ref": "#/definitions/LinkedDataProof" + } + ], + "description": "The proof of the credential", + "example": { + "created": "2019-12-11T03:50:55", + "jws": "eyJhbGciOiAiRWREU0EiLCAiYjY0IjogZmFsc2UsICJjcml0JiNjQiXX0..lKJU0Df_keblRKhZAS9Qq6zybm-HqUXNVZ8vgEPNTAjQKBhQDxvXNo7nvtUBb_Eq1Ch6YBKY5qBQ", + "proofPurpose": "assertionMethod", + "type": "Ed25519Signature2018", + "verificationMethod": "did:key:z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL#z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL" + } + }, + "type": { + "description": "The JSON-LD type of the credential", + "example": [ + "VerifiableCredential", + "AlumniCredential" + ], + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "@context", + "credentialSubject", + "issuanceDate", + "issuer", + "type" + ], + "type": "object" + }, + "CredentialOffer": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "credential_preview": { + "$ref": "#/definitions/CredentialPreview" + }, + "offers~attach": { + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + } + }, + "required": [ + "offers~attach" + ], + "type": "object" + }, + "CredentialPreview": { + "properties": { + "@type": { + "description": "Message type identifier", + "example": "issue-credential/1.0/credential-preview", + "type": "string" + }, + "attributes": { + "items": { + "$ref": "#/definitions/CredAttrSpec" + }, + "type": "array" + } + }, + "required": [ + "attributes" + ], + "type": "object" + }, + "CredentialProposal": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "cred_def_id": { + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "credential_proposal": { + "$ref": "#/definitions/CredentialPreview" + }, + "issuer_did": { + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_id": { + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "schema_issuer_did": { + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_name": { + "type": "string" + }, + "schema_version": { + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + } + }, + "type": "object" + }, + "CredentialStatusOptions": { + "additionalProperties": true, + "properties": { + "type": { + "description": "Credential status method type to use for the credential. Should match status method registered in the Verifiable Credential Extension Registry", + "example": "CredentialStatusList2017", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "DID": { + "properties": { + "did": { + "description": "DID of interest", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "key_type": { + "description": "Key type associated with the DID", + "enum": [ + "ed25519", + "bls12381g2" + ], + "example": "ed25519", + "type": "string" + }, + "metadata": { + "description": "Additional metadata associated with the DID", + "type": "object" + }, + "method": { + "description": "Did method associated with the DID", + "example": "sov", + "type": "string" + }, + "posture": { + "description": "Whether DID is current public DID, posted to ledger but not current public DID, or local to the wallet", + "enum": [ + "public", + "posted", + "wallet_only" + ], + "example": "wallet_only", + "type": "string" + }, + "verkey": { + "description": "Public verification key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + } + }, + "required": [ + "did", + "key_type", + "method", + "posture", + "verkey" + ], + "type": "object" + }, + "DIDCreate": { + "properties": { + "method": { + "description": "Method for the requested DID.Supported methods are 'key', 'sov', and any other registered method.", + "example": "sov", + "type": "string" + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/DIDCreateOptions" + } + ], + "description": "To define a key type and/or a did depending on chosen DID method." + }, + "seed": { + "description": "Optional seed to use for DID, Must be enabled in configuration before use.", + "example": "000000000000000000000000Trustee1", + "type": "string" + } + }, + "type": "object" + }, + "DIDCreateOptions": { + "properties": { + "did": { + "description": "Specify final value of the did (including did:\u003Cmethod\u003E: prefix)if the method supports or requires so.", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "key_type": { + "description": "Key type to use for the DID keypair. Validated with the chosen DID method's supported key types.", + "enum": [ + "ed25519", + "bls12381g2" + ], + "example": "ed25519", + "type": "string" + } + }, + "required": [ + "key_type" + ], + "type": "object" + }, + "DIDDocument": { + "properties": { + "authentication": { + "description": "Authentication Methods", + "items": { + "type": "string" + }, + "type": "array" + }, + "controller": { + "description": "DID Document controllers", + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "DID ID", + "example": "did:example:123", + "type": "string" + }, + "service": { + "description": "Services", + "items": { + "$ref": "#/definitions/Service" + }, + "type": "array" + }, + "verificationMethod": { + "description": "Verification Methods", + "items": { + "$ref": "#/definitions/VerificationMethod" + }, + "type": "array" + } + }, + "required": [ + "authentication", + "controller", + "id", + "verificationMethod" + ], + "type": "object" + }, + "DIDEndpoint": { + "properties": { + "did": { + "description": "DID of interest", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "endpoint": { + "description": "Endpoint to set (omit to delete)", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + } + }, + "required": [ + "did" + ], + "type": "object" + }, + "DIDEndpointWithType": { + "properties": { + "did": { + "description": "DID of interest", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "endpoint": { + "description": "Endpoint to set (omit to delete)", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + }, + "endpoint_type": { + "description": "Endpoint type to set (default 'Endpoint'); affects only public or posted DIDs", + "enum": [ + "Endpoint", + "Profile", + "LinkedDomains" + ], + "example": "Endpoint", + "type": "string" + }, + "mediation_id": { + "description": "Mediation ID to use for endpoint information.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + } + }, + "required": [ + "did" + ], + "type": "object" + }, + "DIDList": { + "properties": { + "results": { + "description": "DID list", + "items": { + "$ref": "#/definitions/DID" + }, + "type": "array" + } + }, + "type": "object" + }, + "DIDResult": { + "properties": { + "result": { + "$ref": "#/definitions/DID" + } + }, + "type": "object" + }, + "DIDRotateRequestJSON": { + "properties": { + "to_did": { + "description": "The DID the rotating party is rotating to", + "example": "did:web:example.com", + "type": "string" + } + }, + "required": [ + "to_did" + ], + "type": "object" + }, + "DIDXRejectRequest": { + "properties": { + "reason": { + "description": "Reason for rejecting the DID Exchange", + "example": "Request rejected", + "type": "string" + } + }, + "type": "object" + }, + "DIDXRequest": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "did": { + "description": "DID of exchange", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "did_doc~attach": { + "allOf": [ + { + "$ref": "#/definitions/AttachDecorator" + } + ], + "description": "As signed attachment, DID Doc associated with DID" + }, + "goal": { + "description": "A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message", + "example": "To issue a Faber College Graduate credential", + "type": "string" + }, + "goal_code": { + "description": "A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message", + "example": "issue-vc", + "type": "string" + }, + "label": { + "description": "Label for DID exchange request", + "example": "Request to connect with Bob", + "type": "string" + } + }, + "required": [ + "label" + ], + "type": "object" + }, + "DIFField": { + "properties": { + "filter": { + "$ref": "#/definitions/Filter" + }, + "id": { + "description": "ID", + "type": "string" + }, + "path": { + "items": { + "description": "Path", + "type": "string" + }, + "type": "array" + }, + "predicate": { + "description": "Preference", + "enum": [ + "required", + "preferred" + ], + "type": "string" + }, + "purpose": { + "description": "Purpose", + "type": "string" + } + }, + "type": "object" + }, + "DIFHolder": { + "properties": { + "directive": { + "description": "Preference", + "enum": [ + "required", + "preferred" + ], + "type": "string" + }, + "field_id": { + "items": { + "description": "FieldID", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "DIFOptions": { + "properties": { + "challenge": { + "description": "Challenge protect against replay attack", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "domain": { + "description": "Domain protect against replay attack", + "example": "4jt78h47fh47", + "type": "string" + } + }, + "type": "object" + }, + "DIFPresSpec": { + "properties": { + "issuer_id": { + "description": "Issuer identifier to sign the presentation, if different from current public DID", + "type": "string" + }, + "presentation_definition": { + "$ref": "#/definitions/PresentationDefinition" + }, + "record_ids": { + "description": "Mapping of input_descriptor id to list of stored W3C credential record_id", + "example": { + "\u003Cinput descriptor id_1\u003E": [ + "\u003Crecord id_1\u003E", + "\u003Crecord id_2\u003E" + ], + "\u003Cinput descriptor id_2\u003E": [ + "\u003Crecord id\u003E" + ] + }, + "type": "object" + }, + "reveal_doc": { + "description": "reveal doc [JSON-LD frame] dict used to derive the credential when selective disclosure is required", + "example": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/security/bbs/v1" + ], + "@explicit": true, + "@requireAll": true, + "credentialSubject": { + "@explicit": true, + "@requireAll": true, + "Observation": [ + { + "effectiveDateTime": {}, + "@explicit": true, + "@requireAll": true + } + ] + }, + "issuanceDate": {}, + "issuer": {}, + "type": [ + "VerifiableCredential", + "LabReport" + ] + }, + "type": "object" + } + }, + "type": "object" + }, + "DIFProofProposal": { + "properties": { + "input_descriptors": { + "items": { + "$ref": "#/definitions/InputDescriptors" + }, + "type": "array" + }, + "options": { + "$ref": "#/definitions/DIFOptions" + } + }, + "type": "object" + }, + "DIFProofRequest": { + "additionalProperties": true, + "properties": { + "options": { + "$ref": "#/definitions/DIFOptions" + }, + "presentation_definition": { + "$ref": "#/definitions/PresentationDefinition" + } + }, + "required": [ + "presentation_definition" + ], + "type": "object" + }, + "DataIntegrityProofOptions": { + "additionalProperties": true, + "properties": { + "challenge": { + "description": "The value is used once for a particular domain and window of time. This value is used to mitigate replay attacks.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created": { + "description": "The date and time the proof was created is OPTIONAL and, if included, MUST be specified as an [XMLSCHEMA11-2] dateTimeStamp string", + "example": "2010-01-01T19:23:24Z", + "type": "string" + }, + "cryptosuite": { + "description": "An identifier for the cryptographic suite that can be used to verify the proof.", + "example": "eddsa-jcs-2022", + "type": "string" + }, + "domain": { + "description": "It conveys one or more security domains in which the proof is meant to be used.", + "example": "example.com", + "type": "string" + }, + "expires": { + "description": "The expires property is OPTIONAL and, if present, specifies when the proof expires. If present, it MUST be an [XMLSCHEMA11-2] dateTimeStamp string", + "example": "2010-01-01T19:23:24Z", + "type": "string" + }, + "id": { + "description": "An optional identifier for the proof, which MUST be a URL [URL], such as a UUID as a URN", + "example": "urn:uuid:6a1676b8-b51f-11ed-937b-d76685a20ff5", + "type": "string" + }, + "nonce": { + "description": "One use of this field is to increase privacy by decreasing linkability that is the result of deterministically generated signatures.", + "example": "CF69iO3nfvqRsRBNElE8b4wO39SyJHPM7Gg1nExltW5vSfQA1lvDCR/zXX1To0/4NLo==", + "type": "string" + }, + "previousProof": { + "description": "Each value identifies another data integrity proof that MUST verify before the current proof is processed.", + "example": "urn:uuid:6a1676b8-b51f-11ed-937b-d76685a20ff5", + "type": "string" + }, + "proofPurpose": { + "description": "The proof purpose acts as a safeguard to prevent the proof from being misused by being applied to a purpose other than the one that was intended.", + "example": "assertionMethod", + "type": "string" + }, + "proofValue": { + "description": "The value of the proof signature.", + "example": "zsy1AahqbzJQ63n9RtekmwzqZeVj494VppdAVJBnMYrTwft6cLJJGeTSSxCCJ6HKnRtwE7jjDh6sB2z2AAiZY9BBnCD8wUVgwqH3qchGRCuC2RugA4eQ9fUrR4Yuycac3caiaaay", + "type": "string" + }, + "type": { + "description": "The specific type of proof MUST be specified as a string that maps to a URL [URL].", + "example": "DataIntegrityProof", + "type": "string" + }, + "verificationMethod": { + "description": "A verification method is the means and information needed to verify the proof.", + "example": "did:key:z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL#z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL", + "pattern": "\\w+:(\\/?\\/?)[^\\s]+", + "type": "string" + } + }, + "required": [ + "cryptosuite", + "proofPurpose", + "type", + "verificationMethod" + ], + "type": "object" + }, + "Date": { + "properties": { + "expires_time": { + "description": "Expiry Date", + "example": "2021-03-29T05:22:19Z", + "format": "date-time", + "type": "string" + } + }, + "required": [ + "expires_time" + ], + "type": "object" + }, + "DeactivateRequest": { + "properties": { + "did": { + "description": "DID to deactivate", + "example": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "pattern": "^(did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)([?][^#]*)?|did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)/resources/([a-z,0-9,-]{36,36})([?][^#]*)?)$", + "type": "string" + }, + "options": { + "description": "Additional configuration options", + "example": { + "network": "testnet" + }, + "type": "object" + } + }, + "required": [ + "did" + ], + "type": "object" + }, + "DeactivateResponse": { + "properties": { + "did": { + "description": "DID that has been deactivted", + "example": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "pattern": "^(did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)([?][^#]*)?|did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)/resources/([a-z,0-9,-]{36,36})([?][^#]*)?)$", + "type": "string" + }, + "didState": { + "description": "State of the did update", + "example": { + "did": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "didDocument": { + "authentication": [ + "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1" + ], + "controller": [ + "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86" + ], + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "verificationMethod": [ + { + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1", + "type": "Ed25519VerificationKey2020", + "controller": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "publicKeyMultibase": "z6Mk..." + } + ] + }, + "secret": { + "signingResponse": [ + { + "kid": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1", + "signature": "SHFz..." + } + ] + }, + "state": "finished" + }, + "type": "string" + }, + "success": { + "description": "Flag to denote if the operation was successful", + "example": true, + "type": "boolean" + } + }, + "required": [ + "didState" + ], + "type": "object" + }, + "Disclose": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "protocols": { + "description": "List of protocol descriptors", + "items": { + "$ref": "#/definitions/ProtocolDescriptor" + }, + "type": "array" + } + }, + "required": [ + "protocols" + ], + "type": "object" + }, + "Disclosures": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "disclosures": { + "description": "List of protocol or goal_code descriptors", + "items": {}, + "type": "array" + } + }, + "required": [ + "disclosures" + ], + "type": "object" + }, + "Doc": { + "properties": { + "credential": { + "description": "Credential to sign", + "type": "object" + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/SignatureOptions" + } + ], + "description": "Signature options" + } + }, + "required": [ + "credential", + "options" + ], + "type": "object" + }, + "DocumentVerificationResult": { + "properties": { + "document": { + "type": "object" + }, + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "results": { + "items": { + "$ref": "#/definitions/ProofResult" + }, + "type": "array" + }, + "verified": { + "type": "boolean" + } + }, + "required": [ + "verified" + ], + "type": "object" + }, + "EndorserInfo": { + "properties": { + "endorser_did": { + "description": "Endorser DID", + "type": "string" + }, + "endorser_name": { + "description": "Endorser Name", + "type": "string" + } + }, + "required": [ + "endorser_did" + ], + "type": "object" + }, + "EndpointsResult": { + "properties": { + "my_endpoint": { + "description": "My endpoint", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + }, + "their_endpoint": { + "description": "Their endpoint", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + } + }, + "type": "object" + }, + "FetchCredentialResponse": { + "properties": { + "results": { + "$ref": "#/definitions/VerifiableCredential" + } + }, + "type": "object" + }, + "FetchKeyResponse": { + "properties": { + "kid": { + "description": "The associated kid", + "example": "did:web:example.com#key-01", + "type": "string" + }, + "multikey": { + "description": "The Public Key Multibase format (multikey)", + "example": "z6MkgKA7yrw5kYSiDuQFcye4bMaJpcfHFry3Bx45pdWh3s8i", + "type": "string" + } + }, + "type": "object" + }, + "Filter": { + "properties": { + "const": { + "description": "Const" + }, + "enum": { + "items": { + "description": "Enum" + }, + "type": "array" + }, + "exclusiveMaximum": { + "description": "ExclusiveMaximum" + }, + "exclusiveMinimum": { + "description": "ExclusiveMinimum" + }, + "format": { + "description": "Format", + "type": "string" + }, + "maxLength": { + "description": "Max Length", + "example": 1234, + "type": "integer" + }, + "maximum": { + "description": "Maximum" + }, + "minLength": { + "description": "Min Length", + "example": 1234, + "type": "integer" + }, + "minimum": { + "description": "Minimum" + }, + "not": { + "description": "Not", + "example": false, + "type": "boolean" + }, + "pattern": { + "description": "Pattern", + "type": "string" + }, + "type": { + "description": "Type", + "type": "string" + } + }, + "type": "object" + }, + "GetCredDefResult": { + "properties": { + "credential_definition": { + "allOf": [ + { + "$ref": "#/definitions/CredDef" + } + ], + "description": "credential definition" + }, + "credential_definition_id": { + "description": "credential definition id", + "example": "did:(method):3:CL:20:tag", + "type": "string" + }, + "credential_definitions_metadata": { + "type": "object" + }, + "resolution_metadata": { + "type": "object" + } + }, + "type": "object" + }, + "GetCredDefsResponse": { + "properties": { + "credential_definition_ids": { + "items": { + "description": "credential definition identifiers", + "example": "GvLGiRogTJubmj5B36qhYz:3:CL:8:faber.agent.degree_schema", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetDIDEndpointResponse": { + "properties": { + "endpoint": { + "description": "Full verification key", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "GetDIDVerkeyResponse": { + "properties": { + "verkey": { + "description": "Full verification key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "GetNymRoleResponse": { + "properties": { + "role": { + "description": "Ledger role", + "enum": [ + "STEWARD", + "TRUSTEE", + "ENDORSER", + "NETWORK_MONITOR", + "USER", + "ROLE_REMOVE" + ], + "example": "ENDORSER", + "type": "string" + } + }, + "type": "object" + }, + "GetSchemaResult": { + "properties": { + "resolution_metadata": { + "type": "object" + }, + "schema": { + "$ref": "#/definitions/AnonCredsSchema" + }, + "schema_id": { + "description": "Schema identifier", + "example": "did:(method):2:schema_name:1.0", + "type": "string" + }, + "schema_metadata": { + "type": "object" + } + }, + "type": "object" + }, + "GetSchemasResponse": { + "properties": { + "schema_ids": { + "items": { + "description": "Schema identifiers", + "example": "did:(method):2:schema_name:1.0", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Hangup": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + } + }, + "type": "object" + }, + "HolderModuleResponse": { + "properties": {}, + "type": "object" + }, + "IndyAttrValue": { + "properties": { + "encoded": { + "description": "Attribute encoded value", + "example": "-1", + "pattern": "^-?[0-9]*$", + "type": "string" + }, + "raw": { + "description": "Attribute raw value", + "type": "string" + } + }, + "required": [ + "encoded", + "raw" + ], + "type": "object" + }, + "IndyCredAbstract": { + "properties": { + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "key_correctness_proof": { + "allOf": [ + { + "$ref": "#/definitions/IndyKeyCorrectnessProof" + } + ], + "description": "Key correctness proof" + }, + "nonce": { + "description": "Nonce in credential abstract", + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + } + }, + "required": [ + "cred_def_id", + "key_correctness_proof", + "nonce", + "schema_id" + ], + "type": "object" + }, + "IndyCredInfo": { + "properties": { + "attrs": { + "additionalProperties": { + "example": "alice", + "type": "string" + }, + "description": "Attribute names and value", + "type": "object" + }, + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "cred_rev_id": { + "description": "Credential revocation identifier", + "example": "12345", + "pattern": "^[1-9][0-9]*$", + "type": "string", + "x-nullable": true + }, + "referent": { + "description": "Wallet referent", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "rev_reg_id": { + "description": "Revocation registry identifier", + "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)", + "type": "string", + "x-nullable": true + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + } + }, + "type": "object" + }, + "IndyCredPrecis": { + "properties": { + "cred_info": { + "allOf": [ + { + "$ref": "#/definitions/IndyCredInfo" + } + ], + "description": "Credential info" + }, + "interval": { + "allOf": [ + { + "$ref": "#/definitions/IndyNonRevocationInterval" + } + ], + "description": "Non-revocation interval from presentation request" + }, + "presentation_referents": { + "items": { + "description": "presentation referent", + "example": "1_age_uuid", + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "cred_info" + ], + "type": "object" + }, + "IndyCredRequest": { + "properties": { + "blinded_ms": { + "description": "Blinded master secret", + "type": "object" + }, + "blinded_ms_correctness_proof": { + "description": "Blinded master secret correctness proof", + "type": "object" + }, + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "nonce": { + "description": "Nonce in credential request", + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "prover_did": { + "description": "Prover DID/Random String/UUID", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + } + }, + "required": [ + "blinded_ms", + "blinded_ms_correctness_proof", + "cred_def_id", + "nonce", + "prover_did" + ], + "type": "object" + }, + "IndyCredential": { + "properties": { + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "rev_reg": { + "description": "Revocation registry state", + "type": "object", + "x-nullable": true + }, + "rev_reg_id": { + "description": "Revocation registry identifier", + "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)", + "type": "string", + "x-nullable": true + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "signature": { + "description": "Credential signature", + "type": "object" + }, + "signature_correctness_proof": { + "description": "Credential signature correctness proof", + "type": "object" + }, + "values": { + "additionalProperties": { + "$ref": "#/definitions/IndyAttrValue" + }, + "description": "Credential attributes", + "type": "object" + }, + "witness": { + "description": "Witness for revocation proof", + "type": "object", + "x-nullable": true + } + }, + "required": [ + "cred_def_id", + "schema_id", + "signature", + "signature_correctness_proof", + "values" + ], + "type": "object" + }, + "IndyEQProof": { + "properties": { + "a_prime": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "e": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "m": { + "additionalProperties": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "type": "object" + }, + "m2": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "revealed_attrs": { + "additionalProperties": { + "example": "-1", + "pattern": "^-?[0-9]*$", + "type": "string" + }, + "type": "object" + }, + "v": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + } + }, + "type": "object" + }, + "IndyGEProof": { + "properties": { + "alpha": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "mj": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "predicate": { + "$ref": "#/definitions/IndyGEProofPred" + }, + "r": { + "additionalProperties": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "type": "object" + }, + "t": { + "additionalProperties": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "type": "object" + }, + "u": { + "additionalProperties": { + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "IndyGEProofPred": { + "properties": { + "attr_name": { + "description": "Attribute name, indy-canonicalized", + "type": "string" + }, + "p_type": { + "description": "Predicate type", + "enum": [ + "LT", + "LE", + "GE", + "GT" + ], + "type": "string" + }, + "value": { + "description": "Predicate threshold value", + "type": "integer" + } + }, + "type": "object" + }, + "IndyKeyCorrectnessProof": { + "properties": { + "c": { + "description": "c in key correctness proof", + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + }, + "xr_cap": { + "description": "xr_cap in key correctness proof", + "items": { + "description": "xr_cap components in key correctness proof", + "items": { + "description": "xr_cap component values in key correctness proof", + "type": "string" + }, + "type": "array" + }, + "type": "array" + }, + "xz_cap": { + "description": "xz_cap in key correctness proof", + "example": "0", + "pattern": "^[0-9]*$", + "type": "string" + } + }, + "required": [ + "c", + "xr_cap", + "xz_cap" + ], + "type": "object" + }, + "IndyNonRevocProof": { + "properties": { + "c_list": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "x_list": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "IndyNonRevocationInterval": { + "properties": { + "from": { + "description": "Earliest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + }, + "to": { + "description": "Latest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "IndyPresAttrSpec": { + "properties": { + "cred_def_id": { + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "mime-type": { + "description": "MIME type (default null)", + "example": "image/jpeg", + "type": "string" + }, + "name": { + "description": "Attribute name", + "example": "favourite_drink", + "type": "string" + }, + "referent": { + "description": "Credential referent", + "example": "0", + "type": "string" + }, + "value": { + "description": "Attribute value", + "example": "martini", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "IndyPresPredSpec": { + "properties": { + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "name": { + "description": "Attribute name", + "example": "high_score", + "type": "string" + }, + "predicate": { + "description": "Predicate type ('\u003C', '\u003C=', '\u003E=', or '\u003E')", + "enum": [ + "\u003C", + "\u003C=", + "\u003E=", + "\u003E" + ], + "example": "\u003E=", + "type": "string" + }, + "threshold": { + "description": "Threshold value", + "type": "integer" + } + }, + "required": [ + "name", + "predicate", + "threshold" + ], + "type": "object" + }, + "IndyPresPreview": { + "properties": { + "@type": { + "description": "Message type identifier", + "example": "https://didcomm.org/present-proof/1.0/presentation-preview", + "type": "string" + }, + "attributes": { + "items": { + "$ref": "#/definitions/IndyPresAttrSpec" + }, + "type": "array" + }, + "predicates": { + "items": { + "$ref": "#/definitions/IndyPresPredSpec" + }, + "type": "array" + } + }, + "required": [ + "attributes", + "predicates" + ], + "type": "object" + }, + "IndyPresSpec": { + "properties": { + "requested_attributes": { + "additionalProperties": { + "$ref": "#/definitions/IndyRequestedCredsRequestedAttr" + }, + "description": "Nested object mapping proof request attribute referents to requested-attribute specifiers", + "type": "object" + }, + "requested_predicates": { + "additionalProperties": { + "$ref": "#/definitions/IndyRequestedCredsRequestedPred" + }, + "description": "Nested object mapping proof request predicate referents to requested-predicate specifiers", + "type": "object" + }, + "self_attested_attributes": { + "additionalProperties": { + "description": "Self-attested attribute values to use in requested-credentials structure for proof construction", + "example": "self_attested_value", + "type": "string" + }, + "description": "Self-attested attributes to build into proof", + "type": "object" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "requested_attributes", + "requested_predicates", + "self_attested_attributes" + ], + "type": "object" + }, + "IndyPrimaryProof": { + "properties": { + "eq_proof": { + "allOf": [ + { + "$ref": "#/definitions/IndyEQProof" + } + ], + "description": "Indy equality proof", + "x-nullable": true + }, + "ge_proofs": { + "description": "Indy GE proofs", + "items": { + "$ref": "#/definitions/IndyGEProof" + }, + "type": "array", + "x-nullable": true + } + }, + "type": "object" + }, + "IndyProof": { + "properties": { + "identifiers": { + "description": "Indy proof.identifiers content", + "items": { + "$ref": "#/definitions/IndyProofIdentifier" + }, + "type": "array" + }, + "proof": { + "allOf": [ + { + "$ref": "#/definitions/IndyProofProof" + } + ], + "description": "Indy proof.proof content" + }, + "requested_proof": { + "allOf": [ + { + "$ref": "#/definitions/IndyProofRequestedProof" + } + ], + "description": "Indy proof.requested_proof content" + } + }, + "type": "object" + }, + "IndyProofIdentifier": { + "properties": { + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "rev_reg_id": { + "description": "Revocation registry identifier", + "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)", + "type": "string", + "x-nullable": true + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "timestamp": { + "description": "Timestamp epoch", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer", + "x-nullable": true + } + }, + "type": "object" + }, + "IndyProofProof": { + "properties": { + "aggregated_proof": { + "allOf": [ + { + "$ref": "#/definitions/IndyProofProofAggregatedProof" + } + ], + "description": "Indy proof aggregated proof" + }, + "proofs": { + "description": "Indy proof proofs", + "items": { + "$ref": "#/definitions/IndyProofProofProofsProof" + }, + "type": "array" + } + }, + "type": "object" + }, + "IndyProofProofAggregatedProof": { + "properties": { + "c_hash": { + "description": "c_hash value", + "type": "string" + }, + "c_list": { + "description": "c_list value", + "items": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "IndyProofProofProofsProof": { + "properties": { + "non_revoc_proof": { + "allOf": [ + { + "$ref": "#/definitions/IndyNonRevocProof" + } + ], + "description": "Indy non-revocation proof", + "x-nullable": true + }, + "primary_proof": { + "allOf": [ + { + "$ref": "#/definitions/IndyPrimaryProof" + } + ], + "description": "Indy primary proof" + } + }, + "type": "object" + }, + "IndyProofReqAttrSpec": { + "properties": { + "name": { + "description": "Attribute name", + "example": "favouriteDrink", + "type": "string" + }, + "names": { + "description": "Attribute name group", + "items": { + "example": "age", + "type": "string" + }, + "type": "array" + }, + "non_revoked": { + "$ref": "#/definitions/IndyProofReqAttrSpecNonRevoked", + "x-nullable": true + }, + "restrictions": { + "description": "If present, credential must satisfy one of given restrictions: specify schema_id, schema_issuer_did, schema_name, schema_version, issuer_did, cred_def_id, and/or attr::\u003Cattribute-name\u003E::value where \u003Cattribute-name\u003E represents a credential attribute name", + "items": { + "additionalProperties": { + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "type": "string" + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "IndyProofReqAttrSpecNonRevoked": { + "properties": { + "from": { + "description": "Earliest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + }, + "to": { + "description": "Latest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "IndyProofReqPredSpec": { + "properties": { + "name": { + "description": "Attribute name", + "example": "index", + "type": "string" + }, + "non_revoked": { + "$ref": "#/definitions/IndyProofReqPredSpecNonRevoked", + "x-nullable": true + }, + "p_type": { + "description": "Predicate type ('\u003C', '\u003C=', '\u003E=', or '\u003E')", + "enum": [ + "\u003C", + "\u003C=", + "\u003E=", + "\u003E" + ], + "example": "\u003E=", + "type": "string" + }, + "p_value": { + "description": "Threshold value", + "type": "integer" + }, + "restrictions": { + "description": "If present, credential must satisfy one of given restrictions: specify schema_id, schema_issuer_did, schema_name, schema_version, issuer_did, cred_def_id, and/or attr::\u003Cattribute-name\u003E::value where \u003Cattribute-name\u003E represents a credential attribute name", + "items": { + "additionalProperties": { + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "type": "string" + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "name", + "p_type", + "p_value" + ], + "type": "object" + }, + "IndyProofReqPredSpecNonRevoked": { + "properties": { + "from": { + "description": "Earliest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + }, + "to": { + "description": "Latest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "IndyProofRequest": { + "properties": { + "name": { + "description": "Proof request name", + "example": "Proof request", + "type": "string" + }, + "non_revoked": { + "$ref": "#/definitions/IndyProofRequestNonRevoked", + "x-nullable": true + }, + "nonce": { + "description": "Nonce", + "example": "1", + "pattern": "^[1-9][0-9]*$", + "type": "string" + }, + "requested_attributes": { + "additionalProperties": { + "$ref": "#/definitions/IndyProofReqAttrSpec" + }, + "description": "Requested attribute specifications of proof request", + "type": "object" + }, + "requested_predicates": { + "additionalProperties": { + "$ref": "#/definitions/IndyProofReqPredSpec" + }, + "description": "Requested predicate specifications of proof request", + "type": "object" + }, + "version": { + "description": "Proof request version", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + } + }, + "required": [ + "requested_attributes", + "requested_predicates" + ], + "type": "object" + }, + "IndyProofRequestNonRevoked": { + "properties": { + "from": { + "description": "Earliest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + }, + "to": { + "description": "Latest time of interest in non-revocation interval", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "IndyProofRequestedProof": { + "properties": { + "predicates": { + "additionalProperties": { + "$ref": "#/definitions/IndyProofRequestedProofPredicate" + }, + "description": "Proof requested proof predicates.", + "type": "object" + }, + "revealed_attr_groups": { + "additionalProperties": { + "$ref": "#/definitions/IndyProofRequestedProofRevealedAttrGroup" + }, + "description": "Proof requested proof revealed attribute groups", + "type": "object", + "x-nullable": true + }, + "revealed_attrs": { + "additionalProperties": { + "$ref": "#/definitions/IndyProofRequestedProofRevealedAttr" + }, + "description": "Proof requested proof revealed attributes", + "type": "object", + "x-nullable": true + }, + "self_attested_attrs": { + "description": "Proof requested proof self-attested attributes", + "type": "object" + }, + "unrevealed_attrs": { + "description": "Unrevealed attributes", + "type": "object" + } + }, + "type": "object" + }, + "IndyProofRequestedProofPredicate": { + "properties": { + "sub_proof_index": { + "description": "Sub-proof index", + "type": "integer" + } + }, + "type": "object" + }, + "IndyProofRequestedProofRevealedAttr": { + "properties": { + "encoded": { + "description": "Encoded value", + "example": "-1", + "pattern": "^-?[0-9]*$", + "type": "string" + }, + "raw": { + "description": "Raw value", + "type": "string" + }, + "sub_proof_index": { + "description": "Sub-proof index", + "type": "integer" + } + }, + "type": "object" + }, + "IndyProofRequestedProofRevealedAttrGroup": { + "properties": { + "sub_proof_index": { + "description": "Sub-proof index", + "type": "integer" + }, + "values": { + "additionalProperties": { + "$ref": "#/definitions/RawEncoded" + }, + "description": "Indy proof requested proof revealed attr groups group value", + "type": "object" + } + }, + "type": "object" + }, + "IndyRequestedCredsRequestedAttr": { + "properties": { + "cred_id": { + "description": "Wallet credential identifier (typically but not necessarily a UUID)", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "revealed": { + "description": "Whether to reveal attribute in proof (default true)", + "type": "boolean" + } + }, + "required": [ + "cred_id" + ], + "type": "object" + }, + "IndyRequestedCredsRequestedPred": { + "properties": { + "cred_id": { + "description": "Wallet credential identifier (typically but not necessarily a UUID)", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "timestamp": { + "description": "Epoch timestamp of interest for non-revocation proof", + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "cred_id" + ], + "type": "object" + }, + "IndyRevRegDef": { + "properties": { + "credDefId": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "id": { + "description": "Indy revocation registry identifier", + "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)", + "type": "string" + }, + "revocDefType": { + "description": "Revocation registry type (specify CL_ACCUM)", + "enum": [ + "CL_ACCUM" + ], + "example": "CL_ACCUM", + "type": "string" + }, + "tag": { + "description": "Revocation registry tag", + "type": "string" + }, + "value": { + "allOf": [ + { + "$ref": "#/definitions/IndyRevRegDefValue" + } + ], + "description": "Revocation registry definition value" + }, + "ver": { + "description": "Version of revocation registry definition", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + } + }, + "type": "object" + }, + "IndyRevRegDefValue": { + "properties": { + "issuanceType": { + "description": "Issuance type", + "enum": [ + "ISSUANCE_ON_DEMAND", + "ISSUANCE_BY_DEFAULT" + ], + "type": "string" + }, + "maxCredNum": { + "description": "Maximum number of credentials; registry size", + "example": 10, + "minimum": 1, + "type": "integer" + }, + "publicKeys": { + "allOf": [ + { + "$ref": "#/definitions/IndyRevRegDefValuePublicKeys" + } + ], + "description": "Public keys" + }, + "tailsHash": { + "description": "Tails hash value", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "tailsLocation": { + "description": "Tails file location", + "type": "string" + } + }, + "type": "object" + }, + "IndyRevRegDefValuePublicKeys": { + "properties": { + "accumKey": { + "$ref": "#/definitions/IndyRevRegDefValuePublicKeysAccumKey" + } + }, + "type": "object" + }, + "IndyRevRegDefValuePublicKeysAccumKey": { + "properties": { + "z": { + "description": "Value for z", + "example": "1 120F522F81E6B7 1 09F7A59005C4939854", + "type": "string" + } + }, + "type": "object" + }, + "IndyRevRegEntry": { + "properties": { + "value": { + "allOf": [ + { + "$ref": "#/definitions/IndyRevRegEntryValue" + } + ], + "description": "Revocation registry entry value" + }, + "ver": { + "description": "Version of revocation registry entry", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + } + }, + "type": "object" + }, + "IndyRevRegEntryValue": { + "properties": { + "accum": { + "description": "Accumulator value", + "example": "21 11792B036AED0AAA12A4 4 298B2571FFC63A737", + "type": "string" + }, + "prevAccum": { + "description": "Previous accumulator value", + "example": "21 137AC810975E4 6 76F0384B6F23", + "type": "string" + }, + "revoked": { + "description": "Revoked credential revocation identifiers", + "items": { + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "InnerCredDef": { + "properties": { + "issuerId": { + "description": "Issuer Identifier of the credential definition", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "type": "string" + }, + "schemaId": { + "description": "Schema identifier", + "example": "did:(method):2:schema_name:1.0", + "type": "string" + }, + "tag": { + "description": "Credential definition tag", + "example": "default", + "type": "string" + } + }, + "required": [ + "issuerId", + "schemaId", + "tag" + ], + "type": "object" + }, + "InnerRevRegDef": { + "properties": { + "credDefId": { + "description": "Credential definition identifier", + "example": "did:(method):2:schema_name:1.0", + "type": "string" + }, + "issuerId": { + "description": "Issuer Identifier of the credential definition or schema", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "type": "string" + }, + "maxCredNum": { + "description": "Maximum number of credential revocations per registry", + "example": 777, + "type": "integer" + }, + "tag": { + "description": "tag for revocation registry", + "example": "default", + "type": "string" + } + }, + "type": "object" + }, + "InputDescriptors": { + "properties": { + "constraints": { + "$ref": "#/definitions/Constraints" + }, + "group": { + "items": { + "description": "Group", + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "ID", + "type": "string" + }, + "metadata": { + "description": "Metadata dictionary", + "type": "object" + }, + "name": { + "description": "Name", + "type": "string" + }, + "purpose": { + "description": "Purpose", + "type": "string" + }, + "schema": { + "allOf": [ + { + "$ref": "#/definitions/SchemasInputDescriptorFilter" + } + ], + "description": "Accepts a list of schema or a dict containing filters like oneof_filter.", + "example": { + "oneof_filter": [ + [ + { + "uri": "https://www.w3.org/Test1#Test1" + }, + { + "uri": "https://www.w3.org/Test2#Test2" + } + ], + { + "oneof_filter": [ + [ + { + "uri": "https://www.w3.org/Test1#Test1" + } + ], + [ + { + "uri": "https://www.w3.org/Test2#Test2" + } + ] + ] + } + ] + } + } + }, + "type": "object" + }, + "IntroModuleResponse": { + "properties": {}, + "type": "object" + }, + "InvitationCreateRequest": { + "properties": { + "accept": { + "description": "List of mime type in order of preference that should be use in responding to the message", + "example": [ + "didcomm/aip1", + "didcomm/aip2;env=rfc19" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "alias": { + "description": "Alias for connection", + "example": "Barry", + "type": "string" + }, + "attachments": { + "description": "Optional invitation attachments", + "items": { + "$ref": "#/definitions/AttachmentDef" + }, + "type": "array" + }, + "goal": { + "description": "A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message", + "example": "To issue a Faber College Graduate credential", + "type": "string" + }, + "goal_code": { + "description": "A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message", + "example": "issue-vc", + "type": "string" + }, + "handshake_protocols": { + "items": { + "description": "Handshake protocol to specify in invitation", + "example": "https://didcomm.org/didexchange/1.0", + "type": "string" + }, + "type": "array" + }, + "mediation_id": { + "description": "Identifier for active mediation record to be used", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "metadata": { + "description": "Optional metadata to attach to the connection created with the invitation", + "type": "object" + }, + "my_label": { + "description": "Label for connection invitation", + "example": "Invitation to Barry", + "type": "string" + }, + "protocol_version": { + "description": "OOB protocol version", + "example": "1.1", + "type": "string" + }, + "use_did": { + "description": "DID to use in invitation", + "example": "did:example:123", + "type": "string" + }, + "use_did_method": { + "description": "DID method to use in invitation", + "enum": [ + "did:peer:2", + "did:peer:4" + ], + "example": "did:peer:2", + "type": "string" + }, + "use_public_did": { + "description": "Whether to use public DID in invitation", + "example": false, + "type": "boolean" + } + }, + "type": "object" + }, + "InvitationMessage": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "accept": { + "description": "List of mime type in order of preference", + "example": [ + "didcomm/aip1", + "didcomm/aip2;env=rfc19" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "goal": { + "description": "A self-attested string that the receiver may want to display to the user about the context-specific goal of the out-of-band message", + "example": "To issue a Faber College Graduate credential", + "type": "string" + }, + "goal_code": { + "description": "A self-attested code the receiver may want to display to the user or use in automatically deciding what to do with the out-of-band message", + "example": "issue-vc", + "type": "string" + }, + "handshake_protocols": { + "items": { + "description": "Handshake protocol", + "example": "https://didcomm.org/didexchange/1.0", + "type": "string" + }, + "type": "array" + }, + "imageUrl": { + "description": "Optional image URL for out-of-band invitation", + "example": "http://192.168.56.101/img/logo.jpg", + "format": "url", + "type": "string", + "x-nullable": true + }, + "label": { + "description": "Optional label", + "example": "Bob", + "type": "string" + }, + "requests~attach": { + "description": "Optional request attachment", + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + }, + "services": { + "example": [ + { + "did": "WgWxqztrNooG92RXvxSTWv", + "id": "string", + "recipientKeys": [ + "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH" + ], + "routingKeys": [ + "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH" + ], + "serviceEndpoint": "http://192.168.56.101:8020", + "type": "string" + }, + "did:sov:WgWxqztrNooG92RXvxSTWv" + ], + "items": { + "description": "Either a DIDComm service object (as per RFC0067) or a DID string." + }, + "type": "array" + } + }, + "type": "object" + }, + "InvitationRecord": { + "properties": { + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "invi_msg_id": { + "description": "Invitation message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "invitation": { + "allOf": [ + { + "$ref": "#/definitions/InvitationMessage" + } + ], + "description": "Out of band invitation message" + }, + "invitation_id": { + "description": "Invitation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "invitation_url": { + "description": "Invitation message URL", + "example": "https://example.com/endpoint?c_i=eyJAdHlwZSI6ICIuLi4iLCAiLi4uIjogIi4uLiJ9XX0=", + "type": "string" + }, + "oob_id": { + "description": "Out of band record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "state": { + "description": "Out of band message exchange state", + "example": "await_response", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "InvitationRecordResponse": { + "properties": {}, + "type": "object" + }, + "InvitationResult": { + "properties": { + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "invitation": { + "$ref": "#/definitions/ConnectionInvitation" + }, + "invitation_url": { + "description": "Invitation URL", + "example": "http://192.168.56.101:8020/invite?c_i=eyJAdHlwZSI6Li4ufQ==", + "type": "string" + } + }, + "required": [ + "connection_id", + "invitation", + "invitation_url" + ], + "type": "object" + }, + "IssueCredentialModuleResponse": { + "properties": {}, + "type": "object" + }, + "IssueCredentialRequest": { + "properties": { + "credential": { + "$ref": "#/definitions/Credential" + }, + "options": { + "$ref": "#/definitions/LDProofVCOptions" + } + }, + "type": "object" + }, + "IssueCredentialResponse": { + "properties": { + "verifiableCredential": { + "$ref": "#/definitions/VerifiableCredential" + } + }, + "type": "object" + }, + "IssuerCredRevRecordSchemaAnoncreds": { + "properties": { + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "cred_def_id": { + "description": "Credential definition identifier", + "type": "string" + }, + "cred_ex_id": { + "description": "Credential exchange record identifier at credential issue", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_ex_version": { + "description": "Credential exchange version", + "type": "string" + }, + "cred_rev_id": { + "description": "Credential revocation identifier", + "type": "string" + }, + "record_id": { + "description": "Issuer credential revocation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "rev_reg_id": { + "description": "Revocation registry identifier", + "type": "string" + }, + "state": { + "description": "Issue credential revocation record state", + "example": "issued", + "type": "string" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "IssuerRevRegRecord": { + "properties": { + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "error_msg": { + "description": "Error message", + "example": "Revocation registry undefined", + "type": "string" + }, + "issuer_did": { + "description": "Issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "max_cred_num": { + "description": "Maximum number of credentials for revocation registry", + "example": 1000, + "type": "integer" + }, + "pending_pub": { + "description": "Credential revocation identifier for credential revoked and pending publication to ledger", + "items": { + "example": "23", + "type": "string" + }, + "type": "array" + }, + "record_id": { + "description": "Issuer revocation registry record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "revoc_def_type": { + "description": "Revocation registry type (specify CL_ACCUM)", + "enum": [ + "CL_ACCUM" + ], + "example": "CL_ACCUM", + "type": "string" + }, + "revoc_reg_def": { + "allOf": [ + { + "$ref": "#/definitions/IndyRevRegDef" + } + ], + "description": "Revocation registry definition" + }, + "revoc_reg_entry": { + "allOf": [ + { + "$ref": "#/definitions/IndyRevRegEntry" + } + ], + "description": "Revocation registry entry" + }, + "revoc_reg_id": { + "description": "Revocation registry identifier", + "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)", + "type": "string" + }, + "state": { + "description": "Issue revocation registry record state", + "example": "active", + "type": "string" + }, + "tag": { + "description": "Tag within issuer revocation registry identifier", + "type": "string" + }, + "tails_hash": { + "description": "Tails hash", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "tails_local_path": { + "description": "Local path to tails file", + "type": "string" + }, + "tails_public_uri": { + "description": "Public URI for tails file", + "type": "string" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "JWSCreate": { + "properties": { + "did": { + "description": "DID of interest", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "headers": { + "type": "object" + }, + "payload": { + "type": "object" + }, + "verificationMethod": { + "description": "Information used for proof verification", + "example": "did:key:z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL#z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL", + "pattern": "\\w+:(\\/?\\/?)[^\\s]+", + "type": "string" + } + }, + "required": [ + "payload" + ], + "type": "object" + }, + "JWSVerify": { + "properties": { + "jwt": { + "example": "eyJhbGciOiJFZERTQSJ9.eyJhIjogIjAifQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk", + "pattern": "^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]+$", + "type": "string" + } + }, + "type": "object" + }, + "JWSVerifyResponse": { + "properties": { + "error": { + "description": "Error text", + "type": "string" + }, + "headers": { + "description": "Headers from verified JWT.", + "type": "object" + }, + "kid": { + "description": "kid of signer", + "type": "string" + }, + "payload": { + "description": "Payload from verified JWT", + "type": "object" + }, + "valid": { + "type": "boolean" + } + }, + "required": [ + "headers", + "kid", + "payload", + "valid" + ], + "type": "object" + }, + "Keylist": { + "properties": { + "results": { + "description": "List of keylist records", + "items": { + "$ref": "#/definitions/RouteRecord" + }, + "type": "array" + } + }, + "type": "object" + }, + "KeylistQuery": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "filter": { + "description": "Query dictionary object", + "example": { + "filter": {} + }, + "type": "object" + }, + "paginate": { + "allOf": [ + { + "$ref": "#/definitions/KeylistQueryPaginate" + } + ], + "description": "Pagination info" + } + }, + "type": "object" + }, + "KeylistQueryFilterRequest": { + "properties": { + "filter": { + "description": "Filter for keylist query", + "type": "object" + } + }, + "type": "object" + }, + "KeylistQueryPaginate": { + "properties": { + "limit": { + "description": "Limit for keylist query", + "example": 30, + "type": "integer" + }, + "offset": { + "description": "Offset value for query", + "example": 0, + "type": "integer" + } + }, + "type": "object" + }, + "KeylistUpdate": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "updates": { + "description": "List of update rules", + "items": { + "$ref": "#/definitions/KeylistUpdateRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "KeylistUpdateRequest": { + "properties": { + "updates": { + "items": { + "$ref": "#/definitions/KeylistUpdateRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "KeylistUpdateRule": { + "properties": { + "action": { + "description": "Action for specific key", + "enum": [ + "add", + "remove" + ], + "example": "add", + "type": "string" + }, + "recipient_key": { + "description": "Key to remove or add", + "example": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH", + "pattern": "^did:key:z[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$|^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + } + }, + "required": [ + "action", + "recipient_key" + ], + "type": "object" + }, + "LDProofVCDetail": { + "additionalProperties": true, + "properties": { + "credential": { + "allOf": [ + { + "$ref": "#/definitions/Credential" + } + ], + "description": "Detail of the JSON-LD Credential to be issued", + "example": { + "@context": [ + "https://www.w3.org/2018/credentials/v1", + "https://w3id.org/citizenship/v1" + ], + "credentialSubject": { + "familyName": "SMITH", + "gender": "Male", + "givenName": "JOHN", + "type": [ + "PermanentResident", + "Person" + ] + }, + "description": "Government of Example Permanent Resident Card.", + "identifier": "83627465", + "issuanceDate": "2019-12-03T12:19:52Z", + "issuer": "did:key:z6MkmjY8GnV5i9YTDtPETC2uUAW6ejw3nk5mXF5yci5ab7th", + "name": "Permanent Resident Card", + "type": [ + "VerifiableCredential", + "PermanentResidentCard" + ] + } + }, + "options": { + "allOf": [ + { + "$ref": "#/definitions/LDProofVCOptions" + } + ], + "description": "Options for specifying how the linked data proof is created.", + "example": { + "proofType": "Ed25519Signature2018" + } + } + }, + "required": [ + "credential", + "options" + ], + "type": "object" + }, + "LDProofVCOptions": { + "additionalProperties": true, + "properties": { + "challenge": { + "description": "A challenge to include in the proof. SHOULD be provided by the requesting party of the credential (=holder)", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created": { + "description": "The date and time of the proof (with a maximum accuracy in seconds). Defaults to current system time", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "credentialStatus": { + "allOf": [ + { + "$ref": "#/definitions/CredentialStatusOptions" + } + ], + "description": "The credential status mechanism to use for the credential. Omitting the property indicates the issued credential will not include a credential status" + }, + "domain": { + "description": "The intended domain of validity for the proof", + "example": "example.com", + "type": "string" + }, + "proofPurpose": { + "description": "The proof purpose used for the proof. Should match proof purposes registered in the Linked Data Proofs Specification", + "example": "assertionMethod", + "type": "string" + }, + "proofType": { + "description": "The proof type used for the proof. Should match suites registered in the Linked Data Cryptographic Suite Registry", + "example": "Ed25519Signature2018", + "type": "string" + }, + "verificationMethod": { + "description": "The verification method to use for the proof. Should match a verification method in the wallet", + "example": "did:example:123456#key-1", + "type": "string" + } + }, + "type": "object" + }, + "LedgerConfigInstance": { + "properties": { + "genesis_file": { + "description": "genesis_file", + "type": "string" + }, + "genesis_transactions": { + "description": "genesis_transactions", + "type": "string" + }, + "genesis_url": { + "description": "genesis_url", + "type": "string" + }, + "id": { + "description": "ledger_id", + "type": "string" + }, + "is_production": { + "description": "is_production", + "type": "boolean" + } + }, + "type": "object" + }, + "LedgerConfigList": { + "properties": { + "ledger_config_list": { + "items": { + "$ref": "#/definitions/LedgerConfigInstance" + }, + "type": "array" + } + }, + "required": [ + "ledger_config_list" + ], + "type": "object" + }, + "LedgerModulesResult": { + "properties": {}, + "type": "object" + }, + "LinkedDataProof": { + "additionalProperties": true, + "properties": { + "challenge": { + "description": "Associates a challenge with a proof, for use with a proofPurpose such as authentication", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created": { + "description": "The string value of an ISO8601 combined date and time string generated by the Signature Algorithm", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "domain": { + "description": "A string value specifying the restricted domain of the signature.", + "example": "https://example.com", + "type": "string" + }, + "jws": { + "description": "Associates a Detached Json Web Signature with a proof", + "example": "eyJhbGciOiAiRWREUc2UsICJjcml0IjogWyJiNjQiXX0..lKJU0Df_keblRKhZAS9Qq6zybm-HqUXNVZ8vgEPNTAjQ1Ch6YBKY7UBAjg6iBX5qBQ", + "type": "string" + }, + "nonce": { + "description": "The nonce", + "example": "CF69iO3nfvqRsRBNElE8b4wO39SyJHPM7Gg1nExltW5vSfQA1lvDCR/zXX1To0/4NLo==", + "type": "string" + }, + "proofPurpose": { + "description": "Proof purpose", + "example": "assertionMethod", + "type": "string" + }, + "proofValue": { + "description": "The proof value of a proof", + "example": "sy1AahqbzJQ63n9RtekmwzqZeVj494VppdAVJBnMYrTwft6cLJJGeTSSxCCJ6HKnRtwE7jjDh6sB2z2AAiZY9BBnCD8wUVgwqH3qchGRCuC2RugA4eQ9fUrR4Yuycac3caiaaay", + "type": "string" + }, + "type": { + "description": "Identifies the digital signature suite that was used to create the signature", + "example": "Ed25519Signature2018", + "type": "string" + }, + "verificationMethod": { + "description": "Information used for proof verification", + "example": "did:key:z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL#z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL", + "pattern": "\\w+:(\\/?\\/?)[^\\s]+", + "type": "string" + } + }, + "required": [ + "proofPurpose", + "type", + "verificationMethod" + ], + "type": "object" + }, + "ListCredentialsResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/definitions/VerifiableCredential" + }, + "type": "array" + } + }, + "type": "object" + }, + "MediationCreateRequest": { + "properties": {}, + "type": "object" + }, + "MediationDeny": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + } + }, + "type": "object" + }, + "MediationGrant": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "endpoint": { + "description": "endpoint on which messages destined for the recipient are received.", + "example": "http://192.168.56.102:8020/", + "type": "string" + }, + "routing_keys": { + "items": { + "description": "Keys to use for forward message packaging", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "MediationIdMatchInfo": { + "properties": { + "mediation_id": { + "description": "Mediation record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + } + }, + "required": [ + "mediation_id" + ], + "type": "object" + }, + "MediationList": { + "properties": { + "results": { + "description": "List of mediation records", + "items": { + "$ref": "#/definitions/MediationRecord" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" + }, + "MediationRecord": { + "properties": { + "connection_id": { + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "mediation_id": { + "type": "string" + }, + "mediator_terms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recipient_terms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "type": "string" + }, + "routing_keys": { + "items": { + "example": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH", + "pattern": "^did:key:z[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$", + "type": "string" + }, + "type": "array" + }, + "state": { + "description": "Current record state", + "example": "active", + "type": "string" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "required": [ + "connection_id", + "role" + ], + "type": "object" + }, + "Menu": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "description": { + "description": "Introductory text for the menu", + "example": "This menu presents options", + "type": "string" + }, + "errormsg": { + "description": "An optional error message to display in menu header", + "example": "Error: item not found", + "type": "string" + }, + "options": { + "description": "List of menu options", + "items": { + "$ref": "#/definitions/MenuOption" + }, + "type": "array" + }, + "title": { + "description": "Menu title", + "example": "My Menu", + "type": "string" + } + }, + "required": [ + "options" + ], + "type": "object" + }, + "MenuForm": { + "properties": { + "description": { + "description": "Additional descriptive text for menu form", + "example": "Window preference settings", + "type": "string" + }, + "params": { + "description": "List of form parameters", + "items": { + "$ref": "#/definitions/MenuFormParam" + }, + "type": "array" + }, + "submit-label": { + "description": "Alternative label for form submit button", + "example": "Send", + "type": "string" + }, + "title": { + "description": "Menu form title", + "example": "Preferences", + "type": "string" + } + }, + "type": "object" + }, + "MenuFormParam": { + "properties": { + "default": { + "description": "Default parameter value", + "example": "0", + "type": "string" + }, + "description": { + "description": "Additional descriptive text for menu form parameter", + "example": "Delay in seconds before starting", + "type": "string" + }, + "name": { + "description": "Menu parameter name", + "example": "delay", + "type": "string" + }, + "required": { + "description": "Whether parameter is required", + "example": "False", + "type": "boolean" + }, + "title": { + "description": "Menu parameter title", + "example": "Delay in seconds", + "type": "string" + }, + "type": { + "description": "Menu form parameter input type", + "example": "int", + "type": "string" + } + }, + "required": [ + "name", + "title" + ], + "type": "object" + }, + "MenuJson": { + "properties": { + "description": { + "description": "Introductory text for the menu", + "example": "User preferences for window settings", + "type": "string" + }, + "errormsg": { + "description": "Optional error message to display in menu header", + "example": "Error: item not present", + "type": "string" + }, + "options": { + "description": "List of menu options", + "items": { + "$ref": "#/definitions/MenuOption" + }, + "type": "array" + }, + "title": { + "description": "Menu title", + "example": "My Menu", + "type": "string" + } + }, + "required": [ + "options" + ], + "type": "object" + }, + "MenuOption": { + "properties": { + "description": { + "description": "Additional descriptive text for menu option", + "example": "Window display preferences", + "type": "string" + }, + "disabled": { + "description": "Whether to show option as disabled", + "example": "False", + "type": "boolean" + }, + "form": { + "$ref": "#/definitions/MenuForm" + }, + "name": { + "description": "Menu option name (unique identifier)", + "example": "window_prefs", + "type": "string" + }, + "title": { + "description": "Menu option title", + "example": "Window Preferences", + "type": "string" + } + }, + "required": [ + "name", + "title" + ], + "type": "object" + }, + "OobRecord": { + "properties": { + "attach_thread_id": { + "description": "Connection record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "connection_id": { + "description": "Connection record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "invi_msg_id": { + "description": "Invitation message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "invitation": { + "allOf": [ + { + "$ref": "#/definitions/InvitationMessage" + } + ], + "description": "Out of band invitation message" + }, + "multi_use": { + "description": "Allow for multiple uses of the oob invitation", + "example": true, + "type": "boolean" + }, + "oob_id": { + "description": "Oob record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "our_recipient_key": { + "description": "Recipient key used for oob invitation", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "role": { + "description": "OOB Role", + "enum": [ + "sender", + "receiver" + ], + "example": "receiver", + "type": "string" + }, + "state": { + "description": "Out of band message exchange state", + "enum": [ + "initial", + "prepare-response", + "await-response", + "reuse-not-accepted", + "reuse-accepted", + "done", + "deleted" + ], + "example": "await-response", + "type": "string" + }, + "their_service": { + "$ref": "#/definitions/ServiceDecorator" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "required": [ + "invi_msg_id", + "invitation", + "oob_id", + "state" + ], + "type": "object" + }, + "PerformRequest": { + "properties": { + "name": { + "description": "Menu option name", + "example": "Query", + "type": "string" + }, + "params": { + "additionalProperties": { + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "description": "Input parameter values", + "type": "object" + } + }, + "type": "object" + }, + "PingRequest": { + "properties": { + "comment": { + "description": "Comment for the ping message", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "PingRequestResponse": { + "properties": { + "thread_id": { + "description": "Thread ID of the ping message", + "type": "string" + } + }, + "type": "object" + }, + "Presentation": { + "additionalProperties": true, + "properties": { + "@context": { + "description": "The JSON-LD context of the presentation", + "example": [ + "https://www.w3.org/2018/credentials/v1" + ], + "items": {}, + "type": "array" + }, + "holder": { + "description": "The JSON-LD Verifiable Credential Holder. Either string of object with id field.", + "example": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH" + }, + "id": { + "description": "The ID of the presentation", + "example": "http://example.edu/presentations/1872", + "pattern": "\\w+:(\\/?\\/?)[^\\s]+", + "type": "string" + }, + "proof": { + "allOf": [ + { + "$ref": "#/definitions/LinkedDataProof" + } + ], + "description": "The proof of the presentation", + "example": { + "created": "2019-12-11T03:50:55", + "jws": "eyJhbGciOiAiRWREU0EiLCAiYjY0IjogZmFsc2UsICJjcml0JiNjQiXX0..lKJU0Df_keblRKhZAS9Qq6zybm-HqUXNVZ8vgEPNTAjQKBhQDxvXNo7nvtUBb_Eq1Ch6YBKY5qBQ", + "proofPurpose": "assertionMethod", + "type": "Ed25519Signature2018", + "verificationMethod": "did:key:z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL#z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL" + } + }, + "type": { + "description": "The JSON-LD type of the presentation", + "example": [ + "VerifiablePresentation" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "verifiableCredential": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "@context", + "type" + ], + "type": "object" + }, + "PresentationDefinition": { + "properties": { + "format": { + "$ref": "#/definitions/ClaimFormat" + }, + "id": { + "description": "Unique Resource Identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "input_descriptors": { + "items": { + "$ref": "#/definitions/InputDescriptors" + }, + "type": "array" + }, + "name": { + "description": "Human-friendly name that describes what the presentation definition pertains to", + "type": "string" + }, + "purpose": { + "description": "Describes the purpose for which the Presentation Definition's inputs are being requested", + "type": "string" + }, + "submission_requirements": { + "items": { + "$ref": "#/definitions/SubmissionRequirements" + }, + "type": "array" + } + }, + "type": "object" + }, + "PresentationProposal": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "presentation_proposal": { + "$ref": "#/definitions/IndyPresPreview" + } + }, + "required": [ + "presentation_proposal" + ], + "type": "object" + }, + "PresentationRequest": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "request_presentations~attach": { + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + } + }, + "required": [ + "request_presentations~attach" + ], + "type": "object" + }, + "PresentationVerificationResult": { + "properties": { + "credential_results": { + "items": { + "$ref": "#/definitions/DocumentVerificationResult" + }, + "type": "array" + }, + "errors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "presentation_result": { + "$ref": "#/definitions/DocumentVerificationResult" + }, + "verified": { + "type": "boolean" + } + }, + "required": [ + "verified" + ], + "type": "object" + }, + "ProfileSettings": { + "properties": { + "settings": { + "description": "Profile settings dict", + "example": { + "debug.invite_public": true, + "log.level": "INFO", + "public_invites": false + }, + "type": "object" + } + }, + "type": "object" + }, + "ProofResult": { + "properties": { + "error": { + "type": "string" + }, + "proof": { + "type": "object" + }, + "purpose_result": { + "$ref": "#/definitions/PurposeResult" + }, + "verified": { + "type": "boolean" + } + }, + "type": "object" + }, + "ProtocolDescriptor": { + "properties": { + "pid": { + "type": "string" + }, + "roles": { + "description": "List of roles", + "items": { + "description": "Role: requester or responder", + "example": "requester", + "type": "string" + }, + "type": "array", + "x-nullable": true + } + }, + "required": [ + "pid" + ], + "type": "object" + }, + "ProvePresentationRequest": { + "properties": { + "options": { + "$ref": "#/definitions/LDProofVCOptions" + }, + "presentation": { + "$ref": "#/definitions/Presentation" + } + }, + "type": "object" + }, + "ProvePresentationResponse": { + "properties": { + "verifiablePresentation": { + "$ref": "#/definitions/VerifiablePresentation" + } + }, + "type": "object" + }, + "PublishRevocationsOptions": { + "properties": { + "create_transaction_for_endorser": { + "description": "Create transaction for endorser (optional, default false). Use this for agents who don't specify an author role but want to create a transaction for an endorser to sign.", + "example": false, + "required": false, + "type": "boolean" + }, + "endorser_connection_id": { + "description": "Connection identifier (optional) (this is an example). You can set this if you know the endorser's connection id you want to use. If not specified then the agent will attempt to find an endorser connection.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "required": false, + "type": "string" + } + }, + "type": "object" + }, + "PublishRevocationsResultSchemaAnoncreds": { + "properties": { + "rrid2crid": { + "additionalProperties": { + "items": { + "description": "Credential revocation identifier", + "example": "12345", + "pattern": "^[1-9][0-9]*$", + "type": "string" + }, + "type": "array" + }, + "description": "Credential revocation ids by revocation registry id", + "type": "object" + } + }, + "type": "object" + }, + "PublishRevocationsSchemaAnoncreds": { + "properties": { + "options": { + "$ref": "#/definitions/PublishRevocationsOptions" + }, + "rrid2crid": { + "additionalProperties": { + "items": { + "description": "Credential revocation identifier", + "example": "12345", + "pattern": "^[1-9][0-9]*$", + "type": "string" + }, + "type": "array" + }, + "description": "Credential revocation ids by revocation registry id", + "type": "object" + } + }, + "type": "object" + }, + "PurposeResult": { + "properties": { + "controller": { + "type": "object" + }, + "error": { + "type": "string" + }, + "valid": { + "type": "boolean" + } + }, + "type": "object" + }, + "Queries": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "queries": { + "items": { + "$ref": "#/definitions/QueryItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "Query": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "type": "string", + "x-nullable": true + }, + "query": { + "type": "string" + } + }, + "required": [ + "query" + ], + "type": "object" + }, + "QueryItem": { + "properties": { + "feature-type": { + "description": "feature type", + "enum": [ + "protocol", + "goal-code" + ], + "type": "string" + }, + "match": { + "description": "match", + "type": "string" + } + }, + "required": [ + "feature-type", + "match" + ], + "type": "object" + }, + "RawEncoded": { + "properties": { + "encoded": { + "description": "Encoded value", + "example": "-1", + "pattern": "^-?[0-9]*$", + "type": "string" + }, + "raw": { + "description": "Raw value", + "type": "string" + } + }, + "type": "object" + }, + "ReceiveInvitationRequest": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "did": { + "description": "DID for connection invitation", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "imageUrl": { + "description": "Optional image URL for connection invitation", + "example": "http://192.168.56.101/img/logo.jpg", + "format": "url", + "type": "string", + "x-nullable": true + }, + "label": { + "description": "Optional label for connection invitation", + "example": "Bob", + "type": "string" + }, + "recipientKeys": { + "description": "List of recipient keys", + "items": { + "description": "Recipient public key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "type": "array" + }, + "routingKeys": { + "description": "List of routing keys", + "items": { + "description": "Routing key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "type": "array" + }, + "serviceEndpoint": { + "description": "Service endpoint at which to reach this agent", + "example": "http://192.168.56.101:8020", + "type": "string" + } + }, + "type": "object" + }, + "ResolutionResult": { + "properties": { + "did_document": { + "description": "DID Document", + "type": "object" + }, + "metadata": { + "description": "Resolution metadata", + "type": "object" + } + }, + "required": [ + "did_document", + "metadata" + ], + "type": "object" + }, + "RevList": { + "properties": { + "currentAccumulator": { + "description": "The current accumulator value", + "example": "21 118...1FB", + "type": "string" + }, + "issuerId": { + "description": "Issuer Identifier of the credential definition or schema", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "type": "string" + }, + "revRegDefId": { + "description": "The ID of the revocation registry definition", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "type": "string" + }, + "revocationList": { + "description": "Bit list representing revoked credentials", + "example": [ + 0, + 1, + 1, + 0 + ], + "items": { + "type": "integer" + }, + "type": "array" + }, + "timestamp": { + "description": "Timestamp at which revocation list is applicable", + "example": "2021-12-31T23:59:59Z", + "type": "integer" + } + }, + "type": "object" + }, + "RevListCreateRequest": { + "properties": { + "options": { + "$ref": "#/definitions/RevListOptions" + }, + "rev_reg_def_id": { + "description": "Revocation registry definition identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "type": "string" + } + }, + "type": "object" + }, + "RevListOptions": { + "properties": { + "create_transaction_for_endorser": { + "description": "Create transaction for endorser (optional, default false). Use this for agents who don't specify an author role but want to create a transaction for an endorser to sign.", + "example": false, + "type": "boolean" + }, + "endorser_connection_id": { + "description": "Connection identifier (optional) (this is an example). You can set this if you know the endorser's connection id you want to use. If not specified then the agent will attempt to find an endorser connection.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + } + }, + "type": "object" + }, + "RevListResult": { + "properties": { + "job_id": { + "type": "string" + }, + "registration_metadata": { + "type": "object" + }, + "revocation_list_metadata": { + "type": "object" + }, + "revocation_list_state": { + "$ref": "#/definitions/RevListState" + } + }, + "type": "object" + }, + "RevListState": { + "properties": { + "revocation_list": { + "allOf": [ + { + "$ref": "#/definitions/RevList" + } + ], + "description": "revocation list" + }, + "state": { + "enum": [ + "finished", + "failed", + "action", + "wait" + ], + "type": "string" + } + }, + "type": "object" + }, + "RevRegCreateRequestSchemaAnoncreds": { + "properties": { + "options": { + "$ref": "#/definitions/RevRegDefOptions" + }, + "revocation_registry_definition": { + "$ref": "#/definitions/InnerRevRegDef" + } + }, + "type": "object" + }, + "RevRegDef": { + "properties": { + "credDefId": { + "description": "Credential definition identifier", + "example": "did:(method):3:CL:20:tag", + "type": "string" + }, + "issuerId": { + "description": "Issuer Identifier of the credential definition or schema", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "type": "string" + }, + "revocDefType": { + "type": "string" + }, + "tag": { + "description": "tag for the revocation registry definition", + "example": "default", + "type": "string" + }, + "value": { + "$ref": "#/definitions/RevRegDefValue" + } + }, + "type": "object" + }, + "RevRegDefOptions": { + "properties": { + "create_transaction_for_endorser": { + "description": "Create transaction for endorser (optional, default false). Use this for agents who don't specify an author role but want to create a transaction for an endorser to sign.", + "example": false, + "type": "boolean" + }, + "endorser_connection_id": { + "description": "Connection identifier (optional) (this is an example). You can set this if you know the endorser's connection id you want to use. If not specified then the agent will attempt to find an endorser connection.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + } + }, + "type": "object" + }, + "RevRegDefResult": { + "properties": { + "job_id": { + "type": "string" + }, + "registration_metadata": { + "type": "object" + }, + "revocation_registry_definition_metadata": { + "type": "object" + }, + "revocation_registry_definition_state": { + "$ref": "#/definitions/RevRegDefState" + } + }, + "type": "object" + }, + "RevRegDefState": { + "properties": { + "revocation_registry_definition": { + "allOf": [ + { + "$ref": "#/definitions/RevRegDef" + } + ], + "description": "revocation registry definition" + }, + "revocation_registry_definition_id": { + "description": "revocation registry definition id", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "type": "string" + }, + "state": { + "enum": [ + "finished", + "failed", + "action", + "wait", + "decommissioned", + "full" + ], + "type": "string" + } + }, + "type": "object" + }, + "RevRegDefValue": { + "properties": { + "maxCredNum": { + "example": 777, + "type": "integer" + }, + "publicKeys": { + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "type": "object" + }, + "tailsHash": { + "example": "7Qen9RDyemMuV7xGQvp7NjwMSpyHieJyBakycxN7dX7P", + "type": "string" + }, + "tailsLocation": { + "example": "https://tails-server.com/hash/7Qen9RDyemMuV7xGQvp7NjwMSpyHieJyBakycxN7dX7P", + "type": "string" + } + }, + "type": "object" + }, + "RevRegIssuedResultSchemaAnoncreds": { + "properties": { + "result": { + "description": "Number of credentials issued against revocation registry", + "example": 0, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "RevRegResultSchemaAnoncreds": { + "properties": { + "result": { + "$ref": "#/definitions/IssuerRevRegRecord" + } + }, + "type": "object" + }, + "RevRegWalletUpdatedResultSchemaAnoncreds": { + "properties": { + "accum_calculated": { + "description": "Calculated accumulator for phantom revocations", + "type": "object" + }, + "accum_fixed": { + "description": "Applied ledger transaction to fix revocations", + "type": "object" + }, + "rev_reg_delta": { + "description": "Indy revocation registry delta", + "type": "object" + } + }, + "type": "object" + }, + "RevRegsCreatedSchemaAnoncreds": { + "properties": { + "rev_reg_ids": { + "items": { + "description": "Revocation registry identifiers", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "pattern": "^(.+$)", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RevocationAnoncredsModuleResponse": { + "properties": {}, + "type": "object" + }, + "RevocationModuleResponse": { + "properties": {}, + "type": "object" + }, + "RevokeRequestSchemaAnoncreds": { + "properties": { + "comment": { + "description": "Optional comment to include in revocation notification", + "type": "string" + }, + "connection_id": { + "description": "Connection ID to which the revocation notification will be sent; required if notify is true", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "cred_ex_id": { + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "cred_rev_id": { + "description": "Credential revocation identifier", + "example": "12345", + "pattern": "^[1-9][0-9]*$", + "type": "string" + }, + "notify": { + "description": "Send a notification to the credential recipient", + "type": "boolean" + }, + "notify_version": { + "description": "Specify which version of the revocation notification should be sent", + "enum": [ + "v1_0", + "v2_0" + ], + "type": "string" + }, + "publish": { + "description": "(True) publish revocation to ledger immediately, or (default, False) mark it pending", + "type": "boolean" + }, + "rev_reg_id": { + "description": "Revocation registry identifier", + "example": "did:(method):4:did:\u003Cmethod\u003E:3:CL:20:tag:CL_ACCUM:0", + "pattern": "^(.+$)", + "type": "string" + }, + "thread_id": { + "description": "Thread ID of the credential exchange message thread resulting in the credential now being revoked; required if notify is true", + "type": "string" + } + }, + "type": "object" + }, + "Rotate": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "to_did": { + "description": "The DID the rotating party is rotating to", + "example": "did:example:newdid", + "type": "string" + } + }, + "required": [ + "to_did" + ], + "type": "object" + }, + "RouteRecord": { + "properties": { + "connection_id": { + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "recipient_key": { + "type": "string" + }, + "record_id": { + "type": "string" + }, + "role": { + "type": "string" + }, + "state": { + "description": "Current record state", + "example": "active", + "type": "string" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "wallet_id": { + "type": "string" + } + }, + "required": [ + "recipient_key" + ], + "type": "object" + }, + "SDJWSCreate": { + "properties": { + "did": { + "description": "DID of interest", + "example": "did:peer:WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$|^did:([a-zA-Z0-9_]+)(:[a-zA-Z0-9_.%-]+)?:([a-zA-Z0-9_.%-]+(:[a-zA-Z0-9_.%-]+)*)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)(\\/[^#?]*)?([?][^#]*)?(\\#.*)?$$", + "type": "string" + }, + "headers": { + "type": "object" + }, + "non_sd_list": { + "items": { + "example": [ + "name", + "address", + "address.street_address", + "nationalities[1:3]" + ], + "pattern": "[a-z0-9:\\[\\]_\\.@?\\(\\)]", + "type": "string" + }, + "type": "array" + }, + "payload": { + "type": "object" + }, + "verificationMethod": { + "description": "Information used for proof verification", + "example": "did:key:z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL#z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL", + "pattern": "\\w+:(\\/?\\/?)[^\\s]+", + "type": "string" + } + }, + "required": [ + "payload" + ], + "type": "object" + }, + "SDJWSVerify": { + "properties": { + "sd_jwt": { + "example": "eyJhbGciOiJFZERTQSJ9.eyJhIjogIjAifQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk~WyJEM3BUSFdCYWNRcFdpREc2TWZKLUZnIiwgIkRFIl0~WyJPMTFySVRjRTdHcXExYW9oRkd0aDh3IiwgIlNBIl0~WyJkVmEzX1JlTGNsWTU0R1FHZm5oWlRnIiwgInVwZGF0ZWRfYXQiLCAxNTcwMDAwMDAwXQ", + "pattern": "^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]+(?:~[a-zA-Z0-9._-]+)*~?$", + "type": "string" + } + }, + "type": "object" + }, + "SDJWSVerifyResponse": { + "properties": { + "disclosures": { + "description": "Disclosure arrays associated with the SD-JWT", + "example": [ + [ + "fx1iT_mETjGiC-JzRARnVg", + "name", + "Alice" + ], + [ + "n4-t3mlh8jSS6yMIT7QHnA", + "street_address", + { + "_sd": [ + "kLZrLK7enwfqeOzJ9-Ss88YS3mhjOAEk9lr_ix2Heng" + ] + } + ] + ], + "items": { + "items": {}, + "type": "array" + }, + "type": "array" + }, + "error": { + "description": "Error text", + "type": "string" + }, + "headers": { + "description": "Headers from verified JWT.", + "type": "object" + }, + "kid": { + "description": "kid of signer", + "type": "string" + }, + "payload": { + "description": "Payload from verified JWT", + "type": "object" + }, + "valid": { + "type": "boolean" + } + }, + "required": [ + "headers", + "kid", + "payload", + "valid" + ], + "type": "object" + }, + "SchemaInputDescriptor": { + "properties": { + "required": { + "description": "Required", + "type": "boolean" + }, + "uri": { + "description": "URI", + "type": "string" + } + }, + "type": "object" + }, + "SchemaPostOption": { + "properties": { + "create_transaction_for_endorser": { + "description": "Create transaction for endorser (optional, default false). Use this for agents who don't specify an author role but want to create a transaction for an endorser to sign.", + "example": false, + "type": "boolean" + }, + "endorser_connection_id": { + "description": "Connection identifier (optional) (this is an example). You can set this if you know the endorser's connection id you want to use. If not specified then the agent will attempt to find an endorser connection.", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + } + }, + "type": "object" + }, + "SchemaPostRequest": { + "properties": { + "options": { + "$ref": "#/definitions/SchemaPostOption" + }, + "schema": { + "$ref": "#/definitions/AnonCredsSchema" + } + }, + "type": "object" + }, + "SchemaResult": { + "properties": { + "job_id": { + "type": "string" + }, + "registration_metadata": { + "type": "object" + }, + "schema_metadata": { + "type": "object" + }, + "schema_state": { + "$ref": "#/definitions/SchemaState" + } + }, + "type": "object" + }, + "SchemaState": { + "properties": { + "schema": { + "$ref": "#/definitions/AnonCredsSchema" + }, + "schema_id": { + "description": "Schema identifier", + "example": "did:(method):2:schema_name:1.0", + "type": "string" + }, + "state": { + "enum": [ + "finished", + "failed", + "action", + "wait" + ], + "type": "string" + } + }, + "type": "object" + }, + "SchemasInputDescriptorFilter": { + "properties": { + "oneof_filter": { + "description": "oneOf", + "type": "boolean" + }, + "uri_groups": { + "items": { + "items": { + "$ref": "#/definitions/SchemaInputDescriptor" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "SendMenu": { + "properties": { + "menu": { + "allOf": [ + { + "$ref": "#/definitions/MenuJson" + } + ], + "description": "Menu to send to connection" + } + }, + "required": [ + "menu" + ], + "type": "object" + }, + "SendMessage": { + "properties": { + "content": { + "description": "Message content", + "example": "Hello", + "type": "string" + } + }, + "type": "object" + }, + "Service": { + "properties": { + "id": { + "description": "Service ID", + "example": "did:example:123#service-1", + "type": "string" + }, + "serviceEndpoint": { + "description": "Array of Service endpoints", + "items": { + "description": "Service endpoint URL", + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "Service Type", + "example": "MessagingService", + "type": "string" + } + }, + "required": [ + "id", + "serviceEndpoint", + "type" + ], + "type": "object" + }, + "ServiceDecorator": { + "properties": { + "recipientKeys": { + "description": "List of recipient keys", + "items": { + "description": "Recipient public key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "type": "array" + }, + "routingKeys": { + "description": "List of routing keys", + "items": { + "description": "Routing key", + "example": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{43,44}$", + "type": "string" + }, + "type": "array" + }, + "serviceEndpoint": { + "description": "Service endpoint at which to reach this agent", + "example": "http://192.168.56.101:8020", + "type": "string" + } + }, + "required": [ + "recipientKeys", + "serviceEndpoint" + ], + "type": "object" + }, + "SignRequest": { + "properties": { + "doc": { + "$ref": "#/definitions/Doc" + }, + "verkey": { + "description": "Verkey to use for signing", + "type": "string" + } + }, + "required": [ + "doc", + "verkey" + ], + "type": "object" + }, + "SignResponse": { + "properties": { + "error": { + "description": "Error text", + "type": "string" + }, + "signed_doc": { + "description": "Signed document", + "type": "object" + } + }, + "type": "object" + }, + "SignatureOptions": { + "properties": { + "challenge": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "proofPurpose": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verificationMethod": { + "type": "string" + } + }, + "required": [ + "proofPurpose", + "verificationMethod" + ], + "type": "object" + }, + "SignedDoc": { + "additionalProperties": true, + "properties": { + "proof": { + "allOf": [ + { + "$ref": "#/definitions/SignatureOptions" + } + ], + "description": "Linked data proof" + } + }, + "required": [ + "proof" + ], + "type": "object" + }, + "StoreCredentialRequest": { + "properties": { + "verifiableCredential": { + "$ref": "#/definitions/VerifiableCredential" + } + }, + "type": "object" + }, + "StoreCredentialResponse": { + "properties": { + "credentialId": { + "type": "string" + } + }, + "type": "object" + }, + "SubmissionRequirements": { + "properties": { + "count": { + "description": "Count Value", + "example": 1234, + "type": "integer" + }, + "from": { + "description": "From", + "type": "string" + }, + "from_nested": { + "items": { + "$ref": "#/definitions/SubmissionRequirements" + }, + "type": "array" + }, + "max": { + "description": "Max Value", + "example": 1234, + "type": "integer" + }, + "min": { + "description": "Min Value", + "example": 1234, + "type": "integer" + }, + "name": { + "description": "Name", + "type": "string" + }, + "purpose": { + "description": "Purpose", + "type": "string" + }, + "rule": { + "description": "Selection", + "enum": [ + "all", + "pick" + ], + "type": "string" + } + }, + "type": "object" + }, + "TAAAccept": { + "properties": { + "mechanism": { + "type": "string" + }, + "text": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "TAAAcceptance": { + "properties": { + "mechanism": { + "type": "string" + }, + "time": { + "example": 1640995199, + "maximum": 1.8446744073709552e+19, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + "TAAInfo": { + "properties": { + "aml_record": { + "$ref": "#/definitions/AMLRecord" + }, + "taa_accepted": { + "$ref": "#/definitions/TAAAcceptance" + }, + "taa_record": { + "$ref": "#/definitions/TAARecord" + }, + "taa_required": { + "type": "boolean" + } + }, + "type": "object" + }, + "TAARecord": { + "properties": { + "digest": { + "type": "string" + }, + "text": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "TAAResult": { + "properties": { + "result": { + "$ref": "#/definitions/TAAInfo" + } + }, + "type": "object" + }, + "TransactionJobs": { + "properties": { + "transaction_my_job": { + "description": "My transaction related job", + "enum": [ + "TRANSACTION_AUTHOR", + "TRANSACTION_ENDORSER", + "reset" + ], + "type": "string" + }, + "transaction_their_job": { + "description": "Their transaction related job", + "enum": [ + "TRANSACTION_AUTHOR", + "TRANSACTION_ENDORSER", + "reset" + ], + "type": "string" + } + }, + "type": "object" + }, + "TransactionList": { + "properties": { + "results": { + "description": "List of transaction records", + "items": { + "$ref": "#/definitions/TransactionRecord" + }, + "type": "array" + } + }, + "type": "object" + }, + "TransactionRecord": { + "properties": { + "_type": { + "description": "Transaction type", + "example": "101", + "type": "string" + }, + "connection_id": { + "description": "The connection identifier for this particular transaction record", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "endorser_write_txn": { + "description": "Request Endorser to write the ledger transaction, this parameter is deprecated and no longer supported.", + "example": false, + "type": "boolean" + }, + "formats": { + "items": { + "additionalProperties": { + "type": "string" + }, + "example": { + "attach_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "format": "dif/endorse-transaction/request@v1.0" + }, + "type": "object" + }, + "type": "array" + }, + "messages_attach": { + "items": { + "example": { + "@id": "143c458d-1b1c-40c7-ab85-4d16808ddf0a", + "data": { + "json": "{\"endorser\": \"V4SGRU86Z58d6TV7PBUe6f\",\"identifier\": \"LjgpST2rjsoxYegQDRm7EL\",\"operation\": {\"data\": {\"attr_names\": [\"first_name\", \"last_name\"],\"name\": \"test_schema\",\"version\": \"2.1\",},\"type\": \"101\",},\"protocolVersion\": 2,\"reqId\": 1597766666168851000,\"signatures\": {\"LjgpST2rjsox\": \"4ATKMn6Y9sTgwqaGTm7py2c2M8x1EVDTWKZArwyuPgjU\"}, \"taaAcceptance\": {\"mechanism\": \"manual\",\"taaDigest\": \"f50fe2c2ab977006761d36bd6f23e4c6a7e0fc2feb9f62\",\"time\": 1597708800,}}" + }, + "mime-type": "application/json" + }, + "type": "object" + }, + "type": "array" + }, + "meta_data": { + "example": { + "context": { + "param1": "param1_value", + "param2": "param2_value" + }, + "post_process": [ + { + "topic": "topic_value", + "other": "other_value" + } + ] + }, + "type": "object" + }, + "signature_request": { + "items": { + "example": { + "author_goal_code": "aries.transaction.ledger.write", + "context": "did:sov", + "method": "add-signature", + "signature_type": "default", + "signer_goal_code": "aries.transaction.endorse" + }, + "type": "object" + }, + "type": "array" + }, + "signature_response": { + "items": { + "example": { + "context": "did:sov", + "message_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "method": "add-signature", + "signer_goal_code": "aries.transaction.refuse" + }, + "type": "object" + }, + "type": "array" + }, + "state": { + "description": "Current record state", + "example": "active", + "type": "string" + }, + "thread_id": { + "description": "Thread Identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "timing": { + "example": { + "expires_time": "2020-12-13T17:29:06+0000" + }, + "type": "object" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "transaction_id": { + "description": "Transaction identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "TxnOrRegisterLedgerNymResponse": { + "properties": { + "success": { + "description": "Success of nym registration operation", + "example": true, + "type": "boolean" + }, + "txn": { + "allOf": [ + { + "$ref": "#/definitions/TransactionRecord" + } + ], + "description": "DID transaction to endorse" + } + }, + "type": "object" + }, + "UpdateKeyRequest": { + "properties": { + "kid": { + "description": "New kid to bind to the key pair, such as a verificationMethod.", + "example": "did:web:example.com#key-02", + "type": "string" + }, + "multikey": { + "description": "Multikey of the key pair to update", + "example": "z6MkgKA7yrw5kYSiDuQFcye4bMaJpcfHFry3Bx45pdWh3s8i", + "type": "string" + } + }, + "required": [ + "kid", + "multikey" + ], + "type": "object" + }, + "UpdateKeyResponse": { + "properties": { + "kid": { + "description": "The associated kid", + "example": "did:web:example.com#key-02", + "type": "string" + }, + "multikey": { + "description": "The Public Key Multibase format (multikey)", + "example": "z6MkgKA7yrw5kYSiDuQFcye4bMaJpcfHFry3Bx45pdWh3s8i", + "type": "string" + } + }, + "type": "object" + }, + "UpdateProfileSettings": { + "properties": { + "extra_settings": { + "description": "Agent config key-value pairs", + "example": { + "ACAPY_INVITE_PUBLIC": true, + "log-level": "INFO", + "public-invites": false + }, + "type": "object" + } + }, + "type": "object" + }, + "UpdateRequest": { + "properties": { + "did": { + "description": "DID to update", + "example": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "pattern": "^(did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)([?][^#]*)?|did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)/resources/([a-z,0-9,-]{36,36})([?][^#]*)?)$", + "type": "string" + }, + "didDocument": { + "allOf": [ + { + "$ref": "#/definitions/DIDDocument" + } + ], + "description": "DID Document to update", + "example": { + "authentication": [ + "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1" + ], + "controller": [ + "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86" + ], + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "service": [ + { + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#service-1", + "type": "MessagingService", + "serviceEndpoint": [ + "https://example.com/service" + ] + } + ], + "verificationMethod": [ + { + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1", + "type": "Ed25519VerificationKey2018", + "controller": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "publicKeyMultibase": "z6Mk..." + } + ] + } + }, + "options": { + "description": "Additional configuration options", + "example": { + "network": "testnet" + }, + "type": "object" + } + }, + "required": [ + "did", + "didDocument" + ], + "type": "object" + }, + "UpdateResponse": { + "properties": { + "did": { + "description": "DID that has been updated", + "example": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "pattern": "^(did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)((;[a-zA-Z0-9_.:%-]+=[a-zA-Z0-9_.:%-]*)*)([?][^#]*)?|did:cheqd:(testnet|mainnet):(?:(?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))*:)*((?:[a-zA-Z0-9]{21,22}|([a-z,0-9,-]{36,36}))+)/resources/([a-z,0-9,-]{36,36})([?][^#]*)?)$", + "type": "string" + }, + "didState": { + "description": "State of the did update", + "example": { + "did": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "didDocument": { + "authentication": [ + "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1" + ], + "controller": [ + "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86" + ], + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "verificationMethod": [ + { + "id": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1", + "type": "Ed25519VerificationKey2020", + "controller": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86", + "publicKeyMultibase": "z6Mk..." + } + ] + }, + "secret": { + "signingResponse": [ + { + "kid": "did:cheqd:testnet:099be283-4302-40cc-9850-22016bcd1d86#key-1", + "signature": "SHFz..." + } + ] + }, + "state": "finished" + }, + "type": "string" + }, + "success": { + "description": "Flag to denote if the operation was successful", + "example": true, + "type": "boolean" + } + }, + "required": [ + "didState" + ], + "type": "object" + }, + "UpgradeResult": { + "properties": {}, + "type": "object" + }, + "V10CredentialBoundOfferRequest": { + "properties": { + "counter_proposal": { + "allOf": [ + { + "$ref": "#/definitions/CredentialProposal" + } + ], + "description": "Optional counter-proposal" + } + }, + "type": "object" + }, + "V10CredentialConnFreeOfferRequest": { + "properties": { + "auto_issue": { + "description": "Whether to respond automatically to credential requests, creating and issuing requested credentials", + "type": "boolean" + }, + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "credential_preview": { + "$ref": "#/definitions/CredentialPreview" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "required": [ + "cred_def_id", + "credential_preview" + ], + "type": "object" + }, + "V10CredentialCreate": { + "properties": { + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "credential_proposal": { + "$ref": "#/definitions/CredentialPreview" + }, + "issuer_did": { + "description": "Credential issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "schema_issuer_did": { + "description": "Schema issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_name": { + "description": "Schema name", + "example": "preferences", + "type": "string" + }, + "schema_version": { + "description": "Schema version", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "required": [ + "credential_proposal" + ], + "type": "object" + }, + "V10CredentialExchange": { + "properties": { + "auto_issue": { + "description": "Issuer choice to issue to request in this credential exchange", + "example": false, + "type": "boolean" + }, + "auto_offer": { + "description": "Holder choice to accept offer in this credential exchange", + "example": false, + "type": "boolean" + }, + "auto_remove": { + "description": "Issuer choice to remove this credential exchange record when complete", + "example": false, + "type": "boolean" + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "credential": { + "allOf": [ + { + "$ref": "#/definitions/IndyCredInfo" + } + ], + "description": "Credential as stored" + }, + "credential_definition_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "credential_exchange_id": { + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "credential_id": { + "description": "Credential identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "credential_offer": { + "allOf": [ + { + "$ref": "#/definitions/IndyCredAbstract" + } + ], + "description": "(Indy) credential offer" + }, + "credential_offer_dict": { + "allOf": [ + { + "$ref": "#/definitions/CredentialOffer" + } + ], + "description": "Credential offer message" + }, + "credential_proposal_dict": { + "allOf": [ + { + "$ref": "#/definitions/CredentialProposal" + } + ], + "description": "Credential proposal message" + }, + "credential_request": { + "allOf": [ + { + "$ref": "#/definitions/IndyCredRequest" + } + ], + "description": "(Indy) credential request" + }, + "credential_request_metadata": { + "description": "(Indy) credential request metadata", + "type": "object" + }, + "error_msg": { + "description": "Error message", + "example": "Credential definition identifier is not set in proposal", + "type": "string" + }, + "initiator": { + "description": "Issue-credential exchange initiator: self or external", + "enum": [ + "self", + "external" + ], + "example": "self", + "type": "string" + }, + "parent_thread_id": { + "description": "Parent thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "raw_credential": { + "allOf": [ + { + "$ref": "#/definitions/IndyCredential" + } + ], + "description": "Credential as received, prior to storage in holder wallet" + }, + "revoc_reg_id": { + "description": "Revocation registry identifier", + "type": "string" + }, + "revocation_id": { + "description": "Credential identifier within revocation registry", + "type": "string" + }, + "role": { + "description": "Issue-credential exchange role: holder or issuer", + "enum": [ + "holder", + "issuer" + ], + "example": "issuer", + "type": "string" + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "state": { + "description": "Issue-credential exchange state", + "example": "credential_acked", + "type": "string" + }, + "thread_id": { + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "V10CredentialExchangeAutoRemoveRequest": { + "properties": { + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + } + }, + "type": "object" + }, + "V10CredentialExchangeListResult": { + "properties": { + "results": { + "description": "Aries#0036 v1.0 credential exchange records", + "items": { + "$ref": "#/definitions/V10CredentialExchange" + }, + "type": "array" + } + }, + "type": "object" + }, + "V10CredentialFreeOfferRequest": { + "properties": { + "auto_issue": { + "description": "Whether to respond automatically to credential requests, creating and issuing requested credentials", + "type": "boolean" + }, + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "credential_preview": { + "$ref": "#/definitions/CredentialPreview" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "required": [ + "connection_id", + "cred_def_id", + "credential_preview" + ], + "type": "object" + }, + "V10CredentialIssueRequest": { + "properties": { + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "V10CredentialProblemReportRequest": { + "properties": { + "description": { + "type": "string" + } + }, + "required": [ + "description" + ], + "type": "object" + }, + "V10CredentialProposalRequestMand": { + "properties": { + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "credential_proposal": { + "$ref": "#/definitions/CredentialPreview" + }, + "issuer_did": { + "description": "Credential issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "schema_issuer_did": { + "description": "Schema issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_name": { + "description": "Schema name", + "example": "preferences", + "type": "string" + }, + "schema_version": { + "description": "Schema version", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "required": [ + "connection_id", + "credential_proposal" + ], + "type": "object" + }, + "V10CredentialProposalRequestOpt": { + "properties": { + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "credential_proposal": { + "$ref": "#/definitions/CredentialPreview" + }, + "issuer_did": { + "description": "Credential issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "schema_issuer_did": { + "description": "Schema issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_name": { + "description": "Schema name", + "example": "preferences", + "type": "string" + }, + "schema_version": { + "description": "Schema version", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "required": [ + "connection_id" + ], + "type": "object" + }, + "V10CredentialStoreRequest": { + "properties": { + "credential_id": { + "type": "string" + } + }, + "type": "object" + }, + "V10DiscoveryExchangeListResult": { + "properties": { + "results": { + "items": { + "allOf": [ + { + "$ref": "#/definitions/V10DiscoveryRecord" + } + ], + "description": "Discover Features v1.0 exchange record" + }, + "type": "array" + } + }, + "type": "object" + }, + "V10DiscoveryRecord": { + "properties": { + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "disclose": { + "allOf": [ + { + "$ref": "#/definitions/Disclose" + } + ], + "description": "Disclose message" + }, + "discovery_exchange_id": { + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "query_msg": { + "allOf": [ + { + "$ref": "#/definitions/Query" + } + ], + "description": "Query message" + }, + "state": { + "description": "Current record state", + "example": "active", + "type": "string" + }, + "thread_id": { + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "V10PresentProofModuleResponse": { + "properties": {}, + "type": "object" + }, + "V10PresentationCreateRequestRequest": { + "properties": { + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "auto_verify": { + "description": "Verifier choice to auto-verify proof presentation", + "example": false, + "type": "boolean" + }, + "comment": { + "type": "string", + "x-nullable": true + }, + "proof_request": { + "$ref": "#/definitions/IndyProofRequest" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "proof_request" + ], + "type": "object" + }, + "V10PresentationExchange": { + "properties": { + "auto_present": { + "description": "Prover choice to auto-present proof as verifier requests", + "example": false, + "type": "boolean" + }, + "auto_remove": { + "description": "Verifier choice to remove this presentation exchange record when complete", + "example": false, + "type": "boolean" + }, + "auto_verify": { + "description": "Verifier choice to auto-verify proof presentation", + "type": "boolean" + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "error_msg": { + "description": "Error message", + "example": "Invalid structure", + "type": "string" + }, + "initiator": { + "description": "Present-proof exchange initiator: self or external", + "enum": [ + "self", + "external" + ], + "example": "self", + "type": "string" + }, + "presentation": { + "allOf": [ + { + "$ref": "#/definitions/IndyProof" + } + ], + "description": "(Indy) presentation (also known as proof)" + }, + "presentation_exchange_id": { + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "presentation_proposal_dict": { + "allOf": [ + { + "$ref": "#/definitions/PresentationProposal" + } + ], + "description": "Presentation proposal message" + }, + "presentation_request": { + "allOf": [ + { + "$ref": "#/definitions/IndyProofRequest" + } + ], + "description": "(Indy) presentation request (also known as proof request)" + }, + "presentation_request_dict": { + "allOf": [ + { + "$ref": "#/definitions/PresentationRequest" + } + ], + "description": "Presentation request message" + }, + "role": { + "description": "Present-proof exchange role: prover or verifier", + "enum": [ + "prover", + "verifier" + ], + "example": "prover", + "type": "string" + }, + "state": { + "description": "Present-proof exchange state", + "example": "verified", + "type": "string" + }, + "thread_id": { + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "verified": { + "description": "Whether presentation is verified: true or false", + "enum": [ + "true", + "false" + ], + "example": "true", + "type": "string" + }, + "verified_msgs": { + "items": { + "description": "Proof verification warning or error information", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "V10PresentationExchangeList": { + "properties": { + "results": { + "description": "Aries RFC 37 v1.0 presentation exchange records", + "items": { + "$ref": "#/definitions/V10PresentationExchange" + }, + "type": "array" + } + }, + "type": "object" + }, + "V10PresentationProblemReportRequest": { + "properties": { + "description": { + "type": "string" + } + }, + "required": [ + "description" + ], + "type": "object" + }, + "V10PresentationProposalRequest": { + "properties": { + "auto_present": { + "description": "Whether to respond automatically to presentation requests, building and presenting requested proof", + "type": "boolean" + }, + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "presentation_proposal": { + "$ref": "#/definitions/IndyPresPreview" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "connection_id", + "presentation_proposal" + ], + "type": "object" + }, + "V10PresentationSendRequest": { + "properties": { + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "requested_attributes": { + "additionalProperties": { + "$ref": "#/definitions/IndyRequestedCredsRequestedAttr" + }, + "description": "Nested object mapping proof request attribute referents to requested-attribute specifiers", + "type": "object" + }, + "requested_predicates": { + "additionalProperties": { + "$ref": "#/definitions/IndyRequestedCredsRequestedPred" + }, + "description": "Nested object mapping proof request predicate referents to requested-predicate specifiers", + "type": "object" + }, + "self_attested_attributes": { + "additionalProperties": { + "description": "Self-attested attribute values to use in requested-credentials structure for proof construction", + "example": "self_attested_value", + "type": "string" + }, + "description": "Self-attested attributes to build into proof", + "type": "object" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "requested_attributes", + "requested_predicates", + "self_attested_attributes" + ], + "type": "object" + }, + "V10PresentationSendRequestRequest": { + "properties": { + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "auto_verify": { + "description": "Verifier choice to auto-verify proof presentation", + "example": false, + "type": "boolean" + }, + "comment": { + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "proof_request": { + "$ref": "#/definitions/IndyProofRequest" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "connection_id", + "proof_request" + ], + "type": "object" + }, + "V10PresentationSendRequestToProposal": { + "properties": { + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "auto_verify": { + "description": "Verifier choice to auto-verify proof presentation", + "example": false, + "type": "boolean" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "type": "object" + }, + "V20CredAttrSpec": { + "properties": { + "mime-type": { + "description": "MIME type: omit for (null) default", + "example": "image/jpeg", + "type": "string", + "x-nullable": true + }, + "name": { + "description": "Attribute name", + "example": "favourite_drink", + "type": "string" + }, + "value": { + "description": "Attribute value: base64-encode if MIME type is present", + "example": "martini", + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object" + }, + "V20CredBoundOfferRequest": { + "properties": { + "counter_preview": { + "allOf": [ + { + "$ref": "#/definitions/V20CredPreview" + } + ], + "description": "Optional content for counter-proposal" + }, + "filter": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilter" + } + ], + "description": "Credential specification criteria by format" + } + }, + "type": "object" + }, + "V20CredExFree": { + "properties": { + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "credential_preview": { + "$ref": "#/definitions/V20CredPreview" + }, + "filter": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilter" + } + ], + "description": "Credential specification criteria by format" + }, + "replacement_id": { + "description": "Optional identifier used to manage credential replacement", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string", + "x-nullable": true + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "verification_method": { + "description": "For ld-proofs. Verification method for signing.", + "type": "string", + "x-nullable": true + } + }, + "required": [ + "connection_id", + "filter" + ], + "type": "object" + }, + "V20CredExRecord": { + "properties": { + "auto_issue": { + "description": "Issuer choice to issue to request in this credential exchange", + "example": false, + "type": "boolean" + }, + "auto_offer": { + "description": "Holder choice to accept offer in this credential exchange", + "example": false, + "type": "boolean" + }, + "auto_remove": { + "description": "Issuer choice to remove this credential exchange record when complete", + "example": false, + "type": "boolean" + }, + "by_format": { + "allOf": [ + { + "$ref": "#/definitions/V20CredExRecordByFormat" + } + ], + "description": "Attachment content by format for proposal, offer, request, and issue", + "readOnly": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "cred_ex_id": { + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_issue": { + "allOf": [ + { + "$ref": "#/definitions/V20CredIssue" + } + ], + "description": "Serialized credential issue message" + }, + "cred_offer": { + "allOf": [ + { + "$ref": "#/definitions/V20CredOffer" + } + ], + "description": "Credential offer message" + }, + "cred_preview": { + "allOf": [ + { + "$ref": "#/definitions/V20CredPreview" + } + ], + "description": "Credential preview from credential proposal", + "readOnly": true + }, + "cred_proposal": { + "allOf": [ + { + "$ref": "#/definitions/V20CredProposal" + } + ], + "description": "Credential proposal message" + }, + "cred_request": { + "allOf": [ + { + "$ref": "#/definitions/V20CredRequest" + } + ], + "description": "Serialized credential request message" + }, + "error_msg": { + "description": "Error message", + "example": "The front fell off", + "type": "string" + }, + "initiator": { + "description": "Issue-credential exchange initiator: self or external", + "enum": [ + "self", + "external" + ], + "example": "self", + "type": "string" + }, + "parent_thread_id": { + "description": "Parent thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "role": { + "description": "Issue-credential exchange role: holder or issuer", + "enum": [ + "issuer", + "holder" + ], + "example": "issuer", + "type": "string" + }, + "state": { + "description": "Issue-credential exchange state", + "enum": [ + "proposal-sent", + "proposal-received", + "offer-sent", + "offer-received", + "request-sent", + "request-received", + "credential-issued", + "credential-received", + "done", + "credential-revoked", + "abandoned", + "deleted" + ], + "example": "done", + "type": "string" + }, + "thread_id": { + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "V20CredExRecordByFormat": { + "properties": { + "cred_issue": { + "type": "object" + }, + "cred_offer": { + "type": "object" + }, + "cred_proposal": { + "type": "object" + }, + "cred_request": { + "type": "object" + } + }, + "type": "object" + }, + "V20CredExRecordDetail": { + "properties": { + "cred_ex_record": { + "allOf": [ + { + "$ref": "#/definitions/V20CredExRecord" + } + ], + "description": "Credential exchange record" + }, + "indy": { + "$ref": "#/definitions/V20CredExRecordIndy" + }, + "ld_proof": { + "$ref": "#/definitions/V20CredExRecordLDProof" + }, + "vc_di": { + "$ref": "#/definitions/V20CredExRecord" + } + }, + "type": "object" + }, + "V20CredExRecordIndy": { + "properties": { + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "cred_ex_id": { + "description": "Corresponding v2.0 credential exchange record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_ex_indy_id": { + "description": "Record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_id_stored": { + "description": "Credential identifier stored in wallet", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_request_metadata": { + "description": "Credential request metadata for indy holder", + "type": "object" + }, + "cred_rev_id": { + "description": "Credential revocation identifier within revocation registry", + "example": "12345", + "pattern": "^[1-9][0-9]*$", + "type": "string" + }, + "rev_reg_id": { + "description": "Revocation registry identifier", + "example": "WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:20:tag:CL_ACCUM:0", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):4:([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+))(:.+)?:CL_ACCUM:(.+$)", + "type": "string" + }, + "state": { + "description": "Current record state", + "example": "active", + "type": "string" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "V20CredExRecordLDProof": { + "properties": { + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "cred_ex_id": { + "description": "Corresponding v2.0 credential exchange record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_ex_ld_proof_id": { + "description": "Record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "cred_id_stored": { + "description": "Credential identifier stored in wallet", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "state": { + "description": "Current record state", + "example": "active", + "type": "string" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "V20CredExRecordListResult": { + "properties": { + "results": { + "description": "Credential exchange records and corresponding detail records", + "items": { + "$ref": "#/definitions/V20CredExRecordDetail" + }, + "type": "array" + } + }, + "type": "object" + }, + "V20CredFilter": { + "properties": { + "anoncreds": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilterAnoncreds" + } + ], + "description": "Credential filter for anoncreds" + }, + "indy": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilterIndy" + } + ], + "description": "Credential filter for indy" + }, + "ld_proof": { + "allOf": [ + { + "$ref": "#/definitions/LDProofVCDetail" + } + ], + "description": "Credential filter for linked data proof" + }, + "vc_di": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilterVCDI" + } + ], + "description": "Credential filter for vc_di" + } + }, + "type": "object" + }, + "V20CredFilterAnoncreds": { + "properties": { + "cred_def_id": { + "description": "Credential definition identifier", + "example": "did:(method):3:CL:20:tag", + "type": "string" + }, + "issuer_id": { + "description": "Credential issuer ID", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "type": "string" + }, + "schema_id": { + "description": "Schema identifier", + "example": "did:(method):2:schema_name:1.0", + "type": "string" + }, + "schema_issuer_id": { + "description": "Schema issuer ID", + "example": "did:(method):WgWxqztrNooG92RXvxSTWv", + "type": "string" + }, + "schema_name": { + "description": "Schema name", + "example": "preferences", + "type": "string" + }, + "schema_version": { + "description": "Schema version", + "example": "1.0", + "type": "string" + } + }, + "type": "object" + }, + "V20CredFilterIndy": { + "properties": { + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "issuer_did": { + "description": "Credential issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "schema_issuer_did": { + "description": "Schema issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_name": { + "description": "Schema name", + "example": "preferences", + "type": "string" + }, + "schema_version": { + "description": "Schema version", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + } + }, + "type": "object" + }, + "V20CredFilterLDProof": { + "properties": { + "ld_proof": { + "allOf": [ + { + "$ref": "#/definitions/LDProofVCDetail" + } + ], + "description": "Credential filter for linked data proof" + } + }, + "required": [ + "ld_proof" + ], + "type": "object" + }, + "V20CredFilterVCDI": { + "properties": { + "cred_def_id": { + "description": "Credential definition identifier", + "example": "WgWxqztrNooG92RXvxSTWv:3:CL:20:tag", + "pattern": "^([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}):3:CL:(([1-9][0-9]*)|([123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+)):(.+)?$", + "type": "string" + }, + "issuer_did": { + "description": "Credential issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_id": { + "description": "Schema identifier", + "example": "WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0", + "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}:2:.+:[0-9.]+$", + "type": "string" + }, + "schema_issuer_did": { + "description": "Schema issuer DID", + "example": "WgWxqztrNooG92RXvxSTWv", + "pattern": "^(did:sov:)?[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{21,22}$", + "type": "string" + }, + "schema_name": { + "description": "Schema name", + "example": "preferences", + "type": "string" + }, + "schema_version": { + "description": "Schema version", + "example": "1.0", + "pattern": "^[0-9.]+$", + "type": "string" + } + }, + "type": "object" + }, + "V20CredFormat": { + "properties": { + "attach_id": { + "description": "Attachment identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "format": { + "description": "Attachment format specifier", + "example": "aries/ld-proof-vc-detail@v1.0", + "type": "string" + } + }, + "required": [ + "attach_id", + "format" + ], + "type": "object" + }, + "V20CredIssue": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "credentials~attach": { + "description": "Credential attachments", + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + }, + "formats": { + "description": "Acceptable attachment formats", + "items": { + "$ref": "#/definitions/V20CredFormat" + }, + "type": "array" + }, + "replacement_id": { + "description": "Issuer-unique identifier to coordinate credential replacement", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + } + }, + "required": [ + "credentials~attach", + "formats" + ], + "type": "object" + }, + "V20CredIssueProblemReportRequest": { + "properties": { + "description": { + "type": "string" + } + }, + "required": [ + "description" + ], + "type": "object" + }, + "V20CredIssueRequest": { + "properties": { + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "V20CredOffer": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "credential_preview": { + "$ref": "#/definitions/V20CredPreview" + }, + "formats": { + "description": "Acceptable credential formats", + "items": { + "$ref": "#/definitions/V20CredFormat" + }, + "type": "array" + }, + "offers~attach": { + "description": "Offer attachments", + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + }, + "replacement_id": { + "description": "Issuer-unique identifier to coordinate credential replacement", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + } + }, + "required": [ + "formats", + "offers~attach" + ], + "type": "object" + }, + "V20CredOfferConnFreeRequest": { + "properties": { + "auto_issue": { + "description": "Whether to respond automatically to credential requests, creating and issuing requested credentials", + "type": "boolean" + }, + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "credential_preview": { + "$ref": "#/definitions/V20CredPreview" + }, + "filter": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilter" + } + ], + "description": "Credential specification criteria by format" + }, + "replacement_id": { + "description": "Optional identifier used to manage credential replacement", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string", + "x-nullable": true + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "required": [ + "filter" + ], + "type": "object" + }, + "V20CredOfferRequest": { + "properties": { + "auto_issue": { + "description": "Whether to respond automatically to credential requests, creating and issuing requested credentials", + "type": "boolean" + }, + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "credential_preview": { + "$ref": "#/definitions/V20CredPreview" + }, + "filter": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilter" + } + ], + "description": "Credential specification criteria by format" + }, + "replacement_id": { + "description": "Optional identifier used to manage credential replacement", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string", + "x-nullable": true + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "required": [ + "connection_id", + "filter" + ], + "type": "object" + }, + "V20CredPreview": { + "properties": { + "@type": { + "description": "Message type identifier", + "example": "issue-credential/2.0/credential-preview", + "type": "string" + }, + "attributes": { + "items": { + "$ref": "#/definitions/V20CredAttrSpec" + }, + "type": "array" + } + }, + "required": [ + "attributes" + ], + "type": "object" + }, + "V20CredProposal": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "credential_preview": { + "allOf": [ + { + "$ref": "#/definitions/V20CredPreview" + } + ], + "description": "Credential preview" + }, + "filters~attach": { + "description": "Credential filter per acceptable format on corresponding identifier", + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + }, + "formats": { + "description": "Attachment formats", + "items": { + "$ref": "#/definitions/V20CredFormat" + }, + "type": "array" + } + }, + "required": [ + "filters~attach", + "formats" + ], + "type": "object" + }, + "V20CredRequest": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "formats": { + "description": "Acceptable attachment formats", + "items": { + "$ref": "#/definitions/V20CredFormat" + }, + "type": "array" + }, + "requests~attach": { + "description": "Request attachments", + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + } + }, + "required": [ + "formats", + "requests~attach" + ], + "type": "object" + }, + "V20CredRequestFree": { + "properties": { + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "filter": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilterLDProof" + } + ], + "description": "Credential specification criteria by format" + }, + "holder_did": { + "description": "Holder DID to substitute for the credentialSubject.id", + "example": "did:key:ahsdkjahsdkjhaskjdhakjshdkajhsdkjahs", + "type": "string", + "x-nullable": true + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "connection_id", + "filter" + ], + "type": "object" + }, + "V20CredRequestRequest": { + "properties": { + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "holder_did": { + "description": "Holder DID to substitute for the credentialSubject.id", + "example": "did:key:ahsdkjahsdkjhaskjdhakjshdkajhsdkjahs", + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "V20CredStoreRequest": { + "properties": { + "credential_id": { + "type": "string" + } + }, + "type": "object" + }, + "V20DiscoveryExchangeListResult": { + "properties": { + "results": { + "items": { + "allOf": [ + { + "$ref": "#/definitions/V20DiscoveryRecord" + } + ], + "description": "Discover Features v2.0 exchange record" + }, + "type": "array" + } + }, + "type": "object" + }, + "V20DiscoveryExchangeResult": { + "properties": { + "results": { + "allOf": [ + { + "$ref": "#/definitions/V20DiscoveryRecord" + } + ], + "description": "Discover Features v2.0 exchange record" + } + }, + "type": "object" + }, + "V20DiscoveryRecord": { + "properties": { + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "disclosures": { + "allOf": [ + { + "$ref": "#/definitions/Disclosures" + } + ], + "description": "Disclosures message" + }, + "discovery_exchange_id": { + "description": "Credential exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "queries_msg": { + "allOf": [ + { + "$ref": "#/definitions/Queries" + } + ], + "description": "Queries message" + }, + "state": { + "description": "Current record state", + "example": "active", + "type": "string" + }, + "thread_id": { + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + } + }, + "type": "object" + }, + "V20IssueCredSchemaCore": { + "properties": { + "auto_remove": { + "description": "Whether to remove the credential exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "credential_preview": { + "$ref": "#/definitions/V20CredPreview" + }, + "filter": { + "allOf": [ + { + "$ref": "#/definitions/V20CredFilter" + } + ], + "description": "Credential specification criteria by format" + }, + "replacement_id": { + "description": "Optional identifier used to manage credential replacement", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string", + "x-nullable": true + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "required": [ + "filter" + ], + "type": "object" + }, + "V20IssueCredentialModuleResponse": { + "properties": {}, + "type": "object" + }, + "V20Pres": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "formats": { + "description": "Acceptable attachment formats", + "items": { + "$ref": "#/definitions/V20PresFormat" + }, + "type": "array" + }, + "presentations~attach": { + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + } + }, + "required": [ + "formats", + "presentations~attach" + ], + "type": "object" + }, + "V20PresCreateRequestRequest": { + "properties": { + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "auto_verify": { + "description": "Verifier choice to auto-verify proof presentation", + "example": false, + "type": "boolean" + }, + "comment": { + "type": "string", + "x-nullable": true + }, + "presentation_request": { + "$ref": "#/definitions/V20PresRequestByFormat" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "presentation_request" + ], + "type": "object" + }, + "V20PresExRecord": { + "properties": { + "auto_present": { + "description": "Prover choice to auto-present proof as verifier requests", + "example": false, + "type": "boolean" + }, + "auto_remove": { + "description": "Verifier choice to remove this presentation exchange record when complete", + "example": false, + "type": "boolean" + }, + "auto_verify": { + "description": "Verifier choice to auto-verify proof presentation", + "type": "boolean" + }, + "by_format": { + "allOf": [ + { + "$ref": "#/definitions/V20PresExRecordByFormat" + } + ], + "description": "Attachment content by format for proposal, request, and presentation", + "readOnly": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "created_at": { + "description": "Time of record creation", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "error_msg": { + "description": "Error message", + "example": "Invalid structure", + "type": "string" + }, + "initiator": { + "description": "Present-proof exchange initiator: self or external", + "enum": [ + "self", + "external" + ], + "example": "self", + "type": "string" + }, + "pres": { + "allOf": [ + { + "$ref": "#/definitions/V20Pres" + } + ], + "description": "Presentation message" + }, + "pres_ex_id": { + "description": "Presentation exchange identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "pres_proposal": { + "allOf": [ + { + "$ref": "#/definitions/V20PresProposal" + } + ], + "description": "Presentation proposal message" + }, + "pres_request": { + "allOf": [ + { + "$ref": "#/definitions/V20PresRequest" + } + ], + "description": "Presentation request message" + }, + "role": { + "description": "Present-proof exchange role: prover or verifier", + "enum": [ + "prover", + "verifier" + ], + "example": "prover", + "type": "string" + }, + "state": { + "description": "Present-proof exchange state", + "enum": [ + "proposal-sent", + "proposal-received", + "request-sent", + "request-received", + "presentation-sent", + "presentation-received", + "done", + "abandoned", + "deleted" + ], + "type": "string" + }, + "thread_id": { + "description": "Thread identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + }, + "updated_at": { + "description": "Time of last record update", + "example": "2021-12-31T23:59:59Z", + "pattern": "^\\d{4}-\\d\\d-\\d\\d[T ]\\d\\d:\\d\\d(?:\\:(?:\\d\\d(?:\\.\\d{1,6})?))?(?:[+-]\\d\\d:?\\d\\d|Z|)$", + "type": "string" + }, + "verified": { + "description": "Whether presentation is verified: 'true' or 'false'", + "enum": [ + "true", + "false" + ], + "example": "true", + "type": "string" + }, + "verified_msgs": { + "items": { + "description": "Proof verification warning or error information", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "V20PresExRecordByFormat": { + "properties": { + "pres": { + "type": "object" + }, + "pres_proposal": { + "type": "object" + }, + "pres_request": { + "type": "object" + } + }, + "type": "object" + }, + "V20PresExRecordList": { + "properties": { + "results": { + "description": "Presentation exchange records", + "items": { + "$ref": "#/definitions/V20PresExRecord" + }, + "type": "array" + } + }, + "type": "object" + }, + "V20PresFormat": { + "properties": { + "attach_id": { + "description": "Attachment identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "format": { + "description": "Attachment format specifier", + "example": "dif/presentation-exchange/submission@v1.0", + "type": "string" + } + }, + "required": [ + "attach_id", + "format" + ], + "type": "object" + }, + "V20PresProblemReportRequest": { + "properties": { + "description": { + "type": "string" + } + }, + "required": [ + "description" + ], + "type": "object" + }, + "V20PresProposal": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string" + }, + "formats": { + "description": "Acceptable attachment formats", + "items": { + "$ref": "#/definitions/V20PresFormat" + }, + "type": "array" + }, + "proposals~attach": { + "description": "Attachment per acceptable format on corresponding identifier", + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + } + }, + "required": [ + "formats", + "proposals~attach" + ], + "type": "object" + }, + "V20PresProposalByFormat": { + "properties": { + "anoncreds": { + "allOf": [ + { + "$ref": "#/definitions/AnoncredsPresentationRequest" + } + ], + "description": "Presentation proposal for anoncreds" + }, + "dif": { + "allOf": [ + { + "$ref": "#/definitions/DIFProofProposal" + } + ], + "description": "Presentation proposal for DIF" + }, + "indy": { + "allOf": [ + { + "$ref": "#/definitions/IndyProofRequest" + } + ], + "description": "Presentation proposal for indy" + } + }, + "type": "object" + }, + "V20PresProposalRequest": { + "properties": { + "auto_present": { + "description": "Whether to respond automatically to presentation requests, building and presenting requested proof", + "type": "boolean" + }, + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "comment": { + "description": "Human-readable comment", + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "presentation_proposal": { + "$ref": "#/definitions/V20PresProposalByFormat" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "connection_id", + "presentation_proposal" + ], + "type": "object" + }, + "V20PresRequest": { + "properties": { + "@id": { + "description": "Message identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "@type": { + "description": "Message type", + "example": "https://didcomm.org/my-family/1.0/my-message-type", + "type": "string" + }, + "comment": { + "description": "Human-readable comment", + "type": "string" + }, + "formats": { + "description": "Acceptable attachment formats", + "items": { + "$ref": "#/definitions/V20PresFormat" + }, + "type": "array" + }, + "request_presentations~attach": { + "description": "Attachment per acceptable format on corresponding identifier", + "items": { + "$ref": "#/definitions/AttachDecorator" + }, + "type": "array" + }, + "will_confirm": { + "description": "Whether verifier will send confirmation ack", + "type": "boolean" + } + }, + "required": [ + "formats", + "request_presentations~attach" + ], + "type": "object" + }, + "V20PresRequestByFormat": { + "properties": { + "anoncreds": { + "allOf": [ + { + "$ref": "#/definitions/AnoncredsPresentationRequest" + } + ], + "description": "Presentation proposal for anoncreds" + }, + "dif": { + "allOf": [ + { + "$ref": "#/definitions/DIFProofRequest" + } + ], + "description": "Presentation request for DIF" + }, + "indy": { + "allOf": [ + { + "$ref": "#/definitions/IndyProofRequest" + } + ], + "description": "Presentation request for indy" + } + }, + "type": "object" + }, + "V20PresSendRequestRequest": { + "properties": { + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "auto_verify": { + "description": "Verifier choice to auto-verify proof presentation", + "example": false, + "type": "boolean" + }, + "comment": { + "type": "string", + "x-nullable": true + }, + "connection_id": { + "description": "Connection identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "presentation_request": { + "$ref": "#/definitions/V20PresRequestByFormat" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "required": [ + "connection_id", + "presentation_request" + ], + "type": "object" + }, + "V20PresSpecByFormatRequest": { + "properties": { + "anoncreds": { + "allOf": [ + { + "$ref": "#/definitions/IndyPresSpec" + } + ], + "description": "Presentation specification for anoncreds" + }, + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "dif": { + "allOf": [ + { + "$ref": "#/definitions/DIFPresSpec" + } + ], + "description": "Optional Presentation specification for DIF, overrides the PresentationExchange record's PresRequest" + }, + "indy": { + "allOf": [ + { + "$ref": "#/definitions/IndyPresSpec" + } + ], + "description": "Presentation specification for indy" + }, + "trace": { + "description": "Record trace information, based on agent configuration", + "type": "boolean" + } + }, + "type": "object" + }, + "V20PresentProofModuleResponse": { + "properties": {}, + "type": "object" + }, + "V20PresentationSendRequestToProposal": { + "properties": { + "auto_remove": { + "description": "Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)", + "type": "boolean" + }, + "auto_verify": { + "description": "Verifier choice to auto-verify proof presentation", + "example": false, + "type": "boolean" + }, + "trace": { + "description": "Whether to trace event (default false)", + "example": false, + "type": "boolean" + } + }, + "type": "object" + }, + "VCRecord": { + "properties": { + "contexts": { + "items": { + "description": "Context", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + }, + "type": "array" + }, + "cred_tags": { + "additionalProperties": { + "description": "Retrieval tag value", + "type": "string" + }, + "type": "object" + }, + "cred_value": { + "description": "(JSON-serializable) credential value", + "type": "object" + }, + "expanded_types": { + "items": { + "description": "JSON-LD expanded type extracted from type and context", + "example": "https://w3id.org/citizenship#PermanentResidentCard", + "type": "string" + }, + "type": "array" + }, + "given_id": { + "description": "Credential identifier", + "example": "http://example.edu/credentials/3732", + "type": "string" + }, + "issuer_id": { + "description": "Issuer identifier", + "example": "https://example.edu/issuers/14", + "type": "string" + }, + "proof_types": { + "items": { + "description": "Signature suite used for proof", + "example": "Ed25519Signature2018", + "type": "string" + }, + "type": "array" + }, + "record_id": { + "description": "Record identifier", + "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "type": "string" + }, + "schema_ids": { + "items": { + "description": "Schema identifier", + "example": "https://example.org/examples/degree.json", + "type": "string" + }, + "type": "array" + }, + "subject_ids": { + "items": { + "description": "Subject identifier", + "example": "did:example:ebfeb1f712ebc6f1c276e12ec21", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "VCRecordList": { + "properties": { + "results": { + "items": { + "$ref": "#/definitions/VCRecord" + }, + "type": "array" + } + }, + "type": "object" + }, + "VerifiableCredential": { + "additionalProperties": true, + "properties": { + "@context": { + "description": "The JSON-LD context of the credential", + "example": [ + "https://www.w3.org/2018/credentials/v1", + "https://www.w3.org/2018/credentials/examples/v1" + ], + "items": {}, + "type": "array" + }, + "credentialStatus": { + "example": { + "id": "https://example.com/credentials/status/3#94567", + "statusListCredential": "https://example.com/credentials/status/3", + "statusListIndex": "94567", + "statusPurpose": "revocation", + "type": "BitstringStatusListEntry" + } + }, + "credentialSubject": { + "example": { + "alumniOf": { + "id": "did:example:c276e12ec21ebfeb1f712ebc6f1" + }, + "id": "did:example:ebfeb1f712ebc6f1c276e12ec21" + } + }, + "expirationDate": { + "description": "The expiration date", + "example": "2010-01-01T19:23:24Z", + "pattern": "^([0-9]{4})-([0-9]{2})-([0-9]{2})([Tt ]([0-9]{2}):([0-9]{2}):([0-9]{2})(\\.[0-9]+)?)?(([Zz]|([+-])([0-9]{2}):([0-9]{2})))?$", + "type": "string" + }, + "id": { + "description": "The ID of the credential", + "example": "http://example.edu/credentials/1872", + "pattern": "\\w+:(\\/?\\/?)[^\\s]+", + "type": "string" + }, + "issuanceDate": { + "description": "The issuance date", + "example": "2010-01-01T19:23:24Z", + "pattern": "^([0-9]{4})-([0-9]{2})-([0-9]{2})([Tt ]([0-9]{2}):([0-9]{2}):([0-9]{2})(\\.[0-9]+)?)?(([Zz]|([+-])([0-9]{2}):([0-9]{2})))?$", + "type": "string" + }, + "issuer": { + "description": "The JSON-LD Verifiable Credential Issuer. Either string of object with id field.", + "example": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH" + }, + "proof": { + "allOf": [ + { + "$ref": "#/definitions/LinkedDataProof" + } + ], + "description": "The proof of the credential", + "example": { + "created": "2019-12-11T03:50:55", + "jws": "eyJhbGciOiAiRWREU0EiLCAiYjY0IjogZmFsc2UsICJjcml0JiNjQiXX0..lKJU0Df_keblRKhZAS9Qq6zybm-HqUXNVZ8vgEPNTAjQKBhQDxvXNo7nvtUBb_Eq1Ch6YBKY5qBQ", + "proofPurpose": "assertionMethod", + "type": "Ed25519Signature2018", + "verificationMethod": "did:key:z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL#z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL" + } + }, + "type": { + "description": "The JSON-LD type of the credential", + "example": [ + "VerifiableCredential", + "AlumniCredential" + ], + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "@context", + "credentialSubject", + "issuanceDate", + "issuer", + "proof", + "type" + ], + "type": "object" + }, + "VerifiablePresentation": { + "additionalProperties": true, + "properties": { + "@context": { + "description": "The JSON-LD context of the presentation", + "example": [ + "https://www.w3.org/2018/credentials/v1" + ], + "items": {}, + "type": "array" + }, + "holder": { + "description": "The JSON-LD Verifiable Credential Holder. Either string of object with id field.", + "example": "did:key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH" + }, + "id": { + "description": "The ID of the presentation", + "example": "http://example.edu/presentations/1872", + "pattern": "\\w+:(\\/?\\/?)[^\\s]+", + "type": "string" + }, + "proof": { + "allOf": [ + { + "$ref": "#/definitions/LinkedDataProof" + } + ], + "description": "The proof of the presentation", + "example": { + "created": "2019-12-11T03:50:55", + "jws": "eyJhbGciOiAiRWREU0EiLCAiYjY0IjogZmFsc2UsICJjcml0JiNjQiXX0..lKJU0Df_keblRKhZAS9Qq6zybm-HqUXNVZ8vgEPNTAjQKBhQDxvXNo7nvtUBb_Eq1Ch6YBKY5qBQ", + "proofPurpose": "assertionMethod", + "type": "Ed25519Signature2018", + "verificationMethod": "did:key:z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL#z6Mkgg342Ycpuk263R9d8Aq6MUaxPn1DDeHyGo38EefXmgDL" + } + }, + "type": { + "description": "The JSON-LD type of the presentation", + "example": [ + "VerifiablePresentation" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "verifiableCredential": { + "items": { + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "@context", + "proof", + "type" + ], + "type": "object" + }, + "VerificationMethod": { + "properties": { + "controller": { + "description": "Verification controller DID", + "type": "string" + }, + "id": { + "description": "Verification Method ID", + "example": "did:example:123#key-1", + "type": "string" + }, + "publicKeyBase58": { + "description": "Public Key in base58 format", + "example": "B12NYF8RZ5Zk..", + "type": "string" + }, + "publicKeyJwk": { + "description": "Public Key in Jwk format", + "example": { + "crv": "Ed25519", + "kty": "OKP", + "x": "G6t3iUB8..." + }, + "type": "object" + }, + "publicKeyMultibase": { + "description": "Public Key in multibase format", + "example": "z6Mk...", + "type": "string" + }, + "type": { + "description": "Type of Verification Method", + "example": "Ed25519VerificationKey2018", + "type": "string" + } + }, + "required": [ + "controller", + "id", + "type" + ], + "type": "object" + }, + "VerifyCredentialRequest": { + "properties": { + "options": { + "$ref": "#/definitions/LDProofVCOptions" + }, + "verifiableCredential": { + "$ref": "#/definitions/VerifiableCredential" + } + }, + "type": "object" + }, + "VerifyCredentialResponse": { + "properties": { + "results": { + "$ref": "#/definitions/PresentationVerificationResult" + } + }, + "type": "object" + }, + "VerifyDiRequest": { + "properties": { + "securedDocument": { + "example": { + "hello": "world", + "proof": [ + { + "cryptosuite": "eddsa-jcs-2022", + "proofPurpose": "assertionMethod", + "type": "DataIntegrityProof", + "verificationMethod": "did:key: z6MksxraKwH8GR7NKeQ4HVZAeRKvD76kfd6G7jm8MscbDmy8# z6MksxraKwH8GR7NKeQ4HVZAeRKvD76kfd6G7jm8MscbDmy8", + "proofValue": "zHtda8vV7kJQUPfSKiTGSQDhZfhkgtpnVziT7cdEzhu fjPjbeRmysHvizMJEox1eHR7xUGzNUj1V4yaKiLw7UA6E" + } + ] + }, + "type": "object" + } + }, + "required": [ + "securedDocument" + ], + "type": "object" + }, + "VerifyDiResponse": { + "properties": { + "verified": { + "description": "Verified", + "example": true, + "type": "boolean" + } + }, + "type": "object" + }, + "VerifyPresentationRequest": { + "properties": { + "options": { + "$ref": "#/definitions/LDProofVCOptions" + }, + "verifiablePresentation": { + "$ref": "#/definitions/VerifiablePresentation" + } + }, + "type": "object" + }, + "VerifyPresentationResponse": { + "properties": { + "results": { + "$ref": "#/definitions/PresentationVerificationResult" + } + }, + "type": "object" + }, + "VerifyRequest": { + "properties": { + "doc": { + "allOf": [ + { + "$ref": "#/definitions/SignedDoc" + } + ], + "description": "Signed document" + }, + "verkey": { + "description": "Verkey to use for doc verification", + "type": "string" + } + }, + "required": [ + "doc" + ], + "type": "object" + }, + "VerifyResponse": { + "properties": { + "error": { + "description": "Error text", + "type": "string" + }, + "valid": { + "type": "boolean" + } + }, + "required": [ + "valid" + ], + "type": "object" + }, + "W3CCredentialsListRequest": { + "properties": { + "contexts": { + "items": { + "description": "Credential context to match", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + }, + "type": "array" + }, + "given_id": { + "description": "Given credential id to match", + "type": "string" + }, + "issuer_id": { + "description": "Credential issuer identifier to match", + "type": "string" + }, + "max_results": { + "description": "Maximum number of results to return", + "type": "integer" + }, + "proof_types": { + "items": { + "description": "Signature suite used for proof", + "example": "Ed25519Signature2018", + "type": "string" + }, + "type": "array" + }, + "schema_ids": { + "description": "Schema identifiers, all of which to match", + "items": { + "description": "Credential schema identifier", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + }, + "type": "array" + }, + "subject_ids": { + "description": "Subject identifiers, all of which to match", + "items": { + "description": "Subject identifier", + "type": "string" + }, + "type": "array" + }, + "tag_query": { + "additionalProperties": { + "description": "Tag value", + "type": "string" + }, + "description": "Tag filter", + "type": "object" + }, + "types": { + "items": { + "description": "Credential type to match", + "example": "https://myhost:8021", + "pattern": "^[A-Za-z0-9\\.\\-\\+]+://([A-Za-z0-9][.A-Za-z0-9-_]+[A-Za-z0-9])+(:[1-9][0-9]*)?(/[^?&#]+)?$", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "WalletModuleResponse": { + "properties": {}, + "type": "object" + }, + "WriteLedger": { + "properties": { + "ledger_id": { + "type": "string" + } + }, + "type": "object" + } + }, + "tags": [ + { + "name": "action-menu", + "description": "Menu interaction over connection" + }, + { + "name": "anoncreds - credential definitions", + "description": "Anoncreds credential definition management", + "externalDocs": { + "description": "Specification", + "url": "https://hyperledger.github.io/anoncreds-spec" + } + }, + { + "name": "anoncreds - revocation", + "description": "Revocation registry management", + "externalDocs": { + "description": "Overview", + "url": "https://github.com/hyperledger/indy-hipe/tree/master/text/0011-cred-revocation" + } + }, + { + "name": "anoncreds - schemas", + "description": "Anoncreds schema management", + "externalDocs": { + "description": "Specification", + "url": "https://hyperledger.github.io/anoncreds-spec" + } + }, + { + "name": "anoncreds - wallet upgrade", + "description": "Anoncreds wallet upgrade", + "externalDocs": { + "description": "Specification", + "url": "https://hyperledger.github.io/anoncreds-spec" + } + }, + { + "name": "basicmessage", + "description": "Simple messaging", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/527849ec3aa2a8fd47a7bb6c57f918ff8bcb5e8c/features/0095-basic-message" + } + }, + { + "name": "connection", + "description": "Connection management", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/9b0aaa39df7e8bd434126c4b33c097aae78d65bf/features/0160-connection-protocol" + } + }, + { + "name": "credentials", + "description": "Holder credential management", + "externalDocs": { + "description": "Overview", + "url": "https://w3c.github.io/vc-data-model/#credentials" + } + }, + { + "name": "did", + "description": "Endpoints for managing dids", + "externalDocs": { + "description": "Specification", + "url": "https://www.w3.org/TR/did-core/" + } + }, + { + "name": "did-exchange", + "description": "Connection management via DID exchange", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/25464a5c8f8a17b14edaa4310393df6094ace7b0/features/0023-did-exchange" + } + }, + { + "name": "did-rotate", + "description": "Rotate a DID", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/main/features/0794-did-rotate" + } + }, + { + "name": "discover-features", + "description": "Feature discovery", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0031-discover-features" + } + }, + { + "name": "discover-features v2.0", + "description": "Feature discovery v2", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0557-discover-features-v2" + } + }, + { + "name": "endorse-transaction", + "description": "Endorse a Transaction" + }, + { + "name": "introduction", + "description": "Introduction of known parties" + }, + { + "name": "issue-credential v1.0", + "description": "Credential issue v1.0", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/bb42a6c35e0d5543718fb36dd099551ab192f7b0/features/0036-issue-credential" + } + }, + { + "name": "issue-credential v2.0", + "description": "Credential issue v2.0", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/cd27fc64aa2805f756a118043d7c880354353047/features/0453-issue-credential-v2" + } + }, + { + "name": "jsonld", + "description": "Sign and verify json-ld data", + "externalDocs": { + "description": "Specification", + "url": "https://tools.ietf.org/html/rfc7515" + } + }, + { + "name": "ledger", + "description": "Interaction with ledger", + "externalDocs": { + "description": "Overview", + "url": "https://hyperledger-indy.readthedocs.io/projects/plenum/en/latest/storage.html#ledger" + } + }, + { + "name": "mediation", + "description": "Mediation management", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/fa8dc4ea1e667eb07db8f9ffeaf074a4455697c0/features/0211-route-coordination" + } + }, + { + "name": "out-of-band", + "description": "Out-of-band connections", + "externalDocs": { + "description": "Design", + "url": "https://github.com/hyperledger/aries-rfcs/tree/2da7fc4ee043effa3a9960150e7ba8c9a4628b68/features/0434-outofband" + } + }, + { + "name": "present-proof v1.0", + "description": "Proof presentation v1.0", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/4fae574c03f9f1013db30bf2c0c676b1122f7149/features/0037-present-proof" + } + }, + { + "name": "present-proof v2.0", + "description": "Proof presentation v2.0", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/eace815c3e8598d4a8dd7881d8c731fdb2bcc0aa/features/0454-present-proof-v2" + } + }, + { + "name": "resolver", + "description": "did resolver interface.", + "externalDocs": { + "description": "DID Resolution Specification", + "url": "https://www.w3.org/TR/did-core/#resolution" + } + }, + { + "name": "settings", + "description": "Agent settings interface." + }, + { + "name": "trustping", + "description": "Trust-ping over connection", + "externalDocs": { + "description": "Specification", + "url": "https://github.com/hyperledger/aries-rfcs/tree/527849ec3aa2a8fd47a7bb6c57f918ff8bcb5e8c/features/0048-trust-ping" + } + }, + { + "name": "vc-api", + "description": "Endpoints for managing w3c credentials and presentations", + "externalDocs": { + "description": "Specification", + "url": "https://w3c-ccg.github.io/vc-api/" + } + }, + { + "name": "wallet", + "description": "DID and tag policy management", + "externalDocs": { + "description": "Design", + "url": "https://github.com/hyperledger/indy-sdk/tree/master/docs/design/003-wallet-storage" + } + } + ] +} \ No newline at end of file diff --git a/SUMMARY.md b/SUMMARY.md index 319b7c0..312e742 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -48,7 +48,8 @@ * [TAO -> SubTAO](studio/trust-registries/verifiable-accreditation-trust-chain-model/tao-greater-than-subtao.md) * [TAO -> TI](studio/trust-registries/verifiable-accreditation-trust-chain-model/tao-greater-than-ti.md) * [Referencing Trust Registry within a Verifiable Credential](studio/trust-registries/verifiable-accreditation-trust-chain-model/referencing.md) - * [Create Verifiable Accreditation](studio/trust-registries/create-accreditation.md) + * [Issue Verifiable Accreditation](studio/trust-registries/issue-accreditation.md) + * [Verify Verifiable Accreditation](studio/trust-registries/verify-verifiable-accreditation.md) * [🎋 Create Status Lists](studio/status-lists/README.md) * [Status List v2021](studio/status-lists/status-list-v2021/README.md) * [Create Status List v2021](studio/status-lists/status-list-v2021/create-status-list.md) @@ -97,6 +98,19 @@ * [Create a new Resource version within existing Collection](sdk/veramo-plugin/did-linked-resources/create-new-version.md) * [🍏 Credo](sdk/credo.md) * [🫐 Walt.id SSI Kit](sdk/ssi-kit.md) +* [🍊 ACA-Py](sdk/aca-py/README.md) + * [Setup ACA-Py Agent](sdk/aca-py/setup-aca-py-agent.md) + * [Decentralized Identifiers (DIDs)](sdk/aca-py/decentralized-identifiers-dids/README.md) + * [Create a DID](sdk/aca-py/decentralized-identifiers-dids/create-a-did.md) + * [Update a DID](sdk/aca-py/decentralized-identifiers-dids/update-a-did.md) + * [Deactivate a DID](sdk/aca-py/decentralized-identifiers-dids/deactivate-a-did.md) + * [DID-Linked Resources](sdk/aca-py/did-linked-resources/README.md) + * [Create AnonCreds Schema](sdk/aca-py/did-linked-resources/create-anoncreds-schema.md) + * [Create AnonCreds Credential Definition](sdk/aca-py/did-linked-resources/create-anoncreds-credential-definition.md) + * [Verifiable Credentials and Presentations](sdk/aca-py/verifiable-credentials-and-presentations/README.md) + * [Issue a Verifiable Credential](sdk/aca-py/verifiable-credentials-and-presentations/issue-a-verifiable-credential.md) + * [Present a Verifiable Credential](sdk/aca-py/verifiable-credentials-and-presentations/present-a-verifiable-credential.md) + * [Revoke a Verifiable Credential](sdk/aca-py/verifiable-credentials-and-presentations/revoke-a-verifiable-credential.md) ## 🏗️ Architecture @@ -139,8 +153,10 @@ * [Identity Write Pricing](network/cheqd/identity-write-pricing.md) * [Comparison to Hyperledger Indy](network/cheqd/comparison-to-hyperledger-indy.md) * [⏩ Setup your Wallet](network/wallets/README.md) - * [Setup Leap Wallet](network/wallets/setup-leap-wallet.md) - * [Setup Keplr wallet](network/wallets/keplr-setup.md) + * [Setup Leap Wallet](network/wallets/setup-leap-wallet/README.md) + * [Congifure cheqd testnet for Leap](network/wallets/setup-leap-wallet/testnet.md) + * [Setup Keplr Wallet](network/wallets/keplr-setup.md) + * [Migrate from Keplr to Leap Wallet](network/wallets/migrate.md) * [↪️ Useful Tools and APIs](network/tools/README.md) * [Block Explorer](network/tools/block-explorer.md) * [Testnet Faucet](network/tools/testnet-faucet.md) @@ -160,14 +176,16 @@ * [0.6.x](network/network-upgrades/2022/0.6.x.md) * [2023](network/network-upgrades/2023/README.md) * [1.x](network/network-upgrades/2023/1.x.md) - * [2024](network/network-upgrades/2024.md) + * [2024](network/network-upgrades/2024/README.md) + * [2.x](network/network-upgrades/2024/2.x.md) + * [3.x](network/network-upgrades/2024/3.x.md) * [Root Cause Analysis of outages](network/network-upgrades/root-cause-analysis-of-outages/README.md) * [v1.x upgrade RCA](network/network-upgrades/root-cause-analysis-of-outages/v1.x-upgrade-rca.md) ## ⚖️ Legal * [License](LICENSE.md) -* [Code of Conduct](CODE\_OF\_CONDUCT.md) +* [Code of Conduct](CODE_OF_CONDUCT.md) * [Security Policy](SECURITY.md) ## 🆘 Support diff --git a/advanced/anoncreds/revocation-registry-definition.md b/advanced/anoncreds/revocation-registry-definition.md index 7ee33e7..9964387 100644 --- a/advanced/anoncreds/revocation-registry-definition.md +++ b/advanced/anoncreds/revocation-registry-definition.md @@ -48,7 +48,7 @@ The required content and data model for the AnonCreds Revocation Registry Defini * `z` - a public key used to sign the accumulator (described further below) * `maxCredNum` - The maximum amount of Credentials that can be revoked in the Revocation Registry before a new one needs to be started * `tailsLocation` - The URL pointing to the related tails file - * `tailsHash` - The hash of the tails file [TAILS\_FILE](https://hyperledger.github.io/anoncreds-spec/#term:tails\_file) (see also: [next section](https://hyperledger.github.io/anoncreds-spec/#tails-file-and-tails-file-generation)) resulting from hashing the tails file version prepended to the tails file as SHA256 and then encoded to base58. + * `tailsHash` - The hash of the tails file [TAILS\_FILE](https://hyperledger.github.io/anoncreds-spec/#term:tails_file) (see also: [next section](https://hyperledger.github.io/anoncreds-spec/#tails-file-and-tails-file-generation)) resulting from hashing the tails file version prepended to the tails file as SHA256 and then encoded to base58. For example, the on-ledger Revocation Registry Definition Object Content is as fol @@ -162,7 +162,7 @@ Below is an example of a Payload file: "payload": { "collectionId": "zF7rhDBfUt9d1gJPjx7s1J", "id": "af20b1f0-5c4d-4037-9669-eaedddb9c2df", - "name": "universityDegree", // this is an additional input + "name": "universityDegree-1.0", // this is an additional input "version": "2.0", // this is an optional additional input "resourceType": "anonCredsRevocRegDef", "alsoKnownAs": [] @@ -178,9 +178,9 @@ Below is an example of a Payload file: When passing the Payload file to the ledger, additional inputs may be required within the Payload file to populate the [DID-Linked Resource](../../studio/did-linked-resources/understanding-dlrs/). In this instance, the only additional information required is: -| Additional parameter | Expected input | Rationale | -| -------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| "name" | "\" | The Payload file drawing inputs from the Resource file on its own does not provide the ledger the requisite amount of information to create a full DID-Linked Resource. resourceName must be provided as an additional input parameter | +| Additional parameter | Expected input | Rationale | +| -------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| "name" | "\-\" | The Payload file drawing inputs from the Resource file on its own does not provide the ledger the requisite amount of information to create a full DID-Linked Resource. resourceName must be provided as an additional input parameter, as well as a revocation tag. There must be a hyphen between them. | #### Publishing resource using CLI @@ -208,7 +208,7 @@ Once you have created your Revocation Registry as a resource on cheqd, the follo "resourceURI": "did:cheqd:mainnet:zF7rhDBfUt9d1gJPjx7s1J/resources/af20b1f0-5c4d-4037-9669-eaedddb9c2df", "resourceCollectionId": "zF7rhDBfUt9d1gJPjx7s1J", "resourceId": "af20b1f0-5c4d-4037-9669-eaedddb9c2df", - "resourceName": "universityDegree", + "resourceName": "universityDegree-1.0", "resourceType": "anonCredsRevocRegDef", "resourceVersion": "2.0", "mediaType": "application/json", diff --git a/advanced/anoncreds/revocation-status-list.md b/advanced/anoncreds/revocation-status-list.md index 11048d9..db0af8b 100644 --- a/advanced/anoncreds/revocation-status-list.md +++ b/advanced/anoncreds/revocation-status-list.md @@ -126,7 +126,7 @@ Below is an example of a Payload file: "payload": { "collectionId": "zF7rhDBfUt9d1gJPjx7s1J", "id": "af20b1f0-5c4d-4037-9669-eaedddb9c2df", - "name": "universityDegree", + "name": "universityDegree-1.0", "version": "", "resourceType": "anonCredsStatusList", "alsoKnownAs": [] @@ -142,9 +142,9 @@ Below is an example of a Payload file: When passing the Payload file to the ledger, additional inputs may be required within the Payload file to populate the [DID-Linked Resource](../../studio/did-linked-resources/understanding-dlrs/). In this instance, the only additional information required is: -| Additional parameter | Expected input | Rationale | -| -------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| "name" | "\" | The Payload file drawing inputs from the Resource file on its own does not provide the ledger the requisite amount of information to create a full DID-Linked Resource. resourceName must be provided as an additional input parameter | +| Additional parameter | Expected input | Rationale | +| -------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| "name" | "\-\" | The Payload file drawing inputs from the Resource file on its own does not provide the ledger the requisite amount of information to create a full DID-Linked Resource. resourceName must be provided as an additional input parameter, as well as a revocation tag. There must be a hyphen between them. | #### Publishing resource using CLI @@ -172,7 +172,7 @@ Once you have created your Status List Object as a resource on cheqd, the follow "resourceURI": "did:cheqd:mainnet:zF7rhDBfUt9d1gJPjx7s1J/resources/9d26b902-555d-43bd-bac3-0bedeb462887", "resourceCollectionId": "zF7rhDBfUt9d1gJPjx7s1J", "resourceId": "9d26b902-555d-43bd-bac3-0bedeb462887", - "resourceName": "universityDegree", + "resourceName": "universityDegree-1.0", "resourceType": "anonCredsStatusList", "mediaType": "application/json", "created": "2022-08-21T08:40:00Z", @@ -230,7 +230,7 @@ Once the transaction has been created, the `resourceMetadata` will look like the "resourceURI": "did:cheqd:mainnet:zF7rhDBfUt9d1gJPjx7s1J/resources/c154bc07-43f7-4b69-ac0c-5514001f2ca3", "resourceCollectionId": "zF7rhDBfUt9d1gJPjx7s1J", "resourceId": "513d8a44-6188-41c2-8de8-eda562f82947", - "resourceName": "universityDegree", + "resourceName": "universityDegree-1.0", "resourceType": "anonCredsStatusList", "mediaType": "application/json", "created": "2022-09-01T04:30:01Z", diff --git a/network/network-upgrades/2024/2.x.md b/network/network-upgrades/2024/2.x.md new file mode 100644 index 0000000..d058e1a --- /dev/null +++ b/network/network-upgrades/2024/2.x.md @@ -0,0 +1,21 @@ +# 2.x + +## Dependency Upgrades: + +* Upgrade Go version to at least v1.20, with v1.21 as the targeted latest stable. +* Upgrade Cosmos SDK from v0.46.x (being a fork at v0.46.10, applying Barberry vulnerability patch on top, along with IAVL forked at v0.19.5 applying pruning logic patch on top) to v0.47.x (latest: v0.47.8), including relevant cosmossdk.io indirect dependencies and IAVL package. +* The ideal outcome is removing all forks, upgrading direct, indirect dependencies to latest v0.47.x release line covering the set requirements to follow. +* Update Comet BFT (Tendermint v0.34.26) to match Cosmos SDK’s associated version (latest: v0.37.4). +* Update IBC from v6.1.1 to v7.x (latest: v7.3.2). +* Test suite updates in Ginkgo BDD for connecting to the latest Osmosis, transferring tokens, and querying DID-Linked Resources through IBC. + +### Fixes: + +* Address non-operational state sync issue by assessing remediation strategies used in similar contexts. +* Resolve non-operational pruning while retaining the panic-exit fix introduced in the forked v0.46.x compatible IAVL, exploring options for a permanent solution. + +### CI + Tests: + +* Update build, test, and release CI actions to target the latest Ubuntu LTS (latest: 22.04.3). +* Update build, release CI actions to target latest GoReleaser (latest: v1.24.0, requires Go v1.20+). +* Resolve possible testing suite adjustments derived from the aforementioned dependency upgrades, notably upgrade tests written in Ginkgo BDD testing framework. diff --git a/network/network-upgrades/2024/3.x.md b/network/network-upgrades/2024/3.x.md new file mode 100644 index 0000000..75ebc05 --- /dev/null +++ b/network/network-upgrades/2024/3.x.md @@ -0,0 +1,7 @@ +# 3.x + +The upgrade is broken down into three primary areas of development: + +1. **EIP-1559-Style Burn Mechanism**: Inspired by Ethereum’s model, any network transaction—whether a transfer, proof-of-stake delegation, or identity ledger update—will burn $CHEQ tokens, including “credential payments,” ensuring consistent protocol revenue via token burns. +2. **Fee Abstraction**: Anyone with a Cosmos token can now pay for transactions on the cheqd network, with these tokens converted into $CHEQ as needed. This feature enables stable payments using tokens like USDC, EUROe, or EURC, providing greater payment flexibility. +3. **General Burn Transaction**: A new option to burn $CHEQ tokens on demand, expanding use cases for token management. diff --git a/network/network-upgrades/2024.md b/network/network-upgrades/2024/README.md similarity index 100% rename from network/network-upgrades/2024.md rename to network/network-upgrades/2024/README.md diff --git a/network/network-upgrades/README.md b/network/network-upgrades/README.md index 83a71ca..e90e18b 100644 --- a/network/network-upgrades/README.md +++ b/network/network-upgrades/README.md @@ -21,4 +21,4 @@ To ensure we upgrade all nodes on the network in the most efficient way whilst m Take a look at our network upgrades across the years, including Root Cause Analysis of any Network outage. -
2021View our network ugrades from 2021.2021
2022View our network ugrades from 2022.2022
2023View our network ugrades from 2023.2023
2024View our network ugrades from 2024.2024.md
RCAsView our Root Cause Analysis of Network outages.root-cause-analysis-of-outages
+
2021View our network ugrades from 2021.2021
2022View our network ugrades from 2022.2022
2023View our network ugrades from 2023.2023
2024View our network ugrades from 2024.2024
RCAsView our Root Cause Analysis of Network outages.root-cause-analysis-of-outages
diff --git a/network/wallets/README.md b/network/wallets/README.md index 9b763f1..6e9bd52 100644 --- a/network/wallets/README.md +++ b/network/wallets/README.md @@ -10,7 +10,7 @@ _Disclaimer: All information provided is intended to help users get set up on ch When issuing credentials using the cheqd network, both testnet and mainnet, you will need to hold tokens to pay for the transaction. In this guide we offer options for setting up a wallet and adding cheqd's mainnet and testnet. -
Leap WalletManage your CHEQ natively through the Leap Wallet with full support on desktop, browser and mobile.leap wallet.pngsetup-leap-wallet.md
Keplr walletAdd the cheqd extentsion to your Keplr wallet to get support on Keplr browser and desktop.Keplr wallet.pngkeplr-setup.md
+
Leap WalletManage your CHEQ natively through the Leap Wallet with full support on desktop, browser and mobile.leap wallet.pngsetup-leap-wallet
Keplr WalletAdd the cheqd extentsion to your Keplr Wallet to get support on Keplr browser and desktop.Keplr wallet.pngkeplr-setup.md
Migrate from Keplr to Leap WalletImport your Keplr Wallet into Leap to access full cheqd support, including mobile app compatibility.Keplr to Leap Wallet.pngmigrate.md
## More on CHEQ diff --git a/network/wallets/keplr-setup.md b/network/wallets/keplr-setup.md index 431406b..e216f64 100644 --- a/network/wallets/keplr-setup.md +++ b/network/wallets/keplr-setup.md @@ -1,14 +1,14 @@ --- -description: Setup Keplr wallet to access CHEQ +description: Setup Keplr Wallet to access CHEQ --- -# Setup Keplr wallet +# Setup Keplr Wallet _Disclaimer: All information provided is intended to help users get set up on cheqd. However, we do not expressly recommend or mandate a certain approach. All actions taken are your personal responsibility._ ## Overview -In this guide we'll share how to setup a Keplr wallet which you can use for paying for transactions on the cheqd network. We'll also share how to add the cheqd mainnet and testnet to your Keplr wallet. +In this guide we'll share how to setup a Keplr Wallet which you can use for paying for transactions on the cheqd network. We'll also share how to add the cheqd mainnet and testnet to your Keplr wallet. ## Setting up a Keplr Wallet on PC/Mac diff --git a/network/wallets/migrate.md b/network/wallets/migrate.md new file mode 100644 index 0000000..f1a1eef --- /dev/null +++ b/network/wallets/migrate.md @@ -0,0 +1,30 @@ +--- +description: How to Import Keplr into Leap Wallet +--- + +# Migrate from Keplr to Leap Wallet + +## Tutorial: Import your Keplr Wallet into Leap Wallet + +Follow these 4 easy steps: + +### 1. Click on the option ”**Import an existing wallet using Keplr**” + +
+ +### 2. Enter the Secret Recovery Seed Phrase that you would have saved someplace secure while creating your Keplr wallet. + +
+ +### 3. If you have used multiple accounts in Keplr, you can choose to import them here. + +
+ +### 4. **Create a new password, and make sure you remember it!** + +
+ +### **‍**Your Leap Wallet is ready. + +
+ diff --git a/network/wallets/setup-leap-wallet.md b/network/wallets/setup-leap-wallet.md deleted file mode 100644 index 599ecaf..0000000 --- a/network/wallets/setup-leap-wallet.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -description: Setup your Leap wallet to access CHEQ ---- - -# Setup Leap Wallet - -_Disclaimer: All information provided is intended to help users get set up on cheqd. However, we do not expressly recommend or mandate a certain approach. All actions taken are your personal responsibility._ - -## Overview - -Leap Wallet is the easiest way to get started managing your CHEQ tokens. Using Leap Wallet you can manage your tokens across desktop, mobile and browser. - -## Get started - -
Get LeapManage your CHEQ tokens using Leap across browser, mobile and desktop.leap wallet.pnghttps://www.leapwallet.io/download
diff --git a/network/wallets/setup-leap-wallet/README.md b/network/wallets/setup-leap-wallet/README.md new file mode 100644 index 0000000..95459ff --- /dev/null +++ b/network/wallets/setup-leap-wallet/README.md @@ -0,0 +1,15 @@ +--- +description: Setup your Leap Wallet to access CHEQ +--- + +# Setup Leap Wallet + +_Disclaimer: All information provided is intended to help users get set up on cheqd. However, we do not expressly recommend or mandate a certain approach. All actions taken are your personal responsibility._ + +## Overview + +Leap Wallet is the easiest way to get started managing your CHEQ tokens. Using Leap Wallet you can manage your tokens across desktop, mobile and browser. + +## Get started + +
Get LeapManage your CHEQ tokens using Leap across browser, mobile and desktop.leap wallet.pnghttps://www.leapwallet.io/download
Migrate from Keplr to Leap WalletImport your Keplr Wallet into Leap to access full cheqd support, including mobile app compatibility.Keplr to Leap Wallet.pngmigrate.md
Configure cheqd testnet for LeapAdd cheqd Testnet to your Leap wallet to fund your SDK or API transactions on testnet.cheqd logo docs (1).pngtestnet.md
diff --git a/network/wallets/setup-leap-wallet/testnet.md b/network/wallets/setup-leap-wallet/testnet.md new file mode 100644 index 0000000..757f110 --- /dev/null +++ b/network/wallets/setup-leap-wallet/testnet.md @@ -0,0 +1,40 @@ +# Congifure cheqd testnet for Leap + +To configure your Leap wallet to support cheqd testnet, please follow the instructions below: + +## Tutorial + +### 1. Install the Leap browser extension + +
Get LeapManage your CHEQ tokens using Leap across browser, mobile and desktop.leap wallet.pnghttps://www.leapwallet.io/
+ +### 2. Click the "Switch Chain" icon in the top right + +### 3. Click the "+" sign beside the "Search chains" box + +### 4. Configure testnet parameters + +This will open a full page view in the browser. Fill in the chain details as follows + +1. Chain Id: \`cheqd-testnet-6\` +2. Chain Name: \`cheqd Testnet\` +3. New RPC Url: \`[https://rpc.cheqd.network](https://rpc.cheqd.network/)\` +4. New REST Url: \`[https://api.cheqd.network](https://api.cheqd.network/)\` +5. Address Prefix: \`cheqd\` +6. Native Denom: \`CHEQ\` +7. Coin Type: \`118\` +8. 8\. Decimals: \`9\` + +### 5. Click "Add Chain" + +### 6. Go back to the extension + +Your new chain should be selected already (if not, use the Switch Chain" icon to select it) + +### 7. Copy the address from the Wallet name box + +This is your cheqd testnet acount address + +### 8. Top up testnet tokens + +To get testnet tokens go to the faucet at [https://testnet-faucet.cheqd.io/](https://testnet-faucet.cheqd.io/), enter your address and the faucet will send you 1 million $CHEQ testnet tokens diff --git a/sdk/aca-py/README.md b/sdk/aca-py/README.md new file mode 100644 index 0000000..5a4d6eb --- /dev/null +++ b/sdk/aca-py/README.md @@ -0,0 +1,15 @@ +--- +description: ACA-Py Plugin with cheqd support +--- + +# 🍊 ACA-Py + +Aries Cloud Agent Python (ACA-Py) serves as a foundational tool for developing Verifiable Credential (VC) ecosystems. It functions at the second and third layers of the [Trust Over IP framework](https://trustoverip.org/wp-content/uploads/2020/05/toip_050520_primer.pdf) and supports multiple credential formats and protocols. As part of the [Open Wallet Foundation](https://openwallet.foundation/), ACA-Py's capabilities can be expanded with runtime-loaded plug-ins. Explore a diverse range of plug-ins in the [ACA-Py Plugins repository](https://plugins.aca-py.org/latest/). + +ACA-Py now includes support for the **Cheqd DID** method, facilitating integration with Cheqd's decentralized identity ecosystem. Developers can utilize Cheqd for DID creation, resolution, and operations like issuing and verifying AnonCreds credentials. This offers an easy transition from the decommissioned Sovrin network to a modern, scalable alternative without disrupting existing workflows. Cheqd is fully supported in ACA-Py for issuing Verifiable Credentials, creating Credential Schemas, and Credential Definitions. + +AnonCreds using cheqd are facilitated using the [cheqd AnonCreds Object Method](https://docs.cheqd.io/product/advanced/anoncreds). + +## Get started + +
cheqd Agent SetupSetup the ACA-Py agent with cheqd plugin.setup-aca-py-agent.md
Create cheqd DIDsUse the agent to create cheqd DIDs.create-a-did.md
Issue a CredentialIssue a verifiable credential using ACA-Py agent.issue-a-verifiable-credential.md
diff --git a/sdk/aca-py/decentralized-identifiers-dids/README.md b/sdk/aca-py/decentralized-identifiers-dids/README.md new file mode 100644 index 0000000..63ffa3f --- /dev/null +++ b/sdk/aca-py/decentralized-identifiers-dids/README.md @@ -0,0 +1,17 @@ +# Decentralized Identifiers (DIDs) + +A Decentralized Identifier "DID" is a globally unique identifier that does not require a centralized registration authority because it is registered with distributed ledger technology or other form of decentralized network. + +{% hint style="info" %} +**Learn about DIDs** If you want to learn about what [DIDs are, please go over to our learning site here.](https://learn.cheqd.io/decentralised-identity/dids) +{% endhint %} + +## Get started + +
Create DIDCreate an Issuer DID using the did:cheqd DID method.create-a-did.md
Update DIDUpdate a did:cheqd DID.update-a-did.md
Deactivate DIDDeactivate a did:cheqd DID.deactivate-a-did.md
+ +## Alternatives + +Below are a list of alternatives for creating cheqd DIDs. + +
cheqd StudioOur API product enables users to use cheqd's functionality with minimal complexity and easily integrate APIs into existing apps. Broken link
DID RegistrarSimple setup for building cheqd DIDs into existing applications using REST APIs, building into the Universal Registrar.did-registrar
CredoCredo is an SDK which supports the European Architecture and Reference Framework (ARF) standards as well as AnonCreds with full cheqd support for DIDs. credo.md
VeramoThe Veramo SDK plugin supports JSON, JSON-LD credentials as well as cheqd Credential Payments in an SDK.create-did.md
Walt.id SSI KitWalt.id SSI Kit is an SDK that supports the European Architecture and Reference Framework (ARF) standards for identity, with full cheqd support. ssi-kit.md
cheqd Cosmos CLICosmos CLI which directly communicates with the cheqd network. This should only be used for testing environments.cheqd-node-cli
diff --git a/sdk/aca-py/decentralized-identifiers-dids/create-a-did.md b/sdk/aca-py/decentralized-identifiers-dids/create-a-did.md new file mode 100644 index 0000000..394e36f --- /dev/null +++ b/sdk/aca-py/decentralized-identifiers-dids/create-a-did.md @@ -0,0 +1,58 @@ +--- +description: Create a DID using the did:cheqd method from ACA-Py Agent +--- + +# Create a DID + +Follow these instructions to create a new DID from ACA-Py Agent and publish the associated DID Document on cheqd ledger. + +> ⚠️ **Before you begin...** +> +> Make sure you've correctly [configured the cheqd plugin's agent settings](../setup-aca-py-agent.md) for ACA-Py. + +For wallet storage, utilise a Postgres database to ensure key persistence, enabling future updates to the DID. + +## Create DID + +Populate the various `options`and `features`in the JSON request body and call the API to create the DID. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/did/cheqd/create" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +## Request Body + +These are the variables that can be passed in the Body: + +
+ +features (optional) + +Optional Object with Key-Value format for additional features of the new DID. This is for future use. + +
+ +
+ +options (optional) + +Optional Object with Key-Value format for additional configuration options, recommendations below: + +"network": testnet or mainnet + +"key\_type": "ed25519" or "bls12381g2" + +
+ +## List DIDs associated with your wallet + +After creating a DID or multiple DIDs, users can list all the created DIDs associated with their wallet. Using the `/wallet/did` API. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/wallet/did" method="get" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + + + + + diff --git a/sdk/aca-py/decentralized-identifiers-dids/deactivate-a-did.md b/sdk/aca-py/decentralized-identifiers-dids/deactivate-a-did.md new file mode 100644 index 0000000..104cccd --- /dev/null +++ b/sdk/aca-py/decentralized-identifiers-dids/deactivate-a-did.md @@ -0,0 +1,20 @@ +--- +description: Deactivate a did:cheqd from ACA-Py Agent +--- + +# Deactivate a DID + +Follow these instructions to deactivate a did:cheqd DID from ACA-Py Agent. + +> ⚠️ **Important...** +> +> Your wallet must have the key(s) which were generated when the DID was created, without them signing will fail. + +## Deactivate DID + +To deactivate an active DID, pass the `did`id in the request body, with any additional `options`that you may have configured. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/did/cheqd/deactivate" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + diff --git a/sdk/aca-py/decentralized-identifiers-dids/update-a-did.md b/sdk/aca-py/decentralized-identifiers-dids/update-a-did.md new file mode 100644 index 0000000..1599f64 --- /dev/null +++ b/sdk/aca-py/decentralized-identifiers-dids/update-a-did.md @@ -0,0 +1,20 @@ +--- +description: Update a did:cheqd DID from ACA-Py Agent +--- + +# Update a DID + +Follow these instructions to update a did:cheqd DID from ACA-Py Agent. + +> ⚠️ **Important...** +> +> Your wallet must have the key(s) which were generated when the DID was created, without them signing will fail. + +## Update DID + +To update an existing DID, you must pass the `did` id and the complete `didDocument`in the request body. The main field that is updated using this method os the `service` object of the DID. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/did/cheqd/update" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + diff --git a/sdk/aca-py/did-linked-resources/README.md b/sdk/aca-py/did-linked-resources/README.md new file mode 100644 index 0000000..660c579 --- /dev/null +++ b/sdk/aca-py/did-linked-resources/README.md @@ -0,0 +1,8 @@ +# DID-Linked Resources + +**"DID-Linked Resources"** are identified with a [`did:cheqd` Decentralized Identifier](https://docs.cheqd.io/product/architecture/adr-list/adr-002-did-linked-resources) with a [Universally Unique Identifier (UUID)](https://www.uuidgenerator.net/) that acts as a permanently-accessible link to fetch the resources from the cheqd ledger. We refer to this as the "**resource ID**". Through the "**resource ID**" or a set of DID URL query parameters, applications are able to persistently access a digital resource on the cheqd network. + +## Get started + +
Understanding DLRsMore details about DID-Linked Resources on Cheqd.understanding-dlrs
Understanding AnonCredsMore details about AnonCreds Object Method.anoncreds
Create SchemaCreate an AnonCreds Schema.create-anoncreds-schema.md
Create Credential DefinitionCreate an AnonCreds Credential Definitioncreate-anoncreds-credential-definition.md
+ diff --git a/sdk/aca-py/did-linked-resources/create-anoncreds-credential-definition.md b/sdk/aca-py/did-linked-resources/create-anoncreds-credential-definition.md new file mode 100644 index 0000000..caa9356 --- /dev/null +++ b/sdk/aca-py/did-linked-resources/create-anoncreds-credential-definition.md @@ -0,0 +1,48 @@ +# Create AnonCreds Credential Definition + +## Create Credential Definition + +The request body must contain the `credential_definition` object with the Issuer DID and the Schema ID created in the previous steps. + +To enable revocation, the `options` must contain the revocation flag, and the size of the revocation registry. Also, ensure that a [Tails Server](https://github.com/bcgov/indy-tails-server) is configured for the issuer. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/anoncreds/credential-definition" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +## Request Body + +
+ +credential_definition (mandatory) + +"issuerId": DID of the Issuer. + +"schemaId": The AnonCreds Schema ID created by the Issuer (must be of the same DID). + +"tag": Additional Name to identify the Credential Definition. + +
+ +
+ +options (optional) + +"support\_revocation": Boolean value to indicate that the Credential can be revoked or not. (Tails server must be configured if this is set to \`true\`) + +"revocation\_registry\_size": Maximum size of the Revocation Registry. + +
+ +## Check the new Credential Definition + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/anoncreds/credential-definition/{cred_def_id}" method="get" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + + + + + + + diff --git a/sdk/aca-py/did-linked-resources/create-anoncreds-schema.md b/sdk/aca-py/did-linked-resources/create-anoncreds-schema.md new file mode 100644 index 0000000..afc6623 --- /dev/null +++ b/sdk/aca-py/did-linked-resources/create-anoncreds-schema.md @@ -0,0 +1,48 @@ +# Create AnonCreds Schema + +To issue Verifiable Credentials, the issuer will have to first create a Schema and then a Credential Definition. + +## Create Schema + +The request body must contain the `schema` object, which defines the attributes, name and version of the Schema. This will create a [DID-Linked Resource](https://docs.cheqd.io/product/sdk/veramo-plugin/did-linked-resources) of type `anonCredsSchema`. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/anoncreds/schema" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +## Request Body + +
+ +options (optional) + +Optional Key-Value pairs of additional options. + +
+ +
+ +schema (mandatory) + +"attrNames": Array of attributes for the schema definition. + +"issuerId": Issuer DID, use the did created by the Issuer. + +"name": Name of the Schema + +"version": Version of the Schema (To update existing Schema, use same name and different version) + +
+ +## Check the new Schema + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/anoncreds/schema/{schema_id}" method="get" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + + + + + + + diff --git a/sdk/aca-py/setup-aca-py-agent.md b/sdk/aca-py/setup-aca-py-agent.md new file mode 100644 index 0000000..11c169b --- /dev/null +++ b/sdk/aca-py/setup-aca-py-agent.md @@ -0,0 +1,43 @@ +# Setup ACA-Py Agent + +## Pre-requisites + +Before you begin, ensure you have a DID registrar and resolver running. + +* For testnet, you can use the cheqd [DID registrar](https://did-registrar.cheqd.net) and [resolver](https://resolver.cheqd.net/). +* For mainnet, you can run your own cheqd DID registrar with the correct mnemonic configuration. For details check [here](https://github.com/cheqd/did-registrar). + +## Configuration + +* The DID Registrar and the DID Resolver URL can be passed via a `plugin-config.yml`. +* The plugin works only with `askar-anoncreds` wallet type. +* Using a Postgres DB as wallet storage type is also recommended. + +## Build the Agent and deploy + +Build the ACA-Py Agent docker image with the plugin, and then deploy on your choice of infrastructure. + +Example Dockerfile: + +```docker +FROM ghcr.io/openwallet-foundation/acapy:py3.12-1.1.0 + +USER root + +# install plugins as binaries +RUN pip install git+https://github.com/openwallet-foundation/acapy-plugins@main#subdirectory=cheqd + +USER $user +COPY ./configs configs + +ENTRYPOINT ["aca-py"] +``` + +Sample configs are available [here](https://github.com/openwallet-foundation/acapy-plugins/tree/main/cheqd/docker). + +## Next steps + +Now that your ACA-Py agent is successfully set up to work with cheqd, try following our tutorials for creating a new DID or issuing Verifiable Credentials. + +
Create a DIDCreate an Issuer DID using the did:cheqd DID method.create-a-did.md
Issue a Verifiable CredentialIssue a Verifiable Credential using ACA-Py signed by a cheqd DID.issue-a-verifiable-credential.md
+ diff --git a/sdk/aca-py/verifiable-credentials-and-presentations/README.md b/sdk/aca-py/verifiable-credentials-and-presentations/README.md new file mode 100644 index 0000000..e3507c9 --- /dev/null +++ b/sdk/aca-py/verifiable-credentials-and-presentations/README.md @@ -0,0 +1,17 @@ +# Verifiable Credentials and Presentations + +{% hint style="info" %} +:books: **Learn about Verifiable Credentials and Presentations** + +If you want to learn more about what [Verifiable Credentials and Presentations are, please go over to our learning site here.](https://learn.cheqd.io/overview/introduction-to-decentralised-identity/what-is-a-verifiable-credential-vc) +{% endhint %} + +## Get started + +
Setup ACA-Py AgentBefore you get started, you need to setup your ACA-Py Agent. setup-aca-py-agent.md
Issue CredentialsIssue Verifiable Credentials signed by cheqd DIDs using ACA-Py .issue-a-verifiable-credential.md
Present CredentialsPresent Verifiable Credentials using ACA-Py.present-a-verifiable-credential.md
+ +## Alternatives + +Below are a list of alternatives for using Credentials with cheqd support. Each offers a different set of protocols and underlying technical capabilities. + +
cheqd StudioOur API product enables users to use cheqd's functionality with minimal complexity and easily integrate APIs into existing apps. Broken link
CredoCredo is an SDK which supports the European Architecture and Reference Framework (ARF) standards as well as AnonCreds with full cheqd support for DIDs. credo.md
VeramoThe Veramo SDK plugin supports JSON, JSON-LD credentials as well as cheqd Credential Payments in an SDK.issue-credential.md
Walt.id SSI KitWalt.id SSI Kit is an SDK that supports the European Architecture and Reference Framework (ARF) standards for identity, with full cheqd support. ssi-kit.md
diff --git a/sdk/aca-py/verifiable-credentials-and-presentations/issue-a-verifiable-credential.md b/sdk/aca-py/verifiable-credentials-and-presentations/issue-a-verifiable-credential.md new file mode 100644 index 0000000..6b9d88c --- /dev/null +++ b/sdk/aca-py/verifiable-credentials-and-presentations/issue-a-verifiable-credential.md @@ -0,0 +1,109 @@ +# Issue a Verifiable Credential + +Using the `/issue-credential-2.0` API endpoints, it is possible to issue Verifiable Credentials, signed by a cheqd DID, in a few clicks or lines of code. By following the following steps, you can effectively issue verifiable credentials using ACA-Py integrated with the cheqd ecosystem. + +## Step 1: Create a Connection with Holder + +Use any supported method to create a connection with the Holder of the credential. Automated [out-of-band protocol](https://identity.foundation/didcomm-messaging/spec/#out-of-band-messages) is recommended. + +### 1a: Issuer Creates Connection Invite + +The Issuer agent will create a new connection invite for the Holder. This is needed to securely communicate between the Issuer and the Holder agents. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/out-of-band/create-invitation" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +#### Parameters and Request Body + +For automated acceptance, pass the following parameters: + +
+ +auto_accept + +Set this to true + +
+ +A simple request body is below: + +```json +{ + "alias": "Holder", + "handshake_protocols": ["https://didcomm.org/didexchange/1.0"], + "use_public_did": false, + "my_label": "Invitation to Holder" +} +``` + +### 1b: Holder receives invitation + +The above request will have an `invitation` in the response. Holder will have to copy that inivitation and pass in the body of the following API call. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/out-of-band/receive-invitation" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +#### Parameters and Request Body + +
+ +auto_accept + +Set this to true + +
+ +
+ +alias + +Pass an alias for the connection + +
+ +
+ +use_existing_connection + +Set this to true + +
+ +The request body should be the `invitation` value from the `/create-invitation` call by the Issuer. + +## Step 2: Prepare Credential Offer + +Generate a credential offer using the `/issue-credential-2.0/send-offer` API. This offer is sent to the holder, informing them about the available credential and its attributes. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/issue-credential-2.0/send-offer" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +## Step 3: Holder accepts credential offer + +The Holder has to retrieve the credential exchange id, and call this API to accept the offer. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/issue-credential/records/{cred_ex_id}/send-request" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +## Step 4: Issue Credential + +Once the credential request is received and validated, issue the credential using the `/issue-credential-2.0/records//issue` API endpoint. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/issue-credential-2.0/records/{cred_ex_id}/issue" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +## Step 5: Holder stores Credential + +The Holder has to store the issued credential into their wallet using the following API. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/issue-credential-2.0/records/{cred_ex_id}/store" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + + + diff --git a/sdk/aca-py/verifiable-credentials-and-presentations/present-a-verifiable-credential.md b/sdk/aca-py/verifiable-credentials-and-presentations/present-a-verifiable-credential.md new file mode 100644 index 0000000..59b29fc --- /dev/null +++ b/sdk/aca-py/verifiable-credentials-and-presentations/present-a-verifiable-credential.md @@ -0,0 +1,62 @@ +# Present a Verifiable Credential + +Using the `/present-proof-2.0` API endpoints, it is possible to present Verifiable Credentials, signed by a cheqd DID, in a few clicks or lines of code. This process enables secure and trustworthy sharing of verifiable credentials within the ACA-Py framework and cheqd ecosystem. + +## Step 1: Create a Connection with Holder + +Use any supported method to create a connection with the Holder. Automated [out-of-band protocol](https://identity.foundation/didcomm-messaging/spec/#out-of-band-messages) is recommended. You can follow the same steps as described in [Issue a Verifiable Credential](issue-a-verifiable-credential.md#step-1-create-a-connection-with-holder). + +## Step 2: Send Proof Request + +After connection is established, the Verifier can send a proof request to the Holder. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/present-proof-2.0/send-request" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +#### Sample Request Body + +The request body will depend on the credential, but here is a sample. + +```json +{ + "connection_id": "", + "auto_verify": false, + "auto_remove": false, + "comment": "Presentation request from Issuer", + "presentation_request": { + "anoncreds": { + "name": "proof", + "version": "1.0", + "requested_predicates": { + "additionalProp1": { + "name": "score", + "p_value": 40, + "p_type": ">", + "restrictions": [{"cred_def_id": ""}] + } + }, + "requested_attributes": {}, + "non_revoked": {"to": } + } + }, + "trace": false +} +``` + +## Step 3: Holder sends Presentation Proof + +Holder can get the stored credentials from own wallet and format a proof to send to the Verifier. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/present-proof-2.0/records/{pres_ex_id}/send-presentation" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +## Step 4: Verifier verifies Presentation + +Verifier receives the presentation via the connection, and can use the following API to verify. The response must have `verified: true` . + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/present-proof-2.0/records/{pres_ex_id}/verify-presentation" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + diff --git a/sdk/aca-py/verifiable-credentials-and-presentations/revoke-a-verifiable-credential.md b/sdk/aca-py/verifiable-credentials-and-presentations/revoke-a-verifiable-credential.md new file mode 100644 index 0000000..b9f30f6 --- /dev/null +++ b/sdk/aca-py/verifiable-credentials-and-presentations/revoke-a-verifiable-credential.md @@ -0,0 +1,31 @@ +# Revoke a Verifiable Credential + +Revoking credentials is crucial for maintaining control over issued credentials and preventing misuse in the cheqd ecosystem. To revoke credentials within the ACA-Py framework, follow these steps: + +## Step 1: Issuer identifies Credential to be revoked + +The Issuer must determine the credential that needs to be revoked by getting the list of issued credentials and the connection id. + +## Step 2: Revoke Credential + +Initiate the credential revocation process by supplying the necessary credential identifiers like the connection id and the credential exchange id. + +{% swagger src="../../../.gitbook/assets/swagger.json" path="/anoncreds/revocation/revoke" method="post" %} +[swagger.json](../../../.gitbook/assets/swagger.json) +{% endswagger %} + +#### Sample Request Body + +```json +{ + "comment": "Revoke issued credential", + "connection_id": "", + "cred_ex_id": "", + "notify": true, + "publish": true +} +``` + +## Step 3: Verify Revocation + +Follow the steps to [Present a Verifiable Credential](present-a-verifiable-credential.md) to verify that the credential has been successfully revoked. The response should have `verified: false`. diff --git a/sdk/credo.md b/sdk/credo.md index 2c12ae6..973a018 100644 --- a/sdk/credo.md +++ b/sdk/credo.md @@ -6,7 +6,7 @@ description: >- # 🍏 Credo -[Credo](https://credo.js.org/) is a framework written in TypeScript for building **SSI Agents and services** that aims to be **compliant and interoperable** with the standards defined in the European Archicture and Reference Framework. +[Credo](https://credo.js.org/) is a framework written in TypeScript for building **SSI Agents and services** that aims to be **compliant and interoperable** with the standards defined in the European Architecture and Reference Framework. The Aries Framework JavaScript project has recently been rebranded to "Credo" and was moved from the Hyperledger Foundation to the [Open Wallet Foundation](https://openwallet.foundation/). diff --git a/sdk/understanding-sdks.md b/sdk/understanding-sdks.md index 3c9aafb..7295cef 100644 --- a/sdk/understanding-sdks.md +++ b/sdk/understanding-sdks.md @@ -14,33 +14,33 @@ cheqd is continually integrating into different software development kits to sui Below is a comparison between our three initial supported SDKs, Veramo SDK for cheqd, Credo (formerly Aries Framework JavaScript) and Walt.id's SSI Kit. -| Functionality | Veramo | Credo | Walt.id SSI Kit | -| -------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------: | :---: | :-------------: | -| **Create cheqd DIDs (**[**ADR**](../architecture/adr-list/adr-001-cheqd-did-method.md)**)** | ✔️ | ✔️ | ✔️ | -| **cheqd Credential Payments** | ✔️ | ❌ | ❌ | -| **JSON based JWT Verifiable Credential (**[**spec**](https://www.w3.org/TR/vc-data-model/)**)** | ✔️ | ❌ | ✔️ | -| **JSON-LD Verifiable Credential (**[**spec**](https://www.w3.org/TR/vc-data-model/)**)** | ✔️ | ✔️ | ✔️ | -| **AnonCreds (**[**spec**](https://hyperledger.github.io/anoncreds-spec/)**)** | ❌ | ✔️ | ❌ | -| **Selective Disclosure-JWT Credential (**[**spec**](https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/)**)** | ⌛(roadmap) | ✔️ | ✔️ | -| **Create on-ledger Schema (**[**ADR**](../architecture/adr-list/adr-002-did-linked-resources.md)**)** | ✔️ | ✔️ | ❌ | -| **Create Credential Definition (**[**spec**](../advanced/anoncreds/)**)** | ❌ | ✔️ | ❌ | -| **DIDComm v1.0 (**[**spec**](https://didcomm.org/basicmessage/1.0/)**)** | ✔️ | ✔️ | ❌ | -| **DIDComm v2.0 (**[**spec**](https://identity.foundation/didcomm-messaging/spec/)**)** | ✔️ | ✔️ | ❌ | -| **DID Exchange Protocol (**[**RFC 0023**](https://github.com/hyperledger/aries-rfcs/tree/main/features/0023-did-exchange)**)** | ❌ | ✔️ | ❌ | -| **Agent Connection Protocol (**[**RFC 0160**](https://github.com/hyperledger/aries-rfcs/blob/main/features/0160-connection-protocol/README.md)**)** | ❌ | ✔️ | ❌ | -| **Out of Band Protocol (**[**RFC 0434**](https://github.com/hyperledger/aries-rfcs/blob/main/features/0434-outofband/README.md)**)** | ❌ | ✔️ | ❌ | -| **Self Issued OpenID Provider v2 (OIDC-SIOP) (**[**spec**](https://openid.net/specs/openid-connect-self-issued-v2-1\_0.html)**)** | ⌛(roadmap) | ✔️ | ✔️ | -| **OpenID for Verifiable Credential Issuance (**[**spec**](https://openid.net/specs/openid-4-verifiable-credential-issuance-1\_0.html)**)** | ⌛(roadmap) | ✔️ | ✔️ | -| **OpenID for Verifiable Credential Presentations (**[**spec**](https://openid.net/specs/openid-4-verifiable-presentations-1\_0.html)**)** | ⌛(roadmap) | ✔️ | ✔️ | -| **Status List v2021 Revocation (**[**spec**](https://www.w3.org/TR/vc-status-list/)**)** | ✔️ | ❌ | ✔️ | -| **Token Status List** | ❌ | ✔️ | ✔️ | -| **AnonCreds Revocation Registry Definitions (**[**spec**](https://docs.cheqd.io/identity/guides/anoncreds/revocation-registry-definition)**)** | ❌ | ✔️ | ❌ | -| **AnonCreds Status List Entries (**[**spec**](https://docs.cheqd.io/identity/guides/anoncreds/revocation-status-list)**)** | ❌ | ✔️ | ❌ | -| **Issue Credential Protocol (**[**RFC 0036**](https://github.com/hyperledger/aries-rfcs/blob/master/features/0036-issue-credential/README.md)**)** | ❌ | ✔️ | ❌ | -| **Issue Credential Protocol V2 (**[**RFC 0453**](https://github.com/hyperledger/aries-rfcs/blob/master/features/0453-issue-credential-v2/README.md)**)** | ❌ | ✔️ | ❌ | -| **DIF Presentation Exchange (**[**spec**](https://identity.foundation/presentation-exchange/)**)** | ✔️ | ✔️ | ✔️ | -| **Aries Present Proof 2.0 (**[**spec**](https://github.com/hyperledger/aries-rfcs/blob/main/features/0454-present-proof-v2/README.md)**)** | ❌ | ✔️ | ❌ | -| **DID-Linked Trust Registries** | ⌛(roadmap) | ❌ | ❌ | +| Functionality | Veramo | Credo | Walt.id SSI Kit | ACA-Py | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | :---: | :-------------: | :----: | +| **Create cheqd DIDs (**[**ADR**](../architecture/adr-list/adr-001-cheqd-did-method.md)**)** | ✔️ | ✔️ | ✔️ | ✔️ | +| **cheqd Credential Payments** | ✔️ | ❌ | ❌ | ✔️ | +| **JSON based JWT Verifiable Credential (**[**spec**](https://www.w3.org/TR/vc-data-model/)**)** | ✔️ | ❌ | ✔️ | ✔️ | +| **JSON-LD Verifiable Credential (**[**spec**](https://www.w3.org/TR/vc-data-model/)**)** | ✔️ | ✔️ | ✔️ | ✔️ | +| **AnonCreds (**[**spec**](https://hyperledger.github.io/anoncreds-spec/)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **Selective Disclosure-JWT Credential (**[**spec**](https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/)**)** | ⌛(roadmap) | ✔️ | ✔️ | ✔️ | +| **Create on-ledger Schema (**[**ADR**](../architecture/adr-list/adr-002-did-linked-resources.md)**)** | ✔️ | ✔️ | ❌ | ✔️ | +| **Create Credential Definition (**[**spec**](../advanced/anoncreds/)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **DIDComm v1.0 (**[**spec**](https://didcomm.org/basicmessage/1.0/)**)** | ✔️ | ✔️ | ❌ | ✔️ | +| **DIDComm v2.0 (**[**spec**](https://identity.foundation/didcomm-messaging/spec/)**)** | ✔️ | ✔️ | ❌ | ✔️ | +| **DID Exchange Protocol (**[**RFC 0023**](https://github.com/hyperledger/aries-rfcs/tree/main/features/0023-did-exchange)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **Agent Connection Protocol (**[**RFC 0160**](https://github.com/hyperledger/aries-rfcs/blob/main/features/0160-connection-protocol/README.md)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **Out of Band Protocol (**[**RFC 0434**](https://github.com/hyperledger/aries-rfcs/blob/main/features/0434-outofband/README.md)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **Self Issued OpenID Provider v2 (OIDC-SIOP) (**[**spec**](https://openid.net/specs/openid-connect-self-issued-v2-1_0.html)**)** | ⌛(roadmap) | ✔️ | ✔️ | ❌ | +| **OpenID for Verifiable Credential Issuance (**[**spec**](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html)**)** | ⌛(roadmap) | ✔️ | ✔️ | ❌ | +| **OpenID for Verifiable Credential Presentations (**[**spec**](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html)**)** | ⌛(roadmap) | ✔️ | ✔️ | ❌ | +| **Status List v2021 Revocation (**[**spec**](https://www.w3.org/TR/vc-status-list/)**)** | ✔️ | ❌ | ✔️ | ✔️ | +| **Token Status List** | ❌ | ✔️ | ✔️ | ✔️ | +| **AnonCreds Revocation Registry Definitions (**[**spec**](https://docs.cheqd.io/identity/guides/anoncreds/revocation-registry-definition)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **AnonCreds Status List Entries (**[**spec**](https://docs.cheqd.io/identity/guides/anoncreds/revocation-status-list)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **Issue Credential Protocol (**[**RFC 0036**](https://github.com/hyperledger/aries-rfcs/blob/master/features/0036-issue-credential/README.md)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **Issue Credential Protocol V2 (**[**RFC 0453**](https://github.com/hyperledger/aries-rfcs/blob/master/features/0453-issue-credential-v2/README.md)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **DIF Presentation Exchange (**[**spec**](https://identity.foundation/presentation-exchange/)**)** | ✔️ | ✔️ | ✔️ | ✔️ | +| **Aries Present Proof 2.0 (**[**spec**](https://github.com/hyperledger/aries-rfcs/blob/main/features/0454-present-proof-v2/README.md)**)** | ❌ | ✔️ | ❌ | ✔️ | +| **DID-Linked Trust Registries** | ⌛(roadmap) | ❌ | ❌ | ✔️ | diff --git a/sdk/veramo-plugin/did-operations/README.md b/sdk/veramo-plugin/did-operations/README.md index b48dcb7..1410d7e 100644 --- a/sdk/veramo-plugin/did-operations/README.md +++ b/sdk/veramo-plugin/did-operations/README.md @@ -17,3 +17,5 @@ A Decentralized Identifier "DID" is a globally unique identifier that does not r Below are a list of alternatives for creating cheqd DIDs.
cheqd StudioOur API product enables users to use cheqd's functionality with minimal complexity and easily integrate APIs into existing apps. Broken link
DID RegistrarSimple setup for building cheqd DIDs into existing applications using REST APIs, building into the Universal Registrar.did-registrar
CredoCredo is an SDK which supports the European Architecture and Reference Framework (ARF) standards as well as AnonCreds with full cheqd support for DIDs. credo.md
Walt.id SSI KitWalt.id SSI Kit is an SDK that supports the European Architecture and Reference Framework (ARF) standards for identity, with full cheqd support. ssi-kit.md
cheqd Cosmos CLICosmos CLI which directly communicates with the cheqd network. This should only be used for testing environments.cheqd-node-cli
+ +t diff --git a/studio/credentials/issue-credential.md b/studio/credentials/issue-credential.md index 05207fa..9341f17 100644 --- a/studio/credentials/issue-credential.md +++ b/studio/credentials/issue-credential.md @@ -10,7 +10,7 @@ Using the `/credential/create` API, it is possible to issue Verifiable Credentia Make sure you have set up your account with cheqd Studio and are logged in, using our guide below: -
Set up your accountSet up your account with cheqd Studio and log in to start using the APIs.set-up-account.md
+
Set up your accountSet up your account with cheqd Studio and log in to start using the APIs.set-up-account.md
## Step 2: Create an Issuer DID @@ -34,14 +34,14 @@ Within the JSON object of the API request, you will need to input the `issuer` a Users have two options for compiling the Credential bodies and issuing Verifiable Credentials: -1. **Filling out a simple form** using the `application/x-www-url-form-encoded` option on the Swagger UI. -2. **Compiling a Credential body yourself** using the `application/json` option on the Swagger UI. +1. **Filling out a simple form** using the `application/x-www-url-form-encoded` option within an API client of your choice. +2. **Compiling a Credential body yourself** using the `application/json` option within an API client of your choice. ### Option 1. Choose from a few variables and we will compile the Credential body for you This is the easiest way to issue Credentials and is recommended for users who are not overly familiar with compiling JSON objects. -Using the `application/x-www-url-form-encoded` option on the Swagger UI, users are able to choose between the following variables and options to issue Verifiable Credentials: +Using the `application/x-www-url-form-encoded` option, users are able to choose between the following variables and options to issue Verifiable Credentials:
@@ -229,7 +229,7 @@ Ensure that the `"statusPurpose"` and `"statusListName"` is the same as the exis ### Option 2. Publish a JSON payload yourself -Instead of using simple form variables, you can issue a Verifiable Credential using a JSON payload with the `application/json` option on the Swagger UI. +Instead of using simple form variables, you can issue a Verifiable Credential using a JSON payload with the `application/json` option. #### Request format diff --git a/studio/dids/create-did.md b/studio/dids/create-did.md index 0c5a504..bedd0f1 100644 --- a/studio/dids/create-did.md +++ b/studio/dids/create-did.md @@ -10,14 +10,14 @@ To create a cheqd DID (`did:cheqd`) and associated DID Document there are two wa Make sure you have set up your account with **cheqd Studio** and are logged in, using our guide below: -
Set up your accountSet up your account with cheqd Credential Service and log in to start using the APIs.set-up-account.md
+
Set up your accountSet up your account with cheqd Studio and get your API key to start using the APIs.set-up-account.md
## Step 2: Create a DID and associated DID Document Using the `/did/create` API, users have two options for creating a `did:cheqd` DID and associated DID Document on-ledger: -1. **Filling out a simple form** using the `application/x-www-url-form-encoded` option on the Swagger UI -2. **Compiling a DID Document body yourself** using the `application/json` option on the Swagger UI +1. **Filling out a simple form** using the `application/x-www-url-form-encoded` option within an API client of your choice. +2. **Compiling a DID Document body yourself** using the `application/json` option within an API client of your choice. {% swagger src="https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json" path="/did/create" method="post" expanded="true" %} [https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json](https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json) @@ -27,7 +27,7 @@ Using the `/did/create` API, users have two options for creating a `did:cheqd` D This is the easiest way to create DIDs on cheqd and is recommended for users who are not overly familiar with compiling DID Documents. -Using the `application/x-www-url-form-encoded` option on the Swagger UI, users are able to choose between the following variables to compile your DID: +Using the `application/x-www-url-form-encoded` option, users are able to choose between the following variables to compile your DID:
diff --git a/studio/status-lists/status-list-v2021/create-status-list.md b/studio/status-lists/status-list-v2021/create-status-list.md index f738588..2cdffac 100644 --- a/studio/status-lists/status-list-v2021/create-status-list.md +++ b/studio/status-lists/status-list-v2021/create-status-list.md @@ -44,8 +44,8 @@ For the purpose of this tutorial, we will assume the user is creating an unencry Using the `/credential-status/create/unencrypted` API, users have two options for creating an encrypted Status List on-ledger: -1. **Filling out a simple form** using the `application/x-www-url-form-encoded` option on the Swagger UI. -2. **Compiling a Status List payload yourself** using the `application/json` option on the Swagger UI. +1. **Filling out a simple form** using the `application/x-www-url-form-encoded` option within an API client of your choice. +2. **Compiling a Status List payload yourself** using the `application/json` option within an API client of your choice. {% swagger src="https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json" path="/credential-status/create/unencrypted" method="post" expanded="true" %} [https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json](https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json) @@ -55,7 +55,7 @@ Using the `/credential-status/create/unencrypted` API, users have two options fo This is the easiest way to create unencrypted Status Lists on cheqd and is recommended for users who are not overly familiar with compiling JSON objects. -Using the `application/x-www-url-form-encoded` option on the Swagger UI, users are able to choose between the following variables and options to create an unencrypted Status List on-ledger: +Using the `application/x-www-url-form-encoded` option, users are able to choose between the following variables and options to create an unencrypted Status List on-ledger:
diff --git a/studio/status-lists/token-status-list/update-token-status-list.md b/studio/status-lists/token-status-list/update-token-status-list.md index 8e953b6..e6dc23f 100644 --- a/studio/status-lists/token-status-list/update-token-status-list.md +++ b/studio/status-lists/token-status-list/update-token-status-list.md @@ -72,7 +72,7 @@ HfSynOpmBrhgfYguING ## Step 3: Set the same Resource Name and Type -To create a new version you must use the **same "name" and "type"** for your resource, and ensure that the new Token Status List resource is being created **underneath the same DID** as your initial DID**.** You will also need to be logged into the same cheqd Studio account that you used to create the initial Token Status List to have access to the keys to sign the update. +To create a new version you must use the **same "name" and "type"** for your resource, and ensure that the new Token Status List resource is being created **underneath the same DID** as your initial DID**.** You will also need to be logged into the same cheqd Studio account that you used to create the initial Token Status List to have access to the keys to sign the update. For Token Status Lists, the "type" MUST be: **`"TokenStatusList"`.** diff --git a/studio/trust-registries/README.md b/studio/trust-registries/README.md index c2e9580..7e39a16 100644 --- a/studio/trust-registries/README.md +++ b/studio/trust-registries/README.md @@ -20,7 +20,7 @@ Learn about a data model below: Start building with our cheqd Studio APIs and configure a trust registry for your digital credential ecosystem: -
Create Verifiable AccreditationIssue Verifiable Accreditations between DIDs on the cheqd Network, to accredit the DID to perform a certain action.create-accreditation.md
+
Create Verifiable AccreditationIssue Verifiable Accreditations between DIDs on the cheqd Network, to accredit the DID to perform a certain action.issue-accreditation.md
## Extensions diff --git a/studio/trust-registries/create-accreditation.md b/studio/trust-registries/create-accreditation.md deleted file mode 100644 index 553b15a..0000000 --- a/studio/trust-registries/create-accreditation.md +++ /dev/null @@ -1,239 +0,0 @@ ---- -description: Issue Verifiable Accreditations as DID-Linked Resources ---- - -# Create Verifiable Accreditation - -Users are able to **issue Verifiable Accreditations as DID-Linked Resources on-ledger**, which may be used to **verify whether a particular recipient of an accreditation is accredited to issue a certain type of credential**, under the scope of a particular governance framework. This implementation on cheqd builds on the principles of the EBSI Trust Chain model, using DID-Linked Resources to create a more standardised format for storing, retrieving and dereferencing to trust registry entries. - -## Step 1: Set up your account - -Make sure you have set up your account with cheqd Studio and are logged in, using our guide below: - -
Set up your accountSet up your account with cheqd Studio and log in to start using the APIs.set-up-account.md
- -## Step 2: Create a DID - -Before you can create a Verifiable Accreditation, you need to create a DID which is used to link to one or multiple Verifiable Accreditations on-ledger. Use the API in the page below to create a DID: - -
Create an Issuer DIDCreate a W3C conformant DID on cheqd using the did:cheqd DID Method.create-did.md
- -## Step 3: Create your Verifiable Accreditation body and save the file locally - -Verifiable Accreditations are JSON objects that take the form of the Verifiable Credential data model. There are two types of Verifiable Accreditation: - -
TypeDescription
Verifiable Accreditation to AccreditThis Credential verifies that an organisation has the permissions needed to accredit other organisations for issuing a particular type of Verifiable Accredittion.
Verifiable Accreditation to AttestThis Credential verifies that an organisation has the permissions needed to issue Verifiable Credentials, defined by a particular schema.
- -For a trusted ecosystem, these attestations are required to trace the legitimacy of a credential issuer to a root-of-trust. - -
- -Example of Verifiable Accreditation to Accredit - -```json -{ - "@context": ["https://www.w3.org/2018/credentials/v1"], - "id": "urn:uuid:8568b525-a24e-4bc0-9d97-6a8459ec0130", - "type": [ - "VerifiableCredential", - "VerifiableAttestation", - "VerifiableAccreditation", - "VerifiableAccreditationToAccredit" - ], - "issuer": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6", - "issuanceDate": "2021-11-01T00:00:00Z", - "validFrom": "2021-11-01T00:00:00Z", - "expirationDate": "2025-06-22T14:11:44Z", - "issued": "2020-06-22T14:11:44Z", - "credentialSubject": { - "id": "did:cheqd:testnet:e21b63d1-a771-4eb9-9452-869cd30fd622", - "accreditedFor": [ - { - "schemaId": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6/resources/83eb0ed8-37d1-4ba6-9e0b-40d60676d4aa", - "types": [ - "VerifiableCredential", - "VerifiableAttestation", - "DiplomaCredential" - ] - } - ] - }, - "credentialStatus": { - "id": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6?resourceName=accreditationStatus&resourceType=StatusList2021Revocation", - "type": "StatusList2021Revocation" - }, - "termsOfUse": [ - { - "id": "https://example.com/governance-framework/../..xyz", - "type": "GovernanceFramework" - } - ], - "credentialSchema": [ - { - "id": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6/resources/83eb0ed8-37d1-4ba6-9e0b-40d60676d4aa", - "type": "FullJsonSchemaValidator2021" - } - ] -} - - -``` - -
- -
- -Example of Verifiable Accreditation to Attest - -```json -{ - "@context": ["https://www.w3.org/2018/credentials/v1"], - "id": "urn:uuid:8568b525-a24e-4bc0-9d97-6a8459ec0130", - "type": [ - "VerifiableCredential", - "VerifiableAttestation", - "VerifiableAccreditation", - "VerifiableAccreditationToAttest" - ], - "issuer": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6", - "issuanceDate": "2021-11-01T00:00:00Z", - "validFrom": "2021-11-01T00:00:00Z", - "expirationDate": "2025-06-22T14:11:44Z", - "issued": "2020-06-22T14:11:44Z", - "credentialSubject": { - "id": "did:cheqd:testnet:e21b63d1-a771-4eb9-9452-869cd30fd622", - "reservedAttributeId": "15b49499-2a36-4c73-9f5b-7409b44ce7a3", - "accreditedFor": [ - { - "schemaId": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6/resources/da4159f1-ff50-4a7c-b0cb-40d3a1f71003a", - "types": [ - "VerifiableCredential", - "VerifiableAttestation", - "DiplomaCredential" - ] - ] - }, - "credentialStatus": { - "id": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6?resourceName=accreditationStatus&resourceType=StatusList2021Revocation", - "type": "StatusList2021Revocation" - }, - "termsOfUse": { - "type": "AccreditationPolicy", - "parentAccreditation": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6/resources/da4159f1-ff50-4a7c-b0cb-40d3a1f71003a", - "rootAuthorisation": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6/resources/da4159f1-ff50-4a7c-b0cb-40d3a1f71003a", - "trustFramework": "Name of the Governance Framework (GF)" - }, - "credentialSchema": [ - { - "id": "did:cheqd:testnet:098c4f66-b461-4037-9cf0-c5db75b270c6/resources/da4159f1-ff50-4a7c-b0cb-40d3a1f71003a", - "type": "FullJsonSchemaValidator2021" - } - ] -} - - -``` - -
- -Save this file locally and call it something like `verifiableAccreditation.json` - -{% hint style="info" %} -Note that each SON file must be **below \~45kb in size**. -{% endhint %} - -## Step 4: Encode the file - -Prepare a file with resource and encode it into `base64, base64url` or `hex`. On Unix systems, you can use the following command input: - -```bash -$ base64 -w 0 resource.json - -``` - -Expected output: - -```bash -$ base64 -w 0 resource.json -SGVsbG8sIHdvcmxk -``` - -## Step 5: Set the resource name and type - -DID-Linked Resources are grouped by having identical **names** and **types**. This means if you want to create a new version of the same Resource, you will need to **specify the same name and type in the following request**. - -For Verifiable Accreditations, the "type" MUST be either: **`"VerifiableAccreditationToAccredit"`** or **`"VerifiableAccreditationToAttest"`** - -For example: - -```json -{ - "data": "SGVsbG8sIHdvcmxk", - "encoding": "base64url", - "name": "OxfordUniversityAccreditation", - "type": "VerifiableAccreditationToAccredit" -} -``` - -## Step 6: Populate the request inputs and hit the API - -Ensure that you link this Verifiable Accreditation to the DID that you created in step 3. This will sign the resource with the same verification method keys in your DID Document, ensuring cryptographic integrity and Controllership of the Status List. - -As a DID-Linked Resource, the Verifiable Accreditation will have a **fully resolvable DID URL** which can be referenced within the body of Verifiable Credentials, and queried by verification policies to establish the status of the specific credential. - -{% swagger src="https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json" path="/resource/create/{did}" method="post" expanded="true" %} -[https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json](https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json) -{% endswagger %} - -## Step 7: Reference the Verifiable Accreditation - -Owing to the design of DID-Linked Resources, following the creation of the a Verifiable Accreditation, users are able to reference the **specific version**, or create a query to **always fetch the latest version** of the Accreditation. - -Using a DID Resolver or the search DID endpoint, users can find the DID URL and unique resourceId of the Verifiable Accreditation. The unique resourceId allows users to specify this exact version of the Accreditation. - -{% swagger src="https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json" path="/did/search/{did}" method="get" %} -[https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json](https://raw.githubusercontent.com/cheqd/credential-service/main/src/static/swagger-api.json) -{% endswagger %} - -In the DID Document Metadata, users should find "linkedResourceMetadata", like the following snippet: - -```json -"linkedResourceMetadata": [ - { - "resourceURI": "did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d/resources/4e1104f9-2ee9-4bde-adc2-ab8ba72b124a", - "resourceCollectionId": "0a5b94d0-a417-48ed-a6f5-4abc9e95888d", - "resourceId": "4e1104f9-2ee9-4bde-adc2-ab8ba72b124a", - "resourceName": "OxfordUniversityAccreditation", - "resourceType": "VerifiableAccreditationToAccredit", - "mediaType": "application/json", - "resourceVersion": "", - "created": "2023-03-24T12:13:45Z", - "checksum": "6819aaecd4073173b159fedf8077c38e14939d03d58e7f4e2a0ddfe034eb2ed4", - "previousVersionId": null, - "nextVersionId": null - } -``` - -### Specific version of the Verifiable Accreditation - -Here, the "`resourceURI`" specifies the DID URL of the specific Verifiable Accreditation that was created. - -### Latest version of the Verifiable Accreditation - -In order to **reference the latest version of the Verifiable Accreditation**, the following construction needs to be used: - -`did:cheqd::?resourceName=&resourceType=` - -For example: - -`did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=OxfordUniversityAccreditation&resourceType=VerifiableAccreditationToAccredit` - -### Verifiable Accreditation at specific point in time - -In order to **reference the Verifiable Accreditation at a particular point in time**, the following construction needs to be used: - -`did:cheqd::?resourceName=&resourceType=&resourceVerionTime=` - -For example: - -`did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=OxfordUniversityAccreditation&resourceType=VerifiableAccreditationToAccredit&resourceVersionTime=2023-02-22T06:58:18.61Z` diff --git a/studio/trust-registries/issue-accreditation.md b/studio/trust-registries/issue-accreditation.md new file mode 100644 index 0000000..4fca901 --- /dev/null +++ b/studio/trust-registries/issue-accreditation.md @@ -0,0 +1,289 @@ +--- +description: Issue Verifiable Accreditations as DID-Linked Resources +--- + +# Issue Verifiable Accreditation + +Users are able to **issue Verifiable Accreditations as DID-Linked Resources on-ledger**, which may be used to **verify whether a particular recipient of an accreditation is accredited to issue a certain type of credential**, under the scope of a particular governance framework. This implementation on cheqd builds on the principles of the EBSI Trust Chain model, using DID-Linked Resources to create a more standardised format for storing, retrieving and dereferencing to trust registry entries. + +## Step 1: Set up your account + +Make sure you have set up your account with **cheqd Studio** and are logged in, using our guide below: + +
Set up your accountSet up your account with cheqd Studio and log in to start using the APIs.set-up-account.md
+ +## Step 2: Create a DID + +Before you can create a Verifiable Accreditation, you need to create a DID which is used to link to one or multiple Verifiable Accreditations on-ledger. Use the API in the page below to create a DID: + +
Create an Issuer DIDCreate a W3C conformant DID on cheqd using the did:cheqd DID Method.create-did.md
+ +## Step 3: Choose the type of Accreditation + +Verifiable Accreditations are JSON objects that take the form of the Verifiable Credential data model. There are three types of Verifiable Accreditation: + +
TypeDescription
Verifiable Authorisation for Trust ChainThis Accreditation authorises the recipient to issue Accreditations with reference to a particular governance framework.
Verifiable Accreditation to AccreditThis Accreditation verifies that an organisation has the permissions needed to accredit other organisations for issuing a particular type of Verifiable Accredittion.
Verifiable Accreditation to AttestThis Accreditation verifies that an organisation has the permissions needed to issue Verifiable Credentials, defined by a particular schema.
+ +## Step 4: Compile the appropriate request format for the API + +For each accreditation type, the user will need to use a different request format for the API. + +### Verifiable Authorisation for Trust Chain + +
+ +Request format for Verifiable Authorisation for Trust Chain + +```json +{ + "issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e", + "subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad", + "schemas": [ + { + "type": "MuseumPassCredential", + "url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018" + } + ], + "format": "jwt", + "accreditationName": "authoriseAccreditationTest", + "trustFramework": "https://learn.cheqd.io/governance/start", + "trustFrameworkId": "cheqd Governance Framework" +} +``` + +
+ +
+ +Response format for Verifiable Authorisation for Trust Chain + +```json +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "type": [ + "VerifiableCredential", + "VerifiableAuthorisationForTrustChain" + ], + "issuer": { + "id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e" + }, + "credentialSubject": { + "accreditedFor": [ + { + "schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018", + "type": "MuseumPassCredential" + } + ], + "id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad" + }, + "issuanceDate": "2024-10-15T04:06:47.000Z", + "termsOfUse": { + "type": "VerifiableAuthorisationForTrustChain", + "trustFramework": "https://learn.cheqd.io/governance/start", + "trustFrameworkId": "cheqd Governance Framework" + }, + "proof": { + "type": "JwtProof2020", + "jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg" + } +} +``` + +
+ +
Request ParameterRequiredDescription
"issuerDid"YesThe DID of the Issuer of the Accreditation
"subjectDid"YesThe DID of the Recipient of the Accreditation
"schemas"YesA schema or multiple schemas that the recipient is accredited to issue
"format"OptionalDefaults to "jwt" but may also be "json-ld"
"accreditationName"YesName of the accreditation which is used for chronological versioning of the accreditation.
"trustFramework"YesA URL that points to an Ecosystem Governance Framework
"trustFrameworkId"YesThe name of the Ecosystem Governance Framework
"credentialStatus"OptionalAn object detailing the status information of the Accreditation
+ +### Verifiable Accreditation to Accredit + +
+ +Request format for Verifiable Accreditation to Accredit + +```json +{ + "issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e", + "subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad", + "schemas": [ + { + "type": "MuseumPassCredential", + "url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018" + } + ], + "format": "jwt", + "accreditationName": "accreditationToAttestTest", + "parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit", + "rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorisationForTrustChain", +} +``` + +
+ +
+ +Response format for Verifiable Accreditation to Accredit + +```json +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "type": [ + "VerifiableCredential", + "VerifiableAccreditationToAccredit" + ], + "issuer": { + "id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e" + }, + "credentialSubject": { + "accreditedFor": [ + { + "schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018", + "type": "MuseumPassCredential" + } + ], + "id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad" + }, + "issuanceDate": "2024-10-15T04:06:47.000Z", + "termsOfUse": { + "type": "VerifiableAuthorisationForTrustChain", + "parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit", + "rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorisationForTrustChain", + }, + "proof": { + "type": "JwtProof2020", + "jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg" + } +} +``` + +
+ +
Request ParameterRequiredDescription
"issuerDid"YesThe DID of the Issuer of the Accreditation
"subjectDid"YesThe DID of the Recipient of the Accreditation
"schemas"YesA schema or multiple schemas that the recipient is accredited to issue
"format"OptionalDefaults to "jwt" but may also be "json-ld"
"accreditationName"YesName of the accreditation which is used for chronological versioning of the accreditation.
"parentAccreditation"YesA URL or DID URL of Accreditation of the Issuer demonstrating capacity to issue this Accreditation.
"rootAuthorization"YesA URL or DID URL of the root authorization governing the ecosystem
"credentialStatus"OptionalAn object detailing the status information of the Accreditation
+ +For a trusted ecosystem, these attestations are required to trace the legitimacy of a credential issuer to a root-of-trust. + +### Verifiable Accreditation to Attest + +
+ +Request format for Verifiable Accreditation to Attest + +```json +{ + "issuerDid": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e", + "subjectDid": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad", + "schemas": [ + { + "type": "MuseumPassCredential", + "url": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018" + } + ], + "format": "jwt", + "accreditationName": "accreditationToAttestTest", + "parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit", + "rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorisationForTrustChain", +} +``` + +
+ +
+ +Response format for Verifiable Accreditation to Attest + +```json +{ + "@context": [ + "https://www.w3.org/2018/credentials/v1" + ], + "type": [ + "VerifiableCredential", + "VerifiableAccreditationToAccredit" + ], + "issuer": { + "id": "did:cheqd:testnet:b003df6f-ec8e-48dd-9a2b-7011c5cf0a5e" + }, + "credentialSubject": { + "accreditedFor": [ + { + "schemaId": "https://resolver.cheqd.net/1.0/identifiers/did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=MuseumPassCredentialSchema&resourceType=JsonSchemaValidator2018", + "type": "MuseumPassCredential" + } + ], + "id": "did:cheqd:testnet:6af412d7-2f04-4e12-a424-e6719db487ad" + }, + "issuanceDate": "2024-10-15T04:06:47.000Z", + "termsOfUse": { + "type": "VerifiableAuthorisationForTrustChain", + "parentAccreditation": "did:cheqd:testnet:15b74787-6e48-4fd5-8020-eab24e990578?resourceName=accreditAccreditation&resourceType=VerifiableAccreditationToAccredit", + "rootAuthorization": "did:cheqd:testnet:5RpEg66jhhbmASWPXJRWrA?resourceName=authorizeAccreditation&resourceType=VerifiableAuthorisationForTrustChain", + }, + "proof": { + "type": "JwtProof2020", + "jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImFjY3JlZGl0ZWRGb3IiOlt7InNjaGVtYUlkIjoiaHR0cHM6Ly9yZXNvbHZlci5jaGVxZC5uZXQvMS4wL2lkZW50aWZpZXJzL2RpZDpjaGVxZDp0ZXN0bmV0OjBhNWI5NGQwLWE0MTctNDhlZC1hNmY1LTRhYmM5ZTk1ODg4ZD9yZXNvdXJjZU5hbWU9TXVzZXVtUGFzc0NyZWRlbnRpYWxTY2hlbWEmcmVzb3VyY2VUeXBlPUpzb25TY2hlbWFWYWxpZGF0b3IyMDE4IiwidHlwZSI6Ik11c2V1bVBhc3NDcmVkZW50aWFsIn1dfSwidGVybXNPZlVzZSI6eyJ0eXBlIjoiVmVyaWZpYWJsZUF1dGhvcmlzYXRpb25Gb3JUcnVzdENoYWluIiwidHJ1c3RGcmFtZXdvcmsiOiJodHRwczovL2xlYXJuLmNoZXFkLmlvL2dvdmVybmFuY2Uvc3RhcnQiLCJ0cnVzdEZyYW1ld29ya0lkIjoiY2hlcWQgR292ZXJuYW5jZSBGcmFtZXdvcmsifX0sInN1YiI6ImRpZDpjaGVxZDp0ZXN0bmV0OjZhZjQxMmQ3LTJmMDQtNGUxMi1hNDI0LWU2NzE5ZGI0ODdhZCIsIm5iZiI6MTcyODk2NTIwNywiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6YjAwM2RmNmYtZWM4ZS00OGRkLTlhMmItNzAxMWM1Y2YwYTVlIn0.6dKE9-y2Id852onu1_WnD6aJnDtxgFZcjCbCfQ8MT1ACsHY8ox5jiKP4QUJNmhwesLidC99Qa0uyCrUhvHc2Bg" + } +} +``` + +
+ +
Request ParameterRequiredDescription
"issuerDid"YesThe DID of the Issuer of the Accreditation
"subjectDid"YesThe DID of the Recipient of the Accreditation
"schemas"YesA schema or multiple schemas that the recipient is accredited to issue
"format"OptionalDefaults to "jwt" but may also be "json-ld"
"accreditationName"YesName of the accreditation which is used for chronological versioning of the accreditation.
"parentAccreditation"YesA URL or DID URL of Accreditation of the Issuer demonstrating capacity to issue this Accreditation.
"rootAuthorization"YesA URL or DID URL of the root authorization governing the ecosystem
"credentialStatus"OptionalAn object detailing the status information of the Accreditation
+ +For a trusted ecosystem, these attestations are required to trace the legitimacy of a credential issuer to a root-of-trust. + +## Step 5: Make request to the API + +{% swagger src="https://raw.githubusercontent.com/cheqd/studio/refs/heads/main/src/static/swagger-api.json" path="/trust-registry/accreditation/issue" method="post" %} +[https://raw.githubusercontent.com/cheqd/studio/refs/heads/main/src/static/swagger-api.json](https://raw.githubusercontent.com/cheqd/studio/refs/heads/main/src/static/swagger-api.json) +{% endswagger %} + +## Step 7: Reference the Verifiable Accreditation + +Owing to the design of DID-Linked Resources, following the creation of the a Verifiable Accreditation, users are able to reference the **specific version**, or create a query to **always fetch the latest version** of the Accreditation. + +Using a DID Resolver or the search DID endpoint, users can find the DID URL and unique resourceId of the Verifiable Accreditation. The unique resourceId allows users to specify this exact version of the Accreditation. + +In the DID Document Metadata, users should find "linkedResourceMetadata", like the following snippet: + +```json +"linkedResourceMetadata": [ + { + "resourceURI": "did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d/resources/4e1104f9-2ee9-4bde-adc2-ab8ba72b124a", + "resourceCollectionId": "0a5b94d0-a417-48ed-a6f5-4abc9e95888d", + "resourceId": "4e1104f9-2ee9-4bde-adc2-ab8ba72b124a", + "resourceName": "OxfordUniversityAccreditation", + "resourceType": "VerifiableAccreditationToAccredit", + "mediaType": "application/json", + "resourceVersion": "", + "created": "2023-03-24T12:13:45Z", + "checksum": "6819aaecd4073173b159fedf8077c38e14939d03d58e7f4e2a0ddfe034eb2ed4", + "previousVersionId": null, + "nextVersionId": null + } +``` + +### Specific version of the Verifiable Accreditation + +Here, the "`resourceURI`" specifies the DID URL of the specific Verifiable Accreditation that was created. + +### Latest version of the Verifiable Accreditation + +In order to **reference the latest version of the Verifiable Accreditation**, the following construction needs to be used: + +`did:cheqd::?resourceName=&resourceType=` + +For example: + +`did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=OxfordUniversityAccreditation&resourceType=VerifiableAccreditationToAccredit` + +### Verifiable Accreditation at specific point in time + +In order to **reference the Verifiable Accreditation at a particular point in time**, the following construction needs to be used: + +`did:cheqd::?resourceName=&resourceType=&resourceVerionTime=` + +For example: + +`did:cheqd:testnet:0a5b94d0-a417-48ed-a6f5-4abc9e95888d?resourceName=OxfordUniversityAccreditation&resourceType=VerifiableAccreditationToAccredit&resourceVersionTime=2023-02-22T06:58:18.61Z` diff --git a/studio/trust-registries/verify-verifiable-accreditation.md b/studio/trust-registries/verify-verifiable-accreditation.md new file mode 100644 index 0000000..620f7bb --- /dev/null +++ b/studio/trust-registries/verify-verifiable-accreditation.md @@ -0,0 +1,16 @@ +# Verify Verifiable Accreditation + +Users are able to **issue Verifiable Accreditations** to determine the validity of the accreditation, as well to traverse the trust chain to a root of trust. + +## Step 1: Issue Accreditation + +Make sure you have already created at least one Verifiable Accreditation that you are able to query in the verify API. + +
Issue Verifiable AccreditationIssue a Verifiable Accreditation as a DID-Linked Resource from an "issuer" DID to a recipient "subject" DID.issue-accreditation.md
+ +## Step 2: Use the Verify Accreditation API + +{% swagger src="https://raw.githubusercontent.com/cheqd/studio/refs/heads/main/src/static/swagger-api.json" path="/trust-registry/accreditation/verify" method="post" %} +[https://raw.githubusercontent.com/cheqd/studio/refs/heads/main/src/static/swagger-api.json](https://raw.githubusercontent.com/cheqd/studio/refs/heads/main/src/static/swagger-api.json) +{% endswagger %} +