ShadowLedger
Private payroll workflow · Complete through August 25

Build and commit here.
Keep every row here.

Enter allocations manually or import a CSV, then generate salted Poseidon leaves, positional proofs, and a canonical public manifest without sending the payroll book anywhere.

Today's exit gate

Three proofs. One root.

Every demo row must verify against the same padded Merkle root. Changing any amount, recipient, memo, salt, sibling, or direction must fail locally.

Wallet

Not connected

Network guard

Required: SN_MAIN

Privacy capability

Not checked

Shielded balance

—

Connect a privacy wallet

Connection only continues after the wallet reports Starknet mainnet. Ready X is the explicitly supported wallet for this milestone.

Scanning for Starknet wallets…

Tiny mainnet shield

Deposit public STRK into the private pool. The wallet owns note discovery and proving; this app receives no viewing key.

Safety cap: 1 STRK. Recommended first proof: 0.001 STRK. Gas also applies.

Tiny private transfer

Send one technical STRK20 payment only after the recipient independently passes the activation check. There is no public-transfer fallback.

Keep the address mapping private. The sender cannot query another account's registration through Wallet API 0.10.3.
Technical-payment cap: 0.1 STRK. The privacy action fee and gas are additional; review the complete Ready X prompt before approving.

Recipient gate

Activate and verify three demo recipients first.

Each recipient opens Ready X, enables its privacy flow, then connects to ShadowLedger for a mainnet capability and private-balance check.

Open recipient activation
  • Recipient ARequired for this transfer
  • Recipient BPrepare for payroll batch
  • Recipient CPrepare for payroll batch
Registration and every privacy action are mainnet operations. Review all fees and gas in Ready X; never expose a recovery or viewing key.
Browser-only privacy boundary

Import and validation make zero application requests. Rows stay in this tab and are cleared on refresh.

Token

STRK18 decimals

Rows

3Private batch: 3–5

Aggregate

0STRK

Validation

WaitingLocal checks only

Import CSV

Use recipient,amount,memo. Header case and surrounding spaces are ignored; memo is optional.

No file selected.

Exact validation rules

  • Starknet account address, non-zero, no duplicates
  • Plain decimal only; no negatives or scientific notation
  • No more than 18 decimal places
  • Aggregate must remain inside Starknet's felt range

Manual payroll form

Recipient allocations

#RecipientAmount (STRK)Memo (optional)Actions
1
2
3

Local Poseidon commitment

Commit the total, not the payroll book.

Poseidon · v1

Generate one salted leaf per validated row, positional inclusion proofs, and a canonical public manifest. No network or wallet request occurs here.

The mainnet account that will create the registry run.
Trimmed and NFC-normalized before Starknet Keccak.
Increment for every payroll run in this organization.