Quick Start
This guide walks you through the basic workflow of creating a DID, issuing a credential, and verifying it.
Prerequisites
Section titled “Prerequisites”- An API key (see Authentication)
- A tool for making HTTP requests (curl, Postman, or your preferred HTTP client)
Step 1: Create a DID
Section titled “Step 1: Create a DID”Create a new decentralized identifier with an Ed25519 keypair:
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" }}Step 2: Issue a Verifiable Credential
Section titled “Step 2: Issue a Verifiable Credential”Issue a credential using your DID as the issuer:
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" }}Step 3: Verify the Credential
Section titled “Step 3: Verify the Credential”Verify the credential signature and check its status:
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 }}Step 4: Create a Presentation
Section titled “Step 4: Create a Presentation”Create a verifiable presentation to share credentials with a verifier:
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" }}Complete Workflow Diagram
Section titled “Complete Workflow Diagram”┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ Issuer │ │ Holder │ │ Verifier │└──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ 1. Create DID │ 2. Create DID │ │◄──────────────────┤ │ │ │ │ │ 3. Issue Credential │ │──────────────────►│ │ │ │ │ │ │ 4. Create Presentation │ │──────────────────►│ │ │ │ │ │ 5. Verify │ │ │◄──────────────────┤ │ │ │Next Steps
Section titled “Next Steps”- DID Operations Reference - Learn more about DID management
- Credentials Reference - Explore credential options
- Presentations Reference - Advanced presentation features
- Error Handling - Handle errors gracefully