The purpose of the page is to keep track which opcodes are supported by our TEAL interpreter.
Opcode | TEAL V | Status | Cost |
int i | ? | implemented, not tested | ? |
byte b | ? | implemented, not tested | ? |
addr a | ? | implemented, not tested | ? |
method m | ? | not implemented | ? |
Opcode | TEAL V | Status | Cost |
replace2 s | 7 | not implemented | 1 |
replace3 | 7 | not implemented | 1 |
base64_decode e | 7 | not implemented | 1 + 1 per 16 bytes of A |
json_ref r | 7 | not implemented | 25 + 2 per 7 bytes of A |
ed25519verify_bare | 7 | not implemented | 1900 |
sha3_256 | 7 | not implemented | 130 |
vrf_verify s | 7 | not implemented | 5700 |
block f | 7 | not implemented | 1 |
Opcode | TEAL V | Status | Cost |
acct_params_get f | 6 | not implemented | 1 |
bsqrt | 6 | not implemented | 40 |
divw | 6 | not implemented | 1 |
itxn_next | 6 | implemented, not tested | 1 |
gitxn t f | 6 | implemented, not tested | 1 |
gitxna t f i | 6 | implemented, not tested | 1 |
gloadss | 6 | implemented, not tested | 1 |
itxnas f | 6 | not implemented | 1 |
gitxnas t f | 6 | not implemented | 1 |
Opcode | TEAL V | Status | Cost |
ecdsa_verify | 5 | not implemented | 1700 |
ecdsa_pk_decompress | 5 | not implemented | 650 |
ecdsa_pk_recover | 5 | not implemented | 2000 |
loads | 5 | tested (unit) | 1 |
stores | 5 | tested (unit) | 1 |
cover | 5 | tested (unit) | 1 |
uncover | 5 | tested (unit) | 1 |
extract | 5 | tested (unit) | 1 |
extract3 | 5 | tested (unit) | 1 |
extract_uint16 | 5 | tested (unit) | 1 |
extract_uint32 | 5 | tested (unit) | 1 |
extract_uint64 | 5 | tested (unit) | 1 |
app_params_get | 5 | tested (unit) | 1 |
log | 5 | tested (unit) | 1 |
itxn_begin | 5 | tested (unit) | 1 |
itxn_field | 5 | tested (unit) | 1 |
itxn_submit | 5 | tested (unit) | 1 |
itxn | 5 | tested (unit) | 1 |
itxna | 5 | tested (unit) | 1 |
txnas | 5 | tested (unit) | 1 |
gtxnas | 5 | tested (unit) | 1 |
gtxnsas | 5 | tested (unit) | 1 |
args | 5 | not implemented (logic sig specific) | 1 |
Opcode | TEAL V | Status | Cost |
divmodw | 4 | implemented, not tested | 20 |
gload t i | 4 | tested (unit) | 1 |
gloads i | 4 | tested (unit) | 1 |
gaid t | 4 | tested (unit) | 1 |
gaids | 4 | tested (unit) | 1 |
callsub target | 4 | tested (unit) | 1 |
retsub | 4 | tested (unit) | 1 |
shl | 4 | tested (unit) | 1 |
shr | 4 | tested (unit) | 1 |
sqrt | 4 | implemented, but is currently too slow on symbolic execution | 4 |
bitlen | 4 | tested (unit) | 1 |
exp | 4 | tested (unit) | 1 |
expw | 4 | tested (unit) | 1 |
b+ | 4 | tested (unit) | 10 |
b- | 4 | tested (unit) | 10 |
b/ | 4 | tested (unit) | 20 |
b* | 4 | tested (unit) | 20 |
b< | 4 | tested (unit) | 1 |
b> | 4 | tested (unit) | 1 |
b<= | 4 | tested (unit) | 1 |
b>= | 4 | tested (unit) | 1 |
b== | 4 | tested (unit) | 1 |
b!= | 4 | tested (unit) | 1 |
b% | 4 | tested (unit) | 20 |
b| | 4 | tested (unit) | 6 |
b& | 4 | tested (unit) | 6 |
b^ | 4 | tested (unit) | 6 |
b~ | 4 | tested (unit) | 4 |
bzero | 4 | tested (unit) | 1 |
Opcode | TEAL V | Status | Cost |
gtxns f | 3 | tested (unit), but not for all fields | 1 |
gtxnsa f i | 3 | tested (unit), but not for all fields | 1 |
assert | 3 | tested (unit) | 1 |
dig n | 3 | tested (unit) | 1 |
swap | 3 | tested (unit) | 1 |
select | 3 | tested (unit) | 1 |
getbit | 3 | tested (unit) | 1 |
setbit | 3 | tested (unit) | 1 |
getbyte | 3 | tested (unit) | 1 |
setbyte | 3 | tested (unit) | 1 |
min_balance | 3 | tested (unit) | 1 |
pushbytes bytes | 3 | tested (unit) | 1 |
pushint uint | 3 | tested (unit) | 1 |
Opcode | TEAL V | Status | Cost |
addw | 2 | tested (unit) | 1 |
txna f i | 2 | tested (unit) | 1 |
gtxna t f i | 2 | tested (unit) | 1 |
concat | 2 | tested (unit) | 1 |
substring s e | 2 | tested (unit) | 1 |
substring3 | 2 | tested (unit) | 1 |
dup2 | 2 | tested (unit) | 1 |
balance | 2 | tested (unit) | 1 |
app_opted_in | 2 | tested (unit) | 1 |
app_local_get | 2 | tested (unit) | 1 |
app_local_get_ex | 2 | tested (unit) | 1 |
app_global_get | 2 | tested (unit) | 1 |
app_global_get_ex | 2 | tested (unit) | 1 |
app_local_put | 2 | tested (unit) | 1 |
app_global_put | 2 | tested (unit) | 1 |
app_local_del | 2 | tested (unit) | 1 |
app_global_del | 2 | tested (unit) | 1 |
asset_holding_get i | 2 | tested (unit) | 1 |
asset_params_get i | 2 | tested (unit) | 1 |
return | 2 | tested (unit) | 1 |
bnz target | 2 (4) | tested (unit) | 1 |
bz target | 2 (4) | tested (unit) | 1 |
b target | 2 (4) | tested (unit) | 1 |
Opcode | TEAL V | Supported | Cost |
err | 1 | tested (unit) | 1 |
sha256 | 1 | implemented, not tested | 35 |
keccak256 | 1 | implemented, not tested | 130 |
sha512_256 | 1 | implemented, not tested | 45 |
ed25519verify | 1 | not implemented | 1900 |
+ | 1 | tested (unit) | 1 |
- | 1 | tested (unit) | 1 |
/ | 1 | tested (unit) | 1 |
* | 1 | tested (unit) | 1 |
< | 1 | tested (unit) | 1 |
> | 1 | tested (unit) | 1 |
<= | 1 | tested (unit) | 1 |
>= | 1 | tested (unit) | 1 |
&& | 1 | tested (unit) | 1 |
|| | 1 | tested (unit) | 1 |
== | 1 | tested (unit) | 1 |
!= | 1 | tested (unit) | 1 |
! | 1 | tested (unit) | 1 |
len | 1 | tested (unit) | 1 |
itob | 1 | tested (unit) | 1 |
btoi | 1 | tested (unit) | 1 |
% | 1 | tested (unit) | 1 |
| | 1 | tested (unit) | 1 |
& | 1 | tested (unit) | 1 |
^ | 1 | tested (unit) | 1 |
~ | 1 | implemented, but might be incorrectly handling signedness (check all bit arithmetic operators too) | 1 |
mulw | 1 | tested (unit) | 1 |
intcblock | 1 | tested (unit) | 1 |
intc i | 1 | tested (unit) | 1 |
intc_0 i | 1 | tested (unit) | 1 |
intc_1 | 1 | tested (unit) | 1 |
intc_2 | 1 | tested (unit) | 1 |
intc_3 | 1 | tested (unit) | 1 |
bytecblock | 1 | tested (unit) | 1 |
bytec i | 1 | tested (unit) | 1 |
bytec_0 | 1 | tested (unit) | 1 |
bytec_1 | 1 | tested (unit) | 1 |
bytec_2 | 1 | tested (unit) | 1 |
bytec_3 | 1 | tested (unit) | 1 |
arg n | 1 | not implemented (logic sig specific) | 1 |
arg_0 | 1 | not implemented (logic sig specific) | 1 |
arg_1 | 1 | not implemented (logic sig specific) | 1 |
arg_2 | 1 | not implemented (logic sig specific) | 1 |
arg_3 | 1 | not implemented (logic sig specific) | 1 |
txn f | 1 | tested (unit), but not for all fields | 1 |
global f | 1 | tested (unit), but not for all fields | 1 |
gtxn t f | 1 | tested (unit), but not for all fields | 1 |
load i | 1 | tested (unit) | 1 |
store i | 1 | tested (unit) | 1 |
pop | 1 | tested (unit) | 1 |
dup | 1 | tested (unit) | 1 |