#
tokens: 39831/50000 1/942 files (page 63/93)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 63 of 93. Use http://codebase.md/goplausible/algorand-mcp?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── llms-install.md
├── llms.txt
├── package.json
├── packages
│   ├── client
│   │   ├── .env.example
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── env.ts
│   │   │   ├── index.ts
│   │   │   └── LocalWallet.ts
│   │   └── tsconfig.json
│   └── server
│       ├── .env.example
│       ├── API specs
│       │   ├── algod_api.json
│       │   ├── indexer_api.json
│       │   ├── mcp.json
│       │   ├── nfd_api.json
│       │   ├── ultrade_api.json
│       │   ├── vestige_api.json
│       │   └── vestige_free_api.json
│       ├── Dockerfile
│       ├── jest.config.js
│       ├── package.json
│       ├── README.md
│       ├── smithery.yaml
│       ├── src
│       │   ├── algorand-client.ts
│       │   ├── env.ts
│       │   ├── index.ts
│       │   ├── resources
│       │   │   ├── index.ts
│       │   │   ├── knowledge
│       │   │   │   ├── ARCs.txt
│       │   │   │   ├── developers-algokit-architecture-decisions.txt
│       │   │   │   ├── developers-algokit-cli.txt
│       │   │   │   ├── developers-algokit-utils-python.txt
│       │   │   │   ├── developers-algokit-utils-typescript.txt
│       │   │   │   ├── developers-clis.txt
│       │   │   │   ├── developers-details.txt
│       │   │   │   ├── developers-liquid-auth.txt
│       │   │   │   ├── developers-nodes.txt
│       │   │   │   ├── developers-puya.txt
│       │   │   │   ├── developers-python.txt
│       │   │   │   ├── developers-sdks-js.txt
│       │   │   │   ├── developers-sdks-python.txt
│       │   │   │   ├── developers-tealscript.txt
│       │   │   │   ├── developers.txt
│       │   │   │   ├── index.ts
│       │   │   │   ├── taxonomy
│       │   │   │   │   ├── algokit-cli:README.md
│       │   │   │   │   ├── algokit:cli:algokit.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2022-11-14_sandbox-approach.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2022-11-22_beaker-testing-strategy.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-01-11_beaker_productionisation_review.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-01-11_brew_install.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-01-12_smart-contract-deployment.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-06-06_frontend-templates.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-07-19_advanced_generate_command.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2024-01-13_native_binaries.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2024-01-23_init-wizard-v2.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2024-01-31_binary_distribution.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2024-03-06_local_dev_ui_packaging.md
│       │   │   │   │   ├── algokit:cli:articles:output_stability.md
│       │   │   │   │   ├── algokit:cli:cli:index.md
│       │   │   │   │   ├── algokit:cli:features:compile.md
│       │   │   │   │   ├── algokit:cli:features:completions.md
│       │   │   │   │   ├── algokit:cli:features:config.md
│       │   │   │   │   ├── algokit:cli:features:dispenser.md
│       │   │   │   │   ├── algokit:cli:features:doctor.md
│       │   │   │   │   ├── algokit:cli:features:explore.md
│       │   │   │   │   ├── algokit:cli:features:generate.md
│       │   │   │   │   ├── algokit:cli:features:goal.md
│       │   │   │   │   ├── algokit:cli:features:init.md
│       │   │   │   │   ├── algokit:cli:features:localnet.md
│       │   │   │   │   ├── algokit:cli:features:project:bootstrap.md
│       │   │   │   │   ├── algokit:cli:features:project:deploy.md
│       │   │   │   │   ├── algokit:cli:features:project:link.md
│       │   │   │   │   ├── algokit:cli:features:project:list.md
│       │   │   │   │   ├── algokit:cli:features:project:run.md
│       │   │   │   │   ├── algokit:cli:features:project.md
│       │   │   │   │   ├── algokit:cli:features:tasks:analyze.md
│       │   │   │   │   ├── algokit:cli:features:tasks:ipfs.md
│       │   │   │   │   ├── algokit:cli:features:tasks:mint.md
│       │   │   │   │   ├── algokit:cli:features:tasks:nfd.md
│       │   │   │   │   ├── algokit:cli:features:tasks:opt.md
│       │   │   │   │   ├── algokit:cli:features:tasks:send.md
│       │   │   │   │   ├── algokit:cli:features:tasks:sign.md
│       │   │   │   │   ├── algokit:cli:features:tasks:transfer.md
│       │   │   │   │   ├── algokit:cli:features:tasks:vanity_address.md
│       │   │   │   │   ├── algokit:cli:features:tasks:wallet.md
│       │   │   │   │   ├── algokit:cli:features:tasks.md
│       │   │   │   │   ├── algokit:cli:tutorials:algokit-template.md
│       │   │   │   │   ├── algokit:cli:tutorials:intro.md
│       │   │   │   │   ├── algokit:cli:tutorials:smart-contracts.md
│       │   │   │   │   ├── algokit:docs:testnet_api.md
│       │   │   │   │   ├── algokit:lora:README.md
│       │   │   │   │   ├── algokit:README.md
│       │   │   │   │   ├── algokit:utils:python:markdown:apidocs:algokit_utils:algokit_utils.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:account.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:app-client.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:app-deploy.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:client.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:debugger.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:dispenser-client.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:transfer.md
│       │   │   │   │   ├── algokit:utils:python:markdown:index.md
│       │   │   │   │   ├── algokit:utils:python:README.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:account.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:app-client.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:app-deploy.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:client.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:debugger.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:dispenser-client.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:transfer.md
│       │   │   │   │   ├── algokit:utils:python:source:index.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:account.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:algorand-client.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:amount.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:app-client.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:app-deploy.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:app.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:asset.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:client.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:debugging.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:dispenser-client.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:event-emitter.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:indexer.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:testing.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:transaction-composer.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:transaction.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:transfer.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:typed-app-clients.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:testing.TestLogger.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:testing.TransactionLogger.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_account_manager.AccountManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_account.MultisigAccount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_account.SigningAccount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_sender.AlgorandClientTransactionSender.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_algorand_client.AlgorandClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_amount.AlgoAmount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_arc56.Arc56Method.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_client.AppClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_client.ApplicationClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_deployer.AppDeployer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_factory.AppFactory.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_manager.AppManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_asset_manager.AssetManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_async_event_emitter.AsyncEventEmitter.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_composer.TransactionComposer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_config.UpdatableConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_dispenser_client.TestNetDispenserApiClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_kmd_account_manager.KmdAccountManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_logic_error.LogicError.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_app.OnSchemaBreak.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_app.OnUpdate.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_indexer.AccountStatus.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_indexer.ApplicationOnComplete.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_indexer.SignatureType.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_lifecycle_events.EventType.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_account_manager.EnsureFundedResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_account.AccountConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_account.TransactionSignerAccount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_algorand_client_interface.AlgorandClientInterface.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Arc56Contract.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Event.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Method.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.ProgramSourceInfo.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageKey.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageMap.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StructField.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallABIArgs.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallCoreParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCallInterfaceParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCoreParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppSourceMaps.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.FundAppAccountParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppById.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppByIdBase.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.SourceMapExport.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppLookup.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppMetadata.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_factory.AppFactoryParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_manager.AppInformation.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxReference.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValueRequestParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValuesRequestParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSources.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.CallConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.DeclaredSchemaValueSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.Hint.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.ReservedSchemaValueSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.Schema.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.SchemaSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.StateSchemaSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.Struct.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppCallParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppCallTransactionResultOfType.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppCompilationResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppDeploymentParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppDeployMetadata.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppLookup.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppMetadata.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppReference.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppState.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppStorageSchema.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.BoxName.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.BoxReference.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.BoxValueRequestParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.BoxValuesRequestParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.CompiledTeal.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.CoreAppCallArgs.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.CreateAppParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.RawAppCallArgs.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.TealTemplateParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.UpdateAppParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset_manager.AssetInformation.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset_manager.BulkAssetOptInOutResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset.AssetBulkOptInOutParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptInParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptOutParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset.CreateAssetParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_client_manager.AlgoSdkClients.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppFactory.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_composer.BuiltTransactions.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_config.Config.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_debugging.AVMTracesEventData.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourceDebugEventData.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourcesDebugEventData.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserFundResponse.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserLimitResponse.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.TestNetDispenserApiClientParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_indexer.LookupAssetHoldingsOptions.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_logic_error.LogicErrorDetails.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoClientConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_network_client.NetworkDetails.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.AlgoKitLogCaptureFixture.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixture.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixtureConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandTestAutomationContext.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.GetTestAccountParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.LogSnapshotConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.AtomicTransactionComposerToSend.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResults.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendAtomicTransactionComposerResults.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResults.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionGroupToSend.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionToSign.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoRekeyParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoTransferParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedReturnType.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.TransferAssetParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:index.indexer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:index.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:testing.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_account_manager_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_account_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_account.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algo_http_client_with_retry.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_asset_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_interface.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_creator.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_sender.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_transfer_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_amount_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_amount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_arc56.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_client_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_client.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_deployer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_factory_and_client_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_factory.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_asset_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_asset.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_async_event_emitter_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_async_event_emitter.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_client_manager_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_client_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_composer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_config.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_debugging.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_dispenser_client_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_dispenser_client.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_expand.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_indexer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_kmd_account_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_lifecycle_events.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_logging.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_logic_error.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_network_client.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_testing.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_transaction.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_transfer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:README.md
│       │   │   │   │   ├── algokit:utils:typescript:README.md
│       │   │   │   │   ├── algokit:utils:typescript:v7-migration.md
│       │   │   │   │   ├── algokit:utils:typescript:v8-migration.md
│       │   │   │   │   ├── ARCs:ARC-template.md
│       │   │   │   │   ├── ARCs:assets:arc-0012:README.md
│       │   │   │   │   ├── ARCs:assets:arc-0034:TemplateForm.md
│       │   │   │   │   ├── ARCs:assets:arc-0062:README.md
│       │   │   │   │   ├── ARCs:pages:nfts.md
│       │   │   │   │   ├── ARCs:pages:wallets.md
│       │   │   │   │   ├── ARCs:README.md
│       │   │   │   │   ├── ARCs:specs:arc-0000.md
│       │   │   │   │   ├── ARCs:specs:arc-0001.md
│       │   │   │   │   ├── ARCs:specs:arc-0002.md
│       │   │   │   │   ├── ARCs:specs:arc-0003.md
│       │   │   │   │   ├── ARCs:specs:arc-0004.md
│       │   │   │   │   ├── ARCs:specs:arc-0005.md
│       │   │   │   │   ├── ARCs:specs:arc-0006.md
│       │   │   │   │   ├── ARCs:specs:arc-0007.md
│       │   │   │   │   ├── ARCs:specs:arc-0008.md
│       │   │   │   │   ├── ARCs:specs:arc-0009.md
│       │   │   │   │   ├── ARCs:specs:arc-0010.md
│       │   │   │   │   ├── ARCs:specs:arc-0011.md
│       │   │   │   │   ├── ARCs:specs:arc-0012.md
│       │   │   │   │   ├── ARCs:specs:arc-0015.md
│       │   │   │   │   ├── ARCs:specs:arc-0016.md
│       │   │   │   │   ├── ARCs:specs:arc-0018.md
│       │   │   │   │   ├── ARCs:specs:arc-0019.md
│       │   │   │   │   ├── ARCs:specs:arc-0020.md
│       │   │   │   │   ├── ARCs:specs:arc-0021.md
│       │   │   │   │   ├── ARCs:specs:arc-0022.md
│       │   │   │   │   ├── ARCs:specs:arc-0023.md
│       │   │   │   │   ├── ARCs:specs:arc-0025.md
│       │   │   │   │   ├── ARCs:specs:arc-0026.md
│       │   │   │   │   ├── ARCs:specs:arc-0028.md
│       │   │   │   │   ├── ARCs:specs:arc-0032.md
│       │   │   │   │   ├── ARCs:specs:arc-0033.md
│       │   │   │   │   ├── ARCs:specs:arc-0034.md
│       │   │   │   │   ├── ARCs:specs:arc-0035.md
│       │   │   │   │   ├── ARCs:specs:arc-0036.md
│       │   │   │   │   ├── ARCs:specs:arc-0042.md
│       │   │   │   │   ├── ARCs:specs:arc-0047.md
│       │   │   │   │   ├── ARCs:specs:arc-0048.md
│       │   │   │   │   ├── ARCs:specs:arc-0049.md
│       │   │   │   │   ├── ARCs:specs:arc-0054.md
│       │   │   │   │   ├── ARCs:specs:arc-0055.md
│       │   │   │   │   ├── ARCs:specs:arc-0056.md
│       │   │   │   │   ├── ARCs:specs:arc-0059.md
│       │   │   │   │   ├── ARCs:specs:arc-0062.md
│       │   │   │   │   ├── ARCs:specs:arc-0065.md
│       │   │   │   │   ├── ARCs:specs:arc-0069.md
│       │   │   │   │   ├── ARCs:specs:arc-0072.md
│       │   │   │   │   ├── ARCs:specs:arc-0073.md
│       │   │   │   │   ├── ARCs:specs:arc-0074.md
│       │   │   │   │   ├── ARCs:specs:arc-0076.md
│       │   │   │   │   ├── ARCs:specs:arc-0078.md
│       │   │   │   │   ├── ARCs:specs:arc-0079.md
│       │   │   │   │   ├── ARCs:specs:arc-0200.md
│       │   │   │   │   ├── clis_index.md
│       │   │   │   │   ├── developer:docs:about.md
│       │   │   │   │   ├── developer:docs:clis:algokey:algokey.md
│       │   │   │   │   ├── developer:docs:clis:algokey:generate.md
│       │   │   │   │   ├── developer:docs:clis:algokey:import.md
│       │   │   │   │   ├── developer:docs:clis:algokey:multisig:append-auth-addr.md
│       │   │   │   │   ├── developer:docs:clis:algokey:multisig:multisig.md
│       │   │   │   │   ├── developer:docs:clis:algokey:part:info.md
│       │   │   │   │   ├── developer:docs:clis:algokey:part:part.md
│       │   │   │   │   ├── developer:docs:clis:algokey:part:reparent.md
│       │   │   │   │   ├── developer:docs:clis:algokey:sign.md
│       │   │   │   │   ├── developer:docs:clis:conduit:conduit.md
│       │   │   │   │   ├── developer:docs:clis:conduit:init.md
│       │   │   │   │   ├── developer:docs:clis:conduit:list:exporters.md
│       │   │   │   │   ├── developer:docs:clis:conduit:list:importers.md
│       │   │   │   │   ├── developer:docs:clis:conduit:list:list.md
│       │   │   │   │   ├── developer:docs:clis:conduit:list:processors.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:diagcfg.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:metric:disable.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:metric:enable.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:metric:metric.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:metric:status.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:disable.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:enable.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:endpoint.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:name.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:status.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:telemetry.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:restart.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:start.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:status.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:stop.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:wait.md
│       │   │   │   │   ├── developer:docs:clis:goal:protocols.md
│       │   │   │   │   ├── developer:docs:clis:goal:report.md
│       │   │   │   │   ├── developer:docs:clis:goal:version.md
│       │   │   │   │   ├── developer:docs:clis:goal:wallet:list.md
│       │   │   │   │   ├── developer:docs:clis:goal:wallet:new.md
│       │   │   │   │   ├── developer:docs:clis:goal:wallet:wallet.md
│       │   │   │   │   ├── developer:docs:clis:indexer:api-config.md
│       │   │   │   │   ├── developer:docs:clis:indexer:daemon.md
│       │   │   │   │   ├── developer:docs:clis:indexer:indexer.md
│       │   │   │   │   ├── developer:docs:clis:indexer:util:util.md
│       │   │   │   │   ├── developer:docs:clis:indexer:util:validator.md
│       │   │   │   │   ├── developer:docs:clis:kmd.md
│       │   │   │   │   ├── developer:docs:clis:tealdbg:debug.md
│       │   │   │   │   ├── developer:docs:clis:tealdbg:remote.md
│       │   │   │   │   ├── developer:docs:clis:tealdbg:tealdbg.md
│       │   │   │   │   ├── developer:docs:details:accounts:create.md
│       │   │   │   │   ├── developer:docs:details:accounts:index.md
│       │   │   │   │   ├── developer:docs:details:accounts:rekey.md
│       │   │   │   │   ├── developer:docs:details:algorand_consensus.md
│       │   │   │   │   ├── developer:docs:details:algorand-networks:betanet.md
│       │   │   │   │   ├── developer:docs:details:algorand-networks:index.md
│       │   │   │   │   ├── developer:docs:details:algorand-networks:mainnet.md
│       │   │   │   │   ├── developer:docs:details:algorand-networks:testnet.md
│       │   │   │   │   ├── developer:docs:details:asa.md
│       │   │   │   │   ├── developer:docs:details:atc.md
│       │   │   │   │   ├── developer:docs:details:atomic_transfers.md
│       │   │   │   │   ├── developer:docs:details:conduit.md
│       │   │   │   │   ├── developer:docs:details:crust.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:guidelines.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:jsonspec.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v1.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v10.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v2.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v3.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v4.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v5.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v6.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v7.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v8.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v9.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:specification.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:ABI:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:create.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:innertx.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:state.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:txs.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:debugging.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:frontend:apps.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:frontend:smartsigs.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:guidelines.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:smartsigs:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:smartsigs:modes.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:smartsigs:walkthrough.md
│       │   │   │   │   ├── developer:docs:details:dapps:writing-contracts:beaker.md
│       │   │   │   │   ├── developer:docs:details:dapps:writing-contracts:pyteal.md
│       │   │   │   │   ├── developer:docs:details:dapps:writing-contracts:python.md
│       │   │   │   │   ├── developer:docs:details:encoding.md
│       │   │   │   │   ├── developer:docs:details:ethereum_to_algorand.md
│       │   │   │   │   ├── developer:docs:details:index.md
│       │   │   │   │   ├── developer:docs:details:indexer.md
│       │   │   │   │   ├── developer:docs:details:parameter_tables.md
│       │   │   │   │   ├── developer:docs:details:stateproofs:index.md
│       │   │   │   │   ├── developer:docs:details:stateproofs:light_client.md
│       │   │   │   │   ├── developer:docs:details:technical_faq.md
│       │   │   │   │   ├── developer:docs:details:transactions:index.md
│       │   │   │   │   ├── developer:docs:details:transactions:offline_transactions.md
│       │   │   │   │   ├── developer:docs:details:transactions:payment_prompts.md
│       │   │   │   │   ├── developer:docs:details:transactions:signatures.md
│       │   │   │   │   ├── developer:docs:details:transactions:transactions.md
│       │   │   │   │   ├── developer:docs:details:useful_resources.md
│       │   │   │   │   ├── developer:docs:get-started:algokit.md
│       │   │   │   │   ├── developer:docs:get-started:basics:what_is_blockchain.md
│       │   │   │   │   ├── developer:docs:get-started:basics:whats_a_dapp.md
│       │   │   │   │   ├── developer:docs:get-started:basics:where_to_start.md
│       │   │   │   │   ├── developer:docs:get-started:basics:why_algorand.md
│       │   │   │   │   ├── developer:docs:get-started:tokenization:ft.md
│       │   │   │   │   ├── developer:docs:get-started:tokenization:nft.md
│       │   │   │   │   ├── developer:docs:index.md
│       │   │   │   │   ├── developer:docs:rest-apis:algod.md
│       │   │   │   │   ├── developer:docs:rest-apis:indexer.md
│       │   │   │   │   ├── developer:docs:rest-apis:kmd.md
│       │   │   │   │   ├── developer:docs:rest-apis:restendpoints.md
│       │   │   │   │   ├── developer:docs:run-a-node:operations:catchup.md
│       │   │   │   │   ├── developer:docs:run-a-node:operations:switch_networks.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:generate_keys.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:index.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:offline.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:online.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:renew.md
│       │   │   │   │   ├── developer:docs:run-a-node:reference:artifacts.md
│       │   │   │   │   ├── developer:docs:run-a-node:reference:config.md
│       │   │   │   │   ├── developer:docs:run-a-node:reference:relay.md
│       │   │   │   │   ├── developer:docs:run-a-node:reference:telemetry-config.md
│       │   │   │   │   ├── developer:docs:run-a-node:setup:indexer.md
│       │   │   │   │   ├── developer:docs:run-a-node:setup:install.md
│       │   │   │   │   ├── developer:docs:run-a-node:setup:node-troubleshooting.md
│       │   │   │   │   ├── developer:docs:run-a-node:setup:types.md
│       │   │   │   │   ├── developer:docs:sdks:go:index.md
│       │   │   │   │   ├── developer:docs:sdks:index.md
│       │   │   │   │   ├── developer:docs:sdks:java:index.md
│       │   │   │   │   ├── developer:docs:sdks:javascript:index.md
│       │   │   │   │   ├── developer:docs:sdks:python:index.md
│       │   │   │   │   ├── developer:python:code:example:accounts.md
│       │   │   │   │   ├── developer:python:code:example:arc4_types.md
│       │   │   │   │   ├── developer:python:code:example:assets.md
│       │   │   │   │   ├── developer:python:code:example:box_storage.md
│       │   │   │   │   ├── developer:python:code:example:control_flow.md
│       │   │   │   │   ├── developer:python:code:example:crypto:merkle_tree.md
│       │   │   │   │   ├── developer:python:code:example:defi:amm.md
│       │   │   │   │   ├── developer:python:code:example:defi:auction.md
│       │   │   │   │   ├── developer:python:code:example:defi:htlc_logicsig.md
│       │   │   │   │   ├── developer:python:code:example:defi:marketplace.md
│       │   │   │   │   ├── developer:python:code:example:events:arc28_events.md
│       │   │   │   │   ├── developer:python:code:example:global_storage.md
│       │   │   │   │   ├── developer:python:code:example:governance:simple_voting.md
│       │   │   │   │   ├── developer:python:code:example:hello_world.md
│       │   │   │   │   ├── developer:python:code:example:inner_transactions.md
│       │   │   │   │   ├── developer:python:code:example:local_storage.md
│       │   │   │   │   ├── developer:python:code:example:nft:proof_of_attendance.md
│       │   │   │   │   ├── developer:python:code:example:privacy:zk_whitelist.md
│       │   │   │   │   ├── developer:python:code:example:scratch_storage.md
│       │   │   │   │   ├── developer:python:code:example:self_payment.md
│       │   │   │   │   ├── developer:python:code:example:struct_in_box.md
│       │   │   │   │   ├── developer:python:code:example:subsidize_app_call.md
│       │   │   │   │   ├── developer:python:code:example:transactions.md
│       │   │   │   │   ├── developer:python:code:example:utility:calculator.md
│       │   │   │   │   ├── devportal-code-examples:projects:python-contract-examples:README.md
│       │   │   │   │   ├── devportal-code-examples:README.md
│       │   │   │   │   ├── docs:.walletconnect:index.md
│       │   │   │   │   ├── docs:.walletconnect:walletconnect-schema.md
│       │   │   │   │   ├── docs:README.md
│       │   │   │   │   ├── docs:scripts:example_tracker:example_list.md
│       │   │   │   │   ├── docs:scripts:README.md
│       │   │   │   │   ├── index.md
│       │   │   │   │   ├── liquid_auth_index.md
│       │   │   │   │   ├── liquid-auth:ARCHITECTURE.md
│       │   │   │   │   ├── liquid-auth:decisions:1-Service-Authentication.md
│       │   │   │   │   ├── liquid-auth:decisions:2-Bidirectional-Communication.md
│       │   │   │   │   ├── liquid-auth:decisions:3-Peer-to-Peer-Signaling.md
│       │   │   │   │   ├── liquid-auth:decisions:4-Fido-Extension.md
│       │   │   │   │   ├── liquid-auth:decisions:README.md
│       │   │   │   │   ├── liquid-auth:docs:architecture.md
│       │   │   │   │   ├── liquid-auth:docs:clients:android:provider-service:authenticate.md
│       │   │   │   │   ├── liquid-auth:docs:clients:android:provider-service:register.md
│       │   │   │   │   ├── liquid-auth:docs:clients:browser:authentication.md
│       │   │   │   │   ├── liquid-auth:docs:clients:browser:example.md
│       │   │   │   │   ├── liquid-auth:docs:introduction.md
│       │   │   │   │   ├── liquid-auth:docs:README.md
│       │   │   │   │   ├── liquid-auth:docs:server:environment-variables.md
│       │   │   │   │   ├── liquid-auth:docs:server:integrations.md
│       │   │   │   │   ├── liquid-auth:docs:server:introduction.md
│       │   │   │   │   ├── liquid-auth:docs:server:running-locally.md
│       │   │   │   │   ├── liquid-auth:README.md
│       │   │   │   │   ├── liquid-auth:SEQUENCE.md
│       │   │   │   │   ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.request.md
│       │   │   │   │   ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.response.md
│       │   │   │   │   ├── liquid-auth:services:liquid-auth-api-js:src:attestation:attestation.controller.post.request.md
│       │   │   │   │   ├── liquid-auth:services:liquid-auth-api-js:src:auth:auth.controller.get.user.md
│       │   │   │   │   ├── liquid-auth:sites:express-dapp:README.md
│       │   │   │   │   ├── liquid-auth:VISION.md
│       │   │   │   │   ├── puya_index.md
│       │   │   │   │   ├── puya:docs:algopy_testing:index.md
│       │   │   │   │   ├── puya:docs:api-algopy.arc4.md
│       │   │   │   │   ├── puya:docs:api-algopy.gtxn.md
│       │   │   │   │   ├── puya:docs:api-algopy.itxn.md
│       │   │   │   │   ├── puya:docs:api-algopy.md
│       │   │   │   │   ├── puya:docs:api-algopy.op.md
│       │   │   │   │   ├── puya:docs:api.md
│       │   │   │   │   ├── puya:docs:compiler.md
│       │   │   │   │   ├── puya:docs:index.md
│       │   │   │   │   ├── puya:docs:language-guide.md
│       │   │   │   │   ├── puya:docs:lg-arc28.md
│       │   │   │   │   ├── puya:docs:lg-arc4.md
│       │   │   │   │   ├── puya:docs:lg-builtins.md
│       │   │   │   │   ├── puya:docs:lg-calling-apps.md
│       │   │   │   │   ├── puya:docs:lg-compile.md
│       │   │   │   │   ├── puya:docs:lg-control.md
│       │   │   │   │   ├── puya:docs:lg-errors.md
│       │   │   │   │   ├── puya:docs:lg-logs.md
│       │   │   │   │   ├── puya:docs:lg-modules.md
│       │   │   │   │   ├── puya:docs:lg-opcode-budget.md
│       │   │   │   │   ├── puya:docs:lg-ops.md
│       │   │   │   │   ├── puya:docs:lg-storage.md
│       │   │   │   │   ├── puya:docs:lg-structure.md
│       │   │   │   │   ├── puya:docs:lg-transactions.md
│       │   │   │   │   ├── puya:docs:lg-types.md
│       │   │   │   │   ├── puya:docs:lg-unsupported-python-features.md
│       │   │   │   │   ├── puya:docs:principles.md
│       │   │   │   │   ├── puya:examples:auction:README.md
│       │   │   │   │   ├── puya:python:testing:docs:algopy.md
│       │   │   │   │   ├── puya:python:testing:docs:api.md
│       │   │   │   │   ├── puya:python:testing:docs:coverage.md
│       │   │   │   │   ├── puya:python:testing:docs:examples.md
│       │   │   │   │   ├── puya:python:testing:docs:faq.md
│       │   │   │   │   ├── puya:python:testing:docs:index.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:arc4-types.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:avm-types.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:concepts.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:contract-testing.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:index.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:opcodes.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:signature-testing.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:state-management.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:subroutines.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:transactions.md
│       │   │   │   │   ├── puya:python:testing:examples:README.md
│       │   │   │   │   ├── puya:python:testing:README.md
│       │   │   │   │   ├── puya:README.md
│       │   │   │   │   ├── puya:src:puya:ARCHITECTURE.md
│       │   │   │   │   ├── puya:src:puyapy:_typeshed:README.md
│       │   │   │   │   ├── puya:src:puyapy:_vendor:mypy:typeshed:stdlib:_typeshed:README.md
│       │   │   │   │   ├── puya:src:puyapy:awst_build:README.md
│       │   │   │   │   ├── puya:stubs:README.md
│       │   │   │   │   ├── puya:tests:test_expected_output:README.md
│       │   │   │   │   ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-bytes-and-strings.md
│       │   │   │   │   ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-integer-types.md
│       │   │   │   │   ├── puya:typescript:docs:README.md
│       │   │   │   │   ├── puya:typescript:packages:algo-ts:readme.md
│       │   │   │   │   ├── puya:typescript:README.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIAddressType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIArrayDynamicType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIArrayStaticType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIBoolType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIByteType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIContract.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIInterface.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIMethod.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIStringType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABITupleType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIUfixedType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIUintType.md
│       │   │   │   │   ├── SDKs:javascript:classes:Algodv2.md
│       │   │   │   │   ├── SDKs:javascript:classes:AtomicTransactionComposer.md
│       │   │   │   │   ├── SDKs:javascript:classes:DryrunResult.md
│       │   │   │   │   ├── SDKs:javascript:classes:Indexer.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Account.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AccountParticipation.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AccountResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AccountsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AccountStateDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Application.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationLocalState.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationLocalStatesResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationLogData.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationLogsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationParams.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationStateSchema.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Asset.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetBalancesResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetHolding.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetHoldingsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetParams.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Block.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BlockRewards.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BlockUpgradeState.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BlockUpgradeVote.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Box.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BoxDescriptor.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BoxesResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ErrorResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.EvalDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.EvalDeltaKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.HashFactory.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.HealthCheck.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.IndexerStateProofMessage.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.MerkleArrayProof.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.MiniAssetHolding.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ParticipationUpdates.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofFields.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofParticipant.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofReveal.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofSignature.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofSigSlot.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofTracking.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofVerifier.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateSchema.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TealKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TealValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Transaction.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionApplication.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionAssetConfig.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionAssetFreeze.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionAssetTransfer.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionKeyreg.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionPayment.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionSignature.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionSignatureLogicsig.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisig.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisigSubsignature.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionStateProof.md
│       │   │   │   │   ├── SDKs:javascript:classes:Kmd.md
│       │   │   │   │   ├── SDKs:javascript:classes:LogicSig.md
│       │   │   │   │   ├── SDKs:javascript:classes:LogicSigAccount.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Account.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountApplicationResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountAssetHolding.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountAssetResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountAssetsInformationResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountParticipation.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountStateDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AppCallLogs.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Application.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationInitialStates.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationKVStorage.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationLocalReference.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationLocalState.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationParams.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationStateOperation.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationStateSchema.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Asset.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AssetHolding.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AssetHoldingReference.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AssetParams.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AvmKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AvmValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BlockHashResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BlockLogsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BlockResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BlockTxidsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Box.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BoxDescriptor.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BoxesResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BoxReference.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BuildVersion.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.CompileResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DisassembleResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunRequest.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunSource.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunState.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunTxnResult.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ErrorResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.EvalDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.EvalDeltaKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.GetBlockTimeStampOffsetResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.GetSyncRoundResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.KvDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.LedgerStateDeltaForTransactionGroup.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.LightBlockHeaderProof.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.NodeStatusResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.PendingTransactionResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.PendingTransactionsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.PostTransactionsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ScratchChange.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateInitialStates.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateRequest.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateRequestTransactionGroup.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateTraceConfig.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateTransactionGroupResult.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateTransactionResult.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateUnnamedResourcesAccessed.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulationEvalOverrides.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulationOpcodeTraceUnit.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulationTransactionExecTrace.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.StateProof.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.StateProofMessage.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SupplyResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TealKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TealValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TransactionGroupLedgerStateDeltasForRoundResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TransactionParametersResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TransactionProofResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Version.md
│       │   │   │   │   ├── SDKs:javascript:classes:SourceMap.md
│       │   │   │   │   ├── SDKs:javascript:classes:Transaction.md
│       │   │   │   │   ├── SDKs:javascript:enums:ABIReferenceType.md
│       │   │   │   │   ├── SDKs:javascript:enums:ABITransactionType.md
│       │   │   │   │   ├── SDKs:javascript:enums:AtomicTransactionComposerStatus.md
│       │   │   │   │   ├── SDKs:javascript:enums:IntDecoding.md
│       │   │   │   │   ├── SDKs:javascript:enums:OnApplicationComplete.md
│       │   │   │   │   ├── SDKs:javascript:enums:TransactionType.md
│       │   │   │   │   ├── SDKs:javascript:examples:README.md
│       │   │   │   │   ├── SDKs:javascript:FAQ.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIContractNetworkInfo.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIContractNetworks.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIContractParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIInterfaceParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIMethodArgParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIMethodParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIMethodReturnParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIResult.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:Account.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:Address.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:AlgodTokenHeader.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:BaseHTTPClient.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:BaseHTTPClientError.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:BaseHTTPClientResponse.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:BoxReference.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:CustomTokenHeader.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedAssetParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedBoxReference.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedGlobalStateSchema.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedLocalStateSchema.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedLogicSig.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedLogicSigAccount.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedMultisig.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedSignedTransaction.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedSubsig.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedTransaction.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:IndexerTokenHeader.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:KMDTokenHeader.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:MultisigMetadata.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:SignedTransaction.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:SuggestedParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:TransactionParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:TransactionWithSigner.md
│       │   │   │   │   ├── SDKs:javascript:modules:indexerModels.md
│       │   │   │   │   ├── SDKs:javascript:modules:modelsv2.md
│       │   │   │   │   ├── SDKs:javascript:modules.md
│       │   │   │   │   ├── SDKs:javascript:README.md
│       │   │   │   │   ├── SDKs:python:algosdk:v2client:harness:README.md
│       │   │   │   │   ├── SDKs:python:examples:README.md
│       │   │   │   │   ├── SDKs:python:README.md
│       │   │   │   │   ├── tealscript:examples_amm_README.md
│       │   │   │   │   ├── tealscript:examples_auction_README.md
│       │   │   │   │   ├── tealscript:examples_big_box_README.md
│       │   │   │   │   ├── tealscript:examples_itxns_README.md
│       │   │   │   │   ├── tealscript:examples_lsig_with_app_README.md
│       │   │   │   │   ├── tealscript:examples_reti_README.md
│       │   │   │   │   ├── tealscript:FEATURES.md
│       │   │   │   │   ├── tealscript:guides_atomic_txn.md
│       │   │   │   │   ├── tealscript:guides_features.md
│       │   │   │   │   ├── tealscript:guides_getting_started.md
│       │   │   │   │   ├── tealscript:guides_inner_transactions.md
│       │   │   │   │   ├── tealscript:guides_lifecycle.md
│       │   │   │   │   ├── tealscript:guides_math.md
│       │   │   │   │   ├── tealscript:guides_methods.md
│       │   │   │   │   ├── tealscript:guides_multiple_contracts.md
│       │   │   │   │   ├── tealscript:guides_pyteal.md
│       │   │   │   │   ├── tealscript:guides_storage.md
│       │   │   │   │   ├── tealscript:guides_Supported Types_arrays.md
│       │   │   │   │   ├── tealscript:guides_Supported Types_numbers.md
│       │   │   │   │   ├── TEALScript:README.md
│       │   │   │   │   ├── tealscript:tests_test_package_README.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0001-intro.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0002-init.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0003-contract.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0004-artifacts.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0005-hello.md
│       │   │   │   │   └── tealscript:tutorials_Hello World_0006-test.md
│       │   │   │   └── taxonomy-categories
│       │   │   │       ├── algokit-utils.json
│       │   │   │       ├── algokit.json
│       │   │   │       ├── arcs.json
│       │   │   │       ├── clis.json
│       │   │   │       ├── details.json
│       │   │   │       ├── developers.json
│       │   │   │       ├── liquid-auth.json
│       │   │   │       ├── nodes.json
│       │   │   │       ├── puya.json
│       │   │   │       ├── python.json
│       │   │   │       ├── sdks.json
│       │   │   │       └── tealscript.json
│       │   │   └── wallet
│       │   │       └── index.ts
│       │   ├── tools
│       │   │   ├── accountManager.ts
│       │   │   ├── algodManager.ts
│       │   │   ├── apiManager
│       │   │   │   ├── algod
│       │   │   │   │   ├── account.ts
│       │   │   │   │   ├── application.ts
│       │   │   │   │   ├── asset.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   └── transaction.ts
│       │   │   │   ├── example
│       │   │   │   │   ├── get-balance.ts
│       │   │   │   │   └── index.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── indexer
│       │   │   │   │   ├── account.ts
│       │   │   │   │   ├── application.ts
│       │   │   │   │   ├── asset.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   └── transaction.ts
│       │   │   │   ├── nfd
│       │   │   │   │   └── index.ts
│       │   │   │   ├── tinyman
│       │   │   │   │   ├── analytics.ts
│       │   │   │   │   ├── bootstrap.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   ├── liquidity.ts
│       │   │   │   │   ├── opt_in.ts
│       │   │   │   │   ├── pool.ts
│       │   │   │   │   ├── remove_liquidity.ts
│       │   │   │   │   └── swap.ts
│       │   │   │   ├── ultrade
│       │   │   │   │   ├── index.ts
│       │   │   │   │   ├── market.ts
│       │   │   │   │   ├── system.ts
│       │   │   │   │   └── wallet.ts
│       │   │   │   └── vestige
│       │   │   │       ├── assets.ts
│       │   │   │       ├── balances.ts
│       │   │   │       ├── index.ts
│       │   │   │       ├── networks.ts
│       │   │   │       ├── notes.ts
│       │   │   │       ├── pools.ts
│       │   │   │       ├── protocols.ts
│       │   │   │       ├── swaps.ts
│       │   │   │       └── vaults.ts
│       │   │   ├── arc26Manager.ts
│       │   │   ├── index.ts
│       │   │   ├── knowledgeManager.ts
│       │   │   ├── transactionManager
│       │   │   │   ├── accountTransactions.ts
│       │   │   │   ├── appTransactions
│       │   │   │   │   ├── callTxn.ts
│       │   │   │   │   ├── clearTxn.ts
│       │   │   │   │   ├── closeOutTxn.ts
│       │   │   │   │   ├── createTxn.ts
│       │   │   │   │   ├── deleteTxn.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   ├── optInTxn.ts
│       │   │   │   │   ├── test
│       │   │   │   │   │   ├── counter_approval.teal
│       │   │   │   │   │   ├── counter_clear.teal
│       │   │   │   │   │   ├── storage_test_approval_v2.teal
│       │   │   │   │   │   ├── storage_test_approval.teal
│       │   │   │   │   │   └── storage_test_clear.teal
│       │   │   │   │   ├── types.ts
│       │   │   │   │   └── updateTxn.ts
│       │   │   │   ├── assetTransactions.ts
│       │   │   │   ├── generalTransaction.ts
│       │   │   │   └── index.ts
│       │   │   └── utilityManager.ts
│       │   ├── types.ts
│       │   └── utils
│       │       └── responseProcessor.ts
│       ├── tests
│       │   ├── resources
│       │   │   ├── algod
│       │   │   │   ├── account.test.ts
│       │   │   │   ├── application.test.ts
│       │   │   │   ├── asset.test.ts
│       │   │   │   └── transaction.test.ts
│       │   │   └── indexer
│       │   │       ├── account.test.ts
│       │   │       ├── application.test.ts
│       │   │       ├── asset.test.ts
│       │   │       └── transaction.test.ts
│       │   └── tools
│       │       ├── accountManager.test.ts
│       │       ├── algodManager.test.ts
│       │       ├── apiManager
│       │       │   └── example
│       │       │       └── get-balance.test.ts
│       │       ├── transactionManager
│       │       │   ├── accountTransactionManager.test.ts
│       │       │   ├── appTransactionManager.test.ts
│       │       │   ├── assetTransactionManager.test.ts
│       │       │   ├── generalTransactionManager.test.ts
│       │       │   └── transactionManager.test.ts
│       │       └── utilityManager.test.ts
│       └── tsconfig.json
├── README.md
├── rename_files.sh
└── tsconfig.json
```

# Files

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/developer:docs:details:dapps:avm:teal:opcodes:v5.md:
--------------------------------------------------------------------------------

```markdown
   1 | title: v5 Opcodes
   2 | 
   3 | Ops have a 'cost' of 1 unless otherwise specified.
   4 | 
   5 | 
   6 | ## err
   7 | 
   8 | - Bytecode: 0x00
   9 | - Stack: ... → _exits_
  10 | - Fail immediately.
  11 | 
  12 | ## sha256
  13 | 
  14 | - Bytecode: 0x01
  15 | - Stack: ..., A: []byte → ..., [32]byte
  16 | - SHA256 hash of value A, yields [32]byte
  17 | - **Cost**: 35
  18 | 
  19 | ## keccak256
  20 | 
  21 | - Bytecode: 0x02
  22 | - Stack: ..., A: []byte → ..., [32]byte
  23 | - Keccak256 hash of value A, yields [32]byte
  24 | - **Cost**: 130
  25 | 
  26 | ## sha512_256
  27 | 
  28 | - Bytecode: 0x03
  29 | - Stack: ..., A: []byte → ..., [32]byte
  30 | - SHA512_256 hash of value A, yields [32]byte
  31 | - **Cost**: 45
  32 | 
  33 | ## ed25519verify
  34 | 
  35 | - Bytecode: 0x04
  36 | - Stack: ..., A: []byte, B: [64]byte, C: [32]byte → ..., bool
  37 | - for (data A, signature B, pubkey C) verify the signature of ("ProgData" || program_hash || data) against the pubkey => {0 or 1}
  38 | - **Cost**: 1900
  39 | 
  40 | The 32 byte public key is the last element on the stack, preceded by the 64 byte signature at the second-to-last element on the stack, preceded by the data which was signed at the third-to-last element on the stack.
  41 | 
  42 | ## ecdsa_verify
  43 | 
  44 | - Syntax: `ecdsa_verify V` where V: [ECDSA](#field-group-ecdsa)
  45 | - Bytecode: 0x05 {uint8}
  46 | - Stack: ..., A: [32]byte, B: [32]byte, C: [32]byte, D: [32]byte, E: [32]byte → ..., bool
  47 | - for (data A, signature B, C and pubkey D, E) verify the signature of the data against the pubkey => {0 or 1}
  48 | - **Cost**: Secp256k1=1700
  49 | - Availability: v5
  50 | 
  51 | ### ECDSA
  52 | 
  53 | Curves
  54 | 
  55 | | Index | Name | Notes |
  56 | | - | ------ | --------- |
  57 | | 0 | Secp256k1 | secp256k1 curve, used in Bitcoin |
  58 | 
  59 | 
  60 | The 32 byte Y-component of a public key is the last element on the stack, preceded by X-component of a pubkey, preceded by S and R components of a signature, preceded by the data that is fifth element on the stack. All values are big-endian encoded. The signed data must be 32 bytes long, and signatures in lower-S form are only accepted.
  61 | 
  62 | ## ecdsa_pk_decompress
  63 | 
  64 | - Syntax: `ecdsa_pk_decompress V` where V: [ECDSA](#field-group-ecdsa)
  65 | - Bytecode: 0x06 {uint8}
  66 | - Stack: ..., A: [33]byte → ..., X: [32]byte, Y: [32]byte
  67 | - decompress pubkey A into components X, Y
  68 | - **Cost**: Secp256k1=650
  69 | - Availability: v5
  70 | 
  71 | The 33 byte public key in a compressed form to be decompressed into X and Y (top) components. All values are big-endian encoded.
  72 | 
  73 | ## ecdsa_pk_recover
  74 | 
  75 | - Syntax: `ecdsa_pk_recover V` where V: [ECDSA](#field-group-ecdsa)
  76 | - Bytecode: 0x07 {uint8}
  77 | - Stack: ..., A: [32]byte, B: uint64, C: [32]byte, D: [32]byte → ..., X: [32]byte, Y: [32]byte
  78 | - for (data A, recovery id B, signature C, D) recover a public key
  79 | - **Cost**: 2000
  80 | - Availability: v5
  81 | 
  82 | S (top) and R elements of a signature, recovery id and data (bottom) are expected on the stack and used to deriver a public key. All values are big-endian encoded. The signed data must be 32 bytes long.
  83 | 
  84 | ## +
  85 | 
  86 | - Bytecode: 0x08
  87 | - Stack: ..., A: uint64, B: uint64 → ..., uint64
  88 | - A plus B. Fail on overflow.
  89 | 
  90 | Overflow is an error condition which halts execution and fails the transaction. Full precision is available from `addw`.
  91 | 
  92 | ## -
  93 | 
  94 | - Bytecode: 0x09
  95 | - Stack: ..., A: uint64, B: uint64 → ..., uint64
  96 | - A minus B. Fail if B > A.
  97 | 
  98 | ## /
  99 | 
 100 | - Bytecode: 0x0a
 101 | - Stack: ..., A: uint64, B: uint64 → ..., uint64
 102 | - A divided by B (truncated division). Fail if B == 0.
 103 | 
 104 | `divmodw` is available to divide the two-element values produced by `mulw` and `addw`.
 105 | 
 106 | ## *
 107 | 
 108 | - Bytecode: 0x0b
 109 | - Stack: ..., A: uint64, B: uint64 → ..., uint64
 110 | - A times B. Fail on overflow.
 111 | 
 112 | Overflow is an error condition which halts execution and fails the transaction. Full precision is available from `mulw`.
 113 | 
 114 | ## <
 115 | 
 116 | - Bytecode: 0x0c
 117 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
 118 | - A less than B => {0 or 1}
 119 | 
 120 | ## >
 121 | 
 122 | - Bytecode: 0x0d
 123 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
 124 | - A greater than B => {0 or 1}
 125 | 
 126 | ## <=
 127 | 
 128 | - Bytecode: 0x0e
 129 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
 130 | - A less than or equal to B => {0 or 1}
 131 | 
 132 | ## >=
 133 | 
 134 | - Bytecode: 0x0f
 135 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
 136 | - A greater than or equal to B => {0 or 1}
 137 | 
 138 | ## &&
 139 | 
 140 | - Bytecode: 0x10
 141 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
 142 | - A is not zero and B is not zero => {0 or 1}
 143 | 
 144 | ## ||
 145 | 
 146 | - Bytecode: 0x11
 147 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
 148 | - A is not zero or B is not zero => {0 or 1}
 149 | 
 150 | ## ==
 151 | 
 152 | - Bytecode: 0x12
 153 | - Stack: ..., A, B &rarr; ..., bool
 154 | - A is equal to B => {0 or 1}
 155 | 
 156 | ## !=
 157 | 
 158 | - Bytecode: 0x13
 159 | - Stack: ..., A, B &rarr; ..., bool
 160 | - A is not equal to B => {0 or 1}
 161 | 
 162 | ## !
 163 | 
 164 | - Bytecode: 0x14
 165 | - Stack: ..., A: uint64 &rarr; ..., uint64
 166 | - A == 0 yields 1; else 0
 167 | 
 168 | ## len
 169 | 
 170 | - Bytecode: 0x15
 171 | - Stack: ..., A: []byte &rarr; ..., uint64
 172 | - yields length of byte value A
 173 | 
 174 | ## itob
 175 | 
 176 | - Bytecode: 0x16
 177 | - Stack: ..., A: uint64 &rarr; ..., [8]byte
 178 | - converts uint64 A to big-endian byte array, always of length 8
 179 | 
 180 | ## btoi
 181 | 
 182 | - Bytecode: 0x17
 183 | - Stack: ..., A: []byte &rarr; ..., uint64
 184 | - converts big-endian byte array A to uint64. Fails if len(A) > 8. Padded by leading 0s if len(A) < 8.
 185 | 
 186 | `btoi` fails if the input is longer than 8 bytes.
 187 | 
 188 | ## %
 189 | 
 190 | - Bytecode: 0x18
 191 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 192 | - A modulo B. Fail if B == 0.
 193 | 
 194 | ## |
 195 | 
 196 | - Bytecode: 0x19
 197 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 198 | - A bitwise-or B
 199 | 
 200 | ## &
 201 | 
 202 | - Bytecode: 0x1a
 203 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 204 | - A bitwise-and B
 205 | 
 206 | ## ^
 207 | 
 208 | - Bytecode: 0x1b
 209 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 210 | - A bitwise-xor B
 211 | 
 212 | ## ~
 213 | 
 214 | - Bytecode: 0x1c
 215 | - Stack: ..., A: uint64 &rarr; ..., uint64
 216 | - bitwise invert value A
 217 | 
 218 | ## mulw
 219 | 
 220 | - Bytecode: 0x1d
 221 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., X: uint64, Y: uint64
 222 | - A times B as a 128-bit result in two uint64s. X is the high 64 bits, Y is the low
 223 | 
 224 | ## addw
 225 | 
 226 | - Bytecode: 0x1e
 227 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., X: uint64, Y: uint64
 228 | - A plus B as a 128-bit result. X is the carry-bit, Y is the low-order 64 bits.
 229 | - Availability: v2
 230 | 
 231 | ## divmodw
 232 | 
 233 | - Bytecode: 0x1f
 234 | - Stack: ..., A: uint64, B: uint64, C: uint64, D: uint64 &rarr; ..., W: uint64, X: uint64, Y: uint64, Z: uint64
 235 | - W,X = (A,B / C,D); Y,Z = (A,B modulo C,D)
 236 | - **Cost**: 20
 237 | - Availability: v4
 238 | 
 239 | The notation J,K indicates that two uint64 values J and K are interpreted as a uint128 value, with J as the high uint64 and K the low.
 240 | 
 241 | ## intcblock
 242 | 
 243 | - Syntax: `intcblock UINT ...` where UINT ...: a block of int constant values
 244 | - Bytecode: 0x20 {varuint count, [varuint ...]}
 245 | - Stack: ... &rarr; ...
 246 | - prepare block of uint64 constants for use by intc
 247 | 
 248 | `intcblock` loads following program bytes into an array of integer constants in the evaluator. These integer constants can be referred to by `intc` and `intc_*` which will push the value onto the stack. Subsequent calls to `intcblock` reset and replace the integer constants available to the script.
 249 | 
 250 | ## intc
 251 | 
 252 | - Syntax: `intc I` where I: an index in the intcblock
 253 | - Bytecode: 0x21 {uint8}
 254 | - Stack: ... &rarr; ..., uint64
 255 | - Ith constant from intcblock
 256 | 
 257 | ## intc_0
 258 | 
 259 | - Bytecode: 0x22
 260 | - Stack: ... &rarr; ..., uint64
 261 | - constant 0 from intcblock
 262 | 
 263 | ## intc_1
 264 | 
 265 | - Bytecode: 0x23
 266 | - Stack: ... &rarr; ..., uint64
 267 | - constant 1 from intcblock
 268 | 
 269 | ## intc_2
 270 | 
 271 | - Bytecode: 0x24
 272 | - Stack: ... &rarr; ..., uint64
 273 | - constant 2 from intcblock
 274 | 
 275 | ## intc_3
 276 | 
 277 | - Bytecode: 0x25
 278 | - Stack: ... &rarr; ..., uint64
 279 | - constant 3 from intcblock
 280 | 
 281 | ## bytecblock
 282 | 
 283 | - Syntax: `bytecblock BYTES ...` where BYTES ...: a block of byte constant values
 284 | - Bytecode: 0x26 {varuint count, [varuint length, bytes ...]}
 285 | - Stack: ... &rarr; ...
 286 | - prepare block of byte-array constants for use by bytec
 287 | 
 288 | `bytecblock` loads the following program bytes into an array of byte-array constants in the evaluator. These constants can be referred to by `bytec` and `bytec_*` which will push the value onto the stack. Subsequent calls to `bytecblock` reset and replace the bytes constants available to the script.
 289 | 
 290 | ## bytec
 291 | 
 292 | - Syntax: `bytec I` where I: an index in the bytecblock
 293 | - Bytecode: 0x27 {uint8}
 294 | - Stack: ... &rarr; ..., []byte
 295 | - Ith constant from bytecblock
 296 | 
 297 | ## bytec_0
 298 | 
 299 | - Bytecode: 0x28
 300 | - Stack: ... &rarr; ..., []byte
 301 | - constant 0 from bytecblock
 302 | 
 303 | ## bytec_1
 304 | 
 305 | - Bytecode: 0x29
 306 | - Stack: ... &rarr; ..., []byte
 307 | - constant 1 from bytecblock
 308 | 
 309 | ## bytec_2
 310 | 
 311 | - Bytecode: 0x2a
 312 | - Stack: ... &rarr; ..., []byte
 313 | - constant 2 from bytecblock
 314 | 
 315 | ## bytec_3
 316 | 
 317 | - Bytecode: 0x2b
 318 | - Stack: ... &rarr; ..., []byte
 319 | - constant 3 from bytecblock
 320 | 
 321 | ## arg
 322 | 
 323 | - Syntax: `arg N` where N: an arg index
 324 | - Bytecode: 0x2c {uint8}
 325 | - Stack: ... &rarr; ..., []byte
 326 | - Nth LogicSig argument
 327 | - Mode: Signature
 328 | 
 329 | ## arg_0
 330 | 
 331 | - Bytecode: 0x2d
 332 | - Stack: ... &rarr; ..., []byte
 333 | - LogicSig argument 0
 334 | - Mode: Signature
 335 | 
 336 | ## arg_1
 337 | 
 338 | - Bytecode: 0x2e
 339 | - Stack: ... &rarr; ..., []byte
 340 | - LogicSig argument 1
 341 | - Mode: Signature
 342 | 
 343 | ## arg_2
 344 | 
 345 | - Bytecode: 0x2f
 346 | - Stack: ... &rarr; ..., []byte
 347 | - LogicSig argument 2
 348 | - Mode: Signature
 349 | 
 350 | ## arg_3
 351 | 
 352 | - Bytecode: 0x30
 353 | - Stack: ... &rarr; ..., []byte
 354 | - LogicSig argument 3
 355 | - Mode: Signature
 356 | 
 357 | ## txn
 358 | 
 359 | - Syntax: `txn F` where F: [txn](#field-group-txn)
 360 | - Bytecode: 0x31 {uint8}
 361 | - Stack: ... &rarr; ..., any
 362 | - field F of current transaction
 363 | 
 364 | ### txn
 365 | 
 366 | Fields (see [transaction reference](https://developer.algorand.org/docs/reference/transactions/))
 367 | 
 368 | | Index | Name | Type | In | Notes |
 369 | | - | ------ | -- | - | --------- |
 370 | | 0 | Sender | address |      | 32 byte address |
 371 | | 1 | Fee | uint64 |      | microalgos |
 372 | | 2 | FirstValid | uint64 |      | round number |
 373 | | 4 | LastValid | uint64 |      | round number |
 374 | | 5 | Note | []byte |      | Any data up to 1024 bytes |
 375 | | 6 | Lease | [32]byte |      | 32 byte lease value |
 376 | | 7 | Receiver | address |      | 32 byte address |
 377 | | 8 | Amount | uint64 |      | microalgos |
 378 | | 9 | CloseRemainderTo | address |      | 32 byte address |
 379 | | 10 | VotePK | [32]byte |      | 32 byte address |
 380 | | 11 | SelectionPK | [32]byte |      | 32 byte address |
 381 | | 12 | VoteFirst | uint64 |      | The first round that the participation key is valid. |
 382 | | 13 | VoteLast | uint64 |      | The last round that the participation key is valid. |
 383 | | 14 | VoteKeyDilution | uint64 |      | Dilution for the 2-level participation key |
 384 | | 15 | Type | []byte |      | Transaction type as bytes |
 385 | | 16 | TypeEnum | uint64 |      | Transaction type as integer |
 386 | | 17 | XferAsset | uint64 |      | Asset ID |
 387 | | 18 | AssetAmount | uint64 |      | value in Asset's units |
 388 | | 19 | AssetSender | address |      | 32 byte address. Source of assets if Sender is the Asset's Clawback address. |
 389 | | 20 | AssetReceiver | address |      | 32 byte address |
 390 | | 21 | AssetCloseTo | address |      | 32 byte address |
 391 | | 22 | GroupIndex | uint64 |      | Position of this transaction within an atomic transaction group. A stand-alone transaction is implicitly element 0 in a group of 1 |
 392 | | 23 | TxID | [32]byte |      | The computed ID for this transaction. 32 bytes. |
 393 | | 24 | ApplicationID | uint64 | v2  | ApplicationID from ApplicationCall transaction |
 394 | | 25 | OnCompletion | uint64 | v2  | ApplicationCall transaction on completion action |
 395 | | 27 | NumAppArgs | uint64 | v2  | Number of ApplicationArgs |
 396 | | 29 | NumAccounts | uint64 | v2  | Number of Accounts |
 397 | | 30 | ApprovalProgram | []byte | v2  | Approval program |
 398 | | 31 | ClearStateProgram | []byte | v2  | Clear state program |
 399 | | 32 | RekeyTo | address | v2  | 32 byte Sender's new AuthAddr |
 400 | | 33 | ConfigAsset | uint64 | v2  | Asset ID in asset config transaction |
 401 | | 34 | ConfigAssetTotal | uint64 | v2  | Total number of units of this asset created |
 402 | | 35 | ConfigAssetDecimals | uint64 | v2  | Number of digits to display after the decimal place when displaying the asset |
 403 | | 36 | ConfigAssetDefaultFrozen | bool | v2  | Whether the asset's slots are frozen by default or not, 0 or 1 |
 404 | | 37 | ConfigAssetUnitName | []byte | v2  | Unit name of the asset |
 405 | | 38 | ConfigAssetName | []byte | v2  | The asset name |
 406 | | 39 | ConfigAssetURL | []byte | v2  | URL |
 407 | | 40 | ConfigAssetMetadataHash | [32]byte | v2  | 32 byte commitment to unspecified asset metadata |
 408 | | 41 | ConfigAssetManager | address | v2  | 32 byte address |
 409 | | 42 | ConfigAssetReserve | address | v2  | 32 byte address |
 410 | | 43 | ConfigAssetFreeze | address | v2  | 32 byte address |
 411 | | 44 | ConfigAssetClawback | address | v2  | 32 byte address |
 412 | | 45 | FreezeAsset | uint64 | v2  | Asset ID being frozen or un-frozen |
 413 | | 46 | FreezeAssetAccount | address | v2  | 32 byte address of the account whose asset slot is being frozen or un-frozen |
 414 | | 47 | FreezeAssetFrozen | bool | v2  | The new frozen value, 0 or 1 |
 415 | | 49 | NumAssets | uint64 | v3  | Number of Assets |
 416 | | 51 | NumApplications | uint64 | v3  | Number of Applications |
 417 | | 52 | GlobalNumUint | uint64 | v3  | Number of global state integers in ApplicationCall |
 418 | | 53 | GlobalNumByteSlice | uint64 | v3  | Number of global state byteslices in ApplicationCall |
 419 | | 54 | LocalNumUint | uint64 | v3  | Number of local state integers in ApplicationCall |
 420 | | 55 | LocalNumByteSlice | uint64 | v3  | Number of local state byteslices in ApplicationCall |
 421 | | 56 | ExtraProgramPages | uint64 | v4  | Number of additional pages for each of the application's approval and clear state programs. An ExtraProgramPages of 1 means 2048 more total bytes, or 1024 for each program. |
 422 | | 57 | Nonparticipation | bool | v5  | Marks an account nonparticipating for rewards |
 423 | | 59 | NumLogs | uint64 | v5  | Number of Logs (only with `itxn` in v5). Application mode only |
 424 | | 60 | CreatedAssetID | uint64 | v5  | Asset ID allocated by the creation of an ASA (only with `itxn` in v5). Application mode only |
 425 | | 61 | CreatedApplicationID | uint64 | v5  | ApplicationID allocated by the creation of an application (only with `itxn` in v5). Application mode only |
 426 | 
 427 | 
 428 | ## global
 429 | 
 430 | - Syntax: `global F` where F: [global](#field-group-global)
 431 | - Bytecode: 0x32 {uint8}
 432 | - Stack: ... &rarr; ..., any
 433 | - global field F
 434 | 
 435 | ### global
 436 | 
 437 | Fields
 438 | 
 439 | | Index | Name | Type | In | Notes |
 440 | | - | ------ | -- | - | --------- |
 441 | | 0 | MinTxnFee | uint64 |      | microalgos |
 442 | | 1 | MinBalance | uint64 |      | microalgos |
 443 | | 2 | MaxTxnLife | uint64 |      | rounds |
 444 | | 3 | ZeroAddress | address |      | 32 byte address of all zero bytes |
 445 | | 4 | GroupSize | uint64 |      | Number of transactions in this atomic transaction group. At least 1 |
 446 | | 5 | LogicSigVersion | uint64 | v2  | Maximum supported version |
 447 | | 6 | Round | uint64 | v2  | Current round number. Application mode only. |
 448 | | 7 | LatestTimestamp | uint64 | v2  | Last confirmed block UNIX timestamp. Fails if negative. Application mode only. |
 449 | | 8 | CurrentApplicationID | uint64 | v2  | ID of current application executing. Application mode only. |
 450 | | 9 | CreatorAddress | address | v3  | Address of the creator of the current application. Application mode only. |
 451 | | 10 | CurrentApplicationAddress | address | v5  | Address that the current application controls. Application mode only. |
 452 | | 11 | GroupID | [32]byte | v5  | ID of the transaction group. 32 zero bytes if the transaction is not part of a group. |
 453 | 
 454 | 
 455 | ## gtxn
 456 | 
 457 | - Syntax: `gtxn T F` where T: transaction group index, F: [txn](#field-group-txn)
 458 | - Bytecode: 0x33 {uint8}, {uint8}
 459 | - Stack: ... &rarr; ..., any
 460 | - field F of the Tth transaction in the current group
 461 | 
 462 | for notes on transaction fields available, see `txn`. If this transaction is _i_ in the group, `gtxn i field` is equivalent to `txn field`.
 463 | 
 464 | ## load
 465 | 
 466 | - Syntax: `load I` where I: position in scratch space to load from
 467 | - Bytecode: 0x34 {uint8}
 468 | - Stack: ... &rarr; ..., any
 469 | - Ith scratch space value. All scratch spaces are 0 at program start.
 470 | 
 471 | ## store
 472 | 
 473 | - Syntax: `store I` where I: position in scratch space to store to
 474 | - Bytecode: 0x35 {uint8}
 475 | - Stack: ..., A &rarr; ...
 476 | - store A to the Ith scratch space
 477 | 
 478 | ## txna
 479 | 
 480 | - Syntax: `txna F I` where F: [txna](#field-group-txna), I: transaction field array index
 481 | - Bytecode: 0x36 {uint8}, {uint8}
 482 | - Stack: ... &rarr; ..., any
 483 | - Ith value of the array field F of the current transaction<br />`txna` can be called using `txn` with 2 immediates.
 484 | - Availability: v2
 485 | 
 486 | ### txna
 487 | 
 488 | Fields (see [transaction reference](https://developer.algorand.org/docs/reference/transactions/))
 489 | 
 490 | | Index | Name | Type | In | Notes |
 491 | | - | ------ | -- | - | --------- |
 492 | | 26 | ApplicationArgs | []byte | v2  | Arguments passed to the application in the ApplicationCall transaction |
 493 | | 28 | Accounts | address | v2  | Accounts listed in the ApplicationCall transaction |
 494 | | 48 | Assets | uint64 | v3  | Foreign Assets listed in the ApplicationCall transaction |
 495 | | 50 | Applications | uint64 | v3  | Foreign Apps listed in the ApplicationCall transaction |
 496 | | 58 | Logs | []byte | v5  | Log messages emitted by an application call (only with `itxn` in v5). Application mode only |
 497 | 
 498 | 
 499 | ## gtxna
 500 | 
 501 | - Syntax: `gtxna T F I` where T: transaction group index, F: [txna](#field-group-txna), I: transaction field array index
 502 | - Bytecode: 0x37 {uint8}, {uint8}, {uint8}
 503 | - Stack: ... &rarr; ..., any
 504 | - Ith value of the array field F from the Tth transaction in the current group<br />`gtxna` can be called using `gtxn` with 3 immediates.
 505 | - Availability: v2
 506 | 
 507 | ## gtxns
 508 | 
 509 | - Syntax: `gtxns F` where F: [txn](#field-group-txn)
 510 | - Bytecode: 0x38 {uint8}
 511 | - Stack: ..., A: uint64 &rarr; ..., any
 512 | - field F of the Ath transaction in the current group
 513 | - Availability: v3
 514 | 
 515 | for notes on transaction fields available, see `txn`. If top of stack is _i_, `gtxns field` is equivalent to `gtxn _i_ field`. gtxns exists so that _i_ can be calculated, often based on the index of the current transaction.
 516 | 
 517 | ## gtxnsa
 518 | 
 519 | - Syntax: `gtxnsa F I` where F: [txna](#field-group-txna), I: transaction field array index
 520 | - Bytecode: 0x39 {uint8}, {uint8}
 521 | - Stack: ..., A: uint64 &rarr; ..., any
 522 | - Ith value of the array field F from the Ath transaction in the current group<br />`gtxnsa` can be called using `gtxns` with 2 immediates.
 523 | - Availability: v3
 524 | 
 525 | ## gload
 526 | 
 527 | - Syntax: `gload T I` where T: transaction group index, I: position in scratch space to load from
 528 | - Bytecode: 0x3a {uint8}, {uint8}
 529 | - Stack: ... &rarr; ..., any
 530 | - Ith scratch space value of the Tth transaction in the current group
 531 | - Availability: v4
 532 | - Mode: Application
 533 | 
 534 | `gload` fails unless the requested transaction is an ApplicationCall and T < GroupIndex.
 535 | 
 536 | ## gloads
 537 | 
 538 | - Syntax: `gloads I` where I: position in scratch space to load from
 539 | - Bytecode: 0x3b {uint8}
 540 | - Stack: ..., A: uint64 &rarr; ..., any
 541 | - Ith scratch space value of the Ath transaction in the current group
 542 | - Availability: v4
 543 | - Mode: Application
 544 | 
 545 | `gloads` fails unless the requested transaction is an ApplicationCall and A < GroupIndex.
 546 | 
 547 | ## gaid
 548 | 
 549 | - Syntax: `gaid T` where T: transaction group index
 550 | - Bytecode: 0x3c {uint8}
 551 | - Stack: ... &rarr; ..., uint64
 552 | - ID of the asset or application created in the Tth transaction of the current group
 553 | - Availability: v4
 554 | - Mode: Application
 555 | 
 556 | `gaid` fails unless the requested transaction created an asset or application and T < GroupIndex.
 557 | 
 558 | ## gaids
 559 | 
 560 | - Bytecode: 0x3d
 561 | - Stack: ..., A: uint64 &rarr; ..., uint64
 562 | - ID of the asset or application created in the Ath transaction of the current group
 563 | - Availability: v4
 564 | - Mode: Application
 565 | 
 566 | `gaids` fails unless the requested transaction created an asset or application and A < GroupIndex.
 567 | 
 568 | ## loads
 569 | 
 570 | - Bytecode: 0x3e
 571 | - Stack: ..., A: uint64 &rarr; ..., any
 572 | - Ath scratch space value.  All scratch spaces are 0 at program start.
 573 | - Availability: v5
 574 | 
 575 | ## stores
 576 | 
 577 | - Bytecode: 0x3f
 578 | - Stack: ..., A: uint64, B &rarr; ...
 579 | - store B to the Ath scratch space
 580 | - Availability: v5
 581 | 
 582 | ## bnz
 583 | 
 584 | - Syntax: `bnz TARGET` where TARGET: branch offset
 585 | - Bytecode: 0x40 {int16 (big-endian)}
 586 | - Stack: ..., A: uint64 &rarr; ...
 587 | - branch to TARGET if value A is not zero
 588 | 
 589 | The `bnz` instruction opcode 0x40 is followed by two immediate data bytes which are a high byte first and low byte second which together form a 16 bit offset which the instruction may branch to. For a bnz instruction at `pc`, if the last element of the stack is not zero then branch to instruction at `pc + 3 + N`, else proceed to next instruction at `pc + 3`. Branch targets must be aligned instructions. (e.g. Branching to the second byte of a 2 byte op will be rejected.) Starting at v4, the offset is treated as a signed 16 bit integer allowing for backward branches and looping. In prior version (v1 to v3), branch offsets are limited to forward branches only, 0-0x7fff.
 590 | 
 591 | At v2 it became allowed to branch to the end of the program exactly after the last instruction: bnz to byte N (with 0-indexing) was illegal for a TEAL program with N bytes before v2, and is legal after it. This change eliminates the need for a last instruction of no-op as a branch target at the end. (Branching beyond the end--in other words, to a byte larger than N--is still illegal and will cause the program to fail.)
 592 | 
 593 | ## bz
 594 | 
 595 | - Syntax: `bz TARGET` where TARGET: branch offset
 596 | - Bytecode: 0x41 {int16 (big-endian)}
 597 | - Stack: ..., A: uint64 &rarr; ...
 598 | - branch to TARGET if value A is zero
 599 | - Availability: v2
 600 | 
 601 | See `bnz` for details on how branches work. `bz` inverts the behavior of `bnz`.
 602 | 
 603 | ## b
 604 | 
 605 | - Syntax: `b TARGET` where TARGET: branch offset
 606 | - Bytecode: 0x42 {int16 (big-endian)}
 607 | - Stack: ... &rarr; ...
 608 | - branch unconditionally to TARGET
 609 | - Availability: v2
 610 | 
 611 | See `bnz` for details on how branches work. `b` always jumps to the offset.
 612 | 
 613 | ## return
 614 | 
 615 | - Bytecode: 0x43
 616 | - Stack: ..., A: uint64 &rarr; _exits_
 617 | - use A as success value; end
 618 | - Availability: v2
 619 | 
 620 | ## assert
 621 | 
 622 | - Bytecode: 0x44
 623 | - Stack: ..., A: uint64 &rarr; ...
 624 | - immediately fail unless A is a non-zero number
 625 | - Availability: v3
 626 | 
 627 | ## pop
 628 | 
 629 | - Bytecode: 0x48
 630 | - Stack: ..., A &rarr; ...
 631 | - discard A
 632 | 
 633 | ## dup
 634 | 
 635 | - Bytecode: 0x49
 636 | - Stack: ..., A &rarr; ..., A, A
 637 | - duplicate A
 638 | 
 639 | ## dup2
 640 | 
 641 | - Bytecode: 0x4a
 642 | - Stack: ..., A, B &rarr; ..., A, B, A, B
 643 | - duplicate A and B
 644 | - Availability: v2
 645 | 
 646 | ## dig
 647 | 
 648 | - Syntax: `dig N` where N: depth
 649 | - Bytecode: 0x4b {uint8}
 650 | - Stack: ..., A, [N items] &rarr; ..., A, [N items], A
 651 | - Nth value from the top of the stack. dig 0 is equivalent to dup
 652 | - Availability: v3
 653 | 
 654 | ## swap
 655 | 
 656 | - Bytecode: 0x4c
 657 | - Stack: ..., A, B &rarr; ..., B, A
 658 | - swaps A and B on stack
 659 | - Availability: v3
 660 | 
 661 | ## select
 662 | 
 663 | - Bytecode: 0x4d
 664 | - Stack: ..., A, B, C: uint64 &rarr; ..., A or B
 665 | - selects one of two values based on top-of-stack: B if C != 0, else A
 666 | - Availability: v3
 667 | 
 668 | ## cover
 669 | 
 670 | - Syntax: `cover N` where N: depth
 671 | - Bytecode: 0x4e {uint8}
 672 | - Stack: ..., [N items], A &rarr; ..., A, [N items]
 673 | - remove top of stack, and place it deeper in the stack such that N elements are above it. Fails if stack depth <= N.
 674 | - Availability: v5
 675 | 
 676 | ## uncover
 677 | 
 678 | - Syntax: `uncover N` where N: depth
 679 | - Bytecode: 0x4f {uint8}
 680 | - Stack: ..., A, [N items] &rarr; ..., [N items], A
 681 | - remove the value at depth N in the stack and shift above items down so the Nth deep value is on top of the stack. Fails if stack depth <= N.
 682 | - Availability: v5
 683 | 
 684 | ## concat
 685 | 
 686 | - Bytecode: 0x50
 687 | - Stack: ..., A: []byte, B: []byte &rarr; ..., []byte
 688 | - join A and B
 689 | - Availability: v2
 690 | 
 691 | `concat` fails if the result would be greater than 4096 bytes.
 692 | 
 693 | ## substring
 694 | 
 695 | - Syntax: `substring S E` where S: start position, E: end position
 696 | - Bytecode: 0x51 {uint8}, {uint8}
 697 | - Stack: ..., A: []byte &rarr; ..., []byte
 698 | - A range of bytes from A starting at S up to but not including E. If E < S, or either is larger than the array length, the program fails
 699 | - Availability: v2
 700 | 
 701 | ## substring3
 702 | 
 703 | - Bytecode: 0x52
 704 | - Stack: ..., A: []byte, B: uint64, C: uint64 &rarr; ..., []byte
 705 | - A range of bytes from A starting at B up to but not including C. If C < B, or either is larger than the array length, the program fails
 706 | - Availability: v2
 707 | 
 708 | ## getbit
 709 | 
 710 | - Bytecode: 0x53
 711 | - Stack: ..., A, B: uint64 &rarr; ..., uint64
 712 | - Bth bit of (byte-array or integer) A. If B is greater than or equal to the bit length of the value (8*byte length), the program fails
 713 | - Availability: v3
 714 | 
 715 | see explanation of bit ordering in setbit
 716 | 
 717 | ## setbit
 718 | 
 719 | - Bytecode: 0x54
 720 | - Stack: ..., A, B: uint64, C: uint64 &rarr; ..., any
 721 | - Copy of (byte-array or integer) A, with the Bth bit set to (0 or 1) C. If B is greater than or equal to the bit length of the value (8*byte length), the program fails
 722 | - Availability: v3
 723 | 
 724 | When A is a uint64, index 0 is the least significant bit. Setting bit 3 to 1 on the integer 0 yields 8, or 2^3. When A is a byte array, index 0 is the leftmost bit of the leftmost byte. Setting bits 0 through 11 to 1 in a 4-byte-array of 0s yields the byte array 0xfff00000. Setting bit 3 to 1 on the 1-byte-array 0x00 yields the byte array 0x10.
 725 | 
 726 | ## getbyte
 727 | 
 728 | - Bytecode: 0x55
 729 | - Stack: ..., A: []byte, B: uint64 &rarr; ..., uint64
 730 | - Bth byte of A, as an integer. If B is greater than or equal to the array length, the program fails
 731 | - Availability: v3
 732 | 
 733 | ## setbyte
 734 | 
 735 | - Bytecode: 0x56
 736 | - Stack: ..., A: []byte, B: uint64, C: uint64 &rarr; ..., []byte
 737 | - Copy of A with the Bth byte set to small integer (between 0..255) C. If B is greater than or equal to the array length, the program fails
 738 | - Availability: v3
 739 | 
 740 | ## extract
 741 | 
 742 | - Syntax: `extract S L` where S: start position, L: length
 743 | - Bytecode: 0x57 {uint8}, {uint8}
 744 | - Stack: ..., A: []byte &rarr; ..., []byte
 745 | - A range of bytes from A starting at S up to but not including S+L. If L is 0, then extract to the end of the string. If S or S+L is larger than the array length, the program fails
 746 | - Availability: v5
 747 | 
 748 | ## extract3
 749 | 
 750 | - Bytecode: 0x58
 751 | - Stack: ..., A: []byte, B: uint64, C: uint64 &rarr; ..., []byte
 752 | - A range of bytes from A starting at B up to but not including B+C. If B+C is larger than the array length, the program fails<br />`extract3` can be called using `extract` with no immediates.
 753 | - Availability: v5
 754 | 
 755 | ## extract_uint16
 756 | 
 757 | - Bytecode: 0x59
 758 | - Stack: ..., A: []byte, B: uint64 &rarr; ..., uint64
 759 | - A uint16 formed from a range of big-endian bytes from A starting at B up to but not including B+2. If B+2 is larger than the array length, the program fails
 760 | - Availability: v5
 761 | 
 762 | ## extract_uint32
 763 | 
 764 | - Bytecode: 0x5a
 765 | - Stack: ..., A: []byte, B: uint64 &rarr; ..., uint64
 766 | - A uint32 formed from a range of big-endian bytes from A starting at B up to but not including B+4. If B+4 is larger than the array length, the program fails
 767 | - Availability: v5
 768 | 
 769 | ## extract_uint64
 770 | 
 771 | - Bytecode: 0x5b
 772 | - Stack: ..., A: []byte, B: uint64 &rarr; ..., uint64
 773 | - A uint64 formed from a range of big-endian bytes from A starting at B up to but not including B+8. If B+8 is larger than the array length, the program fails
 774 | - Availability: v5
 775 | 
 776 | ## balance
 777 | 
 778 | - Bytecode: 0x60
 779 | - Stack: ..., A &rarr; ..., uint64
 780 | - balance for account A, in microalgos. The balance is observed after the effects of previous transactions in the group, and after the fee for the current transaction is deducted. Changes caused by inner transactions are observable immediately following `itxn_submit`
 781 | - Availability: v2
 782 | - Mode: Application
 783 | 
 784 | params: Txn.Accounts offset (or, since v4, an _available_ account address), _available_ application id (or, since v4, a Txn.ForeignApps offset). Return: value.
 785 | 
 786 | ## app_opted_in
 787 | 
 788 | - Bytecode: 0x61
 789 | - Stack: ..., A, B: uint64 &rarr; ..., bool
 790 | - 1 if account A is opted in to application B, else 0
 791 | - Availability: v2
 792 | - Mode: Application
 793 | 
 794 | params: Txn.Accounts offset (or, since v4, an _available_ account address), _available_ application id (or, since v4, a Txn.ForeignApps offset). Return: 1 if opted in and 0 otherwise.
 795 | 
 796 | ## app_local_get
 797 | 
 798 | - Bytecode: 0x62
 799 | - Stack: ..., A, B: stateKey &rarr; ..., any
 800 | - local state of the key B in the current application in account A
 801 | - Availability: v2
 802 | - Mode: Application
 803 | 
 804 | params: Txn.Accounts offset (or, since v4, an _available_ account address), state key. Return: value. The value is zero (of type uint64) if the key does not exist.
 805 | 
 806 | ## app_local_get_ex
 807 | 
 808 | - Bytecode: 0x63
 809 | - Stack: ..., A, B: uint64, C: stateKey &rarr; ..., X: any, Y: bool
 810 | - X is the local state of application B, key C in account A. Y is 1 if key existed, else 0
 811 | - Availability: v2
 812 | - Mode: Application
 813 | 
 814 | params: Txn.Accounts offset (or, since v4, an _available_ account address), _available_ application id (or, since v4, a Txn.ForeignApps offset), state key. Return: did_exist flag (top of the stack, 1 if the application and key existed and 0 otherwise), value. The value is zero (of type uint64) if the key does not exist.
 815 | 
 816 | ## app_global_get
 817 | 
 818 | - Bytecode: 0x64
 819 | - Stack: ..., A: stateKey &rarr; ..., any
 820 | - global state of the key A in the current application
 821 | - Availability: v2
 822 | - Mode: Application
 823 | 
 824 | params: state key. Return: value. The value is zero (of type uint64) if the key does not exist.
 825 | 
 826 | ## app_global_get_ex
 827 | 
 828 | - Bytecode: 0x65
 829 | - Stack: ..., A: uint64, B: stateKey &rarr; ..., X: any, Y: bool
 830 | - X is the global state of application A, key B. Y is 1 if key existed, else 0
 831 | - Availability: v2
 832 | - Mode: Application
 833 | 
 834 | params: Txn.ForeignApps offset (or, since v4, an _available_ application id), state key. Return: did_exist flag (top of the stack, 1 if the application and key existed and 0 otherwise), value. The value is zero (of type uint64) if the key does not exist.
 835 | 
 836 | ## app_local_put
 837 | 
 838 | - Bytecode: 0x66
 839 | - Stack: ..., A, B: stateKey, C &rarr; ...
 840 | - write C to key B in account A's local state of the current application
 841 | - Availability: v2
 842 | - Mode: Application
 843 | 
 844 | params: Txn.Accounts offset (or, since v4, an _available_ account address), state key, value.
 845 | 
 846 | ## app_global_put
 847 | 
 848 | - Bytecode: 0x67
 849 | - Stack: ..., A: stateKey, B &rarr; ...
 850 | - write B to key A in the global state of the current application
 851 | - Availability: v2
 852 | - Mode: Application
 853 | 
 854 | ## app_local_del
 855 | 
 856 | - Bytecode: 0x68
 857 | - Stack: ..., A, B: stateKey &rarr; ...
 858 | - delete key B from account A's local state of the current application
 859 | - Availability: v2
 860 | - Mode: Application
 861 | 
 862 | params: Txn.Accounts offset (or, since v4, an _available_ account address), state key.
 863 | 
 864 | Deleting a key which is already absent has no effect on the application local state. (In particular, it does _not_ cause the program to fail.)
 865 | 
 866 | ## app_global_del
 867 | 
 868 | - Bytecode: 0x69
 869 | - Stack: ..., A: stateKey &rarr; ...
 870 | - delete key A from the global state of the current application
 871 | - Availability: v2
 872 | - Mode: Application
 873 | 
 874 | params: state key.
 875 | 
 876 | Deleting a key which is already absent has no effect on the application global state. (In particular, it does _not_ cause the program to fail.)
 877 | 
 878 | ## asset_holding_get
 879 | 
 880 | - Syntax: `asset_holding_get F` where F: [asset_holding](#field-group-asset_holding)
 881 | - Bytecode: 0x70 {uint8}
 882 | - Stack: ..., A, B: uint64 &rarr; ..., X: any, Y: bool
 883 | - X is field F from account A's holding of asset B. Y is 1 if A is opted into B, else 0
 884 | - Availability: v2
 885 | - Mode: Application
 886 | 
 887 | ### asset_holding
 888 | 
 889 | Fields
 890 | 
 891 | | Index | Name | Type | Notes |
 892 | | - | ------ | -- | --------- |
 893 | | 0 | AssetBalance | uint64 | Amount of the asset unit held by this account |
 894 | | 1 | AssetFrozen | bool | Is the asset frozen or not |
 895 | 
 896 | 
 897 | params: Txn.Accounts offset (or, since v4, an _available_ address), asset id (or, since v4, a Txn.ForeignAssets offset). Return: did_exist flag (1 if the asset existed and 0 otherwise), value.
 898 | 
 899 | ## asset_params_get
 900 | 
 901 | - Syntax: `asset_params_get F` where F: [asset_params](#field-group-asset_params)
 902 | - Bytecode: 0x71 {uint8}
 903 | - Stack: ..., A: uint64 &rarr; ..., X: any, Y: bool
 904 | - X is field F from asset A. Y is 1 if A exists, else 0
 905 | - Availability: v2
 906 | - Mode: Application
 907 | 
 908 | ### asset_params
 909 | 
 910 | Fields
 911 | 
 912 | | Index | Name | Type | In | Notes |
 913 | | - | ------ | -- | - | --------- |
 914 | | 0 | AssetTotal | uint64 |      | Total number of units of this asset |
 915 | | 1 | AssetDecimals | uint64 |      | See AssetParams.Decimals |
 916 | | 2 | AssetDefaultFrozen | bool |      | Frozen by default or not |
 917 | | 3 | AssetUnitName | []byte |      | Asset unit name |
 918 | | 4 | AssetName | []byte |      | Asset name |
 919 | | 5 | AssetURL | []byte |      | URL with additional info about the asset |
 920 | | 6 | AssetMetadataHash | [32]byte |      | Arbitrary commitment |
 921 | | 7 | AssetManager | address |      | Manager address |
 922 | | 8 | AssetReserve | address |      | Reserve address |
 923 | | 9 | AssetFreeze | address |      | Freeze address |
 924 | | 10 | AssetClawback | address |      | Clawback address |
 925 | | 11 | AssetCreator | address | v5  | Creator address |
 926 | 
 927 | 
 928 | params: Txn.ForeignAssets offset (or, since v4, an _available_ asset id. Return: did_exist flag (1 if the asset existed and 0 otherwise), value.
 929 | 
 930 | ## app_params_get
 931 | 
 932 | - Syntax: `app_params_get F` where F: [app_params](#field-group-app_params)
 933 | - Bytecode: 0x72 {uint8}
 934 | - Stack: ..., A: uint64 &rarr; ..., X: any, Y: bool
 935 | - X is field F from app A. Y is 1 if A exists, else 0
 936 | - Availability: v5
 937 | - Mode: Application
 938 | 
 939 | ### app_params
 940 | 
 941 | Fields
 942 | 
 943 | | Index | Name | Type | Notes |
 944 | | - | ------ | -- | --------- |
 945 | | 0 | AppApprovalProgram | []byte | Bytecode of Approval Program |
 946 | | 1 | AppClearStateProgram | []byte | Bytecode of Clear State Program |
 947 | | 2 | AppGlobalNumUint | uint64 | Number of uint64 values allowed in Global State |
 948 | | 3 | AppGlobalNumByteSlice | uint64 | Number of byte array values allowed in Global State |
 949 | | 4 | AppLocalNumUint | uint64 | Number of uint64 values allowed in Local State |
 950 | | 5 | AppLocalNumByteSlice | uint64 | Number of byte array values allowed in Local State |
 951 | | 6 | AppExtraProgramPages | uint64 | Number of Extra Program Pages of code space |
 952 | | 7 | AppCreator | address | Creator address |
 953 | | 8 | AppAddress | address | Address for which this application has authority |
 954 | 
 955 | 
 956 | params: Txn.ForeignApps offset or an _available_ app id. Return: did_exist flag (1 if the application existed and 0 otherwise), value.
 957 | 
 958 | ## min_balance
 959 | 
 960 | - Bytecode: 0x78
 961 | - Stack: ..., A &rarr; ..., uint64
 962 | - minimum required balance for account A, in microalgos. Required balance is affected by ASA, App, and Box usage. When creating or opting into an app, the minimum balance grows before the app code runs, therefore the increase is visible there. When deleting or closing out, the minimum balance decreases after the app executes. Changes caused by inner transactions or box usage are observable immediately following the opcode effecting the change.
 963 | - Availability: v3
 964 | - Mode: Application
 965 | 
 966 | params: Txn.Accounts offset (or, since v4, an _available_ account address), _available_ application id (or, since v4, a Txn.ForeignApps offset). Return: value.
 967 | 
 968 | ## pushbytes
 969 | 
 970 | - Syntax: `pushbytes BYTES` where BYTES: a byte constant
 971 | - Bytecode: 0x80 {varuint length, bytes}
 972 | - Stack: ... &rarr; ..., []byte
 973 | - immediate BYTES
 974 | - Availability: v3
 975 | 
 976 | pushbytes args are not added to the bytecblock during assembly processes
 977 | 
 978 | ## pushint
 979 | 
 980 | - Syntax: `pushint UINT` where UINT: an int constant
 981 | - Bytecode: 0x81 {varuint}
 982 | - Stack: ... &rarr; ..., uint64
 983 | - immediate UINT
 984 | - Availability: v3
 985 | 
 986 | pushint args are not added to the intcblock during assembly processes
 987 | 
 988 | ## callsub
 989 | 
 990 | - Syntax: `callsub TARGET` where TARGET: branch offset
 991 | - Bytecode: 0x88 {int16 (big-endian)}
 992 | - Stack: ... &rarr; ...
 993 | - branch unconditionally to TARGET, saving the next instruction on the call stack
 994 | - Availability: v4
 995 | 
 996 | The call stack is separate from the data stack. Only `callsub`, `retsub`, and `proto` manipulate it.
 997 | 
 998 | ## retsub
 999 | 
1000 | - Bytecode: 0x89
1001 | - Stack: ... &rarr; ...
1002 | - pop the top instruction from the call stack and branch to it
1003 | - Availability: v4
1004 | 
1005 | If the current frame was prepared by `proto A R`, `retsub` will remove the 'A' arguments from the stack, move the `R` return values down, and pop any stack locations above the relocated return values.
1006 | 
1007 | ## shl
1008 | 
1009 | - Bytecode: 0x90
1010 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
1011 | - A times 2^B, modulo 2^64
1012 | - Availability: v4
1013 | 
1014 | ## shr
1015 | 
1016 | - Bytecode: 0x91
1017 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
1018 | - A divided by 2^B
1019 | - Availability: v4
1020 | 
1021 | ## sqrt
1022 | 
1023 | - Bytecode: 0x92
1024 | - Stack: ..., A: uint64 &rarr; ..., uint64
1025 | - The largest integer I such that I^2 <= A
1026 | - **Cost**: 4
1027 | - Availability: v4
1028 | 
1029 | ## bitlen
1030 | 
1031 | - Bytecode: 0x93
1032 | - Stack: ..., A &rarr; ..., uint64
1033 | - The highest set bit in A. If A is a byte-array, it is interpreted as a big-endian unsigned integer. bitlen of 0 is 0, bitlen of 8 is 4
1034 | - Availability: v4
1035 | 
1036 | bitlen interprets arrays as big-endian integers, unlike setbit/getbit
1037 | 
1038 | ## exp
1039 | 
1040 | - Bytecode: 0x94
1041 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
1042 | - A raised to the Bth power. Fail if A == B == 0 and on overflow
1043 | - Availability: v4
1044 | 
1045 | ## expw
1046 | 
1047 | - Bytecode: 0x95
1048 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., X: uint64, Y: uint64
1049 | - A raised to the Bth power as a 128-bit result in two uint64s. X is the high 64 bits, Y is the low. Fail if A == B == 0 or if the results exceeds 2^128-1
1050 | - **Cost**: 10
1051 | - Availability: v4
1052 | 
1053 | ## b+
1054 | 
1055 | - Bytecode: 0xa0
1056 | - Stack: ..., A: bigint, B: bigint &rarr; ..., []byte
1057 | - A plus B. A and B are interpreted as big-endian unsigned integers
1058 | - **Cost**: 10
1059 | - Availability: v4
1060 | 
1061 | ## b-
1062 | 
1063 | - Bytecode: 0xa1
1064 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bigint
1065 | - A minus B. A and B are interpreted as big-endian unsigned integers. Fail on underflow.
1066 | - **Cost**: 10
1067 | - Availability: v4
1068 | 
1069 | ## b/
1070 | 
1071 | - Bytecode: 0xa2
1072 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bigint
1073 | - A divided by B (truncated division). A and B are interpreted as big-endian unsigned integers. Fail if B is zero.
1074 | - **Cost**: 20
1075 | - Availability: v4
1076 | 
1077 | ## b*
1078 | 
1079 | - Bytecode: 0xa3
1080 | - Stack: ..., A: bigint, B: bigint &rarr; ..., []byte
1081 | - A times B. A and B are interpreted as big-endian unsigned integers.
1082 | - **Cost**: 20
1083 | - Availability: v4
1084 | 
1085 | ## b<
1086 | 
1087 | - Bytecode: 0xa4
1088 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
1089 | - 1 if A is less than B, else 0. A and B are interpreted as big-endian unsigned integers
1090 | - Availability: v4
1091 | 
1092 | ## b>
1093 | 
1094 | - Bytecode: 0xa5
1095 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
1096 | - 1 if A is greater than B, else 0. A and B are interpreted as big-endian unsigned integers
1097 | - Availability: v4
1098 | 
1099 | ## b<=
1100 | 
1101 | - Bytecode: 0xa6
1102 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
1103 | - 1 if A is less than or equal to B, else 0. A and B are interpreted as big-endian unsigned integers
1104 | - Availability: v4
1105 | 
1106 | ## b>=
1107 | 
1108 | - Bytecode: 0xa7
1109 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
1110 | - 1 if A is greater than or equal to B, else 0. A and B are interpreted as big-endian unsigned integers
1111 | - Availability: v4
1112 | 
1113 | ## b==
1114 | 
1115 | - Bytecode: 0xa8
1116 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
1117 | - 1 if A is equal to B, else 0. A and B are interpreted as big-endian unsigned integers
1118 | - Availability: v4
1119 | 
1120 | ## b!=
1121 | 
1122 | - Bytecode: 0xa9
1123 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
1124 | - 0 if A is equal to B, else 1. A and B are interpreted as big-endian unsigned integers
1125 | - Availability: v4
1126 | 
1127 | ## b%
1128 | 
1129 | - Bytecode: 0xaa
1130 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bigint
1131 | - A modulo B. A and B are interpreted as big-endian unsigned integers. Fail if B is zero.
1132 | - **Cost**: 20
1133 | - Availability: v4
1134 | 
1135 | ## b|
1136 | 
1137 | - Bytecode: 0xab
1138 | - Stack: ..., A: []byte, B: []byte &rarr; ..., []byte
1139 | - A bitwise-or B. A and B are zero-left extended to the greater of their lengths
1140 | - **Cost**: 6
1141 | - Availability: v4
1142 | 
1143 | ## b&
1144 | 
1145 | - Bytecode: 0xac
1146 | - Stack: ..., A: []byte, B: []byte &rarr; ..., []byte
1147 | - A bitwise-and B. A and B are zero-left extended to the greater of their lengths
1148 | - **Cost**: 6
1149 | - Availability: v4
1150 | 
1151 | ## b^
1152 | 
1153 | - Bytecode: 0xad
1154 | - Stack: ..., A: []byte, B: []byte &rarr; ..., []byte
1155 | - A bitwise-xor B. A and B are zero-left extended to the greater of their lengths
1156 | - **Cost**: 6
1157 | - Availability: v4
1158 | 
1159 | ## b~
1160 | 
1161 | - Bytecode: 0xae
1162 | - Stack: ..., A: []byte &rarr; ..., []byte
1163 | - A with all bits inverted
1164 | - **Cost**: 4
1165 | - Availability: v4
1166 | 
1167 | ## bzero
1168 | 
1169 | - Bytecode: 0xaf
1170 | - Stack: ..., A: uint64 &rarr; ..., []byte
1171 | - zero filled byte-array of length A
1172 | - Availability: v4
1173 | 
1174 | ## log
1175 | 
1176 | - Bytecode: 0xb0
1177 | - Stack: ..., A: []byte &rarr; ...
1178 | - write A to log state of the current application
1179 | - Availability: v5
1180 | - Mode: Application
1181 | 
1182 | `log` fails if called more than MaxLogCalls times in a program, or if the sum of logged bytes exceeds 1024 bytes.
1183 | 
1184 | ## itxn_begin
1185 | 
1186 | - Bytecode: 0xb1
1187 | - Stack: ... &rarr; ...
1188 | - begin preparation of a new inner transaction in a new transaction group
1189 | - Availability: v5
1190 | - Mode: Application
1191 | 
1192 | `itxn_begin` initializes Sender to the application address; Fee to the minimum allowable, taking into account MinTxnFee and credit from overpaying in earlier transactions; FirstValid/LastValid to the values in the invoking transaction, and all other fields to zero or empty values.
1193 | 
1194 | ## itxn_field
1195 | 
1196 | - Syntax: `itxn_field F` where F: [txn](#field-group-txn)
1197 | - Bytecode: 0xb2 {uint8}
1198 | - Stack: ..., A &rarr; ...
1199 | - set field F of the current inner transaction to A
1200 | - Availability: v5
1201 | - Mode: Application
1202 | 
1203 | `itxn_field` fails if A is of the wrong type for F, including a byte array of the wrong size for use as an address when F is an address field. `itxn_field` also fails if A is an account, asset, or app that is not _available_, or an attempt is made extend an array field beyond the limit imposed by consensus parameters. (Addresses set into asset params of acfg transactions need not be _available_.)
1204 | 
1205 | ## itxn_submit
1206 | 
1207 | - Bytecode: 0xb3
1208 | - Stack: ... &rarr; ...
1209 | - execute the current inner transaction group. Fail if executing this group would exceed the inner transaction limit, or if any transaction in the group fails.
1210 | - Availability: v5
1211 | - Mode: Application
1212 | 
1213 | `itxn_submit` resets the current transaction so that it can not be resubmitted. A new `itxn_begin` is required to prepare another inner transaction.
1214 | 
1215 | ## itxn
1216 | 
1217 | - Syntax: `itxn F` where F: [txn](#field-group-txn)
1218 | - Bytecode: 0xb4 {uint8}
1219 | - Stack: ... &rarr; ..., any
1220 | - field F of the last inner transaction
1221 | - Availability: v5
1222 | - Mode: Application
1223 | 
1224 | ## itxna
1225 | 
1226 | - Syntax: `itxna F I` where F: [txna](#field-group-txna), I: a transaction field array index
1227 | - Bytecode: 0xb5 {uint8}, {uint8}
1228 | - Stack: ... &rarr; ..., any
1229 | - Ith value of the array field F of the last inner transaction
1230 | - Availability: v5
1231 | - Mode: Application
1232 | 
1233 | ## txnas
1234 | 
1235 | - Syntax: `txnas F` where F: [txna](#field-group-txna)
1236 | - Bytecode: 0xc0 {uint8}
1237 | - Stack: ..., A: uint64 &rarr; ..., any
1238 | - Ath value of the array field F of the current transaction
1239 | - Availability: v5
1240 | 
1241 | ## gtxnas
1242 | 
1243 | - Syntax: `gtxnas T F` where T: transaction group index, F: [txna](#field-group-txna)
1244 | - Bytecode: 0xc1 {uint8}, {uint8}
1245 | - Stack: ..., A: uint64 &rarr; ..., any
1246 | - Ath value of the array field F from the Tth transaction in the current group
1247 | - Availability: v5
1248 | 
1249 | ## gtxnsas
1250 | 
1251 | - Syntax: `gtxnsas F` where F: [txna](#field-group-txna)
1252 | - Bytecode: 0xc2 {uint8}
1253 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., any
1254 | - Bth value of the array field F from the Ath transaction in the current group
1255 | - Availability: v5
1256 | 
1257 | ## args
1258 | 
1259 | - Bytecode: 0xc3
1260 | - Stack: ..., A: uint64 &rarr; ..., []byte
1261 | - Ath LogicSig argument
1262 | - Availability: v5
1263 | - Mode: Signature
1264 | 
```
Page 63/93FirstPrevNextLast