This project is a simple implementation of a keyless login system. It is a proof of concept and is not intended to be used in a production environment.
- Option A: Sign Up
- Option B: Log In
- Option C: Forgot Password / Recovery
-
Generate or Import Master Key
- Generate new wallet/key pair
- Import existing key (optional)
-
Profile Setup
- Name, email (optional), etc.
- Link to newly created/imported key
-
View Accounts
- Lists all child keys (none by default)
- Option to create or import more keys
- Generate Shared Key or Shared Master Key
- Possibly use BLS or threshold cryptography
- Generate Child Key
- Derive child from master
- (Optional) “Prove Relationship” to aggregator
- Import Wallets / Key Pairs
- Convert or merge external keys
- View Key Details / Revoke Access
- Manage permissions or revoke child keys
- Enter Basic Credentials (app password, username, or passkey)
- Connect to:
- DApps (via Web3)
- SSO (Google, others)
- NFC passkey
- View Past Transactions / Link
- Once logged in, see transaction history
- Option to link new services or blockchains
- Prove Relationship
- Show that a child key belongs to a master key using BLS or zero-knowledge
- Transmit Proof
- NFC, API, or SSO channel
- Verify Relationship
- On-chain (Blockchain)
- Off-chain aggregator (API)
- SSO provider
- Recovery Options:
- Use mnemonic or seed phrase
- Use BLS threshold recovery with trusted parties
- Reset or Regenerate user credentials, if possible
- Key Exposure: The example code prints private keys for demonstration. In a real‐world application, never log or expose private keys.
- Production Readiness: This demonstration does not include secure storage, hardware wallet integration, or comprehensive error handling. For a production environment, additional safeguards are required.
- Entropy: When creating a new key (
NewKey()
), the code depends oncrypto.GenerateKey()
from Go’s standard library, which is sufficiently secure for most use cases but should still be handled carefully.
This project was developed during the Encode Expander Bootcamp (Q1 2025), focusing on Polyhedra's Expander proof generation backend. Contributors include (Discord usernames):
- soumyadeep_02 (Roy)
- dgallegos. (Diego)
- raadhhaseeb (Haseeb)
All files are provided under the terms of the MIT License. See the LICENSE file for details.
Disclaimer: Use this repository at your own risk. While it may serve as a valuable learning tool, it is not audited or officially supported for handling significant funds or sensitive operations. AI was used to generate portions of the code.