Revolutionary Decentralized File Storage with Military-Grade Encryption
BlockBox is a cutting-edge Web3 application that provides secure, decentralized file storage using blockchain technology, IPFS (InterPlanetary File System), and client-side encryption. Built with React and modern Web3 technologies, BlockBox ensures your data remains private, secure, and accessible only to you.
- Zero-Knowledge Encryption: Military-grade AES-256 encryption with client-side key generation
- Wallet-Based Keys: Encryption keys derived from your wallet address for ultimate security
- Client-Side Processing: Files are encrypted locally before leaving your device
- No Server Access: Your unencrypted data never touches our servers
- IPFS Integration: Files stored across a distributed network of nodes
- Redundant Storage: Multiple copies across different nodes ensure availability
- No Single Point of Failure: Decentralized architecture guarantees uptime
- Content Addressing: Files accessed via cryptographic hashes (CIDs)
- MetaMask Support: Seamless wallet connection and authentication
- Multi-Wallet Compatible: Support for WalletConnect and other Web3 wallets
- Blockchain-Powered: Smart contract-based access control
- Ethereum Network: Built on proven blockchain infrastructure
- Modern UI/UX: Beautiful, responsive interface with smooth animations
- Real-Time Stats: Live tracking of storage usage and file metrics
- Drag & Drop: Intuitive file upload experience
- Mobile Responsive: Works seamlessly across all devices
- Node.js (version 16 or higher)
- npm or yarn package manager
- MetaMask browser extension or compatible Web3 wallet
- Modern browser with Web3 support
- Clone the repository:
git clone https://github.com/shaurya2k06/BlockBox.git
cd BlockBox/frontend
- Install dependencies:
npm install
# or
yarn install
- Start the development server:
npm run dev
# or
yarn dev
- Open your browser and navigate to
http://localhost:5173
npm run build
# or
yarn build
-
Connect Your Wallet
- Click "Connect Wallet" on the landing page
- Approve the connection in MetaMask
- Your wallet address becomes your identity
-
Upload Files
- Navigate to the dashboard
- Drag & drop files or click to browse
- Files are automatically encrypted using your wallet-derived key
- Encrypted files are uploaded to IPFS
-
Manage Files
- View all your encrypted files in the dashboard
- Download and decrypt files instantly
- Copy IPFS CIDs for sharing or backup
- Delete files you no longer need
// Your encryption key is derived from your wallet
const encryptionKey = generateKey(walletAddress);
// Files are encrypted client-side
const encryptedData = encryptFile(file, encryptionKey);
// Only encrypted data is uploaded to IPFS
const cid = await uploadToIPFS(encryptedData);
- Upload: Files are encrypted locally then stored on IPFS
- Download: Files are retrieved from IPFS and decrypted locally
- Share: Share IPFS CIDs while maintaining encryption
- Delete: Remove files from your personal storage index
- React 19: Modern React with latest features
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework
- Framer Motion: Smooth animations and transitions
- Ethers.js: Ethereum blockchain interaction
- CryptoJS: Client-side encryption library
- Web3 Service: Wallet connection and blockchain interaction
- IPFS Service: Decentralized file storage operations
- Encryption Service: Client-side file encryption/decryption
- Storage Service: Local storage management
- Wallet Connection β Authentication & Key Generation
- File Selection β Client-Side Encryption
- IPFS Upload β Decentralized Storage
- Metadata Storage β Local Index Management
- File Retrieval β IPFS Download & Decryption
Supported networks:
- Ethereum Mainnet (Chain ID: 1)
- Polygon (Chain ID: 137)
- BSC (Chain ID: 56)
- Total Files: Number of files stored
- Storage Used: Total encrypted data size
- Encrypted Files: Count of secured files
- Last Activity: Recent file operations
- Multi-file Upload: Upload multiple files simultaneously
- File Encryption: Automatic AES-256 encryption
- IPFS Storage: Decentralized file hosting
- One-Click Download: Decrypt and download instantly
- Wallet-Derived Keys: Unique encryption per wallet
- Zero-Knowledge: No server-side access to your data
- Client-Side Operations: All encryption happens locally
- Decentralized Network: No central point of failure
- Private Keys: Keep your wallet private keys secure
- Backup Strategy: Consider backing up IPFS CIDs
- Network Security: Use secure networks for sensitive operations
- Browser Security: Keep your browser and extensions updated
# Build for production
npm run build
# Deploy to your preferred hosting service
# (Vercel, Netlify, AWS S3, etc.)
For enhanced decentralization, consider running your own IPFS node:
# Install IPFS
npm install -g ipfs
# Initialize IPFS node
ipfs init
# Start IPFS daemon
ipfs daemon
- Chrome/Chromium (Recommended)
- Firefox
- Safari (with limitations)
- Edge
Note: Web3 functionality requires MetaMask or compatible wallet extension
-
Wallet Connection Failed
- Ensure MetaMask is installed and unlocked
- Check network settings
- Refresh the page and try again
-
Upload Errors
- Check file size limits
- Verify IPFS service availability
- Ensure stable internet connection
-
File Not Found
- IPFS content may take time to propagate
- Try accessing from different IPFS gateways
- Check if file was properly uploaded
This project is licensed under the MIT License - see the LICENSE file for details.
π‘οΈ Built with privacy, security, and decentralization at its core
Your data, your rules, your blockchain.