## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

- Auto
- Light
- Dark

# Algorand Specifications

Starting from Version 2, the AVM can run programs in two modes:

1. _Logic Signature_ (or _stateless_) mode, used to execute Logic Signatures;

2. _Application_ (or _stateful_) mode, used to execute Smart Contracts.

### Differences between modes include:

- The maximum allowed program size, defined by the following [Ledger parameters](https://specs.algorand.co/ledger/ledger-parameters):  
  - LSigmaxLSigmax  
  - Appprog,t,maxAppprog,t,max  
  - Apppage,maxApppage,max  
- The maximum allowed program cost, defined by the following [Ledger parameters](https://specs.algorand.co/ledger/ledger-parameters):  
  - LSigc,maxLSigc,max  
  - Appc,maxAppc,max  
- Opcode availability (refer to the [Opcodes Specifications](https://specs.algorand.co/avm/avm-appendix-a) for details).

- Some [Global Fields](https://specs.algorand.co/avm/avm-appendix-a#global) are only available in Application mode.

- Only Applications can observe transaction effects, such as Logs or IDs allocated to ASAs or new Applications.
