Take control of your data. Own your privacy.
DataConsent is a modern, open-source Web3 privacy protocol that empowers users to own and govern their personal data. Using blockchain technology and smart contracts, DataConsent allows individuals to revoke third-party access to private information with cryptographic immutability — without reliance on any central authority.
In today's digital ecosystem, your personal data is continuously harvested, sold, and misused by tech companies. DataConsent flips the script:
- You own your data — Not corporations, not intermediaries. You.
- Revoke instantly — No waiting for privacy teams or legal processes.
- Cryptographically secure — Backed by Ethereum blockchain for immutability.
- Zero-trust architecture — Private keys never leave your browser.
- Transparent & auditable — Every action is recorded on-chain.
- Connect your wallet (MetaMask, WalletConnect, etc.) to manage your privacy preferences
- View active sessions — See which smart contracts currently have access to your data
- Real-time dashboard — Monitor all authorized third parties in one place
- Instant revocation — Withdraw consent from apps, platforms, and services instantly
- On-chain execution — Revocations are permanently recorded on Ethereum Sepolia
- No delays — No central authority can prevent or delay your revocation
- Permanent records — Every revocation is timestamped and stored on-chain
- Cryptographic finality — Once submitted, revocations cannot be altered
- Full auditability — Track your entire privacy history transparently
- Client-side signing — All cryptographic operations happen in your browser using Ethers.js
- Private key isolation — Your private keys never leave your device
- MetaMask integration — Battle-tested wallet security
- Privacy score — Monitor your overall data exposure
- Risk assessment — Get alerts when new third parties request access
- Data consent history — Review all past and present data sharing agreements
| Category | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TailwindCSS 4 |
| Blockchain | Ethereum Sepolia Testnet, Solidity Smart Contracts |
| Web3 Integration | Ethers.js 6, MetaMask |
| Animations | Framer Motion |
| Icons | Lucide React |
| Styling | PostCSS, TailwindCSS |
┌─────────────────────────────────────────────────┐
│ User Browser (Zero-Trust Environment) │
├─────────────────────────────────────────────────┤
│ 1. User connects MetaMask wallet │
│ 2. Signs privacy preference locally │
│ 3. Ethers.js encodes transaction │
└──────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ Ethereum Sepolia Testnet │
├─────────────────────────────────────────────────┤
│ Smart Contract receives revocation │
│ - Invalidates third-party access │
│ - Emits immutable log event │
│ - Updates user's privacy state │
└─────────────────────────────────────────────────┘
- Smart Contracts — Solidity contracts deployed on Sepolia that manage privacy revocations
- Front-end UI — Next.js app for wallet connection and consent management
- Immutable Ledger — Ethereum blockchain serves as the source of truth
- Governance Module — Framework for community-driven protocol decisions (coming soon)
- Audit Trail — Complete transparency for security audits and compliance
- Node.js 18+ and npm/yarn
- MetaMask or compatible Web3 wallet
- Git
# Clone the repository
git clone https://github.com/yourusername/finaldataconsent.git
cd finaldataconsent
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your configuration
# Start development server
npm run devThe application will be available at http://localhost:3000
npm run build
npm start- Visit the live demo
- Click "Connect Wallet" in the navigation bar
- Approve the connection in MetaMask
- See all active sessions with authorized third parties
- Review the scope of data access for each session
- Check transaction history and timestamps
- Navigate to an authorized third party you want to disconnect
- Click "Revoke Access" button
- Confirm the transaction in MetaMask
- Wait for confirmation (typically 15-30 seconds)
- Your revocation is now immutably recorded on-chain
- Every transaction is verifiable on the Sepolia Testnet Explorer
- Copy your transaction hash and search to see cryptographic proof
- Share your transaction history with compliance teams if needed
finaldataconsent/
├── app/ # Next.js App Router
│ ├── layout.js # Root layout component
│ ├── page.js # Home page
│ ├── globals.css # Global styles
│ ├── audit/
│ │ └── page.js # Audit logs page
│ ├── governance/
│ │ └── page.js # Governance dashboard
│ ├── protocol/
│ │ └── page.js # Protocol documentation
│ └── lib/
│ └── constants.js # App constants
├── public/ # Static assets
├── package.json # Dependencies
├── next.config.mjs # Next.js configuration
├── tailwind.config.mjs # TailwindCSS config
├── postcss.config.mjs # PostCSS config
├── eslint.config.mjs # ESLint rules
├── jsconfig.json # JavaScript config
└── README.md # This file
| Property | Value |
|---|---|
| Network | Sepolia (Ethereum Testnet) |
| Chain ID | 11155111 |
| RPC Endpoint | https://sepolia.infura.io/v3/YOUR_KEY |
| Explorer | Sepolia Etherscan |
| Testnet ETH Faucets | Sepolia Faucet |
All privacy revocations and consent management operations are executed and recorded on Sepolia for auditability and immutability.
// Revoke consent for a specific third party
function revokeConsent(address thirdParty) external
// Get list of all authorized third parties for a user
function getAuthorizedParties(address user) external view returns (address[])
// Calculate user's privacy score based on active consents
function privacyIndex(address user) external view returns (uint256)
// Grant consent to a third party
function grantConsent(address thirdParty, bytes32 dataScope) external
// Check if a third party has active consent
function hasConsent(address user, address thirdParty) external view returns (bool)Create a .env.local file with the following:
# Ethereum RPC Provider
NEXT_PUBLIC_RPC_URL=https://sepolia.infura.io/v3/YOUR_INFURA_KEY
# Contract Addresses
NEXT_PUBLIC_CONTRACT_ADDRESS=0x...
# MetaMask Configuration
NEXT_PUBLIC_CHAIN_ID=11155111- ✅ Core privacy revocation functionality
- ✅ MetaMask wallet integration
- 🔄 In Progress: Enhanced governance dashboard
- 🔄 In Progress: Advanced audit trail features
- 📅 Planned: Multi-chain support (Arbitrum, Polygon)
- 📅 Planned: DAO governance token
- 📅 Planned: Privacy-preserving zkProofs
- 📅 Planned: Enterprise privacy solutions
We welcome contributions! DataConsent is an open-source project built by the community, for the community.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows our coding standards and includes tests.
- Protocol Documentation — Deep dive into how DataConsent works
- Governance Guide — Participate in protocol decisions
- Audit Reports — Security and compliance audits
DataConsent is built with privacy and security as first-class concerns:
- No server-side tracking — We don't store or collect user data
- Client-side signing — All cryptographic operations are local
- Open-source auditing — Code is publicly available for review
- Regular security audits — Third-party audits ensure protocol integrity
- Bug bounty program — Report vulnerabilities responsibly
This project is licensed under the MIT License — see the LICENSE file for details.
- GitHub Issues — Report bugs or request features
- Built with Next.js and React
- Powered by Ethereum blockchain
- UI crafted with TailwindCSS and Framer Motion
- Icons from Lucide React
DataConsent: Your Data, Your Rules, Your Privacy. 🔐