Passman represents the next evolution in digital security. By leveraging the Sui blockchain, Walrus decentralized storage, and Seal encryption, Passman offers a password management solution that is truly decentralized, secure, and user-friendly. Say goodbye to centralized data breaches and hello to complete ownership of your digital identity.
Passman is built upon a powerful stack of decentralized technologies designed to work seamlessly together:
The backbone of Passman. Sui provides the immutable ledger for your vault's metadata and access controls.
- Ownership: You own your data on-chain.
- Speed: Instant finality ensuring your updates are saved immediately.
- Security: Battle-tested consensus protecting your access rights.
Web3 security with a Web2 experience.
- Seamless Onboarding: Login with your existing Google account. No need to manage complex seed phrases or private keys.
- Privacy: Leverages zero-knowledge proofs to verify your identity without revealing sensitive information on-chain.
- Non-Custodial: Even though you use Google to login, your keys are derived locallyβPassman never sees your credentials.
Advanced cryptographic protection for your secrets.
- Threshold Cryptography: Utilizes Mysten Labs' Seal technology to encrypt your data.
- Distributed Trust: Your encryption keys are never held by a single entity.
- Client-Side: All encryption and decryption happen directly on your device.
Robust and efficient storage for your encrypted data.
- Decentralized Blobs: Your encrypted password vaults are stored as blobs on the Walrus decentralized storage network.
- Cost-Effective: Efficient storage for large encrypted payloads without clogging the main chain.
- High Availability: Redundant storage ensures your data is always accessible.
Passman introduces the Safe module - a unified security layer that protects your vault with two powerful mechanisms:
Never lose access to your vault, even if you lose your keys.
- Multi-Signature Protection: Designate trusted guardians (friends, family, or other devices) who can help you recover access.
- Threshold-Based: Set a minimum number of guardian approvals required (e.g., 2 out of 3 guardians).
- Decentralized Trust: No single guardian can access your vault alone - they must collaborate.
- Flexible Management: Update your guardian list and threshold at any time.
- Secure Process: Guardians vote on-chain to approve recovery to a new owner address.
How it works:
- Set up guardians when creating a Safe (or update them later)
- If you lose access, request recovery through your guardians
- Guardians vote to approve the new owner address
- Once the threshold is met, ownership transfers automatically
Ensure your digital legacy is passed on to loved ones.
- Automatic Inheritance: Designate a beneficiary who inherits your vault after a period of inactivity.
- Customizable Period: Set the inactivity period (minimum 7 days) that suits your needs.
- Heartbeat System: Regular activity automatically resets the timer - no manual action needed.
- Manual Heartbeat: Explicitly record activity to reset the timer if desired.
- Secure Transfer: After the inactivity period expires, only the designated beneficiary can claim ownership.
- Flexible Updates: Change beneficiary or inactivity period at any time.
How it works:
- Set up a beneficiary and inactivity period when creating a Safe
- Your activity automatically resets the deadman timer
- If inactive for the specified period, your beneficiary can claim the vault
- Ownership transfers on-chain, giving them full control
The Safe uses an innovative "flash loan" pattern to maintain security while allowing vault operations:
- Temporary Access: Borrow your vault capability (Cap) within a transaction.
- Guaranteed Return: The Cap must be returned before the transaction completes.
- No Compromise: Maintains all Safe protections while enabling normal vault operations.
- Seamless UX: Users interact with their vault normally - the Safe works behind the scenes.
- Optional Features: Enable social recovery, deadman switch, both, or neither.
- Update Anytime: Modify guardians, threshold, beneficiary, or inactivity period as needed.
- Disable Safe: Remove Safe protection and return to direct vault ownership at any time.
- Event Tracking: All Safe actions emit events for transparency and auditability.
How it all comes together:
- Authentication: User logs in via Google using zkLogin. A temporary session key is created, and a stable Sui address is derived.
- Encryption: When you save a password, Seal encrypts the data client-side using threshold keys.
- Storage: The encrypted blob is uploaded to Walrus, returning a unique Blob ID.
- Consensus: The Blob ID and metadata are stored in a
Vaultobject on Sui, linking your identity to your data. - Protection: Optionally wrap your vault in a
Safeto enable social recovery and/or deadman switch features.
- 100% Decentralized: Zero reliance on centralized servers.
- Smart Vault Protection (Safe): Advanced security mechanisms to protect your vault:
- Social Recovery: Multi-signature recovery through trusted guardians
- Deadman Switch: Automatic ownership transfer after owner inactivity
- Vault Sharing: Securely share password vaults with other users on the network.
- Cross-Device Sync: Access your passwords anywhere by simply logging into your Google account.
- Modern UI: A beautiful interface built with Next.js, React, and TailwindCSS.
- Node.js 18+
- pnpm (recommended)
-
Clone the repository
git clone https://github.com/yourusername/passman.git cd passman -
Install dependencies
pnpm install
-
Configure Environment Create a
.env.localfile based on.env.exampleand add your Enoki API key and other configuration. -
Run Development Server
pnpm dev
-
Explore Open http://localhost:3000 to view the application.
passman/
βββ apps/
β βββ extension/ # Browser extension (Chrome/Edge)
β β βββ src/
β β β βββ background/ # Service worker
β β β βββ components/ # React components
β β β βββ content/ # Content scripts & autofill UI
β β β βββ hooks/ # Custom hooks (useZkLogin, useSeal, etc.)
β β β βββ lib/ # Core logic (Enoki, Sui providers)
β β β βββ popup/ # Extension popup UI
β β β βββ store/ # State management (Zustand)
β β βββ manifest.json
β βββ move/ # Sui Move smart contracts
β β βββ sources/ # Contract source files
β β β βββ vault.move # Core vault & item management
β β β βββ safe.move # Social recovery & deadman switch
β β β βββ share.move # Secure vault sharing
β β β βββ utils.move # Helper utilities
β β βββ tests/ # Contract tests
β βββ web/ # Next.js web application
β βββ src/
β βββ app/ # Next.js App Router
β βββ components/ # React components
β βββ hooks/ # Custom hooks
β βββ lib/ # Core logic
β βββ store/ # State management
βββ packages/
β βββ config/ # Shared ESLint configuration
β βββ utils/ # Shared utilities for Walrus/Sui
β βββ src/
β βββ walrus-client.js
β βββ construct-move-call.js
β βββ ...
βββ docs/ # Documentation
β βββ features.md
β βββ smart-contract-design.md
βββ scripts/ # Build & migration scripts
We welcome contributions from the community! Whether it's fixing bugs, improving documentation, or adding new features for Walrus/Seal integrations.
This project is licensed under the MIT License.
Built with β€οΈ on Sui