Credentialing System

Introduction

A credentialing system on-chain refers to a system where credentials, such as qualifications, certifications, or achievements, are stored and managed on a blockchain. This allows individuals to securely store their credentials on a decentralized and transparent platform, ensuring the authenticity and integrity of the information.

Benefits

  1. Increased Security: the data stored on the blockchain is resistant to tampering or unauthorized alterations, ensuring the highest level of security for individual credentials.

  2. Enhanced Transparency: the decentralized nature of blockchain technology enables interested parties to easily verify credentials. This transparency is crucial in various fields where accurate and trustworthy credential verification is essential.

Credentials

In the context of this credentialing system, a credential refers to a digital representation that attests to an individual's qualifications, certifications, or achievements. These credentials are securely stored and managed on a blockchain, providing a tamper-resistant and transparent record. The system supports various types of credentials, including:

  • Training Certification: certificates issued upon the completion of specific training programs. These credentials verify that the individual has successfully finished a training course.

  • Skills Verification: documents confirming an individual's skills and expertise in a particular area. This could include proficiency in a language, a specific technology, or any other relevant skill set.

  • KYC (Know Your Customer): documents validating the identity of the user. This could include government-issued identification, address verification, or any other information necessary for identity verification.

Each credential is authenticated and signed by the Reputation Oracle, ensuring its authenticity and allowing interested parties to easily verify the information on the blockchain.

Workflow

Credentials Information on Human App:

On the Human App users can access a list of available credentials they can get.

By clicking on a specific credential, they are redirected to the credentials verification provider's platform for more details.

Training Completion Notification:

Once a user completes a training, the credentials verification provider notifies the Reputation Oracle about the achievement.

Adding Certificates on Chain:

From this point forward, users on the Human App can add a certificate issued by the Reputation Oracle to the blockchain using the KVStore. This is how the certificate should look:

"{CREDENTIAL-REFERENCE}-{REPORACLE-ADDRESS}" : "{SIGNED-MESSAGE}"

// Message to sign for {SIGNED-MESSAGE}
{
    "reference": "bbe5b21336ce", //unique reference of the credential
    "worker_address": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
}

Certificate Authentication:

The certificate is signed by the Reputation Oracle, ensuring its authenticity. This signature allows interested parties to verify the legitimacy of the credential.

How to Use Credentials:

Users can log in to the Human App, where their credentials are seamlessly included in a JSON Web Token (JWT). This way users can use their credentials to access jobs with specific requirements.

Implementation details

Reputation Oracle

Create a new credential verification

POST /credential

Creates a new available credential verification.

Headers

NameValue

Content-Type

application/json

Authorization*

Bearer <token>

Body

NameTypeDescription

reference*

string

Unique reference of the credential

description*

string

Description of the credential

starts_at*

datetime

Date from which the credential becomes accessible for verification

expires_at

datetime

Date from which the credential becomes inaccessible for verification

Response

{
    "credential_id": 1
}

Get credential verifications

GET /credential

Get the list of credential verifications.

Headers

NameValue

Content-Type

application/json

Authorization*

Bearer <token>

Query

NameTypeDescription

status

string?

Status of the credential ACTIVE: available to be verified EXPIRED: cannot be verified anymore VERIFIED: verified but credential not added on chain yet ONCHAIN: verified and added on chain

reference

string?

Unique reference of the credential

Response

Response

[
  {
    "id": 1,
    "reference": "bbe5b21336ce",
    "description": "Training description 1",
    "url": "https://credentials-verifier.com?credential_id=1"
    "status": "ACTIVE", //ACTIVE, EXPIRED, VERIFIED, ONCHAIN
    "certificate": NULL
  },
  {
    "id": 2,
    "reference": "02740c04432f",
    "description": "Training description 2",
    "url": NULL
    "status": "EXPIRED", //ACTIVE, EXPIRED, VERIFIED, ONCHAIN
    "certificate": NULL
  },
  {
    "id": 3,
    "reference": "5099af673708",
    "description": "Training description 3",
    "url": NULL
    "status": "VERIFIED", //ACTIVE, EXPIRED, VERIFIED, ONCHAIN
    "certificate": "0x18bf4035a9f7ce45bb4d7d7fdf11febf082448bfb9abb995de669fe1ad7564d568309fa98f466a49343668c3489c5b32c2ccb44de812fa3bbc8a492b788987621c"
  },
  {
    "id": 4,
    "reference": "515a39145ecb",
    "description": "Training description 4",
    "url": NULL
    "status": "ONCHAIN", //ACTIVE, EXPIRED, VERIFIED, ONCHAIN
    "certificate": NULL
  }
]

Add a verified credential to a user

POST /credential/verified

Invoked by the credential verification provider upon the successful verification for a specific user.

Headers

NameValue

Content-Type

application/json

Authorization*

Bearer <token>

Body

NameTypeDescription

reference*

string

Unique reference of the credential

worker_address*

string

Address of the user that completed the training

Response

Created

Certificate added on chain

POST /credential/on-chain

Notifies to the Reputation Oracle that a certificate has been added on chain.

Headers

NameValue

Content-Type

application/json

Authorization*

Bearer <token>

Body

NameTypeDescription

credential_id*

int

Id of the credential

Response

OK

Last updated

Logo

© 2023 HPF. HUMAN Protocol® is a registered trademark