Skip to content

Vora Wallet is a Wallet as a Service (WaaS) platform built on the Aztec L2 blockchain where the Private Execution Environment (PXE) exists in the cloud

Notifications You must be signed in to change notification settings

ofemeteng/vora-wallet

Repository files navigation

Vora Wallet

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.

Vora Wallet

Table of Contents

Overview

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.

Features

  • Secure authentication using passkeys (FIDO2/WebAuthn)
  • Cloud-based Private Execution Environment
  • User-scoped sessions for improved security
  • Compatible with various authentication methods and devices

Receive Flow

Technology Stack

  • 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

Prerequisites

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

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/vora-wallet.git
    
  2. Navigate to the project directory:

    cd vora-wallet
    
  3. Install dependencies:

    npm install
    

Configuration

  1. Create a .env file in the root directory of the project.

  2. 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=
    
  3. Fill in the empty fields with your specific configuration details.

    Note: If you're using a remote Aztec sandbox, set the PXE_URL accordingly.

Running the Project

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:

About

Vora Wallet is a Wallet as a Service (WaaS) platform built on the Aztec L2 blockchain where the Private Execution Environment (PXE) exists in the cloud

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published