Altra is a beginner-friendly, email-based crypto wallet that makes onboarding to cryptocurrency effortless.
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:
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.
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:
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.