I spent a week building a counter program in Anchor. By the end, every
user had their own account, a global config singleton controlled whether
new counters could be created, and a close instruction returned the rent
deposit back to the wallet. None of that would have been possible without
Program Derived Addresses.






