Burning assets in multiple wallets through inner transactions

Say I want to burn 50% of an ASA that I have created. This ASA has been distributed to thousands of wallets. What is the best way to do this through inner transactions?

How would I go about iterating through every single asset holder, clawing back the asset, and then burning the asset (through inner transactions)?

if you have clawback there is nothing like burning of assets… if you send them to escrow account or address where you do not have key to, you still can take it back

burning from the eth world usually means in the algo world that you put it back to the reserve account

Ok cool, I can put it back into the reserve account. But how would I do that for every single asset holder through inner transactions?

I believe you can still have clawback and burning. But it indeed requires a more complex setup.
Essentially, you want the clawback address to be a logicsig account or an application account so that some clawbacks are forbidden (such as those that would “unburn” an asset).

If I understand correctly, you sent say 2 assets to 1000 accounts, and you want to burn 1 asset in each account?
If yes, the only solution is indeed to manually clawback each of the 1000 accounts (either via inner transactions or not), but this needs to be done one by one.

Now, often there are other solutions that can simulate the above without requiring so many transactions: at the end, burning is similar to increasing the value / exchange rate of the token.

I see. So if I want to burn 50% of the supply of the ASA in 1000 accounts, I have 2 options:

  1. Iterate through every single asset holder account, and claw back each of the 1000 accounts.
  2. Somehow decrease the value of the token so that 50% of its value is lost somehow and the “burning” is simulated.
1 Like

yes, i know the nft solution which uses smart contract at clawback address with default freeze on, and in clawback tx is hardcoded the address where to send the royality fee