User: A woman who has acquired skills informally (e.g., tailoring, braiding, digital marketing, caregiving, coding, design) and needs trusted proof of her abilities for employment, clients, grants, or micro-financing. Problem: Women in marginalized communities often lack formally recognized credentials. Paper certificates can be forged, screenshots can be faked, and employers cannot easily verify authenticity. Constraints: Credentials must be privacy-safe (no PII on-chain), tamper-proof, and instantly verifiable by anyone. Success Test: Issue a credential → Blockchain transaction confirms → Open verify page → System shows VALID, on-chain issuer address, timestamp, and endorsements. Achievable in under 60 seconds.
ProofHer uses a hybrid on-chain/off-chain architecture:
sequenceDiagram
participant User as Issuer (Web UI)
participant PHP as Backend (MySQL)
participant Poly as Polygon Amoy
User->>User: 1. Fill Credential Form
User->>User: 2. Compute SHA-256 Hash
User->>PHP: 3. Save PII (Cleartext) to DB
PHP-->>User: ID Confirmed
User->>Poly: 4. Send Hash + ID (Web3 Tx)
Poly-->>User: Emit CredentialIssued Event
- Off-Chain Database (MySQL + PHP): Stores human-readable personal information (PII) such as the recipient's name, skill, level, issuer name, and evidence URL.
- On-Chain Storage (Polygon Amoy Testnet): Stores a SHA-256 hash of the canonical JSON representation of the off-chain data, along with the issuer's wallet address, timestamp, and endorsement count.
- Frontend (HTML/Tailwind/Vanilla JS + Ethers.js): Connects the two components. It captures form data, computes the SHA-256 hash in the browser, sends the raw data to the backend, and sends the hash via MetaMask to the Polygon smart contract.
To ensure the hash remains deterministic and completely tamper-resistant:
- The frontend gathers the credential fields payload.
- The object keys are sorted alphabetically
['credential_id', 'evidence_url', 'full_name', 'issued_date', 'issuer_name', 'level', 'skill']. - The object is serialized to a JSON string.
- The JSON string is hashed using the browser's native
crypto.subtle.digest('SHA-256'). - The resulting Hex string (
0x...) is mapped to abytes32value and deployed.
- A verifier visits the verification link or scans the QR code containing the
credential_id. - The page fetches the corresponding raw payload from the backend MySQL database using the REST API (
api/credential.php). - The page queries the Polygon Amoy blockchain using Ethers.js to retrieve the canonical on-chain hash and issuer information.
- The page locally computes the SHA-256 hash of the database payload and compares it to the on-chain hash.
- If they strictly match, the UI displays a green "✓ VALID CREDENTIAL" banner along with endorsements and blockchain verification links.
The ProofHer smart contract is already deployed on the Polygon Amoy Testnet at the address configured in js/config.js. The Solidity source code is available in the contracts/ directory for audit and reference.
To interact with ProofHer, you need a Web3 wallet.
- Install MetaMask: Download and install the MetaMask Extension for your browser (Chrome, Brave, Firefox, or Edge).
- Create/Import Wallet: Follow the prompts to set up your wallet and securely back up your recovery phrase.
- Switch to Amoy Testnet: When you visit the ProofHer site and click "Connect Wallet", the site will automatically prompt you to add and switch to the Polygon Amoy Testnet. Click "Approve" and "Switch Network" in MetaMask.
Transactions on the blockchain require "Gas Fees". Since ProofHer is on a testnet, you can get free test MATIC from a "Faucet":
- Copy your Address: Open MetaMask and click on your account address (it starts with
0x...) to copy it. - Visit a Faucet:
- Official Polygon Faucet (Select Amoy Network)
- Alchemy Amoy Faucet (Highly reliable)
- QuickNode Faucet
- Request Funds: Paste your address into the faucet and click "Submit".
- Wait: After 30–60 seconds, you will see ~0.5 to 1.0 MATIC in your MetaMask balance. You are now ready to issue or endorse credentials!
- Clone this repository into your XAMPP/MAMP
htdocsdirectory (e.g.,C:\xampp\htdocs\ProofHer). - Start the Apache and MySQL modules in your XAMPP control panel.
- Import the database schema:
- Go to phpMyAdmin (
http://localhost/phpmyadmin). - Create a database called
proofher_db. - Import
db/schema.sqlto create thecredentialstable.
- Go to phpMyAdmin (
- Open your browser and navigate to:
http://localhost/ProofHer/index.html. - Connect your MetaMask wallet (ensure it's on Polygon Amoy testnet) and test the flow!
For judging or live presentations, follow the steps in docs/DEMO_SCRIPT.md.
ProofHer is a blockchain-powered credential verification platform that allows organizations and communities to issue tamper-proof, privacy-preserving skill credentials for women.
Many women acquire valuable skills through community programs, informal education, and mentorship but lack trusted proof of their abilities. ProofHer solves this by creating verifiable credentials secured by blockchain technology.
Women in many communities gain skills through informal training programs but often lack officially recognized certifications.
Traditional certificates are:
- Easy to forge
- Hard to verify
- Not globally trusted
- Dependent on centralized institutions
This creates barriers to employment, funding, and professional recognition.
ProofHer enables organizations to issue verifiable digital credentials that can be instantly validated using blockchain. Instead of storing personal data on the blockchain, ProofHer stores only a cryptographic hash of the credential, ensuring:
- Privacy protection
- Tamper-proof verification
- Public trust
Anyone can verify a credential in seconds.
From a clean start, the system allows a user to:
- Issue a credential
- Write a verification hash to the blockchain
- Open the verification page
- Confirm that the credential is valid
All within under 60 seconds.
Organizations can issue credentials containing:
- Full Name
- Skill
- Skill Level
- Issuer Organization
- Issue Date
- Evidence URL (certificate or portfolio)
The credential is stored in a database while its hash is stored on blockchain.
Verification compares the stored blockchain hash with a newly computed hash from the credential data.
Results show:
- Valid / Invalid status
- Issuer wallet address
- Blockchain timestamp
- Endorsement count
Each credential includes an Evidence URL linking to proof such as:
- Certificates
- Training documentation
- Portfolio evidence
Certificates are securely hosted using Supabase Storage.
Community members can endorse credentials on blockchain to strengthen trust and credibility.
Credentials can include a QR code linking directly to the verification page.
This allows employers to verify credentials instantly.
- HTML5
- Tailwind CSS
- JavaScript
- Ethers.js
- PHP
- MySQL
- REST APIs
- Solidity Smart Contract
- Polygon Amoy Testnet
- Hardhat Deployment
- Supabase Storage (for certificate evidence)
ProofHer was designed with privacy and security in mind.
Key principles:
- No personal data stored on blockchain
- SHA-256 cryptographic hashing
- Secure backend queries using prepared statements
- Deterministic hashing for verification consistency
- Public blockchain transparency
The smart contract stores:
- Credential ID
- Credential Hash
- Issuer Address
- Timestamp
- Endorsement Count
Functions include:
- issueCredential()
- endorseCredential()
- getCredential()
User → Web Interface ↓ Backend API (PHP) ↓ Database (Credential Data) ↓ Hash Generated ↓ Blockchain Transaction (Polygon) ↓ Verification Page
Start:
Apache
MySQL
Import the file:
db/schema.sql
using phpMyAdmin.
Update the file:
js/config.js
Add your deployed Polygon Amoy contract address.
Visit:
- Issue a credential for a user
- Submit transaction to Polygon
- Copy Credential ID
- Open verification page
- Confirm credential validity
ProofHer supports the following United Nations Sustainable Development Goals:
SDG 5 – Gender Equality
Empowering women with trusted digital credentials.
SDG 8 – Decent Work and Economic Growth
Helping women demonstrate skills for employment and entrepreneurship.
SDG 10 – Reduced Inequalities
Providing equal opportunities for skill recognition.
Built for:
#75HER Challenge Hackathon
Track: Blockchain Focus: Technology solutions for women and marginalized communities.
Future development may include:
- Decentralized identity integration
- Multi-issuer credential networks
- Mobile credential wallet
- Credential NFT support
- Global verification registry
MIT License
Idris Ibrahim Software Developer | Founder | Tech Educator Mission: Empower 1,000,000+ people with technology.