This is page 10 of 74. Use http://codebase.md/goplausible/algorand-mcp?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-categories/puya.json:
--------------------------------------------------------------------------------
```json
{
"name": "Puya",
"description": "Python-based language for writing Algorand smart contracts",
"path": "puya",
"documents": [
{"name": "README", "path": "puya:README.md"}
],
"subcategories": {
"docs": {
"name": "Documentation",
"description": "Puya documentation",
"path": "puya:docs",
"documents": [
{"name": "Index", "path": "puya:docs:index.md"},
{"name": "API", "path": "puya:docs:api.md"},
{"name": "API - AlgoPy", "path": "puya:docs:api-algopy.md"},
{"name": "API - AlgoPy ARC4", "path": "puya:docs:api-algopy.arc4.md"},
{"name": "API - AlgoPy Group Transactions", "path": "puya:docs:api-algopy.gtxn.md"},
{"name": "API - AlgoPy Inner Transactions", "path": "puya:docs:api-algopy.itxn.md"},
{"name": "API - AlgoPy Operations", "path": "puya:docs:api-algopy.op.md"},
{"name": "Compiler", "path": "puya:docs:compiler.md"},
{"name": "Language Guide", "path": "puya:docs:language-guide.md"},
{"name": "Principles", "path": "puya:docs:principles.md"},
{"name": "Language Guide - ARC-4", "path": "puya:docs:lg-arc4.md"},
{"name": "Language Guide - ARC-28", "path": "puya:docs:lg-arc28.md"},
{"name": "Language Guide - Builtins", "path": "puya:docs:lg-builtins.md"},
{"name": "Language Guide - Calling Apps", "path": "puya:docs:lg-calling-apps.md"},
{"name": "Language Guide - Compilation", "path": "puya:docs:lg-compile.md"},
{"name": "Language Guide - Control Flow", "path": "puya:docs:lg-control.md"},
{"name": "Language Guide - Errors", "path": "puya:docs:lg-errors.md"},
{"name": "Language Guide - Logs", "path": "puya:docs:lg-logs.md"},
{"name": "Language Guide - Modules", "path": "puya:docs:lg-modules.md"},
{"name": "Language Guide - Opcode Budget", "path": "puya:docs:lg-opcode-budget.md"},
{"name": "Language Guide - Operations", "path": "puya:docs:lg-ops.md"},
{"name": "Language Guide - Storage", "path": "puya:docs:lg-storage.md"},
{"name": "Language Guide - Structure", "path": "puya:docs:lg-structure.md"},
{"name": "Language Guide - Transactions", "path": "puya:docs:lg-transactions.md"},
{"name": "Language Guide - Types", "path": "puya:docs:lg-types.md"},
{"name": "Language Guide - Unsupported Python Features", "path": "puya:docs:lg-unsupported-python-features.md"},
{"name": "Testing Guide", "path": "puya:docs:algopy_testing:index.md"}
]
},
"examples": {
"name": "Examples",
"description": "Example Puya contracts",
"path": "puya:examples",
"documents": [
{"name": "Auction", "path": "puya:examples:auction:README.md"}
]
},
"architecture": {
"name": "Architecture",
"description": "Puya architecture documentation",
"path": "puya:src:puya",
"documents": [
{"name": "Architecture", "path": "puya:src:puya:ARCHITECTURE.md"}
]
},
"stubs": {
"name": "Stubs",
"description": "Type stubs documentation",
"path": "puya:stubs",
"documents": [
{"name": "README", "path": "puya:stubs:README.md"}
]
},
"tests": {
"name": "Tests",
"description": "Test package documentation",
"path": "puya:tests",
"documents": [
{"name": "Test Expected Output", "path": "puya:tests:test_expected_output:README.md"}
]
}
}
}
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.AccountAssetResponse.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / AccountAssetResponse
# Class: AccountAssetResponse
[modelsv2](../modules/modelsv2.md).AccountAssetResponse
AccountAssetResponse describes the account's asset holding and asset parameters
(if either exist) for a specific asset ID. Asset parameters will only be
returned if the provided address is the asset's creator.
## Hierarchy
- `default`
↳ **`AccountAssetResponse`**
## Table of contents
### Constructors
- [constructor](modelsv2.AccountAssetResponse.md#constructor)
### Properties
- [assetHolding](modelsv2.AccountAssetResponse.md#assetholding)
- [attribute\_map](modelsv2.AccountAssetResponse.md#attribute_map)
- [createdAsset](modelsv2.AccountAssetResponse.md#createdasset)
- [round](modelsv2.AccountAssetResponse.md#round)
### Methods
- [get\_obj\_for\_encoding](modelsv2.AccountAssetResponse.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](modelsv2.AccountAssetResponse.md#from_obj_for_encoding)
## Constructors
### constructor
• **new AccountAssetResponse**(`«destructured»`)
Creates a new `AccountAssetResponse` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `assetHolding?` | [`AssetHolding`](modelsv2.AssetHolding.md) |
| › `createdAsset?` | [`AssetParams`](modelsv2.AssetParams.md) |
| › `round` | `number` \| `bigint` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/algod/models/types.ts:614
## Properties
### assetHolding
• `Optional` **assetHolding**: [`AssetHolding`](modelsv2.AssetHolding.md)
(asset) Details about the asset held by this account.
The raw account uses `AssetHolding` for this type.
#### Defined in
client/v2/algod/models/types.ts:598
___
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### createdAsset
• `Optional` **createdAsset**: [`AssetParams`](modelsv2.AssetParams.md)
(apar) parameters of the asset created by this account.
The raw account uses `AssetParams` for this type.
#### Defined in
client/v2/algod/models/types.ts:604
___
### round
• **round**: `number` \| `bigint`
The round for which this information is relevant.
#### Defined in
client/v2/algod/models/types.ts:592
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`AccountAssetResponse`](modelsv2.AccountAssetResponse.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`AccountAssetResponse`](modelsv2.AccountAssetResponse.md)
#### Defined in
client/v2/algod/models/types.ts:636
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/ARCs:specs:arc-0005.md:
--------------------------------------------------------------------------------
```markdown
---
arc: 5
title: Wallet Transaction Signing API (Functional)
description: An API for a function used to sign a list of transactions.
author: DanBurton (@DanBurton)
discussions-to: https://github.com/algorandfoundation/ARCs/issues/52
status: Final
type: Standards Track
category: Interface
sub-category: Wallet
created: 2021-08-09
---
# Algorand Wallet Transaction Signing API (Functionality Only)
> This ARC is intended to be completely compatible with [ARC-1](./arc-0001.md).
## Abstract
ARC-1 defines a standard for signing transactions with security in mind. This proposal is a strict subset of ARC-1 that outlines only the minimum functionality required in order to be useable.
Wallets that conform to ARC-1 already conform to this API.
Wallets conforming to [ARC-5](./arc-0005.md) but not ARC-1 **MUST** only be used for testing purposes and **MUST NOT** used on MainNet.
This is because this ARC-5 does not provide the same security guarantees as ARC-1 to protect properly wallet users.
## Specification
The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC-2119</a>.
> Comments like this are non-normative.
### Interface `SignTxnsFunction`
Signatures are requested by calling a function `signTxns(txns)` on a list `txns` of transactions. The dApp may also provide an optional parameter `opts`.
A wallet transaction signing function `signTxns` is defined by the following interface:
```ts
export type SignTxnsFunction = (
txns: WalletTransaction[],
opts?: SignTxnsOpts,
)
=> Promise<(SignedTxnStr | null)[]>;
```
* `SignTxnsOpts` is as specified by [ARC-1](./arc-0001.md#interface-signtxnsopts).
* `SignedTxnStr` is as specified by [ARC-1](./arc-0001.md#interface-signedtxnstr).
A `SignTxnsFunction`:
* expects `txns` to be in the correct format as specified by `WalletTransaction`.
### Interface `WalletTransaction`
```ts
export interface WalletTransaction {
/**
* Base64 encoding of the canonical msgpack encoding of a Transaction.
*/
txn: string;
}
```
### Semantic requirements
* The call `signTxns(txns, opts)` **MUST** either throw an error or return an array `ret` of the same length as the `txns` array.
* Each element of `ret` **MUST** be a valid `SignedTxnStr` with the underlying transaction exactly matching `txns[i].txn`.
This ARC uses interchangeably the terms "throw an error" and "reject a promise with an error".
`signTxns` **SHOULD** follow the error standard specified in [ARC-0001](./arc-0001.md#error-standards).
### UI requirements
Wallets satisfying this ARC but not [ARC-0001](./arc-0001.md) **MUST** clearly display a warning to the user that they **MUST** not be used with real funds on MainNet.
## Rationale
This simplified version of ARC-0001 exists for two main reasons:
1. To outline the minimum amount of functionality needed in order to be useful.
2. To serve as a stepping stone towards full ARC-0001 compatibility.
While this ARC **MUST** not be used by users with real funds on MainNet for security reasons, this simplified API sets a lower bar and acts as a signpost for which wallets can even be used at all.
## Security Considerations
None.
## Copyright
Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CCO</a>.
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/tealscript:tutorials_Hello World_0004-artifacts.md:
--------------------------------------------------------------------------------
```markdown
---
title: "4. Compilation Artifacts"
---
## Compiling
To compile the `hello_world.algo.ts`, simply run `npm run build`. This will generate some artifacts under the `contracts/artifacts` directory
## TEALScript Artifacts
The `contracts/` directory will now look like the following. While you won't need to directly interact with most of these files, it's get to get a general understanding of what they do. Below are all the files generated by TEALScript.
```
contracts
├── artifacts
│ ├── HelloWorld.abi.json
│ ├── HelloWorld.approval.teal
│ ├── HelloWorld.clear.teal
│ ├── HelloWorld.json
│ ├── HelloWorld.src_map.json
│ └── components
├── clients
│ └── HelloWorldClient.ts
└── hello_world.algo.ts
```
### artifacts/HelloWorld.abi.json
This is the ABI JSON description. In short, this file helps clients know what methods are availible and how to call them. You might also see that there are descriptions for our method and arguments. These descriptions were generated auotomatically via the TypeDoc comment. This means writing documentation for your contract methods not only helps you in your IDE, but it also helps potential callers of your contract understand how they should call it.
### artifacts/HelloWorld.approval.teal
This file is the low-level source code of our contract that is ultimately given to a node when deploying the contract. This file contains TEAL, which is a low-level language native to the Algorand blockchain. Luckily, you will not need to work with TEAL directly too often, but it's worthwhile to take a look at it to get a basic idea of how it works. Sometimes when debugging, you will need to look at the TEAL to truly understand what is happening.
This file represents what we call the `approval program`, which is the code that executes when the contract is normally called.
### artifacts/HelloWorld.clear.teal
On Algorand, contracts actually have two pieces of source code. The `approval program` and the `clear program`. The `clear program` is only called when a user wants to clear their state from the contract. If that sounds distressing, don't worry, this tutorial will go more in depth about how this works and ways to control what can and can't be deleted.
### artifacts/HelloWorld.json
This is the applicaiton spec for our contract. Think of this file like an enhanced ABI file. It includes all of the information in the ABI JSON description while also providing even more information for clients, such as source code, state encoding, etc.
## Algokit Generated Client
### clients/HelloWorldClien.ts
This is a client that was automatically generated by Algokit. If you look at what happens when `npm run build` runs, there are two commands:
1. `tealscript contracts/hello_world.algo.ts contracts/artifacts`
2. `algokitgen generate -a contracts/artifacts/HelloWorld.json -o contracts/clients/HelloWorldClient.ts`
The first one is passing the contract to the TEALScript compiler and generated the aforementioned artifacts.
The second one is passing our appspec, `HelloWorld.json`, to algokit which then outputs an auto-generated client. This generated client is a TypeScript file that exports a class that can be used to interact with our contract. This client includes not only all of the public methods, but also things like contract state.
This client means we don't need to manually write boilerplate code for connecting our contract to our client which will be shown in the next step of this tutorial.
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/puya:python:testing:README.md:
--------------------------------------------------------------------------------
```markdown
<div align="center">
<a href="https://github.com/algorandfoundation/algorand-python-testing"><img src="https://bafybeiaibjaf6zy6hvef2rrysaacsfsyb3hw4qqtgn657gw7k5tdzqdxzi.ipfs.nftstorage.link/" width=60%></a>
</div>
<p align="center">
<a target="_blank" href="https://algorandfoundation.github.io/algorand-python-testing/"><img src="https://img.shields.io/badge/docs-repository-74dfdc?logo=github&style=flat.svg" /></a>
<a target="_blank" href="https://developer.algorand.org/algokit/"><img src="https://img.shields.io/badge/learn-AlgoKit-74dfdc?logo=algorand&mac=flat.svg" /></a>
<a target="_blank" href="https://github.com/algorandfoundation/algorand-python-testing"><img src="https://img.shields.io/github/stars/algorandfoundation/algorand-python-testing?color=74dfdc&logo=star&style=flat" /></a>
<a target="_blank" href="https://developer.algorand.org/algokit/"><img src="https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Falgorandfoundation%2Falgorand-python-testing&countColor=%2374dfdc&style=flat" /></a>
</p>
---
Algorand Python Testing is a companion package to [Algorand Python](https://github.com/algorandfoundation/puya) that enables efficient unit testing of Algorand Python smart contracts in an offline environment. It emulates key AVM behaviors without requiring a network connection, offering fast and reliable testing capabilities with a familiar Pythonic interface.
[Documentation](https://algorandfoundation.github.io/algorand-python-testing/) | [Algorand Python Documentation](https://algorandfoundation.github.io/puya/)
## Quick start
The easiest way to use Algorand Python Testing is to instantiate a template with AlgoKit via `algokit init -t python`. This will give you a full development environment with testing capabilities built-in.
Alternatively, if you want to start from scratch:
1. Ensure you have Python 3.12+
2. Install [AlgoKit CLI](https://github.com/algorandfoundation/algokit-cli?tab=readme-ov-file#install)
3. Install Algorand Python Testing into your project:
```bash
pip install algorand-python-testing
```
4. Create a test file (e.g., `test_contract.py`):
```python
from algopy_testing import algopy_testing_context
from your_contract import YourContract
def test_your_contract():
with algopy_testing_context() as context:
# Arrange
contract = YourContract()
expected_result = ... # Your expected result here
# Act
result = contract.your_method(context.any.uint64()) # Your test code here
# Assert
assert result == expected_result
```
5. Run your tests using your preferred Python testing framework (e.g., pytest, unittest)
For more detailed information, check out the [full documentation](https://algorandfoundation.github.io/algorand-python-testing/).
## Features
- Offline testing environment simulating core AVM functionality
- Compatible with popular Python testing frameworks
- Supports testing of ARC4 contracts, smart signatures, and more
- Provides tools for mocking blockchain state and transactions
## Examples
For detailed examples showcasing various testing scenarios, refer to the [examples section](https://algorandfoundation.github.io/algorand-python-testing/examples.html) in the documentation.
## Contributing
We welcome contributions to this project! Please read our [contributing guide](CONTRIBUTING.md) to get started.
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallABIArgs.md:
--------------------------------------------------------------------------------
```markdown
[@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / AppClientCallABIArgs
# Interface: AppClientCallABIArgs
[types/app-client](../modules/types_app_client.md).AppClientCallABIArgs
## Hierarchy
- `Omit`\<[`ABIAppCallArgs`](../modules/types_app.md#abiappcallargs), ``"method"``\>
↳ **`AppClientCallABIArgs`**
## Table of contents
### Properties
- [accounts](types_app_client.AppClientCallABIArgs.md#accounts)
- [apps](types_app_client.AppClientCallABIArgs.md#apps)
- [assets](types_app_client.AppClientCallABIArgs.md#assets)
- [boxes](types_app_client.AppClientCallABIArgs.md#boxes)
- [lease](types_app_client.AppClientCallABIArgs.md#lease)
- [method](types_app_client.AppClientCallABIArgs.md#method)
- [methodArgs](types_app_client.AppClientCallABIArgs.md#methodargs)
- [rekeyTo](types_app_client.AppClientCallABIArgs.md#rekeyto)
## Properties
### accounts
• `Optional` **accounts**: (`string` \| `Address`)[]
The address of any accounts to load in
#### Inherited from
Omit.accounts
#### Defined in
[src/types/app.ts:79](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L79)
___
### apps
• `Optional` **apps**: `number`[]
IDs of any apps to load into the foreignApps array
#### Inherited from
Omit.apps
#### Defined in
[src/types/app.ts:81](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L81)
___
### assets
• `Optional` **assets**: `number`[]
IDs of any assets to load into the foreignAssets array
#### Inherited from
Omit.assets
#### Defined in
[src/types/app.ts:83](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L83)
___
### boxes
• `Optional` **boxes**: ([`BoxReference`](types_app.BoxReference.md) \| [`BoxIdentifier`](../modules/types_app.md#boxidentifier) \| `BoxReference`)[]
Any box references to load
#### Inherited from
Omit.boxes
#### Defined in
[src/types/app.ts:77](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L77)
___
### lease
• `Optional` **lease**: `string` \| `Uint8Array`
The optional lease for the transaction
#### Inherited from
Omit.lease
#### Defined in
[src/types/app.ts:75](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L75)
___
### method
• **method**: `string`
If calling an ABI method then either the name of the method, or the ABI signature
#### Defined in
[src/types/app-client.ts:201](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L201)
___
### methodArgs
• **methodArgs**: [`ABIAppCallArg`](../modules/types_app.md#abiappcallarg)[]
The ABI method args to pass in
#### Inherited from
Omit.methodArgs
#### Defined in
[src/types/app.ts:117](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L117)
___
### rekeyTo
• `Optional` **rekeyTo**: `string` \| [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom)
Optional account / account address that should be authorised to transact on behalf of the from account the app call is sent from after this transaction.
**Note:** Use with extreme caution and review the [official rekey guidance](https://developer.algorand.org/docs/get-details/accounts/rekey/) first.
#### Inherited from
Omit.rekeyTo
#### Defined in
[src/types/app.ts:88](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L88)
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionSignature.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionSignature
# Class: TransactionSignature
[indexerModels](../modules/indexerModels.md).TransactionSignature
Validation signature associated with some data. Only one of the signatures
should be provided.
## Hierarchy
- `default`
↳ **`TransactionSignature`**
## Table of contents
### Constructors
- [constructor](indexerModels.TransactionSignature.md#constructor)
### Properties
- [attribute\_map](indexerModels.TransactionSignature.md#attribute_map)
- [logicsig](indexerModels.TransactionSignature.md#logicsig)
- [multisig](indexerModels.TransactionSignature.md#multisig)
- [sig](indexerModels.TransactionSignature.md#sig)
### Methods
- [get\_obj\_for\_encoding](indexerModels.TransactionSignature.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](indexerModels.TransactionSignature.md#from_obj_for_encoding)
## Constructors
### constructor
• **new TransactionSignature**(`«destructured»`)
Creates a new `TransactionSignature` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `logicsig?` | [`TransactionSignatureLogicsig`](indexerModels.TransactionSignatureLogicsig.md) |
| › `multisig?` | [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) |
| › `sig?` | `string` \| `Uint8Array` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/indexer/models/types.ts:5388
## Properties
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### logicsig
• `Optional` **logicsig**: [`TransactionSignatureLogicsig`](indexerModels.TransactionSignatureLogicsig.md)
(lsig) Programatic transaction signature.
Definition:
data/transactions/logicsig.go
#### Defined in
client/v2/indexer/models/types.ts:5364
___
### multisig
• `Optional` **multisig**: [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md)
(msig) structure holding multiple subsignatures.
Definition:
crypto/multisig.go : MultisigSig
#### Defined in
client/v2/indexer/models/types.ts:5371
___
### sig
• `Optional` **sig**: `Uint8Array`
(sig) Standard ed25519 signature.
#### Defined in
client/v2/indexer/models/types.ts:5376
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionSignature`](indexerModels.TransactionSignature.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`TransactionSignature`](indexerModels.TransactionSignature.md)
#### Defined in
client/v2/indexer/models/types.ts:5413
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionStateProof.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionStateProof
# Class: TransactionStateProof
[indexerModels](../modules/indexerModels.md).TransactionStateProof
Fields for a state proof transaction.
Definition:
data/transactions/stateproof.go : StateProofTxnFields
## Hierarchy
- `default`
↳ **`TransactionStateProof`**
## Table of contents
### Constructors
- [constructor](indexerModels.TransactionStateProof.md#constructor)
### Properties
- [attribute\_map](indexerModels.TransactionStateProof.md#attribute_map)
- [message](indexerModels.TransactionStateProof.md#message)
- [stateProof](indexerModels.TransactionStateProof.md#stateproof)
- [stateProofType](indexerModels.TransactionStateProof.md#stateprooftype)
### Methods
- [get\_obj\_for\_encoding](indexerModels.TransactionStateProof.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](indexerModels.TransactionStateProof.md#from_obj_for_encoding)
## Constructors
### constructor
• **new TransactionStateProof**(`«destructured»`)
Creates a new `TransactionStateProof` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `message?` | [`IndexerStateProofMessage`](indexerModels.IndexerStateProofMessage.md) |
| › `stateProof?` | [`StateProofFields`](indexerModels.StateProofFields.md) |
| › `stateProofType?` | `number` \| `bigint` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/indexer/models/types.ts:5676
## Properties
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### message
• `Optional` **message**: [`IndexerStateProofMessage`](indexerModels.IndexerStateProofMessage.md)
(spmsg)
#### Defined in
client/v2/indexer/models/types.ts:5652
___
### stateProof
• `Optional` **stateProof**: [`StateProofFields`](indexerModels.StateProofFields.md)
(sp) represents a state proof.
Definition:
crypto/stateproof/structs.go : StateProof
#### Defined in
client/v2/indexer/models/types.ts:5659
___
### stateProofType
• `Optional` **stateProofType**: `number` \| `bigint`
(sptype) Type of the state proof. Integer representing an entry defined in
protocol/stateproof.go
#### Defined in
client/v2/indexer/models/types.ts:5665
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionStateProof`](indexerModels.TransactionStateProof.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`TransactionStateProof`](indexerModels.TransactionStateProof.md)
#### Defined in
client/v2/indexer/models/types.ts:5698
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.ApplicationLogsResponse.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / ApplicationLogsResponse
# Class: ApplicationLogsResponse
[indexerModels](../modules/indexerModels.md).ApplicationLogsResponse
## Hierarchy
- `default`
↳ **`ApplicationLogsResponse`**
## Table of contents
### Constructors
- [constructor](indexerModels.ApplicationLogsResponse.md#constructor)
### Properties
- [applicationId](indexerModels.ApplicationLogsResponse.md#applicationid)
- [attribute\_map](indexerModels.ApplicationLogsResponse.md#attribute_map)
- [currentRound](indexerModels.ApplicationLogsResponse.md#currentround)
- [logData](indexerModels.ApplicationLogsResponse.md#logdata)
- [nextToken](indexerModels.ApplicationLogsResponse.md#nexttoken)
### Methods
- [get\_obj\_for\_encoding](indexerModels.ApplicationLogsResponse.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](indexerModels.ApplicationLogsResponse.md#from_obj_for_encoding)
## Constructors
### constructor
• **new ApplicationLogsResponse**(`«destructured»`)
Creates a new `ApplicationLogsResponse` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `applicationId` | `number` \| `bigint` |
| › `currentRound` | `number` \| `bigint` |
| › `logData?` | [`ApplicationLogData`](indexerModels.ApplicationLogData.md)[] |
| › `nextToken?` | `string` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/indexer/models/types.ts:1111
## Properties
### applicationId
• **applicationId**: `number` \| `bigint`
(appidx) application index.
#### Defined in
client/v2/indexer/models/types.ts:1088
___
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### currentRound
• **currentRound**: `number` \| `bigint`
Round at which the results were computed.
#### Defined in
client/v2/indexer/models/types.ts:1093
___
### logData
• `Optional` **logData**: [`ApplicationLogData`](indexerModels.ApplicationLogData.md)[]
#### Defined in
client/v2/indexer/models/types.ts:1095
___
### nextToken
• `Optional` **nextToken**: `string`
Used for pagination, when making another request provide this token with the
next parameter.
#### Defined in
client/v2/indexer/models/types.ts:1101
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`ApplicationLogsResponse`](indexerModels.ApplicationLogsResponse.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`ApplicationLogsResponse`](indexerModels.ApplicationLogsResponse.md)
#### Defined in
client/v2/indexer/models/types.ts:1137
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.Application.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / Application
# Class: Application
[indexerModels](../modules/indexerModels.md).Application
Application index and its parameters
## Hierarchy
- `default`
↳ **`Application`**
## Table of contents
### Constructors
- [constructor](indexerModels.Application.md#constructor)
### Properties
- [attribute\_map](indexerModels.Application.md#attribute_map)
- [createdAtRound](indexerModels.Application.md#createdatround)
- [deleted](indexerModels.Application.md#deleted)
- [deletedAtRound](indexerModels.Application.md#deletedatround)
- [id](indexerModels.Application.md#id)
- [params](indexerModels.Application.md#params)
### Methods
- [get\_obj\_for\_encoding](indexerModels.Application.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](indexerModels.Application.md#from_obj_for_encoding)
## Constructors
### constructor
• **new Application**(`«destructured»`)
Creates a new `Application` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `createdAtRound?` | `number` \| `bigint` |
| › `deleted?` | `boolean` |
| › `deletedAtRound?` | `number` \| `bigint` |
| › `id` | `number` \| `bigint` |
| › `params` | [`ApplicationParams`](indexerModels.ApplicationParams.md) |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/indexer/models/types.ts:816
## Properties
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### createdAtRound
• `Optional` **createdAtRound**: `number` \| `bigint`
Round when this application was created.
#### Defined in
client/v2/indexer/models/types.ts:796
___
### deleted
• `Optional` **deleted**: `boolean`
Whether or not this application is currently deleted.
#### Defined in
client/v2/indexer/models/types.ts:801
___
### deletedAtRound
• `Optional` **deletedAtRound**: `number` \| `bigint`
Round when this application was deleted.
#### Defined in
client/v2/indexer/models/types.ts:806
___
### id
• **id**: `number` \| `bigint`
application index.
#### Defined in
client/v2/indexer/models/types.ts:786
___
### params
• **params**: [`ApplicationParams`](indexerModels.ApplicationParams.md)
application parameters.
#### Defined in
client/v2/indexer/models/types.ts:791
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`Application`](indexerModels.Application.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`Application`](indexerModels.Application.md)
#### Defined in
client/v2/indexer/models/types.ts:846
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCoreParams.md:
--------------------------------------------------------------------------------
```markdown
[@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / AppClientDeployCoreParams
# Interface: AppClientDeployCoreParams
[types/app-client](../modules/types_app_client.md).AppClientDeployCoreParams
Core parameters to pass into ApplicationClient.deploy
## Hierarchy
- **`AppClientDeployCoreParams`**
↳ [`AppClientDeployParams`](types_app_client.AppClientDeployParams.md)
## Table of contents
### Properties
- [allowDelete](types_app_client.AppClientDeployCoreParams.md#allowdelete)
- [allowUpdate](types_app_client.AppClientDeployCoreParams.md#allowupdate)
- [onSchemaBreak](types_app_client.AppClientDeployCoreParams.md#onschemabreak)
- [onUpdate](types_app_client.AppClientDeployCoreParams.md#onupdate)
- [sendParams](types_app_client.AppClientDeployCoreParams.md#sendparams)
- [sender](types_app_client.AppClientDeployCoreParams.md#sender)
- [version](types_app_client.AppClientDeployCoreParams.md#version)
## Properties
### allowDelete
• `Optional` **allowDelete**: `boolean`
Whether or not to allow deletes in the contract using the deploy-time deletability control if present in your contract.
If this is not specified then it will automatically be determined based on the AppSpec definition
#### Defined in
[src/types/app-client.ts:170](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L170)
___
### allowUpdate
• `Optional` **allowUpdate**: `boolean`
Whether or not to allow updates in the contract using the deploy-time updatability control if present in your contract.
If this is not specified then it will automatically be determined based on the AppSpec definition
#### Defined in
[src/types/app-client.ts:166](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L166)
___
### onSchemaBreak
• `Optional` **onSchemaBreak**: [`OnSchemaBreak`](../enums/types_app.OnSchemaBreak.md) \| ``"replace"`` \| ``"fail"`` \| ``"append"``
What action to perform if a schema break is detected
#### Defined in
[src/types/app-client.ts:172](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L172)
___
### onUpdate
• `Optional` **onUpdate**: ``"replace"`` \| ``"fail"`` \| ``"append"`` \| [`OnUpdate`](../enums/types_app.OnUpdate.md) \| ``"update"``
What action to perform if a TEAL update is detected
#### Defined in
[src/types/app-client.ts:174](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L174)
___
### sendParams
• `Optional` **sendParams**: `Omit`\<[`SendTransactionParams`](types_transaction.SendTransactionParams.md), ``"skipSending"`` \| ``"skipWaiting"``\>
Parameters to control transaction sending
#### Defined in
[src/types/app-client.ts:162](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L162)
___
### sender
• `Optional` **sender**: [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom)
The optional sender to send the transaction from, will use the application client's default sender by default if specified
#### Defined in
[src/types/app-client.ts:160](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L160)
___
### version
• `Optional` **version**: `string`
The version of the contract, uses "1.0" by default
#### Defined in
[src/types/app-client.ts:158](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L158)
```
--------------------------------------------------------------------------------
/packages/server/tests/resources/algod/asset.test.ts:
--------------------------------------------------------------------------------
```typescript
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
import {
assetResources,
assetResourceSchemas,
getAssetByID,
handleAssetResources
} from '../../../src/resources/algod/asset.js';
import { algodClient } from '../../../src/algorand-client.js';
// Mock algosdk client
jest.mock('../../../src/algorand-client.js', () => ({
algodClient: {
getAssetByID: jest.fn()
},
API_URIS: {
ASSET_INFO: 'algorand://asset/{asset-id}/info'
}
}));
describe('Algod Asset Resources', () => {
beforeEach(() => {
jest.clearAllMocks();
});
describe('Resource Definitions', () => {
it('should define asset resources', () => {
expect(assetResources).toHaveLength(1);
expect(assetResources[0].name).toBe('Asset Info');
});
it('should define resource schemas', () => {
expect(Object.keys(assetResourceSchemas)).toHaveLength(1);
expect(assetResourceSchemas).toHaveProperty('algorand://asset/{asset-id}/info');
});
});
describe('Asset Information', () => {
const mockAssetId = 123;
const mockResponse = {
asset: {
index: mockAssetId,
params: {
creator: 'MOCK_ADDRESS',
name: 'Test Asset',
unitName: 'TEST',
total: 1000000,
decimals: 6
}
},
currentRound: 1234
};
beforeEach(() => {
(algodClient.getAssetByID as jest.Mock).mockReturnValue({
do: jest.fn().mockResolvedValue(mockResponse)
});
});
it('should fetch asset information', async () => {
const result = await getAssetByID(mockAssetId);
expect(result).toEqual(mockResponse);
expect(algodClient.getAssetByID).toHaveBeenCalledWith(mockAssetId);
});
it('should handle errors', async () => {
const error = new Error('Network error');
(algodClient.getAssetByID as jest.Mock).mockReturnValue({
do: jest.fn().mockRejectedValue(error)
});
await expect(getAssetByID(mockAssetId))
.rejects
.toThrow('Failed to get asset info: Network error');
});
});
describe('Resource Handler', () => {
const mockAssetId = 123;
const mockResponse = {
asset: {
index: mockAssetId,
params: {
creator: 'MOCK_ADDRESS',
name: 'Test Asset'
}
},
currentRound: 1234
};
beforeEach(() => {
(algodClient.getAssetByID as jest.Mock).mockReturnValue({
do: jest.fn().mockResolvedValue(mockResponse)
});
});
it('should handle asset info URI', async () => {
const uri = `algorand://asset/${mockAssetId}/info`;
const result = await handleAssetResources(uri);
expect(result).toHaveLength(1);
expect(JSON.parse(result[0].text)).toEqual({
asset: mockResponse.asset,
currentRound: mockResponse.currentRound
});
});
it('should return empty array for unknown URI', async () => {
const uri = 'algorand://unknown';
const result = await handleAssetResources(uri);
expect(result).toHaveLength(0);
});
it('should handle errors with McpError', async () => {
const error = new Error('Network error');
(algodClient.getAssetByID as jest.Mock).mockReturnValue({
do: jest.fn().mockRejectedValue(error)
});
const uri = `algorand://asset/${mockAssetId}/info`;
await expect(handleAssetResources(uri))
.rejects
.toThrow(new McpError(ErrorCode.InternalError, 'Network error'));
});
});
});
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy-categories/tealscript.json:
--------------------------------------------------------------------------------
```json
{
"name": "tealscript",
"description": "TypeScript-like language for writing Algorand smart contracts",
"path": "tealscript",
"documents": [
{"name": "README", "path": "tealscript:README.md"},
{"name": "Features", "path": "tealscript:FEATURES.md"}
],
"subcategories": {
"guides": {
"name": "Guides",
"description": "tealscript development guides",
"path": "tealscript:guides",
"documents": [
{"name": "Getting Started", "path": "tealscript:guides:getting_started.md"},
{"name": "Atomic Transactions", "path": "tealscript:guides:atomic_txn.md"},
{"name": "Features", "path": "tealscript:guides:features.md"},
{"name": "Inner Transactions", "path": "tealscript:guides:inner_transactions.md"},
{"name": "Lifecycle", "path": "tealscript:guides:lifecycle.md"},
{"name": "Math", "path": "tealscript:guides:math.md"},
{"name": "Methods", "path": "tealscript:guides:methods.md"},
{"name": "Multiple Contracts", "path": "tealscript:guides:multiple_contracts.md"},
{"name": "PyTeal Comparison", "path": "tealscript:guides:pyteal.md"},
{"name": "Storage", "path": "tealscript:guides:storage.md"}
],
"subcategories": {
"types": {
"name": "Supported Types",
"description": "Documentation for supported data types",
"path": "tealscript:guides:Supported Types",
"documents": [
{"name": "Arrays", "path": "tealscript:guides:Supported Types:arrays.md"},
{"name": "Numbers", "path": "tealscript:guides:Supported Types:numbers.md"}
]
}
}
},
"tutorials": {
"name": "Tutorials",
"description": "Step-by-step tutorials",
"path": "tealscript:tutorials",
"subcategories": {
"hello-world": {
"name": "Hello World",
"description": "Getting started with tealscript",
"path": "tealscript:tutorials:Hello World",
"documents": [
{"name": "Introduction", "path": "tealscript:tutorials:Hello World:0001-intro.md"},
{"name": "Project Setup", "path": "tealscript:tutorials:Hello World:0002-init.md"},
{"name": "Writing Contract", "path": "tealscript:tutorials:Hello World:0003-contract.md"},
{"name": "Building Artifacts", "path": "tealscript:tutorials:Hello World:0004-artifacts.md"},
{"name": "Hello Contract", "path": "tealscript:tutorials:Hello World:0005-hello.md"},
{"name": "Testing", "path": "tealscript:tutorials:Hello World:0006-test.md"}
]
}
}
},
"examples": {
"name": "Examples",
"description": "Example tealscript contracts",
"path": "tealscript:examples",
"documents": [
{"name": "AMM", "path": "tealscript:examples:amm:README.md"},
{"name": "Auction", "path": "tealscript:examples:auction:README.md"},
{"name": "Big Box", "path": "tealscript:examples:big_box:README.md"},
{"name": "Inner Transactions", "path": "tealscript:examples:itxns:README.md"},
{"name": "LogicSig with App", "path": "tealscript:examples:lsig_with_app:README.md"},
{"name": "RETI", "path": "tealscript:examples:reti:README.md"}
]
},
"tests": {
"name": "Tests",
"description": "Test package documentation",
"path": "tealscript:tests",
"documents": [
{"name": "Test Package", "path": "tealscript:tests:test_package:README.md"}
]
}
}
}
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.SimulateTraceConfig.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / SimulateTraceConfig
# Class: SimulateTraceConfig
[modelsv2](../modules/modelsv2.md).SimulateTraceConfig
An object that configures simulation execution trace.
## Hierarchy
- `default`
↳ **`SimulateTraceConfig`**
## Table of contents
### Constructors
- [constructor](modelsv2.SimulateTraceConfig.md#constructor)
### Properties
- [attribute\_map](modelsv2.SimulateTraceConfig.md#attribute_map)
- [enable](modelsv2.SimulateTraceConfig.md#enable)
- [scratchChange](modelsv2.SimulateTraceConfig.md#scratchchange)
- [stackChange](modelsv2.SimulateTraceConfig.md#stackchange)
- [stateChange](modelsv2.SimulateTraceConfig.md#statechange)
### Methods
- [get\_obj\_for\_encoding](modelsv2.SimulateTraceConfig.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](modelsv2.SimulateTraceConfig.md#from_obj_for_encoding)
## Constructors
### constructor
• **new SimulateTraceConfig**(`«destructured»`)
Creates a new `SimulateTraceConfig` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `enable?` | `boolean` |
| › `scratchChange?` | `boolean` |
| › `stackChange?` | `boolean` |
| › `stateChange?` | `boolean` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/algod/models/types.ts:4579
## Properties
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### enable
• `Optional` **enable**: `boolean`
A boolean option for opting in execution trace features simulation endpoint.
#### Defined in
client/v2/algod/models/types.ts:4549
___
### scratchChange
• `Optional` **scratchChange**: `boolean`
A boolean option enabling returning scratch slot changes together with execution
trace during simulation.
#### Defined in
client/v2/algod/models/types.ts:4555
___
### stackChange
• `Optional` **stackChange**: `boolean`
A boolean option enabling returning stack changes together with execution trace
during simulation.
#### Defined in
client/v2/algod/models/types.ts:4561
___
### stateChange
• `Optional` **stateChange**: `boolean`
A boolean option enabling returning application state changes (global, local,
and box changes) with the execution trace during simulation.
#### Defined in
client/v2/algod/models/types.ts:4567
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`SimulateTraceConfig`](modelsv2.SimulateTraceConfig.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`SimulateTraceConfig`](modelsv2.SimulateTraceConfig.md)
#### Defined in
client/v2/algod/models/types.ts:4605
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionPayment.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionPayment
# Class: TransactionPayment
[indexerModels](../modules/indexerModels.md).TransactionPayment
Fields for a payment transaction.
Definition:
data/transactions/payment.go : PaymentTxnFields
## Hierarchy
- `default`
↳ **`TransactionPayment`**
## Table of contents
### Constructors
- [constructor](indexerModels.TransactionPayment.md#constructor)
### Properties
- [amount](indexerModels.TransactionPayment.md#amount)
- [attribute\_map](indexerModels.TransactionPayment.md#attribute_map)
- [closeAmount](indexerModels.TransactionPayment.md#closeamount)
- [closeRemainderTo](indexerModels.TransactionPayment.md#closeremainderto)
- [receiver](indexerModels.TransactionPayment.md#receiver)
### Methods
- [get\_obj\_for\_encoding](indexerModels.TransactionPayment.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](indexerModels.TransactionPayment.md#from_obj_for_encoding)
## Constructors
### constructor
• **new TransactionPayment**(`«destructured»`)
Creates a new `TransactionPayment` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `amount` | `number` \| `bigint` |
| › `closeAmount?` | `number` \| `bigint` |
| › `closeRemainderTo?` | `string` |
| › `receiver` | `string` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/indexer/models/types.ts:5249
## Properties
### amount
• **amount**: `number` \| `bigint`
(amt) number of MicroAlgos intended to be transferred.
#### Defined in
client/v2/indexer/models/types.ts:5221
___
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### closeAmount
• `Optional` **closeAmount**: `number` \| `bigint`
Number of MicroAlgos that were sent to the close-remainder-to address when
closing the sender account.
#### Defined in
client/v2/indexer/models/types.ts:5232
___
### closeRemainderTo
• `Optional` **closeRemainderTo**: `string`
(close) when set, indicates that the sending account should be closed and all
remaining funds be transferred to this address.
#### Defined in
client/v2/indexer/models/types.ts:5238
___
### receiver
• **receiver**: `string`
(rcv) receiver's address.
#### Defined in
client/v2/indexer/models/types.ts:5226
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionPayment`](indexerModels.TransactionPayment.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`TransactionPayment`](indexerModels.TransactionPayment.md)
#### Defined in
client/v2/indexer/models/types.ts:5275
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.StateProofTracking.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / StateProofTracking
# Class: StateProofTracking
[indexerModels](../modules/indexerModels.md).StateProofTracking
## Hierarchy
- `default`
↳ **`StateProofTracking`**
## Table of contents
### Constructors
- [constructor](indexerModels.StateProofTracking.md#constructor)
### Properties
- [attribute\_map](indexerModels.StateProofTracking.md#attribute_map)
- [nextRound](indexerModels.StateProofTracking.md#nextround)
- [onlineTotalWeight](indexerModels.StateProofTracking.md#onlinetotalweight)
- [type](indexerModels.StateProofTracking.md#type)
- [votersCommitment](indexerModels.StateProofTracking.md#voterscommitment)
### Methods
- [get\_obj\_for\_encoding](indexerModels.StateProofTracking.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](indexerModels.StateProofTracking.md#from_obj_for_encoding)
## Constructors
### constructor
• **new StateProofTracking**(`«destructured»`)
Creates a new `StateProofTracking` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `nextRound?` | `number` \| `bigint` |
| › `onlineTotalWeight?` | `number` \| `bigint` |
| › `type?` | `number` \| `bigint` |
| › `votersCommitment?` | `string` \| `Uint8Array` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/indexer/models/types.ts:3834
## Properties
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### nextRound
• `Optional` **nextRound**: `number` \| `bigint`
(n) Next round for which we will accept a state proof transaction.
#### Defined in
client/v2/indexer/models/types.ts:3806
___
### onlineTotalWeight
• `Optional` **onlineTotalWeight**: `number` \| `bigint`
(t) The total number of microalgos held by the online accounts during the
StateProof round.
#### Defined in
client/v2/indexer/models/types.ts:3812
___
### type
• `Optional` **type**: `number` \| `bigint`
State Proof Type. Note the raw object uses map with this as key.
#### Defined in
client/v2/indexer/models/types.ts:3817
___
### votersCommitment
• `Optional` **votersCommitment**: `Uint8Array`
(v) Root of a vector commitment containing online accounts that will help sign
the proof.
#### Defined in
client/v2/indexer/models/types.ts:3823
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`StateProofTracking`](indexerModels.StateProofTracking.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`StateProofTracking`](indexerModels.StateProofTracking.md)
#### Defined in
client/v2/indexer/models/types.ts:3863
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.HealthCheck.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / HealthCheck
# Class: HealthCheck
[indexerModels](../modules/indexerModels.md).HealthCheck
A health check response.
## Hierarchy
- `default`
↳ **`HealthCheck`**
## Table of contents
### Constructors
- [constructor](indexerModels.HealthCheck.md#constructor)
### Properties
- [attribute\_map](indexerModels.HealthCheck.md#attribute_map)
- [data](indexerModels.HealthCheck.md#data)
- [dbAvailable](indexerModels.HealthCheck.md#dbavailable)
- [errors](indexerModels.HealthCheck.md#errors)
- [isMigrating](indexerModels.HealthCheck.md#ismigrating)
- [message](indexerModels.HealthCheck.md#message)
- [round](indexerModels.HealthCheck.md#round)
- [version](indexerModels.HealthCheck.md#version)
### Methods
- [get\_obj\_for\_encoding](indexerModels.HealthCheck.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](indexerModels.HealthCheck.md#from_obj_for_encoding)
## Constructors
### constructor
• **new HealthCheck**(`«destructured»`)
Creates a new `HealthCheck` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `data?` | `Record`\<`string`, `any`\> |
| › `dbAvailable` | `boolean` |
| › `errors?` | `string`[] |
| › `isMigrating` | `boolean` |
| › `message` | `string` |
| › `round` | `number` \| `bigint` |
| › `version` | `string` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/indexer/models/types.ts:3114
## Properties
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### data
• `Optional` **data**: `Record`\<`string`, `any`\>
#### Defined in
client/v2/indexer/models/types.ts:3100
___
### dbAvailable
• **dbAvailable**: `boolean`
#### Defined in
client/v2/indexer/models/types.ts:3087
___
### errors
• `Optional` **errors**: `string`[]
#### Defined in
client/v2/indexer/models/types.ts:3102
___
### isMigrating
• **isMigrating**: `boolean`
#### Defined in
client/v2/indexer/models/types.ts:3089
___
### message
• **message**: `string`
#### Defined in
client/v2/indexer/models/types.ts:3091
___
### round
• **round**: `number` \| `bigint`
#### Defined in
client/v2/indexer/models/types.ts:3093
___
### version
• **version**: `string`
Current version.
#### Defined in
client/v2/indexer/models/types.ts:3098
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`HealthCheck`](indexerModels.HealthCheck.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`HealthCheck`](indexerModels.HealthCheck.md)
#### Defined in
client/v2/indexer/models/types.ts:3152
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.Asset.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / Asset
# Class: Asset
[indexerModels](../modules/indexerModels.md).Asset
Specifies both the unique identifier and the parameters for an asset
## Hierarchy
- `default`
↳ **`Asset`**
## Table of contents
### Constructors
- [constructor](indexerModels.Asset.md#constructor)
### Properties
- [attribute\_map](indexerModels.Asset.md#attribute_map)
- [createdAtRound](indexerModels.Asset.md#createdatround)
- [deleted](indexerModels.Asset.md#deleted)
- [destroyedAtRound](indexerModels.Asset.md#destroyedatround)
- [index](indexerModels.Asset.md#index)
- [params](indexerModels.Asset.md#params)
### Methods
- [get\_obj\_for\_encoding](indexerModels.Asset.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](indexerModels.Asset.md#from_obj_for_encoding)
## Constructors
### constructor
• **new Asset**(`«destructured»`)
Creates a new `Asset` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `createdAtRound?` | `number` \| `bigint` |
| › `deleted?` | `boolean` |
| › `destroyedAtRound?` | `number` \| `bigint` |
| › `index` | `number` \| `bigint` |
| › `params` | [`AssetParams`](indexerModels.AssetParams.md) |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/indexer/models/types.ts:1512
## Properties
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### createdAtRound
• `Optional` **createdAtRound**: `number` \| `bigint`
Round during which this asset was created.
#### Defined in
client/v2/indexer/models/types.ts:1489
___
### deleted
• `Optional` **deleted**: `boolean`
Whether or not this asset is currently deleted.
#### Defined in
client/v2/indexer/models/types.ts:1494
___
### destroyedAtRound
• `Optional` **destroyedAtRound**: `number` \| `bigint`
Round during which this asset was destroyed.
#### Defined in
client/v2/indexer/models/types.ts:1499
___
### index
• **index**: `number` \| `bigint`
unique asset identifier
#### Defined in
client/v2/indexer/models/types.ts:1476
___
### params
• **params**: [`AssetParams`](indexerModels.AssetParams.md)
AssetParams specifies the parameters for an asset.
(apar) when part of an AssetConfig transaction.
Definition:
data/transactions/asset.go : AssetParams
#### Defined in
client/v2/indexer/models/types.ts:1484
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`Asset`](indexerModels.Asset.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`Asset`](indexerModels.Asset.md)
#### Defined in
client/v2/indexer/models/types.ts:1542
```
--------------------------------------------------------------------------------
/packages/server/src/tools/apiManager/vestige/notes.ts:
--------------------------------------------------------------------------------
```typescript
import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
import { ResponseProcessor } from '../../../utils/responseProcessor.js';
import { env } from '../../../env.js';
export const noteTools: Tool[] = [
{
name: 'api_vestige_view_notes',
description: 'Get notes by network id and optionally asset id',
inputSchema: {
type: 'object',
properties: {
network_id: {
type: 'integer',
description: 'Network ID'
},
asset_id: {
type: 'integer',
description: 'Optional asset ID filter'
},
limit: {
type: 'integer',
description: 'Maximum number of results',
default: 50,
maximum: 250,
minimum: 1
},
offset: {
type: 'integer',
description: 'Number of results to skip',
default: 0,
minimum: 0
},
order_by: {
type: 'string',
description: 'Field to order by'
},
order_dir: {
type: 'string',
description: 'Order direction (asc/desc)',
default: 'desc',
pattern: '^(asc|desc)$'
}
},
required: ['network_id']
}
},
{
name: 'api_vestige_view_first_asset_notes',
description: 'Get first note for assets',
inputSchema: {
type: 'object',
properties: {
network_id: {
type: 'integer',
description: 'Network ID'
},
asset_ids: {
type: 'string',
description: 'Comma-separated list of asset IDs'
}
},
required: ['network_id', 'asset_ids']
}
},
{
name: 'api_vestige_view_asset_notes_count',
description: 'Get notes count for assets',
inputSchema: {
type: 'object',
properties: {
network_id: {
type: 'integer',
description: 'Network ID'
},
asset_ids: {
type: 'string',
description: 'Comma-separated list of asset IDs'
}
},
required: ['network_id', 'asset_ids']
}
}
];
export const handleNoteTools = ResponseProcessor.wrapResourceHandler(async function handleNoteTools(args: any): Promise<any> {
const name = args.name;
const baseUrl = env.vestige_api_url;
let endpoint = '';
switch (name) {
case 'api_vestige_view_notes':
endpoint = '/notes';
break;
case 'api_vestige_view_first_asset_notes':
endpoint = '/notes/first';
break;
case 'api_vestige_view_asset_notes_count':
endpoint = '/notes/count';
break;
default:
throw new McpError(
ErrorCode.MethodNotFound,
`Unknown tool: ${name}`
);
}
try {
// Add query parameters if they exist
const queryParams = new URLSearchParams();
for (const [key, value] of Object.entries(args)) {
if (value !== undefined) {
queryParams.append(key, String(value));
}
}
const url = `${baseUrl}${endpoint}${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
const response = await fetch(url);
if (!response.ok) {
throw new McpError(
ErrorCode.InternalError,
`Vestige API error: ${response.status} ${response.statusText}`
);
}
const data = await response.json();
return data;
} catch (error) {
if (error instanceof McpError) {
throw error;
}
throw new McpError(
ErrorCode.InternalError,
`Failed to fetch note data: ${error instanceof Error ? error.message : String(error)}`
);
}
});
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/ARCs:assets:arc-0034:TemplateForm.md:
--------------------------------------------------------------------------------
```markdown
---
id: <proposal number (same as PR)>
period: <Period number (Integer) (When do you want to submit your proposal)>
title: <The proposal title is a few words, not a complete sentence>
author: <a comma separated list of the author's or authors' name + GitHub username (in parenthesis), or name and email (in angle brackets). Example, FirstName LastName (@GitHubUsername), FirstName LastName <[email protected]>, FirstName (@GitHubUsername) and GitHubUsername (@GitHubUsername)>
email: <Email address to start the contract process >
discussions-to: <Indicating the URL where the proposal is being discussed>
company_name: <Name of the company>
category: <dApps, Tools, Community, Other>
focus_area: <Banking,DEX,Defi,Deployment,Education,Gaming,IDE,Identity,Libraries,Metaverse,Monitoring,Node,NFT,Oracle,Social,Storage,Teal,User Onboarding,Wallet, Other>
open_source: <Yes, No>
funding_type: <Proactive, Retroactive>
amount_requested: <Amount (integer) requested in ALGO, it should be at least 10000>
delivery_date: <project delivery date, in ISO 8601 (yyyy-mm-dd) format>
status: <Draft, Final, Approved>
---
>Proposals that do not include information on all template sections will be rejected.
>Please, before submitting the grant proposal, review the contract template and ensure you're comfortable with its terms. <a href="https://drive.google.com/file/d/1dsKwQGhnS3h_PrSkoidhnvqlX7soLpZ-/view">Contract Template</a>
## Abstract
A summary of the project, including how the Algorand ecosystem would benefit (proactive)/ has benefitted (retroactive) from its implementation.
## Team
Information about the team members and their qualifications, including relevant experience and skills.
## Experience with Algorand
Details about the team's experience with the Algorand protocol and any previous projects built on it.
> eg
> Using SDKs
> Building applications
> Understanding of DApps
> Knowledge about the ecosystem
> Running nodes
## Present Proposal
A detailed plan for the development and implementation of the proposal.
To enhance clarity and accountability, we're asking proposers to detail the maintenance period, availability, and sustainability plans for their projects. This includes information on potential costs and the duration for which services will be offered at no or reduced cost
### Deliverable
Proposals must include clear, non-technical descriptions of deliverables. We encourage the use of multimedia (blog/video) to help explain your proposal's benefits to the community.
Proposals that do not specify deliverables and a process to check deliverables will be rejected.
## Future Blueprint
> This part can be optional for one-time grants.
A high-level plan, defining an overarching strategic objective and capturing the major steps planned for achieving the project at a greater scale.
> For Milestone-based grants, please refer to <a href="https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0034.md#submit-a-proposal"> How to submit a proposal</a>.
## Benefits for the community
A description of the potential benefits that the proposal could bring to the Algorand community and its users.
## Additional information
Any other relevant details or documentation that the team would like to include in the proposal.
> To prevent malicious links and allow front-end to display links properly, **External Links** should be in this format `<a href="https://arc.algorand.foundation/">ARC</a>`
> To create a new tab when people click on your links, you can use `target="_blank"` like this `<a href="https://arc.algorand.foundation/" target="_blank" >ARC</a>`
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.ApplicationInitialStates.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / ApplicationInitialStates
# Class: ApplicationInitialStates
[modelsv2](../modules/modelsv2.md).ApplicationInitialStates
An application's initial global/local/box states that were accessed during
simulation.
## Hierarchy
- `default`
↳ **`ApplicationInitialStates`**
## Table of contents
### Constructors
- [constructor](modelsv2.ApplicationInitialStates.md#constructor)
### Properties
- [appBoxes](modelsv2.ApplicationInitialStates.md#appboxes)
- [appGlobals](modelsv2.ApplicationInitialStates.md#appglobals)
- [appLocals](modelsv2.ApplicationInitialStates.md#applocals)
- [attribute\_map](modelsv2.ApplicationInitialStates.md#attribute_map)
- [id](modelsv2.ApplicationInitialStates.md#id)
### Methods
- [get\_obj\_for\_encoding](modelsv2.ApplicationInitialStates.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](modelsv2.ApplicationInitialStates.md#from_obj_for_encoding)
## Constructors
### constructor
• **new ApplicationInitialStates**(`«destructured»`)
Creates a new `ApplicationInitialStates` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `appBoxes?` | [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md) |
| › `appGlobals?` | [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md) |
| › `appLocals?` | [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md)[] |
| › `id` | `number` \| `bigint` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/algod/models/types.ts:1050
## Properties
### appBoxes
• `Optional` **appBoxes**: [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md)
An application's global/local/box state.
#### Defined in
client/v2/algod/models/types.ts:1031
___
### appGlobals
• `Optional` **appGlobals**: [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md)
An application's global/local/box state.
#### Defined in
client/v2/algod/models/types.ts:1036
___
### appLocals
• `Optional` **appLocals**: [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md)[]
An application's initial local states tied to different accounts.
#### Defined in
client/v2/algod/models/types.ts:1041
___
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### id
• **id**: `number` \| `bigint`
Application index.
#### Defined in
client/v2/algod/models/types.ts:1026
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`ApplicationInitialStates`](modelsv2.ApplicationInitialStates.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`ApplicationInitialStates`](modelsv2.ApplicationInitialStates.md)
#### Defined in
client/v2/algod/models/types.ts:1076
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/liquid-auth:docs:architecture.md:
--------------------------------------------------------------------------------
```markdown
---
title: Architecture
sidebar:
order: 6
prev: false
next: false
---
This is a high level overview of the sequence of events that happens while using Liquid Auth.
See the [Getting Started](./guides/getting-started) section for more detailed information on each step.
Diagrams are generated using [Mermaid](https://mermaid-js.github.io/mermaid/#/).
## Authentication
A user can link their device to a website by scanning a QR code.
The website will subscribe to a WebSocket channel to receive the link status.
The wallet will scan the QR code and send a [FIDO2 PublicKeyCredential]() to the server.
The server will validate the FIDO2 credential and send a response to the wallet and website.
```mermaid
sequenceDiagram
participant Website as Answer Client
participant Server
participant Wallet as Offer Client
Website->>Server: Subscribe to 'wss:link'
Website-->>Website: Display QR Connect Request ID
Wallet->>Website: Scan QR Code
Server-->>Wallet: Get Challenge/Options
Wallet->>Server: POST FIDO2 Credential + Liquid Auth Extension
Server-->>Server: Validate Signatures
Server-->>Website: HTTPOnly Session
Server->>Wallet: Ok Response + HTTPOnly Session
Server->>Website: Emit to `wss:link` client
```
## Signaling
The website and wallet can subscribe to an isolated WebSocket channel to broker [Session Description]() answers and offers.
[ICE Candidates]() are discovered when any peer has both an offer and answer.
```mermaid
sequenceDiagram
participant Website as Answer Client
participant Server
participant Wallet as Offer Client
Website-->>Server: Subscribe to 'wss:offer-description'
Website-->>Server: Subscribe to 'wss:offer-candidate'
Wallet-->>Server: Subscribe to 'wss:answer-description'
Wallet-->>Server: Subscribe to 'wss:answer-candidate'
```
### Offer
[Offers]() are created by a peer and sent through the signaling service.
A client with an offer will listen for an answer description.
Answers are only emitted in response to an offer.
Offer clients are responsible for creating the [Data Channel]().
```mermaid
sequenceDiagram
participant Website as Answer Client
participant Server
participant Wallet as Offer Client
Wallet-->>Wallet: On answer-description, set Remote SDP
Wallet-->>Wallet: On answer-candidate, add ICE Candidate
Wallet-->>Wallet: Create Peer Offer & DataChannel
Wallet-->>Server: Emit `wss:offer-description`
Wallet-->>Server: Emit `wss:offer-candidate`
```
### Answer
An [Answer]() is created by a peer in response to an offer.
The answer description and candidates are emitted to the signaling service.
```mermaid
sequenceDiagram
participant Website as Answer Client
participant Server
participant Wallet as Offer Client
Website-->>Website: On offer-description, set Remote SDP and create Answer
Website-->>Website: On offer-candidate, add ICE Candidate
Website-->>Server: Emit `wss:answer-description`
Website-->>Server: Emit `wss:answer-candidate`
```
### Data Channel
Once an Offer and Answer have been exchanged, a [Data Channel]() will be emitted to the peer who created the answer.
This channel is used to send messages between the website and wallet in real-time over the established P2P connection.
```mermaid
sequenceDiagram
participant Website as Answer Client
participant Server
participant Wallet as Offer Client
Wallet-->>Website: Emit DataChannel
Wallet-->>Wallet: On Message, Handle Message
Website-->>Website: On DataChannel, listen for Messages
Website-->>Wallet: Emit Messages
Wallet-->>Website: Emit Messages
```
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.TransactionProofResponse.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / TransactionProofResponse
# Class: TransactionProofResponse
[modelsv2](../modules/modelsv2.md).TransactionProofResponse
Proof of transaction in a block.
## Hierarchy
- `default`
↳ **`TransactionProofResponse`**
## Table of contents
### Constructors
- [constructor](modelsv2.TransactionProofResponse.md#constructor)
### Properties
- [attribute\_map](modelsv2.TransactionProofResponse.md#attribute_map)
- [hashtype](modelsv2.TransactionProofResponse.md#hashtype)
- [idx](modelsv2.TransactionProofResponse.md#idx)
- [proof](modelsv2.TransactionProofResponse.md#proof)
- [stibhash](modelsv2.TransactionProofResponse.md#stibhash)
- [treedepth](modelsv2.TransactionProofResponse.md#treedepth)
### Methods
- [get\_obj\_for\_encoding](modelsv2.TransactionProofResponse.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](modelsv2.TransactionProofResponse.md#from_obj_for_encoding)
## Constructors
### constructor
• **new TransactionProofResponse**(`«destructured»`)
Creates a new `TransactionProofResponse` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `hashtype?` | `string` |
| › `idx` | `number` \| `bigint` |
| › `proof` | `string` \| `Uint8Array` |
| › `stibhash` | `string` \| `Uint8Array` |
| › `treedepth` | `number` \| `bigint` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/algod/models/types.ts:5932
## Properties
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### hashtype
• `Optional` **hashtype**: `string`
The type of hash function used to create the proof, must be one of:
* sha512_256
* sha256
#### Defined in
client/v2/algod/models/types.ts:5919
___
### idx
• **idx**: `number` \| `bigint`
Index of the transaction in the block's payset.
#### Defined in
client/v2/algod/models/types.ts:5896
___
### proof
• **proof**: `Uint8Array`
Proof of transaction membership.
#### Defined in
client/v2/algod/models/types.ts:5901
___
### stibhash
• **stibhash**: `Uint8Array`
Hash of SignedTxnInBlock for verifying proof.
#### Defined in
client/v2/algod/models/types.ts:5906
___
### treedepth
• **treedepth**: `number` \| `bigint`
Represents the depth of the tree that is being proven, i.e. the number of edges
from a leaf to the root.
#### Defined in
client/v2/algod/models/types.ts:5912
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionProofResponse`](modelsv2.TransactionProofResponse.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`TransactionProofResponse`](modelsv2.TransactionProofResponse.md)
#### Defined in
client/v2/algod/models/types.ts:5968
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:project:link.md:
--------------------------------------------------------------------------------
```markdown
# AlgoKit Project Link Command
The `algokit project link` command is a powerful feature designed to streamline the integration between `frontend` and `contract` typed projects within the AlgoKit ecosystem. This command facilitates the automatic path resolution and invocation of [`algokit generate client`](../generate.md#1-typed-clients) on `contract` projects available in the workspace, making it easier to integrate smart contracts with frontend applications.
## Usage
To use the `link` command, navigate to the root directory of your standalone frontend project and execute:
```sh
$ algokit project link [OPTIONS]
```
This command must be invoked from the root of a standalone 'frontend' typed project.
## Options
- `--project-name`, `-p`: Specify one or more contract projects for the command. If not provided, the command defaults to all contract projects in the current workspace. This option can be repeated to specify multiple projects.
- `--language`, `-l`: Set the programming language of the generated client code. The default is `typescript`, but you can specify other supported languages as well.
- `--all`, `-a`: Link all contract projects with the frontend project. This option is mutually exclusive with `--project-name`.
- `--fail-fast`, `-f`: Exit immediately if at least one client generation process fails. This is useful for CI/CD pipelines where you want to ensure all clients are correctly generated before proceeding.
- `--version`, `-v`: Allows specifying the version of the client generator to use when generating client code for contract projects. This can be particularly useful for ensuring consistency across different environments or when a specific version of the client generator includes features or fixes that are necessary for your project.
## How It Works
Below is a visual representation of the `algokit project link` command in action:
```mermaid
graph LR
F[Frontend Project] -->|algokit generate client| C1[Contract Project 1]
F -->|algokit generate client| C2[Contract Project 2]
F -->|algokit generate client| CN[Contract Project N]
C1 -->|algokit generate client| F
C2 -->|algokit generate client| F
CN -->|algokit generate client| F
classDef frontend fill:#f9f,stroke:#333,stroke-width:4px;
classDef contract fill:#bbf,stroke:#333,stroke-width:2px;
class F frontend;
class C1,C2,CN contract;
```
1. **Project Type Verification**: The command first verifies that it is being executed within a standalone frontend project by checking the project's type in the `.algokit.toml` configuration file.
2. **Contract Project Selection**: Based on the provided options, it selects the contract projects to link. This can be all contract projects within the workspace, a subset specified by name, or a single project selected interactively.
3. **Client Code Generation**: For each selected contract project, it generates typed client code using the specified language. The generated code is placed in the frontend project's directory specified for contract clients.
4. **Feedback**: The command provides feedback for each contract project it processes, indicating success or failure in generating the client code.
## Example
Linking all contract projects with a frontend project and generating TypeScript clients:
```sh
$ algokit project link --all -l typescript
```
This command will generate TypeScript clients for all contract projects and place them in the specified directory within the frontend project.
## Further Reading
To learn more about the `algokit project link` command, please refer to [link](../../cli/index.md#link) in the AlgoKit CLI reference documentation.
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.AccountApplicationResponse.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / AccountApplicationResponse
# Class: AccountApplicationResponse
[modelsv2](../modules/modelsv2.md).AccountApplicationResponse
AccountApplicationResponse describes the account's application local state and
global state (AppLocalState and AppParams, if either exists) for a specific
application ID. Global state will only be returned if the provided address is
the application's creator.
## Hierarchy
- `default`
↳ **`AccountApplicationResponse`**
## Table of contents
### Constructors
- [constructor](modelsv2.AccountApplicationResponse.md#constructor)
### Properties
- [appLocalState](modelsv2.AccountApplicationResponse.md#applocalstate)
- [attribute\_map](modelsv2.AccountApplicationResponse.md#attribute_map)
- [createdApp](modelsv2.AccountApplicationResponse.md#createdapp)
- [round](modelsv2.AccountApplicationResponse.md#round)
### Methods
- [get\_obj\_for\_encoding](modelsv2.AccountApplicationResponse.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](modelsv2.AccountApplicationResponse.md#from_obj_for_encoding)
## Constructors
### constructor
• **new AccountApplicationResponse**(`«destructured»`)
Creates a new `AccountApplicationResponse` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `appLocalState?` | [`ApplicationLocalState`](modelsv2.ApplicationLocalState.md) |
| › `createdApp?` | [`ApplicationParams`](modelsv2.ApplicationParams.md) |
| › `round` | `number` \| `bigint` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/algod/models/types.ts:481
## Properties
### appLocalState
• `Optional` **appLocalState**: [`ApplicationLocalState`](modelsv2.ApplicationLocalState.md)
(appl) the application local data stored in this account.
The raw account uses `AppLocalState` for this type.
#### Defined in
client/v2/algod/models/types.ts:463
___
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### createdApp
• `Optional` **createdApp**: [`ApplicationParams`](modelsv2.ApplicationParams.md)
(appp) parameters of the application created by this account including app
global data.
The raw account uses `AppParams` for this type.
#### Defined in
client/v2/algod/models/types.ts:470
___
### round
• **round**: `number` \| `bigint`
The round for which this information is relevant.
#### Defined in
client/v2/algod/models/types.ts:457
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`AccountApplicationResponse`](modelsv2.AccountApplicationResponse.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`AccountApplicationResponse`](modelsv2.AccountApplicationResponse.md)
#### Defined in
client/v2/algod/models/types.ts:503
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:capabilities:dispenser-client.md:
--------------------------------------------------------------------------------
```markdown
# TestNet Dispenser Client
The TestNet Dispenser Client is a utility for interacting with the AlgoKit TestNet Dispenser API. It provides methods to fund an account, register a refund for a transaction, and get the current limit for an account.
## Creating a Dispenser Client
To create a Dispenser Client, you need to provide an authorization token. This can be done in two ways:
1. Pass the token directly to the client constructor as `authToken`.
2. Set the token as an environment variable `ALGOKIT_DISPENSER_ACCESS_TOKEN` (see [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md#error-handling) on how to obtain the token).
If both methods are used, the constructor argument takes precedence.
The recommended way to get a TestNet dispenser API client is [via `ClientManager`](./client.md):
```typescript
// With auth token
const dispenserClient = algorand.client.getTestNetDispenser({
authToken: 'your_auth_token',
})
// With auth token and timeout
const dispenserClient = algorand.client.getTestNetDispenser({
authToken: 'your_auth_token',
requestTimeout: 2 /* seconds */,
})
// From environment variables
// i.e. process.env['ALGOKIT_DISPENSER_ACCESS_TOKEN'] = 'your_auth_token'
const dispenserClient = algorand.client.getTestNetDispenserFromEnvironment()
// From environment variables with request timeout
const dispenserClient = algorand.client.getTestNetDispenserFromEnvironment({
requestTimeout: 2 /* seconds */,
})
```
Alternatively, you can construct it directly.
```ts
import { TestNetDispenserApiClient } from '@algorandfoundation/algokit-utils/types/dispenser-client'
// Using constructor argument
const client = new TestNetDispenserApiClient({ authToken: 'your_auth_token' })
const clientFromAlgorandClient = algorand.client.getTestNetDispenser({ authToken: 'your_auth_token' })
// Using environment variable
process.env['ALGOKIT_DISPENSER_ACCESS_TOKEN'] = 'your_auth_token'
const client = new TestNetDispenserApiClient()
const clientFromAlgorandClient = algorand.client.getTestNetDispenserFromEnvironment()
```
## Funding an Account
To fund an account with Algo from the dispenser API, use the `fund` method. This method requires the receiver's address, the amount to be funded, and the asset ID.
```ts
const response = await client.fund('receiver_address', 1000)
```
The `fund` method returns a `DispenserFundResponse` object, which contains the transaction ID (`txId`) and the amount funded.
## Registering a Refund
To register a refund for a transaction with the dispenser API, use the `refund` method. This method requires the transaction ID of the refund transaction.
```ts
await client.refund('transaction_id')
```
> Keep in mind, to perform a refund you need to perform a payment transaction yourself first by sending funds back to TestNet Dispenser, then you can invoke this refund endpoint and pass the txn_id of your refund txn. You can obtain dispenser address by inspecting the sender field of any issued fund transaction initiated via [fund](#funding-an-account).
## Getting Current Limit
To get the current limit for an account with Algo from the dispenser API, use the `getLimit` method. This method requires the account address.
```ts
const response = await client.getLimit()
```
The `limit` method returns a `DispenserLimitResponse` object, which contains the current limit amount.
## Error Handling
If an error occurs while making a request to the dispenser API, an exception will be raised with a message indicating the type of error. Refer to [Error Handling docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md#error-handling) for details on how you can handle each individual error `code`.
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/developer:docs:details:dapps:smart-contracts:smartsigs:modes.md:
--------------------------------------------------------------------------------
```markdown
title: Modes of use
Smart signatures have two basic usage scenarios; as a [**contract account**](#contract-account) or as a [**delegated signature**](#delegated-approval). These modes are used to approve transactions in different ways which are described below. Both modes make use of Logic Signatures. While using smart signatures for contract accounts is possible, it is now possible to create a contract account using a [smart contract](../apps/index.md).
# Logic signatures
Logic Signatures, referenced as LogicSig, are structures that contain the following four parts.
<center></center>
<center>*Logic Signature Structure*</center>
Before a LogicSig can be used with a transaction, it first must be a valid Logic Signature. The LogicSig is considered valid if one of the following scenarios is true.
> * Sig contains a valid Signature of the program from the account that is sending the Transaction
> * Msig contains a valid Multi-Signature of the program from the Multi-Signature account sending the Transaction
> * The hash of the program is equal to the Sender's Address
The first two cases are examples of delegation. An account owner can declare that on their behalf the signed logic can authorize transactions. These accounts can be either single or multi-signature accounts. Account delegation is described in further detail below.
The third case is an account wholly governed by the program. The program cannot be changed. Once Algos or assets have been sent to that account, Algos or assets only leave when there is a transaction that approves it. This usage case is considered a contract account which is described below.
# Contract account
For each unique compiled smart signature program there exists a single corresponding Algorand address, output by `goal clerk compile`. To use a TEAL program as a contract account, send Algos to its address to turn it into an account on Algorand with a balance. Outwardly, this account looks no different from any other Algorand account and anyone can send it Algos or Algorand Standard Assets to increase its balance. The account differs in how it authenticates spends _from_ it, in that the logic determines if the transaction is approved. To spend from a contract account, create a transaction that will evaluate to True against the TEAL logic, then add the compiled TEAL code as its logic signature. It is worth noting that anyone can create and submit the transaction that spends from a contract account as long as they have the compiled TEAL contract to add as a logic signature.
<center></center>
<center>*TEAL Contract Account*</center>
# Delegated approval
Smart signatures can also be used to delegate signature authority, which means that a private key can sign a TEAL program and the resulting output can be used as a signature in transactions on behalf of the account associated with the private key. The owner of the delegated account can share this logic signature, allowing anyone to spend funds from his or her account according to the logic within the TEAL program.
For example, if Alice wants to set up a recurring payment with her utility company for up to 200 Algos every 50000 rounds, she creates a TEAL contract that encodes this logic, signs it with her private key, and gives it to the utility company. The utility company uses that logic signature in the transaction they submit every 50000 rounds to collect payment from Alice.
The logic signature can be produced from either a single or multi-signature account.
<center></center>
<center>*TEAL Delegated Signature*</center>
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/developer:docs:get-started:basics:whats_a_dapp.md:
--------------------------------------------------------------------------------
```markdown
title: What is a dApp?
Decentralized Applications, or dApps, are applications that are run in a decentralized computing system, like a blockchain. This guide will introduce what dApps are and how dApps are architected and implemented on the Algorand blockchain.
<center>
{: style="width:500px" align=center }
<figcaption style="font-size:12px">A segment of the dApp ecosystem.</figcaption>
</center>
In the previous section, we discovered some of the properties of blockchain and how they offer paths to innovate on use cases that exchange items of value. A payment application, where users can exchange assets with each other, is a very simple dApp. In this use case, the payment transaction primitive is the only on-chain logic required to transfer those assets.
But how do we implement a more complex scenario, like bidding in an auction? We could build a website, have users log in, send us their bids, then issue the on-chain transfer of the item to the highest bidder. We’d then have to send the highest bid amount to the seller and return the rest of the funds to all the losing bidders. The problem with this is that your users will have to trust that you won’t run off with their bids, that the code you wrote to hold funds is sound (probably without getting to see it), that you implement world-class security practices so that you won’t get hacked, etc.
This implementation completely misses the mark on what blockchain promises and we are no better off using the blockchain than just using some of the centralized auction sites that exist already. If you’re a reputable company, then people probably trust you, but if you’re an independent developer, who is trying to build their reputation from scratch, then you’ll have a hard time getting users. And in the former scenario, you are still very much at-risk to attackers who may know that you have a large concentration of funds. The moral of this story is that we need a way to implement this bidding logic, securely, on-chain.
This is where smart contracts come into play.
# Smart contracts
Smart contracts are on-chain logic programs that can implement highly customized transfer conditions. They can be composed with all other layer-1 features, (including Algos, NFTs, fungible tokens) to produce powerful and sophisticated decentralized applications.
Let’s return to the auction bidding scenario and use smart contracts to implement on-chain bidding. What this means is that instead of sending bids to an account controlled by a centralized entity, subject to attacks and single points of failure, we can send those bids to a smart contract, governed by code, that is open and publicly verifiable by anyone. And that code won’t unexpectedly change. That doesn’t mean it can’t change, but if it does, it will be public and evident to users. And if you don’t like the idea that it can change, you can even program it from the start to restrict certain changes or disallow all changes to the contract.
In summary, you go from trusting an entity and _hoping_ that they will do what they promised, to trusting the code and _knowing_ it will do what it promised, regardless of the different actors involved and the different motivations they might have.
An important sidebar here is that it is critical for smart contract code to be reviewed and audited for security flaws. Badly written code that does not account for all potential attack vectors of course will not secure anything.
# What language can I use to write smart contracts?
On Algorand, you can write smart contracts in Python with the PyTeal library. To get started building a dApp, checkout the [Algokit getting started](/docs/get-started/algokit) guide.
```
--------------------------------------------------------------------------------
/packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.ApplicationStateOperation.md:
--------------------------------------------------------------------------------
```markdown
[algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / ApplicationStateOperation
# Class: ApplicationStateOperation
[modelsv2](../modules/modelsv2.md).ApplicationStateOperation
An operation against an application's global/local/box state.
## Hierarchy
- `default`
↳ **`ApplicationStateOperation`**
## Table of contents
### Constructors
- [constructor](modelsv2.ApplicationStateOperation.md#constructor)
### Properties
- [account](modelsv2.ApplicationStateOperation.md#account)
- [appStateType](modelsv2.ApplicationStateOperation.md#appstatetype)
- [attribute\_map](modelsv2.ApplicationStateOperation.md#attribute_map)
- [key](modelsv2.ApplicationStateOperation.md#key)
- [newValue](modelsv2.ApplicationStateOperation.md#newvalue)
- [operation](modelsv2.ApplicationStateOperation.md#operation)
### Methods
- [get\_obj\_for\_encoding](modelsv2.ApplicationStateOperation.md#get_obj_for_encoding)
- [from\_obj\_for\_encoding](modelsv2.ApplicationStateOperation.md#from_obj_for_encoding)
## Constructors
### constructor
• **new ApplicationStateOperation**(`«destructured»`)
Creates a new `ApplicationStateOperation` object.
#### Parameters
| Name | Type |
| :------ | :------ |
| `«destructured»` | `Object` |
| › `account?` | `string` |
| › `appStateType` | `string` |
| › `key` | `string` \| `Uint8Array` |
| › `newValue?` | [`AvmValue`](modelsv2.AvmValue.md) |
| › `operation` | `string` |
#### Overrides
BaseModel.constructor
#### Defined in
client/v2/algod/models/types.ts:1436
## Properties
### account
• `Optional` **account**: `string`
For local state changes, the address of the account associated with the local
state.
#### Defined in
client/v2/algod/models/types.ts:1419
___
### appStateType
• **appStateType**: `string`
Type of application state. Value `g` is **global state**, `l` is **local
state**, `b` is **boxes**.
#### Defined in
client/v2/algod/models/types.ts:1403
___
### attribute\_map
• **attribute\_map**: `Record`\<`string`, `string`\>
#### Inherited from
BaseModel.attribute\_map
#### Defined in
client/v2/basemodel.ts:56
___
### key
• **key**: `Uint8Array`
The key (name) of the global/local/box state.
#### Defined in
client/v2/algod/models/types.ts:1408
___
### newValue
• `Optional` **newValue**: [`AvmValue`](modelsv2.AvmValue.md)
Represents an AVM value.
#### Defined in
client/v2/algod/models/types.ts:1424
___
### operation
• **operation**: `string`
Operation type. Value `w` is **write**, `d` is **delete**.
#### Defined in
client/v2/algod/models/types.ts:1413
## Methods
### get\_obj\_for\_encoding
▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\>
Get an object ready for encoding to either JSON or msgpack.
#### Parameters
| Name | Type | Default value | Description |
| :------ | :------ | :------ | :------ |
| `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. |
#### Returns
`Record`\<`string`, `any`\>
#### Inherited from
BaseModel.get\_obj\_for\_encoding
#### Defined in
client/v2/basemodel.ts:65
___
### from\_obj\_for\_encoding
▸ `Static` **from_obj_for_encoding**(`data`): [`ApplicationStateOperation`](modelsv2.ApplicationStateOperation.md)
#### Parameters
| Name | Type |
| :------ | :------ |
| `data` | `Record`\<`string`, `any`\> |
#### Returns
[`ApplicationStateOperation`](modelsv2.ApplicationStateOperation.md)
#### Defined in
client/v2/algod/models/types.ts:1469
```