'coins', 'scrap', or an item id.
Signed. Negative is a spend.
What moved the balance - a sale, a boss payout, an admin adjustment.
Optionalusername?: string | nullDisplay name for userId; null when unknown. Absent on APIs predating name resolution.
The wallet balance immediately after this movement, when it was recorded.
Null on almost every row, and that is permanent rather than a gap in old data. Twelve code paths write to this ledger and only the admin coin adjustment records a balance; sales, spends, votes, quests, dock contributions, boss payouts and boosters all leave it unset.
So treat null as "not recorded" and NOT as zero - zero is a real balance, and showing one for the other would misreport a wallet.