Payroll with Zero-Knowledge Proofs
The payroll system lets employers (including government entities) submit payroll to BelizeChain without revealing individual salaries, while validators verify correctness and earn PoUW rewards.
Status: The payroll connector exists in Nawal and the Payroll pallet is in the runtime, but end-to-end payroll-on-chain operation has not been verified live on the testnet. Treat this page as the design contract.
How It Works
┌──────────────┐
│ Employer │
└──────┬───────┘
│ 1. Submit payroll
┌──────▼───────────────────┐
│ PayrollConnector │
│ ├─ Calculate taxes │
│ ├─ Build Merkle tree │
│ └─ Generate ZK proofs │
└──────┬───────────────────┘
│ 2. Submit to chain
┌──────▼───────────────────┐
│ Payroll pallet │
│ ├─ Verify proofs │
│ ├─ Store commitments │
│ └─ Reward validators │
└──────┬───────────────────┘
│ 3. Verification
┌──────▼───────────────────┐
│ Validators │
│ ├─ Verify Merkle tree │
│ ├─ Check tax calcs │
│ └─ Earn PoUW rewards │
└──────────────────────────┘
Privacy Model
- Merkle commitments — each payroll batch commits to all salaries in a single root hash
- Individual proofs — an employee can prove their own salary and tax entry without revealing anyone else's
- Validator verification — validators check the tree structure and tax arithmetic against the commitment, never the raw values
Tax Calculation
The connector applies Belize tax brackets when constructing the payroll commitment:
| Bracket | Rate |
|---|---|
| Base band | 0% |
| Middle band | 25% |
| Upper band | 40% |
Quick Start
git clone https://github.com/BelizeChain/nawal-ai.git
cd nawal-ai
pip install -r requirements.txt
from blockchain.payroll_connector import PayrollConnector
connector = PayrollConnector(node_url="ws://localhost:9944")
Automation
Payroll runs can be scheduled (monthly, biweekly) through Xandross automation flows, or driven by the Payroll pallet's batch submission API directly.
Related
- Payroll pallet — runtime index 26
- Nawal integration
- Identity and compliance