Skip to main content

Issue Your First Credential

You've started EUDIPLOโ€”now let's issue your first credential. This guide walks you through creating a credential configuration, setting up issuance, and sending a credential offer to a wallet.

Prerequisites

Complete the Quick Start guide first. You should have EUDIPLO running with both backend and client:

Understanding the Setupโ€‹

EUDIPLO uses a hierarchical structure:

ConceptDescription
Root AccountThe default admin account. Used to create and manage tenants.
TenantAn isolated workspace with its own keys, credentials, and configurations.
Keys & CertificatesCryptographic keys for signing credentials. Auto-generated on first use.
Credential ConfigDefines what a credential looks like (claims, format, display).
Issuance ConfigGroups credential configs and defines issuer metadata.

Step 1: Login as Rootโ€‹

  1. Open the Web Client at http://localhost:4200
  2. Enter:
    • EUDIPLO Instance: http://localhost:3000
    • Client ID: Your configured AUTH_CLIENT_ID
    • Client Secret: Your configured AUTH_CLIENT_SECRET
  3. Click Login
Credentials are REQUIRED

You must set these environment variables before starting the service:

AUTH_CLIENT_ID=your-client-id
AUTH_CLIENT_SECRET=your-client-secret
MASTER_SECRET=your-32-character-minimum-secret

The application will fail to start without these values. See Authentication for details.

Step 2: Create Your First Tenantโ€‹

Tenants provide isolationโ€”each tenant has its own keys, credentials, and configurations.

Demo Configuration Available

EUDIPLO includes demo configuration files in assets/config/demo/ that can be automatically imported on startup. Set CONFIG_IMPORT_MODE=create and CONFIG_FOLDER to the config directory to import keys, certificates, credential configs, and presentation configs automatically. This is useful for development and testing.

  1. Navigate to Tenants in the sidebar
  2. Click + Create Tenant
  3. Fill in:
    • ID: my-org (unique identifier for the tenant)
    • Name: My Organization
    • Description: Optional description
    • Roles: Select all roles for a full setup
  4. Click Save
  5. A dialog appears showing the client credentials for the new tenant:
    • Save the secret now! It won't be shown again.
    • Use the Copy buttons to save the credentials
    • Click Login as this Client to switch to the new tenant immediately
Save your credentials!

Client secrets are securely hashed and cannot be retrieved later. If you lose the secret, use the Rotate Secret button in the client list to generate a new one.

Step 3: Create a Credential Configurationโ€‹

Now define what your credential will contain and how it looks.

  1. Navigate to Issuance โ†’ Credential Configs in the sidebar
  2. Click + Create
  3. Click Load Template (top-right corner) and select a template like PID (SD-JWT VC)
Templates save time

Templates provide pre-configured credential types with proper claims, display settings, and formats. They're the fastest way to get started!

  1. Review and adjust the configuration as needed
  2. Click Save

Step 4: Configure Issuance Settingsโ€‹

The issuance configuration defines how your issuer presents itself to wallets.

  1. Navigate to Issuance โ†’ Issuance Config
  2. Configure:
    • Display Name: My Issuer
    • DPoP Required: Disabled โš ๏ธ
    • Batch Size: 1
  3. Click Save
DPoP Compatibility

Keep DPoP Required disabled for maximum wallet compatibility. Many wallets don't support DPoP yet. You can enable it later for additional security once you've verified your target wallets support it.

Step 5: Issue Your First Credential! ๐ŸŽ‰โ€‹

Now create a credential offer and send it to a wallet.

  1. Navigate to Issuance โ†’ Sessions

  2. Click + New Offer

  3. Configure the offer:

    • Credential: Select your credential configuration
    • Flow: Select Pre-authorized (simplest flow, no user authentication)
  4. Enter the claim values:

    {
    "given_name": "John",
    "family_name": "Doe",
    "birthdate": "1990-01-15"
    }
  5. Click Create Offer

  6. A QR code appearsโ€”scan it with a compatible wallet!

Testing with a wallet

See Wallet Compatibility for a list of wallets that work with EUDIPLO. The EUDI Reference Wallet and Paradym Wallet are good options for testing.

What's Next?โ€‹

You've successfully issued your first credential! Continue to: