Version
Show / Hide Table of Contents

System Fees

The system fee is calculated by opcodes to be executed by the Neo virtual machine. The 10 GAS free system fee will be cancled in NEO3. The total fee is subject to the quantity and type of instructions in the contract script. The calculation formula is as follows:

where OpcodeSet is opcode set, OpcodePriceiis the cost of opcode i, niis the execution times of instruction i in the contract script.

The fee of each interop service and instruction is shown in the table below.

Fees for interop service

Interop ServiceFee (GAS)
System.Binary.Serialize0.00100000
System.Binary.Deserialize0.00500000
System.Binary.Base64Encode0.00100000
System.Binary.Base64Decode0.00100000
System.Binary.Base58Encode0.00100000
System.Binary.Base58Decode0.00100000
System.Blockchain.GetHeight0.00000400
System.Blockchain.GetBlock0.02500000
System.Blockchain.GetTransaction0.01000000
System.Blockchain.GetTransactionHeight0.01000000
System.Blockchain.GetTransactionFromBlock0.01000000
System.Blockchain.GetContract0.01000000
System.Callback.Create0.00000400
System.Callback.CreateFromMethod0.01000000
System.Callback.CreateFromSyscall0.00000400
System.Callback.Invoke0.01000000
System.Contract.Create0
System.Contract.Update0
System.Contract.Destroy0.01000000
System.Contract.Call0.01000000
System.Contract.CallEx0.01000000
System.Contract.IsStandard0.00030000
System.Contract.GetCallFlags0.00030000
System.Enumerator.Create0.00000400
System.Enumerator.Next0.01000000
System.Enumerator.Value0.00000400
System.Enumerator.Concat0.00000400
System.Iterator.Create0.00000400
System.Iterator.Key0.00000400
System.Iterator.Keys0.00000400
System.Iterator.Values0.00000400
System.Iterator.Concat0.00000400
System.Json.Serialize0.00100000
System.Json.Deserialize0.00500000
System.Runtime.Platform0.00000250
System.Runtime.GetTrigger0.00000250
System.Runtime.GetTime0.00000250
System.Runtime.GetScriptContainer0.00000250
System.Runtime.GetExecutingScriptHash0.00000400
System.Runtime.GetCallingScriptHash0.00000400
System.Runtime.GetEntryScriptHash0.00000400
System.Runtime.CheckWitness0.00030000
System.Runtime.GetInvocationCounter0.00000400
System.Runtime.Log0.01000000
System.Runtime.Notify0.01000000
System.Runtime.GetNotifications0.00010000
System.Runtime.GasLeft0.00000400
System.Storage.GetContext0.00000400
System.Storage.GetReadOnlyContext0.00000400
System.StorageContext.AsReadOnly0.00000400
System.Storage.Get0.01000000
System.Storage.Find0.01000000
System.Storage.Put0
System.Storage.PutEx0
System.Storage.Delete1 * StoragePrice
Neo.Native.Deploy0
Neo.Native.Call0
Neo.Crypto.RIPEMD1600.01000000
Neo.Crypto.SHA2560.01000000
Neo.Crypto.VerifyWithECDsaSecp256r10.01000000
Neo.Crypto.VerifyWithECDsaSecp256k10.01000000
Neo.Crypto.CheckMultisigWithECDsaSecp256r10
Neo.Crypto.CheckMultisigWithECDsaSecp256k10

Interop Service Method Name Fee (GAS)
Neo.Native.Tokens.NEO name 0
symbol 0
decimals 0
totalSupply 0.01000000
balanceOf 0.01000000
transfer 0.08000000
setGasPerBlock 0.05000000
getGasPerBlock 0.05000000
unclaimedGas 0.03000000
registerCandidate 0.05000000
unregisterCandidate 0.05000000
vote 0.08000000
GetCandidates 1.00000000
getCommittee 1.00000000
getNextBlockValidators 1.00000000


Interop Service Method Name Fee (GAS)
Neo.Native.Tokens.GAS name 0
symbol 0
decimals 0
totalSupply 0.01000000
balanceOf 0.01000000
transfer 0.08000000


Interop Service Method Name Fee (GAS)
Neo.Native.Policy getMaxTransactionsPerBlock 0.01000000
getMaxBlockSize 0.01000000
GetMaxBlockSystemFee 0.01000000
GetFeePerByte 0.01000000
IsBlocked 0.01000000
SetMaxBlockSize 0.03000000
SetMaxTransactionsPerBlock 0.03000000
SetMaxBlockSystemFee 0.03000000
SetFeePerByte 0.03000000
BlockAccount 0.03000000
UnblockAccount 0.03000000

Interop Service Method Name Fee (GAS)
Neo.Native.Oracle finish 0
request 0.50000000
verify 0.01000000

For the description of API in the table above, refer to NEO Namespace .

Fees for Instructions

InstructionFee (GAS)
PUSHINT80.00000030
PUSHINT160.00000030
PUSHINT320.00000030
PUSHINT640.00000030
PUSHINT1280.00000120
PUSHINT2560.00000120
PUSHA0.00000120
PUSHNULL0.00000030
PUSHDATA10.00000180
PUSHDATA20.00013000
PUSHDATA40.00110000
PUSHM10.00000030
PUSH0~PUSH160.00000030
NOP0.00000030
JMP0.00000070
JMP_L0.00000070
JMPIF0.00000070
JMPIF_L0.00000070
JMPIFNOT0.00000070
JMPIFNOT_L0.00000070
JMPEQ0.00000070
JMPEQ_L0.00000070
JMPNE0.00000070
JMPNE_L0.00000070
JMPGT0.00000070
JMPGT_L0.00000070
JMPGE0.00000070
JMPGE_L0.00000070
JMPLT0.00000070
JMPLT_L0.00000070
JMPLE0.00000070
JMPLE_L0.00000070
CALL0.00022000
CALL_L0.00022000
CALLA0.00022000
ABORT0.00000030
ASSERT0.00000030
THROW0.00000030
RET0
SYSCALL0
DEPTH0.00000060
DROP0.00000060
NIP0.00000060
XDROP0.00000400
CLEAR0.00000400
DUP0.00000060
OVER0.00000060
PICK0.00000060
TUCK0.00000060
SWAP0.00000060
ROT0.00000060
ROLL0.00000400
REVERSE30.00000060
REVERSE40.00000060
REVERSEN0.00000400
INITSSLOT0.00000400
INITSLOT0.00001600
LDSFLD0~LDSFLD60.00000060
LDSFLD0.00000060
STSFLD0~STSFLD60.0000006
STSFLD0.0000006
LDLOC0~LDLOC60.00000060
LDLOC0.00000060
STLOC0~STLOC60.00000060
STLOC0.00000060
LDARG0~LDARG60.00000060
LDARG0.00000060
STARG0~STARG60.00000060
STARG0.00000060
NEWBUFFER0.00080000
MEMCPY0.00080000
CAT0.00080000
SUBSTR0.00080000
LEFT0.00080000
RIGHT0.00080000
INVERT0.00000100
AND0.00000200
OR0.00000200
XOR0.00000200
EQUAL0.00001000
NOTEQUAL0.00001000
SIGN0.00000100
ABS0.00000100
NEGATE0.00000100
INC0.00000100
DEC0.00000100
ADD0.00000200
SUB0.00000200
MUL0.00000300
DIV0.00000300
MOD0.00000300
SHL0.00000300
SHR0.00000300
NOT0.00000100
BOOLAND0.00000200
BOOLOR0.00000200
NZ0.00000100
NUMEQUAL0.00000200
NUMNOTEQUAL0.00000200
LT0.00000200
LE0.00000200
GT0.00000200
GE0.00000200
MIN0.00000200
MAX0.00000200
WITHIN0.00000200
PACK0.00015000
UNPACK0.00015000
NEWARRAY00.00000400
NEWARRAY0.00015000
NEWARRAY_T0.00015000
NEWSTRUCT00.00000400
NEWSTRUCT0.00015000
NEWMAP0.00000200
SIZE0.00000150
HASKEY0.00270000
KEYS0.00000500
VALUES0.00270000
PICKITEM0.00270000
APPEND0.00270000
SETITEM0.00270000
REVERSEITEMS0.00270000
REMOVE0.00000500
CLEARITEMS0.00000400
ISNULL0.00000060
ISTYPE0.00000060
CONVERT0.00080000