π‘οΈ Proofly - A Decentralized Cryptographical Employment State Verification Solution for Legal & Social Proof
π Built at Legal Tech Hackathon 2025 π
Blockchain-powered employment verification using cryptographic proofs for legal compliance and fraud prevention
Proofly is a decentralized employment verification system built on the Internet Computer Protocol. It leverages blockchain's cryptographic properties to create tamper-proof, privacy-compliant verification codes that can be used for legal documentation, background checks, and regulatory compliance.
Unlike traditional verification systems that rely on centralized databases and manual processes, Proofly uses SHA-256 cryptographic hashing and immutable blockchain storage to provide instant, verifiable employment proofs without storing sensitive personal data.
Global businesses struggles in employment verification process. "PROOFLY" uses blockchain's cryptography verification properties to create a tamper-proof solution mainly to proof - to 3rd parities interested - the existence and state of a relationship between a "specific" employee and a "specific" institution. i.e. whether he/she is really employed - or have been employed before - by that institution or not!
Professional networks and remote work have created new vulnerabilities for employment fraud:
1. Professional Impersonation
- Fraudsters pose as HR managers or recruiters from legitimate companies
- Target job seekers on professional platforms to steal data or extract free work
- No reliable way to verify someone's actual employment status in real-time
2. Resume & Credential Fraud
- False employment claims are widespread but difficult to detect
- Traditional background checks are slow, expensive, and rely on manual verification
- No cryptographic proof of employment history
3. Legal & Compliance Gaps
- Employment disputes lack tamper-proof evidence
- Regulatory requirements demand verifiable records
- Cross-border verification is complex and unreliable
4. Privacy Concerns
- Current systems require sharing extensive personal data
- GDPR/CCPA compliance is challenging with centralized databases
- Employees lack control over their employment verification data
5. Centralization Risks
- Single points of failure in verification systems
- Databases can be hacked, manipulated, or taken offline
- No transparency in verification processes
- Legal Teams - Cryptographically-signed employment verification for litigation
- HR Departments - Instant background checks with blockchain-backed proof
- Compliance Officers - Auditable verification trail for regulatory requirements
- Recruitment Agencies - Fraud-proof employment history validation
- Social Platforms - Verify professional credentials on LinkedIn, Twitter, etc.
- Financial Institutions - Employment validation for loan applications and KYC
As employment verification is critical in some use-cases like:
- β Professional Requirements: Background and experience checks.
- πΈ Financial eligibility: Employment-based aids and loans.
- βοΈ Employment Litigation: Employment disputes.
- π Labor laws in other countries: Professional visa eligibility.
2. LinkedIn Recruitment Fraud Pandemic (Reference 1).
LinkedIn users are facing lots of Fraud hassles everyday like:
- π€₯ SCAM: Fake jobs causes identity or money theft plus malware distribution
- π¨βπ» Company Impersonation: Can harm proposed employees or cause brand attacks.
- πΏ Fraud Social Engineering: Can cause crypto wallet theft.
- π₯·π» Employee Impersonation: Can cause gaining access to unrightful privileges.
- 68% of job seekers encounter fake recruiters (Ghost Jobs) (Reference 2), (Reference 3).
- $3.9B lost annually to employment scams of which $$2B+ in US only (Reference 4).
- No verification mechanism for both recruiter/employee authenticity.
- Lawsuits against legitimate companies for scams they didn't commit.
A decentralized legal verification platform providing cryptographically-secured proof codes serving as a "proof of employment" both current and historical.
Think of PROOFLY as a "Digital notary for employment" instant, free, tamper-proof, and privacy-compliant.
- Company Registration: Company X register at PROOFLY.
- Employees Authentication: Company X's admin authenticate their employees.
- Employee Authorization: Company X's admin authorize employees/x-employees to generate a proof of employment.
- Proof Generation: Employee/X-employee generates unique proof code valid for a specific period of time.
- Instant Verification: Any 3d party can verify employee/x-employee claim to be/have been employed publicly without logining to PROOFLY.
IMPORTANT NOTE: The scope of the project submitted to the LegalHack 2025 does not include all the milestones of the project. We are only submitting the 1st Milestone of the project which covers all the above five steps mentioned under "How it works"! The rest milestones will be developed one after the other after the Hackathon.
1. Tamper-proof records: Employment data cannot be altered once recorded. Like court records sealed by immutable audit trail that serves as abiding order/evidence.
2. Cryptographic verification:
- Mathematical proof of code authenticity.
- Like notary seal and impossible to forge.
- Courts increasingly accept cryptographic evidence particularly as the legal system adapts to new technologies like blockchain.
- Cryptographic verification methods, particularly digital signatures using public key infrastructure (PKI) which meets and even exceed legal authentication standards in most jurisdictions worldwide.
- Legislation in many countries grants these methods in the same legal weight as traditional handwritten signatures for most transactions.
3. Decentralized (no single point of failure)
- Not controlled by any entity.
- Records persist permanently.
- Like public records accessible to anybody concerned.
- No vendor lock-in.
- Instant cross-border verification.
4. Privacy by design
-
Only essential information stored.
-
GDPR-compliant from ground up:
Β Β β Data Minimization: Only essential data (company, employee ID, timestamp).
Β Β β Purpose Limitation: Used only for employment verification.
Β Β β Storage Limitation: Proof code expires after a specific period of time.
Β Β β Right to be Forgotten: Records can be removed.
Β Β β Privacy by Design: No tracking or profiling. -
No verification history tracking which considered bad from privacy concerns and data security risks points of view.
βTraditional: Employee waits 2-3 weeks for employer letter (in some cases) β embassy delays processing β opportunities may be missed!
β With PROOFLY: Employee gets instant proof code β embassy can verify in 5 seconds β visa processing continues afterwards.
βTraditional: Opposing party claims employment β subpoena records β Wait weeks β time lost in delays.
β With PROOFLY: Request proof code β cryptographic verification in seconds β proof can reach court fast β no subpoena needed.
βWithout PROOFLY: Job seeker receives a job proposal with no way to verify it's authenticity β he/she shares personal data β he/she became a fraud victim (Reference 1).
β With PROOFLY: Recruiter provides code β job seeker verifies instantly β if valid it is safe to proceed and if not job seeker is aware.
- Verification time: Traditionally too long.
- High cost: Cost per verification is very high and sometimes not possible.
- Trustworthiness: High percentage of job seekers encountering scam everyday.
- Financial losses: Annual losses to employment fraud around $2B+ in US only.
- Avilability: Limited.
- Verification time: Around 5 secondsβ‘
- Very low cost: some cents π°
- Trustworthiness: Near 100% Fraud prevention π
- Financial losses: NONE.
- Avilability: Global availability π
Time Savings:
- Immigration: Saves weeks and sometimes a month per application.
- Due diligence: Reduce timeline by huge percent.
- Litigation: Instant vs. weeks of subpoenas obstacles.
Cost Savings:
- Eliminate verification fees.
- Reduce paralegal time.
- Faster case resolution.
Risk Reduction:
- No forged letters! Cryptographic proofs presented to courts.
- GDPR compliance built-in.
- Reduces exposure to abuses and corruption.
This guide explains how to run Proofly locally on your machine for testing and development.
Before starting, make sure you have the following installed:
- Node.js (v18+ recommended)
- DFX SDK
- npm or pnpm
- Internet Identity (optional for local authentication testing)
Follow these steps to run Proofly locally:
# 1οΈβ£ Clone the repository
git clone https://github.com/AbdoViper23/Proofly.git
# 2οΈβ£ Navigate to the project directory
cd Proofly
# 3οΈβ£ Generate Candid bindings for the backend canister
dfx generate backend
# 4οΈβ£ Navigate to the frontend folder
cd frontend
# 5οΈβ£ Install dependencies
npm install # or pnpm install
# 6οΈβ£ Build the frontend
npm run build
# 7οΈβ£ Start the local Internet Computer replica
dfx start --background
# 8οΈβ£ Deploy canisters locally
dfx deployThe Proofly project is organized into clear layers separating frontend, backend, and configuration files for maintainability and scalability.
Proofly/
βββ backend/ # Internet Computer backend canister (Rust)
β βββ src/ # Rust source code (logic, storage maps, functions)
β βββ Cargo.toml # Rust dependencies and project config
β βββ Cargo.lock
β
βββ frontend/ # Next.js + TypeScript frontend application
β βββ pages/ # Next.js routes (public & private pages)
β βββ components/ # Reusable React UI components
β βββ hooks/ # Custom React hooks (e.g., wagmi, auth)
β βββ lib/ # Utilities (DFX bindings, API helpers)
β βββ public/ # Static assets (logo, icons)
β βββ styles/ # Global CSS and Tailwind styles
β βββ package.json # Frontend dependencies and scripts
β
βββ .dfx/ # DFX local environment (auto-generated)
βββ dfx.json # Canister configuration and network settings
βββ README.md # Project documentation
βββ LICENSE # Open-source license information
1. Internet Identity v2
- Decentralized, passwordless authentication using biometrics
- Privacy-preserving: unique Principal ID per user/application
- Cross-platform support without password risks
2. Principal-Based Identity
- User Principals: Cryptographically unique identifiers
- Canister Principals: Smart contract identifiers
- Caller Authentication: Backend verifies identity on every request
3. Canister Smart Contracts
- Backend Canister (Rust): Core logic with tamper-proof storage
- Frontend Canister: Entire Next.js app hosted on-chain
- Stable Memory: Persistent storage survives upgrades
4. Cryptographic Verification
- Chain Key Cryptography: Tamper-proof records via threshold signatures
- Public Verification: Anyone can verify proof codes instantly
- Immutable Audit Trail: Permanent, verifiable records
5. Decentralized Infrastructure
- 100% On-Chain: No traditional servers needed
- Global Access: Fast verification from anywhere
- Low Cost: Efficient cycles model, no user gas fees
6. Performance Optimization
- Query Calls: Fast read-only verification (sub-second)
- Update Calls: Secure writes with consensus
- Inter-Canister Communication: Secure frontend-backend integration
ICP provides the perfect foundation for Proofly:
- β Legal-grade cryptographic proofs (court-admissible)
- β decentralization
- β GDPR-compliant by design
- β Global instant verification
- β Cost-efficient (pennies per verification)
- β User-friendly (no crypto wallets required)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Employee Authentication β
β β’ Caller principal extracted from ICP runtime β
β β’ Verify caller is registered employee of company β
β β’ Access control: is_works_on(user_id, company_id) β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. Random Code Generation (Cryptographically Secure) β
β β’ Call ic_cdk::management_canister::raw_rand() β
β β’ 62-character alphabet: [A-Za-z0-9] β
β β’ Generate 10-character random string β
β β’ Entropy: 62^10 β 839 trillion combinations β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. Proof ID Assignment β
β β’ Atomically increment NEXT_PROOF_ID counter β
β β’ Combine: proof_code = RANDOM_CODE + "-" + PROOF_ID β
β β’ Example: "k3Lp9mQx7n-1234567890" β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. SHA-256 Hashing β
β β’ Input: Full proof code (plaintext) β
β β’ Algorithm: SHA-256 (NIST FIPS 180-4 standard) β
β β’ Output: 256-bit hash (64 hex characters) β
β β’ Example: "a1b2c3d4e5f6..." β
β β’ Properties: Collision-resistant, pre-image resistant β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5. Blockchain Storage β
β β’ Store Proof struct in PROOF_MAP β
β β’ Fields: β
β - code: SHA-256 hash (NOT plaintext) β
β - company_id: String β
β - employee_id: Principal ID β
β - created_at: u64 (nanoseconds) β
β - expires_at: created_at + 24 hours β
β - is_used: false (initially) β
β β’ Persisted in stable memory (survives upgrades) β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 6. Return Plaintext Code β
β β’ Send proof_code to employee (ONE TIME ONLY) β
β β’ Never stored in plaintext anywhere β
β β’ Employee responsible for secure storage β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Parse Input Code β
β β’ Input: "k3Lp9mQx7n-1234567890" β
β β’ Extract PROOF_ID: Split at position 10+1 β
β β’ RANDOM_CODE: "k3Lp9mQx7n" β
β β’ PROOF_ID: "1234567890" β Parse to u128 β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. Blockchain Lookup β
β β’ Query PROOF_MAP.get(PROOF_ID) β
β β’ Returns Option<Proof> β
β β’ Error if not found: "Proof not found" β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. Expiration Check β
β β’ Get current time: ic_cdk::api::time() β
β β’ Compare: current_time > proof.expires_at β
β β’ Error if expired: "Proof expired" β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. Usage Check (Replay Attack Prevention) β
β β’ Check: proof.is_used == true β
β β’ Error if already used: "Proof already used" β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5. Cryptographic Verification β
β β’ Hash input RANDOM_CODE with SHA-256 β
β β’ Compare: computed_hash == stored_proof.code β
β β’ Constant-time comparison (timing attack resistant) β
β β’ Error if mismatch: "Proof code mismatch" β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 6. Mark as Used & Return β
β β’ Set proof.is_used = true β
β β’ Update PROOF_MAP with modified proof β
β β’ Return Ok(Proof) with all metadata β
β β’ Includes: company_id, employee_id, timestamps β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββThis project was developed during Legal Tech Hackathon 2025 to address the critical need for cryptographically-verifiable employment records in legal proceedings and compliance.
"How can blockchain technology improve legal compliance and fraud prevention in employment verification?"
Proofly demonstrates how:
- Blockchain immutability creates tamper-proof legal evidence
- Cryptographic hashing prevents document forgery
- Decentralized architecture eliminates single points of failure
- Privacy-preserving design meets GDPR/CCPA requirements
- Public APIs enable global verification without intermediaries
π Built on the Internet Computer Protocol (ICP) π
β Star this repo if you believe in decentralized legal tech! β
Deployment:
- Frontend Canister: 5kykv-2qaaa-aaaas-qcs6q-cai
- Backend Canister: 5nzmb-xiaaa-aaaas-qcs6a-cai
- Live URL: https://5kykv-2qaaa-aaaas-qcs6q-cai.icp0.io/
Repository:
- GitHub: https://github.com/AbdoViper23/proofly`
- License: MIT
- LinkedIn β Digital Cyber Blockchain
- Reddit β Recruiting Hell: 68% of Hiring Managers Admit to Posting Ghost Jobs
- CIO β Beware the Rise of Ghost Jobs
- Aerotek β Impact of Job Scams on Job Searches
- PR Newswire β 48% of US Workers Surveyed Say They Are on the Job Hunt
- Jobs.ca β How to Spot Fake Job Postings
- TryScamShield β Job Scam Awareness
- LinkedIn News β Could You Fall for a Job Scam?
- Denim β Freight Fraud Prevention Resources
A Decentralized Cryptographical Employment State Verification Solution for Legal & Social Proof that:
β
Leverages ICP's unique features (tamper-resistance, identity, cryptography, speed, decentralized hosting).
β
Solves real legal and social problems (compliance + scam protection).
β
Runs 100% on-chain.
β
Protects both employers and employees.
β
Scales globally across jurisdictions.
Built with β€οΈ on the Internet Computer Protocol.
Developed for LegalHack 2025.
Transforming employment verification to the digital age.