PyDentity Wallet is a Python-based Progressive Web Application (PWA) designed to provide mobile wallet functionality for ACA-Py (Aries Cloud Agent Python). It enables seamless access to mobile wallet features and browser APIs, offering a frontend for managing multi-tenant ACA-Py instances.
- Multi-Tenant ACA-Py Support: Connects to ACA-Py instances and allows users to manage subwallets.
- Mobile Device Binding: Securely stores wallet data in an ecrypted remote session bound to a mobile device.
- Cross-Platform Compatibility: Works on iOS and Android via browser-based access.
- Open Standards Compliance: Utilizes W3C, IETF, DIF, and other open standards whenever possible.
PyDentity Wallet is currently in the Labs stage under the OpenWallet Foundation. The project is actively developed as an open-source initiative to enhance the usability of decentralized identity solutions.
To get started quickly, you can leverage the development agent available and an ngrok tunnel for the server.
- Free NGROK account and auth token
- Docker installed
Clone this repository, then create your .env file:
git clone git@github.com:openwallet-foundation-labs/PyDentity-Wallet.git
cd PyDentity-Wallet
cp .env.example .env
Update the .env file with your NGROK token.
Build the image and run the server:
docker build --tag pydentity-wallet --file docker/Dockerfile .
docker run --env-file .env pydentity-wallet
You should see a QR code displayed in the console. This is your ngrok endpoint. Scan this with a mobile phone to access the wallet app.
- Upon your first visit to the app domain, you will be prompted to create a webauthn login credential. Fingerprint binding is our recommended method.
- When you visit the domain successively, you will be promtped to login with your webauthn login credential.
- If you clear the page data in your browser, you will permanently loose access to your instance, beware.
- Email recovery might be a feature made available in the future.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch.
- Commit changes and push to your fork.
- Submit a pull request.
PyDentity Wallet is open-source and licensed under the Apache 2.0 License.
This project aligns with the OpenWallet Foundation (OWF) mission by implementing open wallet standards and enhancing an existing OWF impact project. It fosters interoperability and accessibility in the decentralized identity ecosystem.
For inquiries and contributions, reach out via the repository’s issue tracker or join our discussions on the OWF community channels.