← back to projects

BlocPaie

Feb 2026 – Mar 2026
FHEZAMAEIP-7702PayrollPrivacyUSDC

// the problem

Payroll on-chain has an obvious problem: salary is public. You wouldn't accept a paper paycheck that announces your wage to everyone in the building. The same is true for on-chain payments — every contractor can see what everyone else earns, every competitor can analyze your headcount costs, every regulator can map your entire org chart. The naive fix (off-chain computation) just recreates a trusted intermediary. FHE is the real answer: computations on the encrypted values themselves.

// the design decision

ZAMA's FHE library allows arithmetic on encrypted integers without decryption. All sensitive values — salary amounts, payee addresses, cheque statuses — are FHE-encrypted client-side in the browser before any transaction is submitted. The platform offers two vault options: a transparent ERC-20 vault for compliance-focused organizations and a confidential vault providing complete privacy. Porto smart accounts powered by WebAuthn passkeys handle authentication, and all transactions are gasless via Ithaca Relay sponsorship.

// key implementation detail

The platform distinguishes between data storage layers: plaintext invoice metadata resides in the backend database for responsive dashboard performance, while all sensitive values are FHE-encrypted client-side. The blockchain serves as a verifiability layer — immutable timestamped records let auditors confirm payments occurred and validate commitments against invoice hashes without decrypting individual salary figures. The stack includes Solidity smart contracts with 88 tests, an Express-based REST API, and a Next.js frontend deployed on Ethereum Sepolia.

// what i learned

FHE is still expensive and slow. The current ZAMA implementation has significant gas overhead compared to plaintext computation — the tradeoff is only worthwhile when confidentiality is a hard requirement. EIP-7702 + passkeys is a genuinely good UX improvement for non-crypto-native users; the account abstraction layer is invisible to the end user.