Skip to main content
Both are live and produce the same statement format. The statement identifies its evidence payer, so a lender can distinguish them and apply a payer-specific policy. What each payer publishes could not be more different.

Semuni: pays off-chain, anchors a commitment

Semuni represents an off-chain payer. Here is the complete on-chain record of one three-period testnet batch, anchored in September 2026:
Open the transaction on Etherscan and read the receipt yourself: three commitments, and no recipient, period, amount or salt. Attestcoin authenticates that Semuni anchored those values; it does not prove that a bank transfer settled. A later zero-knowledge proof can bind private preimages to those same accepted commitments and reveal only a band.
164 bytes, zero value, three hashes. That is the entire cost and the entire disclosure.

Demo Payroll: pays on-chain

The same system, the opposite choice. Demo Payroll pays in an ERC-20 on Sepolia, so runPayroll() emits the transfer, the payment record and the anchor in one transaction, and Attestcoin authenticates the transfer itself, not merely an assertion about it. The cost is that the amount is public. It is in the Transfer log, in the PaymentMade event, and readable directly:
That is not a leak. It is what paying on a public chain means, and it is true of any ERC-20 payroll whether or not Orru exists.

Side by side

Which should you be

Anchored, almost certainly. Unless you already pay in an ERC-20 on Ethereum, anchoring is the only option, and it is the better one for your workers, because their salaries stay private. The transparent model exists here so the whole chain can be audited end to end. It is a demonstration choice, not a recommendation.

What a judge or auditor can check

Every step is on a public explorer and none of it requires trusting us:
1

The anchor on Ethereum

The transaction above, on Etherscan. Three hashes and no private preimage.
2

The Attestcoin verification on Creditcoin

acceptedByPayer(commitment, payer) on the attestation registry returns true. The proof was verified by the native precompile, not by us.
3

The statement

statusOf(credentialId) returns valid, with the band and the evidence date.
4

The payout

25 mUSDC moved from the credit pool to the worker, against a statement that never carried an amount.