This is page 11 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/puya:docs:language-guide.md: -------------------------------------------------------------------------------- ```markdown # Language Guide Algorand Python is conceptually two things: 1. A partial implementation of the Python programming language that runs on the AVM. 2. A framework for development of Algorand smart contracts and logic signatures, with Pythonic interfaces to underlying AVM functionality. You can install the Algorand Python types from PyPi: > `pip install algorand-python` or > `poetry add algorand-python` --- As a partial implementation of the Python programming language, it maintains the syntax and semantics of Python. The subset of the language that is supported will grow over time, but it will never be a complete implementation due to the restricted nature of the AVM as an execution environment. As a trivial example, the `async` and `await` keywords, and all associated features, do not make sense to implement. Being a partial implementation of Python means that existing developer tooling like IDE syntax highlighting, static type checkers, linters, and auto-formatters, will work out-of-the-box. This is as opposed to an approach to smart contract development that adds or alters language elements or semantics, which then requires custom developer tooling support, and more importantly, requires the developer to learn and understand the potentially non-obvious differences from regular Python. The greatest advantage to maintaining semantic and syntactic compatibility, however, is only realised in combination with the framework approach. Supplying a set of interfaces representing smart contract development and AVM functionality required allows for the possibility of implementing those interfaces in pure Python! This will make it possible in the near future for you to execute tests against your smart contracts without deploying them to Algorand, and even step into and break-point debug your code from those tests. The framework provides interfaces to the underlying AVM types and operations. By virtue of the AVM being statically typed, these interfaces are also statically typed, and require your code to be as well. The most basic types on the AVM are `uint64` and `bytes[]`, representing unsigned 64-bit integers and byte arrays respectively. These are represented by [`UInt64`](#algopy.UInt64) and [`Bytes`](#algopy.Bytes) in Algorand Python. There are further "bounded" types supported by the AVM which are backed by these two simple primitives. For example, `bigint` represents a variably sized (up to 512-bits), unsigned integer, but is actually backed by a `bytes[]`. This is represented by [`BigUInt`](#algopy.BigUInt) in Algorand Python. Unfortunately, none of these types map to standard Python primitives. In Python, an `int` is unsigned, and effectively unbounded. A `bytes` similarly is limited only by the memory available, whereas an AVM `bytes[]` has a maximum length of 4096. In order to both maintain semantic compatibility and allow for a framework implementation in plain Python that will fail under the same conditions as when deployed to the AVM, support for Python primitives is [limited](lg-types.md#python-built-in-types). For more information on the philosophy and design of Algorand Python, please see ["Principles"](principles.md#principles). If you aren't familiar with Python, a good place to start before continuing below is with the [official tutorial](https://docs.python.org/3/tutorial/index.html). Just beware that as mentioned above, [not all features are supported](./lg-unsupported-python-features.md). ## Table of Contents ```{toctree} --- maxdepth: 3 --- lg-structure lg-types lg-control lg-modules lg-builtins lg-errors lg-storage lg-logs lg-transactions lg-ops lg-opcode-budget lg-arc4 lg-arc28 lg-calling-apps lg-compile lg-unsupported-python-features ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.MiniAssetHolding.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / MiniAssetHolding # Class: MiniAssetHolding [indexerModels](../modules/indexerModels.md).MiniAssetHolding A simplified version of AssetHolding ## Hierarchy - `default` ↳ **`MiniAssetHolding`** ## Table of contents ### Constructors - [constructor](indexerModels.MiniAssetHolding.md#constructor) ### Properties - [address](indexerModels.MiniAssetHolding.md#address) - [amount](indexerModels.MiniAssetHolding.md#amount) - [attribute\_map](indexerModels.MiniAssetHolding.md#attribute_map) - [deleted](indexerModels.MiniAssetHolding.md#deleted) - [isFrozen](indexerModels.MiniAssetHolding.md#isfrozen) - [optedInAtRound](indexerModels.MiniAssetHolding.md#optedinatround) - [optedOutAtRound](indexerModels.MiniAssetHolding.md#optedoutatround) ### Methods - [get\_obj\_for\_encoding](indexerModels.MiniAssetHolding.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.MiniAssetHolding.md#from_obj_for_encoding) ## Constructors ### constructor • **new MiniAssetHolding**(`«destructured»`) Creates a new `MiniAssetHolding` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `address` | `string` | | › `amount` | `number` \| `bigint` | | › `deleted?` | `boolean` | | › `isFrozen` | `boolean` | | › `optedInAtRound?` | `number` \| `bigint` | | › `optedOutAtRound?` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3355 ## Properties ### address • **address**: `string` #### Defined in client/v2/indexer/models/types.ts:3325 ___ ### amount • **amount**: `number` \| `bigint` #### Defined in client/v2/indexer/models/types.ts:3327 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### deleted • `Optional` **deleted**: `boolean` Whether or not this asset holding is currently deleted from its account. #### Defined in client/v2/indexer/models/types.ts:3334 ___ ### isFrozen • **isFrozen**: `boolean` #### Defined in client/v2/indexer/models/types.ts:3329 ___ ### optedInAtRound • `Optional` **optedInAtRound**: `number` \| `bigint` Round during which the account opted into the asset. #### Defined in client/v2/indexer/models/types.ts:3339 ___ ### optedOutAtRound • `Optional` **optedOutAtRound**: `number` \| `bigint` Round during which the account opted out of the asset. #### Defined in client/v2/indexer/models/types.ts:3344 ## 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`): [`MiniAssetHolding`](indexerModels.MiniAssetHolding.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`MiniAssetHolding`](indexerModels.MiniAssetHolding.md) #### Defined in client/v2/indexer/models/types.ts:3389 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:docs:details:transactions:payment_prompts.md: -------------------------------------------------------------------------------- ```markdown title: URI scheme This URI specification represents a standardized way for applications and websites to send requests and information through deeplinks, QR codes, etc. It is heavily based on Bitcoin’s [BIP-0021](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki) and should be seen as derivative of it. The decision to base it on BIP-0021 was made to make it easy and compatible as possible for any other applications. # Specifications ## General format Algorand URIs follow the general format for URIs as set forth in RFC 3986. The path component consists of an Algorand address, and the query component provides additional payment options. Elements of the query component may contain characters outside the valid range. These must first be encoded according to UTF-8, and then each octet of the corresponding UTF-8 sequence must be percent-encoded as described in RFC 3986. ## ABNF Grammar ``` algorandurn = "algorand://" algorandaddress [ "?" algorandparams ] algorandaddress = *base32 algorandparams = algorandparam [ "&" algorandparams ] algorandparam = [ amountparam / labelparam / noteparam / assetparam / otherparam ] amountparam = "amount=" *digit labelparam = "label=" *qchar assetparam = "asset=" *digit noteparam = (xnote | note) xnote = "xnote=" *qchar note = "note=" *qchar otherparam = qchar *qchar [ "=" *qchar ] ``` Here, "qchar" corresponds to valid characters of an RFC 3986 URI query component, excluding the "=" and "&" characters, which this specification takes as separators. The scheme component ("algorand:") is case-insensitive, and implementations must accept any combination of uppercase and lowercase letters. The rest of the URI is case-sensitive, including the query parameter keys. !!! Caveat When it comes to generation of an address' QR, many exchanges and wallets encodes the address w/o the scheme component (“algorand:”). This is not a URI so it is OK. ## Query Keys - label: Label for that address (e.g. name of receiver) - address: Algorand address (if missing, sender address will be used as receiver.) - xnote: A URL-encoded notes field value that must not be modifiable by the user when displayed to users. - note: A URL-encoded default notes field value that the the user interface may optionally make editable by the user. - amount: microAlgos or smallest unit of asset - asset: The asset id this request refers to (if Algos, simply omit this parameter) - (others): optional, for future extensions ## Transfer amount/size !!! Note This is DIFFERENT than Bitcoin’s BIP-0021 If an amount is provided, it MUST be specified in basic unit of the asset. For example, if it’s Algos (Algorand native unit), the amount should be specified in microAlgos. All amounts MUST NOT contain commas nor a period (.) Strictly non negative integers. e.g. for 100 Algos, the amount needs to be 100000000, for 54.1354 Algos the amount needs to be 54135400. Algorand Clients should display the amount in whole Algos. Where needed, microAlgos can be used as well. In any case, the units shall be clear for the user. # Appendix This section contains several examples address - ``` algorand://TMTAD6N22HCS2LKH7677L2KFLT3PAQWY6M4JFQFXQS32ECBFC23F57RYX4 ``` address with label - ``` algorand://TMTAD6N22HCS2LKH7677L2KFLT3PAQWY6M4JFQFXQS32ECBFC23F57RYX4?label=Silvio ``` Request 150.5 Algos from an address ``` algorand://TMTAD6N22HCS2LKH7677L2KFLT3PAQWY6M4JFQFXQS32ECBFC23F57RYX4?amount=150500000 ``` Request 150 units of Asset ID 45 from an address ``` algorand://TMTAD6N22HCS2LKH7677L2KFLT3PAQWY6M4JFQFXQS32ECBFC23F57RYX4?amount=150&asset=45 ``` Opt-in request for Asset ID 37 ``` algorand://?amount=0&asset=37 ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.IndexerStateProofMessage.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / IndexerStateProofMessage # Class: IndexerStateProofMessage [indexerModels](../modules/indexerModels.md).IndexerStateProofMessage ## Hierarchy - `default` ↳ **`IndexerStateProofMessage`** ## Table of contents ### Constructors - [constructor](indexerModels.IndexerStateProofMessage.md#constructor) ### Properties - [attribute\_map](indexerModels.IndexerStateProofMessage.md#attribute_map) - [blockHeadersCommitment](indexerModels.IndexerStateProofMessage.md#blockheaderscommitment) - [firstAttestedRound](indexerModels.IndexerStateProofMessage.md#firstattestedround) - [latestAttestedRound](indexerModels.IndexerStateProofMessage.md#latestattestedround) - [lnProvenWeight](indexerModels.IndexerStateProofMessage.md#lnprovenweight) - [votersCommitment](indexerModels.IndexerStateProofMessage.md#voterscommitment) ### Methods - [get\_obj\_for\_encoding](indexerModels.IndexerStateProofMessage.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.IndexerStateProofMessage.md#from_obj_for_encoding) ## Constructors ### constructor • **new IndexerStateProofMessage**(`«destructured»`) Creates a new `IndexerStateProofMessage` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `blockHeadersCommitment?` | `string` \| `Uint8Array` | | › `firstAttestedRound?` | `number` \| `bigint` | | › `latestAttestedRound?` | `number` \| `bigint` | | › `lnProvenWeight?` | `number` \| `bigint` | | › `votersCommitment?` | `string` \| `Uint8Array` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3215 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### blockHeadersCommitment • `Optional` **blockHeadersCommitment**: `Uint8Array` (b) #### Defined in client/v2/indexer/models/types.ts:3185 ___ ### firstAttestedRound • `Optional` **firstAttestedRound**: `number` \| `bigint` (f) #### Defined in client/v2/indexer/models/types.ts:3190 ___ ### latestAttestedRound • `Optional` **latestAttestedRound**: `number` \| `bigint` (l) #### Defined in client/v2/indexer/models/types.ts:3195 ___ ### lnProvenWeight • `Optional` **lnProvenWeight**: `number` \| `bigint` (P) #### Defined in client/v2/indexer/models/types.ts:3200 ___ ### votersCommitment • `Optional` **votersCommitment**: `Uint8Array` (v) #### Defined in client/v2/indexer/models/types.ts:3205 ## 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`): [`IndexerStateProofMessage`](indexerModels.IndexerStateProofMessage.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`IndexerStateProofMessage`](indexerModels.IndexerStateProofMessage.md) #### Defined in client/v2/indexer/models/types.ts:3251 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app.RawAppCallArgs.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/app](../modules/types_app.md) / RawAppCallArgs # Interface: RawAppCallArgs [types/app](../modules/types_app.md).RawAppCallArgs App call args with non-ABI (raw) values (minus some processing like encoding strings as binary) ## Hierarchy - [`CoreAppCallArgs`](types_app.CoreAppCallArgs.md) ↳ **`RawAppCallArgs`** ## Table of contents ### Properties - [accounts](types_app.RawAppCallArgs.md#accounts) - [appArgs](types_app.RawAppCallArgs.md#appargs) - [apps](types_app.RawAppCallArgs.md#apps) - [assets](types_app.RawAppCallArgs.md#assets) - [boxes](types_app.RawAppCallArgs.md#boxes) - [lease](types_app.RawAppCallArgs.md#lease) - [method](types_app.RawAppCallArgs.md#method) - [rekeyTo](types_app.RawAppCallArgs.md#rekeyto) ## Properties ### accounts • `Optional` **accounts**: (`string` \| `Address`)[] The address of any accounts to load in #### Inherited from [CoreAppCallArgs](types_app.CoreAppCallArgs.md).[accounts](types_app.CoreAppCallArgs.md#accounts) #### Defined in [src/types/app.ts:79](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L79) ___ ### appArgs • `Optional` **appArgs**: (`string` \| `Uint8Array`)[] Any application arguments to pass through #### Defined in [src/types/app.ts:96](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L96) ___ ### apps • `Optional` **apps**: `number`[] IDs of any apps to load into the foreignApps array #### Inherited from [CoreAppCallArgs](types_app.CoreAppCallArgs.md).[apps](types_app.CoreAppCallArgs.md#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 [CoreAppCallArgs](types_app.CoreAppCallArgs.md).[assets](types_app.CoreAppCallArgs.md#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 [CoreAppCallArgs](types_app.CoreAppCallArgs.md).[boxes](types_app.CoreAppCallArgs.md#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 [CoreAppCallArgs](types_app.CoreAppCallArgs.md).[lease](types_app.CoreAppCallArgs.md#lease) #### Defined in [src/types/app.ts:75](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L75) ___ ### method • `Optional` **method**: `undefined` Property to aid intellisense #### Defined in [src/types/app.ts:98](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L98) ___ ### 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 [CoreAppCallArgs](types_app.CoreAppCallArgs.md).[rekeyTo](types_app.CoreAppCallArgs.md#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/algokit:utils:typescript:code:interfaces:types_app_manager.AppInformation.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/app-manager](../modules/types_app_manager.md) / AppInformation # Interface: AppInformation [types/app-manager](../modules/types_app_manager.md).AppInformation Information about an app. ## Table of contents ### Properties - [appAddress](types_app_manager.AppInformation.md#appaddress) - [appId](types_app_manager.AppInformation.md#appid) - [approvalProgram](types_app_manager.AppInformation.md#approvalprogram) - [clearStateProgram](types_app_manager.AppInformation.md#clearstateprogram) - [creator](types_app_manager.AppInformation.md#creator) - [extraProgramPages](types_app_manager.AppInformation.md#extraprogrampages) - [globalByteSlices](types_app_manager.AppInformation.md#globalbyteslices) - [globalInts](types_app_manager.AppInformation.md#globalints) - [globalState](types_app_manager.AppInformation.md#globalstate) - [localByteSlices](types_app_manager.AppInformation.md#localbyteslices) - [localInts](types_app_manager.AppInformation.md#localints) ## Properties ### appAddress • **appAddress**: `Address` The escrow address that the app operates with. #### Defined in [src/types/app-manager.ts:20](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L20) ___ ### appId • **appId**: `bigint` The ID of the app. #### Defined in [src/types/app-manager.ts:18](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L18) ___ ### approvalProgram • **approvalProgram**: `Uint8Array` Approval program. #### Defined in [src/types/app-manager.ts:24](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L24) ___ ### clearStateProgram • **clearStateProgram**: `Uint8Array` Clear state program. #### Defined in [src/types/app-manager.ts:28](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L28) ___ ### creator • **creator**: `Address` The address that created this application. This is the address where the parameters and global state for this application can be found. #### Defined in [src/types/app-manager.ts:33](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L33) ___ ### extraProgramPages • `Optional` **extraProgramPages**: `number` Any extra pages that are needed for the smart contract. #### Defined in [src/types/app-manager.ts:47](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L47) ___ ### globalByteSlices • **globalByteSlices**: `number` The number of allocated byte slices in global state. #### Defined in [src/types/app-manager.ts:45](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L45) ___ ### globalInts • **globalInts**: `number` The number of allocated ints in global state. #### Defined in [src/types/app-manager.ts:43](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L43) ___ ### globalState • **globalState**: [`AppState`](types_app.AppState.md) Current global state values. #### Defined in [src/types/app-manager.ts:37](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L37) ___ ### localByteSlices • **localByteSlices**: `number` The number of allocated byte slices in per-user local state. #### Defined in [src/types/app-manager.ts:41](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L41) ___ ### localInts • **localInts**: `number` The number of allocated ints in per-user local state. #### Defined in [src/types/app-manager.ts:39](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-manager.ts#L39) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionSignatureLogicsig.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionSignatureLogicsig # Class: TransactionSignatureLogicsig [indexerModels](../modules/indexerModels.md).TransactionSignatureLogicsig (lsig) Programatic transaction signature. Definition: data/transactions/logicsig.go ## Hierarchy - `default` ↳ **`TransactionSignatureLogicsig`** ## Table of contents ### Constructors - [constructor](indexerModels.TransactionSignatureLogicsig.md#constructor) ### Properties - [args](indexerModels.TransactionSignatureLogicsig.md#args) - [attribute\_map](indexerModels.TransactionSignatureLogicsig.md#attribute_map) - [logic](indexerModels.TransactionSignatureLogicsig.md#logic) - [multisigSignature](indexerModels.TransactionSignatureLogicsig.md#multisigsignature) - [signature](indexerModels.TransactionSignatureLogicsig.md#signature) ### Methods - [get\_obj\_for\_encoding](indexerModels.TransactionSignatureLogicsig.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.TransactionSignatureLogicsig.md#from_obj_for_encoding) ## Constructors ### constructor • **new TransactionSignatureLogicsig**(`«destructured»`) Creates a new `TransactionSignatureLogicsig` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `args?` | `Uint8Array`[] | | › `logic` | `string` \| `Uint8Array` | | › `multisigSignature?` | [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) | | › `signature?` | `string` \| `Uint8Array` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:5471 ## Properties ### args • `Optional` **args**: `Uint8Array`[] (arg) Logic arguments, base64 encoded. #### Defined in client/v2/indexer/models/types.ts:5447 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### logic • **logic**: `Uint8Array` (l) Program signed by a signature or multi signature, or hashed to be the address of ana ccount. Base64 encoded TEAL program. #### Defined in client/v2/indexer/models/types.ts:5442 ___ ### multisigSignature • `Optional` **multisigSignature**: [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) (msig) structure holding multiple subsignatures. Definition: crypto/multisig.go : MultisigSig #### Defined in client/v2/indexer/models/types.ts:5454 ___ ### signature • `Optional` **signature**: `Uint8Array` (sig) ed25519 signature. #### Defined in client/v2/indexer/models/types.ts:5459 ## 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`): [`TransactionSignatureLogicsig`](indexerModels.TransactionSignatureLogicsig.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TransactionSignatureLogicsig`](indexerModels.TransactionSignatureLogicsig.md) #### Defined in client/v2/indexer/models/types.ts:5503 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.AssetHolding.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / AssetHolding # Class: AssetHolding [indexerModels](../modules/indexerModels.md).AssetHolding Describes an asset held by an account. Definition: data/basics/userBalance.go : AssetHolding ## Hierarchy - `default` ↳ **`AssetHolding`** ## Table of contents ### Constructors - [constructor](indexerModels.AssetHolding.md#constructor) ### Properties - [amount](indexerModels.AssetHolding.md#amount) - [assetId](indexerModels.AssetHolding.md#assetid) - [attribute\_map](indexerModels.AssetHolding.md#attribute_map) - [deleted](indexerModels.AssetHolding.md#deleted) - [isFrozen](indexerModels.AssetHolding.md#isfrozen) - [optedInAtRound](indexerModels.AssetHolding.md#optedinatround) - [optedOutAtRound](indexerModels.AssetHolding.md#optedoutatround) ### Methods - [get\_obj\_for\_encoding](indexerModels.AssetHolding.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.AssetHolding.md#from_obj_for_encoding) ## Constructors ### constructor • **new AssetHolding**(`«destructured»`) Creates a new `AssetHolding` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `amount` | `number` \| `bigint` | | › `assetId` | `number` \| `bigint` | | › `deleted?` | `boolean` | | › `isFrozen` | `boolean` | | › `optedInAtRound?` | `number` \| `bigint` | | › `optedOutAtRound?` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:1671 ## Properties ### amount • **amount**: `number` \| `bigint` number of units held. #### Defined in client/v2/indexer/models/types.ts:1635 ___ ### assetId • **assetId**: `number` \| `bigint` Asset ID of the holding. #### Defined in client/v2/indexer/models/types.ts:1640 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### deleted • `Optional` **deleted**: `boolean` Whether or not the asset holding is currently deleted from its account. #### Defined in client/v2/indexer/models/types.ts:1650 ___ ### isFrozen • **isFrozen**: `boolean` whether or not the holding is frozen. #### Defined in client/v2/indexer/models/types.ts:1645 ___ ### optedInAtRound • `Optional` **optedInAtRound**: `number` \| `bigint` Round during which the account opted into this asset holding. #### Defined in client/v2/indexer/models/types.ts:1655 ___ ### optedOutAtRound • `Optional` **optedOutAtRound**: `number` \| `bigint` Round during which the account opted out of this asset holding. #### Defined in client/v2/indexer/models/types.ts:1660 ## 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`): [`AssetHolding`](indexerModels.AssetHolding.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AssetHolding`](indexerModels.AssetHolding.md) #### Defined in client/v2/indexer/models/types.ts:1705 ``` -------------------------------------------------------------------------------- /packages/server/smithery.yaml: -------------------------------------------------------------------------------- ```yaml # Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml build: dockerBuildPath: ../.. startCommand: type: stdio configSchema: # JSON Schema defining the configuration options for the MCP. type: object properties: ALGORAND_ALGOD_PORT: type: string default: "" description: Algod node port (optional) ALGORAND_INDEXER_PORT: type: string default: "" description: Indexer port (optional) ALGORAND_TOKEN: type: string default: "" description: Algorand API token (optional) ITEMS_PER_PAGE: type: string default: 10 description: Number of items per page for paginated responses ALGORAND_ALGOD: type: string default: https://testnet-api.algonode.cloud description: Algod node base URL ALGORAND_INDEXER: type: string default: https://testnet-idx.algonode.cloud description: Indexer base URL ALGORAND_NETWORK: type: string default: testnet description: Algorand network to connect to, e.g., testnet or mainnet ALGORAND_ALGOD_API: type: string default: https://testnet-api.algonode.cloud/v2 description: Algod API endpoint URL ALGORAND_INDEXER_API: type: string default: https://testnet-idx.algonode.cloud/v2 description: Indexer API endpoint URL NFD_API_URL: type: string default: https://api.nf.domains description: NFDomains API URL VESTIGE_ACTIVE: type: boolean default: false description: Vestige is active ULTRADE_ACTIVE: type: boolean default: false description: UltraDe is active TINYMAN_ACTIVE: type: boolean default: false description: Tinyman is active VESTIGE_API_URL: type: string default: https://api.vestigelabs.org description: Vestige API URL ALGORAND_AGENT_WALLET: type: string default: "" description: Algorand agent active wallet exampleConfig: ALGORAND_ALGOD: https://testnet-api.algonode.cloud ALGORAND_INDEXER: https://testnet-idx.algonode.cloud ALGORAND_NETWORK: testnet ALGORAND_ALGOD_API: https://testnet-api.algonode.cloud/v2 ALGORAND_INDEXER_API: https://testnet-idx.algonode.cloud/v2 ALGORAND_ALGOD_PORT: "" ALGORAND_INDEXER_PORT: "" ALGORAND_TOKEN: "" VESTIGE_ACTIVE: false ULTRADE_ACTIVE: false TINYMAN_ACTIVE: false ITEMS_PER_PAGE: 10 NFD_API_URL: https://api.nf.domains NFD_API_KEY: "" VESTIGE_API_URL: https://api.vestigelabs.org VESTIGE_API_KEY: "" ALGORAND_AGENT_WALLET: "" commandFunction: # A JS function that produces the CLI command based on the given config to start the MCP on stdio. |- (config) => ({ command: 'node', args: ['packages/server/dist/index.js'], env: { ALGORAND_NETWORK: config.ALGORAND_NETWORK, ALGORAND_ALGOD_API: config.ALGORAND_ALGOD_API, ALGORAND_ALGOD: config.ALGORAND_ALGOD, ALGORAND_INDEXER_API: config.ALGORAND_INDEXER_API, ALGORAND_INDEXER: config.ALGORAND_INDEXER, ALGORAND_ALGOD_PORT: config.ALGORAND_ALGOD_PORT, ALGORAND_INDEXER_PORT: config.ALGORAND_INDEXER_PORT, ALGORAND_TOKEN: config.ALGORAND_TOKEN, ITEMS_PER_PAGE: config.ITEMS_PER_PAGE, NFD_API_URL: config.NFD_API_URL, NFD_API_KEY: config.NFD_API_KEY, VESTIGE_API_URL: config.VESTIGE_API_URL, VESTIGE_API_KEY: config.VESTIGE_API_KEY, VESTIGE_ACTIVE: config.VESTIGE_ACTIVE, ULTRADE_ACTIVE: config.ULTRADE_ACTIVE, TINYMAN_ACTIVE: config.TINYMAN_ACTIVE, ALGORAND_AGENT_WALLET: config.ALGORAND_AGENT_WALLET, } }) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_deployer.AppMetadata.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/app-deployer](../modules/types_app_deployer.md) / AppMetadata # Interface: AppMetadata [types/app-deployer](../modules/types_app_deployer.md).AppMetadata The metadata that can be collected about a deployed app ## Hierarchy - [`AppDeployMetadata`](types_app.AppDeployMetadata.md) ↳ **`AppMetadata`** ## Table of contents ### Properties - [appAddress](types_app_deployer.AppMetadata.md#appaddress) - [appId](types_app_deployer.AppMetadata.md#appid) - [createdMetadata](types_app_deployer.AppMetadata.md#createdmetadata) - [createdRound](types_app_deployer.AppMetadata.md#createdround) - [deletable](types_app_deployer.AppMetadata.md#deletable) - [deleted](types_app_deployer.AppMetadata.md#deleted) - [name](types_app_deployer.AppMetadata.md#name) - [updatable](types_app_deployer.AppMetadata.md#updatable) - [updatedRound](types_app_deployer.AppMetadata.md#updatedround) - [version](types_app_deployer.AppMetadata.md#version) ## Properties ### appAddress • **appAddress**: `Address` The Algorand address of the account associated with the app #### Defined in [src/types/app-deployer.ts:77](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-deployer.ts#L77) ___ ### appId • **appId**: `bigint` The id of the app #### Defined in [src/types/app-deployer.ts:75](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-deployer.ts#L75) ___ ### createdMetadata • **createdMetadata**: [`AppDeployMetadata`](types_app.AppDeployMetadata.md) The metadata when the app was created #### Defined in [src/types/app-deployer.ts:83](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-deployer.ts#L83) ___ ### createdRound • **createdRound**: `bigint` The round the app was created #### Defined in [src/types/app-deployer.ts:79](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-deployer.ts#L79) ___ ### deletable • `Optional` **deletable**: `boolean` Whether or not the app is deletable / permanent / unspecified #### Inherited from [AppDeployMetadata](types_app.AppDeployMetadata.md).[deletable](types_app.AppDeployMetadata.md#deletable) #### Defined in [src/types/app.ts:253](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L253) ___ ### deleted • **deleted**: `boolean` Whether or not the app is deleted #### Defined in [src/types/app-deployer.ts:85](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-deployer.ts#L85) ___ ### name • **name**: `string` The unique name identifier of the app within the creator account #### Inherited from [AppDeployMetadata](types_app.AppDeployMetadata.md).[name](types_app.AppDeployMetadata.md#name) #### Defined in [src/types/app.ts:249](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L249) ___ ### updatable • `Optional` **updatable**: `boolean` Whether or not the app is updatable / immutable / unspecified #### Inherited from [AppDeployMetadata](types_app.AppDeployMetadata.md).[updatable](types_app.AppDeployMetadata.md#updatable) #### Defined in [src/types/app.ts:255](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L255) ___ ### updatedRound • **updatedRound**: `bigint` The last round that the app was updated #### Defined in [src/types/app-deployer.ts:81](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-deployer.ts#L81) ___ ### version • **version**: `string` The version of app that is / will be deployed #### Inherited from [AppDeployMetadata](types_app.AppDeployMetadata.md).[version](types_app.AppDeployMetadata.md#version) #### Defined in [src/types/app.ts:251](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L251) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:dispenser.md: -------------------------------------------------------------------------------- ```markdown # AlgoKit TestNet Dispenser The AlgoKit Dispenser feature allows you to interact with the AlgoKit TestNet Dispenser. This feature is essential for funding your wallet with TestNet ALGOs, refunding ALGOs back to the dispenser wallet, and getting information about current fund limits on your account. ## Usage ```zsh $ algokit dispenser [OPTIONS] COMMAND [ARGS]... ``` This command provides a set of subcommands to interact with the AlgoKit TestNet Dispenser. Subcommands - `login`: Login to your Dispenser API account. - `logout`: Logout of your Dispenser API account. - `fund`: Fund your wallet address with TestNet ALGOs. - `refund`: Refund ALGOs back to the dispenser wallet address. - `limit`: Get information about current fund limits on your account. ### API Documentation For detailed API documentation, visit the [AlgoKit Dispenser API](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md) documentation. ### CI Access Token All dispenser commands can work in CI mode by using a CI access token that can be generated by passing `--ci` flag to `login` command. Once a token is obtained, setting the value to the following environment variable `ALGOKIT_DISPENSER_ACCESS_TOKEN` will enable CI mode for all dispenser commands. If both a user mode and CI mode access token is available, the CI mode will take precedence. ## Login ```zsh $ algokit dispenser login [OPTIONS] ``` This command logs you into your Dispenser API account if you are not already logged in. Options - `--ci`: Generate an access token for CI. Issued for 30 days. - `--output`, -o: Output mode where you want to store the generated access token. Defaults to stdout. Only applicable when --ci flag is set. - `--file`, -f: Output filename where you want to store the generated access token. Defaults to `ci_token.txt`. Only applicable when --ci flag is set and --output mode is `file`. > Please note, algokit relies on [keyring](https://pypi.org/project/keyring/) for storing your API credentials. This implies that your credentials are stored in your system's keychain. By default it will prompt for entering your system password unless you have set it up to always allow access for `algokit-cli` to obtain API credentials. ## Logout ```zsh $ algokit dispenser logout ``` This command logs you out of your Dispenser API account if you are logged in. ## Fund ```zsh $ algokit dispenser fund [OPTIONS] ``` This command funds your wallet address with TestNet ALGOs. Options - `--receiver`, -r: Receiver [alias](./tasks/wallet.md#add) or address to fund with TestNet ALGOs. This option is required. - `--amount`, -a: Amount to fund. Defaults to microAlgos. This option is required. - `--whole-units`: Use whole units (Algos) instead of smallest divisible units (microAlgos). Disabled by default. ## Refund ```zsh $ algokit dispenser refund [OPTIONS] ``` This command refunds ALGOs back to the dispenser wallet address. Options - `--txID`, -t: Transaction ID of your refund operation. This option is required. The receiver address of the transaction must be the same as the dispenser wallet address that you can obtain by observing a `sender` field of [`fund`](#fund) transaction. > Please note, performing a refund operation will not immedately change your daily fund limit. Your daily fund limit is reset daily at midnigth UTC. If you have reached your daily fund limit, you will not be able to perform a refund operation until your daily fund limit is reset. ## Limit ```zsh $ algokit dispenser limit [OPTIONS] ``` This command gets information about current fund limits on your account. The limits reset daily. Options - `--whole-units`: Use whole units (Algos) instead of smallest divisible units (microAlgos). Disabled by default. ## Further Reading For in-depth details, visit the [dispenser section](../cli/index.md#dispenser) in the AlgoKit CLI reference documentation. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.StateProofMessage.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / StateProofMessage # Class: StateProofMessage [modelsv2](../modules/modelsv2.md).StateProofMessage Represents the message that the state proofs are attesting to. ## Hierarchy - `default` ↳ **`StateProofMessage`** ## Table of contents ### Constructors - [constructor](modelsv2.StateProofMessage.md#constructor) ### Properties - [attribute\_map](modelsv2.StateProofMessage.md#attribute_map) - [blockheaderscommitment](modelsv2.StateProofMessage.md#blockheaderscommitment) - [firstattestedround](modelsv2.StateProofMessage.md#firstattestedround) - [lastattestedround](modelsv2.StateProofMessage.md#lastattestedround) - [lnprovenweight](modelsv2.StateProofMessage.md#lnprovenweight) - [voterscommitment](modelsv2.StateProofMessage.md#voterscommitment) ### Methods - [get\_obj\_for\_encoding](modelsv2.StateProofMessage.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.StateProofMessage.md#from_obj_for_encoding) ## Constructors ### constructor • **new StateProofMessage**(`«destructured»`) Creates a new `StateProofMessage` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `blockheaderscommitment` | `string` \| `Uint8Array` | | › `firstattestedround` | `number` \| `bigint` | | › `lastattestedround` | `number` \| `bigint` | | › `lnprovenweight` | `number` \| `bigint` | | › `voterscommitment` | `string` \| `Uint8Array` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:5479 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### blockheaderscommitment • **blockheaderscommitment**: `Uint8Array` The vector commitment root on all light block headers within a state proof interval. #### Defined in client/v2/algod/models/types.ts:5446 ___ ### firstattestedround • **firstattestedround**: `number` \| `bigint` The first round the message attests to. #### Defined in client/v2/algod/models/types.ts:5451 ___ ### lastattestedround • **lastattestedround**: `number` \| `bigint` The last round the message attests to. #### Defined in client/v2/algod/models/types.ts:5456 ___ ### lnprovenweight • **lnprovenweight**: `number` \| `bigint` An integer value representing the natural log of the proven weight with 16 bits of precision. This value would be used to verify the next state proof. #### Defined in client/v2/algod/models/types.ts:5462 ___ ### voterscommitment • **voterscommitment**: `Uint8Array` The vector commitment root of the top N accounts to sign the next StateProof. #### Defined in client/v2/algod/models/types.ts:5467 ## 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`): [`StateProofMessage`](modelsv2.StateProofMessage.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`StateProofMessage`](modelsv2.StateProofMessage.md) #### Defined in client/v2/algod/models/types.ts:5515 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:python:code:example:hello_world.md: -------------------------------------------------------------------------------- ```markdown # Hello World Smart Contract This example demonstrates how to create a basic smart contract using Algorand Python. The contract implements a simple "hello" function that takes a name parameter and returns a greeting. ## Contract Implementation ```python from algopy import ARC4Contract, String from algopy.arc4 import abimethod class HelloWorld(ARC4Contract): @abimethod() def hello(self, name: String) -> String: return "Hello, " + name ``` ### Key Components 1. **Imports**: - `ARC4Contract`: Base class for ARC4-compliant smart contracts - `String`: Type for string values in the contract - `abimethod`: Decorator to define ABI-compliant methods 2. **Contract Class**: - Inherits from `ARC4Contract` - Implements a single method `hello` - Uses type hints for parameters and return values 3. **Hello Method**: - Takes a `name` parameter of type `String` - Returns a greeting string concatenating "Hello, " with the provided name - Decorated with `@abimethod()` to make it callable from outside the contract ## Testing the Contract Here's how to interact with the contract using the AlgoKit Utils Python SDK: ```python from algokit_utils import ( AlgoAmount, AlgorandClient, OnSchemaBreak, OnUpdate, PaymentParams, SigningAccount, ) from smart_contracts.artifacts.hello_world.hello_world_client import ( HelloArgs, HelloWorldClient, HelloWorldFactory, ) # Deploy the contract factory = algorand.client.get_typed_app_factory( HelloWorldFactory, default_sender=creator.address, default_signer=creator.signer, ) client, deploy_result = factory.deploy( on_update=OnUpdate.ReplaceApp, on_schema_break=OnSchemaBreak.Fail, ) # Fund the contract with 1 Algo algorand.send.payment( PaymentParams( sender=dispenser.address, receiver=client.app_address, amount=AlgoAmount(algo=1), ) ) # Call the hello method result = client.send.hello(HelloArgs(name="World")) assert result.abi_return == "Hello, World" # Simulate multiple calls result = ( client.new_group() .hello(HelloArgs(name="World")) .hello(HelloArgs(name="Jane")) .simulate() ) ``` ### Testing Features 1. **Basic Call**: - Create an instance of the contract client - Call the `hello` method with a name argument - Verify the returned greeting 2. **Transaction Group Simulation**: - Create a group of transactions - Call the `hello` method multiple times - Simulate the execution - Verify the results and check the app budget consumption ## Key Concepts 1. **ARC4 Compliance**: - The contract follows the ARC4 standard for method calls - Uses typed parameters and return values - Provides ABI-compatible methods 2. **Contract Deployment**: - Uses `AlgoKit` for deployment - Configures update behavior and schema break handling - Funds the contract with initial Algos 3. **Contract Interaction**: - Uses generated client code for type-safe interactions - Supports both direct calls and transaction group simulations - Provides budget consumption insights ## Best Practices 1. **Type Safety**: - Use proper type hints for parameters and return values - Leverage the generated client code for type-safe interactions 2. **Testing**: - Write comprehensive tests for contract methods - Use simulation to verify behavior before deployment - Check resource consumption through budget metrics 3. **Deployment**: - Configure appropriate update and schema break behaviors - Ensure proper funding for contract operations - Use AlgoKit's deployment utilities for consistency This Hello World example serves as a foundation for understanding basic smart contract development with Algorand Python. It demonstrates the essential components of contract creation, deployment, and interaction while following best practices for development and testing. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.BlockUpgradeState.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / BlockUpgradeState # Class: BlockUpgradeState [indexerModels](../modules/indexerModels.md).BlockUpgradeState Fields relating to a protocol upgrade. ## Hierarchy - `default` ↳ **`BlockUpgradeState`** ## Table of contents ### Constructors - [constructor](indexerModels.BlockUpgradeState.md#constructor) ### Properties - [attribute\_map](indexerModels.BlockUpgradeState.md#attribute_map) - [currentProtocol](indexerModels.BlockUpgradeState.md#currentprotocol) - [nextProtocol](indexerModels.BlockUpgradeState.md#nextprotocol) - [nextProtocolApprovals](indexerModels.BlockUpgradeState.md#nextprotocolapprovals) - [nextProtocolSwitchOn](indexerModels.BlockUpgradeState.md#nextprotocolswitchon) - [nextProtocolVoteBefore](indexerModels.BlockUpgradeState.md#nextprotocolvotebefore) ### Methods - [get\_obj\_for\_encoding](indexerModels.BlockUpgradeState.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.BlockUpgradeState.md#from_obj_for_encoding) ## Constructors ### constructor • **new BlockUpgradeState**(`«destructured»`) Creates a new `BlockUpgradeState` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `currentProtocol` | `string` | | › `nextProtocol?` | `string` | | › `nextProtocolApprovals?` | `number` \| `bigint` | | › `nextProtocolSwitchOn?` | `number` \| `bigint` | | › `nextProtocolVoteBefore?` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:2632 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### currentProtocol • **currentProtocol**: `string` (proto) The current protocol version. #### Defined in client/v2/indexer/models/types.ts:2600 ___ ### nextProtocol • `Optional` **nextProtocol**: `string` (nextproto) The next proposed protocol version. #### Defined in client/v2/indexer/models/types.ts:2605 ___ ### nextProtocolApprovals • `Optional` **nextProtocolApprovals**: `number` \| `bigint` (nextyes) Number of blocks which approved the protocol upgrade. #### Defined in client/v2/indexer/models/types.ts:2610 ___ ### nextProtocolSwitchOn • `Optional` **nextProtocolSwitchOn**: `number` \| `bigint` (nextswitch) Round on which the protocol upgrade will take effect. #### Defined in client/v2/indexer/models/types.ts:2615 ___ ### nextProtocolVoteBefore • `Optional` **nextProtocolVoteBefore**: `number` \| `bigint` (nextbefore) Deadline round for this protocol upgrade (No votes will be consider after this round). #### Defined in client/v2/indexer/models/types.ts:2621 ## 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`): [`BlockUpgradeState`](indexerModels.BlockUpgradeState.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`BlockUpgradeState`](indexerModels.BlockUpgradeState.md) #### Defined in client/v2/indexer/models/types.ts:2662 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app.AppMetadata.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/app](../modules/types_app.md) / AppMetadata # Interface: AppMetadata [types/app](../modules/types_app.md).AppMetadata The metadata that can be collected about a deployed app ## Hierarchy - [`AppReference`](types_app.AppReference.md) - [`AppDeployMetadata`](types_app.AppDeployMetadata.md) ↳ **`AppMetadata`** ## Table of contents ### Properties - [appAddress](types_app.AppMetadata.md#appaddress) - [appId](types_app.AppMetadata.md#appid) - [createdMetadata](types_app.AppMetadata.md#createdmetadata) - [createdRound](types_app.AppMetadata.md#createdround) - [deletable](types_app.AppMetadata.md#deletable) - [deleted](types_app.AppMetadata.md#deleted) - [name](types_app.AppMetadata.md#name) - [updatable](types_app.AppMetadata.md#updatable) - [updatedRound](types_app.AppMetadata.md#updatedround) - [version](types_app.AppMetadata.md#version) ## Properties ### appAddress • **appAddress**: `string` The Algorand address of the account associated with the app #### Inherited from [AppReference](types_app.AppReference.md).[appAddress](types_app.AppReference.md#appaddress) #### Defined in [src/types/app.ts:43](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L43) ___ ### appId • **appId**: `number` \| `bigint` The id of the app #### Inherited from [AppReference](types_app.AppReference.md).[appId](types_app.AppReference.md#appid) #### Defined in [src/types/app.ts:41](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L41) ___ ### createdMetadata • **createdMetadata**: [`AppDeployMetadata`](types_app.AppDeployMetadata.md) The metadata when the app was created #### Defined in [src/types/app.ts:265](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L265) ___ ### createdRound • **createdRound**: `number` The round the app was created #### Defined in [src/types/app.ts:261](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L261) ___ ### deletable • `Optional` **deletable**: `boolean` Whether or not the app is deletable / permanent / unspecified #### Inherited from [AppDeployMetadata](types_app.AppDeployMetadata.md).[deletable](types_app.AppDeployMetadata.md#deletable) #### Defined in [src/types/app.ts:253](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L253) ___ ### deleted • **deleted**: `boolean` Whether or not the app is deleted #### Defined in [src/types/app.ts:267](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L267) ___ ### name • **name**: `string` The unique name identifier of the app within the creator account #### Inherited from [AppDeployMetadata](types_app.AppDeployMetadata.md).[name](types_app.AppDeployMetadata.md#name) #### Defined in [src/types/app.ts:249](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L249) ___ ### updatable • `Optional` **updatable**: `boolean` Whether or not the app is updatable / immutable / unspecified #### Inherited from [AppDeployMetadata](types_app.AppDeployMetadata.md).[updatable](types_app.AppDeployMetadata.md#updatable) #### Defined in [src/types/app.ts:255](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L255) ___ ### updatedRound • **updatedRound**: `number` The last round that the app was updated #### Defined in [src/types/app.ts:263](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L263) ___ ### version • **version**: `string` The version of app that is / will be deployed #### Inherited from [AppDeployMetadata](types_app.AppDeployMetadata.md).[version](types_app.AppDeployMetadata.md#version) #### Defined in [src/types/app.ts:251](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L251) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:python:testing:docs:testing-guide:concepts.md: -------------------------------------------------------------------------------- ```markdown # Concepts The following sections provide an overview of key concepts and features in the Algorand Python Testing framework. ## Test Context The main abstraction for interacting with the testing framework is the [`AlgopyTestContext`](../api-context.md#algopy_testing.AlgopyTestContext). It creates an emulated Algorand environment that closely mimics AVM behavior relevant to unit testing the contracts and provides a Pythonic interface for interacting with the emulated environment. ```python from algopy_testing import algopy_testing_context def test_my_contract(): # Recommended way to instantiate the test context with algopy_testing_context() as ctx: # Your test code here pass # ctx is automatically reset after the test code is executed ``` The context manager interface exposes three main properties: 1. `ledger`: An instance of `LedgerContext` for interacting with and querying the emulated Algorand ledger state. 2. `txn`: An instance of `TransactionContext` for creating and managing transaction groups, submitting transactions, and accessing transaction results. 3. `any`: An instance of `AlgopyValueGenerator` for generating randomized test data. For detailed method signatures, parameters, and return types, refer to the following API sections: - [`algopy_testing.LedgerContext`](../api.md) - [`algopy_testing.TransactionContext`](../api.md) - [`algopy_testing.AVMValueGenerator`, `algopy_testing.TxnValueGenerator`, `algopy_testing.ARC4ValueGenerator`](../api.md) The `any` property provides access to different value generators: - `AVMValueGenerator`: Base abstractions for AVM types. All methods are available directly on the instance returned from `any`. - `TxnValueGenerator`: Accessible via `any.txn`, for transaction-related data. - `ARC4ValueGenerator`: Accessible via `any.arc4`, for ARC4 type data. These generators allow creation of constrained random values for various AVM entities (accounts, assets, applications, etc.) when specific values are not required. ```{hint} Value generators are powerful tools for generating test data for specified AVM types. They allow further constraints on random value generation via arguments, making it easier to generate test data when exact values are not necessary. When used with the 'Arrange, Act, Assert' pattern, value generators can be especially useful in setting up clear and concise test data in arrange steps. They can also serve as a base building block that can be integrated/reused with popular Python property-based testing frameworks like [`hypothesis`](https://hypothesis.readthedocs.io/en/latest/). ``` ## Types of `algopy` stub implementations As explained in the [introduction](index.md), `algorand-python-testing` _injects_ test implementations for stubs available in the `algorand-python` package. However, not all of the stubs are implemented in the same manner: 1. **Native**: Fully matches AVM computation in Python. For example, `algopy.op.sha256` and other cryptographic operations behave identically in AVM and unit tests. This implies that the majority of opcodes that are 'pure' functions in AVM also have a native Python implementation provided by this package. These abstractions and opcodes can be used within and outside of the testing context. 2. **Emulated**: Uses `AlgopyTestContext` to mimic AVM behavior. For example, `Box.put` on an `algopy.Box` within a test context stores data in the test manager, not the real Algorand network, but provides the same interface. 3. **Mockable**: Not implemented, but can be mocked or patched. For example, `algopy.abi_call` can be mocked to return specific values or behaviors; otherwise, it raises a `NotImplementedError`. This category covers cases where native or emulated implementation in a unit test context is impractical or overly complex. For a full list of all public `algopy` types and their corresponding implementation category, refer to the [Coverage](coverage.md) section. ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:python:markdown:capabilities:debugger.md: -------------------------------------------------------------------------------- ```markdown # Debugger The AlgoKit Python Utilities package provides a set of debugging tools that can be used to simulate and trace transactions on the Algorand blockchain. These tools and methods are optimized for developers who are building applications on Algorand and need to test and debug their smart contracts via [AlgoKit AVM Debugger extension](https://marketplace.visualstudio.com/items?itemName=algorandfoundation.algokit-avm-vscode-debugger). ## Configuration The `config.py` file contains the `UpdatableConfig` class which manages and updates configuration settings for the AlgoKit project. The class has the following attributes: - `debug`: Indicates whether debug mode is enabled. - `project_root`: The path to the project root directory. Can be ignored if you are using `algokit_utils` inside an `algokit` compliant project (containing `.algokit.toml` file). For non algokit compliant projects, simply provide the path to the folder where you want to store sourcemaps and traces to be used with [`AlgoKit AVM Debugger`](https://github.com/algorandfoundation/algokit-avm-vscode-debugger). Alternatively you can also set the value via the `ALGOKIT_PROJECT_ROOT` environment variable. - `trace_all`: Indicates whether to trace all operations. Defaults to false, this means that when debug mode is enabled, any (or all) application client calls performed via `algokit_utils` will store responses from `simulate` endpoint. These files are called traces, and can be used with `AlgoKit AVM Debugger` to debug TEAL source codes, transactions in the atomic group and etc. - `trace_buffer_size_mb`: The size of the trace buffer in megabytes. By default uses 256 megabytes. When output folder containing debug trace files exceedes the size, oldest files are removed to optimize for storage consumption. - `max_search_depth`: The maximum depth to search for a an `algokit` config file. By default it will traverse at most 10 folders searching for `.algokit.toml` file which will be used to assume algokit compliant project root path. The `configure` method can be used to set these attributes. To enable debug mode in your project you can configure it as follows: ```py from algokit_utils.config import config config.configure(debug=True) ``` ## Debugging Utilities Debugging utilities can be used to simplify gathering artifacts to be used with [AlgoKit AVM Debugger](https://github.com/algorandfoundation/algokit-avm-vscode-debugger) in non algokit compliant projects. The following methods are provided: - `simulate_and_persist_response`: This method simulates the atomic transactions using the provided `AtomicTransactionComposer` object and `AlgodClient` object, and persists the simulation response to an AVM Debugger compliant JSON file. It takes an `AtomicTransactionComposer` object representing the atomic transactions to be simulated and persisted, a `Path` object representing the root directory of the project, an `AlgodClient` object representing the Algorand client, and a float representing the size of the trace buffer in megabytes. ### Trace filename format The trace files are named in a specific format to provide useful information about the transactions they contain. The format is as follows: ```ts `${timestamp}_lr${last_round}_${transaction_types}.trace.avm.json`; ``` Where: - `timestamp`: The time when the trace file was created, in ISO 8601 format, with colons and periods removed. - `last_round`: The last round when the simulation was performed. - `transaction_types`: A string representing the types and counts of transactions in the atomic group. Each transaction type is represented as `${count}${type}`, and different transaction types are separated by underscores. For example, a trace file might be named `20220301T123456Z_lr1000_2pay_1axfer.trace.avm.json`, indicating that the trace file was created at `2022-03-01T12:34:56Z`, the last round was `1000`, and the atomic group contained 2 payment transactions and 1 asset transfer transaction. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:python:source:capabilities:debugger.md: -------------------------------------------------------------------------------- ```markdown # Debugger The AlgoKit Python Utilities package provides a set of debugging tools that can be used to simulate and trace transactions on the Algorand blockchain. These tools and methods are optimized for developers who are building applications on Algorand and need to test and debug their smart contracts via [AlgoKit AVM Debugger extension](https://marketplace.visualstudio.com/items?itemName=algorandfoundation.algokit-avm-vscode-debugger). ## Configuration The `config.py` file contains the `UpdatableConfig` class which manages and updates configuration settings for the AlgoKit project. The class has the following attributes: - `debug`: Indicates whether debug mode is enabled. - `project_root`: The path to the project root directory. Can be ignored if you are using `algokit_utils` inside an `algokit` compliant project (containing `.algokit.toml` file). For non algokit compliant projects, simply provide the path to the folder where you want to store sourcemaps and traces to be used with [`AlgoKit AVM Debugger`](https://github.com/algorandfoundation/algokit-avm-vscode-debugger). Alternatively you can also set the value via the `ALGOKIT_PROJECT_ROOT` environment variable. - `trace_all`: Indicates whether to trace all operations. Defaults to false, this means that when debug mode is enabled, any (or all) application client calls performed via `algokit_utils` will store responses from `simulate` endpoint. These files are called traces, and can be used with `AlgoKit AVM Debugger` to debug TEAL source codes, transactions in the atomic group and etc. - `trace_buffer_size_mb`: The size of the trace buffer in megabytes. By default uses 256 megabytes. When output folder containing debug trace files exceedes the size, oldest files are removed to optimize for storage consumption. - `max_search_depth`: The maximum depth to search for a an `algokit` config file. By default it will traverse at most 10 folders searching for `.algokit.toml` file which will be used to assume algokit compliant project root path. The `configure` method can be used to set these attributes. To enable debug mode in your project you can configure it as follows: ```py from algokit_utils.config import config config.configure(debug=True) ``` ## Debugging Utilities Debugging utilities can be used to simplify gathering artifacts to be used with [AlgoKit AVM Debugger](https://github.com/algorandfoundation/algokit-avm-vscode-debugger) in non algokit compliant projects. The following methods are provided: - `simulate_and_persist_response`: This method simulates the atomic transactions using the provided `AtomicTransactionComposer` object and `AlgodClient` object, and persists the simulation response to an AVM Debugger compliant JSON file. It takes an `AtomicTransactionComposer` object representing the atomic transactions to be simulated and persisted, a `Path` object representing the root directory of the project, an `AlgodClient` object representing the Algorand client, and a float representing the size of the trace buffer in megabytes. ### Trace filename format The trace files are named in a specific format to provide useful information about the transactions they contain. The format is as follows: ```ts `${timestamp}_lr${last_round}_${transaction_types}.trace.avm.json`; ``` Where: - `timestamp`: The time when the trace file was created, in ISO 8601 format, with colons and periods removed. - `last_round`: The last round when the simulation was performed. - `transaction_types`: A string representing the types and counts of transactions in the atomic group. Each transaction type is represented as `${count}${type}`, and different transaction types are separated by underscores. For example, a trace file might be named `20220301T123456Z_lr1000_2pay_1axfer.trace.avm.json`, indicating that the trace file was created at `2022-03-01T12:34:56Z`, the last round was `1000`, and the atomic group contained 2 payment transactions and 1 asset transfer transaction. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/ARCs:pages:wallets.md: -------------------------------------------------------------------------------- ```markdown --- layout: page title: Algorand Wallet Compatiblity Matrix permalink: /wallets --- ## Status Allowed Status are: - Supported - Not Supported - Planned - EXPERIMENTAL - UNKNOWN - DEPRECATED ## Wallet ARCs | ARCS | Daffi | Defly | Exodus | Pera Wallet | | -------------- | ------------- | ------------- | ------------- | ------------- | | [1][ARC-1] | UNKNOWN | Supported | Supported | Supported | | [5][ARC-5] | UNKNOWN | Supported | Supported | Supported | | [6][ARC-6] | UNKNOWN | Not Supported | Not Supported | Not Supported | | [7][ARC-7] | UNKNOWN | Not Supported | Supported | Not Supported | | [8][ARC-8] | UNKNOWN | Not Supported | Supported | Not Supported | | [9][ARC-9] | UNKNOWN | Not Supported | Supported | Not Supported | | [10][ARC-10] | UNKNOWN | Not Supported | Supported | Not Supported | | [11][ARC-11] | UNKNOWN | Not Supported | Supported | Not Supported | | [25][ARC-25] | UNKNOWN | Supported | Supported | Supported | | [35][ARC-35] | UNKNOWN | Supported | Not Supported | Planned | [ARC-1]: ../ARCs/arc-0001.md "Algorand Wallet Transaction Signing API" [ARC-5]: ../ARCs/arc-0005.md "Wallet Transaction Signing API (Functional)" [ARC-6]: ../ARCs/arc-0006.md "Algorand Wallet Address Discovery API" [ARC-7]: ../ARCs/arc-0007.md "Algorand Wallet Post Transactions API" [ARC-8]: ../ARCs/arc-0008.md "Algorand Wallet Sign and Post API" [ARC-9]: ../ARCs/arc-0009.md "Algorand Wallet Algodv2 and Indexer API" [ARC-10]: ../ARCs/arc-0010.md "Algorand Wallet Reach Minimum Requirements" [ARC-11]: ../ARCs/arc-0011.md "Algorand Wallet Reach Browser Spec" [ARC-25]: ../ARCs/arc-0025.md "Algorand WalletConnect v1 API" [ARC-35]: ../ARCs/arc-0035.md "Algorand Offline Wallet Backup Protocol" ## NFT & Token ARCs | ARCS | Daffi | Defly | Exodus | Pera Wallet | | -------------- | ------------- | ------------- | ------------- | ------------- | | [3][ARC-3] | UNKNOWN | UNKNOWN | Supported | UNKNOWN | | [16][ARC-16] | UNKNOWN | UNKNOWN | Supported | UNKNOWN | | [19][ARC-19] | UNKNOWN | UNKNOWN | Supported | UNKNOWN | | [20][ARC-20] | UNKNOWN | UNKNOWN | Not Supported | UNKNOWN | | [69][ARC-69] | UNKNOWN | UNKNOWN | Supported | UNKNOWN | | [72][ARC-72] | UNKNOWN | UNKNOWN | Not Supported | UNKNOWN | | [200][ARC-200] | UNKNOWN | UNKNOWN | Not Supported | UNKNOWN | [ARC-3]: ../ARCs/arc-0003.md "Conventions Fungible/Non-Fungible Tokens" [ARC-16]: ../ARCs/arc-0016.md "Convention for declaring traits of an NFT's" [ARC-19]: ../ARCs/arc-0019.md "Templating of NFT ASA URLs for mutability" [ARC-20]: ../ARCs/arc-0020.md "Smart ASA" [ARC-69]: ../ARCs/arc-0069.md "ASA Parameters Conventions, Digital Media" [ARC-72]: ../ARCs/arc-0072.md "Algorand Smart Contract NFT Specification" [ARC-200]: ../ARCs/arc-0200.md "Algorand Smart Contract Token Specification" ## BIPS | BIPS | Daffi | Defly | Exodus | Pera Wallet | | -------------- | ------------- | ------------- | ------------- | ------------- | | [32][BIP-32] | UNKNOWN | Not supported | Supported | Not supported | | [39][BIP-39] | UNKNOWN | Planned | Supported | Planned | | [44][BIP-44] | UNKNOWN | Not supported | Supported | Not supported | [BIP-32]: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki "Hierarchical Deterministic Wallets" [BIP-39]: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki "Mnemonic code for generating deterministic keys" [BIP-44]: https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki "Multi-Account Hierarchy for Deterministic Wallets" **Disclaimer:** This website is under constant modification. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:classes:types_account.MultisigAccount.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/account](../modules/types_account.md) / MultisigAccount # Class: MultisigAccount [types/account](../modules/types_account.md).MultisigAccount Account wrapper that supports partial or full multisig signing. ## Table of contents ### Constructors - [constructor](types_account.MultisigAccount.md#constructor) ### Properties - [\_addr](types_account.MultisigAccount.md#_addr) - [\_params](types_account.MultisigAccount.md#_params) - [\_signer](types_account.MultisigAccount.md#_signer) - [\_signingAccounts](types_account.MultisigAccount.md#_signingaccounts) ### Accessors - [addr](types_account.MultisigAccount.md#addr) - [params](types_account.MultisigAccount.md#params) - [signer](types_account.MultisigAccount.md#signer) - [signingAccounts](types_account.MultisigAccount.md#signingaccounts) ### Methods - [sign](types_account.MultisigAccount.md#sign) ## Constructors ### constructor • **new MultisigAccount**(`multisigParams`, `signingAccounts`): [`MultisigAccount`](types_account.MultisigAccount.md) #### Parameters | Name | Type | | :------ | :------ | | `multisigParams` | `MultisigMetadata` | | `signingAccounts` | (`default` \| [`SigningAccount`](types_account.SigningAccount.md))[] | #### Returns [`MultisigAccount`](types_account.MultisigAccount.md) #### Defined in [src/types/account.ts:45](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L45) ## Properties ### \_addr • **\_addr**: `Address` #### Defined in [src/types/account.ts:23](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L23) ___ ### \_params • **\_params**: `MultisigMetadata` #### Defined in [src/types/account.ts:21](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L21) ___ ### \_signer • **\_signer**: `TransactionSigner` #### Defined in [src/types/account.ts:24](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L24) ___ ### \_signingAccounts • **\_signingAccounts**: (`default` \| [`SigningAccount`](types_account.SigningAccount.md))[] #### Defined in [src/types/account.ts:22](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L22) ## Accessors ### addr • `get` **addr**(): `Readonly`\<`Address`\> The address of the multisig account #### Returns `Readonly`\<`Address`\> #### Defined in [src/types/account.ts:37](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L37) ___ ### params • `get` **params**(): `Readonly`\<`MultisigMetadata`\> The parameters for the multisig account #### Returns `Readonly`\<`MultisigMetadata`\> #### Defined in [src/types/account.ts:27](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L27) ___ ### signer • `get` **signer**(): `TransactionSigner` #### Returns `TransactionSigner` #### Defined in [src/types/account.ts:41](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L41) ___ ### signingAccounts • `get` **signingAccounts**(): readonly (`default` \| [`SigningAccount`](types_account.SigningAccount.md))[] The list of accounts that are present to sign #### Returns readonly (`default` \| [`SigningAccount`](types_account.SigningAccount.md))[] #### Defined in [src/types/account.ts:32](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L32) ## Methods ### sign ▸ **sign**(`transaction`): `Uint8Array` Sign the given transaction #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `transaction` | `Uint8Array` \| `Transaction` | Either a transaction object or a raw, partially signed transaction | #### Returns `Uint8Array` The transaction signed by the present signers #### Defined in [src/types/account.ts:60](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/account.ts#L60) ``` -------------------------------------------------------------------------------- /packages/server/src/tools/transactionManager/appTransactions/callTxn.ts: -------------------------------------------------------------------------------- ```typescript import { Transaction, makeApplicationNoOpTxnFromObject, OnApplicationComplete } from 'algosdk'; import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; import { AppCallTxnParams } from './types.js'; /** * Creates an application call (NoOp) transaction * @param params The parameters for calling the application * @returns The created transaction * @throws {McpError} If the transaction creation fails */ export function makeApplicationCallTxn(params: AppCallTxnParams): Transaction { try { // Create a new object with the required structure const txnParams = { from: params.from, appIndex: params.appIndex, suggestedParams: params.suggestedParams, note: params.note, lease: params.lease, rekeyTo: params.rekeyTo, appArgs: params.appArgs, accounts: params.accounts, foreignApps: params.foreignApps, foreignAssets: params.foreignAssets, boxes: params.boxes }; // Pass the onComplete parameter separately return makeApplicationNoOpTxnFromObject({ ...txnParams, onComplete: OnApplicationComplete.NoOpOC } as any); // Use type assertion since the types are not perfectly aligned } catch (error) { console.error('[MCP Error] Failed to create application call transaction:', error); throw new McpError( ErrorCode.InternalError, `Failed to create application call transaction: ${error instanceof Error ? error.message : 'Unknown error'}` ); } } /** * Handles the application call tool request * @param args The tool arguments * @param suggestedParams The suggested transaction parameters * @returns The transaction parameters * @throws {McpError} If the parameters are invalid */ export function handleCallTxn(args: Record<string, unknown>, suggestedParams: any): Record<string, any> { try { if (!args.from || !args.appIndex) { console.error('[MCP Error] Invalid application call parameters'); throw new McpError(ErrorCode.InvalidParams, 'Invalid application call parameters'); } // Create transaction with proper parameter handling const txnParams: Record<string, any> = { from: String(args.from), appIndex: Number(args.appIndex), fee: suggestedParams.fee, firstRound: suggestedParams.firstRound, lastRound: suggestedParams.lastRound, genesisID: suggestedParams.genesisID, genesisHash: suggestedParams.genesisHash, type: 'appl', onComplete: OnApplicationComplete.NoOpOC }; // Handle optional fields if (typeof args.note === 'string') { const noteBytes = new TextEncoder().encode(args.note); txnParams.note = Buffer.from(noteBytes).toString('base64'); } if (typeof args.lease === 'string') { const leaseBytes = new TextEncoder().encode(args.lease); txnParams.lease = Buffer.from(leaseBytes).toString('base64'); } if (typeof args.rekeyTo === 'string') { txnParams.rekeyTo = String(args.rekeyTo); } if (Array.isArray(args.appArgs)) { txnParams.appArgs = args.appArgs.map(arg => { const bytes = new TextEncoder().encode(String(arg)); return Buffer.from(bytes).toString('base64'); }); } if (Array.isArray(args.accounts)) { txnParams.accounts = args.accounts.filter((acc): acc is string => typeof acc === 'string'); } if (Array.isArray(args.foreignApps)) { txnParams.foreignApps = args.foreignApps.filter((app): app is number => typeof app === 'number'); } if (Array.isArray(args.foreignAssets)) { txnParams.foreignAssets = args.foreignAssets.filter((asset): asset is number => typeof asset === 'number'); } return txnParams; } catch (error) { if (error instanceof McpError) { throw error; } console.error('[MCP Error] Failed to handle application call:', error); throw new McpError( ErrorCode.InternalError, `Failed to handle application call: ${error instanceof Error ? error.message : 'Unknown error'}` ); } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixtureConfig.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/testing](../modules/types_testing.md) / AlgorandFixtureConfig # Interface: AlgorandFixtureConfig [types/testing](../modules/types_testing.md).AlgorandFixtureConfig Configuration for creating an Algorand testing fixture. ## Hierarchy - `Partial`\<[`AlgoConfig`](types_network_client.AlgoConfig.md)\> ↳ **`AlgorandFixtureConfig`** ## Table of contents ### Properties - [accountGetter](types_testing.AlgorandFixtureConfig.md#accountgetter) - [algod](types_testing.AlgorandFixtureConfig.md#algod) - [algodConfig](types_testing.AlgorandFixtureConfig.md#algodconfig) - [indexer](types_testing.AlgorandFixtureConfig.md#indexer) - [indexerConfig](types_testing.AlgorandFixtureConfig.md#indexerconfig) - [kmd](types_testing.AlgorandFixtureConfig.md#kmd) - [kmdConfig](types_testing.AlgorandFixtureConfig.md#kmdconfig) - [testAccountFunding](types_testing.AlgorandFixtureConfig.md#testaccountfunding) ## Properties ### accountGetter • `Optional` **accountGetter**: (`algod`: `AlgodClient`, `kmd?`: `KmdClient`) => `Promise`\<`default`\> Optional override for how to get an account; this allows you to retrieve accounts from a known or cached list of accounts. #### Type declaration ▸ (`algod`, `kmd?`): `Promise`\<`default`\> ##### Parameters | Name | Type | | :------ | :------ | | `algod` | `AlgodClient` | | `kmd?` | `KmdClient` | ##### Returns `Promise`\<`default`\> #### Defined in [src/types/testing.ts:62](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L62) ___ ### algod • `Optional` **algod**: `AlgodClient` An optional algod client, if not specified then it will create one against `algodConfig` (if present) then environment variables defined network (if present) or default LocalNet. #### Defined in [src/types/testing.ts:54](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L54) ___ ### algodConfig • `Optional` **algodConfig**: [`AlgoClientConfig`](types_network_client.AlgoClientConfig.md) Algod client configuration #### Inherited from Partial.algodConfig #### Defined in [src/types/network-client.ts:16](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/network-client.ts#L16) ___ ### indexer • `Optional` **indexer**: `IndexerClient` An optional indexer client, if not specified then it will create one against `indexerConfig` (if present) then environment variables defined network (if present) or default LocalNet. #### Defined in [src/types/testing.ts:56](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L56) ___ ### indexerConfig • `Optional` **indexerConfig**: [`AlgoClientConfig`](types_network_client.AlgoClientConfig.md) Indexer client configuration #### Inherited from Partial.indexerConfig #### Defined in [src/types/network-client.ts:18](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/network-client.ts#L18) ___ ### kmd • `Optional` **kmd**: `KmdClient` An optional kmd client, if not specified then it will create one against `kmdConfig` (if present) then environment variables defined network (if present) or default LocalNet. #### Defined in [src/types/testing.ts:58](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L58) ___ ### kmdConfig • `Optional` **kmdConfig**: [`AlgoClientConfig`](types_network_client.AlgoClientConfig.md) Kmd configuration #### Inherited from Partial.kmdConfig #### Defined in [src/types/network-client.ts:20](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/network-client.ts#L20) ___ ### testAccountFunding • `Optional` **testAccountFunding**: [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) The amount of funds to allocate to the default testing account, if not specified then it will get 10 ALGO. #### Defined in [src/types/testing.ts:60](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/testing.ts#L60) ``` -------------------------------------------------------------------------------- /packages/server/src/tools/transactionManager/appTransactions/optInTxn.ts: -------------------------------------------------------------------------------- ```typescript import { Transaction, makeApplicationOptInTxnFromObject, OnApplicationComplete } from 'algosdk'; import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; import { AppOptInTxnParams } from './types.js'; /** * Creates an application opt-in transaction * @param params The parameters for opting into the application * @returns The created transaction * @throws {McpError} If the transaction creation fails */ export function makeApplicationOptInTxn(params: AppOptInTxnParams): Transaction { try { // Create a new object with the required structure const txnParams = { from: params.from, appIndex: params.appIndex, suggestedParams: params.suggestedParams, note: params.note, lease: params.lease, rekeyTo: params.rekeyTo, appArgs: params.appArgs, accounts: params.accounts, foreignApps: params.foreignApps, foreignAssets: params.foreignAssets, boxes: params.boxes }; // Pass the onComplete parameter separately return makeApplicationOptInTxnFromObject({ ...txnParams, onComplete: OnApplicationComplete.OptInOC } as any); // Use type assertion since the types are not perfectly aligned } catch (error) { console.error('[MCP Error] Failed to create application opt-in transaction:', error); throw new McpError( ErrorCode.InternalError, `Failed to create application opt-in transaction: ${error instanceof Error ? error.message : 'Unknown error'}` ); } } /** * Handles the application opt-in tool request * @param args The tool arguments * @param suggestedParams The suggested transaction parameters * @returns The transaction parameters * @throws {McpError} If the parameters are invalid */ export function handleOptInTxn(args: Record<string, unknown>, suggestedParams: any): Record<string, any> { try { if (!args.from || !args.appIndex) { console.error('[MCP Error] Invalid application opt-in parameters'); throw new McpError(ErrorCode.InvalidParams, 'Invalid application opt-in parameters'); } // Create transaction with proper parameter handling const txnParams: Record<string, any> = { from: String(args.from), appIndex: Number(args.appIndex), fee: suggestedParams.fee, firstRound: suggestedParams.firstRound, lastRound: suggestedParams.lastRound, genesisID: suggestedParams.genesisID, genesisHash: suggestedParams.genesisHash, type: 'appl', onComplete: OnApplicationComplete.OptInOC }; // Handle optional fields if (typeof args.note === 'string') { const noteBytes = new TextEncoder().encode(args.note); txnParams.note = Buffer.from(noteBytes).toString('base64'); } if (typeof args.lease === 'string') { const leaseBytes = new TextEncoder().encode(args.lease); txnParams.lease = Buffer.from(leaseBytes).toString('base64'); } if (typeof args.rekeyTo === 'string') { txnParams.rekeyTo = String(args.rekeyTo); } if (Array.isArray(args.appArgs)) { txnParams.appArgs = args.appArgs.map(arg => { const bytes = new TextEncoder().encode(String(arg)); return Buffer.from(bytes).toString('base64'); }); } if (Array.isArray(args.accounts)) { txnParams.accounts = args.accounts.filter((acc): acc is string => typeof acc === 'string'); } if (Array.isArray(args.foreignApps)) { txnParams.foreignApps = args.foreignApps.filter((app): app is number => typeof app === 'number'); } if (Array.isArray(args.foreignAssets)) { txnParams.foreignAssets = args.foreignAssets.filter((asset): asset is number => typeof asset === 'number'); } return txnParams; } catch (error) { if (error instanceof McpError) { throw error; } console.error('[MCP Error] Failed to handle application opt-in:', error); throw new McpError( ErrorCode.InternalError, `Failed to handle application opt-in: ${error instanceof Error ? error.message : 'Unknown error'}` ); } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/liquid-auth:docs:server:integrations.md: -------------------------------------------------------------------------------- ```markdown --- title: "Server: Integrations" sidebar: order: 3 label: 'Integrations' next: false --- ### NGINX The official Docker image supports ENV variable substitution in the template folder. Add your distribution to the container under `/usr/share/nginx/html` Make sure to configure a `LIQUID_API_HOST` ENV variable that points to your deployed Liquid Auth API. ```nginx ///etc/nginx/template/default.conf.template server { listen 80; listen [::]:80; server_name localhost; root /usr/share/nginx/html; location / { index index.html index.htm; expires -1; try_files $uri $uri/ @fallback; } location @fallback { proxy_set_header Host ${LIQUID_API_HOST}; proxy_set_header X-Real-IP $remote_addr; proxy_ssl_server_name on; proxy_pass https://${LIQUID_API_HOST}; } } ``` ### Vite > We recommend running a proxy server like Nginx in production. This will work for local development ```typescript //vite.config.ts const DEFAULT_PROXY_URL = 'http://localhost:3000'; const DEFAULT_WSS_PROXY_URL = 'ws://localhost:3000'; export default defineConfig({ server: { proxy: { '^/auth/.*': process.env.PROXY_URL || DEFAULT_PROXY_URL, '^/.well-known/.*': process.env.PROXY_URL || DEFAULT_PROXY_URL, '^/attestation/.*': process.env.PROXY_URL || DEFAULT_PROXY_URL, '^/assertion/.*': process.env.PROXY_URL || DEFAULT_PROXY_URL, '/socket.io': { target: process.env.WSS_PROXY_SERVER || DEFAULT_WSS_PROXY_URL, ws: true, }, } }, }) ``` ### Next.js > We recommend running a proxy server like Nginx in production. This will work in a pinch or to test locally. Deploy the service to a platform like Render or AWS then configure the Proxy in `next.config.js`. ```typescript //next.config.js /** @type {import('next').NextConfig} */ const serverURL = "https://my-liquid-service.com"; const nextConfig = { trailingSlash: true, async rewrites() { return [ { source: '/auth/:path*', destination: `${serverURL}/auth/:path*`, }, { source: '/.well-known/:path*', destination: `${serverURL}/.well-known/:path*`, }, { source: '/attestation/:path*', destination: `${serverURL}/attestation/:path*`, }, { source: '/assertion/:path*', destination: `${serverURL}/assertion/:path*`, }, { source: '/socket.io/', destination: `${serverURL}/socket.io/`, }, { source: '/socket.io', destination: `${serverURL}/socket.io/`, }, ] }, }; export default nextConfig; ``` ### Nest.js[WIP] > Warning, the Service package is not available publicly. > Please contact if you are interested in mounting the server See the [Demo Express](https://github.com/algorandfoundation/liquid-auth/blob/develop/sites/express-dapp/src/main.ts) app for an example of how to mount the server. ```shell npm install @algorandfoundation/liquid-server --save ``` ```typescript //src/main.ts import { AppModule, RedisIoAdapter } from '@algorandfoundation/liquid-server'; async function bootstrap() { const app = await NestFactory.create(AppModule); app.useWebSocketAdapter(new RedisIoAdapter(app)); await app.listen(3000); } ``` ### Vercel > We recommend running a proxy server like Nginx in production. This will work in a pinch ```json //vercel.json { "rewrites": [ { "source": "/auth/:path*", "destination": "${serverURL}/auth/:path*" }, { "source": "/.well-known/:path*", "destination": "${serverURL}/.well-known/:path*" }, { "source": "/attestation/:path*", "destination": "/attestation/:path*" }, { "source": "/assertion/:path*", "destination": "${serverURL}/assertion/:path*" }, { "source": "/socket.io/", "destination": "${serverURL}/socket.io/" }, { "source": "/socket.io", "destination": "${serverURL}/socket.io/" } ] } ``` ``` -------------------------------------------------------------------------------- /packages/server/src/tools/transactionManager/appTransactions/deleteTxn.ts: -------------------------------------------------------------------------------- ```typescript import { Transaction, makeApplicationDeleteTxnFromObject, OnApplicationComplete } from 'algosdk'; import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; import { AppDeleteTxnParams } from './types.js'; /** * Creates an application delete transaction * @param params The parameters for deleting the application * @returns The created transaction * @throws {McpError} If the transaction creation fails */ export function makeApplicationDeleteTxn(params: AppDeleteTxnParams): Transaction { try { // Create a new object with the required structure const txnParams = { from: params.from, appIndex: params.appIndex, suggestedParams: params.suggestedParams, note: params.note, lease: params.lease, rekeyTo: params.rekeyTo, appArgs: params.appArgs, accounts: params.accounts, foreignApps: params.foreignApps, foreignAssets: params.foreignAssets, boxes: params.boxes }; // Pass the onComplete parameter separately return makeApplicationDeleteTxnFromObject({ ...txnParams, onComplete: OnApplicationComplete.DeleteApplicationOC } as any); // Use type assertion since the types are not perfectly aligned } catch (error) { console.error('[MCP Error] Failed to create application delete transaction:', error); throw new McpError( ErrorCode.InternalError, `Failed to create application delete transaction: ${error instanceof Error ? error.message : 'Unknown error'}` ); } } /** * Handles the application delete tool request * @param args The tool arguments * @param suggestedParams The suggested transaction parameters * @returns The transaction parameters * @throws {McpError} If the parameters are invalid */ export function handleDeleteTxn(args: Record<string, unknown>, suggestedParams: any): Record<string, any> { try { if (!args.from || !args.appIndex) { console.error('[MCP Error] Invalid application delete parameters'); throw new McpError(ErrorCode.InvalidParams, 'Invalid application delete parameters'); } // Create transaction with proper parameter handling const txnParams: Record<string, any> = { from: String(args.from), appIndex: Number(args.appIndex), fee: suggestedParams.fee, firstRound: suggestedParams.firstRound, lastRound: suggestedParams.lastRound, genesisID: suggestedParams.genesisID, genesisHash: suggestedParams.genesisHash, type: 'appl', onComplete: OnApplicationComplete.DeleteApplicationOC }; // Handle optional fields if (typeof args.note === 'string') { const noteBytes = new TextEncoder().encode(args.note); txnParams.note = Buffer.from(noteBytes).toString('base64'); } if (typeof args.lease === 'string') { const leaseBytes = new TextEncoder().encode(args.lease); txnParams.lease = Buffer.from(leaseBytes).toString('base64'); } if (typeof args.rekeyTo === 'string') { txnParams.rekeyTo = String(args.rekeyTo); } if (Array.isArray(args.appArgs)) { txnParams.appArgs = args.appArgs.map(arg => { const bytes = new TextEncoder().encode(String(arg)); return Buffer.from(bytes).toString('base64'); }); } if (Array.isArray(args.accounts)) { txnParams.accounts = args.accounts.filter((acc): acc is string => typeof acc === 'string'); } if (Array.isArray(args.foreignApps)) { txnParams.foreignApps = args.foreignApps.filter((app): app is number => typeof app === 'number'); } if (Array.isArray(args.foreignAssets)) { txnParams.foreignAssets = args.foreignAssets.filter((asset): asset is number => typeof asset === 'number'); } return txnParams; } catch (error) { if (error instanceof McpError) { throw error; } console.error('[MCP Error] Failed to handle application delete:', error); throw new McpError( ErrorCode.InternalError, `Failed to handle application delete: ${error instanceof Error ? error.message : 'Unknown error'}` ); } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:tasks:wallet.md: -------------------------------------------------------------------------------- ```markdown # AlgoKit Task Wallet Manage your Algorand addresses and accounts effortlessly with the AlgoKit Wallet feature. This feature allows you to create short aliases for your addresses and accounts on AlgoKit CLI. ## Usage Available commands and possible usage as follows: ```bash $ ~ algokit task wallet Usage: algokit task wallet [OPTIONS] COMMAND [ARGS]... Create short aliases for your addresses and accounts on AlgoKit CLI. Options: -h, --help Show this message and exit. Commands: add Add an address or account to be stored against a named alias. get Get an address or account stored against a named alias. list List all addresses and accounts stored against a named alias. remove Remove an address or account stored against a named alias. reset Remove all aliases. ``` ## Commands ### Add This command adds an address or account to be stored against a named alias. If the `--mnemonic` flag is used, it will prompt the user for a mnemonic phrase interactively using masked input. If the `--force` flag is used, it will allow overwriting an existing alias. Maximum number of aliases that can be stored at a time is 50. ```bash $ algokit wallet add [OPTIONS] ALIAS_NAME ``` > Please note, the command is not designed to be used in CI scope, there is no option to skip interactive masked input of the mnemonic, if you want to alias an `Account` (both private and public key) entity. #### Options - `--address, -a TEXT`: Specifies the address of the account. This option is required. - `--mnemonic, -m`: If specified, it prompts the user for a mnemonic phrase interactively using masked input. - `--force, -f`: If specified, it allows overwriting an existing alias without interactive confirmation prompt. ### Get This command retrieves an address or account stored against a named alias. ```bash $ algokit wallet get ALIAS ``` ### List This command lists all addresses and accounts stored against a named alias. If a record contains a `private_key` it will show a boolean flag indicating whether it exists, actual private key values are never exposed. As a user you can obtain the content of the stored aliases by navigating to your dedicated password manager (see [keyring details](https://pypi.org/project/keyring/)). ```bash $ algokit wallet list ``` ### Remove This command removes an address or account stored against a named alias. You must confirm the prompt interactively or pass `--force` | `-f` flag to ignore the prompt. ```bash $ algokit wallet remove ALIAS [--force | -f] ``` ### Reset This command removes all aliases. You must confirm the prompt interactively or pass `--force` | `-f` flag to ignore the prompt. ```bash $ algokit wallet reset [--force | -f] ``` ## Keyring AlgoKit relies on the [keyring](https://pypi.org/project/keyring/) library, which provides an easy way to interact with the operating system's password manager. This abstraction allows AlgoKit to securely manage sensitive information such as mnemonics and private keys. When you use AlgoKit to store a mnemonic, it is never printed or exposed directly in the console. Instead, the mnemonic is converted and stored as a private key in the password manager. This ensures that your sensitive information is kept secure. To retrieve the stored mnemonic, you will need to manually navigate to your operating system's password manager. The keyring library supports a variety of password managers across different operating systems. Here are some examples: - On macOS, it uses the Keychain Access app. - On Windows, it uses the Credential Manager. - On Linux, it can use Secret Service API, KWallet, or an in-memory store depending on your setup. > Remember, AlgoKit is designed to keep your sensitive information secure however your storage is only as secure as the device on which it is stored. Always ensure to maintain good security practices on your device, especially when dealing with mnemonics that are to be used on MainNet. ## Further Reading For in-depth details, visit the [wallet section](../../cli/index.md#wallet) in the AlgoKit CLI reference documentation. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.ApplicationLocalState.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / ApplicationLocalState # Class: ApplicationLocalState [indexerModels](../modules/indexerModels.md).ApplicationLocalState Stores local state associated with an application. ## Hierarchy - `default` ↳ **`ApplicationLocalState`** ## Table of contents ### Constructors - [constructor](indexerModels.ApplicationLocalState.md#constructor) ### Properties - [attribute\_map](indexerModels.ApplicationLocalState.md#attribute_map) - [closedOutAtRound](indexerModels.ApplicationLocalState.md#closedoutatround) - [deleted](indexerModels.ApplicationLocalState.md#deleted) - [id](indexerModels.ApplicationLocalState.md#id) - [keyValue](indexerModels.ApplicationLocalState.md#keyvalue) - [optedInAtRound](indexerModels.ApplicationLocalState.md#optedinatround) - [schema](indexerModels.ApplicationLocalState.md#schema) ### Methods - [get\_obj\_for\_encoding](indexerModels.ApplicationLocalState.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.ApplicationLocalState.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationLocalState**(`«destructured»`) Creates a new `ApplicationLocalState` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `closedOutAtRound?` | `number` \| `bigint` | | › `deleted?` | `boolean` | | › `id` | `number` \| `bigint` | | › `keyValue?` | [`TealKeyValue`](indexerModels.TealKeyValue.md)[] | | › `optedInAtRound?` | `number` \| `bigint` | | › `schema` | [`ApplicationStateSchema`](indexerModels.ApplicationStateSchema.md) | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:908 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### closedOutAtRound • `Optional` **closedOutAtRound**: `number` \| `bigint` Round when account closed out of the application. #### Defined in client/v2/indexer/models/types.ts:880 ___ ### deleted • `Optional` **deleted**: `boolean` Whether or not the application local state is currently deleted from its account. #### Defined in client/v2/indexer/models/types.ts:886 ___ ### id • **id**: `number` \| `bigint` The application which this local state is for. #### Defined in client/v2/indexer/models/types.ts:870 ___ ### keyValue • `Optional` **keyValue**: [`TealKeyValue`](indexerModels.TealKeyValue.md)[] storage. #### Defined in client/v2/indexer/models/types.ts:891 ___ ### optedInAtRound • `Optional` **optedInAtRound**: `number` \| `bigint` Round when the account opted into the application. #### Defined in client/v2/indexer/models/types.ts:896 ___ ### schema • **schema**: [`ApplicationStateSchema`](indexerModels.ApplicationStateSchema.md) schema. #### Defined in client/v2/indexer/models/types.ts:875 ## 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`): [`ApplicationLocalState`](indexerModels.ApplicationLocalState.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationLocalState`](indexerModels.ApplicationLocalState.md) #### Defined in client/v2/indexer/models/types.ts:942 ```