A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Value | Mnemonic | Gas Used | Subset | Removed from stack | Added to stack | Notes | Formula | Formula Notes | |||||||||||||||||||||
2 | 0x00 | STOP | 0 | zero | 0 | 0 | Halts execution. | |||||||||||||||||||||||
3 | 0x01 | ADD | 3 | verylow | 2 | 1 | Addition operation | |||||||||||||||||||||||
4 | 0x02 | MUL | 5 | low | 2 | 1 | Multiplication operation. | |||||||||||||||||||||||
5 | 0x03 | SUB | 3 | verylow | 2 | 1 | Subtraction operation. | |||||||||||||||||||||||
6 | 0x04 | DIV | 5 | low | 2 | 1 | Integer division operation. | |||||||||||||||||||||||
7 | 0x05 | SDIV | 5 | low | 2 | 1 | Signed integer division operation (truncated). | |||||||||||||||||||||||
8 | 0x06 | MOD | 5 | low | 2 | 1 | Modulo remainder operation | |||||||||||||||||||||||
9 | 0x07 | SMOD | 5 | low | 2 | 1 | Signed modulo remainder operation. | |||||||||||||||||||||||
10 | 0x08 | ADDMOD | 8 | mid | 3 | 1 | Modulo addition operation. | |||||||||||||||||||||||
11 | 0x09 | MULMOD | 8 | mid | 3 | 1 | Modulo multiplication operation. | |||||||||||||||||||||||
12 | 0x0a | EXP | FORMULA | 2 | 1 | Exponential operation. | (exp == 0) ? 10 : (10 + 10 * (1 + log256(exp))) | If exponent is 0, gas used is 10. If exponent is greater than 0, gas used is 10 plus 10 times a factor related to how large the log of the exponent is. | ||||||||||||||||||||||
13 | 0x0b | SIGNEXTEND | 5 | low | 2 | 1 | Extend length of two’s complement signed integer. | |||||||||||||||||||||||
14 | 0x10 | LT | 3 | verylow | 2 | 1 | Less-than comparison. | |||||||||||||||||||||||
15 | 0x11 | GT | 3 | verylow | 2 | 1 | Greater-than comparison. | |||||||||||||||||||||||
16 | 0x12 | SLT | 3 | verylow | 2 | 1 | Signed less-than comparison. | |||||||||||||||||||||||
17 | 0x13 | SGT | 3 | verylow | 2 | 1 | Signed greater-than comparison. | |||||||||||||||||||||||
18 | 0x14 | EQ | 3 | verylow | 2 | 1 | Equality comparison. | |||||||||||||||||||||||
19 | 0x15 | ISZERO | 3 | verylow | 1 | 1 | Simple not operator. | |||||||||||||||||||||||
20 | 0x16 | AND | 3 | verylow | 2 | 1 | Bitwise AND operation. | |||||||||||||||||||||||
21 | 0x17 | OR | 3 | verylow | 2 | 1 | Bitwise OR operation | |||||||||||||||||||||||
22 | 0x18 | XOR | 3 | verylow | 2 | 1 | Bitwise XOR operation. | |||||||||||||||||||||||
23 | 0x19 | NOT | 3 | verylow | 1 | 1 | Bitwise NOT operation. | |||||||||||||||||||||||
24 | 0x1a | BYTE | 3 | verylow | 2 | 1 | Retrieve single byte from word | |||||||||||||||||||||||
25 | 0x20 | SHA3 | FORMULA | 2 | 1 | Compute Keccak-256 hash. | 30 + 6 * (size of input in words) | 30 is the paid for the operation plus 6 paid for each word (rounded up) for the input data. | ||||||||||||||||||||||
26 | 0x30 | ADDRESS | 2 | base | 0 | 1 | Get address of currently executing account. | |||||||||||||||||||||||
27 | 0x31 | BALANCE | 400 | 1 | 1 | Get balance of the given account. | ||||||||||||||||||||||||
28 | 0x32 | ORIGIN | 2 | base | 0 | 1 | Get execution origination address. | |||||||||||||||||||||||
29 | 0x33 | CALLER | 2 | base | 0 | 1 | Get caller address. | |||||||||||||||||||||||
30 | 0x34 | CALLVALUE | 2 | base | 0 | 1 | Get deposited value by the instruction/transaction responsible for this execution. | |||||||||||||||||||||||
31 | 0x35 | CALLDATALOAD | 3 | verylow | 1 | 1 | Get input data of current environment. | |||||||||||||||||||||||
32 | 0x36 | CALLDATASIZE | 2 | base | 0 | 1 | Get size of input data in current environment. | |||||||||||||||||||||||
33 | 0x37 | CALLDATACOPY | FORMULA | 3 | 0 | Copy input data in current environment to memory. | 2 + 3 * (number of words copied, rounded up) | 2 is paid for the operation plus 3 for each word copied (rounded up). | ||||||||||||||||||||||
34 | 0x38 | CODESIZE | 2 | base | 0 | 1 | Get size of code running in current environment. | |||||||||||||||||||||||
35 | 0x39 | CODECOPY | FORMULA | 3 | 0 | Copy code running in current environment to memory. | 2 + 3 * (number of words copied, rounded up) | 2 is paid for the operation plus 3 for each word copied (rounded up). | ||||||||||||||||||||||
36 | 0x3a | GASPRICE | 2 | base | 0 | 1 | Get price of gas in current environment. | |||||||||||||||||||||||
37 | 0x3b | EXTCODESIZE | 700 | extcode | 1 | 1 | Get size of an account’s code. | |||||||||||||||||||||||
38 | 0x3c | EXTCODECOPY | FORMULA | 4 | 0 | Copy an account’s code to memory. | 700 + 3 * (number of words copied, rounded up) | 700 is paid for the operation plus 3 for each word copied (rounded up). | ||||||||||||||||||||||
39 | 0x40 | BLOCKHASH | 20 | 1 | 1 | Get the hash of one of the 256 most recent complete blocks. | ||||||||||||||||||||||||
40 | 0x41 | COINBASE | 2 | base | 0 | 1 | Get the block’s beneficiary address. | |||||||||||||||||||||||
41 | 0x42 | TIMESTAMP | 2 | base | 0 | 1 | Get the block’s timestamp. | |||||||||||||||||||||||
42 | 0x43 | NUMBER | 2 | base | 0 | 1 | Get the block’s number. | |||||||||||||||||||||||
43 | 0x44 | DIFFICULTY | 2 | base | 0 | 1 | Get the block’s difficulty. | |||||||||||||||||||||||
44 | 0x45 | GASLIMIT | 2 | base | 0 | 1 | Get the block’s gas limit. | |||||||||||||||||||||||
45 | 0x50 | POP | 2 | base | 1 | 0 | Remove item from stack. | |||||||||||||||||||||||
46 | 0x51 | MLOAD | 3 | verylow | 1 | 1 | Load word from memory. | |||||||||||||||||||||||
47 | 0x52 | MSTORE | 3 | verylow | 2 | 0 | Save word to memory | |||||||||||||||||||||||
48 | 0x53 | MSTORE8 | 3 | verylow | 2 | 0 | Save byte to memory. | |||||||||||||||||||||||
49 | 0x54 | SLOAD | 200 | 1 | 1 | Load word from storage | ||||||||||||||||||||||||
50 | 0x55 | SSTORE | FORMULA | 1 | 1 | Save word to storage. | ((value != 0) && (storage_location == 0)) ? 20000 : 5000 | 20000 is paid when storage value is set to non-zero from zero. 5000 is paid when the storage value's zeroness remains unchanged or is set to zero. | ||||||||||||||||||||||
51 | 0x56 | JUMP | 8 | mid | 1 | 0 | Alter the program counter | |||||||||||||||||||||||
52 | 0x57 | JUMPI | 10 | high | 2 | 0 | Conditionally alter the program counter. | |||||||||||||||||||||||
53 | 0x58 | PC | 2 | base | 0 | 1 | Get the value of the program counter prior to the increment corresponding to this instruction. | |||||||||||||||||||||||
54 | 0x59 | MSIZE | 2 | base | 0 | 1 | Get the size of active memory in bytes. | |||||||||||||||||||||||
55 | 0x5a | GAS | 2 | base | 0 | 1 | Get the amount of available gas, including the corresponding reduction for the cost of this instruction. | |||||||||||||||||||||||
56 | 0x5b | JUMPDEST | 1 | 0 | 0 | Mark a valid destination for jumps | ||||||||||||||||||||||||
57 | 0x60 -- 0x7f | PUSH* | 3 | verylow | 0 | 1 | Place * byte item on stack. 0 < * <= 32 | |||||||||||||||||||||||
58 | 0x80 -- 0x8f | DUP* | 3 | verylow | * | * + 1 | Duplicate *th stack item. 0 < * <= 16 | |||||||||||||||||||||||
59 | 0x90 -- 0x9f | SWAP* | 3 | verylow | * + 1 | * + 1 | Exchange 1st and (* + 1)th stack items. | |||||||||||||||||||||||
60 | 0xa0 | LOG0 | FORMULA | 2 | 0 | Append log record with no topics. | 375 + 8 * (number of bytes in log data) | 375 is paid for operation plus 8 for each byte in data to be logged. | ||||||||||||||||||||||
61 | 0xa1 | LOG1 | FORMULA | 3 | 0 | Append log record with one topic. | 375 + 8 * (number of bytes in log data) + 375 | 375 is paid for operation plus 8 for each byte in data to be logged plus 375 for the 1 topic to be logged. | ||||||||||||||||||||||
62 | 0xa2 | LOG2 | FORMULA | 4 | 0 | Append log record with two topics. | 375 + 8 * (number of bytes in log data) + 2 * 375 | 375 is paid for operation plus 8 for each byte in data to be logged plus 2 * 375 for the 2 topics to be logged. | ||||||||||||||||||||||
63 | 0xa3 | LOG3 | FORMULA | 5 | 0 | Append log record with three topics. | 375 + 8 * (number of bytes in log data) + 3 * 375 | 375 is paid for operation plus 8 for each byte in data to be logged plus 3 * 375 for the 3 topics to be logged. | ||||||||||||||||||||||
64 | 0xa4 | LOG4 | FORMULA | 6 | 0 | Append log record with four topics. | 375 + 8 * (number of bytes in log data) + 4 * 375 | 375 is paid for operation plus 8 for each byte in data to be logged plus 4 * 375 for the 4 topics to be logged. | ||||||||||||||||||||||
65 | 0xf0 | CREATE | 32000 | 3 | 1 | Create a new account with associated code. | ||||||||||||||||||||||||
66 | 0xf1 | CALL | FORMULA | 7 | 1 | Message-call into an account. | Complex -- see yellow paper Appendix H | |||||||||||||||||||||||
67 | 0xf2 | CALLCODE | FORMULA | 7 | 1 | Message-call into this account with an alternative account’s code. | Complex -- see yellow paper Appendix H | |||||||||||||||||||||||
68 | 0xf3 | RETURN | 0 | zero | 2 | 0 | Halt execution returning output data. | |||||||||||||||||||||||
69 | 0xf4 | DELEGATECALL | FORMULA | 6 | 1 | Message-call into this account with an alternative account’s code, but persisting the current values for sender and value. | Complex -- see yellow paper Appendix H | |||||||||||||||||||||||
70 | 0xfe | INVALID | NA | NA | NA | Designated invalid instruction. | ||||||||||||||||||||||||
71 | 0xff | SELFDESTRUCT | FORMULA | 1 | 0 | Halt execution and register account for later deletion | 5000 + ((create_new_account) ? 25000 : 0) | 5000 for the operation plus 25000 if a new account is also created. A refund of 24000 gas is also added to the refund counter for self-destructing the account. | ||||||||||||||||||||||
72 | ||||||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||||||
100 |