Legato
Powered by Noir + Tempo

Private payroll that flows.

Employees receive their salary without revealing the amount to anyone on-chain — verified by a zero-knowledge proof, paid in pathUSD on Tempo Testnet.

How value flows

From HR to employee — connected, private, verified.

Employer

deposits encrypted notes

Shielded pool

shared commitment tree

ZK proof

generated in-browser

Payment

pathUSD paid out

Privacy by default

Your salary stays yours. The on-chain proof reveals nothing about the amount.

In-browser proving

Your browser runs the ZK prover locally with NoirJS + Barretenberg WASM — nothing secret leaves your device.

On-chain verification

A Solidity verifier checks the proof before a single pathUSD moves.

How it works

  1. 1HR deposits each salary into the shared shielded pool as an encrypted note — the amounts are visible, but who they belong to never appears on-chain.
  2. 2An employee connects a passkey wallet — their browser scans the pool and decrypts the notes that belong to them.
  3. 3The browser generates a ZK proof of ownership plus a nullifier — proving the note is theirs without revealing which deposit funded it.
  4. 4The contract verifies the proof and pays pathUSD to the employee, re-shielding any remainder as a fresh note.

See it run on Tempo.

Set up a payroll, or claim a salary with a zero-knowledge proof generated in your browser.