From 92f0c4b1ce84b3102e228650835909edcf25b3ac Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 11 Mar 2024 16:00:19 +0000 Subject: [PATCH] Deployed 9ea43ad38 to main with MkDocs 1.5.3 and mike 2.0.0 --- main/404.html | 21 + main/CHANGELOG/index.html | 21 + main/CODE_OF_CONDUCT/index.html | 21 + main/CONTRIBUTING/index.html | 21 + main/MAINTAINERS/index.html | 21 + main/PUBLISHING/index.html | 21 + main/SECURITY/index.html | 21 + main/UpdateRTD/index.html | 21 + main/aca-py.org/index.html | 21 + main/assets/index.html | 21 + main/demo/AcmeDemoWorkshop/index.html | 21 + main/demo/AliceGetsAPhone/index.html | 21 + .../demo/AliceWantsAJsonCredential/index.html | 21 + main/demo/AriesOpenAPIDemo/index.html | 21 + main/demo/AriesPostmanDemo/index.html | 21 + main/demo/Endorser/index.html | 21 + main/demo/ReusingAConnection/index.html | 21 + main/demo/index.html | 21 + main/deploying/AnonCredsWalletType/index.html | 21 + .../index.html | 21 + main/deploying/Databases/index.html | 21 + .../IndySDKtoAskarMigration/index.html | 21 + main/deploying/Poetry/index.html | 21 + main/deploying/RedisPlugins/index.html | 21 + main/deploying/UpgradingACA-Py/index.html | 21 + main/deploying/deploymentModel/index.html | 21 + .../AnoncredsW3CCompatibility/index.html | 21 + main/features/AdminAPI/index.html | 21 + main/features/AnonCredsMethods/index.html | 2376 +++++++++++++++++ .../AnoncredsProofValidation/index.html | 21 + main/features/DIDMethods/index.html | 21 + main/features/DIDResolution/index.html | 27 +- main/features/DevReadMe/index.html | 21 + main/features/Endorser/index.html | 21 + main/features/JsonLdCredentials/index.html | 21 + main/features/Mediation/index.html | 21 + main/features/Multicredentials/index.html | 21 + main/features/Multiledger/index.html | 27 +- main/features/Multitenancy/index.html | 21 + main/features/PlugIns/index.html | 21 + .../SelectiveDisclosureJWTs/index.html | 21 + main/features/SupportedRFCs/index.html | 21 + main/features/UsingOpenAPI/index.html | 21 + main/features/devcontainer/index.html | 21 + .../AgentConnections/index.html | 21 + .../AriesAgentArchitecture/index.html | 21 + main/gettingStarted/AriesBasics/index.html | 21 + .../gettingStarted/AriesBigPicture/index.html | 21 + .../AriesDeveloperDemos/index.html | 21 + main/gettingStarted/AriesMessaging/index.html | 21 + .../AriesRoutingExample/index.html | 21 + .../ConnectIndyNetwork/index.html | 21 + .../CredentialRevocation/index.html | 21 + main/gettingStarted/DIDcommMsgs/index.html | 21 + .../DecentralizedIdentityDemos/index.html | 21 + .../IndyAriesDevOptions/index.html | 21 + main/gettingStarted/IndyBasics/index.html | 21 + .../IssuingAnonCredsCredentials/index.html | 21 + .../PresentingAnonCredsProofs/index.html | 21 + .../RoutingEncryption/index.html | 21 + .../YourOwnAriesAgent/index.html | 21 + main/gettingStarted/index.html | 21 + main/index.html | 21 + main/search/search_index.json | 2 +- main/sitemap.xml.gz | Bin 127 -> 127 bytes main/testing/AgentTracing/index.html | 21 + main/testing/INTEGRATION-TESTS/index.html | 21 + main/testing/Logging/index.html | 21 + main/testing/Troubleshooting/index.html | 21 + main/testing/UnitTests/index.html | 21 + 70 files changed, 3790 insertions(+), 7 deletions(-) create mode 100644 main/features/AnonCredsMethods/index.html diff --git a/main/404.html b/main/404.html index dea28d6f78..f88002e58a 100644 --- a/main/404.html +++ b/main/404.html @@ -698,6 +698,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/CHANGELOG/index.html b/main/CHANGELOG/index.html index 89980486be..22de170430 100644 --- a/main/CHANGELOG/index.html +++ b/main/CHANGELOG/index.html @@ -818,6 +818,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/CODE_OF_CONDUCT/index.html b/main/CODE_OF_CONDUCT/index.html index c15ba9bac1..ccf98b5076 100644 --- a/main/CODE_OF_CONDUCT/index.html +++ b/main/CODE_OF_CONDUCT/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/CONTRIBUTING/index.html b/main/CONTRIBUTING/index.html index 6215893c33..acfad7a886 100644 --- a/main/CONTRIBUTING/index.html +++ b/main/CONTRIBUTING/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/MAINTAINERS/index.html b/main/MAINTAINERS/index.html index e27eb15e85..4db40d3653 100644 --- a/main/MAINTAINERS/index.html +++ b/main/MAINTAINERS/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/PUBLISHING/index.html b/main/PUBLISHING/index.html index b0a9942618..4dfe6d725b 100644 --- a/main/PUBLISHING/index.html +++ b/main/PUBLISHING/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/SECURITY/index.html b/main/SECURITY/index.html index 59bca0b8b9..a5239a7885 100644 --- a/main/SECURITY/index.html +++ b/main/SECURITY/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/UpdateRTD/index.html b/main/UpdateRTD/index.html index b5ca65266d..0399cfc511 100644 --- a/main/UpdateRTD/index.html +++ b/main/UpdateRTD/index.html @@ -707,6 +707,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/aca-py.org/index.html b/main/aca-py.org/index.html index cefd6ae52d..defa8db7e7 100644 --- a/main/aca-py.org/index.html +++ b/main/aca-py.org/index.html @@ -759,6 +759,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/assets/index.html b/main/assets/index.html index 886779b336..845ab0186a 100644 --- a/main/assets/index.html +++ b/main/assets/index.html @@ -703,6 +703,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/demo/AcmeDemoWorkshop/index.html b/main/demo/AcmeDemoWorkshop/index.html index 4e6271a53f..c0293ba083 100644 --- a/main/demo/AcmeDemoWorkshop/index.html +++ b/main/demo/AcmeDemoWorkshop/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/demo/AliceGetsAPhone/index.html b/main/demo/AliceGetsAPhone/index.html index 5cc0370501..55364aeba6 100644 --- a/main/demo/AliceGetsAPhone/index.html +++ b/main/demo/AliceGetsAPhone/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/demo/AliceWantsAJsonCredential/index.html b/main/demo/AliceWantsAJsonCredential/index.html index adc2dbb36d..40b3a2c5b8 100644 --- a/main/demo/AliceWantsAJsonCredential/index.html +++ b/main/demo/AliceWantsAJsonCredential/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/demo/AriesOpenAPIDemo/index.html b/main/demo/AriesOpenAPIDemo/index.html index 3150da24f3..9f78df5c51 100644 --- a/main/demo/AriesOpenAPIDemo/index.html +++ b/main/demo/AriesOpenAPIDemo/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/demo/AriesPostmanDemo/index.html b/main/demo/AriesPostmanDemo/index.html index d2ddf767d2..b0278bd307 100644 --- a/main/demo/AriesPostmanDemo/index.html +++ b/main/demo/AriesPostmanDemo/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/demo/Endorser/index.html b/main/demo/Endorser/index.html index 9b52f5239d..1774bc7f64 100644 --- a/main/demo/Endorser/index.html +++ b/main/demo/Endorser/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/demo/ReusingAConnection/index.html b/main/demo/ReusingAConnection/index.html index 3601469326..a12391e49c 100644 --- a/main/demo/ReusingAConnection/index.html +++ b/main/demo/ReusingAConnection/index.html @@ -703,6 +703,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/demo/index.html b/main/demo/index.html index fb3fad5533..d047e8c694 100644 --- a/main/demo/index.html +++ b/main/demo/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/deploying/AnonCredsWalletType/index.html b/main/deploying/AnonCredsWalletType/index.html index 7b3b9ebaa2..4d89fa52f0 100644 --- a/main/deploying/AnonCredsWalletType/index.html +++ b/main/deploying/AnonCredsWalletType/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/deploying/ContainerImagesAndGithubActions/index.html b/main/deploying/ContainerImagesAndGithubActions/index.html index 9b995d00a8..a86e2de21b 100644 --- a/main/deploying/ContainerImagesAndGithubActions/index.html +++ b/main/deploying/ContainerImagesAndGithubActions/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/deploying/Databases/index.html b/main/deploying/Databases/index.html index 3336739a7a..ad1ac2a600 100644 --- a/main/deploying/Databases/index.html +++ b/main/deploying/Databases/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/deploying/IndySDKtoAskarMigration/index.html b/main/deploying/IndySDKtoAskarMigration/index.html index d12bfa021f..481ef787e0 100644 --- a/main/deploying/IndySDKtoAskarMigration/index.html +++ b/main/deploying/IndySDKtoAskarMigration/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/deploying/Poetry/index.html b/main/deploying/Poetry/index.html index ae20ce90eb..368ef54aaf 100644 --- a/main/deploying/Poetry/index.html +++ b/main/deploying/Poetry/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/deploying/RedisPlugins/index.html b/main/deploying/RedisPlugins/index.html index b3e8d0f102..8319b69557 100644 --- a/main/deploying/RedisPlugins/index.html +++ b/main/deploying/RedisPlugins/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/deploying/UpgradingACA-Py/index.html b/main/deploying/UpgradingACA-Py/index.html index db272403f5..98d058b21e 100644 --- a/main/deploying/UpgradingACA-Py/index.html +++ b/main/deploying/UpgradingACA-Py/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/deploying/deploymentModel/index.html b/main/deploying/deploymentModel/index.html index 93d33ba8ca..17a8c5ba6b 100644 --- a/main/deploying/deploymentModel/index.html +++ b/main/deploying/deploymentModel/index.html @@ -709,6 +709,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/design/AnoncredsW3CCompatibility/index.html b/main/design/AnoncredsW3CCompatibility/index.html index 3ff50009c4..a92630bb24 100644 --- a/main/design/AnoncredsW3CCompatibility/index.html +++ b/main/design/AnoncredsW3CCompatibility/index.html @@ -703,6 +703,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/features/AdminAPI/index.html b/main/features/AdminAPI/index.html index 0efc0869be..e087366e9b 100644 --- a/main/features/AdminAPI/index.html +++ b/main/features/AdminAPI/index.html @@ -839,6 +839,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/features/AnonCredsMethods/index.html b/main/features/AnonCredsMethods/index.html new file mode 100644 index 0000000000..01aa76dc25 --- /dev/null +++ b/main/features/AnonCredsMethods/index.html @@ -0,0 +1,2376 @@ + + + + + + + + + + + + + + + + + + + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries - Hyperledger Aries ACA-Py Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + + + +
    + + + + + + + +
    + +
    + + + + +
    +
    + + + +
    +
    +
    + + + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + + + + +

    Adding AnonCreds Methods to ACA-Py

    +

    ACA-Py was originally developed to be used with Hyperledger AnonCreds objects (Schemas, +Credential Definitions and Revocation Registries) published on Hyperledger Indy networks. However, +with the evolution of "ledger-agnostic" AnonCreds, ACA-Py supports publishing AnonCreds objects wherever +you want to put them. If you want to add a new "AnonCreds Methods" to publish AnonCreds +objects to a new Verifiable Data Registry (VDR) (perhaps to your favorite blockchain, or using a web-based DID method), +you'll find the details of how to do that here. We often using the term "ledger" for the +location where AnonCreds objects are published, but here will use "VDR", since a VDR does +not have to be a ledger.

    +

    The information in this document was discussed on an ACA-Py Maintainers call in March 2024. +You can watch the call recording by clicking here.

    +

    âš  This is an early version of this document and we assume those reading it +are quite familiar with using ACA-Py, have a good understanding of ACA-Py internals, and are +Python experts. See the Questions or Comments section below +for how to get help as you work through this.

    +

    Create a Plugin

    +

    We recommend that if you are adding a new AnonCreds method, you do so by creating an ACA-Py plugin. +See the documentation on ACA-Py plugins and use the set of plugins available in the aries-acapy-plugins +repository to help you get started. When you finish your AnonCreds method, we recommend that you publish the plugin +in the aries-acapy-plugins repository. If you think that the AnonCreds method you create should +be part of ACA-Py core, get your plugin complete and raise the question of adding it to ACA-Py. The +Maintainers will be happy to discuss the merits of the idea. No promises though.

    +

    Your AnonCreds plugin will have an initialization routine that will register your AnonCreds +implementation. It will be registering the identifiers that your method will be using such. It +will be the identifier constructs that will trigger the appropriate AnonCreds Registrar and +Resolver that will be called for any given AnonCreds object identifier. Check out this +example of the registration of the "legacy" Indy AnonCreds method for more details.

    +

    The Implementation

    +

    The basic work involved in creating an AnonCreds method is the implementation of both a "registrar" to +write AnonCreds objects to a VDR, and a "resolver" to read AnonCreds objects from a VDR. To do +that for your new AnonCreds method, you will need to:

    +
      +
    • Implement BaseAnonCredsResolver - here
    • +
    • Implement BaseAnonCredsRegistrar - here
    • +
    +

    The links above are to a specific commit and the code may have been updated since. You might want to +look at the methods in the current version of aries_cloudagent/anoncreds/base.py in the main branch.

    +

    The interface for those methods are very clean, and there are currently two implementations of the +methods in the ACA-Py codebase -- the "legacy" Indy implementation, and the did:indy Indy implementation. +There is also a did:web resolver implementation.

    +

    Models for the API are defined here

    +

    Events

    +

    When you create your AnonCreds method registrar, make sure that your implementations call appropriate +finish_* event (e.g., AnonCredsIssuer.finish_schema, AnonCredsIssuer.finish_cred_def, etc.) in +AnonCreds Issuer. The calls are necessary to trigger the automation of AnonCreds event creation that +is done by ACA-Py, particularly around the handling of Revocation Registries. As you (should) know, when +an Issuer uses ACA-Py to create a Credential Definition that supports revocation, ACA-Py automatically +creates and publishes two Revocation Registries related to the Credential Definition, publishes the tails +file for each, makes one active, and sets the other to be activated as soon as the active one runs out of +credentials. Your AnonCreds method implementation doesn't have to do much to make that happen -- ACA-Py +does it automatically -- but your implementation must call the finish_* to make trigger ACA-Py to continue +the automation. You can see in Revocation Setup the automation setup.

    +

    Questions or Comments

    +

    The ACA-Py maintainers welcome questions from those new to the community that +have the skills to implement a new AnonCreds method. Use the #aries-cloudagent-python channel +on the Hyperledger Discord Server or open an issue in this repo to get help.

    +

    Pull Requests to the ACA-Py repository to improve this content are welcome!

    + + + + + + + + + + + + + +
    +
    + + + +
    + + + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/main/features/AnoncredsProofValidation/index.html b/main/features/AnoncredsProofValidation/index.html index 58bd37ca6c..816c0b5f54 100644 --- a/main/features/AnoncredsProofValidation/index.html +++ b/main/features/AnoncredsProofValidation/index.html @@ -712,6 +712,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/features/DIDMethods/index.html b/main/features/DIDMethods/index.html index bfc7656c34..2ec748aa7f 100644 --- a/main/features/DIDMethods/index.html +++ b/main/features/DIDMethods/index.html @@ -779,6 +779,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • diff --git a/main/features/DIDResolution/index.html b/main/features/DIDResolution/index.html index c6448a5c0f..564ed703b5 100644 --- a/main/features/DIDResolution/index.html +++ b/main/features/DIDResolution/index.html @@ -12,7 +12,7 @@ - + @@ -836,6 +836,27 @@ +
  • + + + + + Publishing AnonCreds Objects To Other Ledgers/Verifiable Data Registries + + + + +
  • + + + + + + + + + +
  • @@ -2500,13 +2521,13 @@

    References +