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
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.
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