Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding trust in transactions using credentials #468

Open
wants to merge 15 commits into
base: Verifiable-Credentials
Choose a base branch
from

Conversation

rajaneeshk90
Copy link
Collaborator

@rajaneeshk90 rajaneeshk90 commented Oct 23, 2024

Description

The Beckn-One is a decentralized infrastructure designed to transform how network participants build trust and transact in a secure, scalable, and transparent environment. The goal is to embed trust into the flow of transactions.

As part of the effort, it is essential to have a Credential object in the transaction flow. This Credential object must support various types of credentials and it needs to be included in various components used in transaction, like Agent, Customer, Organisation, Payment, Provider, Subscriber, Fulfillment, Item, Order etc.

Summary of the changes

A new schema has been introduced to represent Verifiable Credentials. This allows the protocol server to handle Verifiable Credentials more effectively.

The existing Credential schema has been updated to support multiple credential types. A new field was added to accommodate credentials in the form of documents, such as PDFs or images, allowing entities to provide proofs in these formats. Another field was added specifically for Verifiable Credentials, enabling entities to provide proofs in this secure format.

The updated Credential schema has been embedded in the Organization, Payment, Provider, Subscriber, Fulfillment, Item, and Order objects. This integration builds trust into the transaction process, allowing sellers and buyers to include credentials directly in API calls (e.g., on_search, select).

The above change allows the network participants to embed trust in the transaction flow, i.e existing API endpoints.

Two new endpoints, cred/ and on_cred/, are added. These endpoints can be used when sellers or buyers do not send the required credentials in transactional API calls (such as on_search or select). In these cases, the seller or buyer can explicitly request the necessary credentials using these endpoints.

Changes

  1. Addition: Created schema/VC.yaml to represent a verifiable credential object.
  2. Update: Changed schema/Credential.yaml to support Verifiable Credentials
  3. Addition: Created schema/CredentialRequest.yaml schema to represent a credential request object for the cred/ api.
  4. Addition: created cred/ endpoint to be used to request a credential from an entity
  5. Addition: created on_cred/ endpoint to be used as callback to provide the requested credentials.
  6. Addition: Added a boolean verified field in the context schema

Migration Impact

The changes are fully backward compatible. All modifications involved either the creation of new schemas or the addition of new fields to existing schemas.

@rajaneeshk90 rajaneeshk90 changed the title Adding support for verifiable credentials in specification Adding trust in transactions using credentials Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant