<p>When I hear the word &quot;traceability&quot; with respect to Plutus, a <code>StateMachine</code> comes to mind.</p>
<p>With a <code>StateMachine</code>, one address is maintained all through the lifetime of one instance of the state machine.</p>
<p>Each <code>State</code> can contain an arbitrary amount/type of elements as state data; and you can make use of the transition function to perform operations in each state</p>

CC BY-SA 4.0
2021-07-10T15:46:48.000Z
Thanks. I hope to lean more about this soon
d0n13
CC BY-SA 4.0
2021-07-09T13:45:31.960Z
2021-07-09T13:45:31.960Z
Aoaddeola
<p>I think what you're driving at is a native app that can be installed on the device. Internally it would create its own, private &quot;wallet&quot; (which really is nothing more than a private key). The app itself would present a UI where you can record maintenance tickets. &quot;Saving&quot; a ticket would be a Cardano blockchain transaction, with metadata, and signed with the private key.</p>
<p>There could also be a management app that holds the private-key-device pairs and additionally could work with device maintenance history.</p>
<p>One of the more difficult problems is securely managing the keys. If you loose a key then it's the end of the road for its transaction thread. If you leak a key then misdeeds could ensue.</p>

CC BY-SA 4.0
2021-06-09T22:11:44.637Z
Yea, that's exactly what I think I need to do but not hold the details on the device itself. And yes, the holding of the wallet and the private keys would be the issue here.

Is there a way to look at this by using a digital identity of some sort that would be tied to the transactions on the blockchain as repairs etc are done. But would that be a single wallet or do I need a separate wallet for each device?

I've signed up for the Emurgo developer course in August so hopefully I'll be able to convey my thoughts more clearly then.
d0n13
CC BY-SA 4.0
2021-06-09T22:11:55.867Z
Basically, I need a controlling actor to have the devices all tied together via transactions and for those transactions to be details about changes to the device. Would need to give control to other actors to query these devices on demand but without giving access to all the devices.
d0n13
CC BY-SA 4.0
2021-06-10T14:28:59.240Z
Anyone can query the blockchain at any time; it's public record. You don't need anything particularly special to simply following the chain of transactions. Perhaps what you're also getting at is you want to encrypt the attached metadata; the onus of which is upon your implementation.
xanadont
CC BY-SA 4.0
2021-06-08T17:25:52.930Z
2021-06-08T17:25:52.930Z
xanadont
<p>We would like to be able to identify an item on the blockchain for traceability and assign specific transactions against it to maintain a chain of custody.</p>
<p>Can anyone lead me in the direction I need to research this type of application?</p>
<p>Many thanks</p>

CC BY-SA 4.0
2021-05-26T17:26:37.713Z
Can you please elaborate a bit more on what are you trying to achieve? Maybe provide an example.
Johannes Sirsch
CC BY-SA 4.0
2021-05-27T17:32:06.447Z
We want to trace a number of phone devices based on the IMEI or some other fixed identifier on the device and then assign metadata to these devices like if any internal components were added during repair for example. We would also like to assign ownership to them so they can “belong” to an entity. Just wondering how something like this can be achieved
d0n13
CC BY-SA 4.0
2021-05-28T02:50:10.897Z
You could make an NFT for each phone. You can attach metadata about the phone when you mint the NFTs. Whoever has the wallet that owns the NFT owns the phone. How you enforce the state of the ownership expressed on the blockchain in the real world is another story. If you need to modify the metadata, you could mint a new token with new metadata and burn the old token.
Joshua Chia
CC BY-SA 4.0
2021-05-29T07:41:33.370Z
Hi Joshua, thanks for your comment. I’m fairly new to this and I’m looking for do a proof of concept on this soon and this is an interesting way to do it. Ownership of the token is the area I’m interested in and how that is generally done. 

I need to dig into the development on this so any pointers to docs etc would be interesting at this point. 

Thank you for your input.
d0n13
CC BY-SA 4.0
2021-06-03T12:25:03.257Z
Note that on a blockchain everything is traceable by default, excepted when counter-measures are taken.
Distic
<metadata>
How can I make an item traceable on the Cardano blockchain?
# How can I make an item traceable on the Cardano blockchain?

(Asked by: username_0 on 2021-05-26)

We would like to be able to identify an item on the blockchain for traceability and assign specific transactions against it to maintain a chain of custody.

Can anyone lead me in the direction I need to research this type of application?

Many thanks

**Tags:** metadata
> **Comments:**
> **username_1**: Can you please elaborate a bit more on what are you trying to achieve? Maybe provide an example.  
> **username_0**: We want to trace a number of phone devices based on the IMEI or some other fixed identifier on the device and then assign metadata to these devices like if any internal components were added during repair for example. We would also like to assign ownership to them so they can “belong” to an entity. Just wondering how something like this can be achieved  
> **username_2**: You could make an NFT for each phone. You can attach metadata about the phone when you mint the NFTs. Whoever has the wallet that owns the NFT owns the phone. How you enforce the state of the ownership expressed on the blockchain in the real world is another story. If you need to modify the metadata, you could mint a new token with new metadata and burn the old token.  
> **username_0**: Hi Joshua, thanks for your comment. I’m fairly new to this and I’m looking for do a proof of concept on this soon and this is an interesting way to do it. Ownership of the token is the area I’m interested in and how that is generally done.   I need to dig into the development on this so any pointers to docs etc would be interesting at this point.   Thank you for your input.  
> **username_3**: Note that on a blockchain everything is traceable by default, excepted when counter-measures are taken.  

---

## 2 answers

### Answer by username_4 on 2021-07-09. Score: 1

When I hear the word "traceability" with respect to Plutus, a `StateMachine` comes to mind.

With a `StateMachine`, one address is maintained all through the lifetime of one instance of the state machine.

Each `State` can contain an arbitrary amount/type of elements as state data; and you can make use of the transition function to perform operations in each state

> **Comments:**
> **username_0**: Thanks. I hope to lean more about this soon  

---

### Answer by username_5 on 2021-06-08. Score: 0

I think what you're driving at is a native app that can be installed on the device. Internally it would create its own, private "wallet" (which really is nothing more than a private key). The app itself would present a UI where you can record maintenance tickets. "Saving" a ticket would be a Cardano blockchain transaction, with metadata, and signed with the private key.

There could also be a management app that holds the private-key-device pairs and additionally could work with device maintenance history.

One of the more difficult problems is securely managing the keys. If you loose a key then it's the end of the road for its transaction thread. If you leak a key then misdeeds could ensue.

> **Comments:**
> **username_0**: Yea, that's exactly what I think I need to do but not hold the details on the device itself. And yes, the holding of the wallet and the private keys would be the issue here.  Is there a way to look at this by using a digital identity of some sort that would be tied to the transactions on the blockchain as repairs etc are done. But would that be a single wallet or do I need a separate wallet for each device?  I've signed up for the Emurgo developer course in August so hopefully I'll be able to convey my thoughts more clearly then.  
> **username_0**: Basically, I need a controlling actor to have the devices all tied together via transactions and for those transactions to be details about changes to the device. Would need to give control to other actors to query these devices on demand but without giving access to all the devices.  
> **username_5**: Anyone can query the blockchain at any time; it's public record. You don't need anything particularly special to simply following the chain of transactions. Perhaps what you're also getting at is you want to encrypt the attached metadata; the onus of which is upon your implementation.  

---

