Premium posts — a new [charge=10]…[/charge] BBCode shows a locked box in place of the content until the reader pays credits; the author is credited and sees how many members unlocked it (and what it earned). One purchase unlocks the post, so the post's price is the highest charge block it contains. Authors, staff, and a bypass permission see it free. This is a credits-gated display, not content protection.
Wallet — the /credits page now holds the balance, redeem, transfer, and paged history (10/page by default, with 10/20/50 per-page links).
Profile Credits tab — per-member balances plus a Send credits form; on single-currency forums your own tab loads the wallet.
Display options — new toggles for the wallet redeem/transfer and the profile tab mode (auto/wallet/member), alongside the postbit, menu, profile-stat, and profile-tab toggles.
Editor button — a lock button in the rich-text toolbar inserts the charge tag.
Prune history now works on MySQL 8 — the tool page no longer errors (the preview query used a reserved word as a column alias). Pruning itself was unaffected.
Pruning now preserves reaction dedupe markers, never deletes rows from the current earning day, and prunes net-zero rows (the retention window now applies to everyone).
Profile wallet respects profile privacy, and hidden currencies no longer leak in the history switcher or the profile stat.
Leaderboard widget gains a Show to guests option.
Currency deletion is blocked while balances or pruned snapshots remain.
Profile wallet — profile pages show balances, a transfer shortcut, and recent history in one place.
Configurable daily boundary — the daily-visit day follows UTC (default), board time, or a fixed UTC offset; registration-day skip uses the same boundary.
History pruning — summarize old ledger rows into balance snapshots and delete them; balances and rebuilds stay exact. New retention option and AdminCP tool; redeem/backfill rows are kept.
Top credit holders widget — a placeable leaderboard by balance, with a configurable count and currency.