Assignment is an owned right (defined by owned right type u8 value) + state data + UTXO, which forms a single-use-seal definition when it is assigned that owned right. So: nothing can prevent some given UTXO from having multiple assignments, of different owned right type, and even for each owned right type there might be multiple assignments.

UTXO <-one to many-> owned right type <-one to many-> assignment of some state:

  • assign an inflation right to it (one)

  • assign ownership right fo 100 of USDT

  • assign ownership right of 10 Apple shares under different contract

  • assign ownership right of 10000 of USDT again

This is a very bad situation, but we can’t prevent it from happening. Especially if you assign different types of owned rights under the same contract you may not be able to create a state transition without loosing some of the rights or assets (since state transitions have a very strict set of owned rights type for which they can close seals). That is why we have created β€œsplit rights" state transition, which does only one thing - gives the ability to split those mixed rights into different UTXOs. Management of these UTXOs stays an opened question.