{"id":19270142,"url":"https://github.com/hyperledger-labs/business-partner-agent","last_synced_at":"2025-04-21T20:33:30.663Z","repository":{"id":37095755,"uuid":"281995601","full_name":"hyperledger-labs/business-partner-agent","owner":"hyperledger-labs","description":"The Business Partner Agent is a SSI wallet and controller based on aries cloud agent python.","archived":true,"fork":false,"pushed_at":"2023-07-19T06:25:29.000Z","size":16895,"stargazers_count":58,"open_issues_count":48,"forks_count":51,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-03-12T20:48:39.457Z","etag":null,"topics":["b2b","ssi","supply-chain","verifiable-credentials"],"latest_commit_sha":null,"homepage":"https://labs.hyperledger.org/business-partner-agent/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperledger-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-07-23T15:57:44.000Z","updated_at":"2025-01-16T06:19:38.000Z","dependencies_parsed_at":"2023-02-17T18:00:26.702Z","dependency_job_id":"8de4a74e-9fbe-411e-82b5-7fb2d43eea0d","html_url":"https://github.com/hyperledger-labs/business-partner-agent","commit_stats":null,"previous_names":[],"tags_count":68,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperledger-labs%2Fbusiness-partner-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperledger-labs%2Fbusiness-partner-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperledger-labs%2Fbusiness-partner-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperledger-labs%2Fbusiness-partner-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperledger-labs","download_url":"https://codeload.github.com/hyperledger-labs/business-partner-agent/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250128474,"owners_count":21379519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["b2b","ssi","supply-chain","verifiable-credentials"],"created_at":"2024-11-09T20:23:29.255Z","updated_at":"2025-04-21T20:33:30.188Z","avatar_url":"https://github.com/hyperledger-labs.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Business Partner Agent [![join the chat][discord-image]][discord-url]\n\n[discord-url]: https://discord.gg/hyperledger\n[discord-image]: https://img.shields.io/badge/DISCORD-JOIN%20CHAT-green\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![CI/CD](https://github.com/hyperledger-labs/business-partner-agent/workflows/CI/CD/badge.svg)](https://github.com/hyperledger-labs/business-partner-agent/actions?query=workflow%3ACI%2FCD+branch%3Amain)\n\n# _Looking for Maintainer_\n\nThe current maintainers stop active contribution to the further development of the Hyperledger Labs project Business Partner Agent, as well as the related project Business Partner Agent Helm Chart.\nTo give existing users of the Business Partner Agent enough lead time, we are willing to continue maintaining the project for now. For more information see the Hyperledger Discord channel.\n\n**We are looking for a new maintainer, if you are interested please contact us via [Hyperledger Discord][discord-url] in the business-partner-agent channel.**\n\n# Short Description\nThe BPA allows organizations to verify, hold, and issue verifiable credentials.\n\nThe Business Partner Agent is built on top of the Hyperledger Self-Sovereign Identity Stack, in particular \n[Hyperledger Indy](https://www.hyperledger.org/use/hyperledger-indy) and \n[Hyperledger Cloud Agent Python](https://github.com/hyperledger/aries-cloudagent-python).\n\n![](https://i.imgur.com/kz4s0gQ.png)\n\n## Most Important Features\n\n- Attach a public organizational profile to your public DID (either did:indy/sov or did:web)\n- Add business partners by their public DIDs or via invitations and view their public profiles\n- Business partners can be other cloud agents or smartphone wallets\n- Basic chat functionality to interact with business partners\n- Add documents based on Indy schemas and request verifications from business partners\n- Issue verifiable credentials (indy/w3c) to your business partners\n- Create templates for presentation requests supporting zero knowledge proofs (selective disclosure and predicate proofs) \n- Send and respond to presentation requests (indy/w3c)\n\n## Features in Detail\n\n| Role/Feature     | Flow                                                                                                         | Protocol Version                  |\n|------------------|--------------------------------------------------------------------------------------------------------------|-----------------------------------|\n| Issuer           |                                                                                                              |                                   |\n|                  | auto: issue credential                                                                                       | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | manual: send credential offer to holder                                                                      | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | manual: receive credential proposal from holder                                                              | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | manual: decline credential proposal from holder and provide reason                                           | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | send credential offer as invitation attachment                                                               | indy: v1, v2                      |\n|                  | revoke issued credential (requires tails server)                                                             | indy: v1, v2 \u003cbr/\u003ew3c: n/a        |\n|                  | send revocation notification                                                                                 | indy: v1, v2 \u003cbr/\u003ew3c: n/a        |\n| Holder           |                                                                                                              |                                   |\n|                  | auto: receive credential                                                                                     | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | manual: send credential proposal to issuer (based on document)                                               | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | manual: receive credential offer from issuer                                                                 | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | manual: decline credential offer from issuer                                                                 | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | scheduled revocation check on all received credentials                                                       | indy: v1, v2 \u003cbr/\u003ew3c: n/a        |\n|                  | receive revocation notification                                                                              | indy: v1, v2 \u003cbr/\u003ew3c: n/a        |\n| Prover           |                                                                                                              |                                   |\n|                  | auto: send presentation to verifier                                                                          | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | auto: answer presentation request                                                                            | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | manual: accept/decline presentation request and provide reason                                               | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n| Verifier         |                                                                                                              |                                   |\n|                  | auto: request presentation from prover based on proof template                                               | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | auto: receive and verify presentation from prover                                                            | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n|                  | send presentation request as invitation attachment (backend only)                                            | indy: v1, v2 \u003cbr/\u003ew3c: v2         |\n| Proof-Template   |                                                                                                              |                                   |\n|                  | prepared presentation request templates for indy and w3c presentation exchanges                              |                                   |\n|                  | query by: schema attributes. restrict by: attribute value, predicates (\u003c, \u003e, \u003c=, \u003e=), schema, and issuer did | indy                              |\n|                  | query by: schema attributes. restrict by: attribute value, schema, and issuer did                            | w3c                               |\n| Connection       |                                                                                                              |                                   |\n|                  | connect by did:sov, did:web (if endpoint is aca-py)                                                          | did-exchange                      |\n|                  | receive invitation by URL                                                                                    | connection-protocol, OOB          |\n|                  | create invitation (barcode or URL)                                                                           | connection-protocol, OOB          |\n|                  | auto: accept incoming connection                                                                             | did-exchange, connection-protocol |\n|                  | manual: accept incoming connection                                                                           | did-exchange, connection-protocol |\n|                  | optional: scheduled trust ping to check connection status                                                    | n/a                               |\n|                  | tag a connection, e.g. as trusted issuer                                                                     | n/a                               |\n| Ledger           |                                                                                                              |                                   |\n|                  | send schema to the ledger (requires endorser role)                                                           | n/a                               |\n|                  | create a credential definition on the ledger (requires endorser role)                                        | n/a                               |\n| Basic Message    |                                                                                                              |                                   |\n|                  | send and receive basic messages via chat window                                                              | n/a                               |\n| Tasks/Activities |                                                                                                              |                                   |\n|                  | list of tasks that need attention, and list of past activities                                               | n/a                               |\n| TAA              |                                                                                                              |                                   |\n|                  | if ledger is configured with a TAA, show it and give option to accept                                        | n/a                               |\n| Read Only Ledger |                                                                                                              |                                   |\n|                  | if mode is set to web only                                                                                   | n/a                               |\n| Public Profile   |                                                                                                              |                                   |\n|                  | web accessible (self signed) imprint based on (indy/w3c) credentials or documents                            | n/a                               |\n\n## Upcoming Features\n\n- Business rules to automate processes\n- Endorser support (both as endorser and transaction author)\n- Multi-user and roles support\n\n## Project Status\n\nA first alpha version of Business Partner Agent is available, see\n[Helm Chart](https://github.com/hyperledger-labs/business-partner-agent-chart) and [Docker images](https://github.com/orgs/hyperledger-labs/packages/container/package/business-partner-agent)\nIt is not ready for production use.  Releases are in general considered \"alpha\", which means API may change at any time, and we do not have explicit / planned system tests (See also [Publishing](PUBLISHING.md)). \n\n# Getting Started\n\nThe Business Partner Agent supports two modes\n1. Web mode: Serves a did:web identity and allows to publish a public organizational profile.\n2. Indy mode: Utilizes an identity on an Hyperledger Indy ledger (default: http://test.bcovrin.vonx.io/)\n\nBoth modes are currently coupled with a specific instance of an Indy network in order to read schemas and credential definitions.\nThe agent is started in Indy mode per default and tries to connect with our test network. Please refer to the [.env-example file](scripts/.env-example) to start the agent in web mode or connect to a different Indy network.\n\n## Run a business partner agent with docker-compose or helm\n\nYou can run the agent [via docker-compose](scripts/) (recommended for e.g. development / debugging) or deploy it into a [kubernetes cluster (via helm)](https://github.com/hyperledger-labs/business-partner-agent-chart).\n\n# Documentation and Tutorials\n\nUser documentation is located at https://hyperledger-labs.github.io/business-partner-agent\n\nLearn how to contribute in [Contributing](CONTRIBUTING.md). You can also start by filing an issue.\n\nRegarding release process, we do not follow a strict process yet, nevertheless we follow the guidelines described in [Publishing](PUBLISHING.md).\n\nLearn what aries protocols can be controlled by the BPA in [aca-py-args](scripts/acapy-static-args.yml)\n\n## Business Partner Agent in Action\n- [COP26 Presented by BC Goverment and OpenEarth Foundation](https://www.youtube.com/watch?v=q0Jml3isSh8)\n- [Use Case and Technical Demonstration Playlist](https://www.youtube.com/watch?v=TGiiNOoVoJs\u0026list=PL9CV_8JBQHiooHv05idOTrR2eBAJM89LX)\n\n# Hyperledger Labs Sponsor\n- https://github.com/swcurran Co-Chair of the Aries Working Group\n\n# Credits\n\nSee [Credits](./CREDITS.md)\n\n# License\n\nProject source code files are made available under the Apache License, Version 2.0 (Apache-2.0), located in the [LICENSE](LICENSE) file. Project documentation files are made available under the Creative Commons Attribution 4.0 International License (CC-BY-4.0), available at http://creativecommons.org/licenses/by/4.0/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperledger-labs%2Fbusiness-partner-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperledger-labs%2Fbusiness-partner-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperledger-labs%2Fbusiness-partner-agent/lists"}