CyberPay Payroll is a confidential payroll and treasury stipend demo tailored for the OpenBuild x Zama bounty.
It focuses on a practical and compliance-friendly scenario:
- Employees keep salary data private onchain.
- Finance admins can execute monthly payroll cycles.
- Treasury can audit encrypted aggregate budget states.
This repository intentionally optimizes for judging criteria:
- Real-world value: payroll and stipend workflows are practical.
- Compliance awareness: supports role-based visibility and audit-ready aggregation.
- Technical implementation: uses Zama FHE encrypted integer types (
euint64) in contract state and arithmetic. - Usability: includes frontend demo, deployment script, and submission template docs.
contracts/CyberPayPayroll.sol: confidential payroll contract using Zama FHE types.scripts/deploy.ts: deployment helper.scripts/seedDemo.ts: local demo data seeding helper.frontend/: lightweight web demo UI for wallet connection and key flows.
npm installnpm run compilenpm run nodenpm run deploy:localThis writes frontend/deployment.json automatically.
CONTRACT_ADDRESS=<your_deployed_address> npm run seed:localnpm run frontend:serveOpen http://localhost:4173, paste deployed contract address, then:
- Connect wallet (MetaMask -> Localhost 8545).
- Load contract.
- Admin configures employee stipend (plain demo input).
- Admin runs payroll cycle.
- Employee claims stipend.
- Treasury dashboard shows allocated/claimed totals and employee mirrors.
- demoMode = true (default deploy script): supports plain-value endpoints for reliable live demo:
configureEmployeePlainclaimPlain
- Production encrypted endpoints remain available:
configureEmployee(externalEuint64, proof)claim(externalEuint64, proof)
- Admin configures employee stipend.
- Admin runs payroll cycle for a list of workers.
- Each worker claims partial or full accrued stipend.
- Treasury tracks total allocation and total claimed.
- Dashboard renders payroll state and employee ledger.
- Smart contract + frontend demo both runnable
- Complete README and architecture notes
- 2-minute real human on-camera pitch video
- Demo shows confidentiality + role-based access behavior
- For award submission, keep demo mode for reliability in video, and explicitly explain that production flow uses encrypted endpoints.
- If needed, add a dedicated production page that integrates Zama client SDK encryption and proof generation end-to-end.