Skip to content

AVM Opcodes

-

BytecodeStack InputStack OutputSizeAvailabilityCost
0x09uint64,uint64uint641v11

!

BytecodeStack InputStack OutputSizeAvailabilityCost
0x14uint64uint641v11

!=

BytecodeStack InputStack OutputSizeAvailabilityCost
0x13any,anybool1v11

*

BytecodeStack InputStack OutputSizeAvailabilityCost
0x0buint64,uint64uint641v11

/

BytecodeStack InputStack OutputSizeAvailabilityCost
0x0auint64,uint64uint641v11

&

BytecodeStack InputStack OutputSizeAvailabilityCost
0x1auint64,uint64uint641v11

&&

BytecodeStack InputStack OutputSizeAvailabilityCost
0x10uint64,uint64bool1v11

%

BytecodeStack InputStack OutputSizeAvailabilityCost
0x18uint64,uint64uint641v11

^

BytecodeStack InputStack OutputSizeAvailabilityCost
0x1buint64,uint64uint641v11

+

BytecodeStack InputStack OutputSizeAvailabilityCost
0x08uint64,uint64uint641v11

<

BytecodeStack InputStack OutputSizeAvailabilityCost
0x0cuint64,uint64bool1v11

<=

BytecodeStack InputStack OutputSizeAvailabilityCost
0x0euint64,uint64bool1v11

==

BytecodeStack InputStack OutputSizeAvailabilityCost
0x12any,anybool1v11

>

BytecodeStack InputStack OutputSizeAvailabilityCost
0x0duint64,uint64bool1v11

>=

BytecodeStack InputStack OutputSizeAvailabilityCost
0x0fuint64,uint64bool1v11

|

BytecodeStack InputStack OutputSizeAvailabilityCost
0x19uint64,uint64uint641v11

||

BytecodeStack InputStack OutputSizeAvailabilityCost
0x11uint64,uint64bool1v11

~

BytecodeStack InputStack OutputSizeAvailabilityCost
0x1cuint64uint641v11

acct_params_get

BytecodeStack InputStack OutputSizeAvailabilityCost
0x73anyany,bool2v61

addw

BytecodeStack InputStack OutputSizeAvailabilityCost
0x1euint64,uint64uint64,uint641v21

app_global_del

BytecodeStack InputStack OutputSizeAvailabilityCost
0x69stateKey-1v21

app_global_get

BytecodeStack InputStack OutputSizeAvailabilityCost
0x64stateKeyany1v21

app_global_get_ex

BytecodeStack InputStack OutputSizeAvailabilityCost
0x65uint64,stateKeyany,bool1v21

app_global_put

BytecodeStack InputStack OutputSizeAvailabilityCost
0x67stateKey,any-1v21

app_local_del

BytecodeStack InputStack OutputSizeAvailabilityCost
0x68any,stateKey-1v21

app_local_get

BytecodeStack InputStack OutputSizeAvailabilityCost
0x62any,stateKeyany1v21

app_local_get_ex

BytecodeStack InputStack OutputSizeAvailabilityCost
0x63any,uint64,stateKeyany,bool1v21

app_local_put

BytecodeStack InputStack OutputSizeAvailabilityCost
0x66any,stateKey,any-1v21

app_opted_in

BytecodeStack InputStack OutputSizeAvailabilityCost
0x61any,uint64bool1v21

app_params_get

BytecodeStack InputStack OutputSizeAvailabilityCost
0x72uint64any,bool2v51

arg

BytecodeStack InputStack OutputSizeAvailabilityCost
0x2c-[]byte2v11

arg_0

BytecodeStack InputStack OutputSizeAvailabilityCost
0x2d-[]byte1v11

arg_1

BytecodeStack InputStack OutputSizeAvailabilityCost
0x2e-[]byte1v11

arg_2

BytecodeStack InputStack OutputSizeAvailabilityCost
0x2f-[]byte1v11

arg_3

BytecodeStack InputStack OutputSizeAvailabilityCost
0x30-[]byte1v11

args

BytecodeStack InputStack OutputSizeAvailabilityCost
0xc3uint64[]byte1v51

assert

BytecodeStack InputStack OutputSizeAvailabilityCost
0x44uint64-1v31

asset_holding_get

BytecodeStack InputStack OutputSizeAvailabilityCost
0x70any,uint64any,bool2v21

asset_params_get

BytecodeStack InputStack OutputSizeAvailabilityCost
0x71uint64any,bool2v21

b

BytecodeStack InputStack OutputSizeAvailabilityCost
0x42--3v21

b-

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa1bigint,bigintbigint1v410

b!=

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa9bigint,bigintbool1v41

b*

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa3bigint,bigint[]byte1v420

b/

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa2bigint,bigintbigint1v420

b&

BytecodeStack InputStack OutputSizeAvailabilityCost
0xac[]byte,[]byte[]byte1v46

b%

BytecodeStack InputStack OutputSizeAvailabilityCost
0xaabigint,bigintbigint1v420

b^

BytecodeStack InputStack OutputSizeAvailabilityCost
0xad[]byte,[]byte[]byte1v46

b+

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa0bigint,bigint[]byte1v410

b<

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa4bigint,bigintbool1v41

b<=

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa6bigint,bigintbool1v41

b==

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa8bigint,bigintbool1v41

b>

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa5bigint,bigintbool1v41

b>=

BytecodeStack InputStack OutputSizeAvailabilityCost
0xa7bigint,bigintbool1v41

b|

BytecodeStack InputStack OutputSizeAvailabilityCost
0xab[]byte,[]byte[]byte1v46

b~

BytecodeStack InputStack OutputSizeAvailabilityCost
0xae[]byte[]byte1v44

balance

BytecodeStack InputStack OutputSizeAvailabilityCost
0x60anyuint641v21

base64_decode

BytecodeStack InputStack OutputSizeAvailabilityCost
0x5e[]byte[]byte2v71 + 1 per 16 bytes of A

bitlen

BytecodeStack InputStack OutputSizeAvailabilityCost
0x93anyuint641v41

block

BytecodeStack InputStack OutputSizeAvailabilityCost
0xd1uint64any2v71

bnz

BytecodeStack InputStack OutputSizeAvailabilityCost
0x40uint64-3v11

box_create

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb9boxName,uint64bool1v81

box_del

BytecodeStack InputStack OutputSizeAvailabilityCost
0xbcboxNamebool1v81

box_extract

BytecodeStack InputStack OutputSizeAvailabilityCost
0xbaboxName,uint64,uint64[]byte1v81

box_get

BytecodeStack InputStack OutputSizeAvailabilityCost
0xbeboxName[]byte,bool1v81

box_len

BytecodeStack InputStack OutputSizeAvailabilityCost
0xbdboxNameuint64,bool1v81

box_put

BytecodeStack InputStack OutputSizeAvailabilityCost
0xbfboxName,[]byte-1v81

box_replace

BytecodeStack InputStack OutputSizeAvailabilityCost
0xbbboxName,uint64,[]byte-1v81

box_resize

BytecodeStack InputStack OutputSizeAvailabilityCost
0xd3boxName,uint64-1v101

box_splice

BytecodeStack InputStack OutputSizeAvailabilityCost
0xd2boxName,uint64,uint64,[]byte-1v101

bsqrt

BytecodeStack InputStack OutputSizeAvailabilityCost
0x96bigintbigint1v640

btoi

BytecodeStack InputStack OutputSizeAvailabilityCost
0x17[]byteuint641v11

bury

BytecodeStack InputStack OutputSizeAvailabilityCost
0x45any-2v81

bytec

BytecodeStack InputStack OutputSizeAvailabilityCost
0x27-[]byte2v11

bytec_0

BytecodeStack InputStack OutputSizeAvailabilityCost
0x28-[]byte1v11

bytec_1

BytecodeStack InputStack OutputSizeAvailabilityCost
0x29-[]byte1v11

bytec_2

BytecodeStack InputStack OutputSizeAvailabilityCost
0x2a-[]byte1v11

bytec_3

BytecodeStack InputStack OutputSizeAvailabilityCost
0x2b-[]byte1v11

bytecblock

BytecodeStack InputStack OutputSizeAvailabilityCost
0x26--0v11

bz

BytecodeStack InputStack OutputSizeAvailabilityCost
0x41uint64-3v21

bzero

BytecodeStack InputStack OutputSizeAvailabilityCost
0xafuint64[]byte1v41

callsub

BytecodeStack InputStack OutputSizeAvailabilityCost
0x88--3v41

concat

BytecodeStack InputStack OutputSizeAvailabilityCost
0x50[]byte,[]byte[]byte1v21

cover

BytecodeStack InputStack OutputSizeAvailabilityCost
0x4eanyany2v51

dig

BytecodeStack InputStack OutputSizeAvailabilityCost
0x4banyany,any2v31

divmodw

BytecodeStack InputStack OutputSizeAvailabilityCost
0x1fuint64,uint64,uint64,uint64uint64,uint64,uint64,uint641v420

divw

BytecodeStack InputStack OutputSizeAvailabilityCost
0x97uint64,uint64,uint64uint641v61

dup

BytecodeStack InputStack OutputSizeAvailabilityCost
0x49anyany,any1v11

dup2

BytecodeStack InputStack OutputSizeAvailabilityCost
0x4aany,anyany,any,any,any1v21

dupn

BytecodeStack InputStack OutputSizeAvailabilityCost
0x47any-2v81

ec_add

BytecodeStack InputStack OutputSizeAvailabilityCost
0xe0[]byte,[]byte[]byte2v10BN254g1=125; BN254g2=170; BLS12_381g1=205; BLS12_381g2=290

ec_map_to

BytecodeStack InputStack OutputSizeAvailabilityCost
0xe5[]byte[]byte2v10BN254g1=630; BN254g2=3300; BLS12_381g1=1950; BLS12_381g2=8150

ec_multi_scalar_mul

BytecodeStack InputStack OutputSizeAvailabilityCost
0xe3[]byte,[]byte[]byte2v10BN254g1=3600 + 90 per 32 bytes of B; BN254g2=7200 + 270 per 32 bytes of B; BLS12_381g1=6500 + 95 per 32 bytes of B; BLS12_381g2=14850 + 485 per 32 bytes of B

ec_pairing_check

BytecodeStack InputStack OutputSizeAvailabilityCost
0xe2[]byte,[]bytebool2v10BN254g1=8000 + 7400 per 64 bytes of B; BN254g2=8000 + 7400 per 128 bytes of B; BLS12_381g1=13000 + 10000 per 96 bytes of B; BLS12_381g2=13000 + 10000 per 192 bytes of B

ec_scalar_mul

BytecodeStack InputStack OutputSizeAvailabilityCost
0xe1[]byte,[]byte[]byte2v10BN254g1=1810; BN254g2=3430; BLS12_381g1=2950; BLS12_381g2=6530

ec_subgroup_check

BytecodeStack InputStack OutputSizeAvailabilityCost
0xe4[]bytebool2v10BN254g1=20; BN254g2=3100; BLS12_381g1=1850; BLS12_381g2=2340

ecdsa_pk_decompress

BytecodeStack InputStack OutputSizeAvailabilityCost
0x06[33]byte[32]byte,[32]byte2v5Secp256k1=650; Secp256r1=2400

ecdsa_pk_recover

BytecodeStack InputStack OutputSizeAvailabilityCost
0x07[32]byte,uint64,[32]byte,[32]byte[32]byte,[32]byte2v52000

ecdsa_verify

BytecodeStack InputStack OutputSizeAvailabilityCost
0x05[32]byte,[32]byte,[32]byte,[32]byte,[32]bytebool2v5Secp256k1=1700; Secp256r1=2500

ed25519verify

BytecodeStack InputStack OutputSizeAvailabilityCost
0x04[]byte,[64]byte,[32]bytebool1v11900

ed25519verify_bare

BytecodeStack InputStack OutputSizeAvailabilityCost
0x84[]byte,[64]byte,[32]bytebool1v71900

err

BytecodeStack InputStack OutputSizeAvailabilityCost
0x00--1v11

exp

BytecodeStack InputStack OutputSizeAvailabilityCost
0x94uint64,uint64uint641v41

expw

BytecodeStack InputStack OutputSizeAvailabilityCost
0x95uint64,uint64uint64,uint641v410

extract

BytecodeStack InputStack OutputSizeAvailabilityCost
0x57[]byte[]byte3v51

extract_uint16

BytecodeStack InputStack OutputSizeAvailabilityCost
0x59[]byte,uint64uint641v51

extract_uint32

BytecodeStack InputStack OutputSizeAvailabilityCost
0x5a[]byte,uint64uint641v51

extract_uint64

BytecodeStack InputStack OutputSizeAvailabilityCost
0x5b[]byte,uint64uint641v51

extract3

BytecodeStack InputStack OutputSizeAvailabilityCost
0x58[]byte,uint64,uint64[]byte1v51

frame_bury

BytecodeStack InputStack OutputSizeAvailabilityCost
0x8cany-2v81

frame_dig

BytecodeStack InputStack OutputSizeAvailabilityCost
0x8b-any2v81

gaid

BytecodeStack InputStack OutputSizeAvailabilityCost
0x3c-uint642v41

gaids

BytecodeStack InputStack OutputSizeAvailabilityCost
0x3duint64uint641v41

getbit

BytecodeStack InputStack OutputSizeAvailabilityCost
0x53any,uint64uint641v31

getbyte

BytecodeStack InputStack OutputSizeAvailabilityCost
0x55[]byte,uint64uint641v31

gitxn

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb7-any3v61

gitxna

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb8-any4v61

gitxnas

BytecodeStack InputStack OutputSizeAvailabilityCost
0xc6uint64any3v61

gload

BytecodeStack InputStack OutputSizeAvailabilityCost
0x3a-any3v41

gloads

BytecodeStack InputStack OutputSizeAvailabilityCost
0x3buint64any2v41

gloadss

BytecodeStack InputStack OutputSizeAvailabilityCost
0xc4uint64,uint64any1v61

global

BytecodeStack InputStack OutputSizeAvailabilityCost
0x32-any2v11

gtxn

BytecodeStack InputStack OutputSizeAvailabilityCost
0x33-any3v11

gtxna

BytecodeStack InputStack OutputSizeAvailabilityCost
0x37-any4v21

gtxnas

BytecodeStack InputStack OutputSizeAvailabilityCost
0xc1uint64any3v51

gtxns

BytecodeStack InputStack OutputSizeAvailabilityCost
0x38uint64any2v31

gtxnsa

BytecodeStack InputStack OutputSizeAvailabilityCost
0x39uint64any3v31

gtxnsas

BytecodeStack InputStack OutputSizeAvailabilityCost
0xc2uint64,uint64any2v51

intc

BytecodeStack InputStack OutputSizeAvailabilityCost
0x21-uint642v11

intc_0

BytecodeStack InputStack OutputSizeAvailabilityCost
0x22-uint641v11

intc_1

BytecodeStack InputStack OutputSizeAvailabilityCost
0x23-uint641v11

intc_2

BytecodeStack InputStack OutputSizeAvailabilityCost
0x24-uint641v11

intc_3

BytecodeStack InputStack OutputSizeAvailabilityCost
0x25-uint641v11

intcblock

BytecodeStack InputStack OutputSizeAvailabilityCost
0x20--0v11

itob

BytecodeStack InputStack OutputSizeAvailabilityCost
0x16uint64[8]byte1v11

itxn

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb4-any2v51

itxn_begin

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb1--1v51

itxn_field

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb2any-2v51

itxn_next

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb6--1v61

itxn_submit

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb3--1v51

itxna

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb5-any3v51

itxnas

BytecodeStack InputStack OutputSizeAvailabilityCost
0xc5uint64any2v61

json_ref

BytecodeStack InputStack OutputSizeAvailabilityCost
0x5f[]byte,[]byteany2v725 + 2 per 7 bytes of A

keccak256

BytecodeStack InputStack OutputSizeAvailabilityCost
0x02[]byte[32]byte1v1130

len

BytecodeStack InputStack OutputSizeAvailabilityCost
0x15[]byteuint641v11

load

BytecodeStack InputStack OutputSizeAvailabilityCost
0x34-any2v11

loads

BytecodeStack InputStack OutputSizeAvailabilityCost
0x3euint64any1v51

log

BytecodeStack InputStack OutputSizeAvailabilityCost
0xb0[]byte-1v51

match

BytecodeStack InputStack OutputSizeAvailabilityCost
0x8e--0v81

mimc

BytecodeStack InputStack OutputSizeAvailabilityCost
0xe6[]byte[32]byte2v11BN254Mp110=10 + 550 per 32 bytes of A; BLS12_381Mp111=10 + 550 per 32 bytes of A

min_balance

BytecodeStack InputStack OutputSizeAvailabilityCost
0x78anyuint641v31

mulw

BytecodeStack InputStack OutputSizeAvailabilityCost
0x1duint64,uint64uint64,uint641v11

online_stake

BytecodeStack InputStack OutputSizeAvailabilityCost
0x75-uint641v111

pop

BytecodeStack InputStack OutputSizeAvailabilityCost
0x48any-1v11

popn

BytecodeStack InputStack OutputSizeAvailabilityCost
0x46--2v81

proto

BytecodeStack InputStack OutputSizeAvailabilityCost
0x8a--3v81

pushbytes

BytecodeStack InputStack OutputSizeAvailabilityCost
0x80-[]byte0v31

pushbytess

BytecodeStack InputStack OutputSizeAvailabilityCost
0x82--0v81

pushint

BytecodeStack InputStack OutputSizeAvailabilityCost
0x81-uint640v31

pushints

BytecodeStack InputStack OutputSizeAvailabilityCost
0x83--0v81

replace2

BytecodeStack InputStack OutputSizeAvailabilityCost
0x5c[]byte,[]byte[]byte2v71

replace3

BytecodeStack InputStack OutputSizeAvailabilityCost
0x5d[]byte,uint64,[]byte[]byte1v71

retsub

BytecodeStack InputStack OutputSizeAvailabilityCost
0x89--1v41

return

BytecodeStack InputStack OutputSizeAvailabilityCost
0x43uint64-1v21

select

BytecodeStack InputStack OutputSizeAvailabilityCost
0x4dany,any,uint64any1v31

setbit

BytecodeStack InputStack OutputSizeAvailabilityCost
0x54any,uint64,uint64any1v31

setbyte

BytecodeStack InputStack OutputSizeAvailabilityCost
0x56[]byte,uint64,uint64[]byte1v31

sha256

BytecodeStack InputStack OutputSizeAvailabilityCost
0x01[]byte[32]byte1v135

sha3_256

BytecodeStack InputStack OutputSizeAvailabilityCost
0x98[]byte[32]byte1v7130

sha512_256

BytecodeStack InputStack OutputSizeAvailabilityCost
0x03[]byte[32]byte1v145

shl

BytecodeStack InputStack OutputSizeAvailabilityCost
0x90uint64,uint64uint641v41

shr

BytecodeStack InputStack OutputSizeAvailabilityCost
0x91uint64,uint64uint641v41

sqrt

BytecodeStack InputStack OutputSizeAvailabilityCost
0x92uint64uint641v44

store

BytecodeStack InputStack OutputSizeAvailabilityCost
0x35any-2v11

stores

BytecodeStack InputStack OutputSizeAvailabilityCost
0x3fuint64,any-1v51

substring

BytecodeStack InputStack OutputSizeAvailabilityCost
0x51[]byte[]byte3v21

substring3

BytecodeStack InputStack OutputSizeAvailabilityCost
0x52[]byte,uint64,uint64[]byte1v21

swap

BytecodeStack InputStack OutputSizeAvailabilityCost
0x4cany,anyany,any1v31

switch

BytecodeStack InputStack OutputSizeAvailabilityCost
0x8duint64-0v81

txn

BytecodeStack InputStack OutputSizeAvailabilityCost
0x31-any2v11

txna

BytecodeStack InputStack OutputSizeAvailabilityCost
0x36-any3v21

txnas

BytecodeStack InputStack OutputSizeAvailabilityCost
0xc0uint64any2v51

uncover

BytecodeStack InputStack OutputSizeAvailabilityCost
0x4fanyany2v51

voter_params_get

BytecodeStack InputStack OutputSizeAvailabilityCost
0x74anyany,bool2v111

vrf_verify

BytecodeStack InputStack OutputSizeAvailabilityCost
0xd0[]byte,[80]byte,[32]byte[64]byte,bool2v75700