Skip to main content

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:

BracketRate
Base band0%
Middle band25%
Upper band40%

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