Skip to main content

Metal Blockchain Transaction Fee

In order to prevent spam, transactions on Metal Blockchain require the payment of a transaction fee. The fee is paid in METAL. The transaction fee is burned (destroyed forever).

When you issue a transaction through Metal’s API, the transaction fee is automatically deducted from one of the addresses you control.

Fee Schedule

Different types of transactions require payment of a different transaction fee. This table shows the transaction fee schedule:

+----------+-------------------+------------------------+
| Chain : Transaction Type | Transaction Fee (METAL) |
+----------+-------------------+------------------------+
| P : Create Subnet | 1 |
+----------+-------------------+------------------------+
| P : Create Blockchain | 1 |
+----------+-------------------+------------------------+
| P : Add Validator | 0 |
+----------+-------------------+------------------------+
| P : Add Delegator | 0 |
+----------+-------------------+------------------------+
| P : Import METAL | 0.001 |
+----------+-------------------+------------------------+
| P : Export METAL | 0.001 |
+----------+-------------------+------------------------+
| X : Send | 0.001 |
+----------+-------------------+------------------------+
| X : Create Asset | 0.01 |
+----------+-------------------+------------------------+
| X : Mint Asset | 0.001 |
+----------+-------------------+------------------------+
| X : Import METAL | 0.001 |
+----------+-------------------+------------------------+
| X : Export METAL | 0.001 |
+----------+-------------------+------------------------+
| C : Simple send | >= 0.001575* |
+----------+-------------------+------------------------+

(*) C-Chain gas price varies. See below.

C-Chain Fees

The Metal C-Chain uses an algorithm to determine the "base fee" for a transaction. The base fee increases when network utilization is above the target utilization and decreases when network utilization is below the target.

Dynamic Fee Transactions

Transaction fees for non-atomic transactions are based on Ethereum's EIP-1559 style Dynamic Fee Transactions, which consists of a gas fee cap and a gas tip cap.

The fee cap specifies the maximum price the transaction is willing to pay per unit of gas. The tip cap (also called the priority fee) specifies the maximum amount above the base fee that the transaction is willing to pay per unit of gas. Therefore, the effective gas price paid by a transaction will be min(gasFeeCap, baseFee + gasTipCap). Unlike in Ethereum, where the priority fee is paid to the miner that produces the block, in Metal both the base fee and the priority fee are burned. For legacy transactions, which only specify a single gas price, the gas price serves as both the gas fee cap and the gas tip cap.

Use the eth_baseFee API method to estimate the base fee for the next block. If more blocks are produced in between the time that you construct your transaction and it is included in a block, the base fee could be different from the base fee estimated by the API call, so it is important to treat this value as an estimate.

Next, use eth_maxPriorityFeePerGas API call to estimate the priority fee needed to be included in a block. This API call will look at the most recent blocks and see what tips have been paid by recent transactions in order to be included in the block.

Transactions are ordered by the priority fee, then the timestamp (oldest first).

Based off of this information, you can specify the gasFeeCap and gasTipCap to your liking based on how you prioritize getting your transaction included as quickly as possible vs. minimizing the price paid per unit of gas.

Base Fee

The base fee can go as low as 25 nMETAL (Gwei) and has no upper bound. You can use the eth_baseFee and eth_maxPriorityFeePerGas API methods, or Metalscan's C-Chain Gas Tracker, to estimate the gas price to use in your transactions. You can view the gas tracker on the top left of the homepage.

Further Readings

Atomic Transaction Fees

C-Chain atomic transactions (that is imports and exports from/to other chains) charge dynamic fees based on the amount of gas used by the transaction and the base fee of the block that includes the atomic transaction.

Gas Used:

+---------------------+-------+
| Item : Gas |
+---------------------+-------+
| Unsigned Tx Byte : 1 |
+---------------------+-------+
| Signature : 1000 |
+---------------------+-------+
| Per Atomic Tx : 10000 |
+---------------------+-------+

Therefore, the gas used by an atomic transaction is 1 * len(unsignedTxBytes) + 1,000 * numSignatures + 10,000

The TX fee additionally takes the base fee into account. Due to the fact that atomic transactions use units denominated in 9 decimal places, the base fee must be converted to 9 decimal places before calculating the actual fee paid by the transaction. Therefore, the actual fee is: gasUsed * baseFee (converted to 9 decimals).