Reproducing a window
Hourly accounting is done in POMY's database rather than on chain. To keep it honest, every closed window is reproducible from public data.
What a window publishes
For each closed window, POMY publishes:
- Start and end timestamps (UTC), and the Solana slot range they map to.
- Fees received during the window, with their Solana transaction signatures.
- The 80/20 split in cents.
- The eligibility snapshot: every address with a non-zero time-weighted balance, its balance, whether it was eligible, and its weight.
- The per-address credits awarded, in cents.
- A Merkle root over the snapshot.
What you can check
- Fees. Every fee harvest is a Solana transaction. Sum the value arriving in the vault address within the slot range and compare to the published total.
- Balances. Time-weighted balances derive from the $POMY mint's transaction history. The verification script replays it from a public Solana RPC — the pre/post token-balance deltas of each transfer, in base units (6 decimals) — and recomputes each address's time-weighted balance for the window.
- Eligibility. Apply the $50 floor at the window's published price and the excluded-address list. Compare to the snapshot.
- Distribution. Multiply the credits share by each eligible weight over the total, round with largest remainder, and compare to the published credits.
- Root. Recompute the Merkle root over the snapshot and compare.
Running it
npx pomy-verify window 1481 --rpc https://your-solana-rpc
The script prints each check with PASS or FAIL and the values it computed. It needs an archive-capable RPC for old windows; the public endpoint in the footer is sufficient for recent ones.
Reconciliation
Independently of verification, POMY's indexer reconciles a sample of balances against the chain's token accounts, via a public Solana RPC, every few minutes and alerts the team on drift. Drift incidents and their resolution are recorded in the status page.