Skip to content

Arc56Contract

Arc56Contract = object

Defined in: packages/abi/src/arc56-contract.ts:32

Describes the entire contract. This type is an extension of the type described in ARC-4

arcs: number[]

Defined in: packages/abi/src/arc56-contract.ts:34

The ARCs used and/or supported by this contract. All contracts implicitly support ARC4 and ARC56


bareActions: object

Defined in: packages/abi/src/arc56-contract.ts:82

Supported bare actions for the contract. An action is a combination of call/create and an OnComplete

call: ("NoOp" | "OptIn" | "CloseOut" | "ClearState" | "UpdateApplication" | "DeleteApplication")[]

OnCompletes this method allows when appID !== 0

create: ("NoOp" | "OptIn" | "DeleteApplication")[]

OnCompletes this method allows when appID === 0


optional byteCode: object

Defined in: packages/abi/src/arc56-contract.ts:103

The compiled bytecode for the application. MUST be omitted if included as part of ARC23

approval: string

The approval program

clear: string

The clear program


optional compilerInfo: object

Defined in: packages/abi/src/arc56-contract.ts:110

Information used to get the given byteCode and/or PC values in sourceInfo. MUST be given if byteCode or PC values are present

compiler: "algod" | "puya"

The name of the compiler

compilerVersion: object

Compiler version information

optional commitHash: string

major: number

minor: number

patch: number


optional desc: string

Defined in: packages/abi/src/arc56-contract.ts:38

Optional, user-friendly description for the type


optional events: Event[]

Defined in: packages/abi/src/arc56-contract.ts:122

ARC-28 events that MAY be emitted by this contract


methods: Arc56Method[]

Defined in: packages/abi/src/arc56-contract.ts:55

All of the methods that the contract implements


name: string

Defined in: packages/abi/src/arc56-contract.ts:36

A user-friendly name for the contract


optional networks: object

Defined in: packages/abi/src/arc56-contract.ts:46

Optional object listing the contract instances across different networks. The key is the base64 genesis hash of the network, and the value contains information about the deployed contract in the network indicated by the key. A key containing the human-readable name of the network MAY be included, but the corresponding genesis hash key MUST also be defined

[network: string]: object


optional scratchVariables: object

Defined in: packages/abi/src/arc56-contract.ts:133

The scratch variables used during runtime

[name: string]: object


optional source: object

Defined in: packages/abi/src/arc56-contract.ts:96

The pre-compiled TEAL that may contain template variables. MUST be omitted if included as part of ARC23

approval: string

The approval program

clear: string

The clear program


optional sourceInfo: object

Defined in: packages/abi/src/arc56-contract.ts:89

Information about the TEAL programs

approval: ProgramSourceInfo

Approval program information

clear: ProgramSourceInfo

Clear program information


state: object

Defined in: packages/abi/src/arc56-contract.ts:56

keys: object

Mapping of human-readable names to StorageKey objects

box: object

[name: string]: StorageKey

global: object

[name: string]: StorageKey

local: object

[name: string]: StorageKey

maps: object

Mapping of human-readable names to StorageMap objects

box: object

[name: string]: StorageMap

global: object

[name: string]: StorageMap

local: object

[name: string]: StorageMap

schema: object

Defines the values that should be used for GlobalNumUint, GlobalNumByteSlice, LocalNumUint, and LocalNumByteSlice when creating the application

global: object

bytes: number

ints: number

local: object

bytes: number

ints: number


structs: object

Defined in: packages/abi/src/arc56-contract.ts:53

Named structs used by the application. Each struct field appears in the same order as ABI encoding.

[structName: string]: StructField[]


optional templateVariables: object

Defined in: packages/abi/src/arc56-contract.ts:124

A mapping of template variable names as they appear in the TEAL (not including TMPL_ prefix) to their respective types and values (if applicable)

[name: string]: object