← Back to blog posts
The blockchain
January 31, 2024

Polymesh transaction fees and protocol fees

Polymesh requires fees in POLYX for every on-chain transaction, and certain native functions have additional fees called protocol fees. Fees go 100% towards node operators.

One of the primary uses for POLYX on Polymesh is for paying fees.  

Fees are charged in POLYX for all chain uses. Fees on Polymesh help to incentivize the growth and adoption of the ecosystem while also operating to protect the chain from denial-of-service or spam attacks. 

This blog post takes a look at the types of fees on Polymesh, how they are determined, and who receives the funds. 

What kind of fees are there on Polymesh? 

All fees on Polymesh are paid in the networks’ native token, POLYX. There are two types of network fees: 

  • Transaction fees: Fees charged for every transaction submit to the network

  • Protocol fees: Additional fees for the successful execution of certain types of native functions (e.g. reserving a token ticker when issuing a security token)

Transaction fees on Polymesh

Every on-chain transaction on Polymesh must be paid for using POLYX.

Transaction fees on Polymesh are charged for the transaction involved in any on-chain action, from sending POLYX to another user to renaming a portfolio to creating a security token.

Here are a few sample fees for common transaction types as of Polymesh v4.1.1 (note that exact fees may have changed with future versions):

Sample fees on Polymesh

As we're now on Polymesh v.6.1.2 (at the time of writing), the above-shown sample fees may be different from the current version. For the most updated transaction fees, you will need to manually run the transaction to identify any fees as fees may vary with different inputs.

For more on fees, visit https://developers.polymesh.network/polymesh-docs/network/fees

How are transaction fees split?

Transaction fees go 100% towards the block-producing node operator. This incentives node operators to help increase adoption of the network, as they’ll receive a commission of transaction fees from on-chain activity. 

How are transaction fees determined by the network?

The cost of the operation is proportional to the computational and storage complexity of the action being performed and is set directly by the network. 

More specifically, the magnitude of transaction fees on Polymesh is determined by the compute/memory cost of executing the transaction, as well as the size (in bytes) of the transaction input. 

What happens if a transaction fails?

In order to execute an on-chain transaction, a user must have sufficient POLYX associated with the key which is signing and submitting the transaction. If there isn’t a sufficient balance to pay the transaction fee, the transaction will not be submitted to the chain (if that happens, the user will not be charged). 

If a user has sufficient funds for the transaction fee, the transaction will be submitted to the transaction pool and picked up by a node operator to be actioned on chain. As the node operator is performing an on-chain action, the transaction fee will be charged, regardless of whether or not the transaction is successful. 

For example, let’s say you have exactly 100 POLYX and try to transfer 100 POLYX. The transaction would fail as the transaction fee will be paid first, leaving you with only ~99.9 POLYX, which isn’t enough for the desired transaction. However, you’ll still be charged the transaction fee, as the failure would be recorded on-chain. 

Protocol fees on Polymesh

Certain on-train transactions carry additional fixed fees, called protocol fees.

Currently, only one type of transaction carries additional fees: 

  • Registering a new ticker (currently 1000 POLYX)

Protocol fees are only paid for successful transactions. For example, if a user tries to register a ticker that’s already been registered, the 1000 POLYX protocol fee won’t be charged. 

How are protocol fees split? 

As with transaction fees, protocol fees go 100% towards the block-producing node operator.

How are protocol fees determined by the network?

Transactions that carry protocol fees are configurable and can be updated by the Polymesh Governance, modifying both the transactions that carry these fees, as well as the fee amounts in POLYX for each transaction. 

Any user can submit a Polymesh Improvement Proposal to modify protocol fees. Upon vote by the Polymesh Community (or if the PIP is submitted by a Committee of up to 20 users), the PIP will be voted on for enactment by the Polymesh Governing Council, the main decision-making body of Polymesh. 

For more information about POLYX and what it’s used for on Polymesh, visit polymesh.network/polyx

Join DiscordDownload the report

Ready to use Polymesh?