Prasoon Soni

All projects

Safe Chain

A zero-knowledge password vault stored on IPFS, not on a server.

Source code

Overview

A decentralized password manager that encrypts credentials on the client and stores them on IPFS — so there's no central database to breach. A master password plus a unique secret key are the only way in, and the backend never sees either.

The problem

Centralized password managers are a single, high-value target. Safe Chain removes that target: because the server never holds decryptable data, a server breach yields nothing usable.

Architecture

  1. App [Your device]: React PWA (Installable vault)
  2. Encryption [Your device]: AES-256 (Key from master password + secret key, which never leave)
  3. (encrypted data only) Backend: Node / Express API (Holds nothing it can decrypt)
  4. (IPFS API) Storage: IPFS (Distributed, no central database)

Encryption happens on your device. Only encrypted data crosses the network, so a server breach yields nothing usable.

Approach

Client-side encryption

Credentials are encrypted with AES-256 (with bcrypt) before they ever leave the device, so plaintext never touches the network or the server.

Decentralized storage

Encrypted blobs live on IPFS via an IPFS API rather than in a company database, distributing the data and removing the central point of failure.

Zero-knowledge access

A master password combined with a unique per-user secret key derives the decryption key; the backend stores neither, so only the user can unlock their vault.

Installable PWA

A React + Chakra UI progressive web app makes the vault available across devices without an app-store install.

Highlights

  • Zero-knowledge, client-side AES-256 encryption
  • Credentials stored on IPFS, not a central database
  • Master password + secret key never leave the client
  • Installable progressive web app

Stack

React.js, Node.js, Express.js, MongoDB, IPFS, JWT