Welcome to ETH-File-Share, where we take boring old image uploads and blast them into the future of the internet 🌌.
Forget central servers 🖥️ - your pictures deserve to live forever on IPFS via Pinata, tracked immutably on the Ethereum blockchain, and verified by none other than your friendly 🦊 MetaMask wallet.
💬 “Not all heroes wear capes… some just decentralize cat pics.”
A decentralized application (dApp) that lets you:
- 📸 Upload images → stored on IPFS/Pinata
- ⛓ Record metadata on Ethereum via smart contracts
- 🦊 Manage accounts with MetaMask
- ⚛️ Interact through a slick React frontend
Think Instagram, but with blockchain superpowers 🦸.
🌐 Web3 File Sharing
- Store images beyond Big Tech 👋
📦 IPFS + Pinata Storage
- Files = decentralized + permanent (ish)
🦊 MetaMask Integration
- Connect, sign, transact in one click
⛓ Smart Contracts via Hardhat
- Solidity magic under the hood
⚛️ React UI
- Fast, clean, no nonsense frontend
- Frontend: React (⚛️)
- Blockchain: Hardhat (⛓)
- Wallet: MetaMask (🦊)
- Storage: Pinata + IPFS (📦)
Clone the repo:
git clone https://github.com/yuki-sf/ETH-File-Share.git
cd ETH-File-Share
npm install### 🏗 Step 1: Start your local blockchain
```bash
npx hardhat node
🔮 Boom → A mini Ethereum world spins up on http://127.0.0.1:8545/.
# Compile Smart Contract
npx hardhat compile
# Deploy Contract
npx hardhat run scripts/deploy.js --network localhostYour Solidity contracts are now alive & kicking on the local chain ⚡.
Move into the frontend folder:
cd client
npm installNow start the app:
npm start # default http://localhost:3000/Set up environment variables:
REACT_APP_PINATA_API_KEY=YOUR_PINATA_API_KEY
REACT_APP_PINATA_SECRET_API_KEY=YOUR_PINATA_SECRET_KEY
REACT_APP_HARDHAT_ACCOUNT=YOUR_HARDHAT_ACCOUNTOpen MetaMask → Add Network → Localhost 8545
Network Name: Hardhat Local
RPC URL: http://127.0.0.1:8545/
Chain ID: 31337
Currency Symbol: ETHImport one of the test accounts (private keys printed in Hardhat terminal).
Connect wallet inside the React app → done ✅
📸 React App (client)
│
▼
🦊 MetaMask → Transaction Signing
│
▼
⛓ Hardhat Blockchain (Smart Contracts)
│
▼
📦 Pinata / IPFS → Stores your image
- 🌈 Support for more file types
- 🔒 End-to-end encryption for private shares
- 📂 A public gallery of uploads
- 🚀 Deploy on Ethereum testnets / mainnet
If this project made you go “wow that’s cute & geeky” 🤩 drop a ⭐ on GitHub and share the Web3 vibes 💜
