---
title: "Try the Demo"
description: "Learn how to install a walt.id sample wallet and test issuance and presentation against Portal2."
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/mobile-wallet/try-the-demo
generated: 2026-10-01
---
# Try the Demo

This guide shows you how to install a walt.id sample wallet and run receive and present flows against [Portal2](https://portal2.demo.walt.id). The sample apps are white-labelable shells around the Wallet SDK — replace the UI after you have seen the protocol work.

## Prerequisites

Before you begin, ensure you have:

- **A device to run the wallet** — An Android device or emulator for the Compose APK, or an iOS device enrolled in the Compose TestFlight.
- **A second device or browser for Portal2** — Use [portal2.demo.walt.id](https://portal2.demo.walt.id) to create credential offers and presentation requests.
- **Optional: a proximity reader** — For in-person mdoc sharing, see [Proximity Sharing](https://docs.walt.id/community-stack/mobile-wallet/proximity-sharing.md).

---

## Get a Wallet App

| App | Platform | Download |
|---|---|---|
| Compose demo | Android | [APK from Releases](https://github.com/walt-id/waltid-identity/releases)<br>[Firebase](https://appdistribution.firebase.dev/i/823296bbc017f9af)|
| Compose demo | iOS | [TestFlight](https://testflight.apple.com/join/QUyV6wT2) |

To build the Compose demo or the native SwiftUI demo from source, follow the [Mobile Wallet Development Guide](https://github.com/walt-id/waltid-identity/blob/main/docs/mobile-wallet-development.md).

## Receive a Credential

1. Open the wallet app and complete onboarding if prompted.
2. In Portal2, select a credential (for example an mDL) and ensure you are on the **Issue** tab.
3. For a first test, we recommend using the *Pre-authorised code flow* with the *QR code*
4. In the wallet, choose **Receive**, scan the QR code, review issuer and credential metadata, and accept.

🎉 You've received a credential into the sample wallet.

## Present a Credential

1. On the same credential page as the issuance flow, now switch over to the **Verify** tab.
2. For a first test, we recommend using the *QR code* option and leaving the rest as default.
3. In the wallet, choose **Present**, scan the QR code, review the verifier and the claims to share, and submit.
4. Confirm the result in Portal2.

🎉 You've presented a credential back to Portal2.
## Present in Person

In-person [mdoc proximity sharing](https://docs.walt.id/community-stack/mobile-wallet/proximity-sharing.md) starts in the wallet (**Present in person**), not in Portal2. Use a compatible reader on a second device.
## White-label the Shell

Both sample apps keep title and brand colours in a demo-scoped branding object (`WalletDemoBranding` in the Compose app). Edit those tokens, rebuild, and headers, PIN screens, and buttons pick up the new brand.

## Next Steps

- **Receive credentials in your app** — [Receive Credentials](https://docs.walt.id/community-stack/mobile-wallet/receive-credentials.md).
- **Present credentials in your app** — [Present Credentials](https://docs.walt.id/community-stack/mobile-wallet/present-credentials.md).
- **Share an mdoc in person** — [Proximity Sharing](https://docs.walt.id/community-stack/mobile-wallet/proximity-sharing.md).
- **See how Portal2 works** — [Portal2 overview](https://docs.walt.id/community-stack/issuer2/apps/portal2/overview.md).
