{"id":30909246,"url":"https://github.com/prathicashettym/cryptocause","last_synced_at":"2026-04-16T05:03:25.836Z","repository":{"id":302181393,"uuid":"1011503403","full_name":"PrathicaShettyM/CryptoCause","owner":"PrathicaShettyM","description":"A Blockchain-Based Architecture for Verifiable Philanthropic Engagement Using Cryptographically minted NFT Certificates","archived":false,"fork":false,"pushed_at":"2025-07-25T01:11:15.000Z","size":10078,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-09T16:33:51.539Z","etag":null,"topics":["blockchain","ethers","framer-motion","html2canvas","nfts","qrcode","reactjs","smart-contracts","solidity","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PrathicaShettyM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-30T23:34:45.000Z","updated_at":"2025-07-25T01:11:19.000Z","dependencies_parsed_at":"2025-07-01T02:37:35.468Z","dependency_job_id":null,"html_url":"https://github.com/PrathicaShettyM/CryptoCause","commit_stats":null,"previous_names":["prathicashettym/cryptocause"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PrathicaShettyM/CryptoCause","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathicaShettyM%2FCryptoCause","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathicaShettyM%2FCryptoCause/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathicaShettyM%2FCryptoCause/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathicaShettyM%2FCryptoCause/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PrathicaShettyM","download_url":"https://codeload.github.com/PrathicaShettyM/CryptoCause/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathicaShettyM%2FCryptoCause/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280849367,"owners_count":26401809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","ethers","framer-motion","html2canvas","nfts","qrcode","reactjs","smart-contracts","solidity","tailwindcss"],"created_at":"2025-09-09T15:11:39.335Z","updated_at":"2025-10-24T18:44:36.750Z","avatar_url":"https://github.com/PrathicaShettyM.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 CryptoCause  \n**A Blockchain-Based Architecture for Verifiable Philanthropic Engagement Using Cryptographic NFT Certificates**\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)  \n[![Smart Contracts](https://img.shields.io/badge/Built%20With-Hardhat-yellow.svg)](https://hardhat.org/)  \n[![Frontend](https://img.shields.io/badge/Frontend-React.js-blue)](https://reactjs.org/)  \n[![NFT Standard](https://img.shields.io/badge/ERC-721-green.svg)](https://ethereum.org/en/developers/docs/standards/tokens/erc-721/)\n\n---\n\n## 🧭 Project Overview\n\nCryptoCause is a decentralized crowdfunding platform built on the Ethereum blockchain. It allows individuals to create and support charitable campaigns using cryptocurrency (ETH). What makes CryptoCause unique is its integration of **NFT-based donation certificates**, which act as cryptographic proof of donation. These NFTs are verifiable on-chain and can be used for real-world applications like CSR reporting, income tax deductions (e.g., under India’s 80G), or general acknowledgment of contributions to non-profit organizations.\nThe entire system ensures transparency, immutability, and trustless verification — all without relying on any central authority.\n\n### **Youtube video link**\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.youtube.com/watch?v=EQ4p1rWDqfs\"\u003e\n    \u003cimg src=\"https://img.youtube.com/vi/EQ4p1rWDqfs/hqdefault.jpg\" alt=\"Watch the Demo on YouTube\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\n---\n\n## 🌟 Features\n### 🎯 1. Campaign Creation and Management\nUsers can launch their own fundraising campaigns directly on the platform. Each campaign includes the following attributes:\n- **Title and Description**: To provide donors with context about the cause.\n- **Funding Goal**: The amount of ETH the campaign aims to raise.\n- **Deadline**: A UNIX timestamp indicating the end of the campaign.\n- **Campaign Image**: Uploaded and stored via **Cloudinary**, then referenced in the campaign metadata.\n  \nAll campaign data is stored on the Ethereum blockchain using a **mapping structure** inside the smart contract, ensuring transparency and immutability.\n\nThe smart contract logic strictly enforces the requirement that deadlines must be in the future. This prevents invalid or misleading campaign setups.\n\n---\n\n### 💰 2. Transparent ETH Donations\n\nOnce campaigns are live, users can donate ETH through their MetaMask wallet or any Web3-compatible wallet.\n\n**How it works:**\n- Donors connect their wallet to the dApp.\n- They choose a campaign and enter the amount of ETH to donate.\n- The smart contract transfers ETH directly to the **campaign owner's wallet**.\n  \nThe platform keeps an **on-chain record of:**\n- The total amount raised per campaign\n- A list of all donors and their individual contributions\n- Timestamps of donations\n\nThis data is public and queryable, ensuring complete visibility into the donation process.\n\n---\n\n### 📖 3. Public Campaign Explorer\nAll campaigns can be browsed and explored on the frontend. For each campaign, the following information is displayed:\n\n- Campaign owner’s address\n- Title, image, and detailed description\n- Funding target vs. amount collected so far\n- Deadline and current status (active or expired)\n- List of all donors and the amount each contributed\n\nThis makes the donation process **transparent and verifiable** for both campaign creators and contributors.\n\n---\n\n## 🎟️ Innovations: NFT-Based Donation Certification System\n### 🧾 4. Automatic NFT Certificate Minting\nEvery successful donation triggers an automated NFT minting process through smart contract logic. This NFT is:\n\n- **Minted using ERC-721 standards**\n- Linked directly to the **donor’s wallet address**\n- Represents a **blockchain-verified certificate of donation**\n\nEach NFT is a permanent record of a donor’s contribution and is **non-fungible**, meaning each is unique and cannot be altered or replaced.\n\n---\n\n### 🖼️ 5. Metadata-Driven On-Chain Proofs\n\nEach NFT has a `tokenURI` that links to an IPFS or cloud-hosted JSON file. This metadata includes:\n\n- Donor's wallet address\n- Campaign title and description\n- Amount donated in ETH\n- The recipient NGO or cause name\n- Ethereum transaction hash\n- Issuer contract address\n\nThis metadata is **cryptographically verifiable** and can be inspected on-chain using a block explorer or via the platform’s frontend.\n\n---\n\n### 🛡️ 6. Verifiable Blockchain-Based Donation Receipts\n\nThese NFTs are not just decorative — they serve as **legal proof of donation** and can be used for:\n\n- Corporate Social Responsibility (CSR) documentation\n- Income tax deductions under sections like **80G in India**\n- Acknowledgements from NGOs\n- Auditable compliance reporting for ESG\n\nSince the proof resides on the blockchain, **no centralized verification** is needed. Anyone can inspect the token, view the metadata, and confirm authenticity using blockchain tools.\n\n---\n\n### 📎 7. NFT Certificate Verifier Page\n\nThe platform features a built-in certificate verifier page where:\n- Anyone (auditor, government agency, NGO) can enter a **token ID**\n- The system fetches the NFT metadata using the tokenURI\n- It displays:\n  - Owner address\n  - Campaign details\n  - Ethereum transaction hash\n  - Contract issuer address\n\nThe frontend validates the NFT and shows a message like:  \n`✅ Verified by CryptoCause`  \nif everything checks out.\n\n---\n\n### 🖨️ 8. HTML-to-PDF Certificate Export\n\nFor easier documentation and legal filing, users can export their donation NFT as a **printable PDF receipt**.\n\nThe PDF includes:\n\n- Donor's name or wallet address\n- Campaign or NGO name\n- Donation amount in ETH\n- Date and time (converted from timestamp)\n- Ethereum transaction hash\n- QR code linking to the NFT on a block explorer (optional)\n\nThis enables users to attach the document to government reports or CSR filings, bridging the gap between blockchain transparency and real-world utility.\n\n---\n\n## 🔬 Real-World Applications\n\n### ✅ Why CryptoCause is Not Just a Demo\n\nCryptoCause was built with real-world problems in mind. The lack of transparency and fraud in charitable giving, especially in large-scale donation systems, often erodes trust. CryptoCause addresses this by making every transaction traceable, verifiable, and permanent.\n\n**Use Cases:**\n1. **CSR Reporting**: Corporates can publicly prove their charitable spending via NFTs.\n2. **Tax Deduction**: Individuals can submit NFTs or downloadable PDFs as valid receipts under applicable tax laws.\n3. **NGO Compliance**: NGOs can validate and report donations received through verifiable blockchain records.\n4. **Government Audits**: No need to rely on third-party records. All data is cryptographically secure and visible on the chain.\n\n---\n\n## ⚙️ How to Run the Project ?\n### 1. 🛠 Frontend Setup (Using React):\nNote: Make sure metamask is installed on the browser you are running your frontend before starting the subsequent steps.\n1. **Terminal 1:**: Go to client directory\n```\ncd client\n```\n\n2. Install Node modules\n```\nnpm install\n```\n\n3. Run the frontend\n```\nnpm run dev\n```\n\n### 2. 🛠 Smart Contract Setup (Using Hardhat)\n1. Go to the smart contract directory\n```\ncd smartcontract\n```\n```\nNote: \n1. For both the terminals go to the smartcontract directory and execute the below steps \n2. Also execute these in these order itself or else you will be in trouble\n```\n\n2. **Terminal 2:** Run the hardhat nodes\n```\nnpx hardhat node\n```\n\n3. **Terminal 3:** compile the smart contract\n```\nnpx hardhat compile\n```\n- After compiling copy paste the deployed contract address in the frontend .env\n- Deploy the smart contract locally\n```\nnpx hardhat run scripts/deploy.js --network localhost\n```\n\n### 3. 🛠 Blockchain Visualizer \n1. Open one more tab on the browser where you are running your frontend, copy paste the below url\n```\nhttp://localhost:8000/index.html\n```\n- **Terminal 4:** is for the blockchain visualizer, go to the visualizer directory\n```\ncd Visualizer\n```\n\n- Run the following command\n```\npython -m http.server 8000\n```\n\n## Hardhat Accounts for testing\n1. Copy paste the following private keys to import accounts\n\n```\nAccount #0: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 (10000 ETH)\nPrivate Key: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80\n\nAccount #1: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 (10000 ETH)\nPrivate Key: 0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d\n\nAccount #2: 0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC (10000 ETH)\nPrivate Key: 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a\n\nAccount #3: 0x90F79bf6EB2c4f870365E785982E1f101E93b906 (10000 ETH)\nPrivate Key: 0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6\n\nAccount #4: 0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 (10000 ETH)\nPrivate Key: 0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a\n\nAccount #5: 0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc (10000 ETH)\nPrivate Key: 0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba\n\nAccount #6: 0x976EA74026E726554dB657fA54763abd0C3a0aa9 (10000 ETH)\nPrivate Key: 0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e\n\nAccount #7: 0x14dC79964da2C08b23698B3D3cc7Ca32193d9955 (10000 ETH)\nPrivate Key: 0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356\n\nAccount #8: 0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f (10000 ETH)\nPrivate Key: 0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97\n\nAccount #9: 0xa0Ee7A142d267C1f36714E4a8F75612F20a79720 (10000 ETH)\nPrivate Key: 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6\n\nAccount #10: 0xBcd4042DE499D14e55001CcbB24a551F3b954096 (10000 ETH)\nPrivate Key: 0xf214f2b2cd398c806f84e317254e0f0b801d0643303237d97a22a48e01628897\n\nAccount #11: 0x71bE63f3384f5fb98995898A86B02Fb2426c5788 (10000 ETH)\nPrivate Key: 0x701b615bbdfb9de65240bc28bd21bbc0d996645a3dd57e7b12bc2bdf6f192c82\n\nAccount #12: 0xFABB0ac9d68B0B445fB7357272Ff202C5651694a (10000 ETH)\nPrivate Key: 0xa267530f49f8280200edf313ee7af6b827f2a8bce2897751d06a843f644967b1\n\nAccount #13: 0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec (10000 ETH)\nPrivate Key: 0x47c99abed3324a2707c28affff1267e45918ec8c3f20b8aa892e8b065d2942dd\n\nAccount #14: 0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097 (10000 ETH)\nPrivate Key: 0xc526ee95bf44d8fc405a158bb884d9d1238d99f0612e9f33d006bb0789009aaa\n\nAccount #15: 0xcd3B766CCDd6AE721141F452C550Ca635964ce71 (10000 ETH)\nPrivate Key: 0x8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61\n\nAccount #16: 0x2546BcD3c84621e976D8185a91A922aE77ECEc30 (10000 ETH)\nPrivate Key: 0xea6c44ac03bff858b476bba40716402b03e41b8e97e276d1baec7c37d42484a0\n\nAccount #17: 0xbDA5747bFD65F08deb54cb465eB87D40e51B197E (10000 ETH)\nPrivate Key: 0x689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b061667b5a93e037fd\n\nAccount #18: 0xdD2FD4581271e230360230F9337D5c0430Bf44C0 (10000 ETH)\nPrivate Key: 0xde9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0\n\nAccount #19: 0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199 (10000 ETH)\nPrivate Key: 0xdf57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprathicashettym%2Fcryptocause","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprathicashettym%2Fcryptocause","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprathicashettym%2Fcryptocause/lists"}