ShadowPay is a privacy-focused payroll platform that enables private payroll flows on-chain
Employers can run monthly payroll seamlessly while leveraging U to keep salaries private. Employees receive their payments in shielded balances, ensuring that each person’s exact compensation remains confidential. Zero-knowledge proofs allow full access and withdrawal of funds without revealing individual salaries, combining payroll efficiency with strong privacy protections.
Key features:
Private payroll – salaries are distributed without exposing individual amounts. Employee control – employees can view their own balances and withdraw funds securely. Zero-knowledge privacy – leverages ZK proofs to keep payroll data confidential. Employer efficiency – employers can submit monthly payroll in a batch transaction. Secure workflows – AI-assisted development and isolated environments ensure safe development practices.
| Layer | Tech |
|---|---|
| Frontend | Vue 3 + Vite + Tailwind CSS + Pinia |
| Backend | Express (local) / Vercel serverless (prod) |
| Privacy | @unlink-xyz/sdk — ZK-shielded transfers, real bech32m Unlink addresses |
Import the repo in v, then add these environment variables:
| Variable | Description |
|---|---|
| UNLINK_API_KEY | From u dashboard |
| UNLINK_ENGINE_URL | https://staging-api.unlink.xyz |
| MASTER_MNEMONIC | BIP-39 mnemonic — index 0 = employer, index N = employee N |
| EMPLOYER_PRIVATE_KEY | private key for employer account |
| EMPLOYER_PASSWORD | Password for the employer dashboard |
| RPC_URL | RPC to base sepolia |
employer123alice123bob123carol123USDC on base sepolia is used as payment token: 0xC1a5D4E99BB224713dd179eA9CA2Fa6600706210
Claude (AI assistant) was used to aid in code generation, testing, deployment, and workflow automation.
Security Note: To ensure safety while experimenting with AI and untrusted code/libraries, all AI interactions were performed in isolated environments using a dedicated GitHub account and virtual machines. Certain agentic workflows had full control of this codebase, and not all parts of the code underwent in-depth human review.
For reference, my main GitHub account is: D

