Getting Started with DripPay
What is DripPay?
DripPay is a privacy-first on-chain payroll platform built on Fully Homomorphic Encryption (FHE). It lets organizations run payroll entirely on-chain while keeping salary amounts, balances, and disbursements fully encrypted. Nobody can see what anyone earns — not even the blockchain itself.
Built on Ethereum Sepolia with the Zama fhEVM coprocessor, DripPay performs real computations on encrypted data. Salaries are added, balances are updated, and budget checks are performed — all without ever decrypting the underlying values on-chain.
How It Works
The DripPay flow is straightforward:
Create Organization
Employer deploys a payroll smart contract, choosing ETH or ERC-20 payments.
Add Employees
Enter wallet addresses and salary amounts. Salaries are encrypted client-side with FHE before touching the chain.
Deposit Funds
Fund the contract with ETH or tokens to cover payroll.
Run Payroll
One click triggers batch payment. All arithmetic happens on encrypted values.
Employees Withdraw
Employees decrypt their balance with a wallet signature and withdraw real ETH/tokens.
Prerequisites
- A browser wallet (MetaMask, Rainbow, Coinbase Wallet, etc.)
- Sepolia ETH for gas fees and payroll funding
- A modern browser with JavaScript enabled (Chrome, Firefox, Brave, Edge)
Quick Links
For Employers
DripPay gives employers full control over private payroll operations. From creating an organization to exporting payment history, everything is designed to be simple while keeping salary data confidential.
Creating an Organization
Deploy a new payroll smart contract by clicking Create Organization on the employer dashboard. You will choose a name, select the payment currency (ETH or any ERC-20 token), and set a payroll cycle (weekly, bi-weekly, or monthly). A dedicated Organization contract is deployed on Sepolia, and you become its admin.
Adding Employees
Enter each employee's wallet address and their salary amount. The salary is encrypted client-side using Zama's fhevmjs library before the transaction is submitted. The plaintext salary never touches the blockchain.
Depositing Funds
Fund your organization's contract with ETH or ERC-20 tokens. The contract balance must cover the total encrypted payroll before you can execute payments. A real-time USD estimate is shown based on current ETH prices.
Running Payroll
Trigger payroll with a single click. The contract iterates through all employees and performs encrypted addition on each balance: balance[emp] = FHE.add(balance[emp], salary[emp]). All arithmetic happens on ciphertext — no values are ever revealed during execution.
Revealing Salaries
As an admin, you can perform a bulk decrypt of all employee salaries with a single wallet signature. This uses Zama's re-encryption mechanism to decrypt values client-side, so you can review the payroll without exposing data on-chain.
Updating Salaries
Update any employee's salary at any time. The new amount is re-encrypted with FHE and submitted as an encrypted input. The old ciphertext is replaced, and the change takes effect on the next payroll run.
Budget Check
Before running payroll, DripPay performs an FHE comparison between the contract balance and the total payroll cost. This check happens entirely on encrypted values — the contract verifies it has sufficient funds without revealing any amounts.
Payroll Schedule
Configure your payroll cycle to weekly, bi-weekly, or monthly. The dashboard shows upcoming payroll dates and sends reminders. While payroll execution is still manually triggered, the schedule helps you stay on track.
Exporting History
Export your complete payroll history as a PDF report or CSV spreadsheet. Exports include timestamps, employee counts, transaction hashes, and decrypted amounts (if you have previously revealed them).
Payroll Receipts
Each payroll event generates a receipt that can be viewed in the dashboard and printed as a PDF. Receipts include the organization name, date, employee count, total amount (encrypted or revealed), and the on-chain transaction hash.
For Employees
Employees interact with DripPay through a simple portal. Connect your wallet, view your encrypted balance, and withdraw real funds — all while keeping your salary completely private.
Connecting Your Wallet
When you connect your wallet, DripPay automatically discovers all organizations that have added your address as an employee. No setup required — just connect and go.
Viewing Your Balance
Your accumulated payroll balance is stored as an encrypted value on-chain. To view it, you sign a message with your wallet that authorizes client-side decryption. The decrypted balance is displayed only in your browser and is never sent anywhere.
Withdrawing Funds
Withdraw your accumulated balance as real ETH or ERC-20 tokens at any time. The contract decrements your encrypted balance and transfers the corresponding amount to your wallet. You can withdraw partial or full amounts.
Transaction History
View a complete history of all payroll credits and withdrawals associated with your address. Each entry shows the date, type (credit or withdrawal), amount (decryptable with your signature), and the transaction hash.
Payslips
Download encrypted payslips for each payroll cycle. Each payslip contains the organization name, pay period, and your encrypted salary amount. You can decrypt the salary directly on the payslip using your wallet signature, then save or print the document.
Joining an Organization
In most cases, organizations are automatically discovered when you connect your wallet. If an organization is not detected, you can manually join by entering its contract address. This is useful for newly deployed contracts that have not yet been indexed.
Smart Contracts
DripPay's on-chain layer consists of two core contracts deployed on Ethereum Sepolia, powered by Zama's fhEVM coprocessor for encrypted computation.
OrganizationFactory
The factory contract is the entry point for creating new organizations. It deploys individual Organization contract instances and maintains an index of all deployed organizations and their employees, enabling the auto-discovery feature.
Organization
Each organization is a standalone smart contract that manages its own employee list, encrypted salaries, encrypted balances, and payroll execution. All FHE operations (encrypted addition, comparison, and permission grants) happen within this contract.
Key Functions
| Function | Description |
|---|---|
| createOrg(name) | Deploy a new Organization contract via the factory |
| addEmployee(addr, encSalary) | Register an employee with an FHE-encrypted salary |
| removeEmployee(addr) | Remove an employee from the organization |
| updateSalary(addr, encSalary) | Update an employee's encrypted salary |
| deposit() | Fund the contract with ETH (payable) |
| runPayroll() | Execute batch payroll on all encrypted balances |
| withdraw(amount) | Employee withdraws accumulated funds |
| balanceOf(addr) | Returns the encrypted balance handle for an employee |
| budgetCheck() | FHE comparison: contract balance >= total payroll |
| revealSalary(addr) | Admin re-encrypts an employee's salary for viewing |
Contract Addresses (Sepolia)
The contracts are deployed on Ethereum Sepolia with the Zama fhEVM coprocessor. Key infrastructure addresses:
FHE Encryption
What is Fully Homomorphic Encryption?
Fully Homomorphic Encryption (FHE) is a cryptographic technique that allows computation on encrypted data without decrypting it first. The results, when decrypted, are identical to performing the same operations on the plaintext. Think of it as doing math inside a locked box — you get the right answer without ever opening the box.
How DripPay Uses FHE
DripPay leverages Zama's fhEVM, a coprocessor on Ethereum Sepolia that extends the EVM with FHE capabilities. The flow works in three stages:
- Encrypt inputs: Salary amounts are encrypted client-side using fhevmjs before being sent to the contract.
- Compute on ciphertext: The smart contract performs arithmetic (add, compare) on encrypted values using Zama's TFHE library.
- Decrypt outputs: Only authorized users (the employee or admin) can request re-encryption and decrypt values client-side.
Client-Side Encryption
When an employer sets a salary, the plaintext amount never leaves the browser. The fhevmjs library encrypts it into an FHE-compatible ciphertext that can be processed by the Zama coprocessor:
On-Chain Encrypted Math
Inside the smart contract, all salary and balance operations use Zama's TFHE library. The EVM never sees plaintext values:
Client-Side Decryption
When an employee wants to view their balance, they sign an EIP-712 message that authorizes the Zama gateway to re-encrypt the value with a key only they hold:
Why FHE Over Other Privacy Tech?
There are several approaches to blockchain privacy — here is why DripPay chose FHE:
| Approach | Compute on Encrypted Data? | On-chain State? |
|---|---|---|
| FHE (Zama) | Yes - full arithmetic | Yes - encrypted |
| ZK Proofs | No - only verification | Yes - committed |
| MPC | Yes - distributed | No - off-chain |
FHE is uniquely suited for payroll because it allows the smart contract to add encrypted salaries to encrypted balances and compare encrypted totals — operations that ZK proofs and MPC cannot perform directly on-chain.
Features
A comprehensive list of everything DripPay offers.
Encrypted Salaries
All salary amounts are FHE-encrypted before reaching the blockchain. No one can see what anyone earns.
Batch Payroll
Execute payroll for all employees in a single transaction. Encrypted addition across all balances.
Employee Auto-Discovery
Employees are automatically found when they connect their wallet. No manual configuration needed.
Salary Updates
Re-encrypt and update any employee's salary at any time. Changes take effect next payroll cycle.
Budget Check
FHE comparison verifies the contract has sufficient funds without revealing any amounts.
Reveal All Salaries
Admins can bulk-decrypt all salaries with a single wallet signature for review.
Encrypted Payslips
Employees download payslips with encrypted salary data and decrypt them client-side.
Export History
Export complete payroll history as PDF reports or CSV spreadsheets.
Multi-Currency USD Estimates
Real-time USD value estimates for ETH balances and transaction costs.
Payroll Scheduling
Set weekly, bi-weekly, or monthly payroll cycles with upcoming date tracking.
Interactive Demo
Try DripPay with mock data before deploying real contracts. Full end-to-end flow simulation.
Confetti on Payroll
Because running payroll should feel good. Celebratory confetti animation on successful execution.
Real-World Use Cases
DripPay isn't just a hackathon demo - it solves real problems for real people across the globe. Here's who benefits most from confidential on-chain payroll.
Emerging Markets with Capital Controls
In countries like Argentina and Nigeria, strict capital controls make it difficult to receive international payments. Companies already pay contractors in crypto to bypass these limitations. But on a public blockchain, every payment is visible - exposing salary data to governments, competitors, and the public. DripPay encrypts these payments so companies can pay globally while keeping compensation private.
Cross-Border Remote Teams
Distributed teams across different countries face a dilemma: pay on-chain for speed and transparency, but expose everyone's salary to each other. A senior engineer in the US earning $15k/mo and a junior developer in Southeast Asia earning $2k/mo shouldn't have to know each other's compensation. DripPay lets companies pay everyone on the same chain with the same contract - while keeping individual amounts confidential.
DAO Contributor Payments
DAOs often pay contributors through public on-chain proposals. This means every community member can see what every contributor earns - leading to compensation disputes, politics, and talent loss. DripPay lets DAOs run payroll where the total budget is verifiable but individual payments are encrypted. The treasury multisig executes payroll, and only each contributor can see their own allocation.
Freelancer and Contractor Payments
Freelancers working with multiple clients don't want Client A to see what Client B pays them. On public blockchains, any client can look up the freelancer's wallet and see all incoming payments. DripPay ensures that each payment from each organization is encrypted independently - only the freelancer and that specific employer can see the amount.
Compliance-Sensitive Industries
Industries like finance, legal, and healthcare have strict rules about compensation privacy. Public blockchain payroll is a non-starter in these sectors. DripPay bridges this gap - salaries are on-chain (auditable, trustless, automated) but encrypted (private, compliant). This opens up on-chain payroll for industries that previously couldn't consider it.
Frequently Asked Questions
Ready to get started?
Launch DripPay and experience private on-chain payroll.
Built with FHE by DripPay for PL Genesis: Frontiers of Collaboration Hackathon