Skip to main content

Quickstart

This guide gets the mwen.io issuer running locally and issues a test credential in under ten minutes. It uses self-hosted mode with the default development configuration.

For a full walkthrough of every setup step, see Getting Started. For SaaS multi-tenant deployment, see SaaS Onboarding.


Prerequisites

  • Node.js 20+
  • Docker (for PostgreSQL)
  • mkcert + Caddy (local HTTPS — NextAuth requires it)
  • The mwen.io browser extension installed

Step 1 — Clone and install

git clone https://github.com/mwenio/mwen.io.git
cd mwen.io
npm install

Step 2 — Start the database

cd apps/issuer
docker-compose up -d
npm run db:migrate
npm run db:seed

Step 3 — Start the issuer

In one terminal:

npm run dev:self-hosted

In a second terminal:

npm run proxy

The issuer is now available at https://localhost:3002.


Step 4 — Register as operator

  1. Open https://localhost:3002/login with the mwen.io extension installed.
  2. Click Sign in with mwen.io.
  3. Because no operator exists yet, you are redirected to /register. Complete the form.

You now have OWNER access on the default tenant.


Step 5 — Issue a credential

  1. In the admin portal, go to Credentials → New Offer.
  2. Select a schema (e.g. employee-identity-v1).
  3. Enter the subject's details and click Create Offer.
  4. Scan the QR code with the mwen.io extension, or open the offer link in a browser with the extension installed.
  5. Accept the offer in the wallet.

The credential is now in the wallet and can be presented to any relying party app.


Next steps