
Settlement
Redemptions are paid once an hour, at seven minutes past, in a single transaction that also writes the batch's Merkle root on-chain.

The vault
The vault is a plain wallet. Clients' x402 payments settle into it, and creator fees from $GPUFILES are sent to it by hand after launch. It pays miners in USDG (0x5fc5360D…) and holds a little ETH for gas. What the vault has paid to miners is on the ledger, batch by batch.
The payout contract
A small contract at 0x720F7F3B3D0F998d83512A3b9F2Dd744b204ee6B. It holds no funds. Its one write function, callable only by the vault, is:
settle(uint64 batch, bytes32 root, uint32 notes,
address[] to, uint256[] amount)
// for each i: USDG.transferFrom(vault, to[i], amount[i])
// batch must equal batches + 1, so a batch can never be paid twice
// emits Settled(batch, root, notes, recipients, total)Leaves and proofs
Each redeemed note is one leaf: keccak256(abi.encodePacked(nullifier, recipient, amount)). Pairs are hashed in sorted order up to the root. /api/v1/batches/N?nullifier=… returns the batch with every leaf and a proof for one nullifier, and the payout contract's verify(batch, leaf, proof) checks it on-chain. Anyone can recompute every root from the published leaves.
Holder multiplier
At settlement the pool reads each payout address's $GPUFILES balance. At 100,000 $GPUFILES or more, each of its notes is paid 1.25 times. The leaf records the amount actually paid. Before the token exists every note is paid at face value.
A batch waits when the vault holds less USDG than the queue; it is paid at the next run that the vault can cover.