Show / Hide Table of Contents

Charging Model

Participants in NEO ecosystem need to pay network fees and system fees with GAS when using the NEO network. Fees distribution rule is shown below:

economic model

Network Fee

Network fee is the fee to pack transactions into a block. Users can define the amount of network fee. Network fee is paid to consensus node as new block incentive. Theoretically the higher network fee per byte is, the easier corresponding transaction is to be put into a block. In the current main network, a block supports up to 500 transactions, including up to 20 free transactions.

The default charging rules are as follows:

Transaction type Transaction size (byte) Total fee (GAS)
Non-ClaimTransaction transactions <= 1024 0
> 1024 Transaction size×0.00001 + 0.001
ClaimTransaction All 0

  • If the user specifies fee when using the send command/method to send the transaction to the user's address, only the higher of the two fees is charged.

  • A configuration file config.json is added in NEO-CLI 2.10.2+ RpcWallet plugin to allow you to specify the fee limit for transactions sent using RPC commands. If the transaction fee does not exceed the fee limit, it will be processed on blockchain normally; otherwise the transaction will fail.

System Fee

System fees are the cost of resources consumed by the transaction execution in NeoVM. The total fee depends on the number and type of instructions executed in the smart contract script. All Smart Contract fees are considered as Service fee to be put in a pool for re-distribution to all NEO holders. The distribution is proportional to amount of NEO.

The system fees of the special transactions defined in NEO are listed in the table below:

TypeSystem Fee (GAS)Description
MinerTransaction0The first transaction of a block, used to allocate byte fees
RegisterTransaction10000(Deprecated) Registers assets
IssueTransaction500Issues assets
ClaimTransaction0Claims GAS
EnrollmentTransaction1000(Deprecated) Enroll as validator candidate
StateTransaction1000Enrolls as a validator candidate or votes for consensus nodes
ContractTransaction0The most commonly used transaction
PublishTransaction500(Deprecated) Publishes smart contracts
InvocationTransactionFees vary with execution instructions.Invokes smart contracts

Additionally, when running a smart contract, system calls or instructions executed by NeoVM also incur system fees. For details, refer to Fees .