← Back to blog posts
The blockchain
December 5, 2022
The blockchain

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 are split between node operators and the Network Treasury.

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: 

Sample fees on Polymesh

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

How are transaction fees split?

Transaction fees are split between the block-producing node operator and the Network Treasury using a 20 / 80 ratio. Splitting fees this way provides a two-fold path to accelerating Polymesh adoption:

  • It incentives node operators to help increase adoption of the network, as they’ll receive a commission of transaction fees from on-chain activity. 
  • It allows the Network Treasury to grow its funds, which can then be disbursed by the Polymesh Governing Council as grants to further increase the development of the network. 

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 two types of transactions carry additional fees: 

  • Registering a new ticker (currently 500 POLYX)
  • Creating a new asset (currently 2,500 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 500 POLYX protocol fee won’t be charged. 

How are protocol fees split? 

As with transaction fees, protocol fees are split between the block-producing node operator and the Network Treasury using a 20 / 80 ratio. The node operator portion of both transaction fees and protocol fees are paid to the node operator that produces the block that includes the relevant transactions. 

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?