This is page 10 of 74. Use http://codebase.md/goplausible/algorand-mcp?page={x} to view the full context. # Directory Structure ``` ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── llms-install.md ├── llms.txt ├── package.json ├── packages │ ├── client │ │ ├── .env.example │ │ ├── package.json │ │ ├── README.md │ │ ├── src │ │ │ ├── env.ts │ │ │ ├── index.ts │ │ │ └── LocalWallet.ts │ │ └── tsconfig.json │ └── server │ ├── .env.example │ ├── API specs │ │ ├── algod_api.json │ │ ├── indexer_api.json │ │ ├── mcp.json │ │ ├── nfd_api.json │ │ ├── ultrade_api.json │ │ ├── vestige_api.json │ │ └── vestige_free_api.json │ ├── Dockerfile │ ├── jest.config.js │ ├── package.json │ ├── README.md │ ├── smithery.yaml │ ├── src │ │ ├── algorand-client.ts │ │ ├── env.ts │ │ ├── index.ts │ │ ├── resources │ │ │ ├── index.ts │ │ │ ├── knowledge │ │ │ │ ├── ARCs.txt │ │ │ │ ├── developers-algokit-architecture-decisions.txt │ │ │ │ ├── developers-algokit-cli.txt │ │ │ │ ├── developers-algokit-utils-python.txt │ │ │ │ ├── developers-algokit-utils-typescript.txt │ │ │ │ ├── developers-clis.txt │ │ │ │ ├── developers-details.txt │ │ │ │ ├── developers-liquid-auth.txt │ │ │ │ ├── developers-nodes.txt │ │ │ │ ├── developers-puya.txt │ │ │ │ ├── developers-python.txt │ │ │ │ ├── developers-sdks-js.txt │ │ │ │ ├── developers-sdks-python.txt │ │ │ │ ├── developers-tealscript.txt │ │ │ │ ├── developers.txt │ │ │ │ ├── index.ts │ │ │ │ ├── taxonomy │ │ │ │ │ ├── algokit-cli:README.md │ │ │ │ │ ├── algokit:cli:algokit.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2022-11-14_sandbox-approach.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2022-11-22_beaker-testing-strategy.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-11_beaker_productionisation_review.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-11_brew_install.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-12_smart-contract-deployment.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-06-06_frontend-templates.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-07-19_advanced_generate_command.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-13_native_binaries.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-23_init-wizard-v2.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-31_binary_distribution.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-03-06_local_dev_ui_packaging.md │ │ │ │ │ ├── algokit:cli:articles:output_stability.md │ │ │ │ │ ├── algokit:cli:cli:index.md │ │ │ │ │ ├── algokit:cli:features:compile.md │ │ │ │ │ ├── algokit:cli:features:completions.md │ │ │ │ │ ├── algokit:cli:features:config.md │ │ │ │ │ ├── algokit:cli:features:dispenser.md │ │ │ │ │ ├── algokit:cli:features:doctor.md │ │ │ │ │ ├── algokit:cli:features:explore.md │ │ │ │ │ ├── algokit:cli:features:generate.md │ │ │ │ │ ├── algokit:cli:features:goal.md │ │ │ │ │ ├── algokit:cli:features:init.md │ │ │ │ │ ├── algokit:cli:features:localnet.md │ │ │ │ │ ├── algokit:cli:features:project:bootstrap.md │ │ │ │ │ ├── algokit:cli:features:project:deploy.md │ │ │ │ │ ├── algokit:cli:features:project:link.md │ │ │ │ │ ├── algokit:cli:features:project:list.md │ │ │ │ │ ├── algokit:cli:features:project:run.md │ │ │ │ │ ├── algokit:cli:features:project.md │ │ │ │ │ ├── algokit:cli:features:tasks:analyze.md │ │ │ │ │ ├── algokit:cli:features:tasks:ipfs.md │ │ │ │ │ ├── algokit:cli:features:tasks:mint.md │ │ │ │ │ ├── algokit:cli:features:tasks:nfd.md │ │ │ │ │ ├── algokit:cli:features:tasks:opt.md │ │ │ │ │ ├── algokit:cli:features:tasks:send.md │ │ │ │ │ ├── algokit:cli:features:tasks:sign.md │ │ │ │ │ ├── algokit:cli:features:tasks:transfer.md │ │ │ │ │ ├── algokit:cli:features:tasks:vanity_address.md │ │ │ │ │ ├── algokit:cli:features:tasks:wallet.md │ │ │ │ │ ├── algokit:cli:features:tasks.md │ │ │ │ │ ├── algokit:cli:tutorials:algokit-template.md │ │ │ │ │ ├── algokit:cli:tutorials:intro.md │ │ │ │ │ ├── algokit:cli:tutorials:smart-contracts.md │ │ │ │ │ ├── algokit:docs:testnet_api.md │ │ │ │ │ ├── algokit:lora:README.md │ │ │ │ │ ├── algokit:README.md │ │ │ │ │ ├── algokit:utils:python:markdown:apidocs:algokit_utils:algokit_utils.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:account.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:debugger.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:python:markdown:index.md │ │ │ │ │ ├── algokit:utils:python:README.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:account.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:debugger.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:python:source:index.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:account.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:algorand-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:amount.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:asset.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:debugging.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:event-emitter.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:indexer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:testing.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transaction-composer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transaction.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:typed-app-clients.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:testing.TestLogger.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:testing.TransactionLogger.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account_manager.AccountManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account.MultisigAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account.SigningAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_sender.AlgorandClientTransactionSender.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client.AlgorandClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_amount.AlgoAmount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_arc56.Arc56Method.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_client.AppClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_client.ApplicationClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_deployer.AppDeployer.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_factory.AppFactory.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_manager.AppManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_asset_manager.AssetManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_async_event_emitter.AsyncEventEmitter.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_composer.TransactionComposer.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_config.UpdatableConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_dispenser_client.TestNetDispenserApiClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_kmd_account_manager.KmdAccountManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_logic_error.LogicError.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_app.OnSchemaBreak.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_app.OnUpdate.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.AccountStatus.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.ApplicationOnComplete.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.SignatureType.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_lifecycle_events.EventType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account_manager.EnsureFundedResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account.AccountConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account.TransactionSignerAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_algorand_client_interface.AlgorandClientInterface.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Arc56Contract.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Event.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Method.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.ProgramSourceInfo.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageKey.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageMap.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StructField.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallABIArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallCoreParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCallInterfaceParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCoreParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppSourceMaps.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.FundAppAccountParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppById.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppByIdBase.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.SourceMapExport.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppLookup.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_factory.AppFactoryParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.AppInformation.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValueRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValuesRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSources.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.CallConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.DeclaredSchemaValueSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Hint.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.ReservedSchemaValueSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Schema.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.SchemaSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.StateSchemaSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Struct.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCallParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCallTransactionResultOfType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCompilationResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppDeploymentParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppDeployMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppLookup.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppState.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppStorageSchema.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxName.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxValueRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxValuesRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CompiledTeal.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CoreAppCallArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CreateAppParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.RawAppCallArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.TealTemplateParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.UpdateAppParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset_manager.AssetInformation.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset_manager.BulkAssetOptInOutResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetBulkOptInOutParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptInParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptOutParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.CreateAssetParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.AlgoSdkClients.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppFactory.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_composer.BuiltTransactions.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_config.Config.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.AVMTracesEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourceDebugEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourcesDebugEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserFundResponse.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserLimitResponse.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.TestNetDispenserApiClientParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_indexer.LookupAssetHoldingsOptions.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_logic_error.LogicErrorDetails.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoClientConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.NetworkDetails.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgoKitLogCaptureFixture.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixture.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixtureConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandTestAutomationContext.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.GetTestAccountParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.LogSnapshotConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.AtomicTransactionComposerToSend.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendAtomicTransactionComposerResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionGroupToSend.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionToSign.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoRekeyParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoTransferParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedReturnType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.TransferAssetParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:index.indexer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:index.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:testing.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account_manager_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algo_http_client_with_retry.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_asset_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_interface.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_creator.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_sender.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transfer_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_amount_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_amount.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_arc56.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_deployer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_factory_and_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_factory.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_asset_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_asset.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_async_event_emitter_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_async_event_emitter.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_client_manager_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_client_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_composer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_config.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_debugging.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_dispenser_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_dispenser_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_expand.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_indexer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_kmd_account_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_lifecycle_events.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_logging.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_logic_error.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_network_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_testing.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_transaction.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_transfer.md │ │ │ │ │ ├── algokit:utils:typescript:code:README.md │ │ │ │ │ ├── algokit:utils:typescript:README.md │ │ │ │ │ ├── algokit:utils:typescript:v7-migration.md │ │ │ │ │ ├── algokit:utils:typescript:v8-migration.md │ │ │ │ │ ├── ARCs:ARC-template.md │ │ │ │ │ ├── ARCs:assets:arc-0012:README.md │ │ │ │ │ ├── ARCs:assets:arc-0034:TemplateForm.md │ │ │ │ │ ├── ARCs:assets:arc-0062:README.md │ │ │ │ │ ├── ARCs:pages:nfts.md │ │ │ │ │ ├── ARCs:pages:wallets.md │ │ │ │ │ ├── ARCs:README.md │ │ │ │ │ ├── ARCs:specs:arc-0000.md │ │ │ │ │ ├── ARCs:specs:arc-0001.md │ │ │ │ │ ├── ARCs:specs:arc-0002.md │ │ │ │ │ ├── ARCs:specs:arc-0003.md │ │ │ │ │ ├── ARCs:specs:arc-0004.md │ │ │ │ │ ├── ARCs:specs:arc-0005.md │ │ │ │ │ ├── ARCs:specs:arc-0006.md │ │ │ │ │ ├── ARCs:specs:arc-0007.md │ │ │ │ │ ├── ARCs:specs:arc-0008.md │ │ │ │ │ ├── ARCs:specs:arc-0009.md │ │ │ │ │ ├── ARCs:specs:arc-0010.md │ │ │ │ │ ├── ARCs:specs:arc-0011.md │ │ │ │ │ ├── ARCs:specs:arc-0012.md │ │ │ │ │ ├── ARCs:specs:arc-0015.md │ │ │ │ │ ├── ARCs:specs:arc-0016.md │ │ │ │ │ ├── ARCs:specs:arc-0018.md │ │ │ │ │ ├── ARCs:specs:arc-0019.md │ │ │ │ │ ├── ARCs:specs:arc-0020.md │ │ │ │ │ ├── ARCs:specs:arc-0021.md │ │ │ │ │ ├── ARCs:specs:arc-0022.md │ │ │ │ │ ├── ARCs:specs:arc-0023.md │ │ │ │ │ ├── ARCs:specs:arc-0025.md │ │ │ │ │ ├── ARCs:specs:arc-0026.md │ │ │ │ │ ├── ARCs:specs:arc-0028.md │ │ │ │ │ ├── ARCs:specs:arc-0032.md │ │ │ │ │ ├── ARCs:specs:arc-0033.md │ │ │ │ │ ├── ARCs:specs:arc-0034.md │ │ │ │ │ ├── ARCs:specs:arc-0035.md │ │ │ │ │ ├── ARCs:specs:arc-0036.md │ │ │ │ │ ├── ARCs:specs:arc-0042.md │ │ │ │ │ ├── ARCs:specs:arc-0047.md │ │ │ │ │ ├── ARCs:specs:arc-0048.md │ │ │ │ │ ├── ARCs:specs:arc-0049.md │ │ │ │ │ ├── ARCs:specs:arc-0054.md │ │ │ │ │ ├── ARCs:specs:arc-0055.md │ │ │ │ │ ├── ARCs:specs:arc-0056.md │ │ │ │ │ ├── ARCs:specs:arc-0059.md │ │ │ │ │ ├── ARCs:specs:arc-0062.md │ │ │ │ │ ├── ARCs:specs:arc-0065.md │ │ │ │ │ ├── ARCs:specs:arc-0069.md │ │ │ │ │ ├── ARCs:specs:arc-0072.md │ │ │ │ │ ├── ARCs:specs:arc-0073.md │ │ │ │ │ ├── ARCs:specs:arc-0074.md │ │ │ │ │ ├── ARCs:specs:arc-0076.md │ │ │ │ │ ├── ARCs:specs:arc-0078.md │ │ │ │ │ ├── ARCs:specs:arc-0079.md │ │ │ │ │ ├── ARCs:specs:arc-0200.md │ │ │ │ │ ├── clis_index.md │ │ │ │ │ ├── developer:docs:about.md │ │ │ │ │ ├── developer:docs:clis:algokey:algokey.md │ │ │ │ │ ├── developer:docs:clis:algokey:generate.md │ │ │ │ │ ├── developer:docs:clis:algokey:import.md │ │ │ │ │ ├── developer:docs:clis:algokey:multisig:append-auth-addr.md │ │ │ │ │ ├── developer:docs:clis:algokey:multisig:multisig.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:info.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:part.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:reparent.md │ │ │ │ │ ├── developer:docs:clis:algokey:sign.md │ │ │ │ │ ├── developer:docs:clis:conduit:conduit.md │ │ │ │ │ ├── developer:docs:clis:conduit:init.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:exporters.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:importers.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:list.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:processors.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:diagcfg.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:disable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:enable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:metric.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:status.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:disable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:enable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:endpoint.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:name.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:status.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:telemetry.md │ │ │ │ │ ├── developer:docs:clis:goal:node:restart.md │ │ │ │ │ ├── developer:docs:clis:goal:node:start.md │ │ │ │ │ ├── developer:docs:clis:goal:node:status.md │ │ │ │ │ ├── developer:docs:clis:goal:node:stop.md │ │ │ │ │ ├── developer:docs:clis:goal:node:wait.md │ │ │ │ │ ├── developer:docs:clis:goal:protocols.md │ │ │ │ │ ├── developer:docs:clis:goal:report.md │ │ │ │ │ ├── developer:docs:clis:goal:version.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:list.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:new.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:wallet.md │ │ │ │ │ ├── developer:docs:clis:indexer:api-config.md │ │ │ │ │ ├── developer:docs:clis:indexer:daemon.md │ │ │ │ │ ├── developer:docs:clis:indexer:indexer.md │ │ │ │ │ ├── developer:docs:clis:indexer:util:util.md │ │ │ │ │ ├── developer:docs:clis:indexer:util:validator.md │ │ │ │ │ ├── developer:docs:clis:kmd.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:debug.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:remote.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:tealdbg.md │ │ │ │ │ ├── developer:docs:details:accounts:create.md │ │ │ │ │ ├── developer:docs:details:accounts:index.md │ │ │ │ │ ├── developer:docs:details:accounts:rekey.md │ │ │ │ │ ├── developer:docs:details:algorand_consensus.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:betanet.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:index.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:mainnet.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:testnet.md │ │ │ │ │ ├── developer:docs:details:asa.md │ │ │ │ │ ├── developer:docs:details:atc.md │ │ │ │ │ ├── developer:docs:details:atomic_transfers.md │ │ │ │ │ ├── developer:docs:details:conduit.md │ │ │ │ │ ├── developer:docs:details:crust.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:guidelines.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:jsonspec.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v1.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v10.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v2.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v3.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v4.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v5.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v6.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v7.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v8.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v9.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:specification.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:ABI:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:create.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:innertx.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:state.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:txs.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:debugging.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:frontend:apps.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:frontend:smartsigs.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:guidelines.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:modes.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:walkthrough.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:beaker.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:pyteal.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:python.md │ │ │ │ │ ├── developer:docs:details:encoding.md │ │ │ │ │ ├── developer:docs:details:ethereum_to_algorand.md │ │ │ │ │ ├── developer:docs:details:index.md │ │ │ │ │ ├── developer:docs:details:indexer.md │ │ │ │ │ ├── developer:docs:details:parameter_tables.md │ │ │ │ │ ├── developer:docs:details:stateproofs:index.md │ │ │ │ │ ├── developer:docs:details:stateproofs:light_client.md │ │ │ │ │ ├── developer:docs:details:technical_faq.md │ │ │ │ │ ├── developer:docs:details:transactions:index.md │ │ │ │ │ ├── developer:docs:details:transactions:offline_transactions.md │ │ │ │ │ ├── developer:docs:details:transactions:payment_prompts.md │ │ │ │ │ ├── developer:docs:details:transactions:signatures.md │ │ │ │ │ ├── developer:docs:details:transactions:transactions.md │ │ │ │ │ ├── developer:docs:details:useful_resources.md │ │ │ │ │ ├── developer:docs:get-started:algokit.md │ │ │ │ │ ├── developer:docs:get-started:basics:what_is_blockchain.md │ │ │ │ │ ├── developer:docs:get-started:basics:whats_a_dapp.md │ │ │ │ │ ├── developer:docs:get-started:basics:where_to_start.md │ │ │ │ │ ├── developer:docs:get-started:basics:why_algorand.md │ │ │ │ │ ├── developer:docs:get-started:tokenization:ft.md │ │ │ │ │ ├── developer:docs:get-started:tokenization:nft.md │ │ │ │ │ ├── developer:docs:index.md │ │ │ │ │ ├── developer:docs:rest-apis:algod.md │ │ │ │ │ ├── developer:docs:rest-apis:indexer.md │ │ │ │ │ ├── developer:docs:rest-apis:kmd.md │ │ │ │ │ ├── developer:docs:rest-apis:restendpoints.md │ │ │ │ │ ├── developer:docs:run-a-node:operations:catchup.md │ │ │ │ │ ├── developer:docs:run-a-node:operations:switch_networks.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:generate_keys.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:index.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:offline.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:online.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:renew.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:artifacts.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:config.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:relay.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:telemetry-config.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:indexer.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:install.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:node-troubleshooting.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:types.md │ │ │ │ │ ├── developer:docs:sdks:go:index.md │ │ │ │ │ ├── developer:docs:sdks:index.md │ │ │ │ │ ├── developer:docs:sdks:java:index.md │ │ │ │ │ ├── developer:docs:sdks:javascript:index.md │ │ │ │ │ ├── developer:docs:sdks:python:index.md │ │ │ │ │ ├── developer:python:code:example:accounts.md │ │ │ │ │ ├── developer:python:code:example:arc4_types.md │ │ │ │ │ ├── developer:python:code:example:assets.md │ │ │ │ │ ├── developer:python:code:example:box_storage.md │ │ │ │ │ ├── developer:python:code:example:control_flow.md │ │ │ │ │ ├── developer:python:code:example:crypto:merkle_tree.md │ │ │ │ │ ├── developer:python:code:example:defi:amm.md │ │ │ │ │ ├── developer:python:code:example:defi:auction.md │ │ │ │ │ ├── developer:python:code:example:defi:htlc_logicsig.md │ │ │ │ │ ├── developer:python:code:example:defi:marketplace.md │ │ │ │ │ ├── developer:python:code:example:events:arc28_events.md │ │ │ │ │ ├── developer:python:code:example:global_storage.md │ │ │ │ │ ├── developer:python:code:example:governance:simple_voting.md │ │ │ │ │ ├── developer:python:code:example:hello_world.md │ │ │ │ │ ├── developer:python:code:example:inner_transactions.md │ │ │ │ │ ├── developer:python:code:example:local_storage.md │ │ │ │ │ ├── developer:python:code:example:nft:proof_of_attendance.md │ │ │ │ │ ├── developer:python:code:example:privacy:zk_whitelist.md │ │ │ │ │ ├── developer:python:code:example:scratch_storage.md │ │ │ │ │ ├── developer:python:code:example:self_payment.md │ │ │ │ │ ├── developer:python:code:example:struct_in_box.md │ │ │ │ │ ├── developer:python:code:example:subsidize_app_call.md │ │ │ │ │ ├── developer:python:code:example:transactions.md │ │ │ │ │ ├── developer:python:code:example:utility:calculator.md │ │ │ │ │ ├── devportal-code-examples:projects:python-contract-examples:README.md │ │ │ │ │ ├── devportal-code-examples:README.md │ │ │ │ │ ├── docs:.walletconnect:index.md │ │ │ │ │ ├── docs:.walletconnect:walletconnect-schema.md │ │ │ │ │ ├── docs:README.md │ │ │ │ │ ├── docs:scripts:example_tracker:example_list.md │ │ │ │ │ ├── docs:scripts:README.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── liquid_auth_index.md │ │ │ │ │ ├── liquid-auth:ARCHITECTURE.md │ │ │ │ │ ├── liquid-auth:decisions:1-Service-Authentication.md │ │ │ │ │ ├── liquid-auth:decisions:2-Bidirectional-Communication.md │ │ │ │ │ ├── liquid-auth:decisions:3-Peer-to-Peer-Signaling.md │ │ │ │ │ ├── liquid-auth:decisions:4-Fido-Extension.md │ │ │ │ │ ├── liquid-auth:decisions:README.md │ │ │ │ │ ├── liquid-auth:docs:architecture.md │ │ │ │ │ ├── liquid-auth:docs:clients:android:provider-service:authenticate.md │ │ │ │ │ ├── liquid-auth:docs:clients:android:provider-service:register.md │ │ │ │ │ ├── liquid-auth:docs:clients:browser:authentication.md │ │ │ │ │ ├── liquid-auth:docs:clients:browser:example.md │ │ │ │ │ ├── liquid-auth:docs:introduction.md │ │ │ │ │ ├── liquid-auth:docs:README.md │ │ │ │ │ ├── liquid-auth:docs:server:environment-variables.md │ │ │ │ │ ├── liquid-auth:docs:server:integrations.md │ │ │ │ │ ├── liquid-auth:docs:server:introduction.md │ │ │ │ │ ├── liquid-auth:docs:server:running-locally.md │ │ │ │ │ ├── liquid-auth:README.md │ │ │ │ │ ├── liquid-auth:SEQUENCE.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.request.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.response.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:attestation:attestation.controller.post.request.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:auth:auth.controller.get.user.md │ │ │ │ │ ├── liquid-auth:sites:express-dapp:README.md │ │ │ │ │ ├── liquid-auth:VISION.md │ │ │ │ │ ├── puya_index.md │ │ │ │ │ ├── puya:docs:algopy_testing:index.md │ │ │ │ │ ├── puya:docs:api-algopy.arc4.md │ │ │ │ │ ├── puya:docs:api-algopy.gtxn.md │ │ │ │ │ ├── puya:docs:api-algopy.itxn.md │ │ │ │ │ ├── puya:docs:api-algopy.md │ │ │ │ │ ├── puya:docs:api-algopy.op.md │ │ │ │ │ ├── puya:docs:api.md │ │ │ │ │ ├── puya:docs:compiler.md │ │ │ │ │ ├── puya:docs:index.md │ │ │ │ │ ├── puya:docs:language-guide.md │ │ │ │ │ ├── puya:docs:lg-arc28.md │ │ │ │ │ ├── puya:docs:lg-arc4.md │ │ │ │ │ ├── puya:docs:lg-builtins.md │ │ │ │ │ ├── puya:docs:lg-calling-apps.md │ │ │ │ │ ├── puya:docs:lg-compile.md │ │ │ │ │ ├── puya:docs:lg-control.md │ │ │ │ │ ├── puya:docs:lg-errors.md │ │ │ │ │ ├── puya:docs:lg-logs.md │ │ │ │ │ ├── puya:docs:lg-modules.md │ │ │ │ │ ├── puya:docs:lg-opcode-budget.md │ │ │ │ │ ├── puya:docs:lg-ops.md │ │ │ │ │ ├── puya:docs:lg-storage.md │ │ │ │ │ ├── puya:docs:lg-structure.md │ │ │ │ │ ├── puya:docs:lg-transactions.md │ │ │ │ │ ├── puya:docs:lg-types.md │ │ │ │ │ ├── puya:docs:lg-unsupported-python-features.md │ │ │ │ │ ├── puya:docs:principles.md │ │ │ │ │ ├── puya:examples:auction:README.md │ │ │ │ │ ├── puya:python:testing:docs:algopy.md │ │ │ │ │ ├── puya:python:testing:docs:api.md │ │ │ │ │ ├── puya:python:testing:docs:coverage.md │ │ │ │ │ ├── puya:python:testing:docs:examples.md │ │ │ │ │ ├── puya:python:testing:docs:faq.md │ │ │ │ │ ├── puya:python:testing:docs:index.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:arc4-types.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:avm-types.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:concepts.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:contract-testing.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:index.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:opcodes.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:signature-testing.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:state-management.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:subroutines.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:transactions.md │ │ │ │ │ ├── puya:python:testing:examples:README.md │ │ │ │ │ ├── puya:python:testing:README.md │ │ │ │ │ ├── puya:README.md │ │ │ │ │ ├── puya:src:puya:ARCHITECTURE.md │ │ │ │ │ ├── puya:src:puyapy:_typeshed:README.md │ │ │ │ │ ├── puya:src:puyapy:_vendor:mypy:typeshed:stdlib:_typeshed:README.md │ │ │ │ │ ├── puya:src:puyapy:awst_build:README.md │ │ │ │ │ ├── puya:stubs:README.md │ │ │ │ │ ├── puya:tests:test_expected_output:README.md │ │ │ │ │ ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-bytes-and-strings.md │ │ │ │ │ ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-integer-types.md │ │ │ │ │ ├── puya:typescript:docs:README.md │ │ │ │ │ ├── puya:typescript:packages:algo-ts:readme.md │ │ │ │ │ ├── puya:typescript:README.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIAddressType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIArrayDynamicType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIArrayStaticType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIBoolType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIByteType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIContract.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIInterface.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIMethod.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIStringType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABITupleType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIUfixedType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIUintType.md │ │ │ │ │ ├── SDKs:javascript:classes:Algodv2.md │ │ │ │ │ ├── SDKs:javascript:classes:AtomicTransactionComposer.md │ │ │ │ │ ├── SDKs:javascript:classes:DryrunResult.md │ │ │ │ │ ├── SDKs:javascript:classes:Indexer.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Account.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountParticipation.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountStateDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Application.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLocalState.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLocalStatesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLogData.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLogsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationParams.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationStateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Asset.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetBalancesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetHoldingsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetParams.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Block.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockRewards.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockUpgradeState.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockUpgradeVote.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Box.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BoxDescriptor.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BoxesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ErrorResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.EvalDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.EvalDeltaKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.HashFactory.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.HealthCheck.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.IndexerStateProofMessage.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.MerkleArrayProof.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.MiniAssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ParticipationUpdates.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofFields.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofParticipant.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofReveal.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofSignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofSigSlot.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofTracking.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofVerifier.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TealKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TealValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Transaction.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionApplication.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetConfig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetFreeze.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetTransfer.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionKeyreg.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionPayment.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureLogicsig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisigSubsignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionStateProof.md │ │ │ │ │ ├── SDKs:javascript:classes:Kmd.md │ │ │ │ │ ├── SDKs:javascript:classes:LogicSig.md │ │ │ │ │ ├── SDKs:javascript:classes:LogicSigAccount.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Account.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountApplicationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetsInformationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountParticipation.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountStateDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AppCallLogs.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Application.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationInitialStates.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationKVStorage.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationLocalReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationLocalState.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationParams.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationStateOperation.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationStateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Asset.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetHoldingReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetParams.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AvmKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AvmValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockHashResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockLogsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockTxidsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Box.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxDescriptor.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BuildVersion.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.CompileResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DisassembleResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunRequest.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunSource.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunState.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunTxnResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ErrorResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.EvalDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.EvalDeltaKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.GetBlockTimeStampOffsetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.GetSyncRoundResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.KvDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.LedgerStateDeltaForTransactionGroup.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.LightBlockHeaderProof.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.NodeStatusResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PendingTransactionResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PendingTransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PostTransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ScratchChange.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateInitialStates.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateRequest.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateRequestTransactionGroup.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTraceConfig.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTransactionGroupResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTransactionResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateUnnamedResourcesAccessed.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationEvalOverrides.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationOpcodeTraceUnit.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationTransactionExecTrace.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.StateProof.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.StateProofMessage.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SupplyResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TealKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TealValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionGroupLedgerStateDeltasForRoundResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionParametersResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionProofResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Version.md │ │ │ │ │ ├── SDKs:javascript:classes:SourceMap.md │ │ │ │ │ ├── SDKs:javascript:classes:Transaction.md │ │ │ │ │ ├── SDKs:javascript:enums:ABIReferenceType.md │ │ │ │ │ ├── SDKs:javascript:enums:ABITransactionType.md │ │ │ │ │ ├── SDKs:javascript:enums:AtomicTransactionComposerStatus.md │ │ │ │ │ ├── SDKs:javascript:enums:IntDecoding.md │ │ │ │ │ ├── SDKs:javascript:enums:OnApplicationComplete.md │ │ │ │ │ ├── SDKs:javascript:enums:TransactionType.md │ │ │ │ │ ├── SDKs:javascript:examples:README.md │ │ │ │ │ ├── SDKs:javascript:FAQ.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractNetworkInfo.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractNetworks.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIInterfaceParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodArgParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodReturnParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIResult.md │ │ │ │ │ ├── SDKs:javascript:interfaces:Account.md │ │ │ │ │ ├── SDKs:javascript:interfaces:Address.md │ │ │ │ │ ├── SDKs:javascript:interfaces:AlgodTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClient.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClientError.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClientResponse.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BoxReference.md │ │ │ │ │ ├── SDKs:javascript:interfaces:CustomTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedAssetParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedBoxReference.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedGlobalStateSchema.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLocalStateSchema.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLogicSig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLogicSigAccount.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedMultisig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedSignedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedSubsig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:IndexerTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:KMDTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:MultisigMetadata.md │ │ │ │ │ ├── SDKs:javascript:interfaces:SignedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:SuggestedParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:TransactionParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:TransactionWithSigner.md │ │ │ │ │ ├── SDKs:javascript:modules:indexerModels.md │ │ │ │ │ ├── SDKs:javascript:modules:modelsv2.md │ │ │ │ │ ├── SDKs:javascript:modules.md │ │ │ │ │ ├── SDKs:javascript:README.md │ │ │ │ │ ├── SDKs:python:algosdk:v2client:harness:README.md │ │ │ │ │ ├── SDKs:python:examples:README.md │ │ │ │ │ ├── SDKs:python:README.md │ │ │ │ │ ├── tealscript:examples_amm_README.md │ │ │ │ │ ├── tealscript:examples_auction_README.md │ │ │ │ │ ├── tealscript:examples_big_box_README.md │ │ │ │ │ ├── tealscript:examples_itxns_README.md │ │ │ │ │ ├── tealscript:examples_lsig_with_app_README.md │ │ │ │ │ ├── tealscript:examples_reti_README.md │ │ │ │ │ ├── tealscript:FEATURES.md │ │ │ │ │ ├── tealscript:guides_atomic_txn.md │ │ │ │ │ ├── tealscript:guides_features.md │ │ │ │ │ ├── tealscript:guides_getting_started.md │ │ │ │ │ ├── tealscript:guides_inner_transactions.md │ │ │ │ │ ├── tealscript:guides_lifecycle.md │ │ │ │ │ ├── tealscript:guides_math.md │ │ │ │ │ ├── tealscript:guides_methods.md │ │ │ │ │ ├── tealscript:guides_multiple_contracts.md │ │ │ │ │ ├── tealscript:guides_pyteal.md │ │ │ │ │ ├── tealscript:guides_storage.md │ │ │ │ │ ├── tealscript:guides_Supported Types_arrays.md │ │ │ │ │ ├── tealscript:guides_Supported Types_numbers.md │ │ │ │ │ ├── TEALScript:README.md │ │ │ │ │ ├── tealscript:tests_test_package_README.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0001-intro.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0002-init.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0003-contract.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0004-artifacts.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0005-hello.md │ │ │ │ │ └── tealscript:tutorials_Hello World_0006-test.md │ │ │ │ └── taxonomy-categories │ │ │ │ ├── algokit-utils.json │ │ │ │ ├── algokit.json │ │ │ │ ├── arcs.json │ │ │ │ ├── clis.json │ │ │ │ ├── details.json │ │ │ │ ├── developers.json │ │ │ │ ├── liquid-auth.json │ │ │ │ ├── nodes.json │ │ │ │ ├── puya.json │ │ │ │ ├── python.json │ │ │ │ ├── sdks.json │ │ │ │ └── tealscript.json │ │ │ └── wallet │ │ │ └── index.ts │ │ ├── tools │ │ │ ├── accountManager.ts │ │ │ ├── algodManager.ts │ │ │ ├── apiManager │ │ │ │ ├── algod │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── asset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction.ts │ │ │ │ ├── example │ │ │ │ │ ├── get-balance.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── indexer │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── asset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction.ts │ │ │ │ ├── nfd │ │ │ │ │ └── index.ts │ │ │ │ ├── tinyman │ │ │ │ │ ├── analytics.ts │ │ │ │ │ ├── bootstrap.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── liquidity.ts │ │ │ │ │ ├── opt_in.ts │ │ │ │ │ ├── pool.ts │ │ │ │ │ ├── remove_liquidity.ts │ │ │ │ │ └── swap.ts │ │ │ │ ├── ultrade │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── market.ts │ │ │ │ │ ├── system.ts │ │ │ │ │ └── wallet.ts │ │ │ │ └── vestige │ │ │ │ ├── assets.ts │ │ │ │ ├── balances.ts │ │ │ │ ├── index.ts │ │ │ │ ├── networks.ts │ │ │ │ ├── notes.ts │ │ │ │ ├── pools.ts │ │ │ │ ├── protocols.ts │ │ │ │ ├── swaps.ts │ │ │ │ └── vaults.ts │ │ │ ├── arc26Manager.ts │ │ │ ├── index.ts │ │ │ ├── knowledgeManager.ts │ │ │ ├── transactionManager │ │ │ │ ├── accountTransactions.ts │ │ │ │ ├── appTransactions │ │ │ │ │ ├── callTxn.ts │ │ │ │ │ ├── clearTxn.ts │ │ │ │ │ ├── closeOutTxn.ts │ │ │ │ │ ├── createTxn.ts │ │ │ │ │ ├── deleteTxn.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── optInTxn.ts │ │ │ │ │ ├── test │ │ │ │ │ │ ├── counter_approval.teal │ │ │ │ │ │ ├── counter_clear.teal │ │ │ │ │ │ ├── storage_test_approval_v2.teal │ │ │ │ │ │ ├── storage_test_approval.teal │ │ │ │ │ │ └── storage_test_clear.teal │ │ │ │ │ ├── types.ts │ │ │ │ │ └── updateTxn.ts │ │ │ │ ├── assetTransactions.ts │ │ │ │ ├── generalTransaction.ts │ │ │ │ └── index.ts │ │ │ └── utilityManager.ts │ │ ├── types.ts │ │ └── utils │ │ └── responseProcessor.ts │ ├── tests │ │ ├── resources │ │ │ ├── algod │ │ │ │ ├── account.test.ts │ │ │ │ ├── application.test.ts │ │ │ │ ├── asset.test.ts │ │ │ │ └── transaction.test.ts │ │ │ └── indexer │ │ │ ├── account.test.ts │ │ │ ├── application.test.ts │ │ │ ├── asset.test.ts │ │ │ └── transaction.test.ts │ │ └── tools │ │ ├── accountManager.test.ts │ │ ├── algodManager.test.ts │ │ ├── apiManager │ │ │ └── example │ │ │ └── get-balance.test.ts │ │ ├── transactionManager │ │ │ ├── accountTransactionManager.test.ts │ │ │ ├── appTransactionManager.test.ts │ │ │ ├── assetTransactionManager.test.ts │ │ │ ├── generalTransactionManager.test.ts │ │ │ └── transactionManager.test.ts │ │ └── utilityManager.test.ts │ └── tsconfig.json ├── README.md ├── rename_files.sh └── tsconfig.json ``` # Files -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy-categories/puya.json: -------------------------------------------------------------------------------- ```json { "name": "Puya", "description": "Python-based language for writing Algorand smart contracts", "path": "puya", "documents": [ {"name": "README", "path": "puya:README.md"} ], "subcategories": { "docs": { "name": "Documentation", "description": "Puya documentation", "path": "puya:docs", "documents": [ {"name": "Index", "path": "puya:docs:index.md"}, {"name": "API", "path": "puya:docs:api.md"}, {"name": "API - AlgoPy", "path": "puya:docs:api-algopy.md"}, {"name": "API - AlgoPy ARC4", "path": "puya:docs:api-algopy.arc4.md"}, {"name": "API - AlgoPy Group Transactions", "path": "puya:docs:api-algopy.gtxn.md"}, {"name": "API - AlgoPy Inner Transactions", "path": "puya:docs:api-algopy.itxn.md"}, {"name": "API - AlgoPy Operations", "path": "puya:docs:api-algopy.op.md"}, {"name": "Compiler", "path": "puya:docs:compiler.md"}, {"name": "Language Guide", "path": "puya:docs:language-guide.md"}, {"name": "Principles", "path": "puya:docs:principles.md"}, {"name": "Language Guide - ARC-4", "path": "puya:docs:lg-arc4.md"}, {"name": "Language Guide - ARC-28", "path": "puya:docs:lg-arc28.md"}, {"name": "Language Guide - Builtins", "path": "puya:docs:lg-builtins.md"}, {"name": "Language Guide - Calling Apps", "path": "puya:docs:lg-calling-apps.md"}, {"name": "Language Guide - Compilation", "path": "puya:docs:lg-compile.md"}, {"name": "Language Guide - Control Flow", "path": "puya:docs:lg-control.md"}, {"name": "Language Guide - Errors", "path": "puya:docs:lg-errors.md"}, {"name": "Language Guide - Logs", "path": "puya:docs:lg-logs.md"}, {"name": "Language Guide - Modules", "path": "puya:docs:lg-modules.md"}, {"name": "Language Guide - Opcode Budget", "path": "puya:docs:lg-opcode-budget.md"}, {"name": "Language Guide - Operations", "path": "puya:docs:lg-ops.md"}, {"name": "Language Guide - Storage", "path": "puya:docs:lg-storage.md"}, {"name": "Language Guide - Structure", "path": "puya:docs:lg-structure.md"}, {"name": "Language Guide - Transactions", "path": "puya:docs:lg-transactions.md"}, {"name": "Language Guide - Types", "path": "puya:docs:lg-types.md"}, {"name": "Language Guide - Unsupported Python Features", "path": "puya:docs:lg-unsupported-python-features.md"}, {"name": "Testing Guide", "path": "puya:docs:algopy_testing:index.md"} ] }, "examples": { "name": "Examples", "description": "Example Puya contracts", "path": "puya:examples", "documents": [ {"name": "Auction", "path": "puya:examples:auction:README.md"} ] }, "architecture": { "name": "Architecture", "description": "Puya architecture documentation", "path": "puya:src:puya", "documents": [ {"name": "Architecture", "path": "puya:src:puya:ARCHITECTURE.md"} ] }, "stubs": { "name": "Stubs", "description": "Type stubs documentation", "path": "puya:stubs", "documents": [ {"name": "README", "path": "puya:stubs:README.md"} ] }, "tests": { "name": "Tests", "description": "Test package documentation", "path": "puya:tests", "documents": [ {"name": "Test Expected Output", "path": "puya:tests:test_expected_output:README.md"} ] } } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.AccountAssetResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / AccountAssetResponse # Class: AccountAssetResponse [modelsv2](../modules/modelsv2.md).AccountAssetResponse AccountAssetResponse describes the account's asset holding and asset parameters (if either exist) for a specific asset ID. Asset parameters will only be returned if the provided address is the asset's creator. ## Hierarchy - `default` ↳ **`AccountAssetResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.AccountAssetResponse.md#constructor) ### Properties - [assetHolding](modelsv2.AccountAssetResponse.md#assetholding) - [attribute\_map](modelsv2.AccountAssetResponse.md#attribute_map) - [createdAsset](modelsv2.AccountAssetResponse.md#createdasset) - [round](modelsv2.AccountAssetResponse.md#round) ### Methods - [get\_obj\_for\_encoding](modelsv2.AccountAssetResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.AccountAssetResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new AccountAssetResponse**(`«destructured»`) Creates a new `AccountAssetResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `assetHolding?` | [`AssetHolding`](modelsv2.AssetHolding.md) | | › `createdAsset?` | [`AssetParams`](modelsv2.AssetParams.md) | | › `round` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:614 ## Properties ### assetHolding • `Optional` **assetHolding**: [`AssetHolding`](modelsv2.AssetHolding.md) (asset) Details about the asset held by this account. The raw account uses `AssetHolding` for this type. #### Defined in client/v2/algod/models/types.ts:598 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### createdAsset • `Optional` **createdAsset**: [`AssetParams`](modelsv2.AssetParams.md) (apar) parameters of the asset created by this account. The raw account uses `AssetParams` for this type. #### Defined in client/v2/algod/models/types.ts:604 ___ ### round • **round**: `number` \| `bigint` The round for which this information is relevant. #### Defined in client/v2/algod/models/types.ts:592 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`AccountAssetResponse`](modelsv2.AccountAssetResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AccountAssetResponse`](modelsv2.AccountAssetResponse.md) #### Defined in client/v2/algod/models/types.ts:636 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/ARCs:specs:arc-0005.md: -------------------------------------------------------------------------------- ```markdown --- arc: 5 title: Wallet Transaction Signing API (Functional) description: An API for a function used to sign a list of transactions. author: DanBurton (@DanBurton) discussions-to: https://github.com/algorandfoundation/ARCs/issues/52 status: Final type: Standards Track category: Interface sub-category: Wallet created: 2021-08-09 --- # Algorand Wallet Transaction Signing API (Functionality Only) > This ARC is intended to be completely compatible with [ARC-1](./arc-0001.md). ## Abstract ARC-1 defines a standard for signing transactions with security in mind. This proposal is a strict subset of ARC-1 that outlines only the minimum functionality required in order to be useable. Wallets that conform to ARC-1 already conform to this API. Wallets conforming to [ARC-5](./arc-0005.md) but not ARC-1 **MUST** only be used for testing purposes and **MUST NOT** used on MainNet. This is because this ARC-5 does not provide the same security guarantees as ARC-1 to protect properly wallet users. ## Specification The key words "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**", "**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**" in this document are to be interpreted as described in <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC-2119</a>. > Comments like this are non-normative. ### Interface `SignTxnsFunction` Signatures are requested by calling a function `signTxns(txns)` on a list `txns` of transactions. The dApp may also provide an optional parameter `opts`. A wallet transaction signing function `signTxns` is defined by the following interface: ```ts export type SignTxnsFunction = ( txns: WalletTransaction[], opts?: SignTxnsOpts, ) => Promise<(SignedTxnStr | null)[]>; ``` * `SignTxnsOpts` is as specified by [ARC-1](./arc-0001.md#interface-signtxnsopts). * `SignedTxnStr` is as specified by [ARC-1](./arc-0001.md#interface-signedtxnstr). A `SignTxnsFunction`: * expects `txns` to be in the correct format as specified by `WalletTransaction`. ### Interface `WalletTransaction` ```ts export interface WalletTransaction { /** * Base64 encoding of the canonical msgpack encoding of a Transaction. */ txn: string; } ``` ### Semantic requirements * The call `signTxns(txns, opts)` **MUST** either throw an error or return an array `ret` of the same length as the `txns` array. * Each element of `ret` **MUST** be a valid `SignedTxnStr` with the underlying transaction exactly matching `txns[i].txn`. This ARC uses interchangeably the terms "throw an error" and "reject a promise with an error". `signTxns` **SHOULD** follow the error standard specified in [ARC-0001](./arc-0001.md#error-standards). ### UI requirements Wallets satisfying this ARC but not [ARC-0001](./arc-0001.md) **MUST** clearly display a warning to the user that they **MUST** not be used with real funds on MainNet. ## Rationale This simplified version of ARC-0001 exists for two main reasons: 1. To outline the minimum amount of functionality needed in order to be useful. 2. To serve as a stepping stone towards full ARC-0001 compatibility. While this ARC **MUST** not be used by users with real funds on MainNet for security reasons, this simplified API sets a lower bar and acts as a signpost for which wallets can even be used at all. ## Security Considerations None. ## Copyright Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CCO</a>. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/tealscript:tutorials_Hello World_0004-artifacts.md: -------------------------------------------------------------------------------- ```markdown --- title: "4. Compilation Artifacts" --- ## Compiling To compile the `hello_world.algo.ts`, simply run `npm run build`. This will generate some artifacts under the `contracts/artifacts` directory ## TEALScript Artifacts The `contracts/` directory will now look like the following. While you won't need to directly interact with most of these files, it's get to get a general understanding of what they do. Below are all the files generated by TEALScript. ``` contracts ├── artifacts │ ├── HelloWorld.abi.json │ ├── HelloWorld.approval.teal │ ├── HelloWorld.clear.teal │ ├── HelloWorld.json │ ├── HelloWorld.src_map.json │ └── components ├── clients │ └── HelloWorldClient.ts └── hello_world.algo.ts ``` ### artifacts/HelloWorld.abi.json This is the ABI JSON description. In short, this file helps clients know what methods are availible and how to call them. You might also see that there are descriptions for our method and arguments. These descriptions were generated auotomatically via the TypeDoc comment. This means writing documentation for your contract methods not only helps you in your IDE, but it also helps potential callers of your contract understand how they should call it. ### artifacts/HelloWorld.approval.teal This file is the low-level source code of our contract that is ultimately given to a node when deploying the contract. This file contains TEAL, which is a low-level language native to the Algorand blockchain. Luckily, you will not need to work with TEAL directly too often, but it's worthwhile to take a look at it to get a basic idea of how it works. Sometimes when debugging, you will need to look at the TEAL to truly understand what is happening. This file represents what we call the `approval program`, which is the code that executes when the contract is normally called. ### artifacts/HelloWorld.clear.teal On Algorand, contracts actually have two pieces of source code. The `approval program` and the `clear program`. The `clear program` is only called when a user wants to clear their state from the contract. If that sounds distressing, don't worry, this tutorial will go more in depth about how this works and ways to control what can and can't be deleted. ### artifacts/HelloWorld.json This is the applicaiton spec for our contract. Think of this file like an enhanced ABI file. It includes all of the information in the ABI JSON description while also providing even more information for clients, such as source code, state encoding, etc. ## Algokit Generated Client ### clients/HelloWorldClien.ts This is a client that was automatically generated by Algokit. If you look at what happens when `npm run build` runs, there are two commands: 1. `tealscript contracts/hello_world.algo.ts contracts/artifacts` 2. `algokitgen generate -a contracts/artifacts/HelloWorld.json -o contracts/clients/HelloWorldClient.ts` The first one is passing the contract to the TEALScript compiler and generated the aforementioned artifacts. The second one is passing our appspec, `HelloWorld.json`, to algokit which then outputs an auto-generated client. This generated client is a TypeScript file that exports a class that can be used to interact with our contract. This client includes not only all of the public methods, but also things like contract state. This client means we don't need to manually write boilerplate code for connecting our contract to our client which will be shown in the next step of this tutorial. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:python:testing:README.md: -------------------------------------------------------------------------------- ```markdown <div align="center"> <a href="https://github.com/algorandfoundation/algorand-python-testing"><img src="https://bafybeiaibjaf6zy6hvef2rrysaacsfsyb3hw4qqtgn657gw7k5tdzqdxzi.ipfs.nftstorage.link/" width=60%></a> </div> <p align="center"> <a target="_blank" href="https://algorandfoundation.github.io/algorand-python-testing/"><img src="https://img.shields.io/badge/docs-repository-74dfdc?logo=github&style=flat.svg" /></a> <a target="_blank" href="https://developer.algorand.org/algokit/"><img src="https://img.shields.io/badge/learn-AlgoKit-74dfdc?logo=algorand&mac=flat.svg" /></a> <a target="_blank" href="https://github.com/algorandfoundation/algorand-python-testing"><img src="https://img.shields.io/github/stars/algorandfoundation/algorand-python-testing?color=74dfdc&logo=star&style=flat" /></a> <a target="_blank" href="https://developer.algorand.org/algokit/"><img src="https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Falgorandfoundation%2Falgorand-python-testing&countColor=%2374dfdc&style=flat" /></a> </p> --- Algorand Python Testing is a companion package to [Algorand Python](https://github.com/algorandfoundation/puya) that enables efficient unit testing of Algorand Python smart contracts in an offline environment. It emulates key AVM behaviors without requiring a network connection, offering fast and reliable testing capabilities with a familiar Pythonic interface. [Documentation](https://algorandfoundation.github.io/algorand-python-testing/) | [Algorand Python Documentation](https://algorandfoundation.github.io/puya/) ## Quick start The easiest way to use Algorand Python Testing is to instantiate a template with AlgoKit via `algokit init -t python`. This will give you a full development environment with testing capabilities built-in. Alternatively, if you want to start from scratch: 1. Ensure you have Python 3.12+ 2. Install [AlgoKit CLI](https://github.com/algorandfoundation/algokit-cli?tab=readme-ov-file#install) 3. Install Algorand Python Testing into your project: ```bash pip install algorand-python-testing ``` 4. Create a test file (e.g., `test_contract.py`): ```python from algopy_testing import algopy_testing_context from your_contract import YourContract def test_your_contract(): with algopy_testing_context() as context: # Arrange contract = YourContract() expected_result = ... # Your expected result here # Act result = contract.your_method(context.any.uint64()) # Your test code here # Assert assert result == expected_result ``` 5. Run your tests using your preferred Python testing framework (e.g., pytest, unittest) For more detailed information, check out the [full documentation](https://algorandfoundation.github.io/algorand-python-testing/). ## Features - Offline testing environment simulating core AVM functionality - Compatible with popular Python testing frameworks - Supports testing of ARC4 contracts, smart signatures, and more - Provides tools for mocking blockchain state and transactions ## Examples For detailed examples showcasing various testing scenarios, refer to the [examples section](https://algorandfoundation.github.io/algorand-python-testing/examples.html) in the documentation. ## Contributing We welcome contributions to this project! Please read our [contributing guide](CONTRIBUTING.md) to get started. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallABIArgs.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / AppClientCallABIArgs # Interface: AppClientCallABIArgs [types/app-client](../modules/types_app_client.md).AppClientCallABIArgs ## Hierarchy - `Omit`\<[`ABIAppCallArgs`](../modules/types_app.md#abiappcallargs), ``"method"``\> ↳ **`AppClientCallABIArgs`** ## Table of contents ### Properties - [accounts](types_app_client.AppClientCallABIArgs.md#accounts) - [apps](types_app_client.AppClientCallABIArgs.md#apps) - [assets](types_app_client.AppClientCallABIArgs.md#assets) - [boxes](types_app_client.AppClientCallABIArgs.md#boxes) - [lease](types_app_client.AppClientCallABIArgs.md#lease) - [method](types_app_client.AppClientCallABIArgs.md#method) - [methodArgs](types_app_client.AppClientCallABIArgs.md#methodargs) - [rekeyTo](types_app_client.AppClientCallABIArgs.md#rekeyto) ## Properties ### accounts • `Optional` **accounts**: (`string` \| `Address`)[] The address of any accounts to load in #### Inherited from Omit.accounts #### Defined in [src/types/app.ts:79](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L79) ___ ### apps • `Optional` **apps**: `number`[] IDs of any apps to load into the foreignApps array #### Inherited from Omit.apps #### Defined in [src/types/app.ts:81](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L81) ___ ### assets • `Optional` **assets**: `number`[] IDs of any assets to load into the foreignAssets array #### Inherited from Omit.assets #### Defined in [src/types/app.ts:83](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L83) ___ ### boxes • `Optional` **boxes**: ([`BoxReference`](types_app.BoxReference.md) \| [`BoxIdentifier`](../modules/types_app.md#boxidentifier) \| `BoxReference`)[] Any box references to load #### Inherited from Omit.boxes #### Defined in [src/types/app.ts:77](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L77) ___ ### lease • `Optional` **lease**: `string` \| `Uint8Array` The optional lease for the transaction #### Inherited from Omit.lease #### Defined in [src/types/app.ts:75](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L75) ___ ### method • **method**: `string` If calling an ABI method then either the name of the method, or the ABI signature #### Defined in [src/types/app-client.ts:201](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L201) ___ ### methodArgs • **methodArgs**: [`ABIAppCallArg`](../modules/types_app.md#abiappcallarg)[] The ABI method args to pass in #### Inherited from Omit.methodArgs #### Defined in [src/types/app.ts:117](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L117) ___ ### rekeyTo • `Optional` **rekeyTo**: `string` \| [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom) Optional account / account address that should be authorised to transact on behalf of the from account the app call is sent from after this transaction. **Note:** Use with extreme caution and review the [official rekey guidance](https://developer.algorand.org/docs/get-details/accounts/rekey/) first. #### Inherited from Omit.rekeyTo #### Defined in [src/types/app.ts:88](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app.ts#L88) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionSignature.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionSignature # Class: TransactionSignature [indexerModels](../modules/indexerModels.md).TransactionSignature Validation signature associated with some data. Only one of the signatures should be provided. ## Hierarchy - `default` ↳ **`TransactionSignature`** ## Table of contents ### Constructors - [constructor](indexerModels.TransactionSignature.md#constructor) ### Properties - [attribute\_map](indexerModels.TransactionSignature.md#attribute_map) - [logicsig](indexerModels.TransactionSignature.md#logicsig) - [multisig](indexerModels.TransactionSignature.md#multisig) - [sig](indexerModels.TransactionSignature.md#sig) ### Methods - [get\_obj\_for\_encoding](indexerModels.TransactionSignature.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.TransactionSignature.md#from_obj_for_encoding) ## Constructors ### constructor • **new TransactionSignature**(`«destructured»`) Creates a new `TransactionSignature` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `logicsig?` | [`TransactionSignatureLogicsig`](indexerModels.TransactionSignatureLogicsig.md) | | › `multisig?` | [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) | | › `sig?` | `string` \| `Uint8Array` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:5388 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### logicsig • `Optional` **logicsig**: [`TransactionSignatureLogicsig`](indexerModels.TransactionSignatureLogicsig.md) (lsig) Programatic transaction signature. Definition: data/transactions/logicsig.go #### Defined in client/v2/indexer/models/types.ts:5364 ___ ### multisig • `Optional` **multisig**: [`TransactionSignatureMultisig`](indexerModels.TransactionSignatureMultisig.md) (msig) structure holding multiple subsignatures. Definition: crypto/multisig.go : MultisigSig #### Defined in client/v2/indexer/models/types.ts:5371 ___ ### sig • `Optional` **sig**: `Uint8Array` (sig) Standard ed25519 signature. #### Defined in client/v2/indexer/models/types.ts:5376 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionSignature`](indexerModels.TransactionSignature.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TransactionSignature`](indexerModels.TransactionSignature.md) #### Defined in client/v2/indexer/models/types.ts:5413 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionStateProof.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionStateProof # Class: TransactionStateProof [indexerModels](../modules/indexerModels.md).TransactionStateProof Fields for a state proof transaction. Definition: data/transactions/stateproof.go : StateProofTxnFields ## Hierarchy - `default` ↳ **`TransactionStateProof`** ## Table of contents ### Constructors - [constructor](indexerModels.TransactionStateProof.md#constructor) ### Properties - [attribute\_map](indexerModels.TransactionStateProof.md#attribute_map) - [message](indexerModels.TransactionStateProof.md#message) - [stateProof](indexerModels.TransactionStateProof.md#stateproof) - [stateProofType](indexerModels.TransactionStateProof.md#stateprooftype) ### Methods - [get\_obj\_for\_encoding](indexerModels.TransactionStateProof.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.TransactionStateProof.md#from_obj_for_encoding) ## Constructors ### constructor • **new TransactionStateProof**(`«destructured»`) Creates a new `TransactionStateProof` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `message?` | [`IndexerStateProofMessage`](indexerModels.IndexerStateProofMessage.md) | | › `stateProof?` | [`StateProofFields`](indexerModels.StateProofFields.md) | | › `stateProofType?` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:5676 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### message • `Optional` **message**: [`IndexerStateProofMessage`](indexerModels.IndexerStateProofMessage.md) (spmsg) #### Defined in client/v2/indexer/models/types.ts:5652 ___ ### stateProof • `Optional` **stateProof**: [`StateProofFields`](indexerModels.StateProofFields.md) (sp) represents a state proof. Definition: crypto/stateproof/structs.go : StateProof #### Defined in client/v2/indexer/models/types.ts:5659 ___ ### stateProofType • `Optional` **stateProofType**: `number` \| `bigint` (sptype) Type of the state proof. Integer representing an entry defined in protocol/stateproof.go #### Defined in client/v2/indexer/models/types.ts:5665 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionStateProof`](indexerModels.TransactionStateProof.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TransactionStateProof`](indexerModels.TransactionStateProof.md) #### Defined in client/v2/indexer/models/types.ts:5698 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.ApplicationLogsResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / ApplicationLogsResponse # Class: ApplicationLogsResponse [indexerModels](../modules/indexerModels.md).ApplicationLogsResponse ## Hierarchy - `default` ↳ **`ApplicationLogsResponse`** ## Table of contents ### Constructors - [constructor](indexerModels.ApplicationLogsResponse.md#constructor) ### Properties - [applicationId](indexerModels.ApplicationLogsResponse.md#applicationid) - [attribute\_map](indexerModels.ApplicationLogsResponse.md#attribute_map) - [currentRound](indexerModels.ApplicationLogsResponse.md#currentround) - [logData](indexerModels.ApplicationLogsResponse.md#logdata) - [nextToken](indexerModels.ApplicationLogsResponse.md#nexttoken) ### Methods - [get\_obj\_for\_encoding](indexerModels.ApplicationLogsResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.ApplicationLogsResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationLogsResponse**(`«destructured»`) Creates a new `ApplicationLogsResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `applicationId` | `number` \| `bigint` | | › `currentRound` | `number` \| `bigint` | | › `logData?` | [`ApplicationLogData`](indexerModels.ApplicationLogData.md)[] | | › `nextToken?` | `string` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:1111 ## Properties ### applicationId • **applicationId**: `number` \| `bigint` (appidx) application index. #### Defined in client/v2/indexer/models/types.ts:1088 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### currentRound • **currentRound**: `number` \| `bigint` Round at which the results were computed. #### Defined in client/v2/indexer/models/types.ts:1093 ___ ### logData • `Optional` **logData**: [`ApplicationLogData`](indexerModels.ApplicationLogData.md)[] #### Defined in client/v2/indexer/models/types.ts:1095 ___ ### nextToken • `Optional` **nextToken**: `string` Used for pagination, when making another request provide this token with the next parameter. #### Defined in client/v2/indexer/models/types.ts:1101 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`ApplicationLogsResponse`](indexerModels.ApplicationLogsResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationLogsResponse`](indexerModels.ApplicationLogsResponse.md) #### Defined in client/v2/indexer/models/types.ts:1137 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.Application.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / Application # Class: Application [indexerModels](../modules/indexerModels.md).Application Application index and its parameters ## Hierarchy - `default` ↳ **`Application`** ## Table of contents ### Constructors - [constructor](indexerModels.Application.md#constructor) ### Properties - [attribute\_map](indexerModels.Application.md#attribute_map) - [createdAtRound](indexerModels.Application.md#createdatround) - [deleted](indexerModels.Application.md#deleted) - [deletedAtRound](indexerModels.Application.md#deletedatround) - [id](indexerModels.Application.md#id) - [params](indexerModels.Application.md#params) ### Methods - [get\_obj\_for\_encoding](indexerModels.Application.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.Application.md#from_obj_for_encoding) ## Constructors ### constructor • **new Application**(`«destructured»`) Creates a new `Application` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `createdAtRound?` | `number` \| `bigint` | | › `deleted?` | `boolean` | | › `deletedAtRound?` | `number` \| `bigint` | | › `id` | `number` \| `bigint` | | › `params` | [`ApplicationParams`](indexerModels.ApplicationParams.md) | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:816 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### createdAtRound • `Optional` **createdAtRound**: `number` \| `bigint` Round when this application was created. #### Defined in client/v2/indexer/models/types.ts:796 ___ ### deleted • `Optional` **deleted**: `boolean` Whether or not this application is currently deleted. #### Defined in client/v2/indexer/models/types.ts:801 ___ ### deletedAtRound • `Optional` **deletedAtRound**: `number` \| `bigint` Round when this application was deleted. #### Defined in client/v2/indexer/models/types.ts:806 ___ ### id • **id**: `number` \| `bigint` application index. #### Defined in client/v2/indexer/models/types.ts:786 ___ ### params • **params**: [`ApplicationParams`](indexerModels.ApplicationParams.md) application parameters. #### Defined in client/v2/indexer/models/types.ts:791 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`Application`](indexerModels.Application.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`Application`](indexerModels.Application.md) #### Defined in client/v2/indexer/models/types.ts:846 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCoreParams.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / AppClientDeployCoreParams # Interface: AppClientDeployCoreParams [types/app-client](../modules/types_app_client.md).AppClientDeployCoreParams Core parameters to pass into ApplicationClient.deploy ## Hierarchy - **`AppClientDeployCoreParams`** ↳ [`AppClientDeployParams`](types_app_client.AppClientDeployParams.md) ## Table of contents ### Properties - [allowDelete](types_app_client.AppClientDeployCoreParams.md#allowdelete) - [allowUpdate](types_app_client.AppClientDeployCoreParams.md#allowupdate) - [onSchemaBreak](types_app_client.AppClientDeployCoreParams.md#onschemabreak) - [onUpdate](types_app_client.AppClientDeployCoreParams.md#onupdate) - [sendParams](types_app_client.AppClientDeployCoreParams.md#sendparams) - [sender](types_app_client.AppClientDeployCoreParams.md#sender) - [version](types_app_client.AppClientDeployCoreParams.md#version) ## Properties ### allowDelete • `Optional` **allowDelete**: `boolean` Whether or not to allow deletes in the contract using the deploy-time deletability control if present in your contract. If this is not specified then it will automatically be determined based on the AppSpec definition #### Defined in [src/types/app-client.ts:170](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L170) ___ ### allowUpdate • `Optional` **allowUpdate**: `boolean` Whether or not to allow updates in the contract using the deploy-time updatability control if present in your contract. If this is not specified then it will automatically be determined based on the AppSpec definition #### Defined in [src/types/app-client.ts:166](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L166) ___ ### onSchemaBreak • `Optional` **onSchemaBreak**: [`OnSchemaBreak`](../enums/types_app.OnSchemaBreak.md) \| ``"replace"`` \| ``"fail"`` \| ``"append"`` What action to perform if a schema break is detected #### Defined in [src/types/app-client.ts:172](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L172) ___ ### onUpdate • `Optional` **onUpdate**: ``"replace"`` \| ``"fail"`` \| ``"append"`` \| [`OnUpdate`](../enums/types_app.OnUpdate.md) \| ``"update"`` What action to perform if a TEAL update is detected #### Defined in [src/types/app-client.ts:174](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L174) ___ ### sendParams • `Optional` **sendParams**: `Omit`\<[`SendTransactionParams`](types_transaction.SendTransactionParams.md), ``"skipSending"`` \| ``"skipWaiting"``\> Parameters to control transaction sending #### Defined in [src/types/app-client.ts:162](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L162) ___ ### sender • `Optional` **sender**: [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom) The optional sender to send the transaction from, will use the application client's default sender by default if specified #### Defined in [src/types/app-client.ts:160](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L160) ___ ### version • `Optional` **version**: `string` The version of the contract, uses "1.0" by default #### Defined in [src/types/app-client.ts:158](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L158) ``` -------------------------------------------------------------------------------- /packages/server/tests/resources/algod/asset.test.ts: -------------------------------------------------------------------------------- ```typescript import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; import { assetResources, assetResourceSchemas, getAssetByID, handleAssetResources } from '../../../src/resources/algod/asset.js'; import { algodClient } from '../../../src/algorand-client.js'; // Mock algosdk client jest.mock('../../../src/algorand-client.js', () => ({ algodClient: { getAssetByID: jest.fn() }, API_URIS: { ASSET_INFO: 'algorand://asset/{asset-id}/info' } })); describe('Algod Asset Resources', () => { beforeEach(() => { jest.clearAllMocks(); }); describe('Resource Definitions', () => { it('should define asset resources', () => { expect(assetResources).toHaveLength(1); expect(assetResources[0].name).toBe('Asset Info'); }); it('should define resource schemas', () => { expect(Object.keys(assetResourceSchemas)).toHaveLength(1); expect(assetResourceSchemas).toHaveProperty('algorand://asset/{asset-id}/info'); }); }); describe('Asset Information', () => { const mockAssetId = 123; const mockResponse = { asset: { index: mockAssetId, params: { creator: 'MOCK_ADDRESS', name: 'Test Asset', unitName: 'TEST', total: 1000000, decimals: 6 } }, currentRound: 1234 }; beforeEach(() => { (algodClient.getAssetByID as jest.Mock).mockReturnValue({ do: jest.fn().mockResolvedValue(mockResponse) }); }); it('should fetch asset information', async () => { const result = await getAssetByID(mockAssetId); expect(result).toEqual(mockResponse); expect(algodClient.getAssetByID).toHaveBeenCalledWith(mockAssetId); }); it('should handle errors', async () => { const error = new Error('Network error'); (algodClient.getAssetByID as jest.Mock).mockReturnValue({ do: jest.fn().mockRejectedValue(error) }); await expect(getAssetByID(mockAssetId)) .rejects .toThrow('Failed to get asset info: Network error'); }); }); describe('Resource Handler', () => { const mockAssetId = 123; const mockResponse = { asset: { index: mockAssetId, params: { creator: 'MOCK_ADDRESS', name: 'Test Asset' } }, currentRound: 1234 }; beforeEach(() => { (algodClient.getAssetByID as jest.Mock).mockReturnValue({ do: jest.fn().mockResolvedValue(mockResponse) }); }); it('should handle asset info URI', async () => { const uri = `algorand://asset/${mockAssetId}/info`; const result = await handleAssetResources(uri); expect(result).toHaveLength(1); expect(JSON.parse(result[0].text)).toEqual({ asset: mockResponse.asset, currentRound: mockResponse.currentRound }); }); it('should return empty array for unknown URI', async () => { const uri = 'algorand://unknown'; const result = await handleAssetResources(uri); expect(result).toHaveLength(0); }); it('should handle errors with McpError', async () => { const error = new Error('Network error'); (algodClient.getAssetByID as jest.Mock).mockReturnValue({ do: jest.fn().mockRejectedValue(error) }); const uri = `algorand://asset/${mockAssetId}/info`; await expect(handleAssetResources(uri)) .rejects .toThrow(new McpError(ErrorCode.InternalError, 'Network error')); }); }); }); ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy-categories/tealscript.json: -------------------------------------------------------------------------------- ```json { "name": "tealscript", "description": "TypeScript-like language for writing Algorand smart contracts", "path": "tealscript", "documents": [ {"name": "README", "path": "tealscript:README.md"}, {"name": "Features", "path": "tealscript:FEATURES.md"} ], "subcategories": { "guides": { "name": "Guides", "description": "tealscript development guides", "path": "tealscript:guides", "documents": [ {"name": "Getting Started", "path": "tealscript:guides:getting_started.md"}, {"name": "Atomic Transactions", "path": "tealscript:guides:atomic_txn.md"}, {"name": "Features", "path": "tealscript:guides:features.md"}, {"name": "Inner Transactions", "path": "tealscript:guides:inner_transactions.md"}, {"name": "Lifecycle", "path": "tealscript:guides:lifecycle.md"}, {"name": "Math", "path": "tealscript:guides:math.md"}, {"name": "Methods", "path": "tealscript:guides:methods.md"}, {"name": "Multiple Contracts", "path": "tealscript:guides:multiple_contracts.md"}, {"name": "PyTeal Comparison", "path": "tealscript:guides:pyteal.md"}, {"name": "Storage", "path": "tealscript:guides:storage.md"} ], "subcategories": { "types": { "name": "Supported Types", "description": "Documentation for supported data types", "path": "tealscript:guides:Supported Types", "documents": [ {"name": "Arrays", "path": "tealscript:guides:Supported Types:arrays.md"}, {"name": "Numbers", "path": "tealscript:guides:Supported Types:numbers.md"} ] } } }, "tutorials": { "name": "Tutorials", "description": "Step-by-step tutorials", "path": "tealscript:tutorials", "subcategories": { "hello-world": { "name": "Hello World", "description": "Getting started with tealscript", "path": "tealscript:tutorials:Hello World", "documents": [ {"name": "Introduction", "path": "tealscript:tutorials:Hello World:0001-intro.md"}, {"name": "Project Setup", "path": "tealscript:tutorials:Hello World:0002-init.md"}, {"name": "Writing Contract", "path": "tealscript:tutorials:Hello World:0003-contract.md"}, {"name": "Building Artifacts", "path": "tealscript:tutorials:Hello World:0004-artifacts.md"}, {"name": "Hello Contract", "path": "tealscript:tutorials:Hello World:0005-hello.md"}, {"name": "Testing", "path": "tealscript:tutorials:Hello World:0006-test.md"} ] } } }, "examples": { "name": "Examples", "description": "Example tealscript contracts", "path": "tealscript:examples", "documents": [ {"name": "AMM", "path": "tealscript:examples:amm:README.md"}, {"name": "Auction", "path": "tealscript:examples:auction:README.md"}, {"name": "Big Box", "path": "tealscript:examples:big_box:README.md"}, {"name": "Inner Transactions", "path": "tealscript:examples:itxns:README.md"}, {"name": "LogicSig with App", "path": "tealscript:examples:lsig_with_app:README.md"}, {"name": "RETI", "path": "tealscript:examples:reti:README.md"} ] }, "tests": { "name": "Tests", "description": "Test package documentation", "path": "tealscript:tests", "documents": [ {"name": "Test Package", "path": "tealscript:tests:test_package:README.md"} ] } } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.SimulateTraceConfig.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / SimulateTraceConfig # Class: SimulateTraceConfig [modelsv2](../modules/modelsv2.md).SimulateTraceConfig An object that configures simulation execution trace. ## Hierarchy - `default` ↳ **`SimulateTraceConfig`** ## Table of contents ### Constructors - [constructor](modelsv2.SimulateTraceConfig.md#constructor) ### Properties - [attribute\_map](modelsv2.SimulateTraceConfig.md#attribute_map) - [enable](modelsv2.SimulateTraceConfig.md#enable) - [scratchChange](modelsv2.SimulateTraceConfig.md#scratchchange) - [stackChange](modelsv2.SimulateTraceConfig.md#stackchange) - [stateChange](modelsv2.SimulateTraceConfig.md#statechange) ### Methods - [get\_obj\_for\_encoding](modelsv2.SimulateTraceConfig.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.SimulateTraceConfig.md#from_obj_for_encoding) ## Constructors ### constructor • **new SimulateTraceConfig**(`«destructured»`) Creates a new `SimulateTraceConfig` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `enable?` | `boolean` | | › `scratchChange?` | `boolean` | | › `stackChange?` | `boolean` | | › `stateChange?` | `boolean` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:4579 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### enable • `Optional` **enable**: `boolean` A boolean option for opting in execution trace features simulation endpoint. #### Defined in client/v2/algod/models/types.ts:4549 ___ ### scratchChange • `Optional` **scratchChange**: `boolean` A boolean option enabling returning scratch slot changes together with execution trace during simulation. #### Defined in client/v2/algod/models/types.ts:4555 ___ ### stackChange • `Optional` **stackChange**: `boolean` A boolean option enabling returning stack changes together with execution trace during simulation. #### Defined in client/v2/algod/models/types.ts:4561 ___ ### stateChange • `Optional` **stateChange**: `boolean` A boolean option enabling returning application state changes (global, local, and box changes) with the execution trace during simulation. #### Defined in client/v2/algod/models/types.ts:4567 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`SimulateTraceConfig`](modelsv2.SimulateTraceConfig.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`SimulateTraceConfig`](modelsv2.SimulateTraceConfig.md) #### Defined in client/v2/algod/models/types.ts:4605 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TransactionPayment.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TransactionPayment # Class: TransactionPayment [indexerModels](../modules/indexerModels.md).TransactionPayment Fields for a payment transaction. Definition: data/transactions/payment.go : PaymentTxnFields ## Hierarchy - `default` ↳ **`TransactionPayment`** ## Table of contents ### Constructors - [constructor](indexerModels.TransactionPayment.md#constructor) ### Properties - [amount](indexerModels.TransactionPayment.md#amount) - [attribute\_map](indexerModels.TransactionPayment.md#attribute_map) - [closeAmount](indexerModels.TransactionPayment.md#closeamount) - [closeRemainderTo](indexerModels.TransactionPayment.md#closeremainderto) - [receiver](indexerModels.TransactionPayment.md#receiver) ### Methods - [get\_obj\_for\_encoding](indexerModels.TransactionPayment.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.TransactionPayment.md#from_obj_for_encoding) ## Constructors ### constructor • **new TransactionPayment**(`«destructured»`) Creates a new `TransactionPayment` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `amount` | `number` \| `bigint` | | › `closeAmount?` | `number` \| `bigint` | | › `closeRemainderTo?` | `string` | | › `receiver` | `string` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:5249 ## Properties ### amount • **amount**: `number` \| `bigint` (amt) number of MicroAlgos intended to be transferred. #### Defined in client/v2/indexer/models/types.ts:5221 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### closeAmount • `Optional` **closeAmount**: `number` \| `bigint` Number of MicroAlgos that were sent to the close-remainder-to address when closing the sender account. #### Defined in client/v2/indexer/models/types.ts:5232 ___ ### closeRemainderTo • `Optional` **closeRemainderTo**: `string` (close) when set, indicates that the sending account should be closed and all remaining funds be transferred to this address. #### Defined in client/v2/indexer/models/types.ts:5238 ___ ### receiver • **receiver**: `string` (rcv) receiver's address. #### Defined in client/v2/indexer/models/types.ts:5226 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionPayment`](indexerModels.TransactionPayment.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TransactionPayment`](indexerModels.TransactionPayment.md) #### Defined in client/v2/indexer/models/types.ts:5275 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.StateProofTracking.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / StateProofTracking # Class: StateProofTracking [indexerModels](../modules/indexerModels.md).StateProofTracking ## Hierarchy - `default` ↳ **`StateProofTracking`** ## Table of contents ### Constructors - [constructor](indexerModels.StateProofTracking.md#constructor) ### Properties - [attribute\_map](indexerModels.StateProofTracking.md#attribute_map) - [nextRound](indexerModels.StateProofTracking.md#nextround) - [onlineTotalWeight](indexerModels.StateProofTracking.md#onlinetotalweight) - [type](indexerModels.StateProofTracking.md#type) - [votersCommitment](indexerModels.StateProofTracking.md#voterscommitment) ### Methods - [get\_obj\_for\_encoding](indexerModels.StateProofTracking.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.StateProofTracking.md#from_obj_for_encoding) ## Constructors ### constructor • **new StateProofTracking**(`«destructured»`) Creates a new `StateProofTracking` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `nextRound?` | `number` \| `bigint` | | › `onlineTotalWeight?` | `number` \| `bigint` | | › `type?` | `number` \| `bigint` | | › `votersCommitment?` | `string` \| `Uint8Array` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3834 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### nextRound • `Optional` **nextRound**: `number` \| `bigint` (n) Next round for which we will accept a state proof transaction. #### Defined in client/v2/indexer/models/types.ts:3806 ___ ### onlineTotalWeight • `Optional` **onlineTotalWeight**: `number` \| `bigint` (t) The total number of microalgos held by the online accounts during the StateProof round. #### Defined in client/v2/indexer/models/types.ts:3812 ___ ### type • `Optional` **type**: `number` \| `bigint` State Proof Type. Note the raw object uses map with this as key. #### Defined in client/v2/indexer/models/types.ts:3817 ___ ### votersCommitment • `Optional` **votersCommitment**: `Uint8Array` (v) Root of a vector commitment containing online accounts that will help sign the proof. #### Defined in client/v2/indexer/models/types.ts:3823 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`StateProofTracking`](indexerModels.StateProofTracking.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`StateProofTracking`](indexerModels.StateProofTracking.md) #### Defined in client/v2/indexer/models/types.ts:3863 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.HealthCheck.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / HealthCheck # Class: HealthCheck [indexerModels](../modules/indexerModels.md).HealthCheck A health check response. ## Hierarchy - `default` ↳ **`HealthCheck`** ## Table of contents ### Constructors - [constructor](indexerModels.HealthCheck.md#constructor) ### Properties - [attribute\_map](indexerModels.HealthCheck.md#attribute_map) - [data](indexerModels.HealthCheck.md#data) - [dbAvailable](indexerModels.HealthCheck.md#dbavailable) - [errors](indexerModels.HealthCheck.md#errors) - [isMigrating](indexerModels.HealthCheck.md#ismigrating) - [message](indexerModels.HealthCheck.md#message) - [round](indexerModels.HealthCheck.md#round) - [version](indexerModels.HealthCheck.md#version) ### Methods - [get\_obj\_for\_encoding](indexerModels.HealthCheck.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.HealthCheck.md#from_obj_for_encoding) ## Constructors ### constructor • **new HealthCheck**(`«destructured»`) Creates a new `HealthCheck` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `data?` | `Record`\<`string`, `any`\> | | › `dbAvailable` | `boolean` | | › `errors?` | `string`[] | | › `isMigrating` | `boolean` | | › `message` | `string` | | › `round` | `number` \| `bigint` | | › `version` | `string` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3114 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### data • `Optional` **data**: `Record`\<`string`, `any`\> #### Defined in client/v2/indexer/models/types.ts:3100 ___ ### dbAvailable • **dbAvailable**: `boolean` #### Defined in client/v2/indexer/models/types.ts:3087 ___ ### errors • `Optional` **errors**: `string`[] #### Defined in client/v2/indexer/models/types.ts:3102 ___ ### isMigrating • **isMigrating**: `boolean` #### Defined in client/v2/indexer/models/types.ts:3089 ___ ### message • **message**: `string` #### Defined in client/v2/indexer/models/types.ts:3091 ___ ### round • **round**: `number` \| `bigint` #### Defined in client/v2/indexer/models/types.ts:3093 ___ ### version • **version**: `string` Current version. #### Defined in client/v2/indexer/models/types.ts:3098 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`HealthCheck`](indexerModels.HealthCheck.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`HealthCheck`](indexerModels.HealthCheck.md) #### Defined in client/v2/indexer/models/types.ts:3152 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.Asset.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / Asset # Class: Asset [indexerModels](../modules/indexerModels.md).Asset Specifies both the unique identifier and the parameters for an asset ## Hierarchy - `default` ↳ **`Asset`** ## Table of contents ### Constructors - [constructor](indexerModels.Asset.md#constructor) ### Properties - [attribute\_map](indexerModels.Asset.md#attribute_map) - [createdAtRound](indexerModels.Asset.md#createdatround) - [deleted](indexerModels.Asset.md#deleted) - [destroyedAtRound](indexerModels.Asset.md#destroyedatround) - [index](indexerModels.Asset.md#index) - [params](indexerModels.Asset.md#params) ### Methods - [get\_obj\_for\_encoding](indexerModels.Asset.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.Asset.md#from_obj_for_encoding) ## Constructors ### constructor • **new Asset**(`«destructured»`) Creates a new `Asset` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `createdAtRound?` | `number` \| `bigint` | | › `deleted?` | `boolean` | | › `destroyedAtRound?` | `number` \| `bigint` | | › `index` | `number` \| `bigint` | | › `params` | [`AssetParams`](indexerModels.AssetParams.md) | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:1512 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### createdAtRound • `Optional` **createdAtRound**: `number` \| `bigint` Round during which this asset was created. #### Defined in client/v2/indexer/models/types.ts:1489 ___ ### deleted • `Optional` **deleted**: `boolean` Whether or not this asset is currently deleted. #### Defined in client/v2/indexer/models/types.ts:1494 ___ ### destroyedAtRound • `Optional` **destroyedAtRound**: `number` \| `bigint` Round during which this asset was destroyed. #### Defined in client/v2/indexer/models/types.ts:1499 ___ ### index • **index**: `number` \| `bigint` unique asset identifier #### Defined in client/v2/indexer/models/types.ts:1476 ___ ### params • **params**: [`AssetParams`](indexerModels.AssetParams.md) AssetParams specifies the parameters for an asset. (apar) when part of an AssetConfig transaction. Definition: data/transactions/asset.go : AssetParams #### Defined in client/v2/indexer/models/types.ts:1484 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`Asset`](indexerModels.Asset.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`Asset`](indexerModels.Asset.md) #### Defined in client/v2/indexer/models/types.ts:1542 ``` -------------------------------------------------------------------------------- /packages/server/src/tools/apiManager/vestige/notes.ts: -------------------------------------------------------------------------------- ```typescript import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; import { ResponseProcessor } from '../../../utils/responseProcessor.js'; import { env } from '../../../env.js'; export const noteTools: Tool[] = [ { name: 'api_vestige_view_notes', description: 'Get notes by network id and optionally asset id', inputSchema: { type: 'object', properties: { network_id: { type: 'integer', description: 'Network ID' }, asset_id: { type: 'integer', description: 'Optional asset ID filter' }, limit: { type: 'integer', description: 'Maximum number of results', default: 50, maximum: 250, minimum: 1 }, offset: { type: 'integer', description: 'Number of results to skip', default: 0, minimum: 0 }, order_by: { type: 'string', description: 'Field to order by' }, order_dir: { type: 'string', description: 'Order direction (asc/desc)', default: 'desc', pattern: '^(asc|desc)$' } }, required: ['network_id'] } }, { name: 'api_vestige_view_first_asset_notes', description: 'Get first note for assets', inputSchema: { type: 'object', properties: { network_id: { type: 'integer', description: 'Network ID' }, asset_ids: { type: 'string', description: 'Comma-separated list of asset IDs' } }, required: ['network_id', 'asset_ids'] } }, { name: 'api_vestige_view_asset_notes_count', description: 'Get notes count for assets', inputSchema: { type: 'object', properties: { network_id: { type: 'integer', description: 'Network ID' }, asset_ids: { type: 'string', description: 'Comma-separated list of asset IDs' } }, required: ['network_id', 'asset_ids'] } } ]; export const handleNoteTools = ResponseProcessor.wrapResourceHandler(async function handleNoteTools(args: any): Promise<any> { const name = args.name; const baseUrl = env.vestige_api_url; let endpoint = ''; switch (name) { case 'api_vestige_view_notes': endpoint = '/notes'; break; case 'api_vestige_view_first_asset_notes': endpoint = '/notes/first'; break; case 'api_vestige_view_asset_notes_count': endpoint = '/notes/count'; break; default: throw new McpError( ErrorCode.MethodNotFound, `Unknown tool: ${name}` ); } try { // Add query parameters if they exist const queryParams = new URLSearchParams(); for (const [key, value] of Object.entries(args)) { if (value !== undefined) { queryParams.append(key, String(value)); } } const url = `${baseUrl}${endpoint}${queryParams.toString() ? `?${queryParams.toString()}` : ''}`; const response = await fetch(url); if (!response.ok) { throw new McpError( ErrorCode.InternalError, `Vestige API error: ${response.status} ${response.statusText}` ); } const data = await response.json(); return data; } catch (error) { if (error instanceof McpError) { throw error; } throw new McpError( ErrorCode.InternalError, `Failed to fetch note data: ${error instanceof Error ? error.message : String(error)}` ); } }); ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/ARCs:assets:arc-0034:TemplateForm.md: -------------------------------------------------------------------------------- ```markdown --- id: <proposal number (same as PR)> period: <Period number (Integer) (When do you want to submit your proposal)> title: <The proposal title is a few words, not a complete sentence> author: <a comma separated list of the author's or authors' name + GitHub username (in parenthesis), or name and email (in angle brackets). Example, FirstName LastName (@GitHubUsername), FirstName LastName <[email protected]>, FirstName (@GitHubUsername) and GitHubUsername (@GitHubUsername)> email: <Email address to start the contract process > discussions-to: <Indicating the URL where the proposal is being discussed> company_name: <Name of the company> category: <dApps, Tools, Community, Other> focus_area: <Banking,DEX,Defi,Deployment,Education,Gaming,IDE,Identity,Libraries,Metaverse,Monitoring,Node,NFT,Oracle,Social,Storage,Teal,User Onboarding,Wallet, Other> open_source: <Yes, No> funding_type: <Proactive, Retroactive> amount_requested: <Amount (integer) requested in ALGO, it should be at least 10000> delivery_date: <project delivery date, in ISO 8601 (yyyy-mm-dd) format> status: <Draft, Final, Approved> --- >Proposals that do not include information on all template sections will be rejected. >Please, before submitting the grant proposal, review the contract template and ensure you're comfortable with its terms. <a href="https://drive.google.com/file/d/1dsKwQGhnS3h_PrSkoidhnvqlX7soLpZ-/view">Contract Template</a> ## Abstract A summary of the project, including how the Algorand ecosystem would benefit (proactive)/ has benefitted (retroactive) from its implementation. ## Team Information about the team members and their qualifications, including relevant experience and skills. ## Experience with Algorand Details about the team's experience with the Algorand protocol and any previous projects built on it. > eg > Using SDKs > Building applications > Understanding of DApps > Knowledge about the ecosystem > Running nodes ## Present Proposal A detailed plan for the development and implementation of the proposal. To enhance clarity and accountability, we're asking proposers to detail the maintenance period, availability, and sustainability plans for their projects. This includes information on potential costs and the duration for which services will be offered at no or reduced cost ### Deliverable Proposals must include clear, non-technical descriptions of deliverables. We encourage the use of multimedia (blog/video) to help explain your proposal's benefits to the community. Proposals that do not specify deliverables and a process to check deliverables will be rejected. ## Future Blueprint > This part can be optional for one-time grants. A high-level plan, defining an overarching strategic objective and capturing the major steps planned for achieving the project at a greater scale. > For Milestone-based grants, please refer to <a href="https://github.com/algorandfoundation/ARCs/blob/main/ARCs/arc-0034.md#submit-a-proposal"> How to submit a proposal</a>. ## Benefits for the community A description of the potential benefits that the proposal could bring to the Algorand community and its users. ## Additional information Any other relevant details or documentation that the team would like to include in the proposal. > To prevent malicious links and allow front-end to display links properly, **External Links** should be in this format `<a href="https://arc.algorand.foundation/">ARC</a>` > To create a new tab when people click on your links, you can use `target="_blank"` like this `<a href="https://arc.algorand.foundation/" target="_blank" >ARC</a>` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.ApplicationInitialStates.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / ApplicationInitialStates # Class: ApplicationInitialStates [modelsv2](../modules/modelsv2.md).ApplicationInitialStates An application's initial global/local/box states that were accessed during simulation. ## Hierarchy - `default` ↳ **`ApplicationInitialStates`** ## Table of contents ### Constructors - [constructor](modelsv2.ApplicationInitialStates.md#constructor) ### Properties - [appBoxes](modelsv2.ApplicationInitialStates.md#appboxes) - [appGlobals](modelsv2.ApplicationInitialStates.md#appglobals) - [appLocals](modelsv2.ApplicationInitialStates.md#applocals) - [attribute\_map](modelsv2.ApplicationInitialStates.md#attribute_map) - [id](modelsv2.ApplicationInitialStates.md#id) ### Methods - [get\_obj\_for\_encoding](modelsv2.ApplicationInitialStates.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.ApplicationInitialStates.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationInitialStates**(`«destructured»`) Creates a new `ApplicationInitialStates` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `appBoxes?` | [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md) | | › `appGlobals?` | [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md) | | › `appLocals?` | [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md)[] | | › `id` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:1050 ## Properties ### appBoxes • `Optional` **appBoxes**: [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md) An application's global/local/box state. #### Defined in client/v2/algod/models/types.ts:1031 ___ ### appGlobals • `Optional` **appGlobals**: [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md) An application's global/local/box state. #### Defined in client/v2/algod/models/types.ts:1036 ___ ### appLocals • `Optional` **appLocals**: [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md)[] An application's initial local states tied to different accounts. #### Defined in client/v2/algod/models/types.ts:1041 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### id • **id**: `number` \| `bigint` Application index. #### Defined in client/v2/algod/models/types.ts:1026 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`ApplicationInitialStates`](modelsv2.ApplicationInitialStates.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationInitialStates`](modelsv2.ApplicationInitialStates.md) #### Defined in client/v2/algod/models/types.ts:1076 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/liquid-auth:docs:architecture.md: -------------------------------------------------------------------------------- ```markdown --- title: Architecture sidebar: order: 6 prev: false next: false --- This is a high level overview of the sequence of events that happens while using Liquid Auth. See the [Getting Started](./guides/getting-started) section for more detailed information on each step. Diagrams are generated using [Mermaid](https://mermaid-js.github.io/mermaid/#/). ## Authentication A user can link their device to a website by scanning a QR code. The website will subscribe to a WebSocket channel to receive the link status. The wallet will scan the QR code and send a [FIDO2 PublicKeyCredential]() to the server. The server will validate the FIDO2 credential and send a response to the wallet and website. ```mermaid sequenceDiagram participant Website as Answer Client participant Server participant Wallet as Offer Client Website->>Server: Subscribe to 'wss:link' Website-->>Website: Display QR Connect Request ID Wallet->>Website: Scan QR Code Server-->>Wallet: Get Challenge/Options Wallet->>Server: POST FIDO2 Credential + Liquid Auth Extension Server-->>Server: Validate Signatures Server-->>Website: HTTPOnly Session Server->>Wallet: Ok Response + HTTPOnly Session Server->>Website: Emit to `wss:link` client ``` ## Signaling The website and wallet can subscribe to an isolated WebSocket channel to broker [Session Description]() answers and offers. [ICE Candidates]() are discovered when any peer has both an offer and answer. ```mermaid sequenceDiagram participant Website as Answer Client participant Server participant Wallet as Offer Client Website-->>Server: Subscribe to 'wss:offer-description' Website-->>Server: Subscribe to 'wss:offer-candidate' Wallet-->>Server: Subscribe to 'wss:answer-description' Wallet-->>Server: Subscribe to 'wss:answer-candidate' ``` ### Offer [Offers]() are created by a peer and sent through the signaling service. A client with an offer will listen for an answer description. Answers are only emitted in response to an offer. Offer clients are responsible for creating the [Data Channel](). ```mermaid sequenceDiagram participant Website as Answer Client participant Server participant Wallet as Offer Client Wallet-->>Wallet: On answer-description, set Remote SDP Wallet-->>Wallet: On answer-candidate, add ICE Candidate Wallet-->>Wallet: Create Peer Offer & DataChannel Wallet-->>Server: Emit `wss:offer-description` Wallet-->>Server: Emit `wss:offer-candidate` ``` ### Answer An [Answer]() is created by a peer in response to an offer. The answer description and candidates are emitted to the signaling service. ```mermaid sequenceDiagram participant Website as Answer Client participant Server participant Wallet as Offer Client Website-->>Website: On offer-description, set Remote SDP and create Answer Website-->>Website: On offer-candidate, add ICE Candidate Website-->>Server: Emit `wss:answer-description` Website-->>Server: Emit `wss:answer-candidate` ``` ### Data Channel Once an Offer and Answer have been exchanged, a [Data Channel]() will be emitted to the peer who created the answer. This channel is used to send messages between the website and wallet in real-time over the established P2P connection. ```mermaid sequenceDiagram participant Website as Answer Client participant Server participant Wallet as Offer Client Wallet-->>Website: Emit DataChannel Wallet-->>Wallet: On Message, Handle Message Website-->>Website: On DataChannel, listen for Messages Website-->>Wallet: Emit Messages Wallet-->>Website: Emit Messages ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.TransactionProofResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / TransactionProofResponse # Class: TransactionProofResponse [modelsv2](../modules/modelsv2.md).TransactionProofResponse Proof of transaction in a block. ## Hierarchy - `default` ↳ **`TransactionProofResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.TransactionProofResponse.md#constructor) ### Properties - [attribute\_map](modelsv2.TransactionProofResponse.md#attribute_map) - [hashtype](modelsv2.TransactionProofResponse.md#hashtype) - [idx](modelsv2.TransactionProofResponse.md#idx) - [proof](modelsv2.TransactionProofResponse.md#proof) - [stibhash](modelsv2.TransactionProofResponse.md#stibhash) - [treedepth](modelsv2.TransactionProofResponse.md#treedepth) ### Methods - [get\_obj\_for\_encoding](modelsv2.TransactionProofResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.TransactionProofResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new TransactionProofResponse**(`«destructured»`) Creates a new `TransactionProofResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `hashtype?` | `string` | | › `idx` | `number` \| `bigint` | | › `proof` | `string` \| `Uint8Array` | | › `stibhash` | `string` \| `Uint8Array` | | › `treedepth` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:5932 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### hashtype • `Optional` **hashtype**: `string` The type of hash function used to create the proof, must be one of: * sha512_256 * sha256 #### Defined in client/v2/algod/models/types.ts:5919 ___ ### idx • **idx**: `number` \| `bigint` Index of the transaction in the block's payset. #### Defined in client/v2/algod/models/types.ts:5896 ___ ### proof • **proof**: `Uint8Array` Proof of transaction membership. #### Defined in client/v2/algod/models/types.ts:5901 ___ ### stibhash • **stibhash**: `Uint8Array` Hash of SignedTxnInBlock for verifying proof. #### Defined in client/v2/algod/models/types.ts:5906 ___ ### treedepth • **treedepth**: `number` \| `bigint` Represents the depth of the tree that is being proven, i.e. the number of edges from a leaf to the root. #### Defined in client/v2/algod/models/types.ts:5912 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`TransactionProofResponse`](modelsv2.TransactionProofResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TransactionProofResponse`](modelsv2.TransactionProofResponse.md) #### Defined in client/v2/algod/models/types.ts:5968 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:project:link.md: -------------------------------------------------------------------------------- ```markdown # AlgoKit Project Link Command The `algokit project link` command is a powerful feature designed to streamline the integration between `frontend` and `contract` typed projects within the AlgoKit ecosystem. This command facilitates the automatic path resolution and invocation of [`algokit generate client`](../generate.md#1-typed-clients) on `contract` projects available in the workspace, making it easier to integrate smart contracts with frontend applications. ## Usage To use the `link` command, navigate to the root directory of your standalone frontend project and execute: ```sh $ algokit project link [OPTIONS] ``` This command must be invoked from the root of a standalone 'frontend' typed project. ## Options - `--project-name`, `-p`: Specify one or more contract projects for the command. If not provided, the command defaults to all contract projects in the current workspace. This option can be repeated to specify multiple projects. - `--language`, `-l`: Set the programming language of the generated client code. The default is `typescript`, but you can specify other supported languages as well. - `--all`, `-a`: Link all contract projects with the frontend project. This option is mutually exclusive with `--project-name`. - `--fail-fast`, `-f`: Exit immediately if at least one client generation process fails. This is useful for CI/CD pipelines where you want to ensure all clients are correctly generated before proceeding. - `--version`, `-v`: Allows specifying the version of the client generator to use when generating client code for contract projects. This can be particularly useful for ensuring consistency across different environments or when a specific version of the client generator includes features or fixes that are necessary for your project. ## How It Works Below is a visual representation of the `algokit project link` command in action: ```mermaid graph LR F[Frontend Project] -->|algokit generate client| C1[Contract Project 1] F -->|algokit generate client| C2[Contract Project 2] F -->|algokit generate client| CN[Contract Project N] C1 -->|algokit generate client| F C2 -->|algokit generate client| F CN -->|algokit generate client| F classDef frontend fill:#f9f,stroke:#333,stroke-width:4px; classDef contract fill:#bbf,stroke:#333,stroke-width:2px; class F frontend; class C1,C2,CN contract; ``` 1. **Project Type Verification**: The command first verifies that it is being executed within a standalone frontend project by checking the project's type in the `.algokit.toml` configuration file. 2. **Contract Project Selection**: Based on the provided options, it selects the contract projects to link. This can be all contract projects within the workspace, a subset specified by name, or a single project selected interactively. 3. **Client Code Generation**: For each selected contract project, it generates typed client code using the specified language. The generated code is placed in the frontend project's directory specified for contract clients. 4. **Feedback**: The command provides feedback for each contract project it processes, indicating success or failure in generating the client code. ## Example Linking all contract projects with a frontend project and generating TypeScript clients: ```sh $ algokit project link --all -l typescript ``` This command will generate TypeScript clients for all contract projects and place them in the specified directory within the frontend project. ## Further Reading To learn more about the `algokit project link` command, please refer to [link](../../cli/index.md#link) in the AlgoKit CLI reference documentation. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.AccountApplicationResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / AccountApplicationResponse # Class: AccountApplicationResponse [modelsv2](../modules/modelsv2.md).AccountApplicationResponse AccountApplicationResponse describes the account's application local state and global state (AppLocalState and AppParams, if either exists) for a specific application ID. Global state will only be returned if the provided address is the application's creator. ## Hierarchy - `default` ↳ **`AccountApplicationResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.AccountApplicationResponse.md#constructor) ### Properties - [appLocalState](modelsv2.AccountApplicationResponse.md#applocalstate) - [attribute\_map](modelsv2.AccountApplicationResponse.md#attribute_map) - [createdApp](modelsv2.AccountApplicationResponse.md#createdapp) - [round](modelsv2.AccountApplicationResponse.md#round) ### Methods - [get\_obj\_for\_encoding](modelsv2.AccountApplicationResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.AccountApplicationResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new AccountApplicationResponse**(`«destructured»`) Creates a new `AccountApplicationResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `appLocalState?` | [`ApplicationLocalState`](modelsv2.ApplicationLocalState.md) | | › `createdApp?` | [`ApplicationParams`](modelsv2.ApplicationParams.md) | | › `round` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:481 ## Properties ### appLocalState • `Optional` **appLocalState**: [`ApplicationLocalState`](modelsv2.ApplicationLocalState.md) (appl) the application local data stored in this account. The raw account uses `AppLocalState` for this type. #### Defined in client/v2/algod/models/types.ts:463 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### createdApp • `Optional` **createdApp**: [`ApplicationParams`](modelsv2.ApplicationParams.md) (appp) parameters of the application created by this account including app global data. The raw account uses `AppParams` for this type. #### Defined in client/v2/algod/models/types.ts:470 ___ ### round • **round**: `number` \| `bigint` The round for which this information is relevant. #### Defined in client/v2/algod/models/types.ts:457 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`AccountApplicationResponse`](modelsv2.AccountApplicationResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AccountApplicationResponse`](modelsv2.AccountApplicationResponse.md) #### Defined in client/v2/algod/models/types.ts:503 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:capabilities:dispenser-client.md: -------------------------------------------------------------------------------- ```markdown # TestNet Dispenser Client The TestNet Dispenser Client is a utility for interacting with the AlgoKit TestNet Dispenser API. It provides methods to fund an account, register a refund for a transaction, and get the current limit for an account. ## Creating a Dispenser Client To create a Dispenser Client, you need to provide an authorization token. This can be done in two ways: 1. Pass the token directly to the client constructor as `authToken`. 2. Set the token as an environment variable `ALGOKIT_DISPENSER_ACCESS_TOKEN` (see [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md#error-handling) on how to obtain the token). If both methods are used, the constructor argument takes precedence. The recommended way to get a TestNet dispenser API client is [via `ClientManager`](./client.md): ```typescript // With auth token const dispenserClient = algorand.client.getTestNetDispenser({ authToken: 'your_auth_token', }) // With auth token and timeout const dispenserClient = algorand.client.getTestNetDispenser({ authToken: 'your_auth_token', requestTimeout: 2 /* seconds */, }) // From environment variables // i.e. process.env['ALGOKIT_DISPENSER_ACCESS_TOKEN'] = 'your_auth_token' const dispenserClient = algorand.client.getTestNetDispenserFromEnvironment() // From environment variables with request timeout const dispenserClient = algorand.client.getTestNetDispenserFromEnvironment({ requestTimeout: 2 /* seconds */, }) ``` Alternatively, you can construct it directly. ```ts import { TestNetDispenserApiClient } from '@algorandfoundation/algokit-utils/types/dispenser-client' // Using constructor argument const client = new TestNetDispenserApiClient({ authToken: 'your_auth_token' }) const clientFromAlgorandClient = algorand.client.getTestNetDispenser({ authToken: 'your_auth_token' }) // Using environment variable process.env['ALGOKIT_DISPENSER_ACCESS_TOKEN'] = 'your_auth_token' const client = new TestNetDispenserApiClient() const clientFromAlgorandClient = algorand.client.getTestNetDispenserFromEnvironment() ``` ## Funding an Account To fund an account with Algo from the dispenser API, use the `fund` method. This method requires the receiver's address, the amount to be funded, and the asset ID. ```ts const response = await client.fund('receiver_address', 1000) ``` The `fund` method returns a `DispenserFundResponse` object, which contains the transaction ID (`txId`) and the amount funded. ## Registering a Refund To register a refund for a transaction with the dispenser API, use the `refund` method. This method requires the transaction ID of the refund transaction. ```ts await client.refund('transaction_id') ``` > Keep in mind, to perform a refund you need to perform a payment transaction yourself first by sending funds back to TestNet Dispenser, then you can invoke this refund endpoint and pass the txn_id of your refund txn. You can obtain dispenser address by inspecting the sender field of any issued fund transaction initiated via [fund](#funding-an-account). ## Getting Current Limit To get the current limit for an account with Algo from the dispenser API, use the `getLimit` method. This method requires the account address. ```ts const response = await client.getLimit() ``` The `limit` method returns a `DispenserLimitResponse` object, which contains the current limit amount. ## Error Handling If an error occurs while making a request to the dispenser API, an exception will be raised with a message indicating the type of error. Refer to [Error Handling docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md#error-handling) for details on how you can handle each individual error `code`. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:docs:details:dapps:smart-contracts:smartsigs:modes.md: -------------------------------------------------------------------------------- ```markdown title: Modes of use Smart signatures have two basic usage scenarios; as a [**contract account**](#contract-account) or as a [**delegated signature**](#delegated-approval). These modes are used to approve transactions in different ways which are described below. Both modes make use of Logic Signatures. While using smart signatures for contract accounts is possible, it is now possible to create a contract account using a [smart contract](../apps/index.md). # Logic signatures Logic Signatures, referenced as LogicSig, are structures that contain the following four parts. <center></center> <center>*Logic Signature Structure*</center> Before a LogicSig can be used with a transaction, it first must be a valid Logic Signature. The LogicSig is considered valid if one of the following scenarios is true. > * Sig contains a valid Signature of the program from the account that is sending the Transaction > * Msig contains a valid Multi-Signature of the program from the Multi-Signature account sending the Transaction > * The hash of the program is equal to the Sender's Address The first two cases are examples of delegation. An account owner can declare that on their behalf the signed logic can authorize transactions. These accounts can be either single or multi-signature accounts. Account delegation is described in further detail below. The third case is an account wholly governed by the program. The program cannot be changed. Once Algos or assets have been sent to that account, Algos or assets only leave when there is a transaction that approves it. This usage case is considered a contract account which is described below. # Contract account For each unique compiled smart signature program there exists a single corresponding Algorand address, output by `goal clerk compile`. To use a TEAL program as a contract account, send Algos to its address to turn it into an account on Algorand with a balance. Outwardly, this account looks no different from any other Algorand account and anyone can send it Algos or Algorand Standard Assets to increase its balance. The account differs in how it authenticates spends _from_ it, in that the logic determines if the transaction is approved. To spend from a contract account, create a transaction that will evaluate to True against the TEAL logic, then add the compiled TEAL code as its logic signature. It is worth noting that anyone can create and submit the transaction that spends from a contract account as long as they have the compiled TEAL contract to add as a logic signature. <center></center> <center>*TEAL Contract Account*</center> # Delegated approval Smart signatures can also be used to delegate signature authority, which means that a private key can sign a TEAL program and the resulting output can be used as a signature in transactions on behalf of the account associated with the private key. The owner of the delegated account can share this logic signature, allowing anyone to spend funds from his or her account according to the logic within the TEAL program. For example, if Alice wants to set up a recurring payment with her utility company for up to 200 Algos every 50000 rounds, she creates a TEAL contract that encodes this logic, signs it with her private key, and gives it to the utility company. The utility company uses that logic signature in the transaction they submit every 50000 rounds to collect payment from Alice. The logic signature can be produced from either a single or multi-signature account. <center></center> <center>*TEAL Delegated Signature*</center> ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/developer:docs:get-started:basics:whats_a_dapp.md: -------------------------------------------------------------------------------- ```markdown title: What is a dApp? Decentralized Applications, or dApps, are applications that are run in a decentralized computing system, like a blockchain. This guide will introduce what dApps are and how dApps are architected and implemented on the Algorand blockchain. <center> {: style="width:500px" align=center } <figcaption style="font-size:12px">A segment of the dApp ecosystem.</figcaption> </center> In the previous section, we discovered some of the properties of blockchain and how they offer paths to innovate on use cases that exchange items of value. A payment application, where users can exchange assets with each other, is a very simple dApp. In this use case, the payment transaction primitive is the only on-chain logic required to transfer those assets. But how do we implement a more complex scenario, like bidding in an auction? We could build a website, have users log in, send us their bids, then issue the on-chain transfer of the item to the highest bidder. We’d then have to send the highest bid amount to the seller and return the rest of the funds to all the losing bidders. The problem with this is that your users will have to trust that you won’t run off with their bids, that the code you wrote to hold funds is sound (probably without getting to see it), that you implement world-class security practices so that you won’t get hacked, etc. This implementation completely misses the mark on what blockchain promises and we are no better off using the blockchain than just using some of the centralized auction sites that exist already. If you’re a reputable company, then people probably trust you, but if you’re an independent developer, who is trying to build their reputation from scratch, then you’ll have a hard time getting users. And in the former scenario, you are still very much at-risk to attackers who may know that you have a large concentration of funds. The moral of this story is that we need a way to implement this bidding logic, securely, on-chain. This is where smart contracts come into play. # Smart contracts Smart contracts are on-chain logic programs that can implement highly customized transfer conditions. They can be composed with all other layer-1 features, (including Algos, NFTs, fungible tokens) to produce powerful and sophisticated decentralized applications. Let’s return to the auction bidding scenario and use smart contracts to implement on-chain bidding. What this means is that instead of sending bids to an account controlled by a centralized entity, subject to attacks and single points of failure, we can send those bids to a smart contract, governed by code, that is open and publicly verifiable by anyone. And that code won’t unexpectedly change. That doesn’t mean it can’t change, but if it does, it will be public and evident to users. And if you don’t like the idea that it can change, you can even program it from the start to restrict certain changes or disallow all changes to the contract. In summary, you go from trusting an entity and _hoping_ that they will do what they promised, to trusting the code and _knowing_ it will do what it promised, regardless of the different actors involved and the different motivations they might have. An important sidebar here is that it is critical for smart contract code to be reviewed and audited for security flaws. Badly written code that does not account for all potential attack vectors of course will not secure anything. # What language can I use to write smart contracts? On Algorand, you can write smart contracts in Python with the PyTeal library. To get started building a dApp, checkout the [Algokit getting started](/docs/get-started/algokit) guide. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.ApplicationStateOperation.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / ApplicationStateOperation # Class: ApplicationStateOperation [modelsv2](../modules/modelsv2.md).ApplicationStateOperation An operation against an application's global/local/box state. ## Hierarchy - `default` ↳ **`ApplicationStateOperation`** ## Table of contents ### Constructors - [constructor](modelsv2.ApplicationStateOperation.md#constructor) ### Properties - [account](modelsv2.ApplicationStateOperation.md#account) - [appStateType](modelsv2.ApplicationStateOperation.md#appstatetype) - [attribute\_map](modelsv2.ApplicationStateOperation.md#attribute_map) - [key](modelsv2.ApplicationStateOperation.md#key) - [newValue](modelsv2.ApplicationStateOperation.md#newvalue) - [operation](modelsv2.ApplicationStateOperation.md#operation) ### Methods - [get\_obj\_for\_encoding](modelsv2.ApplicationStateOperation.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.ApplicationStateOperation.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationStateOperation**(`«destructured»`) Creates a new `ApplicationStateOperation` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `account?` | `string` | | › `appStateType` | `string` | | › `key` | `string` \| `Uint8Array` | | › `newValue?` | [`AvmValue`](modelsv2.AvmValue.md) | | › `operation` | `string` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:1436 ## Properties ### account • `Optional` **account**: `string` For local state changes, the address of the account associated with the local state. #### Defined in client/v2/algod/models/types.ts:1419 ___ ### appStateType • **appStateType**: `string` Type of application state. Value `g` is **global state**, `l` is **local state**, `b` is **boxes**. #### Defined in client/v2/algod/models/types.ts:1403 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### key • **key**: `Uint8Array` The key (name) of the global/local/box state. #### Defined in client/v2/algod/models/types.ts:1408 ___ ### newValue • `Optional` **newValue**: [`AvmValue`](modelsv2.AvmValue.md) Represents an AVM value. #### Defined in client/v2/algod/models/types.ts:1424 ___ ### operation • **operation**: `string` Operation type. Value `w` is **write**, `d` is **delete**. #### Defined in client/v2/algod/models/types.ts:1413 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`ApplicationStateOperation`](modelsv2.ApplicationStateOperation.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationStateOperation`](modelsv2.ApplicationStateOperation.md) #### Defined in client/v2/algod/models/types.ts:1469 ```