Credentialing System

A credentialing system on-chain enables you to store and manage your credentials, such as qualifications, certifications, or achievements, on a blockchain. This allows you to securely store your credentials on a decentralized and transparent platform, ensuring the authenticity and integrity of the information.

Within HUMAN Protocol, the credentialing system enables Job Requesters to configure the criteria they need Workers to meet in order to qualify to take up a Job. For Workers, obtaining credentials increases the number and range of jobs they can participate in and increase their potential for earnings.

Benefits

Credentialing brings many benefits to an ecosystem like HUMAN.

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

  • Transparency: The decentralized nature of blockchain enables interested parties to easily validate credentials. This transparency is useful in various fields where accurate and trustworthy credential validation is essential.

  • Higher Job Results Quality: Eligible Workers can be tailored to a Job’s requirements.

  • Increased earning potential for Workers.

Definitions

  • Credential: A digital representation that attests to an individual's qualifications, certifications, or achievements.

  • Credential Certificate: A digital document linking an individual to a specific credential and certifying that the holder has been verified to have the credential specified in the certificate.

  • Credential Validator: A party that verifies that a person has a credential and is eligible to receive a credential certificate.

Actors

  • HUMAN App Users: Users who seek to add qualifications to gain access to more opportunities and higher-paying jobs.

  • Job Requesters: Users who aim to specify a set of qualifications or credentials that Workers must possess to effectively complete a particular job, ensuring higher quality results.

  • Credential Validators: Users who validate that Workers possess the credentials.

Credentials

In the context of credentialing systems, 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 like proficiency in a language, a specific technology, or any other relevant skill set.

  • KYC (Know Your Customer): Documents validating the identity of the user like 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 HUMAN App, you can access a list of available credentials they can get.

Click a specific credential. You are redirected to the credentials validation provider's platform for more details.

Training Completion Notification

Once you complete training, the credentials validation provider notifies the Reputation Oracle about the achievement.

Adding Certificates on Chain

You 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}"

Copy

// 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

You can log in to HUMAN App, where your credentials are seamlessly included in a JSON Web Token (JWT). This way you can use your credentials to access jobs with specific requirements.

Implementation details

Reputation Oracle

Create a new credential

POST /credential

To be called by Credential Validators. It adds a credential type to the list of credentials.

Headers

Name

Value

Content-Type

application/json

Authorization*

Bearer <token>

Body

Name

Type

Description

reference*

string

Unique reference of the credential. It has to be unique for the requesting entity.

description*

string

Description of the credential.

url*

string

Url where you should go to validate their credentials.

starts_at*

datetime

Date from which the credential becomes accessible for validation

expires_at

datetime

Date from which the credential becomes inaccessible for validation

Response

201400

Copy

{

"credential_id": 1

}

Get credentials

GET /credential

Gets the list of credentials.

Headers

Name

Value

Content-Type

application/json

Authorization*

Bearer <token>

Query

Name

Type

Description

status

string?

Status of the credential for Credential Validators:

ACTIVE: validation can be requested

EXPIRED: validation cannot be requested anymore

Status of the credential for Workers:

ACTIVE: available to be validated

EXPIRED: cannot be validated anymore

VALIDATED: validated but credential not added on chain yet

ON_CHAIN: validated and added on chain

reference

string?

Unique reference of the credential.

Response for Credential Validators

If the requester is a Credential Validator user, this endpoint returns the credentials created by the requester.

200

Copy

// [
{
"id": 1,
"reference": "bbe5b21336ce",
   "description": "Training description 1",
   "url": "https://credentials-validator.com?credential_id=1"
   "status": "ACTIVE", //ACTIVE, EXPIRED
 },
 {
   "id": 2,
   "reference": "02740c04432f",
   "description": "Training description 2",
   "url": "https://credentials-validator.com?credential_id=2"
   "status": "EXPIRED", //ACTIVE, EXPIRED
 },
]

Response for Workers

If the requester is a Worker user, this endpoint returns the credentials based on the filters:

  • NULL: all statuses

  • ACTIVE: available to be validated

  • EXPIRED: cannot be validated anymore

  • VALIDATED: validated but credential not added on chain yet

  • ON_CHAIN: validated and added on chain

200400

Copy

[
 {
   "id": 1,
   "reference": "bbe5b21336ce",
   "description": "Training description 1",
   "url": "https://credentials-validator.com?credential_id=1"
   "status": "ACTIVE", //ACTIVE, EXPIRED, VALIDATED, ONCHAIN
   "certificate": NULL
 },
 
 {
 "id": 2,
 
 "reference": "02740c04432f",
 
 "description": "Training description 2",
 
 "url": NULL
 
 "status": "EXPIRED", //ACTIVE, EXPIRED, VALIDATED, ONCHAI
 
  "certificate": NULL
 },
  
 {
 
   "id": 3,
   
   "reference": "5099af673708",
   
   "description": "Training description 3",


   "url": NULL


   "status": "VALIDATED", //ACTIVE, EXPIRED, VALIDATED, ONCHAIN


   "certificate": "0x18bf4035a9f7ce45bb4d7d7fdf11febf082448bfb9abb995de669fe1ad7564d568309fa98f466a49343668c3489c5b32c2ccb44de812fa3bbc8a492b788987621c"


 },


 {


   "id": 4,


   "reference": "515a39145ecb",


   "description": "Training description 4",


   "url": NULL


   "status": "ON_CHAIN", //ACTIVE, EXPIRED, VALIDATED, ON_CHAIN


   "certificate": "0x18bf4035a9f7ce45bb4d7d7fdf11febf082448bfb9abb995de669fe1ad7564d568309fa98f466a49343668c3489c5b32c2ccb44de812fa3bbc8a492b788987621c"


 }


]

Add a validated credential to a user

POST /credential/validate

Invoked by the Credential Validators upon the successful validation for a specific user.

Headers

Name

Value

Content-Type

application/json

Authorization*

Bearer <token>

Body

Name

Type

Description

reference*

string

Unique reference of the credential

worker_address*

string

Address of the user that completed the training

Response

201400

Copy

Created

Certificate added on chain

POST /credential/on-chain

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

Headers

Name

Value

Content-Type

application/json

Authorization*

Bearer <token>

Body

Name

Type

Description

credential_id*

int

Id of the credential

Response

200

Copy

OK

Last updated

Logo

© 2023 HPF. HUMAN Protocol® is a registered trademark