---
title: "Getting Started"
description: "Learn how to embed an edge wallet in your Android or iOS app with the walt.id Wallet SDK."
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/getting-started
generated: 2026-10-01
---
# Getting Started

The walt.id **Wallet SDK** is an open-source holder library for building digital ID wallets on Android and iOS. It implements [OID4VCI 1.0](https://docs.walt.id/concepts/data-exchange-protocols/openid4vci.md) for receiving credentials and [OID4VP 1.0](https://docs.walt.id/concepts/data-exchange-protocols/openid4vp.md) with [DCQL](https://docs.walt.id/concepts/data-exchange-protocols/dcql.md) for presenting them. Supported formats include [SD-JWT VC (IETF)](https://docs.walt.id/concepts/digital-credentials/sd-jwt-vc.md), [W3C VC](https://docs.walt.id/concepts/digital-credentials/verifiable-credentials-w3c.md), and [ISO 18013-5 mDL](https://docs.walt.id/concepts/digital-credentials/mdoc-mdl-iso.md). You own the screens, branding, and consent UX; the SDK owns protocol sessions, matching, keys, and storage.

**Note:**

Need a custodial HTTP wallet instead of an on-device SDK? Use [Wallet API v2](https://docs.walt.id/community-stack/wallet2/getting-started.md).

## Supported Standards

|                          |                                                                                                                                                                                                                                                              |
|:-------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Credential Formats:**  | [SD-JWT VC (IETF)](https://docs.walt.id/concepts/digital-credentials/sd-jwt-vc.md), [W3C VC (v1.1+, v2.0)](https://docs.walt.id/concepts/digital-credentials/verifiable-credentials-w3c.md), [ISO 18013-5 mDL](https://docs.walt.id/concepts/digital-credentials/mdoc-mdl-iso.md) |
| **Credential Exchange:** | [OID4VCI](https://docs.walt.id/concepts/data-exchange-protocols/openid4vci.md) 1.0, [OID4VP](https://docs.walt.id/concepts/data-exchange-protocols/openid4vp.md) 1.0 ([DCQL](https://docs.walt.id/concepts/data-exchange-protocols/dcql.md)), [Digital Credentials API](https://docs.walt.id/concepts/data-exchange-protocols/dc-api.md), [ISO/IEC 18013-5 proximity](https://docs.walt.id/community-stack/mobile-wallet/proximity-sharing.md) |
| **Signing Algorithms:**  | secp256r1 (P-256) for holder identity keys |

## Setup

If you are new to the SDK, the **sample apps** are the fastest way to see a full receive and present flow. Test against walt.id Issuer2 and Verifier2 at [portal2.demo.walt.id](https://portal2.demo.walt.id).

**Note:**

Always test receive and present through [portal2.demo.walt.id](https://portal2.demo.walt.id). Do not send testers to standalone Issuer2 or Verifier2 URLs.

- [Try the Demo](https://docs.walt.id/community-stack/mobile-wallet/try-the-demo.md) — Install a sample wallet and run issuance and presentation against Portal2. _(Recommended for first-time users)_
- [Integrate the SDK](https://docs.walt.id/community-stack/mobile-wallet/integrate-the-sdk.md) — Create a wallet in Kotlin or Swift.
- [Android SDK reference](https://sdk.docs.walt.id) and [iOS SDK reference](https://sdk-ios.docs.walt.id) — Generated API docs for the latest release.
- [Mobile Wallet Development Guide](https://github.com/walt-id/waltid-identity/blob/main/docs/mobile-wallet-development.md) — Build the SDKs and sample apps from source.

## Core Concepts

### Headless Holder Stack

The SDK is a library, not a white-label UI. PIN lock, brand colours, QR rendering, and permission prompts belong in your app. Session state, credential matching, reader trust, and encrypted storage stay in the SDK. See [Architecture](https://docs.walt.id/community-stack/mobile-wallet/architecture.md) for how the mobile facade, Swift WalletSDK, sample apps, and Wallet API v2 share one core.

### Isolated Sessions

Issuance and presentation are exposed as isolated steps so you can show issuer, verifier, and claim metadata before the holder accepts. Start or preview a session, collect consent in your UI, then continue, submit, or reject.

### Signing Identity

A **signing identity** binds a P-256 holder key to a `did:jwk`. Call `signingIdentity.initialize()` before flows that need holder keys. Backup is optional and off by default — see [Keys and Storage](https://docs.walt.id/community-stack/mobile-wallet/keys-and-storage.md) and [Backup and Recovery](https://docs.walt.id/community-stack/mobile-wallet/backup-and-recovery.md).

## Features

- [Receive Credentials](https://docs.walt.id/community-stack/mobile-wallet/receive-credentials.md) — Claim credentials over OID4VCI 1.0 (pre-authorized code, authorization code, deferred issuance).
- [Present Credentials](https://docs.walt.id/community-stack/mobile-wallet/present-credentials.md) — Share credentials over OID4VP 1.0 with DCQL, signed requests, encrypted responses, and transaction data.
- [Proximity Sharing](https://docs.walt.id/community-stack/mobile-wallet/proximity-sharing.md) — Present mdocs in person over QR, NFC, Bluetooth, or Wi-Fi Aware.
- [Digital Credentials API](https://docs.walt.id/community-stack/mobile-wallet/digital-credentials-api.md) — Register with the OS credential picker. Android currently supports OID4VCI, OID4VP, and ISO 18013-7; iOS currently supports ISO 18013-7.
- [Keys and Storage](https://docs.walt.id/community-stack/mobile-wallet/keys-and-storage.md) — Encrypted on-device storage and platform-protected keys.
- [Backup and Recovery](https://docs.walt.id/community-stack/mobile-wallet/backup-and-recovery.md) — Create, back up, and restore the signing identity.

## Start Building

Choose the flow that matches your use case:

- [Receive a credential](https://docs.walt.id/community-stack/mobile-wallet/receive-credentials.md) — Claim what an issuer offers.
- [Present a credential](https://docs.walt.id/community-stack/mobile-wallet/present-credentials.md) — Share it with a verifier.
- [Present in person](https://docs.walt.id/community-stack/mobile-wallet/proximity-sharing.md) — Share an mdoc with a nearby reader.
