Vora Wallet is envisioned as a Wallet as a Service (WaaS) platform built on the Aztec L2 blockchain. It leverages a Private Execution Environment (PXE) run in the cloud by the Wallet Provider, allowing users to securely access their individual wallets using passkeys.
- Overview
- Features
- Technology Stack
- Prerequisites
- Installation
- Configuration
- Running the Project
- Usage
- Contributing
- License
Vora Wallet utilizes the FIDO2 standard for authentication, enabling users to sign in using various methods:
- TouchID on iPhones
- Fingerprint verification on Android devices
- Pattern recognition on Android devices
- Hardware USB keys like YubiKey
- Any other WebAuthn compliant device
The PXE service runs on the server and utilizes user-scoped sessions for enhanced security.
- Secure authentication using passkeys (FIDO2/WebAuthn)
- Cloud-based Private Execution Environment
- User-scoped sessions for improved security
- Compatible with various authentication methods and devices
- NestJS: A progressive Node.js framework for building efficient and scalable server-side applications
- HTMX: A lightweight JavaScript library for AJAX, CSS Transitions, and WebSockets
- Tailwind CSS: A utility-first CSS framework for rapidly building custom user interfaces
- PostgreSQL using Supabase: An open-source Firebase alternative
- SimpleWebAuthn: A WebAuthn library for Node.js and browsers
Before you begin, ensure you have met the following requirements:
- Node.js and npm installed
- Aztec Sandbox version 0.53.0 running locally, or access to a remote sandbox
- A passkey-compatible device (iPhone, Android device) or access to the WebAuthn emulator on Google Chrome
- Git installed on your local machine
-
Clone the repository:
git clone https://github.com/your-username/vora-wallet.git
-
Navigate to the project directory:
cd vora-wallet
-
Install dependencies:
npm install
-
Create a
.env
file in the root directory of the project. -
Add the following environment variables to the
.env
file:DATABASE_HOST= DATABASE_PORT= DATABASE_USERNAME= DATABASE_PASSWORD= DATABASE_NAME= RP_NAME='Vora Wallet' RP_ID='localhost' ORIGIN='http://localhost:3000' PXE_URL= SESSION_SECRET=
-
Fill in the empty fields with your specific configuration details.
Note: If you're using a remote Aztec sandbox, set the
PXE_URL
accordingly.
To start the Vora Wallet application, run the following command:
npm start
The application should now be running and accessible at http://localhost:3000
(or the port specified in your configuration).
For more information on the technologies used in this project, please refer to their official documentation: