---
title: "Overview"
description: "Interactive credential issuance and verification web portal for Issuer2 and Verifier2 by walt.id."
stack: "Community Stack (open source) — version 1.1.1"
stack_version: "1.1.1"
stack_comparison: https://docs.walt.id/community-vs-enterprise.md
canonical_url: https://docs.walt.id/community-stack/verifier2/apps/portal2/overview
generated: 2026-10-01
---
# Overview

**Portal2** is a white-label web app for credential issuance and verification using the walt.id
**Issuer2** and **Verifier2** APIs.

## Features

- **Issue credentials** — Issue a credential from a custom JSON payload or a pre-configured [Issuer2 profile](https://docs.walt.id/community-stack/issuer2/credential-profiles/overview.md) to a wallet via [**OpenID for Verifiable Credential Issuance (OID4VCI)**](https://docs.walt.id/concepts/data-exchange-protocols/openid4vci.md) v1.
- **Verify credentials** — request a credential presentation from a wallet via [**OpenID for Verifiable Presentations (OID4VP)**](https://docs.walt.id/concepts/data-exchange-protocols/openid4vp.md) v1.
- **Simple and Advanced modes** — a guided form for common credential types, or a raw JSON editor for full control over the request payload. Simple mode is the default.
- **Load examples** — payloads can be auto-populated from the Issuer2 and Verifier2 OpenAPI/Swagger specs.
- **Real-time event log** — issuance and verification steps (e.g. `OFFER_RECEIVED`, `CREDENTIAL_ISSUED`) stream in via Server-Sent Events as the wallet interacts with the offer or request.

## Try It Out

- **Live demo:** [portal2.demo.walt.id](https://portal2.demo.walt.id)
- **Local:** included in the [Quick Start](https://docs.walt.id/community-stack/home.md#quick-start) Docker Compose — once running, open [localhost:7105](http://localhost:7105).

## Setup

1. Clone the identity repo

```bash
git clone https://github.com/walt-id/waltid-identity.git && cd waltid-identity
```

2. Running the project

**Option: Local**

1. Change directory

```bash
cd waltid-applications/waltid-web-portal2/
```

2. Configure the dependency services

Create a `.env` file:

```text
NUXT_PUBLIC_ISSUER_BASE=http://localhost:7005
NUXT_PUBLIC_VERIFIER_BASE=http://localhost:7004
NUXT_PUBLIC_WALLET_URL=http://localhost:7101
```

**Note:**

  `NUXT_PUBLIC_WALLET_URL` points at the demo [Web Wallet](https://docs.walt.id/community-stack/wallet/apps/overview.md) — there is no Wallet API v2 app yet. Three optional variables (`NUXT_PUBLIC_VERIFIER_KEY_JWK`, `NUXT_PUBLIC_VERIFIER_X5C`, `NUXT_PUBLIC_VERIFIER_CLIENT_ID`) pre-populate the advanced verification security section; leave them empty unless you need them.

3. Run the development server

```bash
npm install
npm run dev
```

The app is available at [localhost:3000](http://localhost:3000).

**Option: Docker**

1. Build & run the image

```bash
docker build -t waltid/portal2 -f waltid-applications/waltid-web-portal2/Dockerfile .
docker run -p 3000:3000 \
  -e NUXT_PUBLIC_ISSUER_BASE="http://localhost:7005" \
  -e NUXT_PUBLIC_VERIFIER_BASE="http://localhost:7004" \
  -e NUXT_PUBLIC_WALLET_URL="http://localhost:7101" \
  -i -t waltid/portal2
```

2. Access the portal under [localhost:3000](http://localhost:3000/)
