#
tokens: 49870/50000 18/942 files (page 17/93)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 17 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/SDKs:javascript:classes:indexerModels.BlockRewards.md:
--------------------------------------------------------------------------------

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / BlockRewards
  2 | 
  3 | # Class: BlockRewards
  4 | 
  5 | [indexerModels](../modules/indexerModels.md).BlockRewards
  6 | 
  7 | Fields relating to rewards,
  8 | 
  9 | ## Hierarchy
 10 | 
 11 | - `default`
 12 | 
 13 |   ↳ **`BlockRewards`**
 14 | 
 15 | ## Table of contents
 16 | 
 17 | ### Constructors
 18 | 
 19 | - [constructor](indexerModels.BlockRewards.md#constructor)
 20 | 
 21 | ### Properties
 22 | 
 23 | - [attribute\_map](indexerModels.BlockRewards.md#attribute_map)
 24 | - [feeSink](indexerModels.BlockRewards.md#feesink)
 25 | - [rewardsCalculationRound](indexerModels.BlockRewards.md#rewardscalculationround)
 26 | - [rewardsLevel](indexerModels.BlockRewards.md#rewardslevel)
 27 | - [rewardsPool](indexerModels.BlockRewards.md#rewardspool)
 28 | - [rewardsRate](indexerModels.BlockRewards.md#rewardsrate)
 29 | - [rewardsResidue](indexerModels.BlockRewards.md#rewardsresidue)
 30 | 
 31 | ### Methods
 32 | 
 33 | - [get\_obj\_for\_encoding](indexerModels.BlockRewards.md#get_obj_for_encoding)
 34 | - [from\_obj\_for\_encoding](indexerModels.BlockRewards.md#from_obj_for_encoding)
 35 | 
 36 | ## Constructors
 37 | 
 38 | ### constructor
 39 | 
 40 | • **new BlockRewards**(`«destructured»`)
 41 | 
 42 | Creates a new `BlockRewards` object.
 43 | 
 44 | #### Parameters
 45 | 
 46 | | Name | Type |
 47 | | :------ | :------ |
 48 | | `«destructured»` | `Object` |
 49 | | › `feeSink` | `string` |
 50 | | › `rewardsCalculationRound` | `number` \| `bigint` |
 51 | | › `rewardsLevel` | `number` \| `bigint` |
 52 | | › `rewardsPool` | `string` |
 53 | | › `rewardsRate` | `number` \| `bigint` |
 54 | | › `rewardsResidue` | `number` \| `bigint` |
 55 | 
 56 | #### Overrides
 57 | 
 58 | BaseModel.constructor
 59 | 
 60 | #### Defined in
 61 | 
 62 | client/v2/indexer/models/types.ts:2523
 63 | 
 64 | ## Properties
 65 | 
 66 | ### attribute\_map
 67 | 
 68 | • **attribute\_map**: `Record`\<`string`, `string`\>
 69 | 
 70 | #### Inherited from
 71 | 
 72 | BaseModel.attribute\_map
 73 | 
 74 | #### Defined in
 75 | 
 76 | client/v2/basemodel.ts:56
 77 | 
 78 | ___
 79 | 
 80 | ### feeSink
 81 | 
 82 | • **feeSink**: `string`
 83 | 
 84 | (fees) accepts transaction fees, it can only spend to the incentive pool.
 85 | 
 86 | #### Defined in
 87 | 
 88 | client/v2/indexer/models/types.ts:2477
 89 | 
 90 | ___
 91 | 
 92 | ### rewardsCalculationRound
 93 | 
 94 | • **rewardsCalculationRound**: `number` \| `bigint`
 95 | 
 96 | (rwcalr) number of leftover MicroAlgos after the distribution of rewards-rate
 97 | MicroAlgos for every reward unit in the next round.
 98 | 
 99 | #### Defined in
100 | 
101 | client/v2/indexer/models/types.ts:2483
102 | 
103 | ___
104 | 
105 | ### rewardsLevel
106 | 
107 | • **rewardsLevel**: `number` \| `bigint`
108 | 
109 | (earn) How many rewards, in MicroAlgos, have been distributed to each RewardUnit
110 | of MicroAlgos since genesis.
111 | 
112 | #### Defined in
113 | 
114 | client/v2/indexer/models/types.ts:2489
115 | 
116 | ___
117 | 
118 | ### rewardsPool
119 | 
120 | • **rewardsPool**: `string`
121 | 
122 | (rwd) accepts periodic injections from the fee-sink and continually
123 | redistributes them as rewards.
124 | 
125 | #### Defined in
126 | 
127 | client/v2/indexer/models/types.ts:2495
128 | 
129 | ___
130 | 
131 | ### rewardsRate
132 | 
133 | • **rewardsRate**: `number` \| `bigint`
134 | 
135 | (rate) Number of new MicroAlgos added to the participation stake from rewards at
136 | the next round.
137 | 
138 | #### Defined in
139 | 
140 | client/v2/indexer/models/types.ts:2501
141 | 
142 | ___
143 | 
144 | ### rewardsResidue
145 | 
146 | • **rewardsResidue**: `number` \| `bigint`
147 | 
148 | (frac) Number of leftover MicroAlgos after the distribution of
149 | RewardsRate/rewardUnits MicroAlgos for every reward unit in the next round.
150 | 
151 | #### Defined in
152 | 
153 | client/v2/indexer/models/types.ts:2507
154 | 
155 | ## Methods
156 | 
157 | ### get\_obj\_for\_encoding
158 | 
159 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
160 | 
161 | Get an object ready for encoding to either JSON or msgpack.
162 | 
163 | #### Parameters
164 | 
165 | | Name | Type | Default value | Description |
166 | | :------ | :------ | :------ | :------ |
167 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
168 | 
169 | #### Returns
170 | 
171 | `Record`\<`string`, `any`\>
172 | 
173 | #### Inherited from
174 | 
175 | BaseModel.get\_obj\_for\_encoding
176 | 
177 | #### Defined in
178 | 
179 | client/v2/basemodel.ts:65
180 | 
181 | ___
182 | 
183 | ### from\_obj\_for\_encoding
184 | 
185 | ▸ `Static` **from_obj_for_encoding**(`data`): [`BlockRewards`](indexerModels.BlockRewards.md)
186 | 
187 | #### Parameters
188 | 
189 | | Name | Type |
190 | | :------ | :------ |
191 | | `data` | `Record`\<`string`, `any`\> |
192 | 
193 | #### Returns
194 | 
195 | [`BlockRewards`](indexerModels.BlockRewards.md)
196 | 
197 | #### Defined in
198 | 
199 | client/v2/indexer/models/types.ts:2557
200 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:tasks:sign.md:
--------------------------------------------------------------------------------

```markdown
 1 | # AlgoKit Task Sign
 2 | 
 3 | The AlgoKit Sign feature allows you to sign Algorand transaction(s) using the AlgoKit CLI. This feature supports signing single or multiple transactions, either provided directly as a base64 encoded string or from a binary file.
 4 | 
 5 | ## Usage
 6 | 
 7 | Available commands and possible usage as follows:
 8 | 
 9 | ```bash
10 | $ ~ algokit task sign
11 | Usage: algokit task sign [OPTIONS]
12 | 
13 | Sign goal clerk compatible Algorand transaction(s).
14 | 
15 | Options:
16 | -a, --account TEXT Address or alias of the signer account. [required]
17 | -f, --file PATH Single or multiple message pack encoded transactions from binary file to sign.
18 | -t, --transaction TEXT Single base64 encoded transaction object to sign.
19 | -o, --output PATH The output file path to store signed transaction(s).
20 | --force Force signing without confirmation.
21 | -h, --help Show this message and exit.
22 | ```
23 | 
24 | ## Options
25 | 
26 | - `--account, -a TEXT`: Specifies the address or alias of the signer account. This option is required.
27 | - `--file, -f PATH`: Specifies the path to a binary file containing single or multiple message pack encoded transactions to sign. Mutually exclusive with `--transaction` option.
28 | - `--transaction, -t TEXT`: Specifies a single base64 encoded transaction object to sign. Mutually exclusive with `--file` option.
29 | - `--output, -o PATH`: Specifies the output file path to store signed transaction(s).
30 | - `--force`: If specified, it allows signing without interactive confirmation prompt.
31 | 
32 | > Please note, `--transaction` flag only supports signing a single transaction. If you want to sign multiple transactions, you can use the `--file` flag to specify a binary file containing multiple transactions.
33 | 
34 | ## Example
35 | 
36 | To sign a transaction, you can use the `sign` command as follows:
37 | 
38 | ```bash
39 | $ algokit task sign --account {YOUR_ACCOUNT_ALIAS OR YOUR_ADDRESS} --file {PATH_TO_BINARY_FILE_CONTAINING_TRANSACTIONS}
40 | ```
41 | 
42 | This will prompt you to confirm the transaction details before signing. If you want to bypass the confirmation, you can use the `--force` flag:
43 | 
44 | ```bash
45 | $ algokit task sign --account {YOUR_ACCOUNT_ALIAS OR YOUR_ADDRESS} --transaction {YOUR_BASE64_ENCODED_TRANSACTION} --force
46 | ```
47 | 
48 | If the transaction is successfully signed, the signed transaction will be output to the console in a JSON format. If you want to write the signed transaction to a file, you can use the `--output` option:
49 | 
50 | ```bash
51 | $ algokit task sign --account {YOUR_ACCOUNT_ALIAS OR YOUR_ADDRESS} --transaction {YOUR_BASE64_ENCODED_TRANSACTION} --output /path/to/output/file
52 | ```
53 | 
54 | This will write the signed transaction to the specified file.
55 | 
56 | ## Goal Compatibility
57 | 
58 | Please note, at the moment this feature only supports [`goal clerk`](https://developer.algorand.org/docs/clis/goal/clerk/clerk/) compatible transaction objects.
59 | 
60 | When `--output` option is not specified, the signed transaction(s) will be output to the console in a following JSON format:
61 | 
62 | ```
63 | [
64 |   {transaction_id: "TRANSACTION_ID", content: "BASE64_ENCODED_SIGNED_TRANSACTION"},
65 | ]
66 | ```
67 | 
68 | On the other hand, when `--output` option is specified, the signed transaction(s) will be stored to a file as a message pack encoded binary file.
69 | 
70 | ### Encoding transactins for signing
71 | 
72 | Algorand provides a set of options in [py-algorand-sdk](https://github.com/algorand/py-algorand-sdk) and [js-algorand-sdk](https://github.com/algorand/js-algorand-sdk) to encode transactions for signing.
73 | 
74 | Encoding simple txn object in python:
75 | 
76 | ```py
77 | # Encoding single transaction as a base64 encoded string
78 | algosdk.encoding.msgpack_encode({"txn": {YOUR_TXN_OBJECT}.dictify()}) # Resulting string can be passed directy to algokit task sign with --transaction flag
79 | 
80 | # Encoding multiple transactions as a message pack encoded binary file
81 | algosdk.transaction.write_to_file([{YOUR_TXN_OBJECT}], "some_file.txn") # Resulting file path can be passed directly to algokit sign with --file flag
82 | ```
83 | 
84 | Encoding simple txn object in javascript:
85 | 
86 | ```ts
87 | Buffer.from(algosdk.encodeObj({ txn: txn.get_obj_for_encoding() })).toString(
88 |   "base64"
89 | ); // Resulting string can be passed directy to algokit task sign with --transaction flag
90 | ```
91 | 
92 | ## Further Reading
93 | 
94 | For in-depth details, visit the [sign section](../../cli/index.md#sign) in the AlgoKit CLI reference documentation.
95 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.AccountParticipation.md:
--------------------------------------------------------------------------------

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / AccountParticipation
  2 | 
  3 | # Class: AccountParticipation
  4 | 
  5 | [modelsv2](../modules/modelsv2.md).AccountParticipation
  6 | 
  7 | AccountParticipation describes the parameters used by this account in consensus
  8 | protocol.
  9 | 
 10 | ## Hierarchy
 11 | 
 12 | - `default`
 13 | 
 14 |   ↳ **`AccountParticipation`**
 15 | 
 16 | ## Table of contents
 17 | 
 18 | ### Constructors
 19 | 
 20 | - [constructor](modelsv2.AccountParticipation.md#constructor)
 21 | 
 22 | ### Properties
 23 | 
 24 | - [attribute\_map](modelsv2.AccountParticipation.md#attribute_map)
 25 | - [selectionParticipationKey](modelsv2.AccountParticipation.md#selectionparticipationkey)
 26 | - [stateProofKey](modelsv2.AccountParticipation.md#stateproofkey)
 27 | - [voteFirstValid](modelsv2.AccountParticipation.md#votefirstvalid)
 28 | - [voteKeyDilution](modelsv2.AccountParticipation.md#votekeydilution)
 29 | - [voteLastValid](modelsv2.AccountParticipation.md#votelastvalid)
 30 | - [voteParticipationKey](modelsv2.AccountParticipation.md#voteparticipationkey)
 31 | 
 32 | ### Methods
 33 | 
 34 | - [get\_obj\_for\_encoding](modelsv2.AccountParticipation.md#get_obj_for_encoding)
 35 | - [from\_obj\_for\_encoding](modelsv2.AccountParticipation.md#from_obj_for_encoding)
 36 | 
 37 | ## Constructors
 38 | 
 39 | ### constructor
 40 | 
 41 | • **new AccountParticipation**(`«destructured»`)
 42 | 
 43 | Creates a new `AccountParticipation` object.
 44 | 
 45 | #### Parameters
 46 | 
 47 | | Name | Type |
 48 | | :------ | :------ |
 49 | | `«destructured»` | `Object` |
 50 | | › `selectionParticipationKey` | `string` \| `Uint8Array` |
 51 | | › `stateProofKey?` | `string` \| `Uint8Array` |
 52 | | › `voteFirstValid` | `number` \| `bigint` |
 53 | | › `voteKeyDilution` | `number` \| `bigint` |
 54 | | › `voteLastValid` | `number` \| `bigint` |
 55 | | › `voteParticipationKey` | `string` \| `Uint8Array` |
 56 | 
 57 | #### Overrides
 58 | 
 59 | BaseModel.constructor
 60 | 
 61 | #### Defined in
 62 | 
 63 | client/v2/algod/models/types.ts:769
 64 | 
 65 | ## Properties
 66 | 
 67 | ### attribute\_map
 68 | 
 69 | • **attribute\_map**: `Record`\<`string`, `string`\>
 70 | 
 71 | #### Inherited from
 72 | 
 73 | BaseModel.attribute\_map
 74 | 
 75 | #### Defined in
 76 | 
 77 | client/v2/basemodel.ts:56
 78 | 
 79 | ___
 80 | 
 81 | ### selectionParticipationKey
 82 | 
 83 | • **selectionParticipationKey**: `Uint8Array`
 84 | 
 85 | (sel) Selection public key (if any) currently registered for this round.
 86 | 
 87 | #### Defined in
 88 | 
 89 | client/v2/algod/models/types.ts:731
 90 | 
 91 | ___
 92 | 
 93 | ### stateProofKey
 94 | 
 95 | • `Optional` **stateProofKey**: `Uint8Array`
 96 | 
 97 | (stprf) Root of the state proof key (if any)
 98 | 
 99 | #### Defined in
100 | 
101 | client/v2/algod/models/types.ts:757
102 | 
103 | ___
104 | 
105 | ### voteFirstValid
106 | 
107 | • **voteFirstValid**: `number` \| `bigint`
108 | 
109 | (voteFst) First round for which this participation is valid.
110 | 
111 | #### Defined in
112 | 
113 | client/v2/algod/models/types.ts:736
114 | 
115 | ___
116 | 
117 | ### voteKeyDilution
118 | 
119 | • **voteKeyDilution**: `number` \| `bigint`
120 | 
121 | (voteKD) Number of subkeys in each batch of participation keys.
122 | 
123 | #### Defined in
124 | 
125 | client/v2/algod/models/types.ts:741
126 | 
127 | ___
128 | 
129 | ### voteLastValid
130 | 
131 | • **voteLastValid**: `number` \| `bigint`
132 | 
133 | (voteLst) Last round for which this participation is valid.
134 | 
135 | #### Defined in
136 | 
137 | client/v2/algod/models/types.ts:746
138 | 
139 | ___
140 | 
141 | ### voteParticipationKey
142 | 
143 | • **voteParticipationKey**: `Uint8Array`
144 | 
145 | (vote) root participation public key (if any) currently registered for this
146 | round.
147 | 
148 | #### Defined in
149 | 
150 | client/v2/algod/models/types.ts:752
151 | 
152 | ## Methods
153 | 
154 | ### get\_obj\_for\_encoding
155 | 
156 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
157 | 
158 | Get an object ready for encoding to either JSON or msgpack.
159 | 
160 | #### Parameters
161 | 
162 | | Name | Type | Default value | Description |
163 | | :------ | :------ | :------ | :------ |
164 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
165 | 
166 | #### Returns
167 | 
168 | `Record`\<`string`, `any`\>
169 | 
170 | #### Inherited from
171 | 
172 | BaseModel.get\_obj\_for\_encoding
173 | 
174 | #### Defined in
175 | 
176 | client/v2/basemodel.ts:65
177 | 
178 | ___
179 | 
180 | ### from\_obj\_for\_encoding
181 | 
182 | ▸ `Static` **from_obj_for_encoding**(`data`): [`AccountParticipation`](modelsv2.AccountParticipation.md)
183 | 
184 | #### Parameters
185 | 
186 | | Name | Type |
187 | | :------ | :------ |
188 | | `data` | `Record`\<`string`, `any`\> |
189 | 
190 | #### Returns
191 | 
192 | [`AccountParticipation`](modelsv2.AccountParticipation.md)
193 | 
194 | #### Defined in
195 | 
196 | client/v2/algod/models/types.ts:812
197 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:modules:types_transaction.md:
--------------------------------------------------------------------------------

```markdown
 1 | [@algorandfoundation/algokit-utils](../README.md) / types/transaction
 2 | 
 3 | # Module: types/transaction
 4 | 
 5 | ## Table of contents
 6 | 
 7 | ### Interfaces
 8 | 
 9 | - [AtomicTransactionComposerToSend](../interfaces/types_transaction.AtomicTransactionComposerToSend.md)
10 | - [ConfirmedTransactionResult](../interfaces/types_transaction.ConfirmedTransactionResult.md)
11 | - [ConfirmedTransactionResults](../interfaces/types_transaction.ConfirmedTransactionResults.md)
12 | - [SendAtomicTransactionComposerResults](../interfaces/types_transaction.SendAtomicTransactionComposerResults.md)
13 | - [SendParams](../interfaces/types_transaction.SendParams.md)
14 | - [SendTransactionParams](../interfaces/types_transaction.SendTransactionParams.md)
15 | - [SendTransactionResult](../interfaces/types_transaction.SendTransactionResult.md)
16 | - [SendTransactionResults](../interfaces/types_transaction.SendTransactionResults.md)
17 | - [TransactionGroupToSend](../interfaces/types_transaction.TransactionGroupToSend.md)
18 | - [TransactionToSign](../interfaces/types_transaction.TransactionToSign.md)
19 | 
20 | ### Type Aliases
21 | 
22 | - [Arc2TransactionNote](types_transaction.md#arc2transactionnote)
23 | - [SendSingleTransactionResult](types_transaction.md#sendsingletransactionresult)
24 | - [SendTransactionFrom](types_transaction.md#sendtransactionfrom)
25 | - [TransactionNote](types_transaction.md#transactionnote)
26 | - [TransactionNoteData](types_transaction.md#transactionnotedata)
27 | 
28 | ## Type Aliases
29 | 
30 | ### Arc2TransactionNote
31 | 
32 | Ƭ **Arc2TransactionNote**: \{ `dAppName`: `string` ; `data`: `string` ; `format`: ``"m"`` \| ``"b"`` \| ``"u"``  } \| \{ `dAppName`: `string` ; `data`: [`TransactionNoteData`](types_transaction.md#transactionnotedata) ; `format`: ``"j"``  }
33 | 
34 | ARC-0002 compatible transaction note components https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0002.md
35 | 
36 | #### Defined in
37 | 
38 | [src/types/transaction.ts:16](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L16)
39 | 
40 | ___
41 | 
42 | ### SendSingleTransactionResult
43 | 
44 | Ƭ **SendSingleTransactionResult**: [`Expand`](types_expand.md#expand)\<[`SendAtomicTransactionComposerResults`](../interfaces/types_transaction.SendAtomicTransactionComposerResults.md) & [`ConfirmedTransactionResult`](../interfaces/types_transaction.ConfirmedTransactionResult.md)\>
45 | 
46 | Result from sending a single transaction.
47 | 
48 | #### Defined in
49 | 
50 | [src/types/transaction.ts:50](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L50)
51 | 
52 | ___
53 | 
54 | ### SendTransactionFrom
55 | 
56 | Ƭ **SendTransactionFrom**: `Account` \| [`SigningAccount`](../classes/types_account.SigningAccount.md) \| `LogicSigAccount` \| [`MultisigAccount`](../classes/types_account.MultisigAccount.md) \| [`TransactionSignerAccount`](../interfaces/types_account.TransactionSignerAccount.md)
57 | 
58 | Core account abstraction when signing/sending transactions
59 | 
60 | This type is used across the entire AlgoKit Utils library and allows you to pass through
61 | many types of accounts, including:
62 | * `Account` - The in-built `algosdk.Account` type for mnemonic accounts
63 | * `SigningAccount` - An AlgoKit Utils class that wraps Account to provide support for rekeyed accounts
64 | * `LogicSigAccount` - The in-built `algosdk.LogicSigAccount` type for logic signatures
65 | * `MultisigAccount` - An AlgoKit Utils class that wraps a multisig account and provides mechanisms to get a multisig account
66 | * `TransactionSignerAccount` - An AlgoKit Utils class that wraps the in-built `algosdk.TransactionSigner` along with the sender address
67 | 
68 | #### Defined in
69 | 
70 | [src/types/transaction.ts:108](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L108)
71 | 
72 | ___
73 | 
74 | ### TransactionNote
75 | 
76 | Ƭ **TransactionNote**: `Uint8Array` \| [`TransactionNoteData`](types_transaction.md#transactionnotedata) \| [`Arc2TransactionNote`](types_transaction.md#arc2transactionnote)
77 | 
78 | #### Defined in
79 | 
80 | [src/types/transaction.ts:12](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L12)
81 | 
82 | ___
83 | 
84 | ### TransactionNoteData
85 | 
86 | Ƭ **TransactionNoteData**: `string` \| ``null`` \| `undefined` \| `number` \| `any`[] \| `Record`\<`string`, `any`\>
87 | 
88 | #### Defined in
89 | 
90 | [src/types/transaction.ts:14](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L14)
91 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/developer:python:code:example:scratch_storage.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Scratch Storage in Algorand Smart Contracts
  2 | 
  3 | This guide demonstrates how to use scratch storage in Algorand smart contracts. Scratch storage provides temporary storage slots that can be used during contract execution.
  4 | 
  5 | ## Basic Implementation
  6 | 
  7 | ```python
  8 | from algopy import ARC4Contract, Bytes, Contract, UInt64, op, urange
  9 | from algopy.arc4 import abimethod
 10 | 
 11 | TWO = 2
 12 | TWENTY = 20
 13 | 
 14 | class ScratchSlotsContract(ARC4Contract, scratch_slots=(1, TWO, urange(3, TWENTY))):
 15 |     @abimethod
 16 |     def store_data(self) -> bool:
 17 |         # Store values in scratch slots
 18 |         op.Scratch.store(1, UInt64(5))
 19 |         op.Scratch.store(2, Bytes(b"Hello World"))
 20 |         
 21 |         # Load and verify values
 22 |         assert op.Scratch.load_uint64(1) == UInt64(5)
 23 |         assert op.Scratch.load_bytes(2) == b"Hello World"
 24 |         return True
 25 | ```
 26 | 
 27 | ## Simplified Contract Example
 28 | 
 29 | ```python
 30 | class SimpleScratchSlotsContract(Contract, scratch_slots=(1, TWO, urange(3, TWENTY))):
 31 |     def approval_program(self) -> UInt64:
 32 |         # Load and verify values from scratch storage
 33 |         assert op.Scratch.load_uint64(1) == UInt64(5)
 34 |         assert op.Scratch.load_bytes(2) == b"Hello World"
 35 |         return UInt64(1)
 36 | 
 37 |     def clear_state_program(self) -> UInt64:
 38 |         return UInt64(1)
 39 | ```
 40 | 
 41 | ## Key Features
 42 | 
 43 | ### Scratch Slots Declaration
 44 | 
 45 | ```python
 46 | # Define scratch slots in class definition
 47 | scratch_slots=(1, TWO, urange(3, TWENTY))
 48 | ```
 49 | - Specify individual slots (1)
 50 | - Use constants (TWO)
 51 | - Define ranges (urange(3, TWENTY))
 52 | 
 53 | ### Storage Operations
 54 | 
 55 | ```python
 56 | # Store values
 57 | op.Scratch.store(1, UInt64(5))          # Store integer
 58 | op.Scratch.store(2, Bytes(b"Hello"))    # Store bytes
 59 | 
 60 | # Load values
 61 | value1 = op.Scratch.load_uint64(1)      # Load integer
 62 | value2 = op.Scratch.load_bytes(2)       # Load bytes
 63 | ```
 64 | 
 65 | ## Best Practices
 66 | 
 67 | 1. **Slot Management**:
 68 |    - Define slots explicitly
 69 |    - Use meaningful constants
 70 |    - Document slot usage
 71 |    - Avoid slot conflicts
 72 | 
 73 | 2. **Data Types**:
 74 |    - Use appropriate load methods
 75 |    - Verify data types
 76 |    - Handle type conversions
 77 |    - Check value ranges
 78 | 
 79 | 3. **Memory Usage**:
 80 |    - Minimize slot usage
 81 |    - Clean up after use
 82 |    - Monitor memory limits
 83 |    - Optimize storage
 84 | 
 85 | 4. **Error Handling**:
 86 |    - Verify loaded values
 87 |    - Handle missing data
 88 |    - Check slot bounds
 89 |    - Validate data types
 90 | 
 91 | ## Common Patterns
 92 | 
 93 | 1. **Temporary Calculations**:
 94 | ```python
 95 | def calculate_total(self) -> UInt64:
 96 |     # Store intermediate results
 97 |     op.Scratch.store(1, UInt64(5))
 98 |     op.Scratch.store(2, UInt64(10))
 99 |     
100 |     # Load and combine results
101 |     value1 = op.Scratch.load_uint64(1)
102 |     value2 = op.Scratch.load_uint64(2)
103 |     return value1 + value2
104 | ```
105 | 
106 | 2. **Data Validation**:
107 | ```python
108 | def validate_input(self, input_data: Bytes) -> bool:
109 |     # Store input for validation
110 |     op.Scratch.store(1, input_data)
111 |     
112 |     # Load and validate
113 |     stored_data = op.Scratch.load_bytes(1)
114 |     return stored_data == input_data
115 | ```
116 | 
117 | ## Technical Details
118 | 
119 | 1. **Slot Allocation**:
120 |    - Slots are numbered from 0
121 |    - Maximum slot number is 255
122 |    - Each slot can store any type
123 |    - Slots are cleared after execution
124 | 
125 | 2. **Data Types**:
126 |    - UInt64 for integers
127 |    - Bytes for byte strings
128 |    - Type-specific load methods
129 |    - Automatic type checking
130 | 
131 | 3. **Memory Constraints**:
132 |    - Limited number of slots
133 |    - Temporary storage only
134 |    - No persistence between calls
135 |    - Efficient for calculations
136 | 
137 | 4. **Performance**:
138 |    - Fast access times
139 |    - Low overhead
140 |    - Efficient for loops
141 |    - Good for temporary data
142 | 
143 | ## Use Cases
144 | 
145 | 1. **Complex Calculations**:
146 |    - Store intermediate results
147 |    - Break down computations
148 |    - Reuse common values
149 |    - Optimize performance
150 | 
151 | 2. **Data Validation**:
152 |    - Store input data
153 |    - Compare values
154 |    - Check constraints
155 |    - Verify formats
156 | 
157 | 3. **State Transitions**:
158 |    - Store previous state
159 |    - Calculate changes
160 |    - Verify transitions
161 |    - Update final state
162 | 
163 | 4. **Loop Operations**:
164 |    - Store counters
165 |    - Accumulate results
166 |    - Track iterations
167 |    - Handle aggregations
168 | 
169 | This guide demonstrates how to effectively use scratch storage in Algorand smart contracts. Understanding scratch storage is crucial for optimizing contract performance and managing temporary data during execution.
170 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.TransactionParametersResponse.md:
--------------------------------------------------------------------------------

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / TransactionParametersResponse
  2 | 
  3 | # Class: TransactionParametersResponse
  4 | 
  5 | [modelsv2](../modules/modelsv2.md).TransactionParametersResponse
  6 | 
  7 | TransactionParams contains the parameters that help a client construct a new
  8 | transaction.
  9 | 
 10 | ## Hierarchy
 11 | 
 12 | - `default`
 13 | 
 14 |   ↳ **`TransactionParametersResponse`**
 15 | 
 16 | ## Table of contents
 17 | 
 18 | ### Constructors
 19 | 
 20 | - [constructor](modelsv2.TransactionParametersResponse.md#constructor)
 21 | 
 22 | ### Properties
 23 | 
 24 | - [attribute\_map](modelsv2.TransactionParametersResponse.md#attribute_map)
 25 | - [consensusVersion](modelsv2.TransactionParametersResponse.md#consensusversion)
 26 | - [fee](modelsv2.TransactionParametersResponse.md#fee)
 27 | - [genesisHash](modelsv2.TransactionParametersResponse.md#genesishash)
 28 | - [genesisId](modelsv2.TransactionParametersResponse.md#genesisid)
 29 | - [lastRound](modelsv2.TransactionParametersResponse.md#lastround)
 30 | - [minFee](modelsv2.TransactionParametersResponse.md#minfee)
 31 | 
 32 | ### Methods
 33 | 
 34 | - [get\_obj\_for\_encoding](modelsv2.TransactionParametersResponse.md#get_obj_for_encoding)
 35 | - [from\_obj\_for\_encoding](modelsv2.TransactionParametersResponse.md#from_obj_for_encoding)
 36 | 
 37 | ## Constructors
 38 | 
 39 | ### constructor
 40 | 
 41 | • **new TransactionParametersResponse**(`«destructured»`)
 42 | 
 43 | Creates a new `TransactionParametersResponse` object.
 44 | 
 45 | #### Parameters
 46 | 
 47 | | Name | Type |
 48 | | :------ | :------ |
 49 | | `«destructured»` | `Object` |
 50 | | › `consensusVersion` | `string` |
 51 | | › `fee` | `number` \| `bigint` |
 52 | | › `genesisHash` | `string` \| `Uint8Array` |
 53 | | › `genesisId` | `string` |
 54 | | › `lastRound` | `number` \| `bigint` |
 55 | | › `minFee` | `number` \| `bigint` |
 56 | 
 57 | #### Overrides
 58 | 
 59 | BaseModel.constructor
 60 | 
 61 | #### Defined in
 62 | 
 63 | client/v2/algod/models/types.ts:5816
 64 | 
 65 | ## Properties
 66 | 
 67 | ### attribute\_map
 68 | 
 69 | • **attribute\_map**: `Record`\<`string`, `string`\>
 70 | 
 71 | #### Inherited from
 72 | 
 73 | BaseModel.attribute\_map
 74 | 
 75 | #### Defined in
 76 | 
 77 | client/v2/basemodel.ts:56
 78 | 
 79 | ___
 80 | 
 81 | ### consensusVersion
 82 | 
 83 | • **consensusVersion**: `string`
 84 | 
 85 | ConsensusVersion indicates the consensus protocol version
 86 | as of LastRound.
 87 | 
 88 | #### Defined in
 89 | 
 90 | client/v2/algod/models/types.ts:5771
 91 | 
 92 | ___
 93 | 
 94 | ### fee
 95 | 
 96 | • **fee**: `number` \| `bigint`
 97 | 
 98 | Fee is the suggested transaction fee
 99 | Fee is in units of micro-Algos per byte.
100 | Fee may fall to zero but transactions must still have a fee of
101 | at least MinTxnFee for the current network protocol.
102 | 
103 | #### Defined in
104 | 
105 | client/v2/algod/models/types.ts:5779
106 | 
107 | ___
108 | 
109 | ### genesisHash
110 | 
111 | • **genesisHash**: `Uint8Array`
112 | 
113 | GenesisHash is the hash of the genesis block.
114 | 
115 | #### Defined in
116 | 
117 | client/v2/algod/models/types.ts:5784
118 | 
119 | ___
120 | 
121 | ### genesisId
122 | 
123 | • **genesisId**: `string`
124 | 
125 | GenesisID is an ID listed in the genesis block.
126 | 
127 | #### Defined in
128 | 
129 | client/v2/algod/models/types.ts:5789
130 | 
131 | ___
132 | 
133 | ### lastRound
134 | 
135 | • **lastRound**: `number` \| `bigint`
136 | 
137 | LastRound indicates the last round seen
138 | 
139 | #### Defined in
140 | 
141 | client/v2/algod/models/types.ts:5794
142 | 
143 | ___
144 | 
145 | ### minFee
146 | 
147 | • **minFee**: `number` \| `bigint`
148 | 
149 | The minimum transaction fee (not per byte) required for the
150 | txn to validate for the current network protocol.
151 | 
152 | #### Defined in
153 | 
154 | client/v2/algod/models/types.ts:5800
155 | 
156 | ## Methods
157 | 
158 | ### get\_obj\_for\_encoding
159 | 
160 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
161 | 
162 | Get an object ready for encoding to either JSON or msgpack.
163 | 
164 | #### Parameters
165 | 
166 | | Name | Type | Default value | Description |
167 | | :------ | :------ | :------ | :------ |
168 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
169 | 
170 | #### Returns
171 | 
172 | `Record`\<`string`, `any`\>
173 | 
174 | #### Inherited from
175 | 
176 | BaseModel.get\_obj\_for\_encoding
177 | 
178 | #### Defined in
179 | 
180 | client/v2/basemodel.ts:65
181 | 
182 | ___
183 | 
184 | ### from\_obj\_for\_encoding
185 | 
186 | ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionParametersResponse`](modelsv2.TransactionParametersResponse.md)
187 | 
188 | #### Parameters
189 | 
190 | | Name | Type |
191 | | :------ | :------ |
192 | | `data` | `Record`\<`string`, `any`\> |
193 | 
194 | #### Returns
195 | 
196 | [`TransactionParametersResponse`](modelsv2.TransactionParametersResponse.md)
197 | 
198 | #### Defined in
199 | 
200 | client/v2/algod/models/types.ts:5853
201 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/ARCs:specs:arc-0021.md:
--------------------------------------------------------------------------------

```markdown
 1 | ---
 2 | arc: 21
 3 | title: Round based datafeed oracles on Algorand
 4 | description: Conventions for building round based datafeed oracles on Algorand
 5 | author: ori-shem-tov (@ori-shem-tov)
 6 | discussions-to: https://github.com/algorandfoundation/ARCs/issues/124
 7 | status: Final
 8 | type: Standards Track
 9 | category: Interface
10 | sub-category: Application
11 | created: 2022-03-09
12 | requires: 4
13 | ---
14 | 
15 | # Round based datafeed oracles on Algorand
16 | 
17 | ## Abstract
18 | 
19 | The following document introduces conventions for building round based datafeed oracles on Algorand using the ABI defined in [ARC-4](./arc-0004.md)
20 | 
21 | ## Specification
22 | 
23 | The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC-2119</a>.
24 | 
25 | > Comments like this are non-normative.
26 | 
27 | An [ARC-21](./arc-0021.md) oracle **MUST** have an associated smart-contract implementaing the ABI interface described below.
28 | 
29 | ### ABI Interface
30 | 
31 | Round based datafeed oracles allow smart-contracts to get data with relevancy to a specific block number, for example the ALGO price at a specific round.
32 | 
33 | The associated smart contract **MUST** implement the following ABI interface:
34 | ```json
35 | {
36 |   "name": "ARC_0021",
37 |   "desc": "Interface for a round based datafeed oracle",
38 |   "methods": [
39 |     {
40 |       "name": "get",
41 |       "desc": "Get data from the oracle for a specific round",
42 |       "args": [
43 |         { "type": "uint64", "name": "round", "desc": "The desired round" },
44 |         { "type": "byte[]", "name": "user_data", "desc": "Optional: Extra data provided by the user. Pass an empty slice if not used." }
45 |       ],
46 |       "returns": { "type": "byte[]", "desc": "The oracle's response. If the data doesn't exist, the response is an empty slice." }
47 |     },
48 |     {
49 |       "name": "must_get",
50 |       "desc": "Get data from the oracle for a specific round. Panics if the data doesn't exist.",
51 |       "args": [
52 |         { "type": "uint64", "name": "round", "desc": "The desired round" },
53 |         { "type": "byte[]", "name": "user_data", "desc": "Optional: Extra data provided by the user. Pass an empty slice if not used." }
54 |       ],
55 |       "returns": { "type": "byte[]", "desc": "The oracle's response" }
56 |     },
57 |     /** Optional */
58 |     {
59 |       "name": "get_closest",
60 |       "desc": "Get data from the oracle closest to a specified round by searching over past rounds.",
61 |       "args": [
62 |         { "type": "uint64", "name": "round", "desc": "The desired round" },
63 |         { "type": "uint64", "name": "search_span", "desc": "Threshold for number of rounds in the past to search on." }
64 |         { "type": "byte[]", "name": "user_data", "desc": "Optional: Extra data provided by the user. Pass an empty slice if not used." }
65 |       ],
66 |       "returns": { "type": "(uint64,byte[])", "desc": "The closest round and the oracle's response for that round. If the data doesn't exist, the round is set to 0 and the response is an empty slice." }
67 |     },
68 |     /** Optional */
69 |     {
70 |       "name": "must_get_closest",
71 |       "desc": "Get data from the oracle closest to a specified round by searching over past rounds. Panics if no data is found within the specified range.",
72 |       "args": [
73 |         { "type": "uint64", "name": "round", "desc": "The desired round" },
74 |         { "type": "uint64", "name": "search_span", "desc": "Threshold for number of rounds in the past to search on." }
75 |         { "type": "byte[]", "name": "user_data", "desc": "Optional: Extra data provided by the user. Pass an empty slice if not used." }
76 |       ],
77 |       "returns": { "type": "(uint64,byte[])", "desc": "The closest round and the oracle's response for that round." }
78 |     }
79 |   ]
80 | }
81 | ```
82 | 
83 | ### Method boundaries
84 | 
85 | - All of `get`, `must_get`, `get_closest` and `must_get_closest` functions **MUST NOT** use local state.
86 | - Optional arguments of type `byte[]` that are not used are expected to be passed as an empty byte slice.
87 | 
88 | ## Rationale
89 | 
90 | The goal of these conventions is to make it easier for smart-contracts to interact with off-chain data sources.
91 | 
92 | ## Security Considerations
93 | 
94 | None.
95 | 
96 | ## Copyright
97 | 
98 | Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CCO</a>.
99 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/developer:docs:run-a-node:participate:offline.md:
--------------------------------------------------------------------------------

```markdown
 1 | title: Register offline
 2 | 
 3 | To mark an account **offline** send a key registration transaction to the network authorized by the account to be marked offline. The signal to mark the sending account offline is the issuance of a `"type": "keyreg"` transaction that does not contain any participation key-related fields (i.e. they are all set to null values)
 4 | 
 5 | !!! info "Important"
 6 | 	Just like with online keyreg transactions. The moment a key registration transaction is confirmed by the network it takes 320 rounds for the change to take effect. So, if a key registration is confirmed in round 5000, the account will stop participating at round 5320.
 7 | 
 8 | # Create an offline key registration transaction
 9 | 
10 | Create an offline key registration transaction for the address: `EW64GC6F24M7NDSC5R3ES4YUVE3ZXXNMARJHDCCCLIHZU6TBEOC7XRSBG4` by inserting the following code snippet into the construction portion of the example shown in [Authorizing Transactions Offline](../../../get-details/transactions/offline_transactions#unsigned-transaction-file-operations). The file produced and displayed with `goal clerk inspect` should look almost exactly the same as the output shown in the [constructing a register offline transaction example](../../../get-details/transactions#register-account-offline). 
11 | 
12 | === "Python"
13 |     <!-- ===PYSDK_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
14 | 	```python
15 | 	# get suggested parameters
16 | 	params = algod_client.suggested_params()
17 | 	
18 | 	# create keyreg transaction to take this account offline
19 | 	offline_keyreg = transaction.KeyregTxn(
20 | 	    sender="EW64GC6F24M7NDSC5R3ES4YUVE3ZXXNMARJHDCCCLIHZU6TBEOC7XRSBG4",
21 | 	    sp=params,
22 | 	    votekey=None,
23 | 	    selkey=None,
24 | 	    votefst=None,
25 | 	    votelst=None,
26 | 	    votekd=None,
27 | 	)
28 | 	print(online_keyreg.dictify())
29 | 	```
30 | 	[Snippet Source](https://github.com/algorand/py-algorand-sdk/blob/examples/examples/participation.py#L29-L43)
31 |     <!-- ===PYSDK_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
32 | 
33 | === "JavaScript"
34 |     <!-- ===JSSDK_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
35 | 	```javascript
36 | 	// get suggested parameters
37 | 	const suggestedParams = await algodClient.getTransactionParams().do();
38 | 	// create keyreg transaction to take this account offline
39 | 	const offlineKeyReg = algosdk.makeKeyRegistrationTxnWithSuggestedParamsFromObject(
40 | 	  {
41 | 	    from: addr,
42 | 	    suggestedParams,
43 | 	  }
44 | 	);
45 | 	console.log(offlineKeyReg.get_obj_for_encoding());
46 | 	```
47 | 	[Snippet Source](https://github.com/algorand/js-algorand-sdk/blob/examples/examples/participation.ts#L44-L54)
48 |     <!-- ===JSSDK_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
49 | 
50 | === "Go"
51 |     <!-- ===GOSDK_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
52 |     <!-- ===GOSDK_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
53 | 
54 | === "Java"
55 |     <!-- ===JAVASDK_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
56 | 	```java
57 | 	// create keyreg transaction to take this account offline
58 | 	Transaction keyRegOfflineTxn = Transaction.KeyRegistrationTransactionBuilder().suggestedParams(sp)
59 | 	        .sender(address)
60 | 	        .build();
61 | 	```
62 | 	[Snippet Source](https://github.com/algorand/java-algorand-sdk/blob/examples/examples/src/main/java/com/algorand/examples/Participation.java#L37-L41)
63 |     <!-- ===JAVASDK_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
64 | 
65 | === "goal"
66 |     <!-- ===GOAL_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
67 |     ```zsh
68 |     $ goal account changeonlinestatus --address=EW64GC6F24M7NDSC5R3ES4YUVE3ZXXNMARJHDCCCLIHZU6TBEOC7XRSBG4 --fee=1000 --firstvalid=7000000 --lastvalid=7001000 --online=false --txfile=offline.txn
69 |     ```
70 |     <!-- ===GOAL_TRANSACTION_KEYREG_OFFLINE_CREATE=== -->
71 | 
72 | # Authorize and Send the Transaction
73 | Use the appropriate [authorization method](../../../get-details/transactions/signatures) to sign the transaction. 
74 | 
75 | !!! tip
76 |     It is recommended that you authorize the transaction offline to protect the security of your private keys, especially for high-value participating accounts. 
77 | 
78 | Once the transaction is signed, wait for the network to reach the transaction's first valid round and then [submit](../../../archive/build-apps/hello_world#submit-the-transaction) and the SDK Method "wait for confirmation". 
79 | 
80 | **See also**
81 | 
82 | - [Key Registration Transactions](../../../get-details/transactions#key-registration-transaction)
83 | - [Register account offline](../../../get-details/transactions#register-account-offline)
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # js-algorand-sdk
  2 | 
  3 | [![CircleCI](https://dl.circleci.com/status-badge/img/gh/algorand/js-algorand-sdk/tree/develop.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/algorand/js-algorand-sdk/tree/develop) [![npm version](https://badge.fury.io/js/algosdk.svg)](https://www.npmjs.com/package/algosdk)
  4 | 
  5 | AlgoSDK is the official JavaScript library for communicating with the Algorand network. It's designed for modern browsers and Node.js.
  6 | 
  7 | ## Installation
  8 | 
  9 | ### [Node.js](https://nodejs.org/en/download/)
 10 | 
 11 | ```
 12 | $ npm install algosdk
 13 | ```
 14 | 
 15 | > This package provides TypeScript types, but you will need [TypeScript](https://www.typescriptlang.org/) version 4.2 or higher to use them properly.
 16 | 
 17 | ### Browser
 18 | 
 19 | Include a minified browser bundle directly in your HTML like so:
 20 | 
 21 | ```html
 22 | <script
 23 |   src="https://unpkg.com/[email protected]/dist/browser/algosdk.min.js"
 24 |   integrity="sha384-R84o0hH3cBFIzv9uqyKcDNfDi/6jgn1MrS1/tOMDWxeh8hWfOLuRoMy0LekUm2KL"
 25 |   crossorigin="anonymous"
 26 | ></script>
 27 | ```
 28 | 
 29 | or
 30 | 
 31 | ```html
 32 | <script
 33 |   src="https://cdn.jsdelivr.net/npm/[email protected]/dist/browser/algosdk.min.js"
 34 |   integrity="sha384-R84o0hH3cBFIzv9uqyKcDNfDi/6jgn1MrS1/tOMDWxeh8hWfOLuRoMy0LekUm2KL"
 35 |   crossorigin="anonymous"
 36 | ></script>
 37 | ```
 38 | 
 39 | Information about hosting the package for yourself, finding the browser bundles of previous versions, and computing the SRI hash is [available here](FAQ.md).
 40 | 
 41 | ## Quick Start
 42 | 
 43 | ```javascript
 44 | const token = 'Your algod API token';
 45 | const server = 'http://127.0.0.1';
 46 | const port = 8080;
 47 | const client = new algosdk.Algodv2(token, server, port);
 48 | 
 49 | (async () => {
 50 |   console.log(await client.status().do());
 51 | })().catch((e) => {
 52 |   console.log(e);
 53 | });
 54 | ```
 55 | 
 56 | ## Documentation
 57 | 
 58 | Documentation for this SDK is available here: https://algorand.github.io/js-algorand-sdk/. Additional resources are available on https://developer.algorand.org.
 59 | 
 60 | ## Examples
 61 | 
 62 | Running examples requires access to a running node. Follow the instructions in Algorand's [developer resources](https://developer.algorand.org/docs/run-a-node/setup/install/) to install a node on your computer.
 63 | 
 64 | **As portions of the codebase are written in TypeScript, example files cannot be run directly using `node`**. Please refer to the instructions described in the [examples/README.md](examples/README.md) file for more information regarding running the examples.
 65 | 
 66 | ## SDK Development
 67 | 
 68 | ### Building
 69 | 
 70 | To build a new version of the library, run:
 71 | 
 72 | ```bash
 73 | npm run build
 74 | ```
 75 | 
 76 | ### Generating Documentation
 77 | 
 78 | To generate the documentation website, run:
 79 | 
 80 | ```bash
 81 | npm run docs
 82 | ```
 83 | 
 84 | The static website will be located in the `docs/` directory.
 85 | 
 86 | ### Testing
 87 | 
 88 | We have two test suites: mocha tests in this repo, and the Algorand SDK test suite from https://github.com/algorand/algorand-sdk-testing.
 89 | 
 90 | #### Node.js
 91 | 
 92 | To run the mocha tests in Node.js, run:
 93 | 
 94 | ```bash
 95 | npm test
 96 | ```
 97 | 
 98 | To run the SDK test suite in Node.js, run:
 99 | 
100 | ```bash
101 | make docker-test
102 | ```
103 | 
104 | #### Browsers
105 | 
106 | The test suites can also run in browsers. To do so, set the environment variable `TEST_BROWSER` to
107 | one of our supported browsers. Currently we support testing in `chrome` and `firefox`. When
108 | `TEST_BROWSER` is set, the mocha and SDK test suites will run in that browser.
109 | 
110 | For example, to run mocha tests in Chrome:
111 | 
112 | ```bash
113 | TEST_BROWSER=chrome npm test
114 | ```
115 | 
116 | And to run SDK tests in Firefox:
117 | 
118 | ```bash
119 | TEST_BROWSER=firefox make docker-test
120 | ```
121 | 
122 | ### Code Style
123 | 
124 | This project enforces a modified version of the [Airbnb code style](https://github.com/airbnb/javascript).
125 | 
126 | We've setup linters and formatters to help catch errors and improve the development experience:
127 | 
128 | - [Prettier](https://prettier.io/) – ensures that code is formatted in a readable way.
129 | - [ESLint](https://eslint.org/) — checks code for antipatterns as well as formatting.
130 | 
131 | > If using the Visual Studio Code editor with the [recommended extensions](.vscode/extensions.json), ESLint errors should be highlighted in red and the Prettier extension should format code on every save.
132 | 
133 | #### Precommit Hook
134 | 
135 | The linters and formatters listed above should run automatically on each commit to catch errors early and save CI running time.
136 | 
137 | ## License
138 | 
139 | js-algorand-sdk is licensed under an MIT license. See the [LICENSE](https://github.com/algorand/js-algorand-sdk/blob/master/LICENSE) file for details.
140 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.AccountParticipation.md:
--------------------------------------------------------------------------------

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / AccountParticipation
  2 | 
  3 | # Class: AccountParticipation
  4 | 
  5 | [indexerModels](../modules/indexerModels.md).AccountParticipation
  6 | 
  7 | AccountParticipation describes the parameters used by this account in consensus
  8 | protocol.
  9 | 
 10 | ## Hierarchy
 11 | 
 12 | - `default`
 13 | 
 14 |   ↳ **`AccountParticipation`**
 15 | 
 16 | ## Table of contents
 17 | 
 18 | ### Constructors
 19 | 
 20 | - [constructor](indexerModels.AccountParticipation.md#constructor)
 21 | 
 22 | ### Properties
 23 | 
 24 | - [attribute\_map](indexerModels.AccountParticipation.md#attribute_map)
 25 | - [selectionParticipationKey](indexerModels.AccountParticipation.md#selectionparticipationkey)
 26 | - [stateProofKey](indexerModels.AccountParticipation.md#stateproofkey)
 27 | - [voteFirstValid](indexerModels.AccountParticipation.md#votefirstvalid)
 28 | - [voteKeyDilution](indexerModels.AccountParticipation.md#votekeydilution)
 29 | - [voteLastValid](indexerModels.AccountParticipation.md#votelastvalid)
 30 | - [voteParticipationKey](indexerModels.AccountParticipation.md#voteparticipationkey)
 31 | 
 32 | ### Methods
 33 | 
 34 | - [get\_obj\_for\_encoding](indexerModels.AccountParticipation.md#get_obj_for_encoding)
 35 | - [from\_obj\_for\_encoding](indexerModels.AccountParticipation.md#from_obj_for_encoding)
 36 | 
 37 | ## Constructors
 38 | 
 39 | ### constructor
 40 | 
 41 | • **new AccountParticipation**(`«destructured»`)
 42 | 
 43 | Creates a new `AccountParticipation` object.
 44 | 
 45 | #### Parameters
 46 | 
 47 | | Name | Type |
 48 | | :------ | :------ |
 49 | | `«destructured»` | `Object` |
 50 | | › `selectionParticipationKey` | `string` \| `Uint8Array` |
 51 | | › `stateProofKey?` | `string` \| `Uint8Array` |
 52 | | › `voteFirstValid` | `number` \| `bigint` |
 53 | | › `voteKeyDilution` | `number` \| `bigint` |
 54 | | › `voteLastValid` | `number` \| `bigint` |
 55 | | › `voteParticipationKey` | `string` \| `Uint8Array` |
 56 | 
 57 | #### Overrides
 58 | 
 59 | BaseModel.constructor
 60 | 
 61 | #### Defined in
 62 | 
 63 | client/v2/indexer/models/types.ts:528
 64 | 
 65 | ## Properties
 66 | 
 67 | ### attribute\_map
 68 | 
 69 | • **attribute\_map**: `Record`\<`string`, `string`\>
 70 | 
 71 | #### Inherited from
 72 | 
 73 | BaseModel.attribute\_map
 74 | 
 75 | #### Defined in
 76 | 
 77 | client/v2/basemodel.ts:56
 78 | 
 79 | ___
 80 | 
 81 | ### selectionParticipationKey
 82 | 
 83 | • **selectionParticipationKey**: `Uint8Array`
 84 | 
 85 | Selection public key (if any) currently registered for this round.
 86 | 
 87 | #### Defined in
 88 | 
 89 | client/v2/indexer/models/types.ts:492
 90 | 
 91 | ___
 92 | 
 93 | ### stateProofKey
 94 | 
 95 | • `Optional` **stateProofKey**: `Uint8Array`
 96 | 
 97 | Root of the state proof key (if any)
 98 | 
 99 | #### Defined in
100 | 
101 | client/v2/indexer/models/types.ts:517
102 | 
103 | ___
104 | 
105 | ### voteFirstValid
106 | 
107 | • **voteFirstValid**: `number` \| `bigint`
108 | 
109 | First round for which this participation is valid.
110 | 
111 | #### Defined in
112 | 
113 | client/v2/indexer/models/types.ts:497
114 | 
115 | ___
116 | 
117 | ### voteKeyDilution
118 | 
119 | • **voteKeyDilution**: `number` \| `bigint`
120 | 
121 | Number of subkeys in each batch of participation keys.
122 | 
123 | #### Defined in
124 | 
125 | client/v2/indexer/models/types.ts:502
126 | 
127 | ___
128 | 
129 | ### voteLastValid
130 | 
131 | • **voteLastValid**: `number` \| `bigint`
132 | 
133 | Last round for which this participation is valid.
134 | 
135 | #### Defined in
136 | 
137 | client/v2/indexer/models/types.ts:507
138 | 
139 | ___
140 | 
141 | ### voteParticipationKey
142 | 
143 | • **voteParticipationKey**: `Uint8Array`
144 | 
145 | root participation public key (if any) currently registered for this round.
146 | 
147 | #### Defined in
148 | 
149 | client/v2/indexer/models/types.ts:512
150 | 
151 | ## Methods
152 | 
153 | ### get\_obj\_for\_encoding
154 | 
155 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
156 | 
157 | Get an object ready for encoding to either JSON or msgpack.
158 | 
159 | #### Parameters
160 | 
161 | | Name | Type | Default value | Description |
162 | | :------ | :------ | :------ | :------ |
163 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
164 | 
165 | #### Returns
166 | 
167 | `Record`\<`string`, `any`\>
168 | 
169 | #### Inherited from
170 | 
171 | BaseModel.get\_obj\_for\_encoding
172 | 
173 | #### Defined in
174 | 
175 | client/v2/basemodel.ts:65
176 | 
177 | ___
178 | 
179 | ### from\_obj\_for\_encoding
180 | 
181 | ▸ `Static` **from_obj_for_encoding**(`data`): [`AccountParticipation`](indexerModels.AccountParticipation.md)
182 | 
183 | #### Parameters
184 | 
185 | | Name | Type |
186 | | :------ | :------ |
187 | | `data` | `Record`\<`string`, `any`\> |
188 | 
189 | #### Returns
190 | 
191 | [`AccountParticipation`](indexerModels.AccountParticipation.md)
192 | 
193 | #### Defined in
194 | 
195 | client/v2/indexer/models/types.ts:571
196 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy-categories/arcs.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "name": "Algorand Request for Comments",
 3 |   "description": "Specifications and standards for the Algorand blockchain",
 4 |   "path": "arcs",
 5 |   "documents": [
 6 |     {
 7 |       "name": "README",
 8 |       "description": "Overview of arcs",
 9 |       "path": "arcs:README.md"
10 |     },
11 |     {
12 |       "name": "ARC Template",
13 |       "description": "Template for creating new arcs",
14 |       "path": "arcs:ARC-template.md"
15 |     }
16 |   ],
17 |   "subcategories": {
18 |     "specs": {
19 |       "name": "Specifications",
20 |       "description": "Individual ARC specifications",
21 |       "path": "arcs:specs",
22 |       "documents": [
23 |         {"name": "ARC-0000", "path": "arcs:specs:arc-0000.md"},
24 |         {"name": "ARC-0001", "path": "arcs:specs:arc-0001.md"},
25 |         {"name": "ARC-0002", "path": "arcs:specs:arc-0002.md"},
26 |         {"name": "ARC-0003", "path": "arcs:specs:arc-0003.md"},
27 |         {"name": "ARC-0004", "path": "arcs:specs:arc-0004.md"},
28 |         {"name": "ARC-0005", "path": "arcs:specs:arc-0005.md"},
29 |         {"name": "ARC-0006", "path": "arcs:specs:arc-0006.md"},
30 |         {"name": "ARC-0007", "path": "arcs:specs:arc-0007.md"},
31 |         {"name": "ARC-0008", "path": "arcs:specs:arc-0008.md"},
32 |         {"name": "ARC-0009", "path": "arcs:specs:arc-0009.md"},
33 |         {"name": "ARC-0010", "path": "arcs:specs:arc-0010.md"},
34 |         {"name": "ARC-0011", "path": "arcs:specs:arc-0011.md"},
35 |         {"name": "ARC-0012", "path": "arcs:specs:arc-0012.md"},
36 |         {"name": "ARC-0015", "path": "arcs:specs:arc-0015.md"},
37 |         {"name": "ARC-0016", "path": "arcs:specs:arc-0016.md"},
38 |         {"name": "ARC-0018", "path": "arcs:specs:arc-0018.md"},
39 |         {"name": "ARC-0019", "path": "arcs:specs:arc-0019.md"},
40 |         {"name": "ARC-0020", "path": "arcs:specs:arc-0020.md"},
41 |         {"name": "ARC-0021", "path": "arcs:specs:arc-0021.md"},
42 |         {"name": "ARC-0022", "path": "arcs:specs:arc-0022.md"},
43 |         {"name": "ARC-0023", "path": "arcs:specs:arc-0023.md"},
44 |         {"name": "ARC-0025", "path": "arcs:specs:arc-0025.md"},
45 |         {"name": "ARC-0026", "path": "arcs:specs:arc-0026.md"},
46 |         {"name": "ARC-0028", "path": "arcs:specs:arc-0028.md"},
47 |         {"name": "ARC-0032", "path": "arcs:specs:arc-0032.md"},
48 |         {"name": "ARC-0033", "path": "arcs:specs:arc-0033.md"},
49 |         {"name": "ARC-0034", "path": "arcs:specs:arc-0034.md"},
50 |         {"name": "ARC-0035", "path": "arcs:specs:arc-0035.md"},
51 |         {"name": "ARC-0036", "path": "arcs:specs:arc-0036.md"},
52 |         {"name": "ARC-0042", "path": "arcs:specs:arc-0042.md"},
53 |         {"name": "ARC-0047", "path": "arcs:specs:arc-0047.md"},
54 |         {"name": "ARC-0048", "path": "arcs:specs:arc-0048.md"},
55 |         {"name": "ARC-0049", "path": "arcs:specs:arc-0049.md"},
56 |         {"name": "ARC-0054", "path": "arcs:specs:arc-0054.md"},
57 |         {"name": "ARC-0055", "path": "arcs:specs:arc-0055.md"},
58 |         {"name": "ARC-0056", "path": "arcs:specs:arc-0056.md"},
59 |         {"name": "ARC-0059", "path": "arcs:specs:arc-0059.md"},
60 |         {"name": "ARC-0062", "path": "arcs:specs:arc-0062.md"},
61 |         {"name": "ARC-0065", "path": "arcs:specs:arc-0065.md"},
62 |         {"name": "ARC-0069", "path": "arcs:specs:arc-0069.md"},
63 |         {"name": "ARC-0072", "path": "arcs:specs:arc-0072.md"},
64 |         {"name": "ARC-0073", "path": "arcs:specs:arc-0073.md"},
65 |         {"name": "ARC-0074", "path": "arcs:specs:arc-0074.md"},
66 |         {"name": "ARC-0076", "path": "arcs:specs:arc-0076.md"},
67 |         {"name": "ARC-0078", "path": "arcs:specs:arc-0078.md"},
68 |         {"name": "ARC-0079", "path": "arcs:specs:arc-0079.md"},
69 |         {"name": "ARC-0200", "path": "arcs:specs:arc-0200.md"}
70 |       ]
71 |     },
72 |     "assets": {
73 |       "name": "Assets",
74 |       "description": "Asset-related ARC resources",
75 |       "path": "arcs:assets",
76 |       "documents": [
77 |         {"name": "ARC-0012 README", "path": "arcs:assets:arc-0012:README.md"},
78 |         {"name": "ARC-0062 README", "path": "arcs:assets:arc-0062:README.md"},
79 |         {"name": "ARC-0034 Template Form", "path": "arcs:assets:arc-0034:TemplateForm.md"}
80 |       ]
81 |     },
82 |     "pages": {
83 |       "name": "Pages",
84 |       "description": "Additional ARC documentation pages",
85 |       "path": "arcs:pages",
86 |       "documents": [
87 |         {"name": "NFTs", "path": "arcs:pages:nfts.md"},
88 |         {"name": "Wallets", "path": "arcs:pages:wallets.md"}
89 |       ]
90 |     }
91 |   }
92 | }
93 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/developer:python:code:example:struct_in_box.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Structs in Box Storage for Algorand Smart Contracts
  2 | 
  3 | This guide demonstrates how to use structs with box storage in Algorand smart contracts using Python. Box storage with structs provides a way to store complex data structures efficiently.
  4 | 
  5 | ## Defining a Struct
  6 | 
  7 | ```python
  8 | from algopy import BoxMap, arc4
  9 | 
 10 | class UserStruct(arc4.Struct):
 11 |     name: arc4.String
 12 |     id: arc4.UInt64
 13 |     asset: arc4.UInt64
 14 | ```
 15 | 
 16 | The struct definition includes:
 17 | - Type annotations for each field
 18 | - ARC4-compatible data types
 19 | - Clear field naming
 20 | 
 21 | ## Implementing Box Storage with Structs
 22 | 
 23 | ```python
 24 | class StructInBoxMap(arc4.ARC4Contract):
 25 |     def __init__(self) -> None:
 26 |         # Initialize box map with UInt64 keys and UserStruct values
 27 |         self.user_map = BoxMap(
 28 |             arc4.UInt64,        # Key type
 29 |             UserStruct,         # Value type
 30 |             key_prefix="users"  # Optional prefix for organization
 31 |         )
 32 | ```
 33 | 
 34 | ## Basic Operations
 35 | 
 36 | ### Setting Values
 37 | 
 38 | ```python
 39 | @arc4.abimethod
 40 | def box_map_set(self, key: arc4.UInt64, value: UserStruct) -> bool:
 41 |     # Always use copy() when storing structs
 42 |     self.user_map[key] = value.copy()
 43 |     
 44 |     # Verify storage
 45 |     assert self.user_map[key] == value
 46 |     return True
 47 | 
 48 | @arc4.abimethod
 49 | def box_map_test(self) -> bool:
 50 |     key_0 = arc4.UInt64(0)
 51 |     
 52 |     # Create struct instance
 53 |     value = UserStruct(
 54 |         arc4.String("testName"),
 55 |         arc4.UInt64(70),
 56 |         arc4.UInt64(2)
 57 |     )
 58 | 
 59 |     # Store and verify
 60 |     self.user_map[key_0] = value.copy()
 61 |     
 62 |     # Verify byte length
 63 |     assert self.user_map[key_0].bytes.length == value.bytes.length
 64 |     assert self.user_map.length(key_0) == value.bytes.length
 65 |     return True
 66 | ```
 67 | 
 68 | ### Getting Values
 69 | 
 70 | ```python
 71 | @arc4.abimethod
 72 | def box_map_get(self, key: arc4.UInt64) -> UserStruct:
 73 |     # Retrieve struct from box storage
 74 |     return self.user_map[key]
 75 | ```
 76 | 
 77 | ### Checking Existence
 78 | 
 79 | ```python
 80 | @arc4.abimethod
 81 | def box_map_exists(self, key: arc4.UInt64) -> bool:
 82 |     # Check if key exists in box map
 83 |     return key in self.user_map
 84 | ```
 85 | 
 86 | ## Usage Examples
 87 | 
 88 | ### Creating and Storing a User
 89 | 
 90 | ```python
 91 | # Create user struct
 92 | user = UserStruct(
 93 |     name=arc4.String("Alice"),
 94 |     id=arc4.UInt64(1),
 95 |     asset=arc4.UInt64(100)
 96 | )
 97 | 
 98 | # Store in box map
 99 | key = arc4.UInt64(1)
100 | box_map_set(key, user)
101 | ```
102 | 
103 | ### Retrieving User Data
104 | 
105 | ```python
106 | # Get user by key
107 | key = arc4.UInt64(1)
108 | user = box_map_get(key)
109 | 
110 | # Access struct fields
111 | name = user.name      # arc4.String
112 | user_id = user.id     # arc4.UInt64
113 | asset = user.asset    # arc4.UInt64
114 | ```
115 | 
116 | ## Best Practices
117 | 
118 | 1. **Struct Design**:
119 |    - Use appropriate field types
120 |    - Keep structs focused and organized
121 |    - Consider field order for efficiency
122 |    - Document struct purpose and usage
123 | 
124 | 2. **Data Management**:
125 |    - Always use copy() when storing structs
126 |    - Verify stored data after writing
127 |    - Check existence before reading
128 |    - Handle missing data gracefully
129 | 
130 | 3. **Storage Efficiency**:
131 |    - Consider struct size limitations
132 |    - Use appropriate key prefixes
133 |    - Clean up unused storage
134 |    - Monitor storage usage
135 | 
136 | 4. **Type Safety**:
137 |    - Use proper type annotations
138 |    - Verify field types
139 |    - Handle type conversions carefully
140 |    - Test with various data types
141 | 
142 | 5. **Error Handling**:
143 |    - Check for missing keys
144 |    - Validate struct data
145 |    - Handle storage errors
146 |    - Provide clear error messages
147 | 
148 | 6. **Performance**:
149 |    - Minimize storage operations
150 |    - Use efficient data structures
151 |    - Consider storage costs
152 |    - Optimize access patterns
153 | 
154 | ## Common Patterns
155 | 
156 | 1. **User Data Storage**:
157 | ```python
158 | user = UserStruct(
159 |     arc4.String("username"),
160 |     arc4.UInt64(user_id),
161 |     arc4.UInt64(balance)
162 | )
163 | ```
164 | 
165 | 2. **Batch Operations**:
166 | ```python
167 | def update_multiple_users(self, users: list[UserStruct]) -> None:
168 |     for i, user in enumerate(users):
169 |         self.user_map[arc4.UInt64(i)] = user.copy()
170 | ```
171 | 
172 | 3. **Data Validation**:
173 | ```python
174 | def validate_user(self, user: UserStruct) -> bool:
175 |     return (
176 |         user.name.native != ""
177 |         and user.id.native > 0
178 |         and user.asset.native >= 0
179 |     )
180 | ```
181 | 
182 | This guide demonstrates how to effectively use structs with box storage in Algorand smart contracts. Understanding these concepts is crucial for developing applications that need to store and manage complex data structures efficiently.
183 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionParams.md:
--------------------------------------------------------------------------------

```markdown
  1 | [@algorandfoundation/algokit-utils](../README.md) / [types/transaction](../modules/types_transaction.md) / SendTransactionParams
  2 | 
  3 | # Interface: SendTransactionParams
  4 | 
  5 | [types/transaction](../modules/types_transaction.md).SendTransactionParams
  6 | 
  7 | The sending configuration for a transaction
  8 | 
  9 | ## Hierarchy
 10 | 
 11 | - **`SendTransactionParams`**
 12 | 
 13 |   ↳ [`AppCallParams`](types_app.AppCallParams.md)
 14 | 
 15 |   ↳ [`CreateAssetParams`](types_asset.CreateAssetParams.md)
 16 | 
 17 |   ↳ [`AssetOptInParams`](types_asset.AssetOptInParams.md)
 18 | 
 19 |   ↳ [`AlgoTransferParams`](types_transfer.AlgoTransferParams.md)
 20 | 
 21 |   ↳ [`AlgoRekeyParams`](types_transfer.AlgoRekeyParams.md)
 22 | 
 23 |   ↳ [`EnsureFundedParams`](types_transfer.EnsureFundedParams.md)
 24 | 
 25 |   ↳ [`TransferAssetParams`](types_transfer.TransferAssetParams.md)
 26 | 
 27 | ## Table of contents
 28 | 
 29 | ### Properties
 30 | 
 31 | - [atc](types_transaction.SendTransactionParams.md#atc)
 32 | - [fee](types_transaction.SendTransactionParams.md#fee)
 33 | - [maxFee](types_transaction.SendTransactionParams.md#maxfee)
 34 | - [maxRoundsToWaitForConfirmation](types_transaction.SendTransactionParams.md#maxroundstowaitforconfirmation)
 35 | - [populateAppCallResources](types_transaction.SendTransactionParams.md#populateappcallresources)
 36 | - [skipSending](types_transaction.SendTransactionParams.md#skipsending)
 37 | - [skipWaiting](types_transaction.SendTransactionParams.md#skipwaiting)
 38 | - [suppressLog](types_transaction.SendTransactionParams.md#suppresslog)
 39 | 
 40 | ## Properties
 41 | 
 42 | ### atc
 43 | 
 44 | • `Optional` **atc**: `AtomicTransactionComposer`
 45 | 
 46 | An optional `AtomicTransactionComposer` to add the transaction to, if specified then `skipSending: undefined` has the same effect as `skipSending: true`
 47 | 
 48 | #### Defined in
 49 | 
 50 | [src/types/transaction.ts:36](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L36)
 51 | 
 52 | ___
 53 | 
 54 | ### fee
 55 | 
 56 | • `Optional` **fee**: [`AlgoAmount`](../classes/types_amount.AlgoAmount.md)
 57 | 
 58 | The flat fee you want to pay, useful for covering extra fees in a transaction group or app call
 59 | 
 60 | #### Defined in
 61 | 
 62 | [src/types/transaction.ts:40](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L40)
 63 | 
 64 | ___
 65 | 
 66 | ### maxFee
 67 | 
 68 | • `Optional` **maxFee**: [`AlgoAmount`](../classes/types_amount.AlgoAmount.md)
 69 | 
 70 | The maximum fee that you are happy to pay (default: unbounded) - if this is set it's possible the transaction could get rejected during network congestion
 71 | 
 72 | #### Defined in
 73 | 
 74 | [src/types/transaction.ts:42](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L42)
 75 | 
 76 | ___
 77 | 
 78 | ### maxRoundsToWaitForConfirmation
 79 | 
 80 | • `Optional` **maxRoundsToWaitForConfirmation**: `number`
 81 | 
 82 | The maximum number of rounds to wait for confirmation, only applies if `skipWaiting` is `undefined` or `false`, default: wait up to 5 rounds
 83 | 
 84 | #### Defined in
 85 | 
 86 | [src/types/transaction.ts:44](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L44)
 87 | 
 88 | ___
 89 | 
 90 | ### populateAppCallResources
 91 | 
 92 | • `Optional` **populateAppCallResources**: `boolean`
 93 | 
 94 | Whether to use simulate to automatically populate app call resources in the txn objects. Defaults to true when there are app calls in the group.
 95 | 
 96 | #### Defined in
 97 | 
 98 | [src/types/transaction.ts:46](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L46)
 99 | 
100 | ___
101 | 
102 | ### skipSending
103 | 
104 | • `Optional` **skipSending**: `boolean`
105 | 
106 | Whether to skip signing and sending the transaction to the chain (default: transaction signed and sent to chain, unless `atc` specified)
107 | and instead just return the raw transaction, e.g. so you can add it to a group of transactions
108 | 
109 | #### Defined in
110 | 
111 | [src/types/transaction.ts:32](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L32)
112 | 
113 | ___
114 | 
115 | ### skipWaiting
116 | 
117 | • `Optional` **skipWaiting**: `boolean`
118 | 
119 | Whether to skip waiting for the submitted transaction (only relevant if `skipSending` is `false` or unset)
120 | 
121 | #### Defined in
122 | 
123 | [src/types/transaction.ts:34](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L34)
124 | 
125 | ___
126 | 
127 | ### suppressLog
128 | 
129 | • `Optional` **suppressLog**: `boolean`
130 | 
131 | Whether to suppress log messages from transaction send, default: do not suppress
132 | 
133 | #### Defined in
134 | 
135 | [src/types/transaction.ts:38](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L38)
136 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.DryrunRequest.md:
--------------------------------------------------------------------------------

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / DryrunRequest
  2 | 
  3 | # Class: DryrunRequest
  4 | 
  5 | [modelsv2](../modules/modelsv2.md).DryrunRequest
  6 | 
  7 | Request data type for dryrun endpoint. Given the Transactions and simulated
  8 | ledger state upload, run TEAL scripts and return debugging information.
  9 | 
 10 | ## Hierarchy
 11 | 
 12 | - `default`
 13 | 
 14 |   ↳ **`DryrunRequest`**
 15 | 
 16 | ## Table of contents
 17 | 
 18 | ### Constructors
 19 | 
 20 | - [constructor](modelsv2.DryrunRequest.md#constructor)
 21 | 
 22 | ### Properties
 23 | 
 24 | - [accounts](modelsv2.DryrunRequest.md#accounts)
 25 | - [apps](modelsv2.DryrunRequest.md#apps)
 26 | - [attribute\_map](modelsv2.DryrunRequest.md#attribute_map)
 27 | - [latestTimestamp](modelsv2.DryrunRequest.md#latesttimestamp)
 28 | - [protocolVersion](modelsv2.DryrunRequest.md#protocolversion)
 29 | - [round](modelsv2.DryrunRequest.md#round)
 30 | - [sources](modelsv2.DryrunRequest.md#sources)
 31 | - [txns](modelsv2.DryrunRequest.md#txns)
 32 | 
 33 | ### Methods
 34 | 
 35 | - [get\_obj\_for\_encoding](modelsv2.DryrunRequest.md#get_obj_for_encoding)
 36 | - [from\_obj\_for\_encoding](modelsv2.DryrunRequest.md#from_obj_for_encoding)
 37 | 
 38 | ## Constructors
 39 | 
 40 | ### constructor
 41 | 
 42 | • **new DryrunRequest**(`«destructured»`)
 43 | 
 44 | Creates a new `DryrunRequest` object.
 45 | 
 46 | #### Parameters
 47 | 
 48 | | Name | Type |
 49 | | :------ | :------ |
 50 | | `«destructured»` | `Object` |
 51 | | › `accounts` | [`Account`](modelsv2.Account.md)[] |
 52 | | › `apps` | [`Application`](modelsv2.Application.md)[] |
 53 | | › `latestTimestamp` | `number` \| `bigint` |
 54 | | › `protocolVersion` | `string` |
 55 | | › `round` | `number` \| `bigint` |
 56 | | › `sources` | [`DryrunSource`](modelsv2.DryrunSource.md)[] |
 57 | | › `txns` | [`EncodedSignedTransaction`](../interfaces/EncodedSignedTransaction.md)[] |
 58 | 
 59 | #### Overrides
 60 | 
 61 | BaseModel.constructor
 62 | 
 63 | #### Defined in
 64 | 
 65 | client/v2/algod/models/types.ts:2647
 66 | 
 67 | ## Properties
 68 | 
 69 | ### accounts
 70 | 
 71 | • **accounts**: [`Account`](modelsv2.Account.md)[]
 72 | 
 73 | #### Defined in
 74 | 
 75 | client/v2/algod/models/types.ts:2608
 76 | 
 77 | ___
 78 | 
 79 | ### apps
 80 | 
 81 | • **apps**: [`Application`](modelsv2.Application.md)[]
 82 | 
 83 | #### Defined in
 84 | 
 85 | client/v2/algod/models/types.ts:2610
 86 | 
 87 | ___
 88 | 
 89 | ### attribute\_map
 90 | 
 91 | • **attribute\_map**: `Record`\<`string`, `string`\>
 92 | 
 93 | #### Inherited from
 94 | 
 95 | BaseModel.attribute\_map
 96 | 
 97 | #### Defined in
 98 | 
 99 | client/v2/basemodel.ts:56
100 | 
101 | ___
102 | 
103 | ### latestTimestamp
104 | 
105 | • **latestTimestamp**: `number` \| `bigint`
106 | 
107 | LatestTimestamp is available to some TEAL scripts. Defaults to the latest
108 | confirmed timestamp this algod is attached to.
109 | 
110 | #### Defined in
111 | 
112 | client/v2/algod/models/types.ts:2616
113 | 
114 | ___
115 | 
116 | ### protocolVersion
117 | 
118 | • **protocolVersion**: `string`
119 | 
120 | ProtocolVersion specifies a specific version string to operate under, otherwise
121 | whatever the current protocol of the network this algod is running in.
122 | 
123 | #### Defined in
124 | 
125 | client/v2/algod/models/types.ts:2622
126 | 
127 | ___
128 | 
129 | ### round
130 | 
131 | • **round**: `number` \| `bigint`
132 | 
133 | Round is available to some TEAL scripts. Defaults to the current round on the
134 | network this algod is attached to.
135 | 
136 | #### Defined in
137 | 
138 | client/v2/algod/models/types.ts:2628
139 | 
140 | ___
141 | 
142 | ### sources
143 | 
144 | • **sources**: [`DryrunSource`](modelsv2.DryrunSource.md)[]
145 | 
146 | #### Defined in
147 | 
148 | client/v2/algod/models/types.ts:2630
149 | 
150 | ___
151 | 
152 | ### txns
153 | 
154 | • **txns**: [`EncodedSignedTransaction`](../interfaces/EncodedSignedTransaction.md)[]
155 | 
156 | #### Defined in
157 | 
158 | client/v2/algod/models/types.ts:2632
159 | 
160 | ## Methods
161 | 
162 | ### get\_obj\_for\_encoding
163 | 
164 | ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
165 | 
166 | Get an object ready for encoding to either JSON or msgpack.
167 | 
168 | #### Parameters
169 | 
170 | | Name | Type | Default value | Description |
171 | | :------ | :------ | :------ | :------ |
172 | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
173 | 
174 | #### Returns
175 | 
176 | `Record`\<`string`, `any`\>
177 | 
178 | #### Inherited from
179 | 
180 | BaseModel.get\_obj\_for\_encoding
181 | 
182 | #### Defined in
183 | 
184 | client/v2/basemodel.ts:65
185 | 
186 | ___
187 | 
188 | ### from\_obj\_for\_encoding
189 | 
190 | ▸ `Static` **from_obj_for_encoding**(`data`): [`DryrunRequest`](modelsv2.DryrunRequest.md)
191 | 
192 | #### Parameters
193 | 
194 | | Name | Type |
195 | | :------ | :------ |
196 | | `data` | `Record`\<`string`, `any`\> |
197 | 
198 | #### Returns
199 | 
200 | [`DryrunRequest`](modelsv2.DryrunRequest.md)
201 | 
202 | #### Defined in
203 | 
204 | client/v2/algod/models/types.ts:2685
205 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:tasks:mint.md:
--------------------------------------------------------------------------------

```markdown
 1 | # AlgoKit Task Mint
 2 | 
 3 | The AlgoKit Mint feature allows you to mint new fungible or non-fungible assets on the Algorand blockchain. This feature supports the creation of assets, validation of asset parameters, and uploading of asset metadata and image to IPFS using the Piñata provider. Immutable assets are compliant with [ARC3](https://arc.algorand.foundation/ARCs/arc-0003), while mutable are based using [ARC19](https://arc.algorand.foundation/ARCs/arc-0019) standard.
 4 | 
 5 | ## Usage
 6 | 
 7 | Available commands and possible usage as follows:
 8 | 
 9 | ```bash
10 | Usage: algokit task mint [OPTIONS]
11 | 
12 |   Mint new fungible or non-fungible assets on Algorand.
13 | 
14 | Options:
15 |   --creator TEXT                  Address or alias of the asset creator.  [required]
16 |   -n, --name TEXT                 Asset name.  [required]
17 |   -u, --unit TEXT                 Unit name of the asset.  [required]
18 |   -t, --total INTEGER             Total supply of the asset. Defaults to 1.
19 |   -d, --decimals INTEGER          Number of decimals. Defaults to 0.
20 |   -i, --image FILE                Path to the asset image file to be uploaded to IPFS.  [required]
21 |   -m, --metadata FILE             Path to the ARC19 compliant asset metadata file to be uploaded to IPFS. If not
22 |                                   provided, a default metadata object will be generated automatically based on asset-
23 |                                   name, decimals and image. For more details refer to
24 |                                   https://arc.algorand.foundation/ARCs/arc-0003#json-metadata-file-schema.
25 |   --mutable / --immutable         Whether the asset should be mutable or immutable. Refers to `ARC19` by default.
26 |   --nft / --ft                    Whether the asset should be validated as NFT or FT. Refers to NFT by default and
27 |                                   validates canonical definitions of pure or fractional NFTs as per ARC3 standard.
28 |   -n, --network [localnet|testnet|mainnet]
29 |                                   Network to use. Refers to `localnet` by default.
30 |   -h, --help                      Show this message and exit.
31 | ```
32 | 
33 | ## Options
34 | 
35 | - `--creator TEXT`: Specifies the address or alias of the asset creator. This option is required.
36 | - `-n, --name TEXT`: Specifies the asset name. This option is required.
37 | - `-u, --unit TEXT`: Specifies the unit name of the asset. This option is required.
38 | - `-t, --total INTEGER`: Specifies the total supply of the asset. Defaults to 1.
39 | - `-d, --decimals INTEGER`: Specifies the number of decimals. Defaults to 0.
40 | - `-i, --image PATH`: Specifies the path to the asset image file to be uploaded to IPFS. This option is required.
41 | - `-m, --metadata PATH`: Specifies the path to the ARC19 compliant asset metadata file to be uploaded to IPFS. If not provided, a default metadata object will be generated automatically based on asset-name, decimals and image.
42 | - `--mutable / --immutable`: Specifies whether the asset should be mutable or immutable. Refers to `ARC19` by default.
43 | - `--nft / --ft`: Specifies whether the asset should be validated as NFT or FT. Refers to NFT by default and validates canonical definitions of pure or fractional NFTs as per ARC3 standard.
44 | - `-n, --network [localnet|testnet|mainnet]`: Specifies the network to use. Refers to `localnet` by default.
45 | 
46 | ## Example
47 | 
48 | To mint a new asset in interactive mode, you can use the mint command as follows:
49 | 
50 | ```bash
51 | $ algokit task mint
52 | ```
53 | 
54 | This will interactively prompt you for the required information, upload the asset image and metadata to IPFS using the Piñata provider and mint a new asset on the Algorand blockchain. The [asset's metadata](https://arc.algorand.foundation/ARCs/arc-0003#json-metadata-file-schema) will be generated automatically based on the provided asset name, decimals, and image.
55 | 
56 | If you want to provide a custom metadata file, you can use the --metadata flag:
57 | 
58 | ```bash
59 | $ algokit task mint --metadata {PATH_TO_METADATA}
60 | ```
61 | 
62 | If the minting process is successful, the asset ID and transaction ID will be output to the console.
63 | 
64 | For non interactive mode, refer to usage section above for available options.
65 | 
66 | > Please note, creator account must have at least 0.2 Algos available to cover minimum balance requirements.
67 | 
68 | ## Further Reading
69 | 
70 | For in-depth details, visit the [mint section](../../cli/index.md#mint) in the AlgoKit CLI reference documentation.
71 | 
```

--------------------------------------------------------------------------------
/llms-install.md:
--------------------------------------------------------------------------------

```markdown
  1 | # Algorand MCP Server Installation Guide
  2 | 
  3 | This guide is specifically designed for AI agents like Cursor and Claude Desktop to install and configure the Algorand MCP server for use with LLM applications like Claude Desktop, Cursor and Roo Code.
  4 | 
  5 | ## Overview
  6 | 
  7 | The Algorand MCP server provides a comprehensive set of tools and resources for interacting with the Algorand blockchain through the Model Context Protocol (MCP). It enables AI assistants to perform operations like creating accounts, managing assets, deploying smart contracts, and executing transactions on the Algorand network.
  8 | 
  9 | ## Prerequisites
 10 | 
 11 | Before installation, you need:
 12 | 
 13 | 1. Node.js v23.6.1 or later
 14 | 2. npm v10.2.4 or later
 15 | 3. Access to Algorand node (mainnet or testnet)
 16 | 
 17 | ## Installation and Configuration
 18 | 
 19 | ### Configure MCP Settings
 20 | 
 21 | Add the Algorand MCP server configuration to your MCP settings file based on your LLM client:
 22 | 
 23 | #### Configuration File Locations
 24 | 
 25 | Add configuration to your chosen client's MCP settings file:
 26 | 
 27 | ```json
 28 | {
 29 |   "mcpServers": {
 30 |     "algorand": {
 31 |       "command": "node",
 32 |       "args": ["/path/to/algorand-mcp/packages/server/dist/index.js"],
 33 |       "disabled": false,
 34 |       "autoApprove": [],
 35 |       "env": {
 36 |         "ALGORAND_NETWORK": "testnet",
 37 |         "ALGORAND_ALGOD_API": "https://testnet-api.algonode.cloud/v2",
 38 |         "ALGORAND_ALGOD": "https://testnet-api.algonode.cloud",
 39 |         "ALGORAND_INDEXER_API": "https://testnet-idx.algonode.cloud/v2",
 40 |         "ALGORAND_INDEXER": "https://testnet-idx.algonode.cloud",
 41 |         "ITEMS_PER_PAGE": "10",
 42 |         "ALGORAND_AGENT_WALLET": ""
 43 |       }
 44 |     }
 45 |   }
 46 | }
 47 | ```
 48 | 
 49 | Replace `/path/to/algorand-mcp` with the actual path where the server is installed.
 50 | 
 51 | ## Tool Categories
 52 | 
 53 | ### 1. Transaction Tools
 54 | - Account Transactions (payments, key registration)
 55 | - Asset Transactions (create, configure, transfer)
 56 | - Application Transactions (deploy, update, call)
 57 | - General Transaction Tools (signing, grouping)
 58 | 
 59 | ### 2. API Tools
 60 | - Algod API (node interaction, account info)
 61 | - Indexer API (blockchain queries, history)
 62 | 
 63 | ### 3. Utility Tools
 64 | - Address Management
 65 | - Byte Conversion
 66 | - Application Tools
 67 | 
 68 | ### 4. ARC-26 Tools
 69 | - URI Generation
 70 | - QR Code Creation
 71 | 
 72 | ## Verify Installation
 73 | 
 74 | To verify the installation is working:
 75 | 
 76 | 1. Restart your LLM application (Cursor, Claude Desktop, etc.)
 77 | 
 78 | 2. Test Transaction Tools:
 79 |    ```
 80 |    Create a payment transaction using the transaction tools.
 81 |    ```
 82 | 
 83 | 3. Test API Tools:
 84 |    ```
 85 |    Get account information using the Algod API tools.
 86 |    ```
 87 | 
 88 | 4. Test Utility Tools:
 89 |    ```
 90 |    Validate an Algorand address using the utility tools.
 91 |    ```
 92 | 
 93 | 5. Test Resources:
 94 |    ```
 95 |    Access wallet information using the wallet resources.
 96 |    ```
 97 | 
 98 | ## Available Resources
 99 | 
100 | ### Wallet Resources
101 | - Secret/Public Key Management
102 | - Mnemonic Access
103 | - Address Management
104 | - Balance/Asset Tracking
105 | 
106 | ### Knowledge Resources
107 | - Algorand Documentation
108 | - Development Guides
109 | - SDK References
110 | - Best Practices
111 | 
112 | ## Troubleshooting
113 | 
114 | ### Common Issues and Solutions
115 | 
116 | 1. **Node Connection Issues**
117 |    - Verify Algorand node URLs are correct
118 |    - Check network selection (mainnet/testnet)
119 |    - Ensure node is accessible
120 | 
121 | 2. **Transaction Failures**
122 |    - Verify account has sufficient funds
123 |    - Check transaction parameters
124 |    - Validate asset configurations
125 | 
126 | 3. **Resource Access Issues**
127 |    - Verify wallet configuration
128 |    - Check environment variables
129 |    - Validate resource URIs
130 | 
131 | ### Tool-Specific Issues
132 | 
133 | #### Transaction Tools
134 | - Group size limits
135 | - Proper transaction ordering
136 | - Signature requirements
137 | 
138 | #### API Tools
139 | - Rate limiting considerations
140 | - Response pagination
141 | - Error handling
142 | 
143 | #### Utility Tools
144 | - Input validation
145 | - Encoding formats
146 | - Type conversions
147 | 
148 | ## Security Considerations
149 | 
150 | 1. **Wallet Security**
151 |    - Secure storage of mnemonics
152 |    - Key management best practices
153 |    - Access control
154 | 
155 | 2. **Transaction Safety**
156 |    - Parameter validation
157 |    - Amount verification
158 |    - Asset verification
159 | 
160 | 3. **API Security**
161 |    - Node authentication
162 |    - Request validation
163 |    - Error handling
164 | 
165 | ## Additional Information
166 | 
167 | For more detailed information:
168 | - [Visit the Algorand MCP Smithery](https://smithery.ai/server/@GoPlausible/algorand-mcp)
169 | - Check the [Algorand MCP Server Documentation](https://github.com/GoPlausible/algorand-mcp)
170 | - Visit the builder's website at [GoPlausible](https://goplausible.com/)
171 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:modules:indexerModels.md:
--------------------------------------------------------------------------------

```markdown
 1 | [algosdk](../README.md) / [Exports](../modules.md) / indexerModels
 2 | 
 3 | # Namespace: indexerModels
 4 | 
 5 | ## Table of contents
 6 | 
 7 | ### Classes
 8 | 
 9 | - [Account](../classes/indexerModels.Account.md)
10 | - [AccountParticipation](../classes/indexerModels.AccountParticipation.md)
11 | - [AccountResponse](../classes/indexerModels.AccountResponse.md)
12 | - [AccountStateDelta](../classes/indexerModels.AccountStateDelta.md)
13 | - [AccountsResponse](../classes/indexerModels.AccountsResponse.md)
14 | - [Application](../classes/indexerModels.Application.md)
15 | - [ApplicationLocalState](../classes/indexerModels.ApplicationLocalState.md)
16 | - [ApplicationLocalStatesResponse](../classes/indexerModels.ApplicationLocalStatesResponse.md)
17 | - [ApplicationLogData](../classes/indexerModels.ApplicationLogData.md)
18 | - [ApplicationLogsResponse](../classes/indexerModels.ApplicationLogsResponse.md)
19 | - [ApplicationParams](../classes/indexerModels.ApplicationParams.md)
20 | - [ApplicationResponse](../classes/indexerModels.ApplicationResponse.md)
21 | - [ApplicationStateSchema](../classes/indexerModels.ApplicationStateSchema.md)
22 | - [ApplicationsResponse](../classes/indexerModels.ApplicationsResponse.md)
23 | - [Asset](../classes/indexerModels.Asset.md)
24 | - [AssetBalancesResponse](../classes/indexerModels.AssetBalancesResponse.md)
25 | - [AssetHolding](../classes/indexerModels.AssetHolding.md)
26 | - [AssetHoldingsResponse](../classes/indexerModels.AssetHoldingsResponse.md)
27 | - [AssetParams](../classes/indexerModels.AssetParams.md)
28 | - [AssetResponse](../classes/indexerModels.AssetResponse.md)
29 | - [AssetsResponse](../classes/indexerModels.AssetsResponse.md)
30 | - [Block](../classes/indexerModels.Block.md)
31 | - [BlockRewards](../classes/indexerModels.BlockRewards.md)
32 | - [BlockUpgradeState](../classes/indexerModels.BlockUpgradeState.md)
33 | - [BlockUpgradeVote](../classes/indexerModels.BlockUpgradeVote.md)
34 | - [Box](../classes/indexerModels.Box.md)
35 | - [BoxDescriptor](../classes/indexerModels.BoxDescriptor.md)
36 | - [BoxesResponse](../classes/indexerModels.BoxesResponse.md)
37 | - [ErrorResponse](../classes/indexerModels.ErrorResponse.md)
38 | - [EvalDelta](../classes/indexerModels.EvalDelta.md)
39 | - [EvalDeltaKeyValue](../classes/indexerModels.EvalDeltaKeyValue.md)
40 | - [HashFactory](../classes/indexerModels.HashFactory.md)
41 | - [HealthCheck](../classes/indexerModels.HealthCheck.md)
42 | - [IndexerStateProofMessage](../classes/indexerModels.IndexerStateProofMessage.md)
43 | - [MerkleArrayProof](../classes/indexerModels.MerkleArrayProof.md)
44 | - [MiniAssetHolding](../classes/indexerModels.MiniAssetHolding.md)
45 | - [ParticipationUpdates](../classes/indexerModels.ParticipationUpdates.md)
46 | - [StateProofFields](../classes/indexerModels.StateProofFields.md)
47 | - [StateProofParticipant](../classes/indexerModels.StateProofParticipant.md)
48 | - [StateProofReveal](../classes/indexerModels.StateProofReveal.md)
49 | - [StateProofSigSlot](../classes/indexerModels.StateProofSigSlot.md)
50 | - [StateProofSignature](../classes/indexerModels.StateProofSignature.md)
51 | - [StateProofTracking](../classes/indexerModels.StateProofTracking.md)
52 | - [StateProofVerifier](../classes/indexerModels.StateProofVerifier.md)
53 | - [StateSchema](../classes/indexerModels.StateSchema.md)
54 | - [TealKeyValue](../classes/indexerModels.TealKeyValue.md)
55 | - [TealValue](../classes/indexerModels.TealValue.md)
56 | - [Transaction](../classes/indexerModels.Transaction.md)
57 | - [TransactionApplication](../classes/indexerModels.TransactionApplication.md)
58 | - [TransactionAssetConfig](../classes/indexerModels.TransactionAssetConfig.md)
59 | - [TransactionAssetFreeze](../classes/indexerModels.TransactionAssetFreeze.md)
60 | - [TransactionAssetTransfer](../classes/indexerModels.TransactionAssetTransfer.md)
61 | - [TransactionKeyreg](../classes/indexerModels.TransactionKeyreg.md)
62 | - [TransactionPayment](../classes/indexerModels.TransactionPayment.md)
63 | - [TransactionResponse](../classes/indexerModels.TransactionResponse.md)
64 | - [TransactionSignature](../classes/indexerModels.TransactionSignature.md)
65 | - [TransactionSignatureLogicsig](../classes/indexerModels.TransactionSignatureLogicsig.md)
66 | - [TransactionSignatureMultisig](../classes/indexerModels.TransactionSignatureMultisig.md)
67 | - [TransactionSignatureMultisigSubsignature](../classes/indexerModels.TransactionSignatureMultisigSubsignature.md)
68 | - [TransactionStateProof](../classes/indexerModels.TransactionStateProof.md)
69 | - [TransactionsResponse](../classes/indexerModels.TransactionsResponse.md)
70 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:python:README.md:
--------------------------------------------------------------------------------

```markdown
  1 | # py-algorand-sdk
  2 | 
  3 | [![PyPI version](https://badge.fury.io/py/py-algorand-sdk.svg)](https://badge.fury.io/py/py-algorand-sdk)
  4 | [![Documentation Status](https://readthedocs.org/projects/py-algorand-sdk/badge/?version=latest&style=flat)](https://py-algorand-sdk.readthedocs.io/en/latest)
  5 | [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
  6 | 
  7 | A python library for interacting with the Algorand network.
  8 | 
  9 | ## Installation
 10 | 
 11 | Run `$ pip3 install py-algorand-sdk` to install the package.
 12 | 
 13 | Alternatively, choose a [distribution file](https://pypi.org/project/py-algorand-sdk/#files), and run `$ pip3 install [file name]`.
 14 | 
 15 | ## Supported Python versions
 16 | 
 17 | py-algorand-sdk's minimum Python version policy attempts to balance several constraints.
 18 | 
 19 | * Make it easy for the community to use py-algorand-sdk by minimizing or excluding the need to customize Python installations.
 20 | * Provide maintainers with access to newer language features that produce more robust software.
 21 | 
 22 | Given these constraints, the minimum Python version policy is:
 23 | Target Python version on newest [Ubuntu LTS](https://wiki.ubuntu.com/Releases) released >= 6 months ago.
 24 | 
 25 | The rationale is:
 26 | 
 27 | * If a major Linux OS distribution bumps a Python version, then it's sufficiently available to the community for us to upgrade.
 28 | * The 6 month time buffer ensures we delay upgrades until the community starts using a recently released LTS version.
 29 | 
 30 | ## SDK Development
 31 | 
 32 | Install dependencies
 33 | 
 34 | * `pip3 install -r requirements.txt`
 35 | 
 36 | Run tests
 37 | 
 38 | * `make docker-test`
 39 | 
 40 | Set up the Algorand Sandbox based test-harness without running the tests
 41 | 
 42 | * `make harness`
 43 | 
 44 | Format code
 45 | 
 46 | * `black .`
 47 | 
 48 | Update `algosdk/__init__.pyi` which allows downstream developers importing `algosdk` and using VSCode's PyLance to have improved type analysis
 49 | 
 50 | * `make generate-init`
 51 | 
 52 | Lint types
 53 | 
 54 | * `make mypy` (or `mypy algosdk`)
 55 | 
 56 | Check all lints required by the C.I. process
 57 | 
 58 | * `make lint`
 59 | 
 60 | Run non-test-harness related unit tests
 61 | 
 62 | * `make pytest-unit`
 63 | 
 64 | We use cucumber testing for all of our SDKs, including this one. Please refer to [algorand-sdk-testing](https://github.com/algorand/algorand-sdk-testing#readme) for guidance and existing tests that you may need to update. Depending on the type of update you wish to contribute, you may also need to have corresponding updates in the other SDKs (Go, JS, and Java). Feel welcome to ask for collaboration on that front. 
 65 | 
 66 | ## Quick start
 67 | 
 68 | Here's a simple example you can run without a node.
 69 | 
 70 | ```python
 71 | from algosdk import account, encoding
 72 | 
 73 | # generate an account
 74 | private_key, address = account.generate_account()
 75 | print("Private key:", private_key)
 76 | print("Address:", address)
 77 | 
 78 | # check if the address is valid
 79 | if encoding.is_valid_address(address):
 80 |     print("The address is valid!")
 81 | else:
 82 |     print("The address is invalid.")
 83 | ```
 84 | 
 85 | ## Node setup
 86 | 
 87 | Follow the instructions in Algorand's [developer resources](https://developer.algorand.org/docs/run-a-node/setup/install/) to install a node on your computer.
 88 | You can also set up a local [Algorand Sandbox](https://github.com/algorand/sandbox) with `make harness`.
 89 | 
 90 | ## Running examples/example.py
 91 | 
 92 | Before running [example.py](https://github.com/algorand/py-algorand-sdk/blob/master/examples/example.py), start kmd on a private network or testnet node:
 93 | 
 94 | ```bash
 95 | ./goal kmd start -d [data directory]
 96 | ```
 97 | 
 98 | Next, create a wallet and an account:
 99 | 
100 | ```bash
101 | ./goal wallet new [wallet name] -d [data directory]
102 | ```
103 | 
104 | ```bash
105 | ./goal account new -d [data directory] -w [wallet name]
106 | ```
107 | 
108 | Visit the [Algorand dispenser](https://bank.testnet.algorand.network/) and enter the account address to fund your account.
109 | 
110 | Next, in [tokens.py](https://github.com/algorand/py-algorand-sdk/blob/master/examples/tokens.py), either update the tokens and addresses, or provide a path to the data directory. Alternatively, `tokens.py` also defaults to the sandbox harness configurations for algod and kmd, which can be brought up by running `make harness`.
111 | 
112 | You're now ready to run example.py!
113 | 
114 | ## Documentation
115 | 
116 | Documentation for the Python SDK is available at [py-algorand-sdk.readthedocs.io](https://py-algorand-sdk.readthedocs.io/en/latest/).
117 | 
118 | ## License
119 | 
120 | py-algorand-sdk is licensed under an MIT license. See the [LICENSE](https://github.com/algorand/py-algorand-sdk/blob/master/LICENSE) file for details.
121 | 
```
Page 17/93FirstPrevNextLast