On Day 31 of MLH's 100DaysofSolana, I built a Token-2022 mint with a transfer fee extension. The instructions included one sentence that I didn't think much about at the time:

"Extensions must be configured when the mint is first created; you cannot add them later."

At the time, I treated it like any other instruction in a tutorial. I assumed it was simply one of those framework-specific rules you follow without asking too many questions. So I created the mint, completed the challenge, and moved on.

But over the next few days, as I created more Token-2022 mints with different extensions, I realized this wasn't just a one-off requirement for transfer fees. Every extension had to be decided before the mint existed. If I can deploy new features to a web application later, or add a new column to a database, why can't I create a token today with transfer fees and decide next week that I also want it to earn interest?

As it turns out, the answer has less to do with Token-2022 itself and more to do with how Solana stores data.