Skip to content

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

  1. 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.
  2. 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.
  3. Eligibility. Apply the $50 floor at the window's published price and the excluded-address list. Compare to the snapshot.
  4. Distribution. Multiply the credits share by each eligible weight over the total, round with largest remainder, and compare to the published credits.
  5. 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.