Verifiable Credential
Please generate access token before proceeding. Once you generated the access_token
, you can pass this token as bearer authorization token in the header for all APIs.
Issue a verifiable credential
An issuer may issue a verifiable credential to a subject using this API. The credential document is signed by issuer's identity key and its status is registered on the blockchain.
Bearer <access_token>
Origin as you set in application cors
schemaId for credential Schema
holder did of the credential
issuerDid of the credential
Date in ISOString format
2027-12-10T18:30:00.000Z
Credential Data fields
{"name":"Random name"}
Namespace to be added in vcId.
testnet
Verification Method id for did updation
did:hid:testnet:........#key-${idx}
Persist in edv
true
POST /api/v1/credential/issue HTTP/1.1
Host:
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 234
{
"schemaId": "text",
"subjectDid": "text",
"issuerDid": "text",
"expirationDate": "2027-12-10T18:30:00.000Z",
"fields": {
"name": "Random name"
},
"namespace": "testnet",
"verificationMethodId": "did:hid:testnet:........#key-${idx}",
"persist": "true"
}
{
"credentialDocument": {
"@context": [
"https://www.w3.org/2018/credentials/v1",
{
"hs": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/schema/sch:hid:testnet:...........:1.0:"
},
{
"name": "hs:name"
},
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "vc:hid:testnet:......",
"type": [
"VerifiableCredential",
"nameschema"
],
"expirationDate": "2027-12-10T18:30:00Z",
"issuanceDate": "2027-12-10T18:30:00Z",
"issuer": "did:hid:testnet:..........",
"credentialSubject": {
"id": "did:hid:testnet:..............."
},
"credentialSchema": {
"id": "sch:hid:testnet:...............",
"type": "JsonSchemaValidator2018"
},
"credentialStatus": {
"id": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/credential/vc:hid:testnet:...............",
"type": "CredentialStatusList2017"
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2023-01-25T17:01:02Z",
"verificationMethod": "did:hid:testnet:...............#key-${id}",
"proofPurpose": "assertionMethod",
"proofValue": "z5LairjrBYkc5FtP.......................EXFHm37aDvcMtCvnYfmvQ"
}
},
"credentialStatus": {
"claim": {
"id": "vc:hid:testnet:................",
"currentStatus": "vc:hid:testnet:................",
"statusReason": "Credential is active"
},
"issuer": "did:hid:testnet:..............",
"issuanceDate": "2023-01-25T16:59:21Z",
"expirationDate": "2023-01-25T16:59:21Z",
"credentialHash": "ae93886f2a............3f6d1c6ae4..........393d43730"
},
"persist": true
}
Verify an issued verifiable credential document
A signed verifiable credential must has signature of the issuer. Any one may verify an issued credential document. The verification result state the following facts:
This document was issued by intended issuer
This document have not been tampered
This document have not been revoked
Bearer <access_token>
Origin as you set in application cors
credential document
POST /api/v1/credential/verify HTTP/1.1
Host:
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 1018
{
"credentialDocument": {
"@context": [
"https://www.w3.org/2018/credentials/v1",
{
"hs": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/schema/sch:hid:testnet:...........:1.0:"
},
{
"name": "hs:name"
},
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "vc:hid:testnet:......",
"type": [
"VerifiableCredential",
"nameschema"
],
"expirationDate": "2027-12-10T18:30:00Z",
"issuanceDate": "2027-12-10T18:30:00Z",
"issuer": "did:hid:testnet:..........",
"credentialSubject": {
"id": "did:hid:testnet:..............."
},
"credentialSchema": {
"id": "sch:hid:testnet:...............",
"type": "JsonSchemaValidator2018"
},
"credentialStatus": {
"id": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/credential/vc:hid:testnet:...............",
"type": "CredentialStatusList2017"
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2023-01-25T17:01:02Z",
"verificationMethod": "did:hid:testnet:...............#key-${id}",
"proofPurpose": "assertionMethod",
"proofValue": "z5LairjrBYkc5FtP.......................EXFHm37aDvcMtCvnYfmvQ"
}
}
}
{
"verified": true,
"results": [
{
"proof": {
"type": "Ed25519Signature2020",
"created": "2023-01-25T17:01:02Z",
"verificationMethod": "did:hid:testnet:...............#key-${id}",
"proofPurpose": "assertionMethod",
"proofValue": "z5LairjrBYkc5FtP.......................EXFHm37aDvcMtCvnYfmvQ",
"Context": [
"https://www.w3.org/2018/credentials/v1",
{
"hs": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/schema/sch:hid:testnet:z3KX4ZqoizKTaED645aV4aE8dBbnSpmQYe3xfzVBJadPY:1.0:"
},
{
"name": "hs:name"
},
"https://w3id.org/security/suites/ed25519-2020/v1"
]
},
"verified": true,
"verificationMethod": {
"id": "did:hid:testnet:................................#key-${id}",
"type": "Ed25519VerificationKey2020",
"controller": "did:hid:method:..............",
"publicKeyMultibase": "z28ScfSszr.............j8nCwx4DBF6nAUHu4p"
},
"purposeResult": {
"valid": true
}
}
],
"statusResult": {
"verified": true
}
}
Fetch a verifiable credential and/or its status by Id
Bearer <access_token>
Origin as you set in application cors
GET /api/v1/credential/{credentialId} HTTP/1.1
Host:
Authorization: Bearer JWT
Accept: */*
{
"credentialDocument": {
"@context": [
"https://www.w3.org/2018/credentials/v1",
{
"hs": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/schema/sch:hid:testnet:...........:1.0:"
},
{
"name": "hs:name"
},
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "vc:hid:testnet:......",
"type": [
"VerifiableCredential",
"nameschema"
],
"expirationDate": "2027-12-10T18:30:00Z",
"issuanceDate": "2027-12-10T18:30:00Z",
"issuer": "did:hid:testnet:..........",
"credentialSubject": {
"id": "did:hid:testnet:..............."
},
"credentialSchema": {
"id": "sch:hid:testnet:...............",
"type": "JsonSchemaValidator2018"
},
"credentialStatus": {
"id": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/credential/vc:hid:testnet:...............",
"type": "CredentialStatusList2017"
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2023-01-25T17:01:02Z",
"verificationMethod": "did:hid:testnet:...............#key-${id}",
"proofPurpose": "assertionMethod",
"proofValue": "z5LairjrBYkc5FtP.......................EXFHm37aDvcMtCvnYfmvQ"
}
},
"credentialStatus": {
"claim": {
"id": "vc:hid:testnet:................",
"currentStatus": "vc:hid:testnet:................",
"statusReason": "Credential is active"
},
"issuer": "did:hid:testnet:..............",
"issuanceDate": "2023-01-25T16:59:21Z",
"expirationDate": "2023-01-25T16:59:21Z",
"credentialHash": "ae93886f2a............3f6d1c6ae4..........393d43730",
"proof": {
"type": "Ed25519Signature2020",
"created": "2023-01-25T17:01:02Z",
"verificationMethod": "did:hid:testnet:...............#key-${id}",
"proofPurpose": "assertionMethod",
"proofValue": "z5LairjrBYkc5FtP.......................EXFHm37aDvcMtCvnYfmvQ",
"updated": "2023-01-25T17:01:02Z"
}
},
"persist": true,
"retrieveCredential": true
}
Fetch list of verifiable credentials
Page value
1
Fetch limited list of data
10
Bearer <access_token>
Origin as you set in application cors
GET /api/v1/credential HTTP/1.1
Host:
Authorization: Bearer JWT
Accept: */*
[
{
"totalCount": 12,
"data": [
"vc:hid:testnet:............"
]
}
]
Update credential status of a verifiable credential
Bearer <access_token>
Origin as you set in application cors
Namespace to be added in vcId.
testnet
Credential status
LIVE / SUSPEND / REVOKE
Credential status Reason
Reason
issuerDid of the credential
Verification Method id for did updation
did:hid:testnet:........#key-${idx}
PATCH /api/v1/credential/status/{credentialId} HTTP/1.1
Host:
Authorization: Bearer JWT
Content-Type: application/json
Accept: */*
Content-Length: 162
{
"namespace": "testnet",
"status": "LIVE / SUSPEND / REVOKE",
"statusReason": "Reason",
"issuerDid": "text",
"verificationMethodId": "did:hid:testnet:........#key-${idx}"
}
{
"credentialDocument": {
"@context": [
"https://www.w3.org/2018/credentials/v1",
{
"hs": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/schema/sch:hid:testnet:...........:1.0:"
},
{
"name": "hs:name"
},
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "vc:hid:testnet:......",
"type": [
"VerifiableCredential",
"nameschema"
],
"expirationDate": "2027-12-10T18:30:00Z",
"issuanceDate": "2027-12-10T18:30:00Z",
"issuer": "did:hid:testnet:..........",
"credentialSubject": {
"id": "did:hid:testnet:..............."
},
"credentialSchema": {
"id": "sch:hid:testnet:...............",
"type": "JsonSchemaValidator2018"
},
"credentialStatus": {
"id": "https://api.jagrat.hypersign.id/hypersign-protocol/hidnode/ssi/credential/vc:hid:testnet:...............",
"type": "CredentialStatusList2017"
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2023-01-25T17:01:02Z",
"verificationMethod": "did:hid:testnet:...............#key-${id}",
"proofPurpose": "assertionMethod",
"proofValue": "z5LairjrBYkc5FtP.......................EXFHm37aDvcMtCvnYfmvQ"
}
},
"credentialStatus": {
"claim": {
"id": "vc:hid:testnet:................",
"currentStatus": "vc:hid:testnet:................",
"statusReason": "Credential is active"
},
"issuer": "did:hid:testnet:..............",
"issuanceDate": "2023-01-25T16:59:21Z",
"expirationDate": "2023-01-25T16:59:21Z",
"credentialHash": "ae93886f2a............3f6d1c6ae4..........393d43730",
"proof": {
"type": "Ed25519Signature2020",
"created": "2023-01-25T17:01:02Z",
"verificationMethod": "did:hid:testnet:...............#key-${id}",
"proofPurpose": "assertionMethod",
"proofValue": "z5LairjrBYkc5FtP.......................EXFHm37aDvcMtCvnYfmvQ",
"updated": "2023-01-25T17:01:02Z"
}
},
"persist": true,
"retrieveCredential": true
}
Last updated