Proof-of-concept smart contract for transparent, immutable tracking of "Pad It Forward" donations in BloomKit — enabling verifiable kit distribution to girls in Nigeria to reduce period poverty.
# bloomkit-pad-it-forward-poc
Proof-of-concept smart contract for transparent, immutable tracking of "Pad It Forward" donations in BloomKit — enabling verifiable kit distribution to girls in Nigeria to reduce period poverty.
# BloomKit Pad It Forward Blockchain PoC
This is a proof-of-concept smart contract for transparent, immutable tracking of "Pad It Forward" donations in BloomKit — enabling verifiable proof that user donations (linked to kit sales) are distributed as menstrual wellness kits to underserved girls in Nigeria, reducing period poverty and school absenteeism.
## Purpose
- Record donations on-chain (donor, amount, kit type, timestamp).
- Allow admin to mark distribution to beneficiaries.
- Provide public, tamper-proof verification via events and state queries.
- Aligns with UNICEF Venture Fund focus on blockchain for accountability and child impact.
## Tech Stack
- Solidity ^0.8.20
- Deployed & tested on **Remix VM local simulator** (gas-free PoC environment)
- Ready for migration to **Arbitrum Sepolia testnet** (Ethereum Layer 2) for low-cost public verification
## Smart Contract
**File**: PadItForwardTracker.sol
**Key Functions**:
- `donate(string kitType)` – payable function to record donation
- `distribute(uint256 donationId, address beneficiary)` – admin marks distribution
- `getDonation(uint256 id)` – view donation details
- `getDonationCount()` – total donations
## Demo & Testing (Remix VM)
1. Deployed contract (local VM address): `0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8`
2. Tested flow:
- Called `donate("Heavy Flow Kit")` with 0.01 ETH (fake)
- Verified via `getDonationCount()` → returned 1
- Called `getDonation(0)` → showed donor, amount, kitType, distributed=false
- Called `distribute(0, 0x000...000)` → emitted DonationDistributed event
- Re-checked `getDonation(0)` → distributed=true
## Screenshots
*(Upload your screenshots to the repo first: Add file → Upload files → drag images → commit as "Add demo screenshots")*
## Future …