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
- Open
https://localhost:3002/loginwith the mwen.io extension installed. - Click Sign in with mwen.io.
- 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
- In the admin portal, go to Credentials → New Offer.
- Select a schema (e.g.
employee-identity-v1). - Enter the subject's details and click Create Offer.
- Scan the QR code with the mwen.io extension, or open the offer link in a browser with the extension installed.
- Accept the offer in the wallet.
The credential is now in the wallet and can be presented to any relying party app.
Next steps
- Deployment Modes — self-hosted vs SaaS comparison
- Configuration — all environment variables for production
- Credential Schemas — the 11 built-in schema templates
- API Key Management — integrating issuance into your existing systems