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

  • Can you please elaborate a bit more on what are you trying to achieve? Maybe provide an example. May 26, 2021 at 17:26
  • 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
    May 27, 2021 at 17:32
  • 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. May 28, 2021 at 2:50
  • 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
    May 29, 2021 at 7:41
  • Note that on a blockchain everything is traceable by default, excepted when counter-measures are taken.
    – Distic
    Jun 3, 2021 at 12:25

2 Answers 2


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

  • Thanks. I hope to lean more about this soon
    – d0n13
    Jul 10, 2021 at 15:46

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.

  • 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
    Jun 9, 2021 at 22:11
  • 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
    Jun 9, 2021 at 22:11
  • 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
    Jun 10, 2021 at 14:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.