<p>Your reasoning is correct - if you don't have a compile time parametrized contract it hashes to the same address and the uTXOs will all reside at the same address.</p>
<p>This should not be an issue though, since you control the creation of the transactions on users behalf or in case of Plutus PAB - you specify constraints that the transaction should satisfy (i.e. must spend specific uTXO). PAB can then construct and submit a transaction satisfying these or export the requirements/constraints for users wallet to resolve.</p>

CC BY-SA 4.0
2021-12-08T11:02:02.440Z
2021-12-08T11:02:02.440Z
sorki
<p>I'm attempting to construct a contract which maintains the state associated with a given NFT. I would like this to be done on-chain as there are ways for the user to attempt to save invalid (manipulated) states and the states are small enough.</p>
<p>When a user wants to change the state, the new accepted state is stored as datum of the output utxo. Successive changes would involve creating a new transaction with the new state as input and redeeming the output of the previous state.</p>
<p>The problem is with my understanding of the how the utxo system works. Would all outputs reside at the same 'address'? Would this mean that if there were 1000 different NFT owners using this contract, there would be a minimum of 1000 utxos sitting at the 'script address' at any given time? Assuming this, would the wallet software attempt to spend all the 1000 utxos before it finds the one valid for a given owner?</p>

<plutus><nft><utxo><eutxo>
Feasibility of having multiple persistent UTXOs at a script address
# Feasibility of having multiple persistent UTXOs at a script address

(Asked by: username_0 on 2021-12-02)

I'm attempting to construct a contract which maintains the state associated with a given NFT. I would like this to be done on-chain as there are ways for the user to attempt to save invalid (manipulated) states and the states are small enough.

When a user wants to change the state, the new accepted state is stored as datum of the output utxo. Successive changes would involve creating a new transaction with the new state as input and redeeming the output of the previous state.

The problem is with my understanding of the how the utxo system works. Would all outputs reside at the same 'address'? Would this mean that if there were 1000 different NFT owners using this contract, there would be a minimum of 1000 utxos sitting at the 'script address' at any given time? Assuming this, would the wallet software attempt to spend all the 1000 utxos before it finds the one valid for a given owner?

**Tags:** plutus, nft, utxo, eutxo

---

## 1 answers

### Answer by username_1 on 2021-12-08. Score: 0 | Accepted answer

Your reasoning is correct - if you don't have a compile time parametrized contract it hashes to the same address and the uTXOs will all reside at the same address.

This should not be an issue though, since you control the creation of the transactions on users behalf or in case of Plutus PAB - you specify constraints that the transaction should satisfy (i.e. must spend specific uTXO). PAB can then construct and submit a transaction satisfying these or export the requirements/constraints for users wallet to resolve.


---

