Enterprise-grade secure data sharing platform built on blockchain technology.
- Blockchain-based Access Control: Immutable file permissions on Ethereum
- Zero-Knowledge Proofs: Verify access without revealing file metadata
- Enterprise SSO: SAML, OIDC, and LDAP integration
- Compliance Center: GDPR, HIPAA, SOX compliance monitoring
- Layer 2 Integration: Reduced gas fees with Arbitrum, Optimism, Polygon
- Advanced Analytics: Comprehensive usage and security analytics
- PWA Support: Offline capabilities and native app experience
- Frontend: React 18, TypeScript, Tailwind CSS, Framer Motion
- Blockchain: Ethereum, Wagmi, Viem, Hardhat
- Smart Contracts: Solidity 0.8.19, OpenZeppelin
- State Management: Zustand
- Build Tool: Vite
- Testing: Hardhat, Chai
-
Clone the repository
git clone https://github.com/mrvenom17/SecureShare cd secureshare-elite -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Edit .env with your configuration
-
Get an Infura API Key
- Sign up at Infura.io
- Create a new project
- Copy the API key to
VITE_INFURA_API_KEYin.env
-
Set up deployment wallet
- Add your private key to
PRIVATE_KEYin.env - Ensure the wallet has sufficient ETH for deployment
- Add your private key to
-
Get Etherscan API Key (optional)
- Sign up at Etherscan.io
- Get API key for contract verification
# Compile contracts
npm run compile
# Deploy to Sepolia
npm run deploy:sepolia
# Verify contract (optional)
npm run verify <CONTRACT_ADDRESS># Start local Hardhat network
npx hardhat node
# Deploy to local network
npm run deploy:local# Run smart contract tests
npx hardhat test
# Run tests with gas reporting
REPORT_GAS=true npx hardhat test
# Run specific test file
npx hardhat test test/SecureShare.test.ts# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewuploadFile(bytes32 fileId, string ipfsHash)- Upload a new filegrantAccess(bytes32 fileId, address user)- Grant file accessrevokeAccess(bytes32 fileId, address user)- Revoke file accesshasAccess(bytes32 fileId, address user)- Check access permissions
getFileInfo(bytes32 fileId)- Get file detailsgetUserFiles(address user)- Get user's owned filesgetUserAccessFiles(address user)- Get user's accessible filesgetTotalFiles()- Get total file count
- Access Control: Role-based permissions with smart contracts
- Encryption: Client-side encryption before IPFS storage
- Audit Trail: Immutable blockchain transaction history
- Zero-Knowledge Proofs: Privacy-preserving access verification
- Multi-Factor Authentication: Enterprise SSO integration
- Ethereum Mainnet: Production deployment
- Sepolia Testnet: Development and testing
- Layer 2 Networks: Arbitrum, Optimism, Polygon
- Local Development: Hardhat network
- Real-time usage analytics
- Security event monitoring
- Compliance reporting
- Performance metrics
- User activity tracking
# Blockchain
VITE_ETHEREUM_NETWORK=sepolia
VITE_CONTRACT_ADDRESS=0x...
VITE_INFURA_API_KEY=your_infura_key
# Deployment
PRIVATE_KEY=your_private_key
ETHERSCAN_API_KEY=your_etherscan_key- Sepolia: Chain ID 11155111
- Ethereum Mainnet: Chain ID 1
- Arbitrum One: Chain ID 42161
- Optimism: Chain ID 10
- Polygon: Chain ID 137
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
This project is licensed under the MIT License.
For support and questions:
- Create an issue on GitHub
- Check the documentation
- Review the test files for usage examples
- Multi-chain deployment
- Advanced ZK-proof implementations
- Mobile app development
- Enterprise API gateway
- Advanced compliance features