Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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
Revocations - revocation related functions
If you're new to VCs, check out the intro section for an overview.
The /v1/credentials/issue
endpoint issues a specified credential.
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":
{}
}
}
The issued credential displayed either in JSON-LD or JWT format
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 here.
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"
}
}
}
}'
{
"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"
}
}
Check out the Issue with status section to learn about how to issue a verifiable credential with a credentialStatus property.
The currently available template functions are:
list - display the list of Templates
import - import a custom template
load - display the content of the template having the specified id
The /v1/templates
endpoint returns the list of the available template id
s
curl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates' \
-H 'accept: application/json'
No parameter
[
"string"
]
E.g. List the templates
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"
]
The /v1/templates/{id}
endpoint to import your custom credential template
id path parameter (required) - id
of the template, e.g. MyCustomCredential
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"
}
}
null
The /v1/templates/{id}
endpoint displays the content of the template having the parameters:
id path parameter (required) - id
of the template
curl -X 'GET' \
'https://signatory.ssikit.walt.id/v1/templates/{id}' \
-H 'accept: application/json'
No parameter
The template content as JSON
E.g. Load the template for the id
set to UniversityDegree.
curl -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"
]
}
Refer to Credential Statuses section for more details on verifiable credential revocations.
Custodian REST API functions.
The Custodian API provides management functions for maintaining secrets and sensitive data (e.g. keys, Verifiable Credentials) in a secure way:
DID management functions enable the following:
List - lists the available DIDs
Load - loads a DID by the specified id
Delete - deletes a DID by the specified url
Create - creates a new DID
Resolve - resolves a DID to a document
Import - import a DID
For more info on DIDs, go here.
The /did
endpoint lists the available DIDs.
curl -X 'GET' \
'https://custodian.ssikit.walt.id/did' \
-H 'accept: application/json'
No parameters
The list of DID strings
E.g. List the available DIDs
curl -X 'GET' \
'https://custodian.ssikit.walt.id/did' \
-H 'accept: application/json'
[
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"did:web:my.domain",
"did:web:walt.id",
"did:key:z6Mkv58vGsBMwbiyQ3P93MRnYfRgGvn4STEEsj5hFHYe51wu"
]
The /did/{id}
endpoint loads a DID specified by:
id path parameter (required) - the DID url string
curl -X 'GET' \
'https://custodian.ssikit.walt.id/{id}' \
-H 'accept: application/json'
No parameters
{
"assertionMethod":
[
"string"
],
"authentication":
[
"string"
],
"@context":
[
"string"
],
"id": "string",
"verificationMethod":
[
{
"controller": "string",
"id": "string",
"publicKeyJwk":
{
"alg": "string",
"crv": "string",
"kid": "string",
"kty": "string",
"use": "string",
"x": "string"
},
"type": "string"
}
]
}
E.g Load the DID having the id = did:web:walt.id.
curl -X 'GET' \
'https://custodian.ssikit.walt.id/did/did%3Aweb%3Awalt.id' \
-H 'accept: application/json'
{
"assertionMethod":
[
"did:web:walt.id#186a1e0a6d42459ba902724fe7643ed4"
],
"authentication":
[
"did:web:walt.id#186a1e0a6d42459ba902724fe7643ed4"
],
"@context":
[
"https://www.w3.org/ns/did/v1"
],
"id": "did:web:walt.id",
"verificationMethod":
[
{
"controller": "did:web:walt.id",
"id": "did:web:walt.id#186a1e0a6d42459ba902724fe7643ed4",
"publicKeyJwk":
{
"alg": "EdDSA",
"crv": "Ed25519",
"kid": "186a1e0a6d42459ba902724fe7643ed4",
"kty": "OKP",
"use": "sig",
"x": "7-ofBq4vt0ePzC5IjiWkqTedfSv7WJJr6-HsQNXsr2M"
},
"type": "Ed25519VerificationKey2019"
}
]
}
The /did/{id}
deletes the DID specified by:
url - path parameter (required) - the DID url string
curl -X 'DELETE' \
'https://custodian.ssikit.walt.id/did/{id}' \
-H 'accept: application/json'
No parameters
Code 200
E.g. Delete the DID having id = did:web:walt.id.
curl -X 'DELETE' \
'https://custodian.ssikit.walt.id/did/did%3Aweb%3Awalt.id' \
-H 'accept: application/json'
The /did/create
endpoint creates a DID.
curl -X 'POST' \
'https://custodian.ssikit.walt.id/did/create' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"method": "string",
"keyAlias": "string",
"method-dependent-options": "..."
}
The DID url string
The method
and keyAlias
properties are common for all did-method requests, method
being required, while keyAlias
- optional (if not specified, a new key will be automatically created using the default algorithm according to the did-method). The method-dependent options have default values, if not specified otherwise. Below are the available properties by did-method.
{
"method": "key",
"keyAlias": "string",
"useJwkJcsPub": "boolean"
}
useJwkJcsPub
(default) - false - specifies whether to create a did:key using the jwk_jcs-pub multicodec (code: 0xeb51)
{
"method": "web",
"keyAlias": "string",
"didWebDomain": "string",
"didWebPath": "string"
}
didWebDomain
(default) - "walt.id"
didWebPath
(default) - empty-string
{
"method": "ebsi",
"keyAlias": "string",
"version": "int"
}
version
(default) - 1
{
"method": "cheqd",
"keyAlias": "string",
"network": "string"
}
network
(default) - "testnet"
{
"method": "iota",
"keyAlias": "string"
}
{
"method": "jwk",
"keyAlias": "string"
}
E.g. Create a DID using the web
method having the domain set to walt.id
.
curl -X 'POST' \
'https://custodian.ssikit.walt.id/did/create' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"method": "web",
"didWebDomain": "walt.id"
}'
{
"method": "web",
"didWebDomain": "walt.id"
}
did:web:walt.id
The /did/resolve
endpoint resolves a DID.
curl -X 'POST' \
'https://custodian.ssikit.walt.id/did/resolve' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"did": "string"
}
{
"assertionMethod":
[
"string"
],
"authentication":
[
"string"
],
"@context":
[
"string"
],
"id": "string",
"verificationMethod":
[
{
"controller": "string",
"id": "string",
"publicKeyJwk":
{
"alg": "string",
"crv": "string",
"kid": "string",
"kty": "string",
"use": "string",
"x": "string"
},
"type": "string"
}
]
}
E.g. Reslove the DID having id = did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX
.
curl -X 'POST' \
'https://custodian.ssikit.walt.id/did/resolve' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"did": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
}'
{
"did": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
}
{
"assertionMethod":
[
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
],
"authentication":
[
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
],
"capabilityDelegation":
[
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
],
"capabilityInvocation":
[
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
],
"@context":
[
"https://www.w3.org/ns/did/v1"
],
"id": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"keyAgreement":
[
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6LShXhgLqK3vQX3eg18gwZUYNtt6M6FjPqpV1eQD86m8Hwh"
],
"verificationMethod":
[
{
"controller": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"id": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"publicKeyBase58": "6tW7uQ6c3YgZDoCFbHMB6QFjPENyHRouTUwGnLv36wS9",
"type": "Ed25519VerificationKey2019"
},
{
"controller": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"id": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6LShXhgLqK3vQX3eg18gwZUYNtt6M6FjPqpV1eQD86m8Hwh",
"publicKeyBase58": "6rXWpXWBpwoJZHdNAJ3XDngQFCZ92nffc2viifTEQvAw",
"type": "X25519KeyAgreementKey2019"
}
]
}
The /did/import
endpoint resolves and imports the DID to the underlying data store.
curl -X 'POST' \
'https://custodian.ssikit.walt.id/did/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '<request-body>'
The DID url string.
Code 201
E.g. Import DID having id = did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z
.
curl -X 'POST' \
'https://custodian.ssikit.walt.id/did/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d 'did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z'
did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z
Core REST API functions.
The Core API exposes wallet core functionality in the scope of storing and managing:
The Core API exposes most of the functionalities provided by the SSI Kit, however newer features will only be released in the other API endpoints. Therefore, it is recommended to use the Signatory API, Custodian API and Auditor API for most use cases.
The following DID management functions are available:
list - list DIDs
load - load DID
delete by url - delete by DID url
create - create DID
resolve - resolve DID
import - import DID
The /v1/did
endpoint lists the available DIDs.
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/did' \
-H 'accept: application/json'
No parameters
[
"string"
]
E.g. List the available DIDs.
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/did' \
-H 'accept: application/json'
[
"did:ebsi:zwdPobJGue3w86Gpqhq5Cni",
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"did:web:my.domain",
"did:web:walt.id",
"did:ebsi:zYubw2L8tCZSKKpAcMmCY2Q"
]
The /v1/did/{id}
endpoint loads a DID specified by:
id - path parameter (required) - the DID url string
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/did/{id}' \
-H 'accept: application/json'
No parameters
The DID document
E.g. Load the DID = did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z
.
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/did/did%3Akey%3Az6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z' \
-H 'accept: application/json'
{
"assertionMethod":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z"
],
"authentication":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z"
],
"capabilityDelegation":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z"
],
"capabilityInvocation":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z"
],
"@context":
[
"https://www.w3.org/ns/did/v1"
],
"id": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"keyAgreement":
[
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6LSrs5FudTTsAUhHUoS1kzkhskwAWaYjyU13CVgZT7fwDWk"
],
"verificationMethod":
[
{
"controller": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"id": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"publicKeyBase58": "7g7ZKyYMckYQyVVZmBaRMR1j2Fj9m5biSwV7iz3HxeGc",
"type": "Ed25519VerificationKey2019"
},
{
"controller": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"id": "did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6LSrs5FudTTsAUhHUoS1kzkhskwAWaYjyU13CVgZT7fwDWk",
"publicKeyBase58": "GBu6PKebmhkxC6RfV7UoPHYTKN3S3NHrADn14zU9Dqjz",
"type": "X25519KeyAgreementKey2019"
}
]
}
The /v1/did/{id}
endpoint deletes the DID by:
id - path parameter (required) - the DID url string
curl -X 'DELETE' \
'https://core.ssikit.walt.id/v1/did/{id}' \
-H 'accept: application/json'
No parameters
Code 200
E.g. Delete the DID = did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z
.
curl -X 'DELETE' \
'https://core.ssikit.walt.id/v1/did/did%3Akey%3Az6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z' \
-H 'accept: application/json'
The /v1/did/create
creates a DID.
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/create' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"method": "string",
"keyAlias": "string",
"method-dependent-options": "..."
}
The DID url string
The method
and keyAlias
properties are common for all did-method requests, method
being required, while keyAlias
- optional (if not specified, a new key will be automatically created using the default algorithm according to the did-method). The method-dependent options have default values, if not specified otherwise. Below are the available properties by did-method.
{
"method": "key",
"keyAlias": "string",
"useJwkJcsPub": "boolean"
}
useJwkJcsPub
(default) - false - specifies whether to create a did:key using the jwk_jcs-pub multicodec (code: 0xeb51)
{
"method": "web",
"keyAlias": "string",
"didWebDomain": "string",
"didWebPath": "string"
}
didWebDomain
(default) - "walt.id"
didWebPath
(default) - empty-string
{
"method": "ebsi",
"keyAlias": "string",
"version": "int"
}
version
(default) - 1
{
"method": "cheqd",
"keyAlias": "string",
"network": "string"
}
network
(default) - "testnet"
{
"method": "iota",
"keyAlias": "string"
}
{
"method": "jwk",
"keyAlias": "string"
}
E.g. Create a DID using the key method and automatically generate a new key.
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/create' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"method": "key"
}'
{
"method": "key"
}
did:key:z6MkqJfAPYYDiDeNERPMufpS1gxgzqiG5fvQnqbYTwY5xJDE
The /v1/did/resolve
resolves a DID url string to a DID document.
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/resolve' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"did": "string"
}
The DID document
E.g. Resolve the DID = did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa
.
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/resolve' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"did": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
}'
{
"did": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
}
{
"assertionMethod":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
],
"authentication":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
],
"capabilityDelegation":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
],
"capabilityInvocation":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa"
],
"@context":
[
"https://www.w3.org/ns/did/v1"
],
"id": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"keyAgreement":
[
"did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6LSkSwxKk6TFYcqcRHv7ALR87CTFK6bSkQsxwqczx1YgYik"
],
"verificationMethod":
[
{
"controller": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"id": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"publicKeyBase58": "CKK9rn4QHwPsXpjzSKGepGytPxcZZqpdGDmZAja4HchC",
"type": "Ed25519VerificationKey2019"
},
{
"controller": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"id": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa#z6LSkSwxKk6TFYcqcRHv7ALR87CTFK6bSkQsxwqczx1YgYik",
"publicKeyBase58": "9mmnoSHbA5u6X2v9aWpToWyyQAZUk9Ej5y7wWVN1yAwz",
"type": "X25519KeyAgreementKey2019"
}
]
}
The /v1/did/import
endpoint resolves and imports the specified DID url to the underlying data store.
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '<request-body>'
The DID url string
Code 201
E.g. Import the DID = did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa
.
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/did/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d 'did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa'
did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa
Manage keys, DIDs, issue Verifiable Credentials, and verify them using the SSI-Kit's REST API.
Make sure you have Docker or a JDK 16 build environment including Gradle installed on your machine
Pull the docker container directly from docker hub and run the project
docker run -p 7000-7004:7000-7004 -itv $(pwd)/data:/app/data waltid/ssikit serve -b 0.0.0.0
This will create a folder called data in your current directory as storage for the VC, DIDs, Keys and other things which need to be stored in order to provide all the functionality.
Clone the project
git clone https://github.com/walt-id/waltid-ssikit.git
2. Change the folder
cd waltid-ssikit/
3. Run the project
The first time you run the command you will be asked to built the project. You can confirm the prompt.
./ssikit.sh serve
If you want to get a more detailed overview of the options provided for building the project on your machine, please refer to building the project.
After successfully running the project, you will have the endpoints, described below, available for use.
Exposed endpoints:
Type | Locally | General Available |
---|---|---|
The Core API exposes most of the functionalities provided by the SSI Kit, however newer features will only be released in the other API endpoints. Therefore, it is recommended to use the Signatory API, Custodian API and Auditor API for most use cases.
Issuance - Learn how to issue credentials
Holders - Learn how to maintain secrets and sensitive data (e.g. keys, Verifiable Credentials)
Verifiers - Learn how to verify credentials
My First VC - Play through a whole use case from Issuance to Verification
The following key management functions are available:
- list of key ids
- load the public key in JWK format
- delete key
- generate key
- import key
- export key
The /v1/key
endpoint lists the available key ids.
E.g. List the available key ids.
The /v1/key/{id}
endpoint loads the public component of the provided key id in JWK format:
id - path parameter (required) - the key id
E.g. Load the key having id = e548f032cadf4145ab6886a57c2e87e6.
The /v1/key/{id}
endpoint deletes the specified key.
E.g. Delete the key having id = e548f032cadf4145ab6886a57c2e87e6.
The /v1/key/gen
generates a new key using the specified algorithm.
E.g. Generate a new key using the EdDSA_Ed25519 algorithm.
The /v1/key/import
endpoint imports a key (JWK or PEM format) to the underlying keystore.
E.g. Import a public key specified in JWK format.
The /v1/key/export
endpoint exports public and private key part (if supported by underlying keystore).
E.g. Export the public key with id = bc6fa6b0593648238c4616800bed7746 as JWK.
To expose the API service using the CLI tool or the docker container, use one of the following commands:
Show all options for specifying bind address and ports:
On localhost only using the default ports 7000-7003
Binding on all network interfaces, using the default ports 7000-7003
Binding on a specific network interface (e.g.: 192.168.0.1)
Using docker one needs to bind to 0.0.0.0 in the container and limit the binding from outside using the docker run -p syntax like so:
Use custom ports by using the -p (Core API), -e (ESSIF API), -s (Signatory API) command options
The following functions are available for credentials management:
- lists the available credentials
- lists credential ids
- loads a credential by id
- store a credential
- delete a credential by id
- create a verifiable presentation from specific credentials
- create a verifiable presentation from specific stored credential ids
The /credentials
endpoint lists the available credentials:
id - query parameter (optional) - the list of credentials ids
E.g. List the the credentials having ids urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270 and urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84271
The /credentials/list/credentialIds
lists the available credentials ids.
E.g. List the available credentials ids.
The /credentials/{id}
loads a credential specified by:
id - path parameter (required) - the credential id
E.g. Load the credential having id = urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270.
The /credentials/{alias}
endpoint stores a verifiable credential by:
alias - path parameter (required) - the credential's id
The body should contain, the VC to be store. If no adjustments are required to VC, then the body can be the VC itself (e.g. the one received from the create VC endpoint).
E.g. Store the UniversityDegree
verifiable credential.
The /credentials/{alias}
deletes a credential by:
alias - path parameter (required) - the credential's id
E.g. Delete the credential with id = urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270
The /credentials/present
endpoint creates a verifiable presentation from the specified credentials.
E.g. Create a verifiable presentation from the provided VeriafiableID and OpenBadgeCredential credentials for a holder with did = did:web:my.domain.
The /credentials/presentIds
endpoint creates a verifiable presentation from the specified credential ids.
E.g. Create a verifiable presentation from the stored credential having id = urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270 for the holder with did = did:web:my.domain.
Key management functions include:
- lists the available keys
- loads a key specified by its alias
- generate a key using the specified algorithm
- imports a key
- deletes a specific key
- exports public and private key parts (if supported by the underlying keystore)
The /keys
endpoint lists the key available to the Custodian
E.g. List the available keys
The /keys/{alias}
endpoint loads a key specified by its alias.
E.g. Load a key with id
e548f032cadf4145ab6886a57c2e87e6
The /keys/generate
endpoint generates a key using the specified algorithm.
E.g. Generate a key using the EdDSA_Ed25519 algorithm.
The /keys/import
endpoint imports a key (JWK or PEM format) to the underlying keystore.
The key string in JWK or PEM format
E.g. Import a public key specified in JWK format.
The /keys/{id}
deletes the specified as parameter:
id path parameter (required) - the key alias
E.g. Delete the key with id
bc6fa6b0593648238c4616800bed7746
The /keys/export
endpoint exports a key.
E.g. Export the public key with id = e548f032cadf4145ab6886a57c2e87e6 as JWK.
The following credentials management functions are available:
- list verifiable credentials
- load the verifiable credential
- delete the verifiable credential
- create a verifiable credential
- create a verifiable presentation from the supplied credentials
- verify credential / presentation
- import the verifiable credential
The /v1/vc
endpoint lists the available credentials.
E.g. List the available credentials.
The /v1/vc/{id}
endpoint loads a credential specified by:
id - path parameter (required) - the credential id
E.g. Load the credential having id = urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270.
The /v1/vc/{id}
deletes a credential by:
id - path parameter (required) - the credential's id
E.g. Delete the credential with id = urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270
.
The /v1/vc/create
endpoint creates a credential.
E.g. Create a credential from the UniveristyDegree template, having issuer = did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa
and holder = did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX
.
The /v1/vc/present
endpoint creates a verifiable presentation from the supplied credential. Only JSON-LD format is supported.
E.g. Create a verifiable presentation from the provided VeriafiableID credential for a holder with did = did:web:my.domain
.
The /v1/vc/verify
endpoint verifies the supplied credential or presentation against the signature policy.
E.g. Verify a presentation.
The /v1/vc/import
endpoint imports a verifiable credential.
E.g. Import the UniversityDegree credential.
Auditor REST API functions.
|
The Auditor API enables anybody to act as a "Verifier" (i.e. verify Verifiable Credentials or Verifiable Presentations). The validation steps can be easily configured by existing or custom policies.
The following functionality is available:
- credential / presentation verification
- policy related functions
The /v1/verify
endpoint verifies a list of credentials / presentations specified in the JSON-LD
format against a set of policies. Each of the policy should be registered with the Auditor before being used in the verification. If at least one of the listed policies fails the verification, then the entire credential is considered to be invalid.
E.g Verification of a UniversityDegree credential against Signature and JsonSchema policies, where SignaturePolicy is failing.
The Auditor Rest API also enables policy management with the following methods:
The /v1/policies
endpoint lists the available verification policies. The policy id
field is used to reference the policy during verification.
E.g. Listing of the verification policies
The /v1/create/{name}
creates a dynamic policy. The following parameters can be specified:
name
path parameter (required) - specifies the value to be used as the policy id
update
query parameter (optional, defualts to false
) - accepts boolean
values and specifies whether it should override an existing policy with the same name
(only if the policy is mutable)
downloadPolicy
query parameter (optional, defaults to false
) - accepts boolean
values and identifies the scope of the policy
field:
specifies a remote source that should be resolved to a policy
specifies the actual policy content
E.g. Creating a Rego policy that checks if a credential subject id is not null or empty
Code 200
The /v1/delete/{name}
endpoint deletes a dynamic policy. The following parameters can be specified:
name
path parameter (required) - specifies the id
value of the policy
Policy removed / Policy not found
E.g. Removing the policy having 'MyPolicy' name
Policy removed / Policy not found
- display the available verification policies
- create a dynamic verification policy
- remove a dynamic verification policy
More details on creating verification policies and fields definitions can be found at .
Signatory API - For Issuers
http://127.0.0.1:7001
Custodian API - For Holders
http://127.0.0.1:7002
Auditor API - For Verifiers
http://127.0.0.1:7003
Core API
http://127.0.0.1:7000
ESSIF API
http://127.0.0.1:7004
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/key' \
-H 'accept: application/json'
No parameters
The list of key ids
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/key' \
-H 'accept: application/json'
[
"e548f032cadf4145ab6886a57c2e87e6",
"e70e8fd8932043caa7c857c3b944d0e0",
"b50db0c1f73242b8bb0f2f6324e15ec3",
"did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"8cc0b1707ea345ed83e479469d42aac2",
"c5b11445be0e4d37863170df3328630b",
"8394ea7883bc4328a3f18b146b7e16bd",
"fd36a0159592413da1d89f192dd77dcd",
"did:key:z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z#z6Mkm8NbvDnnxJ2t5zLGSkYGCWZiqq11Axr58xQ3ZG1Jss3z",
"fa9296808e64440d89e6d245a1709141",
"8dd54d6ae25a4818b1497530a8659dc1"
]
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/key/{id}' \
-H 'accept: application/json'
No parameters
The string for the public component of the key
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/key/e548f032cadf4145ab6886a57c2e87e6' \
-H 'accept: application/json'
"{\"kty\":\"OKP\",\"use\":\"sig\",\"crv\":\"Ed25519\",\"kid\":\"e548f032cadf4145ab6886a57c2e87e6\",\"x\":\"jT8YleOQnaABpZTnvId3WoID4Pia9Lex9OndqQ22Xxs\",\"alg\":\"EdDSA\"}"
curl -X 'DELETE' \
'https://core.ssikit.walt.id/v1/key/' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '<request-body>'
The key id string
Code 200
curl -X 'DELETE' \
'https://core.ssikit.walt.id/v1/key/' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d 'e548f032cadf4145ab6886a57c2e87e6'
e548f032cadf4145ab6886a57c2e87e6
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/key/gen' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"keyAlgorithm": "EdDSA_Ed25519"
}
{
"id": "string"
}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/key/gen' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"keyAlgorithm": "EdDSA_Ed25519"
}'
{
"keyAlgorithm": "EdDSA_Ed25519"
}
{
"id": "2251db0d15eb4e96b80c471edbaed185"
}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/key/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '<request-body>'
The key string in JWK or PEM format
{
"id": "string"
}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/key/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '{"kty":"OKP","use":"sig","crv":"Ed25519","kid":"bc6fa6b0593648238c4616800bed7746","x":"YyswAyRO2Aur8Jmzc8aOvI3AWFka3ZynJwB84a0FJVU","alg":"EdDSA"}'
{
"kty": "OKP",
"use": "sig",
"crv": "Ed25519",
"kid": "bc6fa6b0593648238c4616800bed7746",
"x": "YyswAyRO2Aur8Jmzc8aOvI3AWFka3ZynJwB84a0FJVU",
"alg": "EdDSA"
}
{
"id": "bc6fa6b0593648238c4616800bed7746"
}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/key/export' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"keyAlias": "string",
"format": "JWK",
"exportPrivate": true
}
The key in the specified format, JWK or PEM
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/key/export' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"keyAlias": "bc6fa6b0593648238c4616800bed7746",
"format": "JWK",
"exportPrivate": false
}'
{
"keyAlias": "bc6fa6b0593648238c4616800bed7746",
"format": "JWK",
"exportPrivate": false
}
{
"kty": "OKP",
"use": "sig",
"crv": "Ed25519",
"kid": "bc6fa6b0593648238c4616800bed7746",
"x": "YyswAyRO2Aur8Jmzc8aOvI3AWFka3ZynJwB84a0FJVU",
"alg": "EdDSA"
}
./ssikit.sh serve --help
docker run -itv $(pwd)/data:/app/data -p 192.168.0.1:7000-7003:7000-7003 ssikit serve --help
./ssikit.sh serve
./ssikit.sh serve -b 0.0.0.0
docker run -itv $(pwd)/data:/app/data -p 7000-7003:7000-7003 ssikit serve -b 0.0.0.0
./ssikit.sh serve -b 192.168.0.1
docker run -itv $(pwd)/data:/app/data -p 192.168.0.1:7000-7003:7000-7003 ssikit serve -b 0.0.0.0
./ssikit.sh serve -p 8000 -e 8001 -s 8002
docker run -itv $(pwd)/data:/app/data -p 8000-8002:8000-8002 ssikit serve -b 0.0.0.0 -p 8000 -e 8001 -s 8002
curl -X 'GET' \
'https://custodian.ssikit.walt.id/credentials' \
-H 'accept: application/json'
No parameters
The list of credentials
curl -X 'GET' \
'https://custodian.ssikit.walt.id/credentials?id=urn%3Auuid%3Ad36986f1-3cc0-4156-b5a4-6d3deab84270&id=urn%3Auuid%3Ad36986f1-3cc0-4156-b5a4-6d3deab84271' \
-H 'accept: application/json'
{
"list":
[
{
"@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"
},
"proof":
{
"created": "2022-10-07T09:53:41Z",
"creator": "did:web:walt.id",
"domain": "https://api.preprod.ebsi.eu",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..7EYkgjNRJ_hh0F5kONnPfrC4PLvg1g82czeANllDngsbk36a8lnHSlwersSqY0tdER4xIe7vbNVzi39C2DZTDQ",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"type": "Ed25519Signature2018"
},
"validFrom": "2022-10-07T09:53:41.369917079Z",
"issuanceDate": "2022-10-07T09:53:41.369917079Z",
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
]
}
]
}
curl -X 'GET' \
'https://custodian.ssikit.walt.id/credentials/list/credentialIds' \
-H 'accept: application/json'
No parameters
The list of credentials ids
curl -X 'GET' \
'https://custodian.ssikit.walt.id/credentials/list/credentialIds' \
-H 'accept: application/json'
{
"list":
[
"urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270"
]
}
curl -X 'GET' \
'https://custodian.ssikit.walt.id/credentials/{id}' \
-H 'accept: application/json'
No parameters
The credential string
curl -X 'GET' \
'https://custodian.ssikit.walt.id/credentials/urn%3Auuid%3Ad36986f1-3cc0-4156-b5a4-6d3deab84270' \
-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:web:my.domain"
},
"id": "urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270",
"issued": "2022-10-07T09:53:41.369913097Z",
"issuer":
{
"id": "did:web:walt.id"
},
"proof":
{
"created": "2022-10-07T09:53:41Z",
"creator": "did:web:walt.id",
"domain": "https://api.preprod.ebsi.eu",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..7EYkgjNRJ_hh0F5kONnPfrC4PLvg1g82czeANllDngsbk36a8lnHSlwersSqY0tdER4xIe7vbNVzi39C2DZTDQ",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"type": "Ed25519Signature2018"
},
"validFrom": "2022-10-07T09:53:41.369917079Z",
"issuanceDate": "2022-10-07T09:53:41.369917079Z",
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
]
}
curl -X 'PUT' \
'https://custodian.ssikit.walt.id/credentials/urn%3Auuid%3Ad36986f1-3cc0-4156-b5a4-6d3deab84270' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"json": "string",
"issuanceDate": "string",
"dateFormat":
{
"locale":
{
"language": "string",
"script": "string",
"variant": "string",
"displayName": "string",
"country": "string",
"unicodeLocaleAttributes":
[
"string"
],
"unicodeLocaleKeys":
[
"string"
],
"displayLanguage": "string",
"displayScript": "string",
"displayCountry": "string",
"displayVariant": "string",
"extensionKeys":
[
"string"
],
"iso3Language": "string",
"iso3Country": "string"
},
"decimalStyle":
{
"zeroDigit": "string",
"positiveSign": "string",
"negativeSign": "string",
"decimalSeparator": "string"
},
"resolverStyle": "STRICT",
"resolverFields":
[
{
"baseUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"rangeUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"dateBased": true,
"timeBased": true
}
],
"zone":
{
"id": "string",
"rules":
{
"fixedOffset": true,
"transitions":
[
{
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"gap": true,
"dateTimeBefore": "2022-10-09T09:09:41.896Z",
"dateTimeAfter": "2022-10-09T09:09:41.896Z",
"overlap": true,
"instant": "2022-10-09T09:09:41.896Z"
}
],
"transitionRules":
[
{
"month": "JANUARY",
"timeDefinition": "UTC",
"standardOffset":
{
"totalSeconds": 0,
"id": "string"
},
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"dayOfWeek": "MONDAY",
"dayOfMonthIndicator": 0,
"localTime":
{
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"midnightEndOfDay": true
}
]
}
},
"chronology":
{
"id": "string",
"calendarType": "string"
}
},
"jwt": "string",
"id": "string",
"type":
[
"string"
],
"subject": "string",
"expirationDate": "string",
"credentialSchema":
{
"id": "string",
"type": "string"
},
"proof":
{
"type": "string",
"creator": "string",
"created": "string",
"domain": "string",
"proofPurpose": "string",
"verificationMethod": "string",
"jws": "string",
"nonce": "string"
},
"challenge": "string",
"validFrom": "string",
"issued": "string",
"issuer": "string"
}
Code 201
curl -X 'PUT' \
'https://custodian.ssikit.walt.id/credentials/urn%3Auuid%3Ad36986f1-3cc0-4156-b5a4-6d3deab84270' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"@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"
}
}'
{
"@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 'DELETE' \
'https://custodian.ssikit.walt.id/credentials/{alias}' \
-H 'accept: application/json'
No parameters
Code 200
curl -X 'DELETE' \
'https://custodian.ssikit.walt.id/credentials/urn%3Auuid%3Ad36986f1-3cc0-4156-b5a4-6d3deab84270' \
-H 'accept: application/json'
curl -X 'POST' \
'https://custodian.ssikit.walt.id/credentials/present' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"vcs":
[
"string"
],
"holderDid": "string",
"verifierDid": "string",
"domain": "string",
"challenge": "string"
}
{
"context":
[
"string"
],
"id": "string",
"holder": "string",
"verifiableCredential":
[
{
"json": "string",
"issuanceDate": "string",
"dateFormat":
{
"locale":
{
"language": "string",
"script": "string",
"variant": "string",
"displayName": "string",
"country": "string",
"unicodeLocaleAttributes":
[
"string"
],
"unicodeLocaleKeys":
[
"string"
],
"displayLanguage": "string",
"displayScript": "string",
"displayCountry": "string",
"displayVariant": "string",
"extensionKeys":
[
"string"
],
"iso3Language": "string",
"iso3Country": "string"
},
"decimalStyle":
{
"zeroDigit": "string",
"positiveSign": "string",
"negativeSign": "string",
"decimalSeparator": "string"
},
"resolverStyle": "STRICT",
"resolverFields":
[
{
"baseUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"rangeUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"dateBased": true,
"timeBased": true
}
],
"zone":
{
"id": "string",
"rules":
{
"fixedOffset": true,
"transitions":
[
{
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"gap": true,
"dateTimeBefore": "2022-10-09T11:30:48.206Z",
"dateTimeAfter": "2022-10-09T11:30:48.206Z",
"overlap": true,
"instant": "2022-10-09T11:30:48.206Z"
}
],
"transitionRules":
[
{
"month": "JANUARY",
"timeDefinition": "UTC",
"standardOffset":
{
"totalSeconds": 0,
"id": "string"
},
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"dayOfWeek": "MONDAY",
"dayOfMonthIndicator": 0,
"localTime":
{
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"midnightEndOfDay": true
}
]
}
},
"chronology":
{
"id": "string",
"calendarType": "string"
}
},
"jwt": "string",
"id": "string",
"type":
[
"string"
],
"subject": "string",
"expirationDate": "string",
"credentialSchema":
{
"id": "string",
"type": "string"
},
"proof":
{
"type": "string",
"creator": "string",
"created": "string",
"domain": "string",
"proofPurpose": "string",
"verificationMethod": "string",
"jws": "string",
"nonce": "string"
},
"challenge": "string",
"validFrom": "string",
"issued": "string",
"issuer": "string"
}
],
"proof":
{
"type": "string",
"creator": "string",
"created": "string",
"domain": "string",
"proofPurpose": "string",
"verificationMethod": "string",
"jws": "string",
"nonce": "string"
},
"issued": "string",
"validFrom": "string",
"expirationDate": "string",
"json": "string",
"issuanceDate": "string",
"dateFormat":
{
"locale":
{
"language": "string",
"script": "string",
"variant": "string",
"displayName": "string",
"country": "string",
"unicodeLocaleAttributes":
[
"string"
],
"unicodeLocaleKeys":
[
"string"
],
"displayLanguage": "string",
"displayScript": "string",
"displayCountry": "string",
"displayVariant": "string",
"extensionKeys":
[
"string"
],
"iso3Language": "string",
"iso3Country": "string"
},
"decimalStyle":
{
"zeroDigit": "string",
"positiveSign": "string",
"negativeSign": "string",
"decimalSeparator": "string"
},
"resolverStyle": "STRICT",
"resolverFields":
[
{
"baseUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"rangeUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"dateBased": true,
"timeBased": true
}
],
"zone":
{
"id": "string",
"rules":
{
"fixedOffset": true,
"transitions":
[
{
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"gap": true,
"dateTimeBefore": "2022-10-09T11:30:48.207Z",
"dateTimeAfter": "2022-10-09T11:30:48.207Z",
"overlap": true,
"instant": "2022-10-09T11:30:48.207Z"
}
],
"transitionRules":
[
{
"month": "JANUARY",
"timeDefinition": "UTC",
"standardOffset":
{
"totalSeconds": 0,
"id": "string"
},
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"dayOfWeek": "MONDAY",
"dayOfMonthIndicator": 0,
"localTime":
{
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"midnightEndOfDay": true
}
]
}
},
"chronology":
{
"id": "string",
"calendarType": "string"
}
},
"jwt": "string",
"type":
[
"string"
],
"subject": "string",
"credentialSchema":
{
"id": "string",
"type": "string"
},
"issuer": "string",
"challenge": "string"
}
curl -X 'POST' \
'https://custodian.ssikit.walt.id/credentials/present' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"vcs": [
"{\r\n \"@context\":\r\n [\r\n \"https:\/\/www.w3.org\/2018\/credentials\/v1\"\r\n ],\r\n \"credentialSchema\":\r\n {\r\n \"id\": \"https:\/\/api.preprod.ebsi.eu\/trusted-schemas-registry\/v1\/schemas\/0xb77f8516a965631b4f197ad54c65a9e2f9936ebfb76bae4906d33744dbcc60ba\",\r\n \"type\": \"FullJsonSchemaValidator2021\"\r\n },\r\n \"credentialSubject\":\r\n {\r\n \"currentAddress\":\r\n [\r\n \"1 Boulevard de la Libert\u00E9, 59800 Lille\"\r\n ],\r\n \"dateOfBirth\": \"1993-04-08\",\r\n \"familyName\": \"DOE\",\r\n \"firstName\": \"Jane\",\r\n \"gender\": \"FEMALE\",\r\n \"id\": \"did:web:my.domain\",\r\n \"nameAndFamilyNameAtBirth\": \"Jane DOE\",\r\n \"personalIdentifier\": \"0904008084H\",\r\n \"placeOfBirth\": \"LILLE, FRANCE\"\r\n },\r\n \"evidence\":\r\n [\r\n {\r\n \"documentPresence\":\r\n [\r\n \"Physical\"\r\n ],\r\n \"evidenceDocument\":\r\n [\r\n \"Passport\"\r\n ],\r\n \"subjectPresence\": \"Physical\",\r\n \"type\":\r\n [\r\n \"DocumentVerification\"\r\n ],\r\n \"verifier\": \"did:ebsi:2A9BZ9SUe6BatacSpvs1V5CdjHvLpQ7bEsi2Jb6LdHKnQxaN\"\r\n }\r\n ],\r\n \"id\": \"urn:uuid:4d88d22e-214b-4aa3-a4e9-906da9daf36a\",\r\n \"issued\": \"2022-10-09T10:11:51Z\",\r\n \"issuer\": \"did:web:walt.id\",\r\n \"validFrom\": \"2022-10-09T10:11:51Z\",\r\n \"issuanceDate\": \"2022-10-09T10:11:51Z\",\r\n \"type\":\r\n [\r\n \"VerifiableCredential\",\r\n \"VerifiableAttestation\",\r\n \"VerifiableId\"\r\n ],\r\n \"proof\":\r\n {\r\n \"type\": \"JsonWebSignature2020\",\r\n \"creator\": \"did:web:walt.id\",\r\n \"created\": \"2022-10-09T10:11:52Z\",\r\n \"proofPurpose\": \"assertionMethod\",\r\n \"verificationMethod\": \"did:web:walt.id#c1672b42f846471eb2c22fd601169566\",\r\n \"jws\": \"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..H4mLlx3Ot3rWV_EzthoiAjZs6J4UkJywuGENmSsqNHEnMGlwFHRKSNGWHwWnz2a7R38ktyo8r0_3sc2IkxGvCA\"\r\n }\r\n}",
"{\r\n \"@context\" : [ \"https:\/\/www.w3.org\/2018\/credentials\/v1\", \"https:\/\/w3c-ccg.github.io\/vc-ed\/plugfest-1-2022\/jff-vc-edu-plugfest-1-context.json\" ],\r\n \"credentialSubject\" : {\r\n \"achievement\" : {\r\n \"criteria\" : {\r\n \"narrative\" : \"The first cohort of the JFF Plugfest 1 in May\/June of 2021 collaborated to push interoperability of VCs in education forward.\",\r\n \"type\" : \"Criteria\"\r\n },\r\n \"description\" : \"This wallet can display this Open Badge 3.0\",\r\n \"image\" : \"https:\/\/w3c-ccg.github.io\/vc-ed\/plugfest-1-2022\/images\/plugfest-1-badge-image.png\",\r\n \"name\" : \"Our Wallet Passed JFF Plugfest #1 2022\",\r\n \"type\" : \"Achievement\"\r\n },\r\n \"id\" : \"did:web:my.domain\",\r\n \"type\" : \"AchievementSubject\"\r\n },\r\n \"id\" : \"urn:uuid:1745f6ff-3e12-4678-b714-e779e989ae25\",\r\n \"issuanceDate\" : \"2020-03-10T04:24:12.164Z\",\r\n \"issued\" : \"2022-10-09T10:12:50Z\",\r\n \"issuer\" : {\r\n \"id\" : \"did:web:walt.id\",\r\n \"image\" : \"https:\/\/kayaelle.github.io\/vc-ed\/plugfest-1-2022\/images\/JFF_LogoLockup.png\",\r\n \"name\" : \"Jobs for the Future (JFF)\",\r\n \"type\" : \"Profile\",\r\n \"url\" : \"https:\/\/kayaelle.github.io\/vc-ed\/plugfest-1-2022\/images\/JFF_LogoLockup.png\"\r\n },\r\n \"validFrom\" : \"2022-10-09T10:12:50Z\",\r\n \"type\" : [ \"VerifiableCredential\", \"OpenBadgeCredential\" ],\r\n \"proof\" : {\r\n \"type\" : \"JsonWebSignature2020\",\r\n \"creator\" : \"did:web:walt.id\",\r\n \"created\" : \"2022-10-09T10:12:50Z\",\r\n \"proofPurpose\" : \"assertionMethod\",\r\n \"verificationMethod\" : \"did:web:walt.id#c1672b42f846471eb2c22fd601169566\",\r\n \"jws\" : \"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..8EIBOS-UKOUXboKElqWxRuux851NTbbll_sd16-67vv8Gh8vicJDNu7DjU-QgpsnJO_4mG8swxrOJeIFuU58Bg\"\r\n }\r\n}"
],
"holderDid": "did:web:my.domain"
}'
{
"vcs":
[
"{\r\n \"@context\":\r\n [\r\n \"https://www.w3.org/2018/credentials/v1\"\r\n ],\r\n \"credentialSchema\":\r\n {\r\n \"id\": \"https://api.preprod.ebsi.eu/trusted-schemas-registry/v1/schemas/0xb77f8516a965631b4f197ad54c65a9e2f9936ebfb76bae4906d33744dbcc60ba\",\r\n \"type\": \"FullJsonSchemaValidator2021\"\r\n },\r\n \"credentialSubject\":\r\n {\r\n \"currentAddress\":\r\n [\r\n \"1 Boulevard de la Liberté, 59800 Lille\"\r\n ],\r\n \"dateOfBirth\": \"1993-04-08\",\r\n \"familyName\": \"DOE\",\r\n \"firstName\": \"Jane\",\r\n \"gender\": \"FEMALE\",\r\n \"id\": \"did:web:my.domain\",\r\n \"nameAndFamilyNameAtBirth\": \"Jane DOE\",\r\n \"personalIdentifier\": \"0904008084H\",\r\n \"placeOfBirth\": \"LILLE, FRANCE\"\r\n },\r\n \"evidence\":\r\n [\r\n {\r\n \"documentPresence\":\r\n [\r\n \"Physical\"\r\n ],\r\n \"evidenceDocument\":\r\n [\r\n \"Passport\"\r\n ],\r\n \"subjectPresence\": \"Physical\",\r\n \"type\":\r\n [\r\n \"DocumentVerification\"\r\n ],\r\n \"verifier\": \"did:ebsi:2A9BZ9SUe6BatacSpvs1V5CdjHvLpQ7bEsi2Jb6LdHKnQxaN\"\r\n }\r\n ],\r\n \"id\": \"urn:uuid:4d88d22e-214b-4aa3-a4e9-906da9daf36a\",\r\n \"issued\": \"2022-10-09T10:11:51Z\",\r\n \"issuer\": \"did:web:walt.id\",\r\n \"validFrom\": \"2022-10-09T10:11:51Z\",\r\n \"issuanceDate\": \"2022-10-09T10:11:51Z\",\r\n \"type\":\r\n [\r\n \"VerifiableCredential\",\r\n \"VerifiableAttestation\",\r\n \"VerifiableId\"\r\n ],\r\n \"proof\":\r\n {\r\n \"type\": \"JsonWebSignature2020\",\r\n \"creator\": \"did:web:walt.id\",\r\n \"created\": \"2022-10-09T10:11:52Z\",\r\n \"proofPurpose\": \"assertionMethod\",\r\n \"verificationMethod\": \"did:web:walt.id#c1672b42f846471eb2c22fd601169566\",\r\n \"jws\": \"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..H4mLlx3Ot3rWV_EzthoiAjZs6J4UkJywuGENmSsqNHEnMGlwFHRKSNGWHwWnz2a7R38ktyo8r0_3sc2IkxGvCA\"\r\n }\r\n}",
"{\r\n \"@context\" : [ \"https://www.w3.org/2018/credentials/v1\", \"https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/jff-vc-edu-plugfest-1-context.json\" ],\r\n \"credentialSubject\" : {\r\n \"achievement\" : {\r\n \"criteria\" : {\r\n \"narrative\" : \"The first cohort of the JFF Plugfest 1 in May/June of 2021 collaborated to push interoperability of VCs in education forward.\",\r\n \"type\" : \"Criteria\"\r\n },\r\n \"description\" : \"This wallet can display this Open Badge 3.0\",\r\n \"image\" : \"https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/plugfest-1-badge-image.png\",\r\n \"name\" : \"Our Wallet Passed JFF Plugfest #1 2022\",\r\n \"type\" : \"Achievement\"\r\n },\r\n \"id\" : \"did:web:my.domain\",\r\n \"type\" : \"AchievementSubject\"\r\n },\r\n \"id\" : \"urn:uuid:1745f6ff-3e12-4678-b714-e779e989ae25\",\r\n \"issuanceDate\" : \"2020-03-10T04:24:12.164Z\",\r\n \"issued\" : \"2022-10-09T10:12:50Z\",\r\n \"issuer\" : {\r\n \"id\" : \"did:web:walt.id\",\r\n \"image\" : \"https://kayaelle.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png\",\r\n \"name\" : \"Jobs for the Future (JFF)\",\r\n \"type\" : \"Profile\",\r\n \"url\" : \"https://kayaelle.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png\"\r\n },\r\n \"validFrom\" : \"2022-10-09T10:12:50Z\",\r\n \"type\" : [ \"VerifiableCredential\", \"OpenBadgeCredential\" ],\r\n \"proof\" : {\r\n \"type\" : \"JsonWebSignature2020\",\r\n \"creator\" : \"did:web:walt.id\",\r\n \"created\" : \"2022-10-09T10:12:50Z\",\r\n \"proofPurpose\" : \"assertionMethod\",\r\n \"verificationMethod\" : \"did:web:walt.id#c1672b42f846471eb2c22fd601169566\",\r\n \"jws\" : \"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..8EIBOS-UKOUXboKElqWxRuux851NTbbll_sd16-67vv8Gh8vicJDNu7DjU-QgpsnJO_4mG8swxrOJeIFuU58Bg\"\r\n }\r\n}"
],
"holderDid": "did:web:my.domain"
}
{
"@context":
[
"https://www.w3.org/2018/credentials/v1"
],
"holder": "did:web:my.domain",
"id": "urn:uuid:0f9a8692-badf-4f0c-aa07-a4c3279e3470",
"type":
[
"VerifiablePresentation"
],
"verifiableCredential":
[
{
"@context":
[
"https://www.w3.org/2018/credentials/v1"
],
"credentialSchema":
{
"id": "https://api.preprod.ebsi.eu/trusted-schemas-registry/v1/schemas/0xb77f8516a965631b4f197ad54c65a9e2f9936ebfb76bae4906d33744dbcc60ba",
"type": "FullJsonSchemaValidator2021"
},
"credentialSubject":
{
"currentAddress":
[
"1 Boulevard de la Liberté, 59800 Lille"
],
"dateOfBirth": "1993-04-08",
"familyName": "DOE",
"firstName": "Jane",
"gender": "FEMALE",
"id": "did:web:my.domain",
"nameAndFamilyNameAtBirth": "Jane DOE",
"personalIdentifier": "0904008084H",
"placeOfBirth": "LILLE, FRANCE"
},
"evidence":
[
{
"documentPresence":
[
"Physical"
],
"evidenceDocument":
[
"Passport"
],
"subjectPresence": "Physical",
"type":
[
"DocumentVerification"
],
"verifier": "did:ebsi:2A9BZ9SUe6BatacSpvs1V5CdjHvLpQ7bEsi2Jb6LdHKnQxaN"
}
],
"id": "urn:uuid:4d88d22e-214b-4aa3-a4e9-906da9daf36a",
"issued": "2022-10-09T10:11:51Z",
"issuer": "did:web:walt.id",
"proof":
{
"created": "2022-10-09T10:11:52Z",
"creator": "did:web:walt.id",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..H4mLlx3Ot3rWV_EzthoiAjZs6J4UkJywuGENmSsqNHEnMGlwFHRKSNGWHwWnz2a7R38ktyo8r0_3sc2IkxGvCA",
"proofPurpose": "assertionMethod",
"type": "JsonWebSignature2020",
"verificationMethod": "did:web:walt.id#c1672b42f846471eb2c22fd601169566"
},
"validFrom": "2022-10-09T10:11:51Z",
"issuanceDate": "2022-10-09T10:11:51Z",
"type":
[
"VerifiableCredential",
"VerifiableAttestation",
"VerifiableId"
]
},
{
"@context":
[
"https://www.w3.org/2018/credentials/v1",
"https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/jff-vc-edu-plugfest-1-context.json"
],
"credentialSubject":
{
"achievement":
{
"criteria":
{
"narrative": "The first cohort of the JFF Plugfest 1 in May/June of 2021 collaborated to push interoperability of VCs in education forward.",
"type": "Criteria"
},
"description": "This wallet can display this Open Badge 3.0",
"image": "https://w3c-ccg.github.io/vc-ed/plugfest-1-2022/images/plugfest-1-badge-image.png",
"name": "Our Wallet Passed JFF Plugfest #1 2022",
"type": "Achievement"
},
"id": "did:web:my.domain",
"type": "AchievementSubject"
},
"id": "urn:uuid:1745f6ff-3e12-4678-b714-e779e989ae25",
"issuanceDate": "2020-03-10T04:24:12.164Z",
"issued": "2022-10-09T10:12:50Z",
"issuer":
{
"id": "did:web:walt.id",
"image": "https://kayaelle.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png",
"name": "Jobs for the Future (JFF)",
"type": "Profile",
"url": "https://kayaelle.github.io/vc-ed/plugfest-1-2022/images/JFF_LogoLockup.png"
},
"proof":
{
"created": "2022-10-09T10:12:50Z",
"creator": "did:web:walt.id",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..8EIBOS-UKOUXboKElqWxRuux851NTbbll_sd16-67vv8Gh8vicJDNu7DjU-QgpsnJO_4mG8swxrOJeIFuU58Bg",
"proofPurpose": "assertionMethod",
"type": "JsonWebSignature2020",
"verificationMethod": "did:web:walt.id#c1672b42f846471eb2c22fd601169566"
},
"validFrom": "2022-10-09T10:12:50Z",
"type":
[
"VerifiableCredential",
"OpenBadgeCredential"
]
}
],
"proof":
{
"type": "Ed25519Signature2018",
"creator": "did:web:my.domain",
"created": "2022-10-09T10:21:11Z",
"domain": "https://api.preprod.ebsi.eu",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"proofPurpose": "authentication",
"verificationMethod": "did:web:my.domain#c5b11445be0e4d37863170df3328630b",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..2S3aHQISbL81Dbe1yOakXBFGvUJjxEZ7zGZZZ3XOJibtAON5v9lr5Q9NGt1c8h0zSrTLQDl2-fQ7A6HA9KL9Cw"
}
}
curl -X 'POST' \
'https://custodian.ssikit.walt.id/credentials/presentIds' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"vcIds":
[
"string"
],
"holderDid": "string",
"verifierDid": "string",
"domain": "string",
"challenge": "string"
}
{
"context":
[
"string"
],
"id": "string",
"holder": "string",
"verifiableCredential":
[
{
"json": "string",
"issuanceDate": "string",
"dateFormat":
{
"locale":
{
"language": "string",
"script": "string",
"variant": "string",
"displayName": "string",
"country": "string",
"unicodeLocaleAttributes":
[
"string"
],
"unicodeLocaleKeys":
[
"string"
],
"displayLanguage": "string",
"displayScript": "string",
"displayCountry": "string",
"displayVariant": "string",
"extensionKeys":
[
"string"
],
"iso3Language": "string",
"iso3Country": "string"
},
"decimalStyle":
{
"zeroDigit": "string",
"positiveSign": "string",
"negativeSign": "string",
"decimalSeparator": "string"
},
"resolverStyle": "STRICT",
"resolverFields":
[
{
"baseUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"rangeUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"dateBased": true,
"timeBased": true
}
],
"zone":
{
"id": "string",
"rules":
{
"fixedOffset": true,
"transitions":
[
{
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"gap": true,
"dateTimeBefore": "2022-10-09T09:52:44.738Z",
"dateTimeAfter": "2022-10-09T09:52:44.738Z",
"overlap": true,
"instant": "2022-10-09T09:52:44.738Z"
}
],
"transitionRules":
[
{
"month": "JANUARY",
"timeDefinition": "UTC",
"standardOffset":
{
"totalSeconds": 0,
"id": "string"
},
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"dayOfWeek": "MONDAY",
"dayOfMonthIndicator": 0,
"localTime":
{
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"midnightEndOfDay": true
}
]
}
},
"chronology":
{
"id": "string",
"calendarType": "string"
}
},
"jwt": "string",
"id": "string",
"type":
[
"string"
],
"subject": "string",
"expirationDate": "string",
"credentialSchema":
{
"id": "string",
"type": "string"
},
"proof":
{
"type": "string",
"creator": "string",
"created": "string",
"domain": "string",
"proofPurpose": "string",
"verificationMethod": "string",
"jws": "string",
"nonce": "string"
},
"challenge": "string",
"validFrom": "string",
"issued": "string",
"issuer": "string"
}
],
"proof":
{
"type": "string",
"creator": "string",
"created": "string",
"domain": "string",
"proofPurpose": "string",
"verificationMethod": "string",
"jws": "string",
"nonce": "string"
},
"issued": "string",
"validFrom": "string",
"expirationDate": "string",
"json": "string",
"issuanceDate": "string",
"dateFormat":
{
"locale":
{
"language": "string",
"script": "string",
"variant": "string",
"displayName": "string",
"country": "string",
"unicodeLocaleAttributes":
[
"string"
],
"unicodeLocaleKeys":
[
"string"
],
"displayLanguage": "string",
"displayScript": "string",
"displayCountry": "string",
"displayVariant": "string",
"extensionKeys":
[
"string"
],
"iso3Language": "string",
"iso3Country": "string"
},
"decimalStyle":
{
"zeroDigit": "string",
"positiveSign": "string",
"negativeSign": "string",
"decimalSeparator": "string"
},
"resolverStyle": "STRICT",
"resolverFields":
[
{
"baseUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"rangeUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"dateBased": true,
"timeBased": true
}
],
"zone":
{
"id": "string",
"rules":
{
"fixedOffset": true,
"transitions":
[
{
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"gap": true,
"dateTimeBefore": "2022-10-09T09:52:44.739Z",
"dateTimeAfter": "2022-10-09T09:52:44.739Z",
"overlap": true,
"instant": "2022-10-09T09:52:44.739Z"
}
],
"transitionRules":
[
{
"month": "JANUARY",
"timeDefinition": "UTC",
"standardOffset":
{
"totalSeconds": 0,
"id": "string"
},
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"dayOfWeek": "MONDAY",
"dayOfMonthIndicator": 0,
"localTime":
{
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"midnightEndOfDay": true
}
]
}
},
"chronology":
{
"id": "string",
"calendarType": "string"
}
},
"jwt": "string",
"type":
[
"string"
],
"subject": "string",
"credentialSchema":
{
"id": "string",
"type": "string"
},
"issuer": "string",
"challenge": "string"
}
curl -X 'POST' \
'https://custodian.ssikit.walt.id/credentials/presentIds' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"vcIds": [
"urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270"
],
"holderDid": "did:web:my.domain"
}'
{
"vcIds":
[
"urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270"
],
"holderDid": "did:web:my.domain"
}
{
"@context":
[
"https://www.w3.org/2018/credentials/v1"
],
"holder": "did:web:my.domain",
"id": "urn:uuid:35e627b2-297c-4d33-85cd-a4dfc40bab32",
"type":
[
"VerifiablePresentation"
],
"verifiableCredential":
[
{
"@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"
},
"proof":
{
"created": "2022-10-07T09:53:41Z",
"creator": "did:web:walt.id",
"domain": "https://api.preprod.ebsi.eu",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..7EYkgjNRJ_hh0F5kONnPfrC4PLvg1g82czeANllDngsbk36a8lnHSlwersSqY0tdER4xIe7vbNVzi39C2DZTDQ",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"type": "Ed25519Signature2018"
},
"validFrom": "2022-10-07T09:53:41.369917079Z",
"issuanceDate": "2022-10-07T09:53:41.369917079Z",
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
]
}
],
"proof":
{
"type": "Ed25519Signature2018",
"creator": "did:web:my.domain",
"created": "2022-10-09T09:52:44Z",
"domain": "https://api.preprod.ebsi.eu",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"proofPurpose": "authentication",
"verificationMethod": "did:web:my.domain#c5b11445be0e4d37863170df3328630b",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..KCfytKgejnjdW_D632lugaj08E9yO8DcDmNcAoGHywld7twcUf1QqKoidfGNW3j2un4ywqRnjSIiYzK8ZxoXDg"
}
}
curl -X 'GET' \
'https://custodian.ssikit.walt.id/keys' \
-H 'accept: application/json'
No parameters
{
"list":
[
{
"algorithm": "string",
"cryptoProvider": "string",
"keyId":
{
"id": "string"
},
"keyPair": {},
"keysetHandle": null
}
]
}
curl -X 'GET' \
'https://custodian.ssikit.walt.id/keys' \
-H 'accept: application/json'
{
"list":
[
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "e548f032cadf4145ab6886a57c2e87e6"
},
"keyPair": {},
"keysetHandle": null
},
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "e70e8fd8932043caa7c857c3b944d0e0"
},
"keyPair": {},
"keysetHandle": null
},
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "b50db0c1f73242b8bb0f2f6324e15ec3"
},
"keyPair": {},
"keysetHandle": null
},
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
},
"keyPair": {},
"keysetHandle": null
},
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "8cc0b1707ea345ed83e479469d42aac2"
},
"keyPair": {},
"keysetHandle": null
},
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "did:key:z6Mkv58vGsBMwbiyQ3P93MRnYfRgGvn4STEEsj5hFHYe51wu#z6Mkv58vGsBMwbiyQ3P93MRnYfRgGvn4STEEsj5hFHYe51wu"
},
"keyPair": {},
"keysetHandle": null
},
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "186a1e0a6d42459ba902724fe7643ed4"
},
"keyPair": {},
"keysetHandle": null
},
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "c5b11445be0e4d37863170df3328630b"
},
"keyPair": {},
"keysetHandle": null
}
]
}
curl -X 'GET' \
'https://custodian.ssikit.walt.id/keys/{alias}' \
-H 'accept: application/json'
No parameters
{
"algorithm": "string",
"cryptoProvider": "string",
"keyId":
{
"id": "string"
},
"keyPair": {},
"keysetHandle": null
}
curl -X 'GET' \
'https://custodian.ssikit.walt.id/keys/e548f032cadf4145ab6886a57c2e87e6' \
-H 'accept: application/json'
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "e548f032cadf4145ab6886a57c2e87e6"
},
"keyPair": {},
"keysetHandle": null
}
curl -X 'POST' \
'https://custodian.ssikit.walt.id/keys/generate' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"keyAlgorithm": "EdDSA_Ed25519"
}
{
"algorithm": "string",
"cryptoProvider": "string",
"keyId":
{
"id": "string"
},
"keyPair": {},
"keysetHandle": null
}
curl -X 'POST' \
'https://custodian.ssikit.walt.id/keys/generate' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{ "keyAlgorithm": "EdDSA_Ed25519" }'
{
"keyAlgorithm": "EdDSA_Ed25519"
}
{
"algorithm": "EdDSA_Ed25519",
"cryptoProvider": "SUN",
"keyId":
{
"id": "8394ea7883bc4328a3f18b146b7e16bd"
},
"keyPair": {},
"keysetHandle": null
}
curl -X 'POST' \
'https://custodian.ssikit.walt.id/keys/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '<request-body>'
{
"id": "string"
}
curl -X 'POST' \
'https://custodian.ssikit.walt.id/keys/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '{"kty":"OKP","use":"sig","crv":"Ed25519","kid":"bc6fa6b0593648238c4616800bed7746","x":"YyswAyRO2Aur8Jmzc8aOvI3AWFka3ZynJwB84a0FJVU","alg":"EdDSA"}'
{
"kty": "OKP",
"use": "sig",
"crv": "Ed25519",
"kid": "bc6fa6b0593648238c4616800bed7746",
"x": "YyswAyRO2Aur8Jmzc8aOvI3AWFka3ZynJwB84a0FJVU",
"alg": "EdDSA"
}
{
"id": "bc6fa6b0593648238c4616800bed7746"
}
curl -X 'DELETE' \
'https://custodian.ssikit.walt.id/keys/{id}' \
-H 'accept: application/json'
No parameters
Code 200
curl -X 'DELETE' \
'https://custodian.ssikit.walt.id/keys/bc6fa6b0593648238c4616800bed7746' \
-H 'accept: application/json'
curl -X 'POST' \
'https://custodian.ssikit.walt.id/keys/export' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"keyAlias": "string",
"format": "JWK",
"exportPrivate": true
}
The key in the specified format, JWK or PEM
curl -X 'POST' \
'https://custodian.ssikit.walt.id/keys/export' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"keyAlias": "e548f032cadf4145ab6886a57c2e87e6",
"format": "JWK",
"exportPrivate": false
}'
{
"keyAlias": "e548f032cadf4145ab6886a57c2e87e6",
"format": "JWK",
"exportPrivate": false
}
{
"kty": "OKP",
"use": "sig",
"crv": "Ed25519",
"kid": "e548f032cadf4145ab6886a57c2e87e6",
"x": "jT8YleOQnaABpZTnvId3WoID4Pia9Lex9OndqQ22Xxs",
"alg": "EdDSA"
}
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/vc' \
-H 'accept: application/json'
No parameters
The list of credential names (file names)
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/vc' \
-H 'accept: application/json'
[
""
]
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/vc/{id}' \
-H 'accept: application/json'
No parameters
The credential string
curl -X 'GET' \
'https://core.ssikit.walt.id/v1/vc/urn%3Auuid%3Ad36986f1-3cc0-4156-b5a4-6d3deab84270' \
-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:web:my.domain"
},
"id": "urn:uuid:d36986f1-3cc0-4156-b5a4-6d3deab84270",
"issued": "2022-10-07T09:53:41.369913097Z",
"issuer":
{
"id": "did:web:walt.id"
},
"proof":
{
"created": "2022-10-07T09:53:41Z",
"creator": "did:web:walt.id",
"domain": "https://api.preprod.ebsi.eu",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..7EYkgjNRJ_hh0F5kONnPfrC4PLvg1g82czeANllDngsbk36a8lnHSlwersSqY0tdER4xIe7vbNVzi39C2DZTDQ",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"type": "Ed25519Signature2018"
},
"validFrom": "2022-10-07T09:53:41.369917079Z",
"issuanceDate": "2022-10-07T09:53:41.369917079Z",
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
]
}
curl -X 'DELETE' \
'https://core.ssikit.walt.id/v1/vc/{id}' \
-H 'accept: application/json'
No parameters
Code 200
curl -X 'DELETE' \
'https://core.ssikit.walt.id/v1/vc/urn%3Auuid%3Ad36986f1-3cc0-4156-b5a4-6d3deab84270' \
-H 'accept: application/json'
{
"issuerDid": "string",
"subjectDid": "string",
"credentialOffer": "string",
"templateId": "string",
"domain": "string",
"nonce": "string"
}
The verifiable credential
{
"issuerDid": "did:key:z6MkqmaCT2JqdUtLeKah7tEVfNXtDXtQyj4yxEgV11Y5CqUa",
"subjectDid": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"templateId": "UniversityDegree"
}
{
"@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 'POST' \
'https://core.ssikit.walt.id/v1/vc/present' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"vc": "string",
"holderDid": "string",
"domain": "string",
"challenge": "string"
}
{
"context":
[
"string"
],
"id": "string",
"holder": "string",
"verifiableCredential":
[
{
"json": "string",
"issuanceDate": "string",
"dateFormat":
{
"locale":
{
"language": "string",
"script": "string",
"variant": "string",
"displayName": "string",
"country": "string",
"unicodeLocaleAttributes":
[
"string"
],
"unicodeLocaleKeys":
[
"string"
],
"displayLanguage": "string",
"displayScript": "string",
"displayCountry": "string",
"displayVariant": "string",
"extensionKeys":
[
"string"
],
"iso3Language": "string",
"iso3Country": "string"
},
"decimalStyle":
{
"zeroDigit": "string",
"positiveSign": "string",
"negativeSign": "string",
"decimalSeparator": "string"
},
"resolverStyle": "STRICT",
"resolverFields":
[
{
"baseUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"rangeUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"dateBased": true,
"timeBased": true
}
],
"zone":
{
"id": "string",
"rules":
{
"fixedOffset": true,
"transitions":
[
{
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"gap": true,
"dateTimeBefore": "2022-10-09T11:30:48.206Z",
"dateTimeAfter": "2022-10-09T11:30:48.206Z",
"overlap": true,
"instant": "2022-10-09T11:30:48.206Z"
}
],
"transitionRules":
[
{
"month": "JANUARY",
"timeDefinition": "UTC",
"standardOffset":
{
"totalSeconds": 0,
"id": "string"
},
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"dayOfWeek": "MONDAY",
"dayOfMonthIndicator": 0,
"localTime":
{
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"midnightEndOfDay": true
}
]
}
},
"chronology":
{
"id": "string",
"calendarType": "string"
}
},
"jwt": "string",
"id": "string",
"type":
[
"string"
],
"subject": "string",
"expirationDate": "string",
"credentialSchema":
{
"id": "string",
"type": "string"
},
"proof":
{
"type": "string",
"creator": "string",
"created": "string",
"domain": "string",
"proofPurpose": "string",
"verificationMethod": "string",
"jws": "string",
"nonce": "string"
},
"challenge": "string",
"validFrom": "string",
"issued": "string",
"issuer": "string"
}
],
"proof":
{
"type": "string",
"creator": "string",
"created": "string",
"domain": "string",
"proofPurpose": "string",
"verificationMethod": "string",
"jws": "string",
"nonce": "string"
},
"issued": "string",
"validFrom": "string",
"expirationDate": "string",
"json": "string",
"issuanceDate": "string",
"dateFormat":
{
"locale":
{
"language": "string",
"script": "string",
"variant": "string",
"displayName": "string",
"country": "string",
"unicodeLocaleAttributes":
[
"string"
],
"unicodeLocaleKeys":
[
"string"
],
"displayLanguage": "string",
"displayScript": "string",
"displayCountry": "string",
"displayVariant": "string",
"extensionKeys":
[
"string"
],
"iso3Language": "string",
"iso3Country": "string"
},
"decimalStyle":
{
"zeroDigit": "string",
"positiveSign": "string",
"negativeSign": "string",
"decimalSeparator": "string"
},
"resolverStyle": "STRICT",
"resolverFields":
[
{
"baseUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"rangeUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"dateBased": true,
"timeBased": true
}
],
"zone":
{
"id": "string",
"rules":
{
"fixedOffset": true,
"transitions":
[
{
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"gap": true,
"dateTimeBefore": "2022-10-09T11:30:48.207Z",
"dateTimeAfter": "2022-10-09T11:30:48.207Z",
"overlap": true,
"instant": "2022-10-09T11:30:48.207Z"
}
],
"transitionRules":
[
{
"month": "JANUARY",
"timeDefinition": "UTC",
"standardOffset":
{
"totalSeconds": 0,
"id": "string"
},
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"dayOfWeek": "MONDAY",
"dayOfMonthIndicator": 0,
"localTime":
{
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"midnightEndOfDay": true
}
]
}
},
"chronology":
{
"id": "string",
"calendarType": "string"
}
},
"jwt": "string",
"type":
[
"string"
],
"subject": "string",
"credentialSchema":
{
"id": "string",
"type": "string"
},
"issuer": "string",
"challenge": "string"
}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/vc/present' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"vc": "{\"@context\":[\"https:\/\/www.w3.org\/2018\/credentials\/v1\"],\"credentialSchema\":{\"id\":\"https:\/\/api.preprod.ebsi.eu\/trusted-schemas-registry\/v1\/schemas\/0xb77f8516a965631b4f197ad54c65a9e2f9936ebfb76bae4906d33744dbcc60ba\",\"type\":\"FullJsonSchemaValidator2021\"},\"credentialSubject\":{\"currentAddress\":[\"1 Boulevard de la Libert\u00E9, 59800 Lille\"],\"dateOfBirth\":\"1993-04-08\",\"familyName\":\"DOE\",\"firstName\":\"Jane\",\"gender\":\"FEMALE\",\"id\":\"did:key:z6MkmRtH7cWeRnQfpeqDfBxa73jhSwUSKfBGUeB6Sk2DgbwR\",\"nameAndFamilyNameAtBirth\":\"Jane DOE\",\"personalIdentifier\":\"0904008084H\",\"placeOfBirth\":\"LILLE, FRANCE\"},\"evidence\":[{\"documentPresence\":[\"Physical\"],\"evidenceDocument\":[\"Passport\"],\"subjectPresence\":\"Physical\",\"type\":[\"DocumentVerification\"],\"verifier\":\"did:ebsi:2A9BZ9SUe6BatacSpvs1V5CdjHvLpQ7bEsi2Jb6LdHKnQxaN\"}],\"id\":\"urn:uuid:5368e8a9-b1f2-49a6-8ef2-6ba6088baa90\",\"issued\":\"2022-10-11T10:19:31Z\",\"issuer\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"validFrom\":\"2022-10-11T10:19:31Z\",\"issuanceDate\":\"2022-10-11T10:19:31Z\",\"type\":[\"VerifiableCredential\",\"VerifiableAttestation\",\"VerifiableId\"],\"proof\":{\"type\":\"JsonWebSignature2020\",\"creator\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"created\":\"2022-10-11T10:19:32Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL#z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"jws\":\"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..Ab-s21gF5B-dAoYmMq9gb5vfYnQOrpECaWuU_vcTMmTofYzOaO0YPKcdAvXoUw--NTUZp9zrK4w3z9HPyHPBDw\"}}",
"holderDid": "did:web:my.domain"
}'
{
"vc": "{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"credentialSchema\":{\"id\":\"https://api.preprod.ebsi.eu/trusted-schemas-registry/v1/schemas/0xb77f8516a965631b4f197ad54c65a9e2f9936ebfb76bae4906d33744dbcc60ba\",\"type\":\"FullJsonSchemaValidator2021\"},\"credentialSubject\":{\"currentAddress\":[\"1 Boulevard de la Liberté, 59800 Lille\"],\"dateOfBirth\":\"1993-04-08\",\"familyName\":\"DOE\",\"firstName\":\"Jane\",\"gender\":\"FEMALE\",\"id\":\"did:key:z6MkmRtH7cWeRnQfpeqDfBxa73jhSwUSKfBGUeB6Sk2DgbwR\",\"nameAndFamilyNameAtBirth\":\"Jane DOE\",\"personalIdentifier\":\"0904008084H\",\"placeOfBirth\":\"LILLE, FRANCE\"},\"evidence\":[{\"documentPresence\":[\"Physical\"],\"evidenceDocument\":[\"Passport\"],\"subjectPresence\":\"Physical\",\"type\":[\"DocumentVerification\"],\"verifier\":\"did:ebsi:2A9BZ9SUe6BatacSpvs1V5CdjHvLpQ7bEsi2Jb6LdHKnQxaN\"}],\"id\":\"urn:uuid:5368e8a9-b1f2-49a6-8ef2-6ba6088baa90\",\"issued\":\"2022-10-11T10:19:31Z\",\"issuer\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"validFrom\":\"2022-10-11T10:19:31Z\",\"issuanceDate\":\"2022-10-11T10:19:31Z\",\"type\":[\"VerifiableCredential\",\"VerifiableAttestation\",\"VerifiableId\"],\"proof\":{\"type\":\"JsonWebSignature2020\",\"creator\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"created\":\"2022-10-11T10:19:32Z\",\"proofPurpose\":\"assertionMethod\",\"verificationMethod\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL#z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"jws\":\"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..Ab-s21gF5B-dAoYmMq9gb5vfYnQOrpECaWuU_vcTMmTofYzOaO0YPKcdAvXoUw--NTUZp9zrK4w3z9HPyHPBDw\"}}",
"holderDid": "did:web:my.domain"
}
{
"@context":
[
"https://www.w3.org/2018/credentials/v1"
],
"holder": "did:web:my.domain",
"id": "urn:uuid:a6a93543-4fee-4127-8ec0-4c70eac60f2d",
"type":
[
"VerifiablePresentation"
],
"verifiableCredential":
[
{
"@context":
[
"https://www.w3.org/2018/credentials/v1"
],
"credentialSchema":
{
"id": "https://api.preprod.ebsi.eu/trusted-schemas-registry/v1/schemas/0xb77f8516a965631b4f197ad54c65a9e2f9936ebfb76bae4906d33744dbcc60ba",
"type": "FullJsonSchemaValidator2021"
},
"credentialSubject":
{
"currentAddress":
[
"1 Boulevard de la Liberté, 59800 Lille"
],
"dateOfBirth": "1993-04-08",
"familyName": "DOE",
"firstName": "Jane",
"gender": "FEMALE",
"id": "did:key:z6MkmRtH7cWeRnQfpeqDfBxa73jhSwUSKfBGUeB6Sk2DgbwR",
"nameAndFamilyNameAtBirth": "Jane DOE",
"personalIdentifier": "0904008084H",
"placeOfBirth": "LILLE, FRANCE"
},
"evidence":
[
{
"documentPresence":
[
"Physical"
],
"evidenceDocument":
[
"Passport"
],
"subjectPresence": "Physical",
"type":
[
"DocumentVerification"
],
"verifier": "did:ebsi:2A9BZ9SUe6BatacSpvs1V5CdjHvLpQ7bEsi2Jb6LdHKnQxaN"
}
],
"id": "urn:uuid:5368e8a9-b1f2-49a6-8ef2-6ba6088baa90",
"issued": "2022-10-11T10:19:31Z",
"issuer": "did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL",
"proof":
{
"created": "2022-10-11T10:19:32Z",
"creator": "did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..Ab-s21gF5B-dAoYmMq9gb5vfYnQOrpECaWuU_vcTMmTofYzOaO0YPKcdAvXoUw--NTUZp9zrK4w3z9HPyHPBDw",
"proofPurpose": "assertionMethod",
"type": "JsonWebSignature2020",
"verificationMethod": "did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL#z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL"
},
"validFrom": "2022-10-11T10:19:31Z",
"issuanceDate": "2022-10-11T10:19:31Z",
"type":
[
"VerifiableCredential",
"VerifiableAttestation",
"VerifiableId"
]
}
],
"proof":
{
"type": "Ed25519Signature2018",
"creator": "did:web:my.domain",
"created": "2022-10-11T10:23:26Z",
"domain": "https://api.preprod.ebsi.eu",
"nonce": "dc2be572-cca4-43dc-9903-0fec1dcf786f",
"proofPurpose": "authentication",
"verificationMethod": "did:web:my.domain#c5b11445be0e4d37863170df3328630b",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..WqpWOUqaLf8D4aw40aS5R-h-_ZvF6YX1qhVOPULlPUuwP-8WdmfqV5jiwjx_-OL6t55v2ipPGVhY6Sfa47h5DQ"
}
}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/vc/verify' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"vcOrVp": "string"
}
{
"verificationType": "string",
"verified": boolean
}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/vc/verify' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"vcOrVp": "{\"@context\":[\"https:\/\/www.w3.org\/2018\/credentials\/v1\"],\"holder\":\"did:web:my.domain\",\"id\":\"urn:uuid:a6a93543-4fee-4127-8ec0-4c70eac60f2d\",\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https:\/\/www.w3.org\/2018\/credentials\/v1\"],\"credentialSchema\":{\"id\":\"https:\/\/api.preprod.ebsi.eu\/trusted-schemas-registry\/v1\/schemas\/0xb77f8516a965631b4f197ad54c65a9e2f9936ebfb76bae4906d33744dbcc60ba\",\"type\":\"FullJsonSchemaValidator2021\"},\"credentialSubject\":{\"currentAddress\":[\"1 Boulevard de la Libert\u00E9, 59800 Lille\"],\"dateOfBirth\":\"1993-04-08\",\"familyName\":\"DOE\",\"firstName\":\"Jane\",\"gender\":\"FEMALE\",\"id\":\"did:key:z6MkmRtH7cWeRnQfpeqDfBxa73jhSwUSKfBGUeB6Sk2DgbwR\",\"nameAndFamilyNameAtBirth\":\"Jane DOE\",\"personalIdentifier\":\"0904008084H\",\"placeOfBirth\":\"LILLE, FRANCE\"},\"evidence\":[{\"documentPresence\":[\"Physical\"],\"evidenceDocument\":[\"Passport\"],\"subjectPresence\":\"Physical\",\"type\":[\"DocumentVerification\"],\"verifier\":\"did:ebsi:2A9BZ9SUe6BatacSpvs1V5CdjHvLpQ7bEsi2Jb6LdHKnQxaN\"}],\"id\":\"urn:uuid:5368e8a9-b1f2-49a6-8ef2-6ba6088baa90\",\"issued\":\"2022-10-11T10:19:31Z\",\"issuer\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"proof\":{\"created\":\"2022-10-11T10:19:32Z\",\"creator\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"jws\":\"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..Ab-s21gF5B-dAoYmMq9gb5vfYnQOrpECaWuU_vcTMmTofYzOaO0YPKcdAvXoUw--NTUZp9zrK4w3z9HPyHPBDw\",\"proofPurpose\":\"assertionMethod\",\"type\":\"JsonWebSignature2020\",\"verificationMethod\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL#z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\"},\"validFrom\":\"2022-10-11T10:19:31Z\",\"issuanceDate\":\"2022-10-11T10:19:31Z\",\"type\":[\"VerifiableCredential\",\"VerifiableAttestation\",\"VerifiableId\"]}],\"proof\":{\"type\":\"Ed25519Signature2018\",\"creator\":\"did:web:my.domain\",\"created\":\"2022-10-11T10:23:26Z\",\"domain\":\"https:\/\/api.preprod.ebsi.eu\",\"nonce\":\"dc2be572-cca4-43dc-9903-0fec1dcf786f\",\"proofPurpose\":\"authentication\",\"verificationMethod\":\"did:web:my.domain#c5b11445be0e4d37863170df3328630b\",\"jws\":\"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..WqpWOUqaLf8D4aw40aS5R-h-_ZvF6YX1qhVOPULlPUuwP-8WdmfqV5jiwjx_-OL6t55v2ipPGVhY6Sfa47h5DQ\"}}"
}'
{
"vcOrVp": "{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"holder\":\"did:web:my.domain\",\"id\":\"urn:uuid:a6a93543-4fee-4127-8ec0-4c70eac60f2d\",\"type\":[\"VerifiablePresentation\"],\"verifiableCredential\":[{\"@context\":[\"https://www.w3.org/2018/credentials/v1\"],\"credentialSchema\":{\"id\":\"https://api.preprod.ebsi.eu/trusted-schemas-registry/v1/schemas/0xb77f8516a965631b4f197ad54c65a9e2f9936ebfb76bae4906d33744dbcc60ba\",\"type\":\"FullJsonSchemaValidator2021\"},\"credentialSubject\":{\"currentAddress\":[\"1 Boulevard de la Liberté, 59800 Lille\"],\"dateOfBirth\":\"1993-04-08\",\"familyName\":\"DOE\",\"firstName\":\"Jane\",\"gender\":\"FEMALE\",\"id\":\"did:key:z6MkmRtH7cWeRnQfpeqDfBxa73jhSwUSKfBGUeB6Sk2DgbwR\",\"nameAndFamilyNameAtBirth\":\"Jane DOE\",\"personalIdentifier\":\"0904008084H\",\"placeOfBirth\":\"LILLE, FRANCE\"},\"evidence\":[{\"documentPresence\":[\"Physical\"],\"evidenceDocument\":[\"Passport\"],\"subjectPresence\":\"Physical\",\"type\":[\"DocumentVerification\"],\"verifier\":\"did:ebsi:2A9BZ9SUe6BatacSpvs1V5CdjHvLpQ7bEsi2Jb6LdHKnQxaN\"}],\"id\":\"urn:uuid:5368e8a9-b1f2-49a6-8ef2-6ba6088baa90\",\"issued\":\"2022-10-11T10:19:31Z\",\"issuer\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"proof\":{\"created\":\"2022-10-11T10:19:32Z\",\"creator\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\",\"jws\":\"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..Ab-s21gF5B-dAoYmMq9gb5vfYnQOrpECaWuU_vcTMmTofYzOaO0YPKcdAvXoUw--NTUZp9zrK4w3z9HPyHPBDw\",\"proofPurpose\":\"assertionMethod\",\"type\":\"JsonWebSignature2020\",\"verificationMethod\":\"did:key:z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL#z6Mkeu6eroi9VuHsqxtkWHxKS4egHtVH4snzRtuFFtUYwavL\"},\"validFrom\":\"2022-10-11T10:19:31Z\",\"issuanceDate\":\"2022-10-11T10:19:31Z\",\"type\":[\"VerifiableCredential\",\"VerifiableAttestation\",\"VerifiableId\"]}],\"proof\":{\"type\":\"Ed25519Signature2018\",\"creator\":\"did:web:my.domain\",\"created\":\"2022-10-11T10:23:26Z\",\"domain\":\"https://api.preprod.ebsi.eu\",\"nonce\":\"dc2be572-cca4-43dc-9903-0fec1dcf786f\",\"proofPurpose\":\"authentication\",\"verificationMethod\":\"did:web:my.domain#c5b11445be0e4d37863170df3328630b\",\"jws\":\"eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..WqpWOUqaLf8D4aw40aS5R-h-_ZvF6YX1qhVOPULlPUuwP-8WdmfqV5jiwjx_-OL6t55v2ipPGVhY6Sfa47h5DQ\"}}"
}
{
"verificationType": "VERIFIABLE_PRESENTATION",
"verified": true
}
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/vc/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '<request-body>'
The credential string
Code 200
curl -X 'POST' \
'https://core.ssikit.walt.id/v1/vc/import' \
-H 'accept: application/json' \
-H 'Content-Type: text/plain' \
-d '"{\"@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\"}}"'
"{\"@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\"}}"
[
{
"valid": true,
"results":
[
{
"valid": true,
"policyResults":
{
"additionalProp1": true,
"additionalProp2": true,
"additionalProp3": true
}
}
]
}
]
curl -X 'POST' \
'https://auditor.ssikit.walt.id/v1/verify' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '<request-body>'
{
"policies":
[
{
"policy": "string",
"argument":
{
"additionalProp1":
{},
"additionalProp2":
{},
"additionalProp3":
{}
}
}
],
"credentials":
[
{
"json": "string",
"issuanceDate": "string",
"dateFormat":
{
"locale":
{
"language": "string",
"script": "string",
"variant": "string",
"displayName": "string",
"country": "string",
"unicodeLocaleAttributes":
[
"string"
],
"unicodeLocaleKeys":
[
"string"
],
"displayLanguage": "string",
"displayScript": "string",
"displayCountry": "string",
"displayVariant": "string",
"extensionKeys":
[
"string"
],
"iso3Language": "string",
"iso3Country": "string"
},
"decimalStyle":
{
"zeroDigit": "string",
"positiveSign": "string",
"negativeSign": "string",
"decimalSeparator": "string"
},
"resolverStyle": "STRICT",
"resolverFields":
[
{
"baseUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"rangeUnit":
{
"dateBased": true,
"timeBased": true,
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"durationEstimated": true
},
"dateBased": true,
"timeBased": true
}
],
"zone":
{
"id": "string",
"rules":
{
"fixedOffset": true,
"transitions":
[
{
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"duration":
{
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units":
[
{
"dateBased": true,
"timeBased": true,
"durationEstimated": true
}
]
},
"gap": true,
"dateTimeBefore": "2022-10-06T14:45:20.119Z",
"dateTimeAfter": "2022-10-06T14:45:20.119Z",
"overlap": true,
"instant": "2022-10-06T14:45:20.119Z"
}
],
"transitionRules":
[
{
"month": "JANUARY",
"timeDefinition": "UTC",
"standardOffset":
{
"totalSeconds": 0,
"id": "string"
},
"offsetBefore":
{
"totalSeconds": 0,
"id": "string"
},
"offsetAfter":
{
"totalSeconds": 0,
"id": "string"
},
"dayOfWeek": "MONDAY",
"dayOfMonthIndicator": 0,
"localTime":
{
"hour": 0,
"minute": 0,
"second": 0,
"nano": 0
},
"midnightEndOfDay": true
}
]
}
},
"chronology":
{
"id": "string",
"calendarType": "string"
}
},
"jwt": "string",
"id": "string",
"type":
[
"string"
],
"subject": "string",
"expirationDate": "string",
"credentialSchema":
{
"id": "string",
"type": "string"
},
"proof":
{
"type": "string",
"creator": "string",
"created": "string",
"domain": "string",
"proofPurpose": "string",
"verificationMethod": "string",
"jws": "string",
"nonce": "string"
},
"challenge": "string",
"validFrom": "string",
"issued": "string",
"issuer": "string"
}
]
}
curl -X 'POST' \
'https://auditor.ssikit.walt.id/v1/verify' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"policies":
[
{
"policy": "SignaturePolicy"
}
],
"credentials":
[
{
"@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:key:z6Mkv58vGsBMwbiyQ3P93MRnYfRgGvn4STEEsj5hFHYe51wu"
},
"id": "urn:uuid:7c9d7748-1b66-4361-98eb-c8aab625d9d6",
"issued": "2022-10-06T15:49:20Z",
"issuer":
{
"id": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
},
"validFrom": "2022-10-06T15:49:20Z",
"issuanceDate": "2022-10-06T15:49:20Z",
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
],
"proof":
{
"type": "JsonWebSignature2020",
"creator": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"created": "2022-10-06T15:49:20Z",
"proofPurpose": "assertionMethod",
"verificationMethod": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..iOAli2QhHpp0jZeF2tUj5H4gi_rwaWeypKE4gVdSePp-747gwDCm-bLFjE1MBOFSILZYBWtVWCitrTUmUDfUBw"
}
}
]
}'
{
"policies":
[
{
"policy": "SignaturePolicy"
},
],
"credentials":
[
{
"@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:key:z6Mkv58vGsBMwbiyQ3P93MRnYfRgGvn4STEEsj5hFHYe51wu"
},
"id": "urn:uuid:7c9d7748-1b66-4361-98eb-c8aab625d9d6",
"issued": "2022-10-06T15:49:20Z",
"issuer":
{
"id": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX"
},
"validFrom": "2022-10-06T15:49:20Z",
"issuanceDate": "2022-10-06T15:49:20Z",
"type":
[
"VerifiableCredential",
"UniversityDegreeCredential"
],
"proof":
{
"type": "JsonWebSignature2020",
"creator": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"created": "2022-10-06T15:49:20Z",
"proofPurpose": "assertionMethod",
"verificationMethod": "did:key:z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX#z6MkkLmAVeM3P6B2LJ2xGrK1wVojCoephK4G9VrCcct42ADX",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..iOAli2QhHpp0jZeF2tUj5H4gi_rwaWeypKE4gVdSePp-747gwDCm-bLFjE1MBOFSILZYBWtVWCitrTUmUDfUBw"
}
}
]
}
{
"valid": false,
"results":
[
{
"valid": false,
"policyResults":
{
"SignaturePolicy": true
}
}
]
}
curl -X 'GET' \
'https://auditor.ssikit.walt.id/v1/policies' \
-H 'accept: application/json'
No parameters
[
{
"applyToVC": true,
"applyToVP": true,
"id": "string",
"description": "string"
}
]
curl -X 'GET' \
'https://auditor.ssikit.walt.id/v1/policies' \
-H 'accept: application/json'
[
{
"id": "SignaturePolicy",
"description": "Verify by signature",
"argumentType": "None",
"isMutable": false
},
{
"id": "JsonSchemaPolicy",
"description": "Verify by JSON schema",
"argumentType": "None",
"isMutable": false
},
{
"id": "TrustedSchemaRegistryPolicy",
"description": "Verify by EBSI Trusted Schema Registry",
"argumentType": "None",
"isMutable": false
},
{
"id": "TrustedIssuerDidPolicy",
"description": "Verify by trusted issuer did",
"argumentType": "None",
"isMutable": false
},
{
"id": "TrustedIssuerRegistryPolicy",
"description": "Verify by trusted EBSI Trusted Issuer Registry record",
"argumentType": "None",
"isMutable": false
},
{
"id": "TrustedSubjectDidPolicy",
"description": "Verify by trusted subject did",
"argumentType": "None",
"isMutable": false
},
{
"id": "IssuedDateBeforePolicy",
"description": "Verify by issuance date",
"argumentType": "None",
"isMutable": false
},
{
"id": "ValidFromBeforePolicy",
"description": "Verify by valid from",
"argumentType": "None",
"isMutable": false
},
{
"id": "ExpirationDateAfterPolicy",
"description": "Verify by expiration date",
"argumentType": "None",
"isMutable": false
},
{
"id": "GaiaxTrustedPolicy",
"description": "Verify Gaiax trusted fields",
"argumentType": "None",
"isMutable": false
},
{
"id": "GaiaxSDPolicy",
"description": "Verify Gaiax SD fields",
"argumentType": "None",
"isMutable": false
},
{
"id": "ChallengePolicy",
"description": "Verify challenge",
"argumentType": "ChallengePolicyArg",
"isMutable": false
},
{
"id": "VpTokenClaimPolicy",
"description": "Verify verifiable presentation by OIDC/SIOPv2 VP token claim",
"argumentType": "VpTokenClaim",
"isMutable": false
},
{
"id": "CredentialStatusPolicy",
"description": "Verify by credential status",
"argumentType": "None",
"isMutable": false
},
{
"id": "DynamicPolicy",
"description": "Verify credential by rego policy",
"argumentType": "DynamicPolicyArg",
"isMutable": false
},
{
"id": "VerifiableMandatePolicy",
"description": "Predefined policy for verifiable mandates",
"argumentType": "JsonObject",
"isMutable": false
}
]
{
"name": "string",
"description": "string",
"input":
{
"additionalProp1":
{},
"additionalProp2":
{},
"additionalProp3":
{}
},
"policy": "string",
"dataPath": "string",
"policyQuery": "string",
"policyEngine": "OPA",
"applyToVC": true,
"applyToVP": true
}
curl -X 'POST' \
'https://auditor.ssikit.walt.id/v1/create/MyPolicy?update=false&downloadPolicy=true' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"name": "MyPolicy",
"description": "my policy",
"input": {},
"policy": "package system\r\nimport future.keywords.if\r\ndefault allow := false\r\nallow if regex.match(\".+\", data.credentialSubject.id)",
"dataPath": "$",
"policyQuery": "data.system.main",
"policyEngine": "OPA",
"applyToVC": true,
"applyToVP": true
}'
{
"name": "MyPolicy",
"description": "my policy",
"policy": "package system\r\nimport future.keywords.if\r\ndefault allow := false\r\nallow if regex.match(\".+\", data.credentialSubject.id)",
"dataPath": "$",
"policyQuery": "data.system.main",
"policyEngine": "OPA",
"applyToVC": true,
"applyToVP": true
}
curl -X 'DELETE' \
'https://auditor.ssikit.walt.id/v1/delete/{name}' \
-H 'accept: */*'
curl -X 'DELETE' \
'https://auditor.ssikit.walt.id/v1/delete/MyPolicy' \
-H 'accept: */*'