A decentralized storage platform built on BSC Testnet that allows users to securely store files using IPFS technology with provider-based storage allocation.
- Decentralized Storage: Files stored on IPFS with multiple provider options
- Blockchain Integration: Smart contracts on BSC Testnet for storage purchases
- End-to-End Encryption: All files encrypted before storage
- Provider Network: Distributed storage providers worldwide
- Web3 Wallet Integration: MetaMask support for seamless transactions
- Real-time Monitoring: Live provider status and storage usage tracking
- Frontend: React + TypeScript + Tailwind CSS
- Backend: Supabase (PostgreSQL)
- Blockchain: BSC Testnet (Binance Smart Chain)
- Storage: IPFS via Pinata
- Smart Contracts: Solidity contracts for token and storage management
- Node.js 18+
- MetaMask wallet
- BSC Testnet setup
- Git
git clone https://github.com/yourusername/alpha-ai-storage.git
cd alpha-ai-storagenpm installCreate a .env file in the root directory:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_PINATA_JWT=your_pinata_jwt_token
VITE_IPFS_GATEWAY=https://gateway.pinata.cloud/ipfs/The project uses Supabase for data management. Migration files are included in supabase/migrations/.
npm run devVisit http://localhost:3000 to access the application.
To run a storage provider:
# Install IPFS
node cli/ipfs-installer.js
# Configure IPFS for remote access
node cli/ipfs-remote.mjs
# Start IPFS daemon
node cli/ipfs.mjscd cli
node provider.mjs startFollow the prompts to:
- Enter your private key
- Select storage directory
- Set storage allocation size
- Connect Wallet: Click "Connect Wallet" and connect your MetaMask
- Switch Network: Ensure you're on BSC Testnet
- Browse Providers: View available storage providers
- Purchase Storage: Select a provider and purchase storage with AAI tokens
- Upload Files: Drag and drop files to upload to your allocated storage
- Manage Files: Download, view, or delete your stored files
- Setup Provider: Run the provider CLI tool
- Configure Storage: Set your storage allocation and pricing
- Monitor Activity: Track file uploads and storage usage
- Earn Rewards: Receive AAI tokens for providing storage
- Address:
0xd27362091923B8043C0b92d836f5f10e53207111 - Network: BSC Testnet
- Standard: ERC-20
- Address:
0x5DC1612cca4E375e825b7f3EcD7B6725E3D4aDCB - Network: BSC Testnet
- Functions: Storage purchase, allocation management
storage_providers: Provider information and statusstorage_allocations: User storage purchasesstored_files: File metadata and IPFS hashesprovider_dummy_files: Provider-side file tracking
alpha-ai-storage/
βββ src/ # React frontend source
β βββ components/ # Reusable UI components
β βββ pages/ # Application pages
β βββ lib/ # Utilities and configurations
β βββ main.tsx # Application entry point
βββ cli/ # Provider CLI tools
β βββ provider.mjs # Storage provider daemon
β βββ ipfs-installer.js # IPFS installation script
β βββ ipfs-remote.mjs # IPFS configuration
βββ contracts/ # Smart contracts
βββ supabase/ # Database migrations
βββ public/ # Static assets
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint# Provider management
node cli/provider.mjs start
# IPFS setup
node cli/ipfs-installer.js
node cli/ipfs-remote.mjs
node cli/ipfs.mjs- Add BSC Testnet to MetaMask:
- Network Name: BSC Testnet
- RPC URL: https://data-seed-prebsc-1-s1.binance.org:8545
- Chain ID: 97
- Symbol: tBNB
- Block Explorer: https://testnet.bscscan.com
- Get testnet BNB from BSC Testnet Faucet
- Create account at Pinata
- Generate JWT token
- Add to environment variables
Connection Failed
- Check internet connectivity
- Verify Supabase URL and keys
- Ensure BSC Testnet is selected
IPFS Installation Issues
- Run with sudo:
sudo node cli/ipfs-installer.js - Check system permissions
- Verify network connectivity
Provider Not Receiving Files
- Check provider daemon is running
- Verify database connection
- Ensure storage allocation exists
Transaction Failures
- Check AAI token balance
- Verify network (BSC Testnet)
- Ensure sufficient BNB for gas
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue on GitHub
- Join our Discord
- Email: [email protected]
- Supabase for backend infrastructure
- Pinata for IPFS pinning services
- BSC for blockchain infrastructure
- React and Vite for frontend tooling