#
tokens: 49541/50000 33/942 files (page 6/93)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 6 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/puya:docs:lg-modules.md:
--------------------------------------------------------------------------------

```markdown
 1 | # Module level constructs
 2 | 
 3 | You can write compile-time constant code at a module level and then use them in place of [Python built-in literal types](./lg-types.md#python-built-in-types).
 4 | 
 5 | For a full example of what syntax is currently possible see the [test case example](https://github.com/algorandfoundation/puya/blob/main/test_cases/module_consts/contract.py).
 6 | 
 7 | ## Module constants
 8 | 
 9 | Module constants are compile-time constant, and can contain `bool`, `int`, `str` and `bytes`.
10 | 
11 | You can use fstrings and other compile-time constant values in module constants too.
12 | 
13 | For example:
14 | 
15 | ```python
16 | from algopy import UInt64, subroutine
17 | 
18 | SCALE = 100000
19 | SCALED_PI = 314159
20 | 
21 | @subroutine
22 | def circle_area(radius: UInt64) -> UInt64:
23 |     scaled_result = SCALED_PI * radius**2
24 |     result = scaled_result // SCALE
25 |     return result
26 | 
27 | @subroutine
28 | def circle_area_100() -> UInt64:
29 |     return circle_area(UInt64(100))
30 | ```
31 | 
32 | ## If statements
33 | 
34 | You can use if statements with compile-time constants in module constants.
35 | 
36 | For example:
37 | 
38 | ```python
39 | FOO = 42
40 | 
41 | if FOO > 12:
42 |     BAR = 123
43 | else:
44 |     BAR = 456
45 | ```
46 | 
47 | ## Integer math
48 | 
49 | Module constants can also be defined using common integer expressions.
50 | 
51 | For example:
52 | 
53 | ```python
54 | SEVEN = 7
55 | TEN = 7 + 3
56 | FORTY_NINE = 7 ** 2
57 | ```
58 | 
59 | ## Strings
60 | 
61 | Module `str` constants can use f-string formatting and other common string expressions.
62 | 
63 | For example:
64 | 
65 | ```python
66 | NAME = "There"
67 | MY_FORMATTED_STRING = f"Hello {NAME}" # Hello There
68 | PADDED = f"{123:05}" # "00123"
69 | DUPLICATED = "5" * 3 # "555"
70 | ```
71 | 
72 | ## Type aliases
73 | 
74 | You can create type aliases to make your contract terser and more expressive.
75 | 
76 | For example:
77 | 
78 | ```python
79 | import typing
80 | 
81 | from algopy import arc4
82 | VoteIndexArray: typing.TypeAlias = arc4.DynamicArray[arc4.UInt8]
83 | 
84 | Row: typing.TypeAlias = arc4.StaticArray[arc4.UInt8, typing.Literal[3]]
85 | Game: typing.TypeAlias = arc4.StaticArray[Row, typing.Literal[3]]
86 | Move: typing.TypeAlias = tuple[arc4.UInt64, arc4.UInt64]
87 | 
88 | Bytes32: typing.TypeAlias = arc4.StaticArray[arc4.Byte, typing.Literal[32]]
89 | Proof: typing.TypeAlias = arc4.DynamicArray[Bytes32]
90 | ```
91 | 
```

--------------------------------------------------------------------------------
/packages/client/src/env.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import * as dotenv from 'dotenv';
 2 | import { resolve } from 'path';
 3 | 
 4 | // Try to load .env file from client package root
 5 | dotenv.config({ path: resolve(__dirname, '../.env') });
 6 | 
 7 | interface EnvConfig {
 8 |   algorand_network: string;
 9 |   algorand_algod: string;
10 |   algorand_algod_api: string;
11 |   algorand_indexer: string;
12 |   algorand_indexer_api: string;
13 |   algorand_algod_port: string | null;
14 |   algorand_indexer_port: string | null;
15 |   algorand_token: string | null;
16 |   goplausible_account: string;
17 |   algorand_agent_wallet: string;
18 | }
19 | 
20 | // Default values if .env is not present
21 | const defaultConfig: EnvConfig = {
22 |   algorand_network: 'testnet',
23 |   algorand_algod_api: 'https://testnet-api.algonode.cloud/v2',
24 |   algorand_algod: 'https://testnet-api.algonode.cloud',
25 |   algorand_indexer_api: 'https://testnet-idx.algonode.cloud/v2',
26 |   algorand_indexer: 'https://testnet-idx.algonode.cloud',
27 |   algorand_algod_port: null,
28 |   algorand_indexer_port: null,
29 |   algorand_token: null,
30 |   goplausible_account: '',
31 |   algorand_agent_wallet: '',
32 | };
33 | 
34 | // Get environment variable with fallback to default
35 | const getEnvVar = (key: keyof EnvConfig): string | null => {
36 |   const envKey = `ALGORAND_${key.toUpperCase()}`;
37 |   if (key === 'goplausible_account') {
38 |     return process.env.GOPLAUSIBLE_ACCOUNT || defaultConfig[key];
39 |   }
40 |   return process.env[envKey] || defaultConfig[key];
41 | };
42 | 
43 | // Build config object using environment variables or defaults
44 | export const env: EnvConfig = {
45 |   algorand_network: getEnvVar('algorand_network') as string,
46 |   algorand_algod: getEnvVar('algorand_algod') as string,
47 |   algorand_algod_api: getEnvVar('algorand_algod_api') as string,
48 |   algorand_indexer: getEnvVar('algorand_indexer') as string,
49 |   algorand_indexer_api: getEnvVar('algorand_indexer_api') as string,
50 |   algorand_algod_port: getEnvVar('algorand_algod_port'),
51 |   algorand_indexer_port: getEnvVar('algorand_indexer_port'),
52 |   algorand_token: getEnvVar('algorand_token'),
53 |   goplausible_account: getEnvVar('goplausible_account') as string,
54 |   algorand_agent_wallet: getEnvVar('algorand_agent_wallet') as string,
55 | };
56 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/liquid-auth:docs:server:environment-variables.md:
--------------------------------------------------------------------------------

```markdown
 1 | ---
 2 | title: "Server: Configuration"
 3 | sidebar:
 4 |   order: 2
 5 |   label: 'Configuration'
 6 | ---
 7 | 
 8 | All configurations are set using environment variables.
 9 | Creating a `.env.docker` file is recommended to store all the environment variables required to run the server.
10 | 
11 | The following sections describe the environment variables required to run the server.
12 | 
13 | ## Environment Variables
14 | 
15 | Attestations and Assertions require a valid `RP_NAME`, `HOSTNAME`, and `ORIGIN` to be set.
16 | `ORIGIN` and `HOSTNAME` must be set to a valid domain secured with HTTPS.
17 | 
18 | ```sh
19 | RP_NAME=<SERVICE_NAME> # Friendly name of the service
20 | HOSTNAME=<DOMAIN_NAME> # Hostname of the service
21 | ORIGIN=https://<DOMAIN_NAME> # Origin of the service
22 | ```
23 | 
24 | If you are using a custom Android client, make sure to update the `SHA256` fingerprint.
25 | 
26 | ```bash
27 | ANDROID_SHA256HASH=<00:00:...> # SHA256 fingerprint of the Android client
28 | ANDROID_PACKAGENAME=<com.example.my-wallet> # Package name of the Android client
29 | ```
30 | 
31 | Configuration for MongoDB
32 | 
33 | ```bash
34 | DB_HOST=<MONGO_DB_HOST:PORT> # Hostname of the MongoDB instance
35 | DB_USERNAME=<MONGO_DB_USERNAME> # Username for the MongoDB instance
36 | DB_PASSWORD=<MONGO_DB_PASSWORD> # Password for the MongoDB instance
37 | DB_NAME=<MONGO_DB_NAME> # Database name
38 | DB_ATLAS=false # Set to true if using MongoDB Atlas
39 | ```
40 | 
41 | Configuration for Redis
42 | 
43 | ```bash
44 | REDIS_HOST=<REDIS_HOST> # Hostname of the Redis instance
45 | REDIS_PORT=<REDIS_PORT> # Port for the Redis instance
46 | REDIS_USERNAME=<REDIS_USERNAME> # Username for the Redis instance
47 | REDIS_PASSWORD= # Password for the Redis instance
48 | ```
49 | 
50 | ## Full Example 
51 | 
52 | ```bash
53 | # .env.docker
54 | 
55 | # Database
56 | DB_HOST=mongo:27017
57 | DB_USERNAME=algorand
58 | DB_PASSWORD=algorand
59 | DB_NAME=fido
60 | DB_ATLAS=false
61 | 
62 | # Events
63 | REDIS_HOST=redis
64 | REDIS_PORT=6379
65 | REDIS_USERNAME=default
66 | REDIS_PASSWORD=
67 | 
68 | # FIDO2
69 | RP_NAME="Auth Server"
70 | HOSTNAME=my-static-domain.ngrok-free.app
71 | ORIGIN=https://my-static-domain.ngrok-free.app
72 | 
73 | ANDROID_SHA256HASH=47:CC:4E:EE:B9:50:59:A5:8B:E0:19:45:CA:0A:6D:59:16:F9:A9:C2:96:75:F8:F3:64:86:92:46:2B:7D:5D:5C
74 | ANDROID_PACKAGENAME=foundation.algorand.demo
75 | ```
76 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/tealscript:guides_multiple_contracts.md:
--------------------------------------------------------------------------------

```markdown
 1 | ---
 2 | title: Multiple Contracts
 3 | ---
 4 | 
 5 | ## Inheritance
 6 | 
 7 | You can inherit another Contract or LogicSig in order to inherit all of the class properties (state, events, scratch, etc.) and methods.
 8 | 
 9 | ```ts
10 | export class BaseContract extends Contract {
11 |     favoriteNumber = GlobalStateKey<uint64>()
12 |     
13 |     private setNumber(n: uint64): void {
14 |         this.favoriteNumber.value = n
15 |     }
16 | }
17 | 
18 | export class AnotherContract extends BaseContract {
19 |     checkNumber(): void {
20 |         this.setNumber(42)
21 |         assert(this.favoriteNumber.value === 42)
22 |     }
23 | }
24 | ```
25 | 
26 | ## Importing and Inheritance
27 | 
28 | TEALScript supports importing any `Contract`, `LogicSig`, const, or type from another TEALScript file. 
29 | 
30 | ```ts
31 | // base_contract.algo.ts
32 | export class BaseContract extends Contract {
33 |     favoriteNumber = GlobalStateKey<uint64>()
34 |     
35 |     private setNumber(n: uint64): void {
36 |         this.favoriteNumber.value = n
37 |     }
38 | }
39 | ```
40 | 
41 | ```ts
42 | // another_contract.algo.ts
43 | import { BaseContract } from './base_contract.algo.ts'
44 | 
45 | export class AnotherContract extends BaseContract {
46 |     checkNumber(): void {
47 |         this.setNumber(42)
48 |         assert(this.favoriteNumber.value === 42)
49 |     }
50 | }
51 | ```
52 | 
53 | ## App Programs and Schema
54 | 
55 | To access the program or schema of another TEALScript app you can use the `.approvalProgram()`. `.clearProgram()`, or `.schema` static methods.
56 | 
57 | ```ts
58 | class TheApp extends Contract {
59 |   favoriteNumber = GlobalStateKey<uint64>();
60 | 
61 |   createApplication(): void {
62 |     this.favoriteNumber.value = 42;
63 |   }
64 | }
65 | 
66 | class TheFactory extends Contract {
67 |   createTheApp(): void {
68 |     sendMethodCall<[], void>({
69 |       name: 'createApplication',
70 |       approvalProgram: TheApp.approvalProgram(),
71 |       clearStateProgram: TheApp.clearProgram(),
72 |       globalNumUint: TheApp.schema.global.numUint,
73 |     });
74 |   }
75 | }
76 | ```
77 | 
78 | ## Logic Signature Address and Program
79 | 
80 | ```ts
81 | class TheLsig extends LogicSig {
82 |   logic(): void {
83 |     assert(this.txn.fee === 0);
84 |   }
85 | }
86 | class TheApp extends Contract {
87 |   createApplication(): void {
88 |     assert(TheLsig.address().balance >= 10_000_000);
89 |     log(TheLsig.program());
90 |   }
91 | }
92 | ```
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/developer:docs:clis:tealdbg:debug.md:
--------------------------------------------------------------------------------

```markdown
 1 | title: tealdbg debug
 2 | ---
 3 | ## tealdbg debug
 4 | 
 5 | 
 6 | 
 7 | Debug TEAL program(s) off-chain
 8 | 
 9 | 
10 | 
11 | ### Synopsis
12 | 
13 | 
14 | 
15 | Debug TEAL program(s) in controlled environment using a local TEAL evaluator
16 | 
17 | 
18 | 
19 | ```
20 | 
21 | tealdbg debug [program.tok [program.teal ...]] [flags]
22 | 
23 | ```
24 | 
25 | 
26 | 
27 | ### Options
28 | 
29 | 
30 | 
31 | ```
32 | 
33 |   -a, --app-id uint            Application ID for stateful TEAL if not set in transaction(s) (default 1380011588)
34 | 
35 |   -b, --balance string         Balance records to evaluate stateful TEAL on in form of json or msgpack file
36 | 
37 |   -d, --dryrun-req string      Program(s) and state(s) in dryrun REST request format
38 | 
39 |   -g, --group-index int        Transaction index in a txn group
40 | 
41 |   -h, --help                   help for debug
42 | 
43 |       --indexer-token string   API token for indexer to fetch Balance records from to evaluate stateful TEAL
44 | 
45 |   -i, --indexer-url string     URL for indexer to fetch Balance records from to evaluate stateful TEAL
46 | 
47 |   -l, --latest-timestamp int   Latest confirmed timestamp to evaluate stateful TEAL on
48 | 
49 |   -q, --listen-dr-req          Listen for upcoming debugging dryrun request objects instead of taking program(s) from command line
50 | 
51 |   -m, --mode string            TEAL evaluation mode: auto, signature, application (default "auto")
52 | 
53 |       --painless               Automatically create balance record for all accounts and applications
54 | 
55 |   -p, --proto string           Consensus protocol version for TEAL evaluation
56 | 
57 |   -r, --round uint             Ledger round number to evaluate stateful TEAL on
58 | 
59 |   -t, --txn string             Transaction(s) to evaluate TEAL on in form of json or msgpack file
60 | 
61 | ```
62 | 
63 | 
64 | 
65 | ### Options inherited from parent commands
66 | 
67 | 
68 | 
69 | ```
70 | 
71 |   -f, --frontend string             Frontend to use: cdt, web (default "cdt")
72 | 
73 |       --listen string               Network interface to listen on (default "127.0.0.1")
74 | 
75 |       --no-source-map               Do not generate source maps
76 | 
77 |       --remote-debugging-port int   Port to listen on (default 9392)
78 | 
79 |   -v, --verbose                     Verbose output
80 | 
81 | ```
82 | 
83 | 
84 | 
85 | ### SEE ALSO
86 | 
87 | 
88 | 
89 | * [tealdbg](../../tealdbg/tealdbg/)	 - Algorand TEAL Debugger
90 | 
91 | 
92 | 
93 | 
```

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

```markdown
  1 | <!-- markdownlint-disable MD024 -->
  2 | 
  3 | # JSON Spec
  4 | 
  5 | A valid JSON text must follow the grammar defined in [RFC7159](https://www.rfc-editor.org/rfc/rfc7159.html)
  6 | 
  7 | Additional specifications used by **json_ref** that are extensions to the RFC7159 grammar are listed below.
  8 | 
  9 | ## File Encoding
 10 | 
 11 | - Only utf-8 encoded are accepted
 12 | - The byte order mark (BOM), "\uFEFF", is not allowed at the beginning of a JSON text
 13 | - Raw non-unicode characters not accepted
 14 | 
 15 | ### Invalid JSON text
 16 | 
 17 | ```json
 18 | \uFEFF{"key0": 1}
 19 | ```
 20 | 
 21 | ```json
 22 | {"key0": "\uFF"}
 23 | ```
 24 | 
 25 | ### Object
 26 | 
 27 | #### duplicate key
 28 | 
 29 | Duplicate keys at the top level result in an error; however, duplicate keys nested at a lower level are ignored.
 30 | 
 31 | #### Invalid JSON text
 32 | 
 33 | ```json
 34 | {"key0": 1,"key0": 2}
 35 | ```
 36 | 
 37 | #### Acceptable JSON text
 38 | 
 39 | ```json
 40 | {"key0": 1,"key1": {"key2":2,"key2":"10"}}
 41 | ```
 42 | 
 43 | ### Numbers
 44 | 
 45 | #### Range
 46 | 
 47 | - Only integers between 0 and 2^64-1 are accepted
 48 | - All other values result in an error
 49 | 
 50 | #### Special Values
 51 | 
 52 | - `null`, `true`, `false` are the only accepted special values.
 53 | - other special values such as `NaN`,`+Inf`,`-Inf` are not accepted
 54 | 
 55 | #### Exponential Notation
 56 | 
 57 | Exponential notation is not accepted
 58 | 
 59 | #### Invalid JSON text
 60 | 
 61 | ```json
 62 | {"key": 1.2E-6}
 63 | ```
 64 | 
 65 | ```json
 66 | {"key": 0.2E+8}
 67 | ```
 68 | 
 69 | ##### Hex values
 70 | 
 71 | Hex values are not accepted
 72 | 
 73 | #### Invalid JSON text
 74 | 
 75 | ```json
 76 | {"key0": 0x1}
 77 | ```
 78 | 
 79 | ```json
 80 | {"key0": 0xFF}
 81 | ```
 82 | 
 83 | ### Trailing Commas
 84 | 
 85 | Trailing commas are not accepted.
 86 | 
 87 | #### Invalid JSON text
 88 | 
 89 | ```json
 90 | {"key": 4160,,,}
 91 | ```
 92 | 
 93 | ```json
 94 | {"key": "algo",,,}
 95 | ```
 96 | 
 97 | ### Comment
 98 | 
 99 | Comment blocks are not accepted.
100 | 
101 | #### Invalid JSON text
102 | 
103 | ```json
104 | {"key0": /*comment*/"algo"}
105 | ```
106 | 
107 | ```json
108 | {"key0": [1,/*comment*/,3]}
109 | ```
110 | 
111 | ### White Spaces
112 | 
113 | - space, tab(`\t`), new line(`\n`) and carriage return(`\r`) are allowed
114 | - form feed(`\f`) is not allowed
115 | 
116 | ### Escaped Characters
117 | 
118 | - control chars (U+0000 - U+001F) must be escaped
119 | - surrogate pairs are accepted
120 | - escaped invalid characters are replaced by replacement character (U+FFFD)
121 | 
122 | #### Example
123 | 
124 | a valid surrogate pair
125 | 
126 | ```json
127 | {"key0": "\uD801\udc37"}
128 | ```
129 | 
130 | replaced by U+FFFD
131 | 
132 | ```json
133 | {"key0": "\uD800\uD800n"}
134 | ```
135 | 
```

--------------------------------------------------------------------------------
/packages/server/src/tools/apiManager/vestige/networks.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
 2 | import { ResponseProcessor } from '../../../utils/responseProcessor.js';
 3 | import { env } from '../../../env.js';
 4 | 
 5 | export const networkTools: Tool[] = [
 6 |   {
 7 |     name: 'api_vestige_view_networks',
 8 |     description: 'Get all networks',
 9 |     inputSchema: {
10 |       type: 'object',
11 |       properties: {}
12 |     }
13 |   },
14 |   {
15 |     name: 'api_vestige_view_network_by_id',
16 |     description: 'Get network by id',
17 |     inputSchema: {
18 |       type: 'object',
19 |       properties: {
20 |         network_id: {
21 |           type: 'integer',
22 |           description: 'Network ID'
23 |         }
24 |       },
25 |       required: ['network_id']
26 |     }
27 |   }
28 | ];
29 | 
30 | export const handleNetworkTools = ResponseProcessor.wrapResourceHandler(async function handleNetworkTools(args: any): Promise<any> {
31 |   const name = args.name;
32 |   const baseUrl = env.vestige_api_url;
33 |   let endpoint = '';
34 | 
35 |   switch (name) {
36 |     case 'api_vestige_view_networks':
37 |       endpoint = '/networks';
38 |       break;
39 |     case 'api_vestige_view_network_by_id':
40 |       endpoint = `/networks/${args.network_id}`;
41 |       break;
42 |     default:
43 |       throw new McpError(
44 |         ErrorCode.MethodNotFound,
45 |         `Unknown tool: ${name}`
46 |       );
47 |   }
48 | 
49 |   try {
50 |     // Add query parameters if they exist
51 |     const queryParams = new URLSearchParams();
52 |     for (const [key, value] of Object.entries(args)) {
53 |       if (value !== undefined && key !== 'network_id') {
54 |         queryParams.append(key, String(value));
55 |       }
56 |     }
57 |     const url = `${baseUrl}${endpoint}${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
58 | 
59 |     const response = await fetch(url);
60 |     if (!response.ok) {
61 |       throw new McpError(
62 |         ErrorCode.InternalError,
63 |         `Vestige API error: ${response.status} ${response.statusText}`
64 |       );
65 |     }
66 |     const data = await response.json();
67 |     return data;
68 |   } catch (error) {
69 |     if (error instanceof McpError) {
70 |       throw error;
71 |     }
72 |     throw new McpError(
73 |       ErrorCode.InternalError,
74 |       `Failed to fetch network data: ${error instanceof Error ? error.message : String(error)}`
75 |     );
76 |   }
77 | });
78 | 
```

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

```markdown
 1 | # AlgoKit Task IPFS
 2 | 
 3 | The AlgoKit IPFS feature allows you to interact with the IPFS [InterPlanetary File System](https://ipfs.tech/) using the [Piñata provider](https://www.pinata.cloud/). This feature supports logging in and out of the Piñata provider, and uploading files to IPFS.
 4 | 
 5 | ## Usage
 6 | 
 7 | Available commands and possible usage as follows:
 8 | 
 9 | ```bash
10 | $ ~ algokit task ipfs
11 | Usage: algokit task ipfs [OPTIONS]
12 | 
13 | Upload files to IPFS using Pinata provider.
14 | 
15 | Options:
16 |   -f, --file PATH Path to the file to upload. [required]
17 |   -n, --name TEXT Human readable name for this upload, for use in file listings.
18 |   -h, --help Show this message and exit.
19 | ```
20 | 
21 | ## Options
22 | 
23 | - `--file, -f PATH`: Specifies the path to the file to upload. This option is required.
24 | - `--name, -n TEXT`: Specifies a human readable name for this upload, for use in file listings.
25 | 
26 | ## Prerequisites
27 | 
28 | Before you can use this feature, you need to ensure that you have signed up for a Piñata account and have a JWT. You can sign up for a Piñata account by reading [quickstart](https://docs.pinata.cloud/docs/getting-started).
29 | 
30 | ## Login
31 | 
32 | Please note, you need to login to the Piñata provider before you can upload files. You can do this using the `login` command:
33 | 
34 | ```bash
35 | $ algokit task ipfs login
36 | ```
37 | 
38 | This will prompt you to enter your Piñata JWT. Once you are logged in, you can upload files to IPFS.
39 | 
40 | ## Upload
41 | 
42 | To upload a file to IPFS, you can use the `ipfs` command as follows:
43 | 
44 | ```bash
45 | $ algokit task ipfs --file {PATH_TO_YOUR_FILE}
46 | ```
47 | 
48 | This will upload the file to IPFS using the Piñata provider and return the CID (Content Identifier) of the uploaded file.
49 | 
50 | ## Logout
51 | 
52 | If you want to logout from the Piñata provider, you can use the `logout` command:
53 | 
54 | ```bash
55 | $ algokit task ipfs logout
56 | ```
57 | 
58 | This will remove your Piñata JWT from the keyring.
59 | 
60 | ## File Size Limit
61 | 
62 | Please note, the maximum file size that can be uploaded is 100MB. If you try to upload a file larger than this, you will receive an error.
63 | 
64 | ## Further Reading
65 | 
66 | For in-depth details, visit the [ipfs section](../../cli/index.md#ipfs) in the AlgoKit CLI reference documentation.
67 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/developers-python.txt:
--------------------------------------------------------------------------------

```
 1 | developer:python:code:example:arc4_types.md
 2 | developer:python:code:example:box_storage.md
 3 | developer:python:code:example:control_flow.md
 4 | developer:python:code:example:global_storage.md
 5 | developer:python:code:example:hello_world.md
 6 | developer:python:code:example:inner_transactions.md
 7 | developer:python:code:example:local_storage.md
 8 | developer:python:code:example:scratch_storage.md
 9 | developer:python:code:example:self_payment.md
10 | developer:python:code:example:struct_in_box.md
11 | developer:python:code:example:subsidize_app_call.md
12 | developer:python:code:example:defi:amm.md
13 | developer:python:code:example:defi:auction.md
14 | developer:python:code:example:defi:marketplace.md
15 | developer:python:code:example:defi:htlc_logicsig.md
16 | developer:python:code:example:events:arc28_events.md
17 | developer:python:code:example:utility:calculator.md
18 | developer:python:code:example:crypto:merkle_tree.md
19 | developer:python:code:example:nft:proof_of_attendance.md
20 | developer:python:code:example:governance:simple_voting.md
21 | developer:python:code:example:privacy:zk_whitelist.md
22 | developer:python:code:example:accounts.md
23 | developer:python:code:example:assets.md
24 | developer:python:code:example:transactions.md
25 | puya:python:testing:docs:examples.md
26 | puya:python:testing:docs:api.md
27 | puya:python:testing:docs:algopy.md
28 | puya:python:testing:docs:faq.md
29 | puya:python:testing:docs:index.md
30 | puya:python:testing:docs:coverage.md
31 | puya:python:testing:docs:testing-guide:concepts.md
32 | puya:python:testing:docs:testing-guide:signature-testing.md
33 | puya:python:testing:docs:testing-guide:state-management.md
34 | puya:python:testing:docs:testing-guide:opcodes.md
35 | puya:python:testing:docs:testing-guide:index.md
36 | puya:python:testing:docs:testing-guide:contract-testing.md
37 | puya:python:testing:docs:testing-guide:avm-types.md
38 | puya:python:testing:docs:testing-guide:transactions.md
39 | puya:python:testing:docs:testing-guide:arc4-types.md
40 | puya:python:testing:docs:testing-guide:subroutines.md
41 | puya:python:testing:README.md
42 | puya:python:testing:examples:README.md
43 | puya:src:puyapy:_vendor:mypy:typeshed:stdlib:_typeshed:README.md
44 | puya:src:puyapy:awst_build:README.md
45 | puya:src:puyapy:_typeshed:README.md
46 | 
```

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

```markdown
 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/transaction](../modules/types_transaction.md) / TransactionGroupToSend
 2 | 
 3 | # Interface: TransactionGroupToSend
 4 | 
 5 | [types/transaction](../modules/types_transaction.md).TransactionGroupToSend
 6 | 
 7 | A group of transactions to send together as an atomic group
 8 | https://developer.algorand.org/docs/get-details/atomic_transfers/
 9 | 
10 | ## Table of contents
11 | 
12 | ### Properties
13 | 
14 | - [sendParams](types_transaction.TransactionGroupToSend.md#sendparams)
15 | - [signer](types_transaction.TransactionGroupToSend.md#signer)
16 | - [transactions](types_transaction.TransactionGroupToSend.md#transactions)
17 | 
18 | ## Properties
19 | 
20 | ### sendParams
21 | 
22 | • `Optional` **sendParams**: `Omit`\<[`SendTransactionParams`](types_transaction.SendTransactionParams.md), ``"fee"`` \| ``"maxFee"`` \| ``"skipSending"`` \| ``"atc"``\>
23 | 
24 | Any parameters to control the semantics of the send to the network
25 | 
26 | #### Defined in
27 | 
28 | [src/types/transaction.ts:123](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L123)
29 | 
30 | ___
31 | 
32 | ### signer
33 | 
34 | • `Optional` **signer**: [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom)
35 | 
36 | Optional signer to pass in, required if at least one transaction provided is just the transaction, ignored otherwise
37 | 
38 | #### Defined in
39 | 
40 | [src/types/transaction.ts:130](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L130)
41 | 
42 | ___
43 | 
44 | ### transactions
45 | 
46 | • **transactions**: (`Transaction` \| [`TransactionToSign`](types_transaction.TransactionToSign.md) \| `Promise`\<[`SendTransactionResult`](types_transaction.SendTransactionResult.md)\>)[]
47 | 
48 | The list of transactions to send, which can either be a raw transaction (in which case `signer` is required),
49 |   the async result of an AlgoKit utils method that returns a `SendTransactionResult` (saves unwrapping the promise, be sure to pass `skipSending: true`, `signer` is also required)
50 |   or the transaction with its signer (`signer` is ignored)
51 | 
52 | #### Defined in
53 | 
54 | [src/types/transaction.ts:128](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/transaction.ts#L128)
55 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:project:list.md:
--------------------------------------------------------------------------------

```markdown
 1 | # AlgoKit Project List Command
 2 | 
 3 | The `algokit project list` command is designed to enumerate all projects within an AlgoKit workspace. This command is particularly useful in workspace environments where multiple projects are managed under a single root directory. It provides a straightforward way to view all the projects that are part of the workspace.
 4 | 
 5 | ## Usage
 6 | 
 7 | To use the `list` command, execute the following **anywhere** within an AlgoKit workspace:
 8 | 
 9 | ```sh
10 | $ algokit project list [OPTIONS] [WORKSPACE_PATH]
11 | ```
12 | 
13 | - `WORKSPACE_PATH` is an optional argument that specifies the path to the workspace. If not provided, the current directory (`.`) is used as the default workspace path.
14 | 
15 | ## How It Works
16 | 
17 | 1. **Workspace Verification**: Initially, the command checks if the specified directory (or the current directory by default) is an AlgoKit workspace. This is determined by looking for a `.algokit.toml` configuration file and verifying if the `project.type` is set to `workspace`.
18 | 
19 | 2. **Project Enumeration**: If the directory is confirmed as a workspace, the command proceeds to enumerate all projects within the workspace. This is achieved by scanning the workspace's subdirectories for `.algokit.toml` files and extracting project names.
20 | 
21 | 3. **Output**: The names of all discovered projects are printed to the console. If the `-v` or `--verbose` option is used, additional details about each project are displayed.
22 | 
23 | ## Example Output
24 | 
25 | ```sh
26 | workspace: {path_to_workspace} 📁
27 |   - myapp ({path_to_myapp}) 📜
28 |   - myproject-app ({path_to_myproject_app}) 🖥️
29 | ```
30 | 
31 | ## Error Handling
32 | 
33 | If the command is executed in a directory that is not recognized as an AlgoKit workspace, it will issue a warning:
34 | 
35 | ```sh
36 | WARNING: No AlgoKit workspace found. Check [project.type] definition at .algokit.toml
37 | ```
38 | 
39 | This message indicates that either the current directory does not contain a `.algokit.toml` file or the `project.type` within the file is not set to `workspace`.
40 | 
41 | ## Further Reading
42 | 
43 | To learn more about the `algokit project list` command, please refer to [list](../../cli/index.md#list) in the AlgoKit CLI reference documentation.
44 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/tealscript:guides_methods.md:
--------------------------------------------------------------------------------

```markdown
 1 | ---
 2 | title: Defining Methods
 3 | ---
 4 | 
 5 | ## Typing
 6 | All method arguments MUST have a type and all methods MUST have an explicit return type. 
 7 | 
 8 | ### Examples
 9 | 
10 | #### Valid
11 | ```ts
12 | add(a: uint64, b: uint64): uint64 {
13 |   return a + b
14 | }
15 | ```
16 | 
17 | #### Invalid
18 | 
19 | ```ts
20 | add(a: uint64, b: uint64) { // missing return type
21 |   return a + b
22 | }
23 | ```
24 | 
25 | ```ts
26 | add(a, b: uint64): uint64 { // missing argument type
27 |   return a + b
28 | }
29 | ```
30 | 
31 | ## ABI Methods
32 | All methods defined in your contract will be routed as ABI methods, unless they have the `private` keyword. This means they will be exposed in the ABI and Application Spec generated by TEALScript.
33 | 
34 | ## Private Subroutines
35 | A method defined with the `private` keyword will only be accessible within the contract itself via a subroutine. This means other contracts or end-users cannot call this method directly and it will not be exposed in the ABI or Application Spec.
36 | 
37 | ### Example
38 | In this example, there is a single public ABI method `doMath` which will then call the `add` or `subtract` subroutines depending on the method given. `doMath` is the only method that is externally callable.
39 | 
40 | ```ts
41 | class Calculator extends Contract {
42 |   /**
43 |    * Calculates the sum of two numbers
44 |    *
45 |    * @param a
46 |    * @param b
47 |    * @returns The sum of a and b
48 |    */
49 |   private getSum(a: uint64, b: uint64): uint64 {
50 |     return a + b;
51 |   }
52 | 
53 |   /**
54 |    * Calculates the difference between two numbers
55 |    *
56 |    * @param a
57 |    * @param b
58 |    * @returns The difference between a and b.
59 |    */
60 |   private getDifference(a: uint64, b: uint64): uint64 {
61 |     return a >= b ? a - b : b - a;
62 |   }
63 | 
64 |   /**
65 |    * A method that takes two numbers and does either addition or subtraction
66 |    *
67 |    * @param a The first number
68 |    * @param b The second number
69 |    * @param operation The operation to perform. Can be either 'sum' or 'difference'
70 |    *
71 |    * @returns The result of the operation
72 |    */
73 |   doMath(a: uint64, b: uint64, operation: string): uint64 {
74 |     let result: uint64;
75 | 
76 |     if (operation === 'sum') {
77 |       result = this.getSum(a, b);
78 |     } else if (operation === 'difference') {
79 |       result = this.getDifference(a, b);
80 |     } else throw Error('Invalid operation');
81 | 
82 |     return result;
83 |   }
84 | }
85 | ```
```

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

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / ABIType
  2 | 
  3 | # Class: ABIType
  4 | 
  5 | ## Hierarchy
  6 | 
  7 | - **`ABIType`**
  8 | 
  9 |   ↳ [`ABIUintType`](ABIUintType.md)
 10 | 
 11 |   ↳ [`ABIUfixedType`](ABIUfixedType.md)
 12 | 
 13 |   ↳ [`ABIAddressType`](ABIAddressType.md)
 14 | 
 15 |   ↳ [`ABIBoolType`](ABIBoolType.md)
 16 | 
 17 |   ↳ [`ABIByteType`](ABIByteType.md)
 18 | 
 19 |   ↳ [`ABIStringType`](ABIStringType.md)
 20 | 
 21 |   ↳ [`ABIArrayStaticType`](ABIArrayStaticType.md)
 22 | 
 23 |   ↳ [`ABIArrayDynamicType`](ABIArrayDynamicType.md)
 24 | 
 25 |   ↳ [`ABITupleType`](ABITupleType.md)
 26 | 
 27 | ## Table of contents
 28 | 
 29 | ### Constructors
 30 | 
 31 | - [constructor](ABIType.md#constructor)
 32 | 
 33 | ### Methods
 34 | 
 35 | - [byteLen](ABIType.md#bytelen)
 36 | - [decode](ABIType.md#decode)
 37 | - [encode](ABIType.md#encode)
 38 | - [equals](ABIType.md#equals)
 39 | - [isDynamic](ABIType.md#isdynamic)
 40 | - [toString](ABIType.md#tostring)
 41 | - [from](ABIType.md#from)
 42 | 
 43 | ## Constructors
 44 | 
 45 | ### constructor
 46 | 
 47 | • **new ABIType**()
 48 | 
 49 | ## Methods
 50 | 
 51 | ### byteLen
 52 | 
 53 | ▸ `Abstract` **byteLen**(): `number`
 54 | 
 55 | #### Returns
 56 | 
 57 | `number`
 58 | 
 59 | #### Defined in
 60 | 
 61 | abi/abi_type.ts:51
 62 | 
 63 | ___
 64 | 
 65 | ### decode
 66 | 
 67 | ▸ `Abstract` **decode**(`byteString`): [`ABIValue`](../modules.md#abivalue)
 68 | 
 69 | #### Parameters
 70 | 
 71 | | Name | Type |
 72 | | :------ | :------ |
 73 | | `byteString` | `Uint8Array` |
 74 | 
 75 | #### Returns
 76 | 
 77 | [`ABIValue`](../modules.md#abivalue)
 78 | 
 79 | #### Defined in
 80 | 
 81 | abi/abi_type.ts:55
 82 | 
 83 | ___
 84 | 
 85 | ### encode
 86 | 
 87 | ▸ `Abstract` **encode**(`value`): `Uint8Array`
 88 | 
 89 | #### Parameters
 90 | 
 91 | | Name | Type |
 92 | | :------ | :------ |
 93 | | `value` | [`ABIValue`](../modules.md#abivalue) |
 94 | 
 95 | #### Returns
 96 | 
 97 | `Uint8Array`
 98 | 
 99 | #### Defined in
100 | 
101 | abi/abi_type.ts:53
102 | 
103 | ___
104 | 
105 | ### equals
106 | 
107 | ▸ `Abstract` **equals**(`other`): `boolean`
108 | 
109 | #### Parameters
110 | 
111 | | Name | Type |
112 | | :------ | :------ |
113 | | `other` | [`ABIType`](ABIType.md) |
114 | 
115 | #### Returns
116 | 
117 | `boolean`
118 | 
119 | #### Defined in
120 | 
121 | abi/abi_type.ts:47
122 | 
123 | ___
124 | 
125 | ### isDynamic
126 | 
127 | ▸ `Abstract` **isDynamic**(): `boolean`
128 | 
129 | #### Returns
130 | 
131 | `boolean`
132 | 
133 | #### Defined in
134 | 
135 | abi/abi_type.ts:49
136 | 
137 | ___
138 | 
139 | ### toString
140 | 
141 | ▸ `Abstract` **toString**(): `string`
142 | 
143 | #### Returns
144 | 
145 | `string`
146 | 
147 | #### Defined in
148 | 
149 | abi/abi_type.ts:45
150 | 
151 | ___
152 | 
153 | ### from
154 | 
155 | ▸ `Static` **from**(`str`): [`ABIType`](ABIType.md)
156 | 
157 | #### Parameters
158 | 
159 | | Name | Type |
160 | | :------ | :------ |
161 | | `str` | `string` |
162 | 
163 | #### Returns
164 | 
165 | [`ABIType`](ABIType.md)
166 | 
167 | #### Defined in
168 | 
169 | abi/abi_type.ts:57
170 | 
```

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

```markdown
 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / AppClientCompilationResult
 2 | 
 3 | # Interface: AppClientCompilationResult
 4 | 
 5 | [types/app-client](../modules/types_app_client.md).AppClientCompilationResult
 6 | 
 7 | The result of asking an `AppClient` to compile a program.
 8 | 
 9 | Always contains the compiled bytecode, and may contain the result of compiling TEAL (including sourcemap) if it was available.
10 | 
11 | ## Hierarchy
12 | 
13 | - `Partial`\<[`AppCompilationResult`](types_app.AppCompilationResult.md)\>
14 | 
15 |   ↳ **`AppClientCompilationResult`**
16 | 
17 | ## Table of contents
18 | 
19 | ### Properties
20 | 
21 | - [approvalProgram](types_app_client.AppClientCompilationResult.md#approvalprogram)
22 | - [clearStateProgram](types_app_client.AppClientCompilationResult.md#clearstateprogram)
23 | - [compiledApproval](types_app_client.AppClientCompilationResult.md#compiledapproval)
24 | - [compiledClear](types_app_client.AppClientCompilationResult.md#compiledclear)
25 | 
26 | ## Properties
27 | 
28 | ### approvalProgram
29 | 
30 | • **approvalProgram**: `Uint8Array`
31 | 
32 | The compiled bytecode of the approval program, ready to deploy to algod
33 | 
34 | #### Defined in
35 | 
36 | [src/types/app-client.ts:282](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L282)
37 | 
38 | ___
39 | 
40 | ### clearStateProgram
41 | 
42 | • **clearStateProgram**: `Uint8Array`
43 | 
44 | The compiled bytecode of the clear state program, ready to deploy to algod
45 | 
46 | #### Defined in
47 | 
48 | [src/types/app-client.ts:284](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L284)
49 | 
50 | ___
51 | 
52 | ### compiledApproval
53 | 
54 | • `Optional` **compiledApproval**: [`CompiledTeal`](types_app.CompiledTeal.md)
55 | 
56 | The result of compiling the approval program
57 | 
58 | #### Inherited from
59 | 
60 | Partial.compiledApproval
61 | 
62 | #### Defined in
63 | 
64 | [src/types/app.ts:335](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L335)
65 | 
66 | ___
67 | 
68 | ### compiledClear
69 | 
70 | • `Optional` **compiledClear**: [`CompiledTeal`](types_app.CompiledTeal.md)
71 | 
72 | The result of compiling the clear state program
73 | 
74 | #### Inherited from
75 | 
76 | Partial.compiledClear
77 | 
78 | #### Defined in
79 | 
80 | [src/types/app.ts:337](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L337)
81 | 
```

--------------------------------------------------------------------------------
/packages/server/src/env.ts:
--------------------------------------------------------------------------------

```typescript
 1 | interface EnvConfig {
 2 |   // Algorand Configuration
 3 |   algorand_network: string;
 4 |   algorand_algod_api: string;
 5 |   algorand_algod: string;
 6 |   algorand_indexer_api: string;
 7 |   algorand_indexer: string;
 8 |   algorand_algod_port: string;
 9 |   algorand_indexer_port: string;
10 |   algorand_token: string;
11 |   algorand_agent_wallet: string;
12 | 
13 |   // NFDomains Configuration
14 |   nfd_api_url: string;
15 |   nfd_api_key: string;
16 | 
17 |   // Tinyman Configuration
18 |   tinyman_active: string;
19 | 
20 |   // Vestige Configuration
21 |   vestige_active: string;
22 |   vestige_api_url: string;
23 |   vestige_api_key: string;
24 | 
25 |   // Ultrade Configuration
26 |   ultrade_active: string;
27 |   ultrade_api_url: string;
28 | 
29 | 
30 |   // Pagination Configuration
31 |   items_per_page: number;
32 |   
33 | }
34 | 
35 | export const env: EnvConfig = {
36 |   // Algorand Configuration
37 |   algorand_network: process.env.ALGORAND_NETWORK || 'testnet',
38 |   algorand_algod_api: process.env.ALGORAND_ALGOD_API || 'https://testnet-api.algonode.cloud/v2',
39 |   algorand_algod: process.env.ALGORAND_ALGOD || 'https://testnet-api.algonode.cloud',
40 |   algorand_indexer_api: process.env.ALGORAND_INDEXER_API || 'https://testnet-idx.algonode.cloud/v2',
41 |   algorand_indexer: process.env.ALGORAND_INDEXER || 'https://testnet-idx.algonode.cloud',
42 |   algorand_algod_port: process.env.ALGORAND_ALGOD_PORT || '',
43 |   algorand_indexer_port: process.env.ALGORAND_INDEXER_PORT || '',
44 |   algorand_token: process.env.ALGORAND_TOKEN || '',
45 |   algorand_agent_wallet: process.env.ALGORAND_AGENT_WALLET || process.env.ALGORAND_AGENT_WALLET_ACTIVE || '',
46 | 
47 |   // NFDomains Configuration
48 |   nfd_api_url: process.env.NFD_API_URL || 'https://api.nf.domains',
49 |   nfd_api_key: process.env.NFD_API_KEY || '',
50 | 
51 |   tinyman_active: process.env.TINYMAN_ACTIVE || 'false',
52 |   // Vestige Configuration
53 |   vestige_active: process.env.VESTIGE_ACTIVE || 'false',
54 |   vestige_api_url: process.env.VESTIGE_API_URL || 'https://api.vestigelabs.org',
55 |   vestige_api_key: process.env.VESTIGE_API_KEY || '',
56 | 
57 |   // Ultrade Configuration
58 |   ultrade_active: process.env.ULTRADE_ACTIVE || 'false',
59 |   ultrade_api_url: process.env.ULTRADE_API_URL || 'https://api.testnet.ultrade.org',
60 | 
61 | 
62 |   // Pagination Configuration
63 |   items_per_page: parseInt(process.env.ITEMS_PER_PAGE || '5', 10)
64 | };
65 | 
```

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

```markdown
 1 | title: Configure node as a relay
 2 | 
 3 | A benefit of Algorand's decentralized network implementation is that a relay is effectively the same as any other node. The distinction currently is made by configuring a node to actively listen for connections from other nodes and having itself advertised using SRV records available through DNS. 
 4 | 
 5 | It is possible to set up a relay for a personal network that does not require DNS entries. This is done using the following steps.
 6 | 
 7 | 
 8 | 
 9 | # Install Node 
10 | See this page for [node hardware requirements](../../setup/install/#hardware-requirements).
11 | Follow the [install instructions](../../run-a-node/setup/install.md) for the specific operating system that the relay will run on.
12 | 
13 | # Edit the Configuration File
14 | Edit the configuration file for the node as described in the [configuration](../config) guide. Set the property `NetAddress` to `":4161"` for TestNet and to `":4160"` for MainNet. Then the file. Make sure the file is named `config.json`.
15 | 
16 | Concretely, your `config.json` file should look like:
17 | 
18 | ```json
19 | {
20 |     "NetAddress": ":4161"
21 | }
22 | ```
23 | 
24 | for TestNet.
25 | 
26 | !!! warning
27 | 	As a precaution, it is not recommended that relay nodes interact with accounts or participate in consensus.
28 | 
29 | # Start the Node
30 | Start the node as described in the [install](../../run-a-node/setup/install.md) guide. The node will now listen for incoming traffic on port 4161 (for TestNet) or on port 4160 (for MainNet). Other nodes can now connect to this relay.
31 | 
32 | # Connect a Node to Relay
33 | Any node can connect to this relay by specifying it in the `goal node start` command. 
34 | 
35 | ```
36 | goal node start -p "ipaddress:4161"
37 | ```
38 | 
39 | The node can also be set up to connect to multiple relays using a `;` separated list of relays.
40 | 
41 | ```
42 | goal node start -p "ipaddress-1:4161;ipaddress-2:4161"
43 | ```
44 | 
45 | (4161 needs to be replaced by 4160 for MainNet.)
46 | 
47 | !!! warning
48 | 	Using the above process will prevent the node from connecting to any of the Algorand networks. See the [Phonebook](../artifacts#phonebookjson) documentation for more information on how nodes connect to relays.
49 | 
50 | See the [Algorand Foundation FAQ](https://www.algorand.foundation/general-faq#04-faq) for additional details about MainNet relays.
51 | 
52 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/liquid-auth:decisions:3-Peer-to-Peer-Signaling.md:
--------------------------------------------------------------------------------

```markdown
 1 | # Overview
 2 | 
 3 | Communicating across platforms in a decentralized manner
 4 | 
 5 | ## Decisions
 6 | 
 7 | - Limit dependency on WebSockets to signaling
 8 | - Allow bidirectional communication between peers
 9 | - Enforce locality of device?
10 | 
11 | ## Implementation
12 | 
13 | A WebSocket Service should establish the SDP handshake and emit ICE candidates for WebRTC clients.
14 | 
15 | This implementation should replace Wallet Connect with the following sequence
16 | ```mermaid
17 | sequenceDiagram
18 |     participant Website
19 |     participant Server
20 |     participant Wallet
21 |     Note over Website, Wallet: Link devices
22 |     Website->>Server: GET Challenge Message
23 |     Server->>Website: Send Challenge Message
24 |     
25 |     Website-->>Website: Display QR Connect Nonce
26 |     Website->>Server: Subscribe to 'wss:link'
27 |     Wallet->>Website: Scan QR Code
28 |     Wallet->>Server: POST Nonce + Signature + Answer
29 |     Server-->>Server: Validate Signature
30 |     Server-->>Website: HTTPOnly Session
31 |     Server->>Wallet: Ok Response + HTTPOnly Session
32 |     Server->>Website: Emit to `wss:link` client
33 |     Note over Website, Wallet: Passkeys/FIDO2
34 |     Website-->>Website: Continue FIDO2 Flow
35 |     Wallet-->>Wallet: Continue FIDO2 Flow
36 |     Note over Website, Wallet: Signaling Peer Offer/Answer
37 |     Website-->>Server: Subscribe to 'wss:answer-${address}'
38 |     Wallet-->>Server: Subscribe to 'wss:offer-${address}'
39 | 
40 |     Website-->>Website: Create Peer Offer & DataChannel
41 |     Website-->>Server: POST Offer
42 |     Server-->>Wallet: Emit Offer
43 |     
44 |     Wallet-->>Wallet: Create Peer Answer with Offer & DataChannel
45 |    
46 |     Wallet-->>Server: POST Answer
47 |     Server-->>Website: Emit Answer
48 |     Website-->>Website: Set Remote SDP
49 |     Website-->>Website: Discover ICE Candidates
50 |     Website->>Server: Emit candidates to `wss:offer-${address}`
51 |     Server->>Wallet: Emit candidates to `wss:offer-${address}`
52 |     Wallet-->>Wallet: Set Candidates
53 |     Wallet-->>Wallet: Discover ICE Candidates
54 |     Wallet->>Server: Emit candidates to `wss:answer-${address}`
55 |     Server->>Website: Emit to `wss:answer`
56 |     Website->>Website: Set Candidates
57 |     
58 | ```
59 | 
60 | *Note: This process may be deprecated in the future in favor of `libp2p` which allows for an agnostic discovery layer and also supports the WebRTC transport
61 | 
```

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

```markdown
 1 | # AlgoKit Task Transfer
 2 | 
 3 | The AlgoKit Transfer feature allows you to transfer algos and assets between two accounts.
 4 | 
 5 | ## Usage
 6 | 
 7 | Available commands and possible usage as follows:
 8 | 
 9 | ```bash
10 | $ ~ algokit task transfer
11 | Usage: algokit task transfer [OPTIONS]
12 | 
13 | Transfer algos or assets from one account to another.
14 | 
15 | Options:
16 |   -s, --sender TEXT               Address or alias of the sender account  [required]
17 |   -r, --receiver TEXT             Address or alias to an account that will receive the asset(s)  [required]
18 |   --asset, --id INTEGER           ASA asset id to transfer
19 |   -a, --amount INTEGER            Amount to transfer  [required]
20 |   --whole-units                   Use whole units (Algos | ASAs) instead of smallest divisible units (for example,
21 |                                   microAlgos). Disabled by default.
22 |   -n, --network [localnet|testnet|mainnet]
23 |                                   Network to use. Refers to `localnet` by default.
24 |   -h, --help                      Show this message and exit.
25 | ```
26 | 
27 | > Note: If you use a wallet address for the `sender` argument, you'll be asked for the mnemonic phrase. To use a wallet alias instead, see the [wallet aliasing](wallet.md) task. For wallet aliases, the sender must have a stored `private key`, but the receiver doesn't need one. This is because the sender signs and sends the transfer transaction, while the receiver reference only needs a valid Algorand address.
28 | 
29 | ## Examples
30 | 
31 | ### Transfer algo between accounts on LocalNet
32 | 
33 | ```bash
34 | $ ~ algokit task transfer -s {SENDER_ALIAS OR SENDER_ADDRESS} -r {RECEIVER_ALIAS OR RECEIVER_ADDRESS} -a {AMOUNT}
35 | ```
36 | 
37 | By default:
38 | 
39 | - the `amount` is in microAlgos. To use whole units, use the `--whole-units` flag.
40 | - the `network` is `localnet`.
41 | 
42 | ### Transfer asset between accounts on TestNet
43 | 
44 | ```bash
45 | $ ~ algokit task transfer -s {SENDER_ALIAS OR SENDER_ADDRESS} -r {RECEIVER_ALIAS OR RECEIVER_ADDRESS} -a {AMOUNT} --id {ASSET_ID} --network testnet
46 | ```
47 | 
48 | By default:
49 | 
50 | - the `amount` is smallest divisible unit of supplied `ASSET_ID`. To use whole units, use the `--whole-units` flag.
51 | 
52 | ## Further Reading
53 | 
54 | For in-depth details, visit the [transfer section](../../cli/index.md#transfer) in the AlgoKit CLI reference documentation.
55 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/tealscript:guides_math.md:
--------------------------------------------------------------------------------

```markdown
 1 | ---
 2 | title: Math
 3 | ---
 4 | 
 5 | ## Truncation
 6 | 
 7 | It is important to note TEALScript only works with unsigned integers. This means that there are no fractional values or negative numbers. The AVM, and thus TEALScript, will always truncate the result of division operations. For example, `99 / 100 === 0` will be true.
 8 | 
 9 | ## Opcode Cost
10 | 
11 | Performing math operations with a integer width more than 64 bits can be up to **20x more expensive** (see table below). As such, if you find yourself running out of opcode budget, it is best to manually cast to `uint64` and then cast back when possible.
12 | 
13 | ### Opcode Costs
14 | 
15 | | Bit Width | Operations | Cost |
16 | | --------- | ---------- | ---- |
17 | | `<= 64`    | `+` or `-` | 1    |
18 | | `<= 64`     | `*` or `/` | 1    |
19 | | `> 64`      | `+` or `-` | 10   |
20 | | `> 64`      | `*` or `/` | 20   |
21 | 
22 | ## Overflows
23 | 
24 | ### Runtime
25 | 
26 | During runtime, TEALscript will not perform overflow checks. This means you will only encouter an overflow panic when performing math operations and the following max values are exceeded
27 | 
28 | | Bit Width | Max Value |
29 | | --------- | --------- |
30 | | `<= 64`     | `2^64 - 1`  |
31 | | `> 64`      | `2^512 - 1` |
32 | 
33 | ### Encoding
34 | 
35 | Prior to encoding a number, TEALScript will ensure that the value does not exceed the respective max value. For example, it will check a `uint8` is not more than `2^8 - 1` prior to encoding it.
36 | 
37 | ### Underflows
38 | 
39 | Any operation that results in a value less than 0 will cause a panic in the AVM.
40 | 
41 | ## Wide Ratio
42 | 
43 | A common operation in contracts is to perform division to get the ratio between two numbers (ie. in a liquidty pool). If the numerator and/or divisor includes multiplication of `uint64` values, they might be larger than `uint64` (thus cause an overflow panic) even if the final result of the division would fit in a `uint64`. To handle such cases, TEALScript implements a global function called `wideRatio`. 
44 | 
45 | ### Example
46 | 
47 | ```ts
48 |   private tokensToSwap(inAmount: uint64, inSupply: uint64, outSupply: uint64): uint64 {
49 |     const factor = SCALE - FEE;
50 |     return wideRatio([inAmount, factor, outSupply], [inSupply * SCALE + inAmount * factor]);
51 |   }
52 | ```
53 | 
54 | A full AMM example can be found [here](https://github.com/algorandfoundation/TEALScript/blob/dev/examples/amm/amm.algo.ts).
```

--------------------------------------------------------------------------------
/packages/server/src/algorand-client.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import algosdk from 'algosdk';
 2 | import { env } from './env.js';
 3 | 
 4 | // Helper function to build resource URIs using API URLs
 5 | const buildAlgodUri = (path: string) => {
 6 |   return `${env.algorand_algod_api}${path}`;
 7 | };
 8 | 
 9 | const buildIndexerUri = (path: string) => {
10 |   return `${env.algorand_indexer_api}${path}`;
11 | };
12 | 
13 | // Resource URI templates using API URLs
14 | export const API_URIS = {
15 |   // Algod resources
16 |   ACCOUNT_DETAILS: buildAlgodUri('/accounts/{address}'),
17 |   ASSET_HOLDINGS: buildAlgodUri('/accounts/{address}/assets'),
18 |   APPLICATION_STATE: buildAlgodUri('/applications/{app-id}/state'),
19 |   ASSET_INFO: buildAlgodUri('/assets/{asset-id}/info'),
20 |   APPLICATION_INFO: buildAlgodUri('/applications/{app-id}'),
21 |   APPLICATION_BOX: buildAlgodUri('/applications/{app-id}/box/{name}'),
22 |   APPLICATION_BOXES: buildAlgodUri('/applications/{app-id}/boxes'),
23 |   PENDING_TRANSACTION: buildAlgodUri('/transactions/pending/{txid}'),
24 |   PENDING_TRANSACTIONS_BY_ADDRESS: buildAlgodUri('/accounts/{address}/transactions/pending'),
25 |   PENDING_TRANSACTIONS: buildAlgodUri('/transactions/pending'),
26 |   TRANSACTION_PARAMS: buildAlgodUri('/transactions/params'),
27 |   NODE_STATUS: buildAlgodUri('/status'),
28 |   NODE_STATUS_AFTER_BLOCK: buildAlgodUri('/status/wait-for-block-after/{round}'),
29 | 
30 |   // Indexer resources
31 |   TRANSACTION_HISTORY: buildIndexerUri('/accounts/{address}/transactions'),
32 |   ASSET_DETAILS: buildIndexerUri('/assets/{asset-id}'),
33 |   ASSET_BALANCES: buildIndexerUri('/assets/{asset-id}/balances'),
34 |   ASSET_TRANSACTIONS: buildIndexerUri('/assets/{asset-id}/transactions'),
35 |   ASSET_BALANCES_BY_ID: buildIndexerUri('/assets/{asset-id}/balances/{address}'),
36 |   ASSET_TRANSACTIONS_BY_ID: buildIndexerUri('/assets/{asset-id}/transactions/{txid}'),
37 |   TRANSACTION_DETAILS: buildIndexerUri('/transactions/{txid}'),
38 |   TRANSACTION_SEARCH: buildIndexerUri('/transactions')
39 | };
40 | 
41 | // Initialize the Algod client with base URL
42 | export const algodClient = new algosdk.Algodv2(
43 |   env.algorand_token || '',
44 |   env.algorand_algod,
45 |   env.algorand_algod_port || ''
46 | );
47 | 
48 | // Initialize the Indexer client with base URL
49 | export const indexerClient = new algosdk.Indexer(
50 |   env.algorand_token || '',
51 |   env.algorand_indexer,
52 |   env.algorand_indexer_port || ''
53 | );
54 | 
55 | export { indexerClient as indexer };
56 | 
```

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

```json
 1 | {
 2 |   "name": "Developer Documentation",
 3 |   "description": "Comprehensive developer documentation for Algorand blockchain",
 4 |   "categories": {
 5 |     "getting_started": {
 6 |       "name": "Getting Started",
 7 |       "description": "Basic concepts and introductory materials",
 8 |       "items": [
 9 |         "developer:docs:get-started:basics:why_algorand.md",
10 |         "developer:docs:get-started:basics:whats_a_dapp.md",
11 |         "developer:docs:get-started:basics:what_is_blockchain.md",
12 |         "developer:docs:get-started:basics:where_to_start.md",
13 |         "developer:docs:get-started:algokit.md"
14 |       ]
15 |     },
16 |     "tokenization": {
17 |       "name": "Tokenization",
18 |       "description": "Token creation and management",
19 |       "items": [
20 |         "developer:docs:get-started:tokenization:nft.md",
21 |         "developer:docs:get-started:tokenization:ft.md"
22 |       ]
23 |     },
24 |     "sdks": {
25 |       "name": "SDKs",
26 |       "description": "Software Development Kits",
27 |       "items": [
28 |         "developer:docs:sdks:index.md",
29 |         "developer:docs:sdks:python:index.md",
30 |         "developer:docs:sdks:javascript:index.md",
31 |         "developer:docs:sdks:java:index.md",
32 |         "developer:docs:sdks:go:index.md"
33 |       ]
34 |     },
35 |     "rest_apis": {
36 |       "name": "REST APIs",
37 |       "description": "API endpoints and usage",
38 |       "items": [
39 |         "developer:docs:rest-apis:restendpoints.md",
40 |         "developer:docs:rest-apis:algod.md",
41 |         "developer:docs:rest-apis:indexer.md",
42 |         "developer:docs:rest-apis:kmd.md"
43 |       ]
44 |     },
45 |     "wallet_connect": {
46 |       "name": "WalletConnect",
47 |       "description": "Wallet connection integration",
48 |       "items": [
49 |         "docs:.walletconnect:index.md",
50 |         "docs:.walletconnect:walletconnect-schema.md"
51 |       ]
52 |     },
53 |     "examples": {
54 |       "name": "Code Examples",
55 |       "description": "Example implementations and scripts",
56 |       "items": [
57 |         "docs:scripts:README.md",
58 |         "docs:scripts:example_tracker:example_list.md",
59 |         "devportal-code-examples:projects:python-contract-examples:README.md",
60 |         "devportal-code-examples:README.md"
61 |       ]
62 |     },
63 |     "models": {
64 |       "name": "Models",
65 |       "description": "Data models and structures",
66 |       "items": [
67 |         "algo-models:README.md"
68 |       ]
69 |     }
70 |   }
71 | }
72 | 
```

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

```markdown
 1 | [@algorandfoundation/algokit-utils](../README.md) / [types/app-spec](../modules/types_app_spec.md) / AppSpec
 2 | 
 3 | # Interface: AppSpec
 4 | 
 5 | [types/app-spec](../modules/types_app_spec.md).AppSpec
 6 | 
 7 | An ARC-0032 Application Specification see https://github.com/algorandfoundation/ARCs/pull/150
 8 | 
 9 | ## Table of contents
10 | 
11 | ### Properties
12 | 
13 | - [bare\_call\_config](types_app_spec.AppSpec.md#bare_call_config)
14 | - [contract](types_app_spec.AppSpec.md#contract)
15 | - [hints](types_app_spec.AppSpec.md#hints)
16 | - [schema](types_app_spec.AppSpec.md#schema)
17 | - [source](types_app_spec.AppSpec.md#source)
18 | - [state](types_app_spec.AppSpec.md#state)
19 | 
20 | ## Properties
21 | 
22 | ### bare\_call\_config
23 | 
24 | • **bare\_call\_config**: [`CallConfig`](types_app_spec.CallConfig.md)
25 | 
26 | The config of all BARE calls (i.e. non ABI calls with no args)
27 | 
28 | #### Defined in
29 | 
30 | [src/types/app-spec.ts:154](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L154)
31 | 
32 | ___
33 | 
34 | ### contract
35 | 
36 | • **contract**: `ABIContractParams`
37 | 
38 | The ABI-0004 contract definition see https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0004.md
39 | 
40 | #### Defined in
41 | 
42 | [src/types/app-spec.ts:148](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L148)
43 | 
44 | ___
45 | 
46 | ### hints
47 | 
48 | • **hints**: [`HintSpec`](../modules/types_app_spec.md#hintspec)
49 | 
50 | Method call hints
51 | 
52 | #### Defined in
53 | 
54 | [src/types/app-spec.ts:144](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L144)
55 | 
56 | ___
57 | 
58 | ### schema
59 | 
60 | • **schema**: [`SchemaSpec`](types_app_spec.SchemaSpec.md)
61 | 
62 | The values that make up the local and global state
63 | 
64 | #### Defined in
65 | 
66 | [src/types/app-spec.ts:150](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L150)
67 | 
68 | ___
69 | 
70 | ### source
71 | 
72 | • **source**: [`AppSources`](types_app_spec.AppSources.md)
73 | 
74 | The TEAL source
75 | 
76 | #### Defined in
77 | 
78 | [src/types/app-spec.ts:146](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L146)
79 | 
80 | ___
81 | 
82 | ### state
83 | 
84 | • **state**: [`StateSchemaSpec`](types_app_spec.StateSchemaSpec.md)
85 | 
86 | The rolled-up schema allocation values for local and global state
87 | 
88 | #### Defined in
89 | 
90 | [src/types/app-spec.ts:152](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-spec.ts#L152)
91 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/puya:docs:lg-unsupported-python-features.md:
--------------------------------------------------------------------------------

```markdown
 1 | # Unsupported Python features
 2 | 
 3 | ## raise, try/except/finally
 4 | 
 5 | Exception raising and exception handling constructs are not supported.
 6 | 
 7 | Supporting user exceptions would be costly to implement in terms of op codes.
 8 | 
 9 | Furthermore, AVM errors and exceptions are not "catch-able", they immediately terminate the 
10 | program.
11 | 
12 | Therefore, there is very little to no benefit of supporting exceptions and exception handling.
13 | 
14 | The preferred method of raising an error that terminates is through the use of
15 | [assert statements](lg-errors.md).
16 | 
17 | ## with
18 | 
19 | Context managers are redundant without exception handling support.
20 | 
21 | ## async
22 | 
23 | The AVM is not just single threaded, but all operations are effectively "blocking", rendering 
24 | asynchronous programming effectively useless. 
25 | 
26 | ## closures & lambdas
27 | 
28 | Without the support of function pointers, or other methods of invoking an arbitrary function,
29 | it's not possible to return a function as a closure. 
30 | 
31 | Nested functions/lambdas as a means of repeating common operations within a given function may be 
32 | supported in the future.
33 | 
34 | ## global keyword
35 | 
36 | Module level values are only allowed to be [constants](lg-modules.md#module-constants). No
37 | rebinding of module constants is allowed. It's not clear what the meaning here would be, since
38 | there's no real arbitrary means of storing state without associating it with a particular contract.
39 | If you do have need of such a thing, take a look at [gload_bytes](#algopy.op.gload_bytes)
40 | or [gload_uint64](#algopy.op.gload_uint64) if the contracts are within the same transaction,
41 | otherwise [AppGlobal.get_ex_bytes](#algopy.op.AppGlobal.get_ex_bytes)
42 | and [AppGlobal.get_ex_uint64](#algopy.op.AppGlobal.get_ex_uint64).
43 | 
44 | ## Inheritance (outside of contract classes)
45 | 
46 | Polymorphism is also impossible to support without function pointers, so data classes (such as
47 | [arc4.Struct](#algopy.arc4.Struct)) don't currently allow for inheritance. Member functions there
48 | are not supported because we're not sure yet whether it's better to not have inheritance but allow
49 | functions on data classes, or to allow inheritance and disallow member functions.
50 | 
51 | Contract inheritance is a special case, since each concrete contract is compiled separately, true
52 | polymorphism isn't required as all references can be resolved at compile time.
53 | 
```

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

```markdown
 1 | title: Renew participation keys
 2 | 
 3 | The process of renewing a participation key is simply creating a new participation key and registering it online before the previous key expires.
 4 | 
 5 | You can renew a participation key anytime before it expires, and we recommend to do it at least two weeks (about 268,800 rounds) in advance so as not to risk [having an account marked as online that is not participating](./index.md#ensure-that-online-accounts-are-participating).
 6 | 
 7 | The validity ranges of participation keys can overlap. For any account, at any time, at most one participation key is registered, namely the one included in the latest online key registration transaction for this account. 
 8 | 
 9 | 
10 | # Step-by-Step
11 | 1. [Create a new participation key](./generate_keys.md) with a first voting round that is less than the last voting round of the current participation key. It should leave enough time to carry out this whole process (e.g. 40,000 rounds).
12 | 2. Once the network reaches the first voting round for the new key, [submit an online key registration transaction for the new participation key](./online.md).
13 | 3. Wait at least 320 rounds to [validate that the node is participating](./online.md#check-that-the-node-is-participating).
14 | 4. Once participation is confirmed, it is safe to [delete the old participation key](#removing-old-keys).
15 | 
16 | <center> ![Renewal Window](../../imgs/renew-0.png) </center>
17 | <center>*Example key rotation window* </center>
18 | 
19 | !!! info
20 | 	`goal` supplies single commands to renew all participation keys on a node ([`goal account renewallpartkeys`](../../../clis/goal/account/renewallpartkeys)) or renew the participation key for a specific account ([`goal account renewpartkey`](../../../clis/goal/account/renewpartkey)). It is recommended that you only use these for testing purposes or for very low-stake accounts, since both of them require your private keys to be online.
21 | 
22 | # Removing Old Keys
23 | 
24 | When a participation key is no longer in use, you can remove it by running the following goal command with the participation ID of the key you want to remove.
25 | 
26 | ```bash
27 | $ goal account deletepartkey --partkeyid IWBP2447JQIT54XWOZ7XKWOBVITS2AEIBOEZXDACX5Q6DZ4Z7VHA
28 | ```
29 | Make sure to identify the correct key (i.e. make sure it is _not_ the currently registered key) before deleting.
30 | 
```

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

```json
 1 | {
 2 |   "name": "Node Management",
 3 |   "description": "Documentation for running and managing Algorand nodes",
 4 |   "path": "developer:docs:run-a-node",
 5 |   "subcategories": {
 6 |     "setup": {
 7 |       "name": "Setup",
 8 |       "description": "Node setup and installation",
 9 |       "path": "developer:docs:run-a-node:setup",
10 |       "documents": [
11 |         {"name": "Installation", "path": "developer:docs:run-a-node:setup:install.md"},
12 |         {"name": "Indexer Setup", "path": "developer:docs:run-a-node:setup:indexer.md"},
13 |         {"name": "Node Types", "path": "developer:docs:run-a-node:setup:types.md"},
14 |         {"name": "Troubleshooting", "path": "developer:docs:run-a-node:setup:node-troubleshooting.md"}
15 |       ]
16 |     },
17 |     "operations": {
18 |       "name": "Operations",
19 |       "description": "Node operations and maintenance",
20 |       "path": "developer:docs:run-a-node:operations",
21 |       "documents": [
22 |         {"name": "Catchup", "path": "developer:docs:run-a-node:operations:catchup.md"},
23 |         {"name": "Switch Networks", "path": "developer:docs:run-a-node:operations:switch_networks.md"}
24 |       ]
25 |     },
26 |     "participate": {
27 |       "name": "Participation",
28 |       "description": "Node participation in consensus",
29 |       "path": "developer:docs:run-a-node:participate",
30 |       "documents": [
31 |         {"name": "Overview", "path": "developer:docs:run-a-node:participate:index.md"},
32 |         {"name": "Generate Keys", "path": "developer:docs:run-a-node:participate:generate_keys.md"},
33 |         {"name": "Offline", "path": "developer:docs:run-a-node:participate:offline.md"},
34 |         {"name": "Online", "path": "developer:docs:run-a-node:participate:online.md"},
35 |         {"name": "Renew", "path": "developer:docs:run-a-node:participate:renew.md"}
36 |       ]
37 |     },
38 |     "reference": {
39 |       "name": "Reference",
40 |       "description": "Reference documentation",
41 |       "path": "developer:docs:run-a-node:reference",
42 |       "documents": [
43 |         {"name": "Artifacts", "path": "developer:docs:run-a-node:reference:artifacts.md"},
44 |         {"name": "Configuration", "path": "developer:docs:run-a-node:reference:config.md"},
45 |         {"name": "Relay", "path": "developer:docs:run-a-node:reference:relay.md"},
46 |         {"name": "Telemetry Config", "path": "developer:docs:run-a-node:reference:telemetry-config.md"}
47 |       ]
48 |     }
49 |   }
50 | }
51 | 
```

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

```markdown
 1 | title: Catchup And status
 2 | 
 3 | # Catchup
 4 | 
 5 | When first starting a node it will process all blocks in the blockchain, even if it does not store all blocks locally. The node does so to verify every block in the blockchain thereby checking the validity of the chain. The process can be time-consuming but is essential when running a trusted node.  
 6 | 
 7 | With adequate [hardware and Internet connection](../../setup/install#hardware-requirements), syncing MainNet takes between 2 and 4 weeks in October 2022.
 8 | 
 9 | If you cannot wait for catchup, there are multiple options:
10 | * [AlgoKit](/docs/get-started/algokit) allows quick setup of private network and public networks. For public networks, the node will be non-archival and use fast catchup. Sandbox should only be used for development purposes.
11 | * [Fast Catchup](../../setup/install#sync-node-network-using-fast-catchup) can be used to quickly sync a **non-archival** node, but requires trust in the entity providing the catchpoint.
12 | * Third-party snapshots such [AlgoNode.io snapshots](https://algonode.io/extras/) may be used for **archival** nodes, but requires trust in the third party. Algorand denies any responsibility if any such snapshot is used.
13 | 
14 | !!! info    
15 |     If a node is stopped it will stop processing blocks. Once the node is restarted, it will start processing blocks where it left off.
16 | 
17 | !!! info
18 |     The terms "sync" and "catchup/catch up" are used interchangeably.
19 | 
20 | # Node Status
21 | 
22 | It is possible to check the status of the catchup process by checking a node's status.
23 | 
24 | ```
25 | goal node status [-d <data directory>]
26 | ```
27 | 
28 | After running this status check, monitor the `Sync Time:` property that is returned. If this value is incrementing, the node is still synching. The `Sync Time:` will display `Sync Time: 0.0s` when the node is fully caught up. The status also reports the last block process by the node in the `Last committed block:` property. Comparing this block number to what is shown using an Algorand [Block Explorer](https://developer.algorand.org/ecosystem-projects/#block-explorers) will indicate how much more time catchup will take.
29 | 
30 | !!! info
31 |     Progress of last committed block is not linear. Earlier blocks usually have much fewer transactions than more recent blocks and catchup usually slows down the closer to the current block you are.
32 | 
33 | 
34 | 
```

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

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / ABIByteType
  2 | 
  3 | # Class: ABIByteType
  4 | 
  5 | ## Hierarchy
  6 | 
  7 | - [`ABIType`](ABIType.md)
  8 | 
  9 |   ↳ **`ABIByteType`**
 10 | 
 11 | ## Table of contents
 12 | 
 13 | ### Constructors
 14 | 
 15 | - [constructor](ABIByteType.md#constructor)
 16 | 
 17 | ### Methods
 18 | 
 19 | - [byteLen](ABIByteType.md#bytelen)
 20 | - [decode](ABIByteType.md#decode)
 21 | - [encode](ABIByteType.md#encode)
 22 | - [equals](ABIByteType.md#equals)
 23 | - [isDynamic](ABIByteType.md#isdynamic)
 24 | - [toString](ABIByteType.md#tostring)
 25 | - [from](ABIByteType.md#from)
 26 | 
 27 | ## Constructors
 28 | 
 29 | ### constructor
 30 | 
 31 | • **new ABIByteType**()
 32 | 
 33 | #### Inherited from
 34 | 
 35 | [ABIType](ABIType.md).[constructor](ABIType.md#constructor)
 36 | 
 37 | ## Methods
 38 | 
 39 | ### byteLen
 40 | 
 41 | ▸ **byteLen**(): `number`
 42 | 
 43 | #### Returns
 44 | 
 45 | `number`
 46 | 
 47 | #### Overrides
 48 | 
 49 | [ABIType](ABIType.md).[byteLen](ABIType.md#bytelen)
 50 | 
 51 | #### Defined in
 52 | 
 53 | abi/abi_type.ts:336
 54 | 
 55 | ___
 56 | 
 57 | ### decode
 58 | 
 59 | ▸ **decode**(`byteString`): `number`
 60 | 
 61 | #### Parameters
 62 | 
 63 | | Name | Type |
 64 | | :------ | :------ |
 65 | | `byteString` | `Uint8Array` |
 66 | 
 67 | #### Returns
 68 | 
 69 | `number`
 70 | 
 71 | #### Overrides
 72 | 
 73 | [ABIType](ABIType.md).[decode](ABIType.md#decode)
 74 | 
 75 | #### Defined in
 76 | 
 77 | abi/abi_type.ts:354
 78 | 
 79 | ___
 80 | 
 81 | ### encode
 82 | 
 83 | ▸ **encode**(`value`): `Uint8Array`
 84 | 
 85 | #### Parameters
 86 | 
 87 | | Name | Type |
 88 | | :------ | :------ |
 89 | | `value` | [`ABIValue`](../modules.md#abivalue) |
 90 | 
 91 | #### Returns
 92 | 
 93 | `Uint8Array`
 94 | 
 95 | #### Overrides
 96 | 
 97 | [ABIType](ABIType.md).[encode](ABIType.md#encode)
 98 | 
 99 | #### Defined in
100 | 
101 | abi/abi_type.ts:340
102 | 
103 | ___
104 | 
105 | ### equals
106 | 
107 | ▸ **equals**(`other`): `boolean`
108 | 
109 | #### Parameters
110 | 
111 | | Name | Type |
112 | | :------ | :------ |
113 | | `other` | [`ABIType`](ABIType.md) |
114 | 
115 | #### Returns
116 | 
117 | `boolean`
118 | 
119 | #### Overrides
120 | 
121 | [ABIType](ABIType.md).[equals](ABIType.md#equals)
122 | 
123 | #### Defined in
124 | 
125 | abi/abi_type.ts:328
126 | 
127 | ___
128 | 
129 | ### isDynamic
130 | 
131 | ▸ **isDynamic**(): `boolean`
132 | 
133 | #### Returns
134 | 
135 | `boolean`
136 | 
137 | #### Overrides
138 | 
139 | [ABIType](ABIType.md).[isDynamic](ABIType.md#isdynamic)
140 | 
141 | #### Defined in
142 | 
143 | abi/abi_type.ts:332
144 | 
145 | ___
146 | 
147 | ### toString
148 | 
149 | ▸ **toString**(): `string`
150 | 
151 | #### Returns
152 | 
153 | `string`
154 | 
155 | #### Overrides
156 | 
157 | [ABIType](ABIType.md).[toString](ABIType.md#tostring)
158 | 
159 | #### Defined in
160 | 
161 | abi/abi_type.ts:324
162 | 
163 | ___
164 | 
165 | ### from
166 | 
167 | ▸ `Static` **from**(`str`): [`ABIType`](ABIType.md)
168 | 
169 | #### Parameters
170 | 
171 | | Name | Type |
172 | | :------ | :------ |
173 | | `str` | `string` |
174 | 
175 | #### Returns
176 | 
177 | [`ABIType`](ABIType.md)
178 | 
179 | #### Inherited from
180 | 
181 | [ABIType](ABIType.md).[from](ABIType.md#from)
182 | 
183 | #### Defined in
184 | 
185 | abi/abi_type.ts:57
186 | 
```

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

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / ABIBoolType
  2 | 
  3 | # Class: ABIBoolType
  4 | 
  5 | ## Hierarchy
  6 | 
  7 | - [`ABIType`](ABIType.md)
  8 | 
  9 |   ↳ **`ABIBoolType`**
 10 | 
 11 | ## Table of contents
 12 | 
 13 | ### Constructors
 14 | 
 15 | - [constructor](ABIBoolType.md#constructor)
 16 | 
 17 | ### Methods
 18 | 
 19 | - [byteLen](ABIBoolType.md#bytelen)
 20 | - [decode](ABIBoolType.md#decode)
 21 | - [encode](ABIBoolType.md#encode)
 22 | - [equals](ABIBoolType.md#equals)
 23 | - [isDynamic](ABIBoolType.md#isdynamic)
 24 | - [toString](ABIBoolType.md#tostring)
 25 | - [from](ABIBoolType.md#from)
 26 | 
 27 | ## Constructors
 28 | 
 29 | ### constructor
 30 | 
 31 | • **new ABIBoolType**()
 32 | 
 33 | #### Inherited from
 34 | 
 35 | [ABIType](ABIType.md).[constructor](ABIType.md#constructor)
 36 | 
 37 | ## Methods
 38 | 
 39 | ### byteLen
 40 | 
 41 | ▸ **byteLen**(): `number`
 42 | 
 43 | #### Returns
 44 | 
 45 | `number`
 46 | 
 47 | #### Overrides
 48 | 
 49 | [ABIType](ABIType.md).[byteLen](ABIType.md#bytelen)
 50 | 
 51 | #### Defined in
 52 | 
 53 | abi/abi_type.ts:294
 54 | 
 55 | ___
 56 | 
 57 | ### decode
 58 | 
 59 | ▸ **decode**(`byteString`): `boolean`
 60 | 
 61 | #### Parameters
 62 | 
 63 | | Name | Type |
 64 | | :------ | :------ |
 65 | | `byteString` | `Uint8Array` |
 66 | 
 67 | #### Returns
 68 | 
 69 | `boolean`
 70 | 
 71 | #### Overrides
 72 | 
 73 | [ABIType](ABIType.md).[decode](ABIType.md#decode)
 74 | 
 75 | #### Defined in
 76 | 
 77 | abi/abi_type.ts:308
 78 | 
 79 | ___
 80 | 
 81 | ### encode
 82 | 
 83 | ▸ **encode**(`value`): `Uint8Array`
 84 | 
 85 | #### Parameters
 86 | 
 87 | | Name | Type |
 88 | | :------ | :------ |
 89 | | `value` | [`ABIValue`](../modules.md#abivalue) |
 90 | 
 91 | #### Returns
 92 | 
 93 | `Uint8Array`
 94 | 
 95 | #### Overrides
 96 | 
 97 | [ABIType](ABIType.md).[encode](ABIType.md#encode)
 98 | 
 99 | #### Defined in
100 | 
101 | abi/abi_type.ts:298
102 | 
103 | ___
104 | 
105 | ### equals
106 | 
107 | ▸ **equals**(`other`): `boolean`
108 | 
109 | #### Parameters
110 | 
111 | | Name | Type |
112 | | :------ | :------ |
113 | | `other` | [`ABIType`](ABIType.md) |
114 | 
115 | #### Returns
116 | 
117 | `boolean`
118 | 
119 | #### Overrides
120 | 
121 | [ABIType](ABIType.md).[equals](ABIType.md#equals)
122 | 
123 | #### Defined in
124 | 
125 | abi/abi_type.ts:286
126 | 
127 | ___
128 | 
129 | ### isDynamic
130 | 
131 | ▸ **isDynamic**(): `boolean`
132 | 
133 | #### Returns
134 | 
135 | `boolean`
136 | 
137 | #### Overrides
138 | 
139 | [ABIType](ABIType.md).[isDynamic](ABIType.md#isdynamic)
140 | 
141 | #### Defined in
142 | 
143 | abi/abi_type.ts:290
144 | 
145 | ___
146 | 
147 | ### toString
148 | 
149 | ▸ **toString**(): `string`
150 | 
151 | #### Returns
152 | 
153 | `string`
154 | 
155 | #### Overrides
156 | 
157 | [ABIType](ABIType.md).[toString](ABIType.md#tostring)
158 | 
159 | #### Defined in
160 | 
161 | abi/abi_type.ts:282
162 | 
163 | ___
164 | 
165 | ### from
166 | 
167 | ▸ `Static` **from**(`str`): [`ABIType`](ABIType.md)
168 | 
169 | #### Parameters
170 | 
171 | | Name | Type |
172 | | :------ | :------ |
173 | | `str` | `string` |
174 | 
175 | #### Returns
176 | 
177 | [`ABIType`](ABIType.md)
178 | 
179 | #### Inherited from
180 | 
181 | [ABIType](ABIType.md).[from](ABIType.md#from)
182 | 
183 | #### Defined in
184 | 
185 | abi/abi_type.ts:57
186 | 
```

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

```markdown
 1 | # AlgoKit Task Vanity Address
 2 | 
 3 | The AlgoKit Vanity Address feature allows you to generate a vanity Algorand address. A vanity address is an address that contains a specific keyword in it. The keyword can only include uppercase letters A-Z and numbers 2-7. The longer the keyword, the longer it may take to generate a matching address.
 4 | 
 5 | ## Usage
 6 | 
 7 | Available commands and possible usage as follows:
 8 | 
 9 | ```bash
10 | $ ~ algokit task vanity-address
11 | Usage: algokit task vanity-address [OPTIONS] KEYWORD
12 | 
13 |   Generate a vanity Algorand address. Your KEYWORD can only include letters A - Z and numbers 2 - 7. Keeping your
14 |   KEYWORD under 5 characters will usually result in faster generation. Note: The longer the KEYWORD, the longer it may
15 |   take to generate a matching address. Please be patient if you choose a long keyword.
16 | 
17 | Options:
18 |   -m, --match [start|anywhere|end]
19 |                                   Location where the keyword will be included. Default is start.
20 |   -o, --output [stdout|alias|file]
21 |                                   How the output will be presented.
22 |   -a, --alias TEXT                Alias for the address. Required if output is "alias".
23 |   --file-path PATH                File path where to dump the output. Required if output is "file".
24 |   -f, --force                     Allow overwriting an aliases without confirmation, if output option is 'alias'.
25 |   -h, --help                      Show this message and exit.
26 | ```
27 | 
28 | ## Examples
29 | 
30 | Generate a vanity address with the keyword "ALGO" at the start of the address with default output to `stdout`:
31 | 
32 | ```bash
33 | $ ~ algokit task vanity-address ALGO
34 | ```
35 | 
36 | Generate a vanity address with the keyword "ALGO" at the start of the address with output to a file:
37 | 
38 | ```bash
39 | $ ~ algokit task vanity-address ALGO -o file -f vanity-address.txt
40 | ```
41 | 
42 | Generate a vanity address with the keyword "ALGO" anywhere in the address with output to a file:
43 | 
44 | ```bash
45 | $ ~ algokit task vanity-address ALGO -m anywhere -o file -f vanity-address.txt
46 | ```
47 | 
48 | Generate a vanity address with the keyword "ALGO" at the start of the address and store into a [wallet alias](wallet.md):
49 | 
50 | ```bash
51 | $ ~ algokit task vanity-address ALGO -o alias -a my-vanity-address
52 | ```
53 | 
54 | ## Further Reading
55 | 
56 | For in-depth details, visit the [vanity-address section](../../cli/index.md#vanity-address) in the AlgoKit CLI reference documentation.
57 | 
```

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

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / ABIStringType
  2 | 
  3 | # Class: ABIStringType
  4 | 
  5 | ## Hierarchy
  6 | 
  7 | - [`ABIType`](ABIType.md)
  8 | 
  9 |   ↳ **`ABIStringType`**
 10 | 
 11 | ## Table of contents
 12 | 
 13 | ### Constructors
 14 | 
 15 | - [constructor](ABIStringType.md#constructor)
 16 | 
 17 | ### Methods
 18 | 
 19 | - [byteLen](ABIStringType.md#bytelen)
 20 | - [decode](ABIStringType.md#decode)
 21 | - [encode](ABIStringType.md#encode)
 22 | - [equals](ABIStringType.md#equals)
 23 | - [isDynamic](ABIStringType.md#isdynamic)
 24 | - [toString](ABIStringType.md#tostring)
 25 | - [from](ABIStringType.md#from)
 26 | 
 27 | ## Constructors
 28 | 
 29 | ### constructor
 30 | 
 31 | • **new ABIStringType**()
 32 | 
 33 | #### Inherited from
 34 | 
 35 | [ABIType](ABIType.md).[constructor](ABIType.md#constructor)
 36 | 
 37 | ## Methods
 38 | 
 39 | ### byteLen
 40 | 
 41 | ▸ **byteLen**(): `never`
 42 | 
 43 | #### Returns
 44 | 
 45 | `never`
 46 | 
 47 | #### Overrides
 48 | 
 49 | [ABIType](ABIType.md).[byteLen](ABIType.md#bytelen)
 50 | 
 51 | #### Defined in
 52 | 
 53 | abi/abi_type.ts:375
 54 | 
 55 | ___
 56 | 
 57 | ### decode
 58 | 
 59 | ▸ **decode**(`byteString`): `string`
 60 | 
 61 | #### Parameters
 62 | 
 63 | | Name | Type |
 64 | | :------ | :------ |
 65 | | `byteString` | `Uint8Array` |
 66 | 
 67 | #### Returns
 68 | 
 69 | `string`
 70 | 
 71 | #### Overrides
 72 | 
 73 | [ABIType](ABIType.md).[decode](ABIType.md#decode)
 74 | 
 75 | #### Defined in
 76 | 
 77 | abi/abi_type.ts:396
 78 | 
 79 | ___
 80 | 
 81 | ### encode
 82 | 
 83 | ▸ **encode**(`value`): `Uint8Array`
 84 | 
 85 | #### Parameters
 86 | 
 87 | | Name | Type |
 88 | | :------ | :------ |
 89 | | `value` | [`ABIValue`](../modules.md#abivalue) |
 90 | 
 91 | #### Returns
 92 | 
 93 | `Uint8Array`
 94 | 
 95 | #### Overrides
 96 | 
 97 | [ABIType](ABIType.md).[encode](ABIType.md#encode)
 98 | 
 99 | #### Defined in
100 | 
101 | abi/abi_type.ts:379
102 | 
103 | ___
104 | 
105 | ### equals
106 | 
107 | ▸ **equals**(`other`): `boolean`
108 | 
109 | #### Parameters
110 | 
111 | | Name | Type |
112 | | :------ | :------ |
113 | | `other` | [`ABIType`](ABIType.md) |
114 | 
115 | #### Returns
116 | 
117 | `boolean`
118 | 
119 | #### Overrides
120 | 
121 | [ABIType](ABIType.md).[equals](ABIType.md#equals)
122 | 
123 | #### Defined in
124 | 
125 | abi/abi_type.ts:367
126 | 
127 | ___
128 | 
129 | ### isDynamic
130 | 
131 | ▸ **isDynamic**(): `boolean`
132 | 
133 | #### Returns
134 | 
135 | `boolean`
136 | 
137 | #### Overrides
138 | 
139 | [ABIType](ABIType.md).[isDynamic](ABIType.md#isdynamic)
140 | 
141 | #### Defined in
142 | 
143 | abi/abi_type.ts:371
144 | 
145 | ___
146 | 
147 | ### toString
148 | 
149 | ▸ **toString**(): `string`
150 | 
151 | #### Returns
152 | 
153 | `string`
154 | 
155 | #### Overrides
156 | 
157 | [ABIType](ABIType.md).[toString](ABIType.md#tostring)
158 | 
159 | #### Defined in
160 | 
161 | abi/abi_type.ts:363
162 | 
163 | ___
164 | 
165 | ### from
166 | 
167 | ▸ `Static` **from**(`str`): [`ABIType`](ABIType.md)
168 | 
169 | #### Parameters
170 | 
171 | | Name | Type |
172 | | :------ | :------ |
173 | | `str` | `string` |
174 | 
175 | #### Returns
176 | 
177 | [`ABIType`](ABIType.md)
178 | 
179 | #### Inherited from
180 | 
181 | [ABIType](ABIType.md).[from](ABIType.md#from)
182 | 
183 | #### Defined in
184 | 
185 | abi/abi_type.ts:57
186 | 
```

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

```markdown
  1 | [algosdk](../README.md) / [Exports](../modules.md) / ABIAddressType
  2 | 
  3 | # Class: ABIAddressType
  4 | 
  5 | ## Hierarchy
  6 | 
  7 | - [`ABIType`](ABIType.md)
  8 | 
  9 |   ↳ **`ABIAddressType`**
 10 | 
 11 | ## Table of contents
 12 | 
 13 | ### Constructors
 14 | 
 15 | - [constructor](ABIAddressType.md#constructor)
 16 | 
 17 | ### Methods
 18 | 
 19 | - [byteLen](ABIAddressType.md#bytelen)
 20 | - [decode](ABIAddressType.md#decode)
 21 | - [encode](ABIAddressType.md#encode)
 22 | - [equals](ABIAddressType.md#equals)
 23 | - [isDynamic](ABIAddressType.md#isdynamic)
 24 | - [toString](ABIAddressType.md#tostring)
 25 | - [from](ABIAddressType.md#from)
 26 | 
 27 | ## Constructors
 28 | 
 29 | ### constructor
 30 | 
 31 | • **new ABIAddressType**()
 32 | 
 33 | #### Inherited from
 34 | 
 35 | [ABIType](ABIType.md).[constructor](ABIType.md#constructor)
 36 | 
 37 | ## Methods
 38 | 
 39 | ### byteLen
 40 | 
 41 | ▸ **byteLen**(): `number`
 42 | 
 43 | #### Returns
 44 | 
 45 | `number`
 46 | 
 47 | #### Overrides
 48 | 
 49 | [ABIType](ABIType.md).[byteLen](ABIType.md#bytelen)
 50 | 
 51 | #### Defined in
 52 | 
 53 | abi/abi_type.ts:254
 54 | 
 55 | ___
 56 | 
 57 | ### decode
 58 | 
 59 | ▸ **decode**(`byteString`): `string`
 60 | 
 61 | #### Parameters
 62 | 
 63 | | Name | Type |
 64 | | :------ | :------ |
 65 | | `byteString` | `Uint8Array` |
 66 | 
 67 | #### Returns
 68 | 
 69 | `string`
 70 | 
 71 | #### Overrides
 72 | 
 73 | [ABIType](ABIType.md).[decode](ABIType.md#decode)
 74 | 
 75 | #### Defined in
 76 | 
 77 | abi/abi_type.ts:273
 78 | 
 79 | ___
 80 | 
 81 | ### encode
 82 | 
 83 | ▸ **encode**(`value`): `Uint8Array`
 84 | 
 85 | #### Parameters
 86 | 
 87 | | Name | Type |
 88 | | :------ | :------ |
 89 | | `value` | [`ABIValue`](../modules.md#abivalue) |
 90 | 
 91 | #### Returns
 92 | 
 93 | `Uint8Array`
 94 | 
 95 | #### Overrides
 96 | 
 97 | [ABIType](ABIType.md).[encode](ABIType.md#encode)
 98 | 
 99 | #### Defined in
100 | 
101 | abi/abi_type.ts:258
102 | 
103 | ___
104 | 
105 | ### equals
106 | 
107 | ▸ **equals**(`other`): `boolean`
108 | 
109 | #### Parameters
110 | 
111 | | Name | Type |
112 | | :------ | :------ |
113 | | `other` | [`ABIType`](ABIType.md) |
114 | 
115 | #### Returns
116 | 
117 | `boolean`
118 | 
119 | #### Overrides
120 | 
121 | [ABIType](ABIType.md).[equals](ABIType.md#equals)
122 | 
123 | #### Defined in
124 | 
125 | abi/abi_type.ts:246
126 | 
127 | ___
128 | 
129 | ### isDynamic
130 | 
131 | ▸ **isDynamic**(): `boolean`
132 | 
133 | #### Returns
134 | 
135 | `boolean`
136 | 
137 | #### Overrides
138 | 
139 | [ABIType](ABIType.md).[isDynamic](ABIType.md#isdynamic)
140 | 
141 | #### Defined in
142 | 
143 | abi/abi_type.ts:250
144 | 
145 | ___
146 | 
147 | ### toString
148 | 
149 | ▸ **toString**(): `string`
150 | 
151 | #### Returns
152 | 
153 | `string`
154 | 
155 | #### Overrides
156 | 
157 | [ABIType](ABIType.md).[toString](ABIType.md#tostring)
158 | 
159 | #### Defined in
160 | 
161 | abi/abi_type.ts:242
162 | 
163 | ___
164 | 
165 | ### from
166 | 
167 | ▸ `Static` **from**(`str`): [`ABIType`](ABIType.md)
168 | 
169 | #### Parameters
170 | 
171 | | Name | Type |
172 | | :------ | :------ |
173 | | `str` | `string` |
174 | 
175 | #### Returns
176 | 
177 | [`ABIType`](ABIType.md)
178 | 
179 | #### Inherited from
180 | 
181 | [ABIType](ABIType.md).[from](ABIType.md#from)
182 | 
183 | #### Defined in
184 | 
185 | abi/abi_type.ts:57
186 | 
```

--------------------------------------------------------------------------------
/packages/server/src/tools/apiManager/vestige/index.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
 2 | import { networkTools, handleNetworkTools } from './networks.js';
 3 | import { protocolTools, handleProtocolTools } from './protocols.js';
 4 | import { assetTools, handleAssetTools } from './assets.js';
 5 | import { poolTools, handlePoolTools } from './pools.js';
 6 | import { vaultTools, handleVaultTools } from './vaults.js';
 7 | import { balanceTools, handleBalanceTools } from './balances.js';
 8 | import { noteTools, handleNoteTools } from './notes.js';
 9 | import { swapTools, handleSwapTools } from './swaps.js';
10 | 
11 | // Export all Vestige tools
12 | export const vestigeTools: Tool[] = [
13 |   ...networkTools,
14 |   ...protocolTools,
15 |   ...assetTools,
16 |   ...poolTools,
17 |   ...vaultTools,
18 |   ...balanceTools,
19 |   ...noteTools,
20 |   ...swapTools
21 | ];
22 | 
23 | // Handle all Vestige tools
24 | export async function handleVestigeTools(name: string, args: any): Promise<any> {
25 |   try {
26 |     const combinedArgs = { name, ...args };
27 |     // Network tools
28 |     if (name.startsWith('api_vestige_view_network')) {
29 |       return handleNetworkTools(combinedArgs);
30 |     }
31 | 
32 |     // Protocol tools
33 |     if (name.startsWith('api_vestige_view_protocol')) {
34 |       return handleProtocolTools(combinedArgs);
35 |     }
36 | 
37 |     
38 | 
39 |     // Pool tools
40 |     if (name.startsWith('api_vestige_view_pool')) {
41 |       return handlePoolTools(combinedArgs);
42 |     }
43 | 
44 |     // Vault tools
45 |     if (name.startsWith('api_vestige_view_vault')) {
46 |       return handleVaultTools(combinedArgs);
47 |     }
48 | 
49 |     // Balance tools
50 |     if (name.startsWith('api_vestige_view_balance')) {
51 |       return handleBalanceTools(combinedArgs);
52 |     }
53 |     
54 |     // Note tools
55 |     if (name.includes("_notes")) {
56 |       return handleNoteTools(combinedArgs);
57 |     }
58 |     // Asset tools
59 |     if (name.startsWith('api_vestige_view_asset')) {
60 |       return handleAssetTools(combinedArgs);
61 |     }
62 | 
63 |     // Swap tools
64 |     if (name.startsWith('api_vestige_') &&
65 |       (name.includes('_swap') || name.includes('_swaps') || name.includes('get_aggregator_stats'))) {
66 |       return handleSwapTools(combinedArgs);
67 |     }
68 | 
69 |     throw new McpError(
70 |       ErrorCode.MethodNotFound,
71 |       `Unknown tool: ${name}`
72 |     );
73 |   } catch (error) {
74 |     if (error instanceof McpError) {
75 |       throw error;
76 |     }
77 |     throw new McpError(
78 |       ErrorCode.InternalError,
79 |       `Failed to handle Vestige tool: ${error instanceof Error ? error.message : String(error)}`
80 |     );
81 |   }
82 | }
83 | 
```

--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/developer:docs:get-started:tokenization:ft.md:
--------------------------------------------------------------------------------

```markdown
 1 | title: Create a fungible token
 2 | 
 3 | # What are fungible tokens?
 4 | Fungible tokens, or FTs for short, are a type of asset split into multiple units that are fundamentally the same and interchangeable one-to-one with each other. Algos are fungible, but since they are also a utility token for the Algorand network, they are implemented differently from the types of fungible tokens we’ll talk about in this guide.
 5 | 
 6 | <center>
 7 | ![Examples of FTs](../../imgs/tokenization-fungible-1.png){: style="width:500px" align=center }
 8 | <figcaption style="font-size:12px">Examples of fungible token use cases: local currencies, travel program loyalty points, in-game tokens.</figcaption>
 9 | </center>
10 | 
11 | Loyalty programs that offer reward points that can be traded in for merchandise or services are considered fungible. Fiat currencies are fungible and can be represented on the blockchain as stablecoins (a token that maintains a steady value usually by having backed reserves or through some stabilization algorithms) or by direct issuance on the blockchain (central bank digital currencies). Tokenized shares in real estate, a company, or a fund are usually fungible too.
12 | 
13 | Tokenizing a fungible asset is an onramp to all the benefits of a blockchain ecosystem that we learned about in the first section of this getting started guide (security, trust, immutability, efficiency, low costs, composability).
14 | 
15 | # How to create fungible tokens
16 | Fungible tokens, like NFTs, are implemented as Algorand Standard Assets (ASAs). Also like NFTs, you do not need to write smart contract code. You just need to specify a few parameters to identify it as an FT (e.g. total count is greater than 1) and attach metadata so that potential owners have the information they need to validate the integrity of the asset. See Algorand Request for Comments for standards used by the Algorand community to properly format properties of an FT.
17 | 
18 | This asset creation transaction can be created using any of [Algorands SDKs](../../sdks/index.md). Code demonstrating creating an Asset is available in the [ASA documentation](../../get-details/asa.md#creating-an-asset).
19 | 
20 | 
21 | # Other fungible token resources 
22 | 
23 | - Detailed documentation on [Algorand Standard Assets (ASAs)](../../../get-details/asa/){: target="blank"} and related [transaction types](../../../get-details/transactions/#asset-configuration-transaction){: target="blank"}.
24 | 
25 | 
```
Page 6/93FirstPrevNextLast