--- tags: Design --- # Integrate Commercial Registry Entry in Public Profile ## Motivation The Commercial Registry Entry serves the following functions: - Should demonstrate an authoritative binding of a DID to an organization - Should fix the gap, that currently ACA-PY does not allow connections based on public DIDs - Should demonstrate the transfer of verified (or authoritative) master data ## Resolutions from Sprint Planning In the last sprint planning, we defined the following approach: - Commercial Registry Entry Credential can be made public - We don't allow to add a Commercial Registry Entry *Document* - Requesting Commerical Registry Entry Credentials happen outside the Business Partner, e.g. using [Open Corporates Proxy Issuer](https://oc-proxy.dev.economyofthings.io/#/requestIdentity) ## User Experience Assuming Alice has a Commercial Registry Entry added to her public profile. We distinguish between two scenerios: ### 1. Alice adds Bob as a business partner - In Bob's Business Partner Agent a new Business Partner with name Alice appears ![](https://i.imgur.com/0URS8LS.png) Bob has no additional info Alice, because the connection is based on a new pairwise DID. - Bob requests a Commercial Registry Entry from Alice - Bob receives the presentation, gets the public DID from the presentation and requests the public profile. - The Partner View now displays the public profile including the Commercial Registry entry and displays the Commercial Registry Entry in the Received Presentations ### 2. Bob adds Alice as a business partner - The Partner View (Bob looking at partner Alice) displays the public profile including the Commercial Registry Entry as a self-signed verifiable presentation, but we have not yet received a _real_ verifiable presentation based on the original verifiable credential. - We would need to request this preesentation manually. ## Wireframe ![](https://i.imgur.com/6tAPQ3h.png) ## Implementation Details / Backend Requirements ### Adding to public profile requires JSON-LD context We could either define a custom mapping and context similar to the bank account or generate a canonical context which could be used for indy schemas in general. This is described [here](https://hackmd.io/cME-B1fMTUqkR5BDREaSOQ#Transformation-from-IndyDocumentsIndyVerifiedDocuments-to-JsonLdDocuments) Specifying an explicit context would require an additional explicit type. ### Should we specify an explicity type? One reason for a specific type is the custom logic to use the DID in the credential as the DID for the partner and we can't hardcode a schemaID, since it should work on different ledgers. ## Unresolved Issues - Data in the Public Profile might be contradictory, because data in the OrgProfile and the Commercial Registry Entry might differ - Do we need to specify an additional explicit type? - We should allow to set the mapping between a schema and a type in the configuration/schema settings.