user6487: I would like users to be able to perform a one time action on a web app, i.e. claiming one physical item per NFT owned, what would be the best way to keep track of tokens that have already claimed ownership? I have thought of constructing a list of addresses in the web app code but think this may have security issues. Is it possible to do it in a public way so that users can verify themselves?
Thank you!

user1142: 
Integrate with a browser wallet (Nami, ccvault, ...) so users can log in with their wallet on your web-app.
Let the users sign a message to prove they really own the wallet. Check on server side if the signature is correct.
Get all NFTs owned by the wallet from the blockchain. Don't trust the user input here as it could be manipulated. You can run your own node, use https://blockfrost.io or something similar.
Keep track of which NFTs have already been used to claim your physical goods. The address of the owner is not relevant, since the NFT can be sold after redeeming. You can do this in a simple database if you want. Or you could do it on-chain, e.g. by minting a "redeemed" token for each NFT or even updating the NFT metadata (if the policy is not locked yet).


6487: <p>I would like users to be able to perform a one time action on a web app, i.e. claiming one physical item per NFT owned, what would be the best way to keep track of tokens that have already claimed ownership? I have thought of constructing a list of addresses in the web app code but think this may have security issues. Is it possible to do it in a public way so that users can verify themselves?</p>
<p>Thank you!</p>
 1142: <ol>
<li>Integrate with a browser wallet (Nami, ccvault, ...) so users can log in with their wallet on your web-app.</li>
<li>Let the users sign a message to prove they really own the wallet. Check on server side if the signature is correct.</li>
<li>Get all NFTs owned by the wallet from the blockchain. Don't trust the user input here as it could be manipulated. You can run your own node, use <a href="https://blockfrost.io" rel="nofollow noreferrer">https://blockfrost.io</a> or something similar.</li>
<li>Keep track of which NFTs have already been used to claim your physical goods. The address of the owner is not relevant, since the NFT can be sold after redeeming. You can do this in a simple database if you want. Or you could do it on-chain, e.g. by minting a &quot;redeemed&quot; token for each NFT or even updating the NFT metadata (if the policy is not locked yet).</li>
</ol>
