# Transaction fee
Transaction fee is a fee that an account owner pays to send a transaction.
A transaction sender can specify any amount of fee but not less than a minimum amount. The larger the fee is, the quicker the transaction will be added to the new block.
For an Invoke Script transaction and Transfer transaction, a sender can specify a transaction fee nominated in a sponsored asset instead of WAVES, see the section Fee in Sponsored Asset below.
# Minimum Fee
The minimum fees in WAVES for each type of transaction are listed in the table below.
If the transaction sender is a dApp or smart account, and the complexity of the account script or dApp script verifier function exceeds the sender complexity threshold, the minimum fee is increased by 0.004 WAVES.
If the order sender in Exchange transaction is a dApp or smart account, this does nor affect the minimum fee.
The minimum fee is increased by 0.004 WAVES for each smart asset involved, except for:
- Invoke Script transactions,
- smart assets used as matcher fee in Exchange transaction.
Before activation of feature #16 “Ride V5, dApp-to-dApp invocations”
- The extra fee of 0.004 WAVES was required for transactions sent from smart account or dApp regardless of the complexity of the account script or the presence and complexity of the dApp script verifier function.
- For Invoke Script transaction, the minimum fee was increased by 0.004 WAVES for each execution of asset script in payments and script actions.
Example 1.
The minimum fee for a Transfer transaction:
- No smart account or smart assets: 0.001 WAVES.
- Transfer from smart account*: 0.001 + 0.004 = 0.005 WAVES.
- Transfer of smart asset: 0.001 + 0.004 = 0.005 WAVES.
- Transfer of smart asset sent from smart account*: 0.001 + 0.004 + 0.004 = 0.009 WAVES.
* If the account script complexity is higher than the sender complexity threshold.
The minimum fee for an Invoke Script transaction:
- No smart account, no assets issued: 0.005 WAVES.
- dApp script invocation is sent from a smart account*: 0.005 + 0.004 = 0.009 WAVES.
- dApp script invocation issues an asset that is not non-fungible token: 0.005 + 1 = 1.005 WAVES.
- dApp script invocation is sent from smart account*, and 10 assets that are not non-fungible token are issued: 0.005 + 0.004 + 10 × 1 = 10.009 WAVES.
* If the account script complexity is higher than the sender complexity threshold.
A dApp script can issue/reissue/burn assets from activation of feature #15 “Ride V4, VRF, Protobuf, Failed transactions”.
Transaction type | Transaction type ID | Minimum transaction fee in WAVES |
---|---|---|
Burn transaction | 6 | 0.001 |
Create Alias transaction | 10 | 0.001 |
Data transaction | 12 | 0.001 per kilobyte The size is rounded up to an integer number of kilobytes. Details |
Exchange transaction | 7 | 0.003 |
Invoke Script transaction | 16 | 0.005 + K K is the number of assets issued as a result of script execution that are not non-fungible tokens.Assets can be issued by a dApp script from activation of feature #15 “Ride V4, VRF, Protobuf, Failed transactions”. See example 2 above |
Issue transaction | 3 | • 1 for reqular token • 0.001 for non-fungible token |
Lease Cancel transaction | 9 | 0.001 |
Lease transaction | 8 | 0.001 |
Mass Transfer transaction | 11 | 0.001 + 0.0005 × N N is the number of transfers inside of the transaction.The value is rounded up to the three decimals |
Reissue transaction | 5 | 0.001 (Before activation of feature #15 it was 1) |
Set Asset Script transaction | 15 | 1 |
Set Script transaction | 13 | 0.001 per kilobyte of script. The script size is rounded up to an integer number of kilobytes. (Before activation of feature #17 the fee was 0.01) |
Sponsor Fee transaction | 14 | 0.001 (Before activation of feature #15 it was 1) |
Transfer transaction | 4 | 0.001 |
Update Asset Info transaction | 17 | 0.001 The Update Asset Info transaction type is enabled by feature #15 “Ride V4, VRF, Protobuf, Failed transactions” |
Ethereum transaction | 18 | • 0,001 if the transaction transfers a token. • 0,005 if the transaction invokes a dApp script. The Ethereum transaction type is enabled by feature #17 “Ride V6, MetaMask support” |
# Fee in Sponsored Asset
An issuer of an asset can set up sponsorship — so that any user can specify a transaction fee in this asset for Invoke Script transactions and Transfer transactions.
To activate sponsorship, the issuer puts a Sponsor Fee transaction that specifies an amount of asset that is equivalent to the minimum fee of 0.001 WAVES. For example, if minSponsoredAssetFee: 5
, then the fee in this asset for an Invoke Script transaction equals 5 × 0.005 / 0.001 = 25. See the Sponsored Fee article for details.
# Fee for Failed Transactions
Invoke Script transactions and Exchange transactions can be saved on the blockchain even if the result of a dApp script or asset script execution failed. In this case, the sender is charged a fee. For an Exchange transaction, the matcher is charged the transaction fee but the order senders are not charged the matcher fee. For more information, see the Transaction Validation article.
Saving failed transactions and charging fees for them is enabled by feature #15 “Ride V4, VRF, Protobuf, Failed transactions”.