Please describe your proposed solution
Overview
This proposal introduces a developer library designed to simplify the creation of Cardano wallets by integrating Google sign-up functionality for extension-based wallets. This approach enhances the user experience by abstracting the complexities of seed phrase management while maintaining the wallet's non-custodial nature.
Key Features
- Google Sign-Up Integration: Enables seamless Cardano wallet creation using a Google account, streamlining the process for end-users.
- Secure Key Management: Stores private keys securely within the browser's storage to prevent external access and enhance security.
- Automated Seed Phrase Backup: Automates the encryption and backup of the seed phrase in the user's Google Drive for safe and easy recovery.
- Configurable Authentication Options: Allows users to set up a PIN or password initially, used for wallet access and transaction signing.
Detailed Workflow
-
Wallet Download and Initial Setup:
-
Upon downloading the wallet extension, developers can offer users the option to create a wallet using Google sign-up.
-
This feature initiates a Google OAuth flow, where users authenticate and authorize the wallet to perform operations on their behalf.
-
Key Generation and Storage:
-
The library generates a new Cardano wallet, creating a private key.
-
This private key is securely stored in the browser's local storage, ensuring isolation from the web and other applications.
-
Seed Phrase Management:
-
Alongside the wallet, a seed phrase is generated.
-
This phrase is encrypted using AES-256 algorithm combined with the user’s Google account details.
-
The encrypted seed phrase is stored in the user’s Google Drive, serving as a secure backup for wallet recovery.
-
Setting Up Authentication:
-
Developers can prompt users to set up a PIN or password after the wallet creation.
-
This authentication measure is essential for accessing the wallet or signing transactions.
-
Transaction Signing and Authentication:
-
When executing a transaction, the user can authenticate the action using their preferred method configured during the initial setup.
-
The library supports several authentication mechanisms:
-
PIN/Password Authentication: Users can sign transactions using their established PIN or password.
-
OTP Authentication: An OTP can be sent to the user’s mobile or email to authenticate the transaction.
-
Passwordless Signing: For a frictionless experience, developers can enable passwordless signing, similar to MetaMask's functionality.
-
Many more (Developers can customize as they like)
-
Wallet Recovery:
-
Google Authentication: To initiate the recovery process, the user must first sign in with their Google account to prove their identity. This step ensures that the recovery process is secure and that only the rightful owner can access the encrypted seed phrase.
-
Seed Phrase Drag and Drop: The user retrieves the encrypted seed phrase from their Google Drive and drags and drops it into the wallet interface. This action initiates the decryption process.
-
Decryption and Wallet Unlock: The library uses the user’s Google account details to decrypt the seed phrase. Once decrypted, the seed phrase is used to unlock and restore the wallet, including the private key, thus ensuring full recovery of the user's assets.
Benefits
- Developer-Friendly: Provides a straightforward way for developers to implement wallet creation in their applications, enhancing user experience with familiar login mechanisms.
- Customizable Authentication: Supports a range of authentication methods, allowing developers to tailor the security level according to user preferences.
- Non-Custodial Integrity: Despite simplifying the user experience, the library ensures that the wallet remains non-custodial, with users retaining full control over their keys and assets.
Conclusion
This library will mark a significant advancement in making Cardano wallet integration simple and accessible for developers while ensuring robust security features. By leveraging familiar user interfaces and automating critical security procedures, this tool lowers the barrier for users and developers alike in the cardano ecosystem.