#
tokens: 47039/50000 2/942 files (page 58/93)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 58 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/algokit:utils:typescript:code:classes:types_app_client.ApplicationClient.md:
--------------------------------------------------------------------------------

```markdown
  1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / ApplicationClient
  2 | 
  3 | # Class: ApplicationClient
  4 | 
  5 | [types/app-client](../modules/types_app_client.md).ApplicationClient
  6 | 
  7 | **`Deprecated`**
  8 | 
  9 | Use `AppClient` instead e.g. via `algorand.client.getAppClientById` or
 10 | `algorand.client.getAppClientByCreatorAndName`.
 11 | If you want to `create` or `deploy` then use `AppFactory` e.g. via `algorand.client.getAppFactory`,
 12 | which will in turn give you an `AppClient` instance against the created/deployed app to make other calls.
 13 | 
 14 | Application client - a class that wraps an ARC-0032 app spec and provides high productivity methods to deploy and call the app
 15 | 
 16 | ## Table of contents
 17 | 
 18 | ### Constructors
 19 | 
 20 | - [constructor](types_app_client.ApplicationClient.md#constructor)
 21 | 
 22 | ### Properties
 23 | 
 24 | - [\_appAddress](types_app_client.ApplicationClient.md#_appaddress)
 25 | - [\_appId](types_app_client.ApplicationClient.md#_appid)
 26 | - [\_appName](types_app_client.ApplicationClient.md#_appname)
 27 | - [\_approvalSourceMap](types_app_client.ApplicationClient.md#_approvalsourcemap)
 28 | - [\_clearSourceMap](types_app_client.ApplicationClient.md#_clearsourcemap)
 29 | - [\_creator](types_app_client.ApplicationClient.md#_creator)
 30 | - [algod](types_app_client.ApplicationClient.md#algod)
 31 | - [appSpec](types_app_client.ApplicationClient.md#appspec)
 32 | - [deployTimeParams](types_app_client.ApplicationClient.md#deploytimeparams)
 33 | - [existingDeployments](types_app_client.ApplicationClient.md#existingdeployments)
 34 | - [indexer](types_app_client.ApplicationClient.md#indexer)
 35 | - [params](types_app_client.ApplicationClient.md#params)
 36 | - [sender](types_app_client.ApplicationClient.md#sender)
 37 | 
 38 | ### Methods
 39 | 
 40 | - [call](types_app_client.ApplicationClient.md#call)
 41 | - [callOfType](types_app_client.ApplicationClient.md#calloftype)
 42 | - [clearState](types_app_client.ApplicationClient.md#clearstate)
 43 | - [closeOut](types_app_client.ApplicationClient.md#closeout)
 44 | - [compile](types_app_client.ApplicationClient.md#compile)
 45 | - [create](types_app_client.ApplicationClient.md#create)
 46 | - [delete](types_app_client.ApplicationClient.md#delete)
 47 | - [deploy](types_app_client.ApplicationClient.md#deploy)
 48 | - [exportSourceMaps](types_app_client.ApplicationClient.md#exportsourcemaps)
 49 | - [exposeLogicError](types_app_client.ApplicationClient.md#exposelogicerror)
 50 | - [fundAppAccount](types_app_client.ApplicationClient.md#fundappaccount)
 51 | - [getABIMethod](types_app_client.ApplicationClient.md#getabimethod)
 52 | - [getABIMethodParams](types_app_client.ApplicationClient.md#getabimethodparams)
 53 | - [getABIMethodSignature](types_app_client.ApplicationClient.md#getabimethodsignature)
 54 | - [getAppReference](types_app_client.ApplicationClient.md#getappreference)
 55 | - [getBoxNames](types_app_client.ApplicationClient.md#getboxnames)
 56 | - [getBoxValue](types_app_client.ApplicationClient.md#getboxvalue)
 57 | - [getBoxValueFromABIType](types_app_client.ApplicationClient.md#getboxvaluefromabitype)
 58 | - [getBoxValues](types_app_client.ApplicationClient.md#getboxvalues)
 59 | - [getBoxValuesFromABIType](types_app_client.ApplicationClient.md#getboxvaluesfromabitype)
 60 | - [getCallArgs](types_app_client.ApplicationClient.md#getcallargs)
 61 | - [getGlobalState](types_app_client.ApplicationClient.md#getglobalstate)
 62 | - [getLocalState](types_app_client.ApplicationClient.md#getlocalstate)
 63 | - [importSourceMaps](types_app_client.ApplicationClient.md#importsourcemaps)
 64 | - [optIn](types_app_client.ApplicationClient.md#optin)
 65 | - [update](types_app_client.ApplicationClient.md#update)
 66 | 
 67 | ## Constructors
 68 | 
 69 | ### constructor
 70 | 
 71 | • **new ApplicationClient**(`appDetails`, `algod`): [`ApplicationClient`](types_app_client.ApplicationClient.md)
 72 | 
 73 | #### Parameters
 74 | 
 75 | | Name | Type | Description |
 76 | | :------ | :------ | :------ |
 77 | | `appDetails` | [`AppSpecAppDetails`](../modules/types_app_client.md#appspecappdetails) | The details of the app |
 78 | | `algod` | `AlgodClient` | An algod instance |
 79 | 
 80 | #### Returns
 81 | 
 82 | [`ApplicationClient`](types_app_client.ApplicationClient.md)
 83 | 
 84 | **`Deprecated`**
 85 | 
 86 | Use `AppClient` instead e.g. via `algorand.client.getAppClientById` or
 87 | `algorand.client.getAppClientByCreatorAndName`.
 88 | If you want to `create` or `deploy` then use `AppFactory` e.g. via `algorand.client.getAppFactory`,
 89 | which will in turn give you an `AppClient` instance against the created/deployed app to make other calls.
 90 | 
 91 | Create a new ApplicationClient instance
 92 | 
 93 | #### Defined in
 94 | 
 95 | [src/types/app-client.ts:1644](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1644)
 96 | 
 97 | ## Properties
 98 | 
 99 | ### \_appAddress
100 | 
101 | • `Private` **\_appAddress**: `string`
102 | 
103 | #### Defined in
104 | 
105 | [src/types/app-client.ts:1627](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1627)
106 | 
107 | ___
108 | 
109 | ### \_appId
110 | 
111 | • `Private` **\_appId**: `number` \| `bigint`
112 | 
113 | #### Defined in
114 | 
115 | [src/types/app-client.ts:1626](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1626)
116 | 
117 | ___
118 | 
119 | ### \_appName
120 | 
121 | • `Private` **\_appName**: `string`
122 | 
123 | #### Defined in
124 | 
125 | [src/types/app-client.ts:1629](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1629)
126 | 
127 | ___
128 | 
129 | ### \_approvalSourceMap
130 | 
131 | • `Private` **\_approvalSourceMap**: `undefined` \| `ProgramSourceMap`
132 | 
133 | #### Defined in
134 | 
135 | [src/types/app-client.ts:1631](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1631)
136 | 
137 | ___
138 | 
139 | ### \_clearSourceMap
140 | 
141 | • `Private` **\_clearSourceMap**: `undefined` \| `ProgramSourceMap`
142 | 
143 | #### Defined in
144 | 
145 | [src/types/app-client.ts:1632](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1632)
146 | 
147 | ___
148 | 
149 | ### \_creator
150 | 
151 | • `Private` **\_creator**: `undefined` \| `string`
152 | 
153 | #### Defined in
154 | 
155 | [src/types/app-client.ts:1628](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1628)
156 | 
157 | ___
158 | 
159 | ### algod
160 | 
161 | • `Private` **algod**: `AlgodClient`
162 | 
163 | #### Defined in
164 | 
165 | [src/types/app-client.ts:1618](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1618)
166 | 
167 | ___
168 | 
169 | ### appSpec
170 | 
171 | • `Private` **appSpec**: [`AppSpec`](../interfaces/types_app_spec.AppSpec.md)
172 | 
173 | #### Defined in
174 | 
175 | [src/types/app-client.ts:1620](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1620)
176 | 
177 | ___
178 | 
179 | ### deployTimeParams
180 | 
181 | • `Private` `Optional` **deployTimeParams**: [`TealTemplateParams`](../interfaces/types_app.TealTemplateParams.md)
182 | 
183 | #### Defined in
184 | 
185 | [src/types/app-client.ts:1624](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1624)
186 | 
187 | ___
188 | 
189 | ### existingDeployments
190 | 
191 | • `Private` **existingDeployments**: `undefined` \| [`AppLookup`](../interfaces/types_app.AppLookup.md)
192 | 
193 | #### Defined in
194 | 
195 | [src/types/app-client.ts:1623](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1623)
196 | 
197 | ___
198 | 
199 | ### indexer
200 | 
201 | • `Private` `Optional` **indexer**: `IndexerClient`
202 | 
203 | #### Defined in
204 | 
205 | [src/types/app-client.ts:1619](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1619)
206 | 
207 | ___
208 | 
209 | ### params
210 | 
211 | • `Private` **params**: `undefined` \| `SuggestedParams`
212 | 
213 | #### Defined in
214 | 
215 | [src/types/app-client.ts:1622](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1622)
216 | 
217 | ___
218 | 
219 | ### sender
220 | 
221 | • `Private` **sender**: `undefined` \| [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom)
222 | 
223 | #### Defined in
224 | 
225 | [src/types/app-client.ts:1621](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1621)
226 | 
227 | ## Methods
228 | 
229 | ### call
230 | 
231 | ▸ **call**(`call?`): `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
232 | 
233 | #### Parameters
234 | 
235 | | Name | Type | Description |
236 | | :------ | :------ | :------ |
237 | | `call?` | [`AppClientCallParams`](../modules/types_app_client.md#appclientcallparams) | The call details. |
238 | 
239 | #### Returns
240 | 
241 | `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
242 | 
243 | The result of the call
244 | 
245 | **`Deprecated`**
246 | 
247 | Use `appClient.send.call` or `appClient.createTransaction.call` from an `AppClient` instance instead.
248 | 
249 | Issues a no_op (normal) call to the app.
250 | 
251 | #### Defined in
252 | 
253 | [src/types/app-client.ts:1967](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1967)
254 | 
255 | ___
256 | 
257 | ### callOfType
258 | 
259 | ▸ **callOfType**(`call?`, `callType`): `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
260 | 
261 | #### Parameters
262 | 
263 | | Name | Type | Description |
264 | | :------ | :------ | :------ |
265 | | `call` | [`AppClientCallParams`](../modules/types_app_client.md#appclientcallparams) | The call details. |
266 | | `callType` | ``"no_op"`` \| ``"opt_in"`` \| ``"close_out"`` \| ``"clear_state"`` \| ``"delete_application"`` \| `NoOpOC` \| `OptInOC` \| `CloseOutOC` \| `ClearStateOC` \| `DeleteApplicationOC` | The call type |
267 | 
268 | #### Returns
269 | 
270 | `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
271 | 
272 | The result of the call
273 | 
274 | **`Deprecated`**
275 | 
276 | Use `appClient.send.call` or `appClient.createTransaction.call` from an `AppClient` instance instead.
277 | 
278 | Issues a call to the app with the given call type.
279 | 
280 | #### Defined in
281 | 
282 | [src/types/app-client.ts:2049](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2049)
283 | 
284 | ___
285 | 
286 | ### clearState
287 | 
288 | ▸ **clearState**(`call?`): `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
289 | 
290 | #### Parameters
291 | 
292 | | Name | Type | Description |
293 | | :------ | :------ | :------ |
294 | | `call?` | [`AppClientClearStateParams`](../modules/types_app_client.md#appclientclearstateparams) | The call details. |
295 | 
296 | #### Returns
297 | 
298 | `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
299 | 
300 | The result of the call
301 | 
302 | **`Deprecated`**
303 | 
304 | Use `appClient.send.clearState` or `appClient.createTransaction.clearState` from an `AppClient` instance instead.
305 | 
306 | Issues a clear_state call to the app.
307 | 
308 | #### Defined in
309 | 
310 | [src/types/app-client.ts:2026](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2026)
311 | 
312 | ___
313 | 
314 | ### closeOut
315 | 
316 | ▸ **closeOut**(`call?`): `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
317 | 
318 | #### Parameters
319 | 
320 | | Name | Type | Description |
321 | | :------ | :------ | :------ |
322 | | `call?` | [`AppClientCallParams`](../modules/types_app_client.md#appclientcallparams) | The call details. |
323 | 
324 | #### Returns
325 | 
326 | `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
327 | 
328 | The result of the call
329 | 
330 | **`Deprecated`**
331 | 
332 | Use `appClient.send.closeOut` or `appClient.createTransaction.closeOut` from an `AppClient` instance instead.
333 | 
334 | Issues a close_out call to the app.
335 | 
336 | #### Defined in
337 | 
338 | [src/types/app-client.ts:2015](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2015)
339 | 
340 | ___
341 | 
342 | ### compile
343 | 
344 | ▸ **compile**(`compilation?`): `Promise`\<\{ `approvalCompiled`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `clearCompiled`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md)  }\>
345 | 
346 | #### Parameters
347 | 
348 | | Name | Type | Description |
349 | | :------ | :------ | :------ |
350 | | `compilation?` | [`AppClientCompilationParams`](../interfaces/types_app_client.AppClientCompilationParams.md) | The deploy-time parameters for the compilation |
351 | 
352 | #### Returns
353 | 
354 | `Promise`\<\{ `approvalCompiled`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `clearCompiled`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md)  }\>
355 | 
356 | The compiled approval and clear state programs
357 | 
358 | **`Deprecated`**
359 | 
360 | Use `AppClient.compile()` instead.
361 | 
362 | Compiles the approval and clear state programs and sets up the source map.
363 | 
364 | #### Defined in
365 | 
366 | [src/types/app-client.ts:1683](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1683)
367 | 
368 | ___
369 | 
370 | ### create
371 | 
372 | ▸ **create**(`create?`): `Promise`\<\{ `appAddress`: `string` ; `appId`: `number` \| `bigint` ; `compiledApproval`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `compiledClear`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `confirmation?`: `PendingTransactionResponse` ; `confirmations?`: `PendingTransactionResponse`[] ; `return?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `transaction`: `Transaction` ; `transactions`: `Transaction`[]  }\>
373 | 
374 | #### Parameters
375 | 
376 | | Name | Type | Description |
377 | | :------ | :------ | :------ |
378 | | `create?` | [`AppClientCreateParams`](../modules/types_app_client.md#appclientcreateparams) | The parameters to create the app with |
379 | 
380 | #### Returns
381 | 
382 | `Promise`\<\{ `appAddress`: `string` ; `appId`: `number` \| `bigint` ; `compiledApproval`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `compiledClear`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `confirmation?`: `PendingTransactionResponse` ; `confirmations?`: `PendingTransactionResponse`[] ; `return?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `transaction`: `Transaction` ; `transactions`: `Transaction`[]  }\>
383 | 
384 | The details of the created app, or the transaction to create it if `skipSending` and the compilation result
385 | 
386 | **`Deprecated`**
387 | 
388 | Use `create` from an `AppFactory` instance instead.
389 | 
390 | Creates a smart contract app, returns the details of the created app.
391 | 
392 | #### Defined in
393 | 
394 | [src/types/app-client.ts:1862](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1862)
395 | 
396 | ___
397 | 
398 | ### delete
399 | 
400 | ▸ **delete**(`call?`): `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
401 | 
402 | #### Parameters
403 | 
404 | | Name | Type | Description |
405 | | :------ | :------ | :------ |
406 | | `call?` | [`AppClientCallParams`](../modules/types_app_client.md#appclientcallparams) | The call details. |
407 | 
408 | #### Returns
409 | 
410 | `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
411 | 
412 | The result of the call
413 | 
414 | **`Deprecated`**
415 | 
416 | Use `appClient.send.delete` or `appClient.createTransaction.delete` from an `AppClient` instance instead.
417 | 
418 | Issues a delete_application call to the app.
419 | 
420 | #### Defined in
421 | 
422 | [src/types/app-client.ts:2037](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2037)
423 | 
424 | ___
425 | 
426 | ### deploy
427 | 
428 | ▸ **deploy**(`deploy?`): `Promise`\<`Partial`\<[`AppCompilationResult`](../interfaces/types_app.AppCompilationResult.md)\> & [`AppMetadata`](../interfaces/types_app.AppMetadata.md) & \{ `operationPerformed`: ``"nothing"``  } \| \{ `appAddress`: `string` ; `appId`: `number` \| `bigint` ; `compiledApproval`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `compiledClear`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `confirmation`: `PendingTransactionResponse` ; `confirmations`: `PendingTransactionResponse`[] ; `createdMetadata`: [`AppDeployMetadata`](../interfaces/types_app.AppDeployMetadata.md) ; `createdRound`: `number` ; `deletable?`: `boolean` ; `deleted`: `boolean` ; `name`: `string` ; `operationPerformed`: ``"update"`` \| ``"create"`` ; `return?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `transaction`: `Transaction` ; `transactions`: `Transaction`[] ; `updatable?`: `boolean` ; `updatedRound`: `number` ; `version`: `string`  } \| \{ `appAddress`: `string` ; `appId`: `number` \| `bigint` ; `compiledApproval`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `compiledClear`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `confirmation`: `PendingTransactionResponse` ; `confirmations`: `PendingTransactionResponse`[] ; `createdMetadata`: [`AppDeployMetadata`](../interfaces/types_app.AppDeployMetadata.md) ; `createdRound`: `number` ; `deletable?`: `boolean` ; `deleteResult`: [`ConfirmedTransactionResult`](../interfaces/types_transaction.ConfirmedTransactionResult.md) ; `deleteReturn?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `deleted`: `boolean` ; `name`: `string` ; `operationPerformed`: ``"replace"`` ; `return?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `transaction`: `Transaction` ; `transactions`: `Transaction`[] ; `updatable?`: `boolean` ; `updatedRound`: `number` ; `version`: `string`  }\>
429 | 
430 | #### Parameters
431 | 
432 | | Name | Type | Description |
433 | | :------ | :------ | :------ |
434 | | `deploy?` | [`AppClientDeployParams`](../interfaces/types_app_client.AppClientDeployParams.md) | Deployment details |
435 | 
436 | #### Returns
437 | 
438 | `Promise`\<`Partial`\<[`AppCompilationResult`](../interfaces/types_app.AppCompilationResult.md)\> & [`AppMetadata`](../interfaces/types_app.AppMetadata.md) & \{ `operationPerformed`: ``"nothing"``  } \| \{ `appAddress`: `string` ; `appId`: `number` \| `bigint` ; `compiledApproval`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `compiledClear`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `confirmation`: `PendingTransactionResponse` ; `confirmations`: `PendingTransactionResponse`[] ; `createdMetadata`: [`AppDeployMetadata`](../interfaces/types_app.AppDeployMetadata.md) ; `createdRound`: `number` ; `deletable?`: `boolean` ; `deleted`: `boolean` ; `name`: `string` ; `operationPerformed`: ``"update"`` \| ``"create"`` ; `return?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `transaction`: `Transaction` ; `transactions`: `Transaction`[] ; `updatable?`: `boolean` ; `updatedRound`: `number` ; `version`: `string`  } \| \{ `appAddress`: `string` ; `appId`: `number` \| `bigint` ; `compiledApproval`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `compiledClear`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `confirmation`: `PendingTransactionResponse` ; `confirmations`: `PendingTransactionResponse`[] ; `createdMetadata`: [`AppDeployMetadata`](../interfaces/types_app.AppDeployMetadata.md) ; `createdRound`: `number` ; `deletable?`: `boolean` ; `deleteResult`: [`ConfirmedTransactionResult`](../interfaces/types_transaction.ConfirmedTransactionResult.md) ; `deleteReturn?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `deleted`: `boolean` ; `name`: `string` ; `operationPerformed`: ``"replace"`` ; `return?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `transaction`: `Transaction` ; `transactions`: `Transaction`[] ; `updatable?`: `boolean` ; `updatedRound`: `number` ; `version`: `string`  }\>
439 | 
440 | The metadata and transaction result(s) of the deployment, or just the metadata if it didn't need to issue transactions
441 | 
442 | **`Deprecated`**
443 | 
444 | Use `deploy` from an `AppFactory` instance instead.
445 | 
446 | Idempotently deploy (create, update/delete if changed) an app against the given name via the given creator account, including deploy-time template placeholder substitutions.
447 | 
448 | To understand the architecture decisions behind this functionality please see https://github.com/algorandfoundation/algokit-cli/blob/main/docs/architecture-decisions/2023-01-12_smart-contract-deployment.md
449 | 
450 | **Note:** if there is a breaking state schema change to an existing app (and `onSchemaBreak` is set to `'replace'`) the existing app will be deleted and re-created.
451 | 
452 | **Note:** if there is an update (different TEAL code) to an existing app (and `onUpdate` is set to `'replace'`) the existing app will be deleted and re-created.
453 | 
454 | #### Defined in
455 | 
456 | [src/types/app-client.ts:1751](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1751)
457 | 
458 | ___
459 | 
460 | ### exportSourceMaps
461 | 
462 | ▸ **exportSourceMaps**(): [`AppSourceMaps`](../interfaces/types_app_client.AppSourceMaps.md)
463 | 
464 | Export the current source maps for the app.
465 | 
466 | #### Returns
467 | 
468 | [`AppSourceMaps`](../interfaces/types_app_client.AppSourceMaps.md)
469 | 
470 | The source maps
471 | 
472 | #### Defined in
473 | 
474 | [src/types/app-client.ts:1716](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1716)
475 | 
476 | ___
477 | 
478 | ### exposeLogicError
479 | 
480 | ▸ **exposeLogicError**(`e`, `isClear?`): `Error`
481 | 
482 | Takes an error that may include a logic error from a smart contract call and re-exposes the error to include source code information via the source map.
483 | This is automatically used within `ApplicationClient` but if you pass `skipSending: true` e.g. if doing a group transaction
484 |  then you can use this in a try/catch block to get better debugging information.
485 | 
486 | #### Parameters
487 | 
488 | | Name | Type | Description |
489 | | :------ | :------ | :------ |
490 | | `e` | `Error` | The error to parse |
491 | | `isClear?` | `boolean` | Whether or not the code was running the clear state program |
492 | 
493 | #### Returns
494 | 
495 | `Error`
496 | 
497 | The new error, or if there was no logic error or source map then the wrapped error with source details
498 | 
499 | #### Defined in
500 | 
501 | [src/types/app-client.ts:2371](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2371)
502 | 
503 | ___
504 | 
505 | ### fundAppAccount
506 | 
507 | ▸ **fundAppAccount**(`fund`): `Promise`\<[`SendTransactionResult`](../interfaces/types_transaction.SendTransactionResult.md) \| \{ `confirmation`: `PendingTransactionResponse` ; `confirmations`: `PendingTransactionResponse`[] ; `groupId`: `string` ; `returns?`: [`ABIReturn`](../modules/types_app.md#abireturn)[] ; `transaction`: `Transaction` ; `transactions`: `Transaction`[] ; `txIds`: `string`[]  } & \{ `transactions`: `Transaction`[]  }\>
508 | 
509 | Funds Algo into the app account for this app.
510 | 
511 | #### Parameters
512 | 
513 | | Name | Type | Description |
514 | | :------ | :------ | :------ |
515 | | `fund` | [`AlgoAmount`](types_amount.AlgoAmount.md) \| [`FundAppAccountParams`](../interfaces/types_app_client.FundAppAccountParams.md) | The parameters for the funding or the funding amount |
516 | 
517 | #### Returns
518 | 
519 | `Promise`\<[`SendTransactionResult`](../interfaces/types_transaction.SendTransactionResult.md) \| \{ `confirmation`: `PendingTransactionResponse` ; `confirmations`: `PendingTransactionResponse`[] ; `groupId`: `string` ; `returns?`: [`ABIReturn`](../modules/types_app.md#abireturn)[] ; `transaction`: `Transaction` ; `transactions`: `Transaction`[] ; `txIds`: `string`[]  } & \{ `transactions`: `Transaction`[]  }\>
520 | 
521 | The result of the funding
522 | 
523 | #### Defined in
524 | 
525 | [src/types/app-client.ts:2088](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2088)
526 | 
527 | ___
528 | 
529 | ### getABIMethod
530 | 
531 | ▸ **getABIMethod**(`method`): `undefined` \| `ABIMethod`
532 | 
533 | Returns the ABI Method for the given method name string for the app represented by this application client instance
534 | 
535 | #### Parameters
536 | 
537 | | Name | Type | Description |
538 | | :------ | :------ | :------ |
539 | | `method` | `string` | Either the name of the method or the ABI method spec definition string |
540 | 
541 | #### Returns
542 | 
543 | `undefined` \| `ABIMethod`
544 | 
545 | The ABI method for the given method
546 | 
547 | #### Defined in
548 | 
549 | [src/types/app-client.ts:2329](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2329)
550 | 
551 | ___
552 | 
553 | ### getABIMethodParams
554 | 
555 | ▸ **getABIMethodParams**(`method`): `undefined` \| `ABIMethodParams`
556 | 
557 | #### Parameters
558 | 
559 | | Name | Type | Description |
560 | | :------ | :------ | :------ |
561 | | `method` | `string` | Either the name of the method or the ABI method spec definition string |
562 | 
563 | #### Returns
564 | 
565 | `undefined` \| `ABIMethodParams`
566 | 
567 | The ABI method params for the given method
568 | 
569 | **`Deprecated`**
570 | 
571 | Use `appClient.getABIMethod` instead.
572 | 
573 | Returns the ABI Method parameters for the given method name string for the app represented by this application client instance
574 | 
575 | #### Defined in
576 | 
577 | [src/types/app-client.ts:2307](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2307)
578 | 
579 | ___
580 | 
581 | ### getABIMethodSignature
582 | 
583 | ▸ **getABIMethodSignature**(`method`): `string`
584 | 
585 | #### Parameters
586 | 
587 | | Name | Type |
588 | | :------ | :------ |
589 | | `method` | `ABIMethodParams` \| `ABIMethod` |
590 | 
591 | #### Returns
592 | 
593 | `string`
594 | 
595 | #### Defined in
596 | 
597 | [src/types/app-client.ts:2387](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2387)
598 | 
599 | ___
600 | 
601 | ### getAppReference
602 | 
603 | ▸ **getAppReference**(): `Promise`\<[`AppReference`](../interfaces/types_app.AppReference.md) \| [`AppMetadata`](../interfaces/types_app.AppMetadata.md)\>
604 | 
605 | #### Returns
606 | 
607 | `Promise`\<[`AppReference`](../interfaces/types_app.AppReference.md) \| [`AppMetadata`](../interfaces/types_app.AppMetadata.md)\>
608 | 
609 | The app reference, or if deployed using the `deploy` method, the app metadata too
610 | 
611 | **`Deprecated`**
612 | 
613 | Use `appClient.appId` and `appClient.appAddress` from an `AppClient` instance instead.
614 | 
615 | Gets the reference information for the current application instance.
616 | `appId` will be 0 if it can't find an app.
617 | 
618 | #### Defined in
619 | 
620 | [src/types/app-client.ts:2341](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2341)
621 | 
622 | ___
623 | 
624 | ### getBoxNames
625 | 
626 | ▸ **getBoxNames**(): `Promise`\<[`BoxName`](../interfaces/types_app.BoxName.md)[]\>
627 | 
628 | Returns the names of all current boxes for the current app.
629 | 
630 | #### Returns
631 | 
632 | `Promise`\<[`BoxName`](../interfaces/types_app.BoxName.md)[]\>
633 | 
634 | The names of the boxes
635 | 
636 | #### Defined in
637 | 
638 | [src/types/app-client.ts:2144](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2144)
639 | 
640 | ___
641 | 
642 | ### getBoxValue
643 | 
644 | ▸ **getBoxValue**(`name`): `Promise`\<`Uint8Array`\>
645 | 
646 | Returns the value of the given box for the current app.
647 | 
648 | #### Parameters
649 | 
650 | | Name | Type | Description |
651 | | :------ | :------ | :------ |
652 | | `name` | `string` \| `Uint8Array` \| [`BoxName`](../interfaces/types_app.BoxName.md) | The name of the box to return either as a string, binary array or `BoxName` |
653 | 
654 | #### Returns
655 | 
656 | `Promise`\<`Uint8Array`\>
657 | 
658 | The current box value as a byte array
659 | 
660 | #### Defined in
661 | 
662 | [src/types/app-client.ts:2159](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2159)
663 | 
664 | ___
665 | 
666 | ### getBoxValueFromABIType
667 | 
668 | ▸ **getBoxValueFromABIType**(`name`, `type`): `Promise`\<`ABIValue`\>
669 | 
670 | Returns the value of the given box for the current app.
671 | 
672 | #### Parameters
673 | 
674 | | Name | Type | Description |
675 | | :------ | :------ | :------ |
676 | | `name` | `string` \| `Uint8Array` \| [`BoxName`](../interfaces/types_app.BoxName.md) | The name of the box to return either as a string, binary array or `BoxName` |
677 | | `type` | `ABIType` |  |
678 | 
679 | #### Returns
680 | 
681 | `Promise`\<`ABIValue`\>
682 | 
683 | The current box value as a byte array
684 | 
685 | #### Defined in
686 | 
687 | [src/types/app-client.ts:2175](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2175)
688 | 
689 | ___
690 | 
691 | ### getBoxValues
692 | 
693 | ▸ **getBoxValues**(`filter?`): `Promise`\<\{ `name`: [`BoxName`](../interfaces/types_app.BoxName.md) ; `value`: `Uint8Array`  }[]\>
694 | 
695 | Returns the values of all current boxes for the current app.
696 | Note: This will issue multiple HTTP requests (one per box) and it's not an atomic operation so values may be out of sync.
697 | 
698 | #### Parameters
699 | 
700 | | Name | Type | Description |
701 | | :------ | :------ | :------ |
702 | | `filter?` | (`name`: [`BoxName`](../interfaces/types_app.BoxName.md)) => `boolean` | Optional filter to filter which boxes' values are returned |
703 | 
704 | #### Returns
705 | 
706 | `Promise`\<\{ `name`: [`BoxName`](../interfaces/types_app.BoxName.md) ; `value`: `Uint8Array`  }[]\>
707 | 
708 | The (name, value) pair of the boxes with values as raw byte arrays
709 | 
710 | #### Defined in
711 | 
712 | [src/types/app-client.ts:2191](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2191)
713 | 
714 | ___
715 | 
716 | ### getBoxValuesFromABIType
717 | 
718 | ▸ **getBoxValuesFromABIType**(`type`, `filter?`): `Promise`\<\{ `name`: [`BoxName`](../interfaces/types_app.BoxName.md) ; `value`: `ABIValue`  }[]\>
719 | 
720 | Returns the values of all current boxes for the current app decoded using an ABI Type.
721 | Note: This will issue multiple HTTP requests (one per box) and it's not an atomic operation so values may be out of sync.
722 | 
723 | #### Parameters
724 | 
725 | | Name | Type | Description |
726 | | :------ | :------ | :------ |
727 | | `type` | `ABIType` | The ABI type to decode the values with |
728 | | `filter?` | (`name`: [`BoxName`](../interfaces/types_app.BoxName.md)) => `boolean` | Optional filter to filter which boxes' values are returned |
729 | 
730 | #### Returns
731 | 
732 | `Promise`\<\{ `name`: [`BoxName`](../interfaces/types_app.BoxName.md) ; `value`: `ABIValue`  }[]\>
733 | 
734 | The (name, value) pair of the boxes with values as the ABI Value
735 | 
736 | #### Defined in
737 | 
738 | [src/types/app-client.ts:2213](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2213)
739 | 
740 | ___
741 | 
742 | ### getCallArgs
743 | 
744 | ▸ **getCallArgs**(`args`, `sender`): `Promise`\<`undefined` \| [`AppCallArgs`](../modules/types_app.md#appcallargs)\>
745 | 
746 | #### Parameters
747 | 
748 | | Name | Type | Description |
749 | | :------ | :------ | :------ |
750 | | `args` | `undefined` \| [`AppClientCallArgs`](../modules/types_app_client.md#appclientcallargs) | The call args specific to this application client |
751 | | `sender` | [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom) | The sender of this call. Will be used to fetch any default argument values if applicable |
752 | 
753 | #### Returns
754 | 
755 | `Promise`\<`undefined` \| [`AppCallArgs`](../modules/types_app.md#appcallargs)\>
756 | 
757 | The call args ready to pass into an app call
758 | 
759 | **`Deprecated`**
760 | 
761 | Use `appClient.params.*` from an `AppClient` instance instead.
762 | 
763 | Returns the arguments for an app call for the given ABI method or raw method specification.
764 | 
765 | #### Defined in
766 | 
767 | [src/types/app-client.ts:2237](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2237)
768 | 
769 | ___
770 | 
771 | ### getGlobalState
772 | 
773 | ▸ **getGlobalState**(): `Promise`\<[`AppState`](../interfaces/types_app.AppState.md)\>
774 | 
775 | Returns global state for the current app.
776 | 
777 | #### Returns
778 | 
779 | `Promise`\<[`AppState`](../interfaces/types_app.AppState.md)\>
780 | 
781 | The global state
782 | 
783 | #### Defined in
784 | 
785 | [src/types/app-client.ts:2116](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2116)
786 | 
787 | ___
788 | 
789 | ### getLocalState
790 | 
791 | ▸ **getLocalState**(`account`): `Promise`\<[`AppState`](../interfaces/types_app.AppState.md)\>
792 | 
793 | Returns local state for the given account / account address.
794 | 
795 | #### Parameters
796 | 
797 | | Name | Type |
798 | | :------ | :------ |
799 | | `account` | `string` \| [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom) |
800 | 
801 | #### Returns
802 | 
803 | `Promise`\<[`AppState`](../interfaces/types_app.AppState.md)\>
804 | 
805 | The global state
806 | 
807 | #### Defined in
808 | 
809 | [src/types/app-client.ts:2130](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2130)
810 | 
811 | ___
812 | 
813 | ### importSourceMaps
814 | 
815 | ▸ **importSourceMaps**(`sourceMaps`): `void`
816 | 
817 | Import source maps for the app.
818 | 
819 | #### Parameters
820 | 
821 | | Name | Type | Description |
822 | | :------ | :------ | :------ |
823 | | `sourceMaps` | [`AppSourceMaps`](../interfaces/types_app_client.AppSourceMaps.md) | The source maps to import |
824 | 
825 | #### Returns
826 | 
827 | `void`
828 | 
829 | #### Defined in
830 | 
831 | [src/types/app-client.ts:1733](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1733)
832 | 
833 | ___
834 | 
835 | ### optIn
836 | 
837 | ▸ **optIn**(`call?`): `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
838 | 
839 | #### Parameters
840 | 
841 | | Name | Type | Description |
842 | | :------ | :------ | :------ |
843 | | `call?` | [`AppClientCallParams`](../modules/types_app_client.md#appclientcallparams) | The call details. |
844 | 
845 | #### Returns
846 | 
847 | `Promise`\<[`AppCallTransactionResult`](../modules/types_app.md#appcalltransactionresult)\>
848 | 
849 | The result of the call
850 | 
851 | **`Deprecated`**
852 | 
853 | Use `appClient.send.optIn` or `appClient.createTransaction.optIn` from an `AppClient` instance instead.
854 | 
855 | Issues a opt_in call to the app.
856 | 
857 | #### Defined in
858 | 
859 | [src/types/app-client.ts:2004](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L2004)
860 | 
861 | ___
862 | 
863 | ### update
864 | 
865 | ▸ **update**(`update?`): `Promise`\<\{ `compiledApproval`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `compiledClear`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `confirmation?`: `PendingTransactionResponse` ; `confirmations?`: `PendingTransactionResponse`[] ; `return?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `transaction`: `Transaction` ; `transactions`: `Transaction`[]  }\>
866 | 
867 | #### Parameters
868 | 
869 | | Name | Type | Description |
870 | | :------ | :------ | :------ |
871 | | `update?` | [`AppClientUpdateParams`](../modules/types_app_client.md#appclientupdateparams) | The parameters to update the app with |
872 | 
873 | #### Returns
874 | 
875 | `Promise`\<\{ `compiledApproval`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `compiledClear`: [`CompiledTeal`](../interfaces/types_app.CompiledTeal.md) ; `confirmation?`: `PendingTransactionResponse` ; `confirmations?`: `PendingTransactionResponse`[] ; `return?`: [`ABIReturn`](../modules/types_app.md#abireturn) ; `transaction`: `Transaction` ; `transactions`: `Transaction`[]  }\>
876 | 
877 | The transaction send result and the compilation result
878 | 
879 | **`Deprecated`**
880 | 
881 | Use `appClient.send.update` or `appClient.createTransaction.update` from an `AppClient` instance instead.
882 | 
883 | Updates the smart contract app.
884 | 
885 | #### Defined in
886 | 
887 | [src/types/app-client.ts:1926](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L1926)
888 | 
```

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

```markdown
   1 | title: v4 Opcodes
   2 | 
   3 | Ops have a 'cost' of 1 unless otherwise specified.
   4 | 
   5 | 
   6 | ## err
   7 | 
   8 | - Bytecode: 0x00
   9 | - Stack: ... &rarr; _exits_
  10 | - Fail immediately.
  11 | 
  12 | ## sha256
  13 | 
  14 | - Bytecode: 0x01
  15 | - Stack: ..., A: []byte &rarr; ..., [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 &rarr; ..., [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 &rarr; ..., [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 &rarr; ..., 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 | - Mode: Signature
  40 | 
  41 | 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.
  42 | 
  43 | ## +
  44 | 
  45 | - Bytecode: 0x08
  46 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
  47 | - A plus B. Fail on overflow.
  48 | 
  49 | Overflow is an error condition which halts execution and fails the transaction. Full precision is available from `addw`.
  50 | 
  51 | ## -
  52 | 
  53 | - Bytecode: 0x09
  54 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
  55 | - A minus B. Fail if B > A.
  56 | 
  57 | ## /
  58 | 
  59 | - Bytecode: 0x0a
  60 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
  61 | - A divided by B (truncated division). Fail if B == 0.
  62 | 
  63 | `divmodw` is available to divide the two-element values produced by `mulw` and `addw`.
  64 | 
  65 | ## *
  66 | 
  67 | - Bytecode: 0x0b
  68 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
  69 | - A times B. Fail on overflow.
  70 | 
  71 | Overflow is an error condition which halts execution and fails the transaction. Full precision is available from `mulw`.
  72 | 
  73 | ## <
  74 | 
  75 | - Bytecode: 0x0c
  76 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
  77 | - A less than B => {0 or 1}
  78 | 
  79 | ## >
  80 | 
  81 | - Bytecode: 0x0d
  82 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
  83 | - A greater than B => {0 or 1}
  84 | 
  85 | ## <=
  86 | 
  87 | - Bytecode: 0x0e
  88 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
  89 | - A less than or equal to B => {0 or 1}
  90 | 
  91 | ## >=
  92 | 
  93 | - Bytecode: 0x0f
  94 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
  95 | - A greater than or equal to B => {0 or 1}
  96 | 
  97 | ## &&
  98 | 
  99 | - Bytecode: 0x10
 100 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
 101 | - A is not zero and B is not zero => {0 or 1}
 102 | 
 103 | ## ||
 104 | 
 105 | - Bytecode: 0x11
 106 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., bool
 107 | - A is not zero or B is not zero => {0 or 1}
 108 | 
 109 | ## ==
 110 | 
 111 | - Bytecode: 0x12
 112 | - Stack: ..., A, B &rarr; ..., bool
 113 | - A is equal to B => {0 or 1}
 114 | 
 115 | ## !=
 116 | 
 117 | - Bytecode: 0x13
 118 | - Stack: ..., A, B &rarr; ..., bool
 119 | - A is not equal to B => {0 or 1}
 120 | 
 121 | ## !
 122 | 
 123 | - Bytecode: 0x14
 124 | - Stack: ..., A: uint64 &rarr; ..., uint64
 125 | - A == 0 yields 1; else 0
 126 | 
 127 | ## len
 128 | 
 129 | - Bytecode: 0x15
 130 | - Stack: ..., A: []byte &rarr; ..., uint64
 131 | - yields length of byte value A
 132 | 
 133 | ## itob
 134 | 
 135 | - Bytecode: 0x16
 136 | - Stack: ..., A: uint64 &rarr; ..., [8]byte
 137 | - converts uint64 A to big-endian byte array, always of length 8
 138 | 
 139 | ## btoi
 140 | 
 141 | - Bytecode: 0x17
 142 | - Stack: ..., A: []byte &rarr; ..., uint64
 143 | - converts big-endian byte array A to uint64. Fails if len(A) > 8. Padded by leading 0s if len(A) < 8.
 144 | 
 145 | `btoi` fails if the input is longer than 8 bytes.
 146 | 
 147 | ## %
 148 | 
 149 | - Bytecode: 0x18
 150 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 151 | - A modulo B. Fail if B == 0.
 152 | 
 153 | ## |
 154 | 
 155 | - Bytecode: 0x19
 156 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 157 | - A bitwise-or B
 158 | 
 159 | ## &
 160 | 
 161 | - Bytecode: 0x1a
 162 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 163 | - A bitwise-and B
 164 | 
 165 | ## ^
 166 | 
 167 | - Bytecode: 0x1b
 168 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 169 | - A bitwise-xor B
 170 | 
 171 | ## ~
 172 | 
 173 | - Bytecode: 0x1c
 174 | - Stack: ..., A: uint64 &rarr; ..., uint64
 175 | - bitwise invert value A
 176 | 
 177 | ## mulw
 178 | 
 179 | - Bytecode: 0x1d
 180 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., X: uint64, Y: uint64
 181 | - A times B as a 128-bit result in two uint64s. X is the high 64 bits, Y is the low
 182 | 
 183 | ## addw
 184 | 
 185 | - Bytecode: 0x1e
 186 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., X: uint64, Y: uint64
 187 | - A plus B as a 128-bit result. X is the carry-bit, Y is the low-order 64 bits.
 188 | - Availability: v2
 189 | 
 190 | ## divmodw
 191 | 
 192 | - Bytecode: 0x1f
 193 | - Stack: ..., A: uint64, B: uint64, C: uint64, D: uint64 &rarr; ..., W: uint64, X: uint64, Y: uint64, Z: uint64
 194 | - W,X = (A,B / C,D); Y,Z = (A,B modulo C,D)
 195 | - **Cost**: 20
 196 | - Availability: v4
 197 | 
 198 | 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.
 199 | 
 200 | ## intcblock
 201 | 
 202 | - Syntax: `intcblock UINT ...` where UINT ...: a block of int constant values
 203 | - Bytecode: 0x20 {varuint count, [varuint ...]}
 204 | - Stack: ... &rarr; ...
 205 | - prepare block of uint64 constants for use by intc
 206 | 
 207 | `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.
 208 | 
 209 | ## intc
 210 | 
 211 | - Syntax: `intc I` where I: an index in the intcblock
 212 | - Bytecode: 0x21 {uint8}
 213 | - Stack: ... &rarr; ..., uint64
 214 | - Ith constant from intcblock
 215 | 
 216 | ## intc_0
 217 | 
 218 | - Bytecode: 0x22
 219 | - Stack: ... &rarr; ..., uint64
 220 | - constant 0 from intcblock
 221 | 
 222 | ## intc_1
 223 | 
 224 | - Bytecode: 0x23
 225 | - Stack: ... &rarr; ..., uint64
 226 | - constant 1 from intcblock
 227 | 
 228 | ## intc_2
 229 | 
 230 | - Bytecode: 0x24
 231 | - Stack: ... &rarr; ..., uint64
 232 | - constant 2 from intcblock
 233 | 
 234 | ## intc_3
 235 | 
 236 | - Bytecode: 0x25
 237 | - Stack: ... &rarr; ..., uint64
 238 | - constant 3 from intcblock
 239 | 
 240 | ## bytecblock
 241 | 
 242 | - Syntax: `bytecblock BYTES ...` where BYTES ...: a block of byte constant values
 243 | - Bytecode: 0x26 {varuint count, [varuint length, bytes ...]}
 244 | - Stack: ... &rarr; ...
 245 | - prepare block of byte-array constants for use by bytec
 246 | 
 247 | `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.
 248 | 
 249 | ## bytec
 250 | 
 251 | - Syntax: `bytec I` where I: an index in the bytecblock
 252 | - Bytecode: 0x27 {uint8}
 253 | - Stack: ... &rarr; ..., []byte
 254 | - Ith constant from bytecblock
 255 | 
 256 | ## bytec_0
 257 | 
 258 | - Bytecode: 0x28
 259 | - Stack: ... &rarr; ..., []byte
 260 | - constant 0 from bytecblock
 261 | 
 262 | ## bytec_1
 263 | 
 264 | - Bytecode: 0x29
 265 | - Stack: ... &rarr; ..., []byte
 266 | - constant 1 from bytecblock
 267 | 
 268 | ## bytec_2
 269 | 
 270 | - Bytecode: 0x2a
 271 | - Stack: ... &rarr; ..., []byte
 272 | - constant 2 from bytecblock
 273 | 
 274 | ## bytec_3
 275 | 
 276 | - Bytecode: 0x2b
 277 | - Stack: ... &rarr; ..., []byte
 278 | - constant 3 from bytecblock
 279 | 
 280 | ## arg
 281 | 
 282 | - Syntax: `arg N` where N: an arg index
 283 | - Bytecode: 0x2c {uint8}
 284 | - Stack: ... &rarr; ..., []byte
 285 | - Nth LogicSig argument
 286 | - Mode: Signature
 287 | 
 288 | ## arg_0
 289 | 
 290 | - Bytecode: 0x2d
 291 | - Stack: ... &rarr; ..., []byte
 292 | - LogicSig argument 0
 293 | - Mode: Signature
 294 | 
 295 | ## arg_1
 296 | 
 297 | - Bytecode: 0x2e
 298 | - Stack: ... &rarr; ..., []byte
 299 | - LogicSig argument 1
 300 | - Mode: Signature
 301 | 
 302 | ## arg_2
 303 | 
 304 | - Bytecode: 0x2f
 305 | - Stack: ... &rarr; ..., []byte
 306 | - LogicSig argument 2
 307 | - Mode: Signature
 308 | 
 309 | ## arg_3
 310 | 
 311 | - Bytecode: 0x30
 312 | - Stack: ... &rarr; ..., []byte
 313 | - LogicSig argument 3
 314 | - Mode: Signature
 315 | 
 316 | ## txn
 317 | 
 318 | - Syntax: `txn F` where F: [txn](#field-group-txn)
 319 | - Bytecode: 0x31 {uint8}
 320 | - Stack: ... &rarr; ..., any
 321 | - field F of current transaction
 322 | 
 323 | ### txn
 324 | 
 325 | Fields (see [transaction reference](https://developer.algorand.org/docs/reference/transactions/))
 326 | 
 327 | | Index | Name | Type | In | Notes |
 328 | | - | ------ | -- | - | --------- |
 329 | | 0 | Sender | address |      | 32 byte address |
 330 | | 1 | Fee | uint64 |      | microalgos |
 331 | | 2 | FirstValid | uint64 |      | round number |
 332 | | 4 | LastValid | uint64 |      | round number |
 333 | | 5 | Note | []byte |      | Any data up to 1024 bytes |
 334 | | 6 | Lease | [32]byte |      | 32 byte lease value |
 335 | | 7 | Receiver | address |      | 32 byte address |
 336 | | 8 | Amount | uint64 |      | microalgos |
 337 | | 9 | CloseRemainderTo | address |      | 32 byte address |
 338 | | 10 | VotePK | [32]byte |      | 32 byte address |
 339 | | 11 | SelectionPK | [32]byte |      | 32 byte address |
 340 | | 12 | VoteFirst | uint64 |      | The first round that the participation key is valid. |
 341 | | 13 | VoteLast | uint64 |      | The last round that the participation key is valid. |
 342 | | 14 | VoteKeyDilution | uint64 |      | Dilution for the 2-level participation key |
 343 | | 15 | Type | []byte |      | Transaction type as bytes |
 344 | | 16 | TypeEnum | uint64 |      | Transaction type as integer |
 345 | | 17 | XferAsset | uint64 |      | Asset ID |
 346 | | 18 | AssetAmount | uint64 |      | value in Asset's units |
 347 | | 19 | AssetSender | address |      | 32 byte address. Source of assets if Sender is the Asset's Clawback address. |
 348 | | 20 | AssetReceiver | address |      | 32 byte address |
 349 | | 21 | AssetCloseTo | address |      | 32 byte address |
 350 | | 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 |
 351 | | 23 | TxID | [32]byte |      | The computed ID for this transaction. 32 bytes. |
 352 | | 24 | ApplicationID | uint64 | v2  | ApplicationID from ApplicationCall transaction |
 353 | | 25 | OnCompletion | uint64 | v2  | ApplicationCall transaction on completion action |
 354 | | 27 | NumAppArgs | uint64 | v2  | Number of ApplicationArgs |
 355 | | 29 | NumAccounts | uint64 | v2  | Number of Accounts |
 356 | | 30 | ApprovalProgram | []byte | v2  | Approval program |
 357 | | 31 | ClearStateProgram | []byte | v2  | Clear state program |
 358 | | 32 | RekeyTo | address | v2  | 32 byte Sender's new AuthAddr |
 359 | | 33 | ConfigAsset | uint64 | v2  | Asset ID in asset config transaction |
 360 | | 34 | ConfigAssetTotal | uint64 | v2  | Total number of units of this asset created |
 361 | | 35 | ConfigAssetDecimals | uint64 | v2  | Number of digits to display after the decimal place when displaying the asset |
 362 | | 36 | ConfigAssetDefaultFrozen | bool | v2  | Whether the asset's slots are frozen by default or not, 0 or 1 |
 363 | | 37 | ConfigAssetUnitName | []byte | v2  | Unit name of the asset |
 364 | | 38 | ConfigAssetName | []byte | v2  | The asset name |
 365 | | 39 | ConfigAssetURL | []byte | v2  | URL |
 366 | | 40 | ConfigAssetMetadataHash | [32]byte | v2  | 32 byte commitment to unspecified asset metadata |
 367 | | 41 | ConfigAssetManager | address | v2  | 32 byte address |
 368 | | 42 | ConfigAssetReserve | address | v2  | 32 byte address |
 369 | | 43 | ConfigAssetFreeze | address | v2  | 32 byte address |
 370 | | 44 | ConfigAssetClawback | address | v2  | 32 byte address |
 371 | | 45 | FreezeAsset | uint64 | v2  | Asset ID being frozen or un-frozen |
 372 | | 46 | FreezeAssetAccount | address | v2  | 32 byte address of the account whose asset slot is being frozen or un-frozen |
 373 | | 47 | FreezeAssetFrozen | bool | v2  | The new frozen value, 0 or 1 |
 374 | | 49 | NumAssets | uint64 | v3  | Number of Assets |
 375 | | 51 | NumApplications | uint64 | v3  | Number of Applications |
 376 | | 52 | GlobalNumUint | uint64 | v3  | Number of global state integers in ApplicationCall |
 377 | | 53 | GlobalNumByteSlice | uint64 | v3  | Number of global state byteslices in ApplicationCall |
 378 | | 54 | LocalNumUint | uint64 | v3  | Number of local state integers in ApplicationCall |
 379 | | 55 | LocalNumByteSlice | uint64 | v3  | Number of local state byteslices in ApplicationCall |
 380 | | 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. |
 381 | 
 382 | 
 383 | ## global
 384 | 
 385 | - Syntax: `global F` where F: [global](#field-group-global)
 386 | - Bytecode: 0x32 {uint8}
 387 | - Stack: ... &rarr; ..., any
 388 | - global field F
 389 | 
 390 | ### global
 391 | 
 392 | Fields
 393 | 
 394 | | Index | Name | Type | In | Notes |
 395 | | - | ------ | -- | - | --------- |
 396 | | 0 | MinTxnFee | uint64 |      | microalgos |
 397 | | 1 | MinBalance | uint64 |      | microalgos |
 398 | | 2 | MaxTxnLife | uint64 |      | rounds |
 399 | | 3 | ZeroAddress | address |      | 32 byte address of all zero bytes |
 400 | | 4 | GroupSize | uint64 |      | Number of transactions in this atomic transaction group. At least 1 |
 401 | | 5 | LogicSigVersion | uint64 | v2  | Maximum supported version |
 402 | | 6 | Round | uint64 | v2  | Current round number. Application mode only. |
 403 | | 7 | LatestTimestamp | uint64 | v2  | Last confirmed block UNIX timestamp. Fails if negative. Application mode only. |
 404 | | 8 | CurrentApplicationID | uint64 | v2  | ID of current application executing. Application mode only. |
 405 | | 9 | CreatorAddress | address | v3  | Address of the creator of the current application. Application mode only. |
 406 | 
 407 | 
 408 | ## gtxn
 409 | 
 410 | - Syntax: `gtxn T F` where T: transaction group index, F: [txn](#field-group-txn)
 411 | - Bytecode: 0x33 {uint8}, {uint8}
 412 | - Stack: ... &rarr; ..., any
 413 | - field F of the Tth transaction in the current group
 414 | 
 415 | for notes on transaction fields available, see `txn`. If this transaction is _i_ in the group, `gtxn i field` is equivalent to `txn field`.
 416 | 
 417 | ## load
 418 | 
 419 | - Syntax: `load I` where I: position in scratch space to load from
 420 | - Bytecode: 0x34 {uint8}
 421 | - Stack: ... &rarr; ..., any
 422 | - Ith scratch space value. All scratch spaces are 0 at program start.
 423 | 
 424 | ## store
 425 | 
 426 | - Syntax: `store I` where I: position in scratch space to store to
 427 | - Bytecode: 0x35 {uint8}
 428 | - Stack: ..., A &rarr; ...
 429 | - store A to the Ith scratch space
 430 | 
 431 | ## txna
 432 | 
 433 | - Syntax: `txna F I` where F: [txna](#field-group-txna), I: transaction field array index
 434 | - Bytecode: 0x36 {uint8}, {uint8}
 435 | - Stack: ... &rarr; ..., any
 436 | - Ith value of the array field F of the current transaction<br />`txna` can be called using `txn` with 2 immediates.
 437 | - Availability: v2
 438 | 
 439 | ### txna
 440 | 
 441 | Fields (see [transaction reference](https://developer.algorand.org/docs/reference/transactions/))
 442 | 
 443 | | Index | Name | Type | In | Notes |
 444 | | - | ------ | -- | - | --------- |
 445 | | 26 | ApplicationArgs | []byte | v2  | Arguments passed to the application in the ApplicationCall transaction |
 446 | | 28 | Accounts | address | v2  | Accounts listed in the ApplicationCall transaction |
 447 | | 48 | Assets | uint64 | v3  | Foreign Assets listed in the ApplicationCall transaction |
 448 | | 50 | Applications | uint64 | v3  | Foreign Apps listed in the ApplicationCall transaction |
 449 | 
 450 | 
 451 | ## gtxna
 452 | 
 453 | - Syntax: `gtxna T F I` where T: transaction group index, F: [txna](#field-group-txna), I: transaction field array index
 454 | - Bytecode: 0x37 {uint8}, {uint8}, {uint8}
 455 | - Stack: ... &rarr; ..., any
 456 | - 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.
 457 | - Availability: v2
 458 | 
 459 | ## gtxns
 460 | 
 461 | - Syntax: `gtxns F` where F: [txn](#field-group-txn)
 462 | - Bytecode: 0x38 {uint8}
 463 | - Stack: ..., A: uint64 &rarr; ..., any
 464 | - field F of the Ath transaction in the current group
 465 | - Availability: v3
 466 | 
 467 | 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.
 468 | 
 469 | ## gtxnsa
 470 | 
 471 | - Syntax: `gtxnsa F I` where F: [txna](#field-group-txna), I: transaction field array index
 472 | - Bytecode: 0x39 {uint8}, {uint8}
 473 | - Stack: ..., A: uint64 &rarr; ..., any
 474 | - 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.
 475 | - Availability: v3
 476 | 
 477 | ## gload
 478 | 
 479 | - Syntax: `gload T I` where T: transaction group index, I: position in scratch space to load from
 480 | - Bytecode: 0x3a {uint8}, {uint8}
 481 | - Stack: ... &rarr; ..., any
 482 | - Ith scratch space value of the Tth transaction in the current group
 483 | - Availability: v4
 484 | - Mode: Application
 485 | 
 486 | `gload` fails unless the requested transaction is an ApplicationCall and T < GroupIndex.
 487 | 
 488 | ## gloads
 489 | 
 490 | - Syntax: `gloads I` where I: position in scratch space to load from
 491 | - Bytecode: 0x3b {uint8}
 492 | - Stack: ..., A: uint64 &rarr; ..., any
 493 | - Ith scratch space value of the Ath transaction in the current group
 494 | - Availability: v4
 495 | - Mode: Application
 496 | 
 497 | `gloads` fails unless the requested transaction is an ApplicationCall and A < GroupIndex.
 498 | 
 499 | ## gaid
 500 | 
 501 | - Syntax: `gaid T` where T: transaction group index
 502 | - Bytecode: 0x3c {uint8}
 503 | - Stack: ... &rarr; ..., uint64
 504 | - ID of the asset or application created in the Tth transaction of the current group
 505 | - Availability: v4
 506 | - Mode: Application
 507 | 
 508 | `gaid` fails unless the requested transaction created an asset or application and T < GroupIndex.
 509 | 
 510 | ## gaids
 511 | 
 512 | - Bytecode: 0x3d
 513 | - Stack: ..., A: uint64 &rarr; ..., uint64
 514 | - ID of the asset or application created in the Ath transaction of the current group
 515 | - Availability: v4
 516 | - Mode: Application
 517 | 
 518 | `gaids` fails unless the requested transaction created an asset or application and A < GroupIndex.
 519 | 
 520 | ## bnz
 521 | 
 522 | - Syntax: `bnz TARGET` where TARGET: branch offset
 523 | - Bytecode: 0x40 {int16 (big-endian)}
 524 | - Stack: ..., A: uint64 &rarr; ...
 525 | - branch to TARGET if value A is not zero
 526 | 
 527 | 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.
 528 | 
 529 | 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.)
 530 | 
 531 | ## bz
 532 | 
 533 | - Syntax: `bz TARGET` where TARGET: branch offset
 534 | - Bytecode: 0x41 {int16 (big-endian)}
 535 | - Stack: ..., A: uint64 &rarr; ...
 536 | - branch to TARGET if value A is zero
 537 | - Availability: v2
 538 | 
 539 | See `bnz` for details on how branches work. `bz` inverts the behavior of `bnz`.
 540 | 
 541 | ## b
 542 | 
 543 | - Syntax: `b TARGET` where TARGET: branch offset
 544 | - Bytecode: 0x42 {int16 (big-endian)}
 545 | - Stack: ... &rarr; ...
 546 | - branch unconditionally to TARGET
 547 | - Availability: v2
 548 | 
 549 | See `bnz` for details on how branches work. `b` always jumps to the offset.
 550 | 
 551 | ## return
 552 | 
 553 | - Bytecode: 0x43
 554 | - Stack: ..., A: uint64 &rarr; _exits_
 555 | - use A as success value; end
 556 | - Availability: v2
 557 | 
 558 | ## assert
 559 | 
 560 | - Bytecode: 0x44
 561 | - Stack: ..., A: uint64 &rarr; ...
 562 | - immediately fail unless A is a non-zero number
 563 | - Availability: v3
 564 | 
 565 | ## pop
 566 | 
 567 | - Bytecode: 0x48
 568 | - Stack: ..., A &rarr; ...
 569 | - discard A
 570 | 
 571 | ## dup
 572 | 
 573 | - Bytecode: 0x49
 574 | - Stack: ..., A &rarr; ..., A, A
 575 | - duplicate A
 576 | 
 577 | ## dup2
 578 | 
 579 | - Bytecode: 0x4a
 580 | - Stack: ..., A, B &rarr; ..., A, B, A, B
 581 | - duplicate A and B
 582 | - Availability: v2
 583 | 
 584 | ## dig
 585 | 
 586 | - Syntax: `dig N` where N: depth
 587 | - Bytecode: 0x4b {uint8}
 588 | - Stack: ..., A, [N items] &rarr; ..., A, [N items], A
 589 | - Nth value from the top of the stack. dig 0 is equivalent to dup
 590 | - Availability: v3
 591 | 
 592 | ## swap
 593 | 
 594 | - Bytecode: 0x4c
 595 | - Stack: ..., A, B &rarr; ..., B, A
 596 | - swaps A and B on stack
 597 | - Availability: v3
 598 | 
 599 | ## select
 600 | 
 601 | - Bytecode: 0x4d
 602 | - Stack: ..., A, B, C: uint64 &rarr; ..., A or B
 603 | - selects one of two values based on top-of-stack: B if C != 0, else A
 604 | - Availability: v3
 605 | 
 606 | ## concat
 607 | 
 608 | - Bytecode: 0x50
 609 | - Stack: ..., A: []byte, B: []byte &rarr; ..., []byte
 610 | - join A and B
 611 | - Availability: v2
 612 | 
 613 | `concat` fails if the result would be greater than 4096 bytes.
 614 | 
 615 | ## substring
 616 | 
 617 | - Syntax: `substring S E` where S: start position, E: end position
 618 | - Bytecode: 0x51 {uint8}, {uint8}
 619 | - Stack: ..., A: []byte &rarr; ..., []byte
 620 | - 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
 621 | - Availability: v2
 622 | 
 623 | ## substring3
 624 | 
 625 | - Bytecode: 0x52
 626 | - Stack: ..., A: []byte, B: uint64, C: uint64 &rarr; ..., []byte
 627 | - 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
 628 | - Availability: v2
 629 | 
 630 | ## getbit
 631 | 
 632 | - Bytecode: 0x53
 633 | - Stack: ..., A, B: uint64 &rarr; ..., uint64
 634 | - 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
 635 | - Availability: v3
 636 | 
 637 | see explanation of bit ordering in setbit
 638 | 
 639 | ## setbit
 640 | 
 641 | - Bytecode: 0x54
 642 | - Stack: ..., A, B: uint64, C: uint64 &rarr; ..., any
 643 | - 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
 644 | - Availability: v3
 645 | 
 646 | 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.
 647 | 
 648 | ## getbyte
 649 | 
 650 | - Bytecode: 0x55
 651 | - Stack: ..., A: []byte, B: uint64 &rarr; ..., uint64
 652 | - Bth byte of A, as an integer. If B is greater than or equal to the array length, the program fails
 653 | - Availability: v3
 654 | 
 655 | ## setbyte
 656 | 
 657 | - Bytecode: 0x56
 658 | - Stack: ..., A: []byte, B: uint64, C: uint64 &rarr; ..., []byte
 659 | - 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
 660 | - Availability: v3
 661 | 
 662 | ## balance
 663 | 
 664 | - Bytecode: 0x60
 665 | - Stack: ..., A &rarr; ..., uint64
 666 | - 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`
 667 | - Availability: v2
 668 | - Mode: Application
 669 | 
 670 | params: Txn.Accounts offset (or, since v4, an _available_ account address), _available_ application id (or, since v4, a Txn.ForeignApps offset). Return: value.
 671 | 
 672 | ## app_opted_in
 673 | 
 674 | - Bytecode: 0x61
 675 | - Stack: ..., A, B: uint64 &rarr; ..., bool
 676 | - 1 if account A is opted in to application B, else 0
 677 | - Availability: v2
 678 | - Mode: Application
 679 | 
 680 | 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.
 681 | 
 682 | ## app_local_get
 683 | 
 684 | - Bytecode: 0x62
 685 | - Stack: ..., A, B: stateKey &rarr; ..., any
 686 | - local state of the key B in the current application in account A
 687 | - Availability: v2
 688 | - Mode: Application
 689 | 
 690 | 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.
 691 | 
 692 | ## app_local_get_ex
 693 | 
 694 | - Bytecode: 0x63
 695 | - Stack: ..., A, B: uint64, C: stateKey &rarr; ..., X: any, Y: bool
 696 | - X is the local state of application B, key C in account A. Y is 1 if key existed, else 0
 697 | - Availability: v2
 698 | - Mode: Application
 699 | 
 700 | 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.
 701 | 
 702 | ## app_global_get
 703 | 
 704 | - Bytecode: 0x64
 705 | - Stack: ..., A: stateKey &rarr; ..., any
 706 | - global state of the key A in the current application
 707 | - Availability: v2
 708 | - Mode: Application
 709 | 
 710 | params: state key. Return: value. The value is zero (of type uint64) if the key does not exist.
 711 | 
 712 | ## app_global_get_ex
 713 | 
 714 | - Bytecode: 0x65
 715 | - Stack: ..., A: uint64, B: stateKey &rarr; ..., X: any, Y: bool
 716 | - X is the global state of application A, key B. Y is 1 if key existed, else 0
 717 | - Availability: v2
 718 | - Mode: Application
 719 | 
 720 | 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.
 721 | 
 722 | ## app_local_put
 723 | 
 724 | - Bytecode: 0x66
 725 | - Stack: ..., A, B: stateKey, C &rarr; ...
 726 | - write C to key B in account A's local state of the current application
 727 | - Availability: v2
 728 | - Mode: Application
 729 | 
 730 | params: Txn.Accounts offset (or, since v4, an _available_ account address), state key, value.
 731 | 
 732 | ## app_global_put
 733 | 
 734 | - Bytecode: 0x67
 735 | - Stack: ..., A: stateKey, B &rarr; ...
 736 | - write B to key A in the global state of the current application
 737 | - Availability: v2
 738 | - Mode: Application
 739 | 
 740 | ## app_local_del
 741 | 
 742 | - Bytecode: 0x68
 743 | - Stack: ..., A, B: stateKey &rarr; ...
 744 | - delete key B from account A's local state of the current application
 745 | - Availability: v2
 746 | - Mode: Application
 747 | 
 748 | params: Txn.Accounts offset (or, since v4, an _available_ account address), state key.
 749 | 
 750 | 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.)
 751 | 
 752 | ## app_global_del
 753 | 
 754 | - Bytecode: 0x69
 755 | - Stack: ..., A: stateKey &rarr; ...
 756 | - delete key A from the global state of the current application
 757 | - Availability: v2
 758 | - Mode: Application
 759 | 
 760 | params: state key.
 761 | 
 762 | 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.)
 763 | 
 764 | ## asset_holding_get
 765 | 
 766 | - Syntax: `asset_holding_get F` where F: [asset_holding](#field-group-asset_holding)
 767 | - Bytecode: 0x70 {uint8}
 768 | - Stack: ..., A, B: uint64 &rarr; ..., X: any, Y: bool
 769 | - X is field F from account A's holding of asset B. Y is 1 if A is opted into B, else 0
 770 | - Availability: v2
 771 | - Mode: Application
 772 | 
 773 | ### asset_holding
 774 | 
 775 | Fields
 776 | 
 777 | | Index | Name | Type | Notes |
 778 | | - | ------ | -- | --------- |
 779 | | 0 | AssetBalance | uint64 | Amount of the asset unit held by this account |
 780 | | 1 | AssetFrozen | bool | Is the asset frozen or not |
 781 | 
 782 | 
 783 | 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.
 784 | 
 785 | ## asset_params_get
 786 | 
 787 | - Syntax: `asset_params_get F` where F: [asset_params](#field-group-asset_params)
 788 | - Bytecode: 0x71 {uint8}
 789 | - Stack: ..., A: uint64 &rarr; ..., X: any, Y: bool
 790 | - X is field F from asset A. Y is 1 if A exists, else 0
 791 | - Availability: v2
 792 | - Mode: Application
 793 | 
 794 | ### asset_params
 795 | 
 796 | Fields
 797 | 
 798 | | Index | Name | Type | Notes |
 799 | | - | ------ | -- | --------- |
 800 | | 0 | AssetTotal | uint64 | Total number of units of this asset |
 801 | | 1 | AssetDecimals | uint64 | See AssetParams.Decimals |
 802 | | 2 | AssetDefaultFrozen | bool | Frozen by default or not |
 803 | | 3 | AssetUnitName | []byte | Asset unit name |
 804 | | 4 | AssetName | []byte | Asset name |
 805 | | 5 | AssetURL | []byte | URL with additional info about the asset |
 806 | | 6 | AssetMetadataHash | [32]byte | Arbitrary commitment |
 807 | | 7 | AssetManager | address | Manager address |
 808 | | 8 | AssetReserve | address | Reserve address |
 809 | | 9 | AssetFreeze | address | Freeze address |
 810 | | 10 | AssetClawback | address | Clawback address |
 811 | 
 812 | 
 813 | params: Txn.ForeignAssets offset (or, since v4, an _available_ asset id. Return: did_exist flag (1 if the asset existed and 0 otherwise), value.
 814 | 
 815 | ## min_balance
 816 | 
 817 | - Bytecode: 0x78
 818 | - Stack: ..., A &rarr; ..., uint64
 819 | - 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.
 820 | - Availability: v3
 821 | - Mode: Application
 822 | 
 823 | params: Txn.Accounts offset (or, since v4, an _available_ account address), _available_ application id (or, since v4, a Txn.ForeignApps offset). Return: value.
 824 | 
 825 | ## pushbytes
 826 | 
 827 | - Syntax: `pushbytes BYTES` where BYTES: a byte constant
 828 | - Bytecode: 0x80 {varuint length, bytes}
 829 | - Stack: ... &rarr; ..., []byte
 830 | - immediate BYTES
 831 | - Availability: v3
 832 | 
 833 | pushbytes args are not added to the bytecblock during assembly processes
 834 | 
 835 | ## pushint
 836 | 
 837 | - Syntax: `pushint UINT` where UINT: an int constant
 838 | - Bytecode: 0x81 {varuint}
 839 | - Stack: ... &rarr; ..., uint64
 840 | - immediate UINT
 841 | - Availability: v3
 842 | 
 843 | pushint args are not added to the intcblock during assembly processes
 844 | 
 845 | ## callsub
 846 | 
 847 | - Syntax: `callsub TARGET` where TARGET: branch offset
 848 | - Bytecode: 0x88 {int16 (big-endian)}
 849 | - Stack: ... &rarr; ...
 850 | - branch unconditionally to TARGET, saving the next instruction on the call stack
 851 | - Availability: v4
 852 | 
 853 | The call stack is separate from the data stack. Only `callsub`, `retsub`, and `proto` manipulate it.
 854 | 
 855 | ## retsub
 856 | 
 857 | - Bytecode: 0x89
 858 | - Stack: ... &rarr; ...
 859 | - pop the top instruction from the call stack and branch to it
 860 | - Availability: v4
 861 | 
 862 | 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.
 863 | 
 864 | ## shl
 865 | 
 866 | - Bytecode: 0x90
 867 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 868 | - A times 2^B, modulo 2^64
 869 | - Availability: v4
 870 | 
 871 | ## shr
 872 | 
 873 | - Bytecode: 0x91
 874 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 875 | - A divided by 2^B
 876 | - Availability: v4
 877 | 
 878 | ## sqrt
 879 | 
 880 | - Bytecode: 0x92
 881 | - Stack: ..., A: uint64 &rarr; ..., uint64
 882 | - The largest integer I such that I^2 <= A
 883 | - **Cost**: 4
 884 | - Availability: v4
 885 | 
 886 | ## bitlen
 887 | 
 888 | - Bytecode: 0x93
 889 | - Stack: ..., A &rarr; ..., uint64
 890 | - 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
 891 | - Availability: v4
 892 | 
 893 | bitlen interprets arrays as big-endian integers, unlike setbit/getbit
 894 | 
 895 | ## exp
 896 | 
 897 | - Bytecode: 0x94
 898 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., uint64
 899 | - A raised to the Bth power. Fail if A == B == 0 and on overflow
 900 | - Availability: v4
 901 | 
 902 | ## expw
 903 | 
 904 | - Bytecode: 0x95
 905 | - Stack: ..., A: uint64, B: uint64 &rarr; ..., X: uint64, Y: uint64
 906 | - 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
 907 | - **Cost**: 10
 908 | - Availability: v4
 909 | 
 910 | ## b+
 911 | 
 912 | - Bytecode: 0xa0
 913 | - Stack: ..., A: bigint, B: bigint &rarr; ..., []byte
 914 | - A plus B. A and B are interpreted as big-endian unsigned integers
 915 | - **Cost**: 10
 916 | - Availability: v4
 917 | 
 918 | ## b-
 919 | 
 920 | - Bytecode: 0xa1
 921 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bigint
 922 | - A minus B. A and B are interpreted as big-endian unsigned integers. Fail on underflow.
 923 | - **Cost**: 10
 924 | - Availability: v4
 925 | 
 926 | ## b/
 927 | 
 928 | - Bytecode: 0xa2
 929 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bigint
 930 | - A divided by B (truncated division). A and B are interpreted as big-endian unsigned integers. Fail if B is zero.
 931 | - **Cost**: 20
 932 | - Availability: v4
 933 | 
 934 | ## b*
 935 | 
 936 | - Bytecode: 0xa3
 937 | - Stack: ..., A: bigint, B: bigint &rarr; ..., []byte
 938 | - A times B. A and B are interpreted as big-endian unsigned integers.
 939 | - **Cost**: 20
 940 | - Availability: v4
 941 | 
 942 | ## b<
 943 | 
 944 | - Bytecode: 0xa4
 945 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
 946 | - 1 if A is less than B, else 0. A and B are interpreted as big-endian unsigned integers
 947 | - Availability: v4
 948 | 
 949 | ## b>
 950 | 
 951 | - Bytecode: 0xa5
 952 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
 953 | - 1 if A is greater than B, else 0. A and B are interpreted as big-endian unsigned integers
 954 | - Availability: v4
 955 | 
 956 | ## b<=
 957 | 
 958 | - Bytecode: 0xa6
 959 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
 960 | - 1 if A is less than or equal to B, else 0. A and B are interpreted as big-endian unsigned integers
 961 | - Availability: v4
 962 | 
 963 | ## b>=
 964 | 
 965 | - Bytecode: 0xa7
 966 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
 967 | - 1 if A is greater than or equal to B, else 0. A and B are interpreted as big-endian unsigned integers
 968 | - Availability: v4
 969 | 
 970 | ## b==
 971 | 
 972 | - Bytecode: 0xa8
 973 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
 974 | - 1 if A is equal to B, else 0. A and B are interpreted as big-endian unsigned integers
 975 | - Availability: v4
 976 | 
 977 | ## b!=
 978 | 
 979 | - Bytecode: 0xa9
 980 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bool
 981 | - 0 if A is equal to B, else 1. A and B are interpreted as big-endian unsigned integers
 982 | - Availability: v4
 983 | 
 984 | ## b%
 985 | 
 986 | - Bytecode: 0xaa
 987 | - Stack: ..., A: bigint, B: bigint &rarr; ..., bigint
 988 | - A modulo B. A and B are interpreted as big-endian unsigned integers. Fail if B is zero.
 989 | - **Cost**: 20
 990 | - Availability: v4
 991 | 
 992 | ## b|
 993 | 
 994 | - Bytecode: 0xab
 995 | - Stack: ..., A: []byte, B: []byte &rarr; ..., []byte
 996 | - A bitwise-or B. A and B are zero-left extended to the greater of their lengths
 997 | - **Cost**: 6
 998 | - Availability: v4
 999 | 
1000 | ## b&
1001 | 
1002 | - Bytecode: 0xac
1003 | - Stack: ..., A: []byte, B: []byte &rarr; ..., []byte
1004 | - A bitwise-and B. A and B are zero-left extended to the greater of their lengths
1005 | - **Cost**: 6
1006 | - Availability: v4
1007 | 
1008 | ## b^
1009 | 
1010 | - Bytecode: 0xad
1011 | - Stack: ..., A: []byte, B: []byte &rarr; ..., []byte
1012 | - A bitwise-xor B. A and B are zero-left extended to the greater of their lengths
1013 | - **Cost**: 6
1014 | - Availability: v4
1015 | 
1016 | ## b~
1017 | 
1018 | - Bytecode: 0xae
1019 | - Stack: ..., A: []byte &rarr; ..., []byte
1020 | - A with all bits inverted
1021 | - **Cost**: 4
1022 | - Availability: v4
1023 | 
1024 | ## bzero
1025 | 
1026 | - Bytecode: 0xaf
1027 | - Stack: ..., A: uint64 &rarr; ..., []byte
1028 | - zero filled byte-array of length A
1029 | - Availability: v4
1030 | 
```
Page 58/93FirstPrevNextLast