You’re absolutely right. My point was that this functionality is a subset of a more general primitive, and probably shouldn’t exist on its own.
On the other hand: this proposal wouldn’t work for existing tokens, and would require re-implementing the same logic in every new compatible token. Since there’s no shared implementation, every token would have to be vetted independently.
Doesn’t this unfairly create a scalper market then? Where it becomes common for bots to buy up tokens and resell them, keeping the refund rights to themselves, which kinda invalidates the whole point of this proposal?
This might be a Sybil Attack. In fact, before this proposal came into being, that is, before it became impossible to refund, many projects were designing various schemes to prevent such things from happening. So in practice, we don’t need to worry about the lack of mature solutions to prevent more robots.
In addition, the interface is flexible. For example, it can be set to refund at a certain discount, or there can be no sales activity before the refund, etc.
This proposal is effective in protecting consumers. The problem that consumers face is project teams running away or making excessive promises, or consumers making impulsive purchases due to artificially created FOMO.
I guess it could be considered a Sybil attack if there are some limits on mints-per-person, but in the general sense of a free-for-all anyone can mint, there’s still a new abuse here: the first buyer of the token gets a privilege that later buyers do not.
This is exactly what I’m arguing against. I don’t believe this proposal is effective:
Tokens can pretend to be refundable, but not actually allow refunds.
If refunds only belong to the first buyer, then it encourages reselling, and provides little benefit to “actual users”.
An escrow contract could accomplish the same thing, for any transaction, not just for the first buyers. This would work for older NFTs too!
This is a two-way selection process, where developers can formulate different refund policies, and potential consumers or users can vote with their feet by choosing not to accept refund policies that do not protect their interests. The best refund policy is determined by the theory of free market.
Personally, all other things being equal, I would choose to support a project that has a refund policy rather than one that doesn’t.
It is indeed a good approach. It seems that it could also be achieved through EIP-5507?