Signatory REST API functions.
The Signatory API exposes the "issuance" endpoint, which provides flexible integration possibilities for anyone intending to act as an "Issuer" (i.e. create, sign and issue Verifiable Credentials), as follows:
Credentials - issue credentials
Templates - create and mange credential templates
- revocation related functions
If you're new to VCs, check out the for an overview.
The /v1/credentials/issue endpoint issues a specified credential.
E.g. Issue a UniversityDegree credential in the default JSON-LD format. In case you don't have the DID for the Issuer and or the Holder, you can create one .
Check out the section to learn about how to issue a verifiable credential with a credentialStatus property.
The currently available template functions are:
- display the list of Templates
- import a custom template
- display the content of the template having the specified id
The /v1/templates endpoint returns the list of the available template ids
No parameter
E.g. List the templates
The /v1/templates/{id} endpoint to import your custom credential template
id path parameter (required) - id of the template, e.g. MyCustomCredential
The /v1/templates/{id} endpoint displays the content of the template having the parameters:
id path parameter (required) - id of the template
No parameter
E.g. Load the template for the id set to UniversityDegree.
Refer to section for more details on verifiable credential revocations.
curl -X 'POST' \
'https://signatory.ssikit.walt.id/v1/credentials/issue' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'{
"templateId": "string",
"config":
{
"issuerDid": "string",
"subjectDid": "string",
"verifierDid": "string",
"issuerVerificationMethod": "string",
"proofType": "JWT",
"domain": "string",
"nonce": "string",
"proofPurpose": "string",
"credentialId": "string",
"issueDate": "2022-10-06T18:09:14.570Z",
"validDate": "2022-10-06T18:09:14.570Z",
"expirationDate": "2022-10-06T18:09:14.570Z",
"dataProviderIdentifier": "string",
"ldSignatureType": "string",
"creator": "string",
"ecosystem": "string",
"statusType": "string"
},
"credentialData":
{
"additionalProp1":
{},
"additionalProp2":
{},
"additionalProp3":
{}
}
}curl -X 'POST' \
'https://signatory.ssikit.walt.id/v1/credentials/issue' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"templateId": "UniversityDegree",
"config":
{
"issuerDid": "did:web:walt.id",
"subjectDid": "did:web:my.domain"
},
"credentialData":
{
"credentialSubject":
{
"degree":
{
"name": "Bachelor of Science and Arts",
"type": "BachelorDegree"
}
}
}
}'The issued credential displayed either in JSON-LD or JWT format{
"templateId": "UniversityDegree",
"config":
{
"issuerDid": "did:web:walt.id",
"subjectDid": "did:web:my.domain"
},
"credentialData":
{
"credentialSubject":
{
"degree":
{
"name": "Bachelor of Science and Arts",
"type": "BachelorDegree"
}
}
}
}{
"@context":
[
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"credentialSubject":
{
"degree":
{
"name": "Bachelor of Science and Arts",
"type": "BachelorDegree"
},
"id": "did:web:my.domain"
},
"id": "urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270",
"issued": "2022-10-07T09:53:41.369913097Z",
"issuer":
{
"id": "did:web:walt.id"
},
"validFrom": "2022-10-07T09:53:41.369917079Z",
"issuanceDate": "2022-10-07T09:53:41.369917079Z",
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
],
"proof":
{
"type": "Ed25519Signature2018",
"creator": "did:web:walt.id",
"created": "2022-10-07T09:53:41Z",
"domain": "https://api.preprod.ebsi.eu",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..7EYkgjNRJ_hh0F5kONnPfrC4PLvg1g82czeANllDngsbk36a8lnHSlwersSqY0tdER4xIe7vbNVzi39C2DZTDQ"
}
}curl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates' \
-H 'accept: application/json'[
"string"
]curl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates' \
-H 'accept: application/json'[
"DataSelfDescription",
"VerifiableDiploma",
"VerifiableVaccinationCertificate",
"LegalPerson",
"VerifiableAuthorization",
"Europass",
"KybMonoCredential",
"KycCredential",
"VerifiableMandate",
"VerifiablePresentation",
"EuropeanBankIdentity",
"KybCredential",
"VerifiableAttestation",
"OpenBadgeCredential",
"PeerReview",
"DataConsortium",
"ProofOfResidence",
"AmletCredential",
"ParticipantCredential",
"PermanentResidentCard",
"UniversityDegree",
"VerifiableId",
"DataServiceOffering",
"GaiaxCredential",
"Iso27001Certificate"
]curl -X 'POST' \
'https://signatory.ssikit.walt.id/v1/templates/{id}' \
-H 'accept: application/json'
-H 'Content-Type: application/json' \
-d '<request-body>'{
"type": [
"VerifiableCredential",
"MyCustomCredential"
],
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"id": "string",
"issuer": {
"id": "string"
},
"issued": "2020-03-10T04:24:12.164Z",
... // custom data in json
}
{
"type": [
"VerifiableCredential",
"MyCustomCredential"
],
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"id": "http://example.gov/credentials/3732",
"issuer": {
"id": "did:example:456"
},
"issued": "2020-03-10T04:24:12.164Z",
"credentialSubject": {
"id": "did:example:123",
"firstName": "",
"lastName": "",
"country": "Austria"
}
}
nullcurl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates/{id}' \
-H 'accept: application/json'The template content as JSONcurl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates/UniversityDegree' \
-H 'accept: application/json'{
"@context":
[
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"credentialSubject":
{
"degree":
{
"name": "Bachelor of Science and Arts",
"type": "BachelorDegree"
},
"id": "did:example:123"
},
"id": "http://example.gov/credentials/3732",
"issued": "2020-03-10T04:24:12.164Z",
"issuer":
{
"id": "did:example:456"
},
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
]
}