user4129: Im confused if a eUTXO can only be interacted with and used up once how can you do a NFT sale? If I were to make a smart contract to distribute NFT's from a wallet can that be interacted with by multiple people?

user4302: Additionally, CIP-33 (Reference Scripts) is currently being worked on by Cardano Foundation.
In a nutshell, it would establish a standard for attaching commonly used scripts to outputs that will never be spent; allowing all subsequent transactions to reference said outputs instead of resubmitting the same script every time. This would drastically reduce TX size for such commonly used scripts, making them cheaper and mitigating chain bloat.

user1130: You can require a new datum be created as part of the validation.
Validator scripts simply validate transactions that spend UTxOs at the script address. They are able to look at the entire context of the transaction, including the outputs. It is true that a EUTxO can only be spent once, but you can add the requirement that an updated datum be returned to the script address after the old datum is spent, thus allowing the next person to interact with the script.

4129: <p>Im confused if a eUTXO can only be interacted with and used up once how can you do a NFT sale? If I were to make a smart contract to distribute NFT's from a wallet can that be interacted with by multiple people?</p>
 4302: <p>Additionally, <a href="https://github.com/cardano-foundation/CIPs/commit/14c4f57eadde3c74562c50aac75f9466c1bc10fe" rel="nofollow noreferrer">CIP-33</a> (Reference Scripts) is currently being worked on by Cardano Foundation.</p>
<p>In a nutshell, it would establish a standard for attaching commonly used scripts to outputs that will never be spent; allowing all subsequent transactions to reference said outputs instead of resubmitting the same script every time. This would drastically reduce TX size for such commonly used scripts, making them cheaper and mitigating chain bloat.</p>
 1130: <p>You can require a new datum be created as part of the validation.</p>
<p>Validator scripts simply validate <em>transactions</em> that spend UTxOs at the script address. They are able to look at the entire context of the transaction, including the outputs. It is true that a EUTxO can only be spent once, but you can add the requirement that an updated datum be returned to the script address after the old datum is spent, thus allowing the next person to interact with the script.</p>
