Skip to content

Quick Start

This guide walks you through the basic workflow of creating a DID, issuing a credential, and verifying it.

  • An API key (see Authentication)
  • A tool for making HTTP requests (curl, Postman, or your preferred HTTP client)

Create a new decentralized identifier with an Ed25519 keypair:

Terminal window
curl -X POST "https://api.veriglob.com/v1/did" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json"

Response:

{
"status": "success",
"message": "DID created successfully",
"data": {
"did": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"public_key": "base64-encoded-public-key",
"private_key": "base64-encoded-private-key"
}
}

Issue a credential using your DID as the issuer:

Terminal window
curl -X POST "https://api.veriglob.com/v1/credentials" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"issuer_did": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"issuer_private_key": "your-private-key",
"subject_did": "did:key:z6MksubjectDID...",
"credential_type": "EmploymentCredential",
"claims": {
"employer": "Acme Corporation",
"position": "Software Engineer",
"start_date": "2024-01-15"
},
"expiration_date": "2025-01-15T00:00:00Z"
}'

Response:

{
"status": "success",
"message": "Credential issued successfully",
"data": {
"credential_id": "urn:uuid:3978344f-8596-4c3a-a978-8fcaba3903c5",
"credential": "v4.public.eyJpc3MiOi...",
"issuer": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"subject": "did:key:z6MksubjectDID...",
"credential_type": "EmploymentCredential",
"issued_at": "2024-01-15T10:30:00Z",
"expires_at": "2025-01-15T00:00:00Z"
}
}

Verify the credential signature and check its status:

Terminal window
curl -X POST "https://api.veriglob.com/v1/credentials/verify" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"credential": "v4.public.eyJpc3MiOi...",
"issuer_did": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"check_revocation": true
}'

Response:

{
"status": "success",
"message": "Credential verified successfully",
"data": {
"valid": true,
"issuer": "did:key:z6MkhsiKBzbNixeXD7mzEzEiuRDFJEKpofi62adE1ZpauNeh",
"subject": "did:key:z6MksubjectDID...",
"credential_type": "EmploymentCredential",
"claims": {
"employer": "Acme Corporation",
"position": "Software Engineer",
"start_date": "2024-01-15"
},
"revoked": false,
"expired": false
}
}

Create a verifiable presentation to share credentials with a verifier:

Terminal window
curl -X POST "https://api.veriglob.com/v1/presentations" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"holder_did": "did:key:z6MksubjectDID...",
"holder_private_key": "holder-private-key",
"credentials": ["v4.public.eyJpc3MiOi..."],
"audience": "did:key:z6MkverifierDID...",
"nonce": "unique-challenge-nonce"
}'

Response:

{
"status": "success",
"message": "Presentation created successfully",
"data": {
"presentation_id": "urn:uuid:3978344f-8596-4c3a-a978-8fcaba3903c6",
"presentation": "v4.public.eyJwcmVz...",
"holder": "did:key:z6MksubjectDID...",
"audience": "did:key:z6MkverifierDID...",
"created_at": "2024-01-15T10:35:00Z"
}
}
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Issuer │ │ Holder │ │ Verifier │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
│ 1. Create DID │ 2. Create DID │
│◄──────────────────┤ │
│ │ │
│ 3. Issue Credential │
│──────────────────►│ │
│ │ │
│ │ 4. Create Presentation
│ │──────────────────►│
│ │ │
│ │ 5. Verify │
│ │◄──────────────────┤
│ │ │