project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Altra

Altra is a beginner-friendly, email-based crypto wallet that makes onboarding to cryptocurrency effortless.

Altra

Created At

ETHGlobal Bangkok

Winner of

Nillion - Nillion Storage and Retrieval Prize

Project Description

Altra is an innovative, user-friendly crypto wallet designed to onboard individuals into the world of cryptocurrency with minimal barriers. By using just an email address, Altra simplifies wallet creation, making it accessible to beginners and eliminating the complexities associated with traditional crypto wallets. This project focuses on both user convenience and robust security by employing cutting-edge cryptographic techniques.

Key Features:

  1. Email-Based Wallet Creation Users can create a crypto wallet in seconds by signing in with their email address. There’s no need for browser extensions, downloads, or deep technical knowledge, making Altra perfect for first-time crypto users.

  2. Private Key Management with Shamir's Secret Sharing (SSS) Altra employs the Shamir's Secret Sharing (SSS) cryptographic algorithm to securely manage private keys. The private key is split into three shares to eliminate any single point of failure:

  • Device Share: Stored locally on the user’s device.
  • Auth Share: Stored on Altra’s secure servers.
  • Recovery Share: Stored on Nillion’s decentralized Secret Storage network for added resilience and privacy.

This architecture ensures that no single entity, including Altra, has full access to the private key. Accessing the wallet requires user authentication, providing a balance of security and usability.

  1. Protected Iframe for Key Generation The key generation process happens in a protected iframe, adding an extra layer of security to ensure that sensitive cryptographic operations are isolated from potential vulnerabilities.

  2. No Single Point of Failure The distributed storage of private key shares across multiple locations—user device, Altra server, and Nillion network—eliminates single points of failure. This design reduces risks of hacks, breaches, or data loss.

  3. Blockchain Agnostic Altra supports multiple blockchain networks, allowing users to switch between networks seamlessly through the dashboard. This makes it versatile for users exploring different ecosystems, such as Ethereum, Base, or other compatible blockchains.

6 Integrated Transaction Explorer Altra integrates Blockscout to provide a comprehensive view of transaction history. Users can track their wallet activities directly from the app, ensuring transparency and easy monitoring of funds.

  1. User-Friendly Features
  • Send and Receive Tokens: Intuitive options for sending and receiving tokens across supported blockchain networks.
  • Network Switching: Effortlessly switch between blockchain networks to explore different ecosystems.
  • Private Key Export: Users have the option to export their private key securely after verifying their email, ensuring they can transfer their wallet to another non-custodial solution if desired. Tooltips and Guided Onboarding: Each step in the wallet is accompanied by tooltips, ensuring even beginners can navigate the platform easily.

How it's Made

Building Altra involved carefully selecting technologies to ensure security, scalability, and a seamless user experience. The process was centered around making the cryptographic aspects of wallet management as easy and safe as possible for users, while also utilizing modern web and blockchain tools. Below are the detailed technical aspects of how Altra was built, what technologies were used, and how they fit together.

  1. Core Technologies Used:

A) Frontend: React.js: Altra’s frontend is built using React.js, a popular JavaScript library for creating interactive user interfaces. React's component-based architecture allowed us to build modular, reusable UI elements, making development more efficient and helping maintain a smooth user experience. React also ensures a responsive, dynamic interface, which is critical for a seamless crypto wallet experience.

Redux: State management in Altra is handled by Redux, which allows us to manage the user’s session, wallet data, and transactions centrally. This is crucial for maintaining a consistent user experience across different screens and features, ensuring that the wallet’s state is updated correctly as users interact with it.

Material UI: We used Material UI for the design and structure of the app. It provided a set of pre-built, customizable components that allowed us to rapidly design a modern and consistent interface with minimal effort, improving the overall user experience.

B) Backend: Node.js + Express: The backend of Altra is built on Node.js using the Express.js framework. Express handles the API requests for wallet creation, key generation, user authentication, and other actions. The backend is built to be lightweight and scalable, handling real-time user interactions and blockchain transactions efficiently.

MongoDB: For data storage, we use MongoDB, a NoSQL database. It stores user data, encrypted wallet key parts, and other metadata. MongoDB’s flexibility makes it well-suited for scaling the application as user numbers increase, while also providing quick and easy data retrieval when needed.

  1. Key Generation & Encryption: Public/Private Key Pair Generation: A core feature of Altra is its email-based wallet creation system, where the private/public key pair is generated in a secure iframe. This ensures that the key generation process is protected from the outside environment, preventing unauthorized access. The key pair is encrypted using AES-256, a secure encryption algorithm, to protect the private key from being exposed at any point.

Shamir's Secret Sharing (SSS): After generating the key pair, the private key is split using the Shamir’s Secret Sharing (SSS) algorithm, which divides the private key into three separate shares:

  • Device Share: Stored securely on the user’s device.
  • Authentication Share: Stored on the Altra server, encrypted.
  • Recovery Share: This third share is further encrypted and stored on the Nillion network with a specific user seed. Nillion provides an additional layer of security by decentralizing the storage of the recovery share.
  1. Security & Authentication: JWT (JSON Web Tokens): For user authentication and session management, we use JWT tokens. When users log in or perform any sensitive actions, the server generates a JWT, which is then used to authenticate the user's requests securely, ensuring that only authorized users can access or modify wallet data.

AES-256 Encryption: All wallet-related data (including the encrypted key shares) are stored using AES-256 encryption, ensuring that even if the data is compromised, it remains unreadable without the decryption key.

  1. Blockchain Interaction: Ether.js: Altra interacts with the Ethereum blockchain using Ether.js, a JavaScript library that simplifies blockchain interactions. Ether.js is used to send and receive transactions, check balances, and interact with smart contracts. It enables the wallet to work with decentralized applications (dApps) and other blockchain services.

  2. Partner Technologies: Nillion Network: We chose to integrate the Nillion network for storing the recovery share. Nillion is a decentralized network that offers a high level of security and privacy for users' data. By leveraging Nillion, we ensure that the recovery share is stored in a decentralized way, reducing reliance on a single centralized provider and increasing resilience against attacks.

background image mobile

Join the mailing list

Get the latest news and updates