I've been conceptualizing an inherently costly token, it's basically an NFT with a face value representing its cost. You are allowed to self-mint one iff you first make a donation to a nonprofit charity. Validators can confirm it was minted correctly only after the cost was paid.
More specifically here is how the protocol might work in Lumens.
A user (Alice) makes a donation to a nonprofit. Then Alice sends herself 1 Stroop including a memo describing her donation. Each memo then essentially serves as a "token" with a face value. It is admittedly short - 28 bytes, but that is enough to encode various dimensions. Alice can then send Bob that identical memo, in which case Alice no longer owns the token, but Bob does. Bob can validate that Alice minted the token correctly only after placing money in a nonprofit's account, and furthermore that Alice had not sent that particular memo to anyone else before sending it to Bob.
Does this work as a way to exchange NFTs via the memo field, in Stellar? They could be expanded past 28 bytes by preparing the NFT information across multiple sequential memos. A transaction could consist of 6 operations, each of which transfers 1 Stroop including a memo.
Even short 28-byte memos can be interpreted visually as coins/bills with face values - you can see images and a longer whitepaper at GlobalChange.io.
Red flags? Questions, comments, concerns? Ideas to efficiently develop a validator mechanism that traces ownership of the NFT back to its initial generation subsequent to sending money to a nonprofit charity? This could be done "by hand" by inspecting the transaction history of whoever sent you the memo (and the transaction history of whoever send them that same memo (etc.)).
Thanks for any thoughts!