Estimate Fees
Find out how to estimate fees before executing contracts on-chain
When you may need to estimate fees?
Before deploy to find out how much it will cost
Before contract execution to find out how much will it cost
To calculate how much will it cost to store a contract for a period of time
Estimate deploy and run fees
The steps you need to complete to estimate fees of deploy and run:
Encode a message you will locally execute with encode_message
Download account boc the same way you did in Run ABI Get method
Run the message on the downloaded state with run_executor function
Retrieve
result.fees
object. You needresult.fees.account_fees
for total account fees value.
Fees object detailed explanation
Here is the structure of fees object.
storage_fee
: bigint – Fee for account storagegas_fee
: bigint – Fee for processingin_msg_fwd_fee
: bigint – Deprecated. Left for backward compatibility.ext_in_msg_fee
: bigint – Fee for inbound external message import.total_fwd_fees
: bigint – Total fees the account pays for message forwardingaccount_fees
: bigint – Total account fees for the transaction execution. Compounds of storage_fee + gas_fee + ext_in_msg_fee + total_fwd_fees
Deprecated fields. Left for backward compatibility.
out_msgs_fwd_fee
: bigint – Deprecated. Left for backward compatibility.total_account_fees
: bigint – Deprecated. Left for backward compatibility. This is the field that is named astotal_fees
in GraphQL API Transaction type.total_account_fees
name is misleading, because it does not mean account fees, instead it means validators total fees received for the transaction execution. It does not include some forward fees that account actually pays now, but validators will receive later during value delivery to another account (not even in the receiving transaction but along the way of a chain of transactions processing). Because of all of this, this field is not interesting for those who want to understand the real account fees, this is why it is deprecated and left for backward compatibility.total_output
: bigint – Deprecated. Left for backward compatibility.
Estimate storage fee
Use calc_storage_fee method.
Sample source code
Core
https://github.com/tonlabs/sdk-samples/tree/master/core-examples/node-js/run_executor
AppKit
https://github.com/tonlabs/sdk-samples/blob/master/appkit-examples/fee-calculation/index.js
Last updated