thanks to this topic, I understand that I have to take in consideration Shimmer -and not the actual IOTA mainnet- in order to store data inside transactions permanently.

My concern is about persistence. I have to persist my data inside the tangle and make it durable. I don't want that dust protection system deletes it, never.

I read this link about how transactions work on Shimmer, but I still don't understand how to achieve my goal. I don't want to use smart contracts right now because I don't want to start a node (and this feat it's not yet fully supported), I'm searching for a quick solution.

After the reading of the TIP-0019 page, maybe I found a solution, but I'm asking you to confirm its correctness:

  1. use the Basic Output in order to fill the metadata field with my data
  2. add the storage deposit (SMR) in order to prevent the dust protection
  3. leave blank the unlock condition (is it possibile?) in order to not leave the metadata be deleted by the dust protection (no one will claim back the storage deposit)
  4. send some amount of SMR to my own address (from my wallet to my wallet), with the metadata/storage deposit setted up previously
  5. repeat from point 1 for every data I want to store permanently in the tangle

In this way, I loose only the storage deposit for persisting the data each time I want, but I can also spend again the amount of SMR I sent to my address. The unlock condition is never triggered, so the metadata will be stored permanently inside the tangle. The amount of token sent on my own address on point 4 can be spent in the next transaction (minus the storage deposit for the new transaction).

Can it work? Thanks!


1 Answer 1


Here we go.

leave blank the unlock condition (is it possibile?)

No, because here it says

It must hold true that 1 ≤ Unlock Conditions Count ≤ 4

Edited The later make sense because there is no point on creating permanent outputs as you intend. Although your general idea is correct your procedure is wrong.

add the storage deposit (SMR) in order to prevent the dust protection

The Storage Deposit Return Unlock Condition can be used to full fill Dust Protection Based on Byte Costs when you want to send small amounts. But in general you do not need it.

Edited: I have realize that in Tip-19 the min_deposit_of_output is called also storage deposit. So when you said

add the storage deposit (SMR) in order to prevent the dust protection

You meant that the 'amount' of that output will be greater than the min_deposit_of_output in order to fullfill the Dust Protection Based on Byte Costs. Then this is correct

If I understood well the TIP-0019, for creating an output in the tangle, the amount of that output has to be larger than some min_deposit_of_output quantity. The min_deposit_of_output value depends on the size in bytes of that output(If you put more metadata on the output you have to increase the amount value of that output). The Tip-19 explain how they calculate this(still they are testing this). Once your created output fulfill this requirement you do not need to worry about what you call "dust protection".

Can it work?

No. Edited: all the steps are correct except leaving the unlock conditions blank.You need to add at least an Address Unlock Condition.

If you manage to send a transaction with a basic output that have a "metadata feature" and a simple "Address Unlock Condition" and this transaction is accepted by the nodes, only the owner of the keys used to create the "Address Unlock Condition" can delete the data on the metadata of this output(normally for this case you are the owner of this keys). Nor what you call "dust protection" can erase the data on the metadata after the output is created in the UTXO database.

Dust protection works before the output is created.

  • Thanks Eddy. So there are no way to develop a business in IOTA by my side. I think it will be possible using wasp nodes and smart contracts, with all the risks connected. But with no timeline for IOTA 2.0, we cannot develop and present projects to our customers. Very very sad!
    – keuzzolo
    Commented Dec 22, 2022 at 11:46

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.