This mobile utils library project provides common wallet UI components and screens out of the box, allowing native developers to skip building standard wallet functionality and focus more on unique, value-added features for their mobile applications.
Add the following to your build.gradle.kts:
dependencies {
implementation("com.michaeltchuang.algokit.walletsdk:wallet-sdk-ui:3.202601.2")
implementation("com.michaeltchuang.algokit.walletsdk:wallet-sdk-core:3.202601.2")
}Note: Check Maven Central for the latest versions: wallet-sdk-ui | wallet-sdk-core
---
title: AlgoKit Wallet SDK High Level Overview
---
graph TD
subgraph "Algorand Apps"
App1["App 1"]
App2["App 2"]
end
subgraph wallet["AlgoKit Wallet SDK"]
SDK1["Wallet SDK UI<br/>(Embedded Wallet UI)"]
SDK2["Wallet SDK Core<br/>(Headless Wallet Engine)"]
end
subgraph "Algorand SDKs"
Core["AlgoKit-Core Rust SDK"]
xHD["Algo xHD Kotlin/Swift SDK"]
JavaSDK["Algo Java SDK"]
GoSDK["Algo Go SDK"]
end
App1 <--> wallet
App2 <--> wallet
SDK1 <--> SDK2
SDK2 <--> Core
SDK2 <--> xHD
SDK2 <--> JavaSDK
SDK2 <--> GoSDK
The demo apps (Android & iOS) in this repo demonstrate wallet-sdk library usage through a simplified "Pera-lite" sample wallet application. Current and planned features include:
- Create and recover accounts (Algo25, Universal HD, Falcon24)
- Theme customization
- Network switching between mainnet/testnet (code hasn't been audited, so use mainnet at your own risk)
- QR code scanning for account imports and keyreg transactions
- Algo-only experience for now (to swap memecoins...please use Pera app, Haystack app, etc)
- Account detail screen
- Passphrase management
- Localization
AlgoKit Wallet SDK currently uses UI theming inspired by Pera Android as a placeholder until official Algorand Foundation branding guidelines are available.
---
config:
theme: 'neutral'
---
timeline
title AlgoKit Wallet SDK tentative roadmap
section Completed ✅
2025Q3 : ✅ Create sample KMP app ("Pera Lite")
: ✅ Onboarding - Create Algo25/HD/Falcon24 wallet and account flow
: ✅ Onboarding - Recover Algo25/Falcon24 account flow
: ✅ Deeplink - Import Algo25/Falcon24 account using QR code flow
: ✅ Settings - Theme picker and network switcher flow
: ✅ Onboarding - Embedded and external webview flow
: ✅ Account Details - View passphrase flow
: ✅ Onboarding - Encrypt secret keys in DB
: ✅ GitOps - Setup Maven Central for library releases
: ✅ Transaction - Sign KeyReg online/offline flow with QR code
2025Q4 : ✅ Transaction - Send Algo using account detail or QR code flows (between accounts)
: ✅ Account Details - Add copy and show address button
: ✅ Account Details - Add testnet dispenser and transaction history links
: ✅ GitOps - Setup stores for demo Android/iOS app releases
: ✅ GitOps - CLA agreement bot
: ✅ Onboarding - Add Watch accounts support
: ✅ Onboarding - Recover HD account flow
: ✅ Settings - Localization (English, Italian, Hindi)
: ✅ Testing - Setup unit test coverage and screenshot testing foundation infrastructure
: ✅ Onboarding - ECC Passkeys & Testnet Liquid Auth (Android)
section In Progress 🔄
2026Q1 : ✅ Onboarding - ECC Passkeys & Liquid Auth (iOS)
: ✅ Transaction - Integrate new algokit-core transact rust library (iOS)
: 🔄 Onboarding - Upgrade Liquid Auth service to support PQ accounts (Web)
: 🔄 Onboarding - Re-enable Use-Wallet Liquid Auth functionality (Testnet)
: Onboarding - Add Liquid Auth Integration for xGov Website
: Onboarding - Integrate new algokit-core account rust library (iOS/Android)
: Onboarding - Mainnet Liquid Auth (Android/iOS)
: Transaction - Opt-In / Opt-Out USDC QR flow
: Transaction - Send USDC using QR code flow (between accounts)
: Account Details - Send USDC in account detail (between accounts)
section Future
2026Q2 : GitOps - Fix dependencies for new 16KB Android requirement
: Onboarding - Rekey flow
: Onboarding - Add Use Wallet Liquid Auth Integration for Lora (Dispenser)
: Onboarding - PQ Passkeys
: Onboarding - Multi-sig flow
: Onboarding - Ledger flow
: Android - Wallet SDK as a background service integration
: Add In Landscape (Tablet/Desktop) UI Support
: Settings - Localization (Chinese, Spanish, French, Portuguese, Japanese, Korean, German)
: TBD
2026Q3
: Research - React Native sample app that can use wallet-sdk (through bridging)
: Onboarding - Decentralized Identity
: Account Details - Asset Inbox
: Account Details - Swap
: Onboarding - Fun app animations
: TBD
This repo has the following modules:
- composeDemoApp: A Compose Multiplatform sample wallet app that demonstrates
wallet-sdkusage. - iosDemoApp: The iOS app for
composeSampleApp. Open this module in Xcode if needed. - wallet-sdk-core: The AlgoKit Wallet SDK core module - a headless wallet utils library built with Kotlin Multiplatform. It provides foundational wallet functionality and is built on top of AlgoKit-Core SDK, Algo xHD Swift SDK, Algo xHD Kotlin SDK, Algo Java SDK, and Algo Go SDK.
- wallet-sdk-ui: The AlgoKit Wallet SDK UI module - an embedded wallet utils library built with Compose Multiplatform. This module extends wallet-sdk-core and provides ready-to-use UI components for developers who want an integrated wallet interface in their applications.
This project is developed using Android Studio (stable version) and the Kotlin Multiplatform Plugin. As a mobile development project, it is primarily developed on macOS, support for Windows and Linux is quite limited. We also follow the KMP compatibility guide.
Record/Generate Reference Images:
./gradlew :wallet-sdk-ui:executeScreenshotTests -PrecordThis command will run all screenshot tests and save the captured screenshots as reference images.
./gradlew :wallet-sdk-ui:executeScreenshotTests -Pandroid.testInstrumentationRunnerArguments.class=com.michaeltchuang.walletsdk.ui.settings.screens.PasskeysScreenshotTest -PrecordThis command will run screenshot tests for a single class and save the captured screenshots as reference images.
Verify Screenshots:
./gradlew :wallet-sdk-ui:executeScreenshotTestsThis command will run the tests and compare current screenshots against the previously recorded reference images. If there are differences, the test will fail and generate a comparison report.
Screenshot Default Storage Location:
wallet-sdk-ui/screenshots/debug/*.png
Note: Screenshot tests require an Android device or emulator to be connected.
Interactive Screenshot Viewer:
View all Wallet SDK screens with an interactive gallery that allows you to filter by locale (English, Hindi, Italian), theme (Dark/Light), and view various user flows. Open Screenshot Gallery →
---
title: AlgoKitDatabase
---
erDiagram
custom_account_info {
String algo_address PK
String custom_name
Int order_index
Boolean is_backed_up
}
custom_hd_seed_info {
Int seed_id PK,FK
String entropy_custom_name
Int order_index
Boolean is_backed_up
}
algo_25 {
String algo_address PK
ByteArray encrypted_secret_key
}
ledger_ble {
String algo_address PK
String device_mac_address
Int account_index_in_ledger
String bluetooth_name
}
no_auth {
String algo_address PK
}
hd_seeds {
Int seed_id PK
ByteArray encrypted_entropy UK
ByteArray encrypted_seed UK
}
falcon_24 {
String algo_address PK
Int seed_id FK
ByteArray public_key UK
ByteArray encrypted_secret_key
}
hd_keys {
String algo_address PK
ByteArray public_key UK
ByteArray encrypted_private_key
Int seed_id FK
Int account
Int change
Int key_index
Int derivation_type
}
sites {
Long id PK
String url UK
String name
}
passkey_table {
String credential_id PK
Long site_id FK
String algo_address
String user_id
String user_name
String user_display_name
Long last_used_time_ms
}
custom_hd_seed_info }|--|| hd_seeds : link
hd_keys }|--|| hd_seeds : link
falcon_24 }|--|| hd_seeds : link
passkey_table }|--|| sites : link
Development happens in this open source repo for the AlgoKit Wallet SDK. Algorand community is always welcome to contribute by reviewing or opening new pull requests.
This project is tested with BrowserStack (open source license).
For QR code importing, you can use a tool like Cyber Chef to get QR codes online
{
"mnemonic": "define claw hungry wave umbrella boost blind never muscle also grab gaze fluid echo predict describe turkey unaware dash phone urge crunch eyebrow abstract team"
}algorand://ANUR5SYMURBFD3ELITINYNTHVAKKBCWJ7LGHJRPMQM3KQG25ENMIHYEBNY?type=keyreg
algorand://7N54HZSGBRQF7FW6YNC6F5H42AT5OXN3F5OQDAXF6H6PDFHNXIEBCJFHOY?amount=1000000¬e=1_ALGO_Transfer