> For the complete documentation index, see [llms.txt](https://docs.nfh.global/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nfh.global/product-documentation/products/vc-on-edge/desktop.md).

# Desktop app

OpenCred Desktop is the interactive client for issuing and verifying credentials on macOS, Windows, and Linux. Issuer keys stay on your machine.

> **🧪 Beta.** macOS shows a one-time security prompt on first launch — approve it under **System Settings → Privacy & Security**. Support: [open an issue](https://github.com/nfh-trust-labs/opencred-releases/issues).

## System requirements

| Platform | Minimum version                                                       |
| -------- | --------------------------------------------------------------------- |
| macOS    | 12 (Monterey)+                                                        |
| Windows  | 10+ *(installer not currently shipped — see release page for status)* |
| Linux    | Ubuntu 20.04+                                                         |

Release builds have no runtime dependencies. For building from source: Node.js 20+, pnpm 9+.

## Install

Download the latest installer for your platform from the public release page: [**github.com/nfh-trust-labs/opencred-releases/releases**](https://github.com/nfh-trust-labs/opencred-releases/releases)

* **macOS** — `.dmg` disk image
* **Linux** — `.AppImage` or `.deb`

Each release ships a `SHA256SUMS` file. Verify integrity **before** running the installer:

```bash
# Linux
sha256sum -c SHA256SUMS --ignore-missing
# macOS
shasum -a 256 -c SHA256SUMS --ignore-missing
```

### From source

```bash
git clone <repo-url>
cd opencred
pnpm install
pnpm build
cd apps/desktop
pnpm dev
```

## First launch

If no keys are imported, the app opens the **Onboarding Wizard**. Otherwise it opens to the Home screen with the template gallery and credential history.

## Onboarding wizard — three paths

### Path 1 — I have a Digital Signature Certificate (DSC)

Choose your key source:

| Option                  | Description                                    |
| ----------------------- | ---------------------------------------------- |
| Upload certificate file | Import PFX, PEM, JWK, or PKCS#8 DER files      |
| Hardware token          | Connect PKCS#11 devices (YubiKey, smart cards) |
| OS certificate store    | Use macOS Keychain or Windows CNG certificates |

After import, a **Key Details** card shows: DID, algorithm, fingerprint, and source.

### Path 2 — I want to get a DSC

CA integration for DSC acquisition. *Coming soon.*

### Path 3 — Self-published keys (`did:web`)

Generate keys locally and publish your public key via `did:web` at `.well-known/did.json` on your domain. (Key management — publish, rotate, revoke — is covered in the in-app Key Management guide and the [DeDi key registry model](/product-documentation/products/vc-on-edge/concepts.md#dids-decentralized-identifiers).)

## Issue your first credential

1. Click a template (e.g. **Education Credential**) on the Home screen.
2. Fill in the subject fields (name, degree, institution, date conferred).
3. Select your signing key.
4. Click **Build & Sign**.
5. Export as **JSON**, **PDF**, or **QR code**.

## Then

* [Verifying credentials](/product-documentation/products/vc-on-edge/verifying.md) — verify offline, by QR, PDF, or paste.
* [Docker image & API](/product-documentation/products/vc-on-edge/docker.md) — the same engine, headless, for automation.
* [Security model](/product-documentation/products/vc-on-edge/security.md) — how keys are handled.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.nfh.global/product-documentation/products/vc-on-edge/desktop.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
