Release Date: Dec 3rd, 2024 Chain Update Date: Dec 17th, 2024
- Tax handling update
The handling of the burn tax was changed in a way that tax handling now happens internally (on chain) instead of on the clients' side.
-
Tax handling update
No breaking changes expected. All clients and dApps are expected to continue to work as before. The update introduces the following changes:- the legacy (stability) tax parameter has been set to 0
- a new parameter
burn_tax
has been introduced, reflecting the tax rate
it can be queried through eitherterrad q tax burn-tax-rate
or the LCD endpoint, e.g. [https://terra-classic-lcd.publicnode.com/terra/tax/v1beta1/burn_tax_rate] - gas prices are now a consensus parameter and queryable through the cli via
terrad q tax params
or the LCD endpoint, e.g. [https://terra-classic-lcd.publicnode.com/terra/tax/v1beta1/params] client-side gas prices continue to be valid for the local mempool, but must not be set lower than the consensus prices - contracts are no longer double-taxed, sending to contracts is tax-free, only receiving from contracts is taxed (like before)
-
Backward compatibility
- Clients and dApps including contracts are expected to require no changes. On sending (
MsgSend
and similar), the sender can decide to either
continue paying the tax as it is now or just send the full amount. In the latter case, the tax is deducted from the sent amount.
Example:- Send 1,000,000 LUNC + 5,000 LUNC tax + Gas -> Same handling as before
- Send 1,000,000 LUNC + Gas -> Recipient receives 995,000, sender doesn't have to send additional tax.
- When executing contracts, dApps should send no tax. If they send tax, this is refunded to the sender during the transaction.
Example:- Execute contract with 1,000,000 LUNC + 5,000 LUNC tax + Gas -> 5,000 LUNC refunded to sender
- Execute contract to receive 1,000,000 LUNC -> 995,000 LUNC received (same as before)
- Clients and dApps including contracts are expected to require no changes. On sending (
-
Tax Parameters
- If a client wants to continue letting the sender pay tax, the only change needed is to replace the old
/terra/treasury/v1beta1/tax_rate
query
byterra/tax/v1beta1/burn_tax_rate
- If no change is made, the new handling automatically applies (sender sends 0% tax due to
tax_rate
being 0 now) and tax is deducted during the transaction.
- If a client wants to continue letting the sender pay tax, the only change needed is to replace the old
-
Failed Transactions
- Failed transactions still cost gas fee, but do no longer deduct tax from the wallet.
-
Distribution Distribution of the tax does not change. The burn ratio remains as is.
Query: [https://terra-classic-lcd.publicnode.com/terra/tax/v1beta1/burn_tax_rate]
Reply:
{"tax_rate":"0.005000000000000000"}
Query: [https://terra-classic-lcd.publicnode.com/terra/tax/v1beta1/params] Reply:
{"params":{"gas_prices":[{"denom":"uaud","amount":"0.950000000000000000"},{"denom":"ucad","amount":"0.950000000000000000"},{"denom":"uchf","amount":"0.700000000000000000"},{"denom":"ucny","amount":"4.900000000000000000"},{"denom":"udkk","amount":"4.500000000000000000"},{"denom":"ueur","amount":"0.625000000000000000"},{"denom":"ugbp","amount":"0.550000000000000000"},{"denom":"uhkd","amount":"5.850000000000000000"},{"denom":"uidr","amount":"10900.000000000000000000"},{"denom":"uinr","amount":"54.400000000000000000"},{"denom":"ujpy","amount":"81.850000000000000000"},{"denom":"ukrw","amount":"850.000000000000000000"},{"denom":"uluna","amount":"28.325000000000000000"},{"denom":"umnt","amount":"2142.855000000000000000"},{"denom":"umyr","amount":"3.000000000000000000"},{"denom":"unok","amount":"6.250000000000000000"},{"denom":"uphp","amount":"38.000000000000000000"},{"denom":"usdr","amount":"0.524690000000000000"},{"denom":"usek","amount":"6.250000000000000000"},{"denom":"usgd","amount":"1.000000000000000000"},{"denom":"uthb","amount":"23.100000000000000000"},{"denom":"utwd","amount":"20.000000000000000000"},{"denom":"uusd","amount":"0.750000000000000000"}],"burn_tax_rate":"0.005000000000000000"}}