This is page 7 of 74. Use http://codebase.md/goplausible/algorand-mcp?lines=false&page={x} to view the full context. # Directory Structure ``` ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── llms-install.md ├── llms.txt ├── package.json ├── packages │ ├── client │ │ ├── .env.example │ │ ├── package.json │ │ ├── README.md │ │ ├── src │ │ │ ├── env.ts │ │ │ ├── index.ts │ │ │ └── LocalWallet.ts │ │ └── tsconfig.json │ └── server │ ├── .env.example │ ├── API specs │ │ ├── algod_api.json │ │ ├── indexer_api.json │ │ ├── mcp.json │ │ ├── nfd_api.json │ │ ├── ultrade_api.json │ │ ├── vestige_api.json │ │ └── vestige_free_api.json │ ├── Dockerfile │ ├── jest.config.js │ ├── package.json │ ├── README.md │ ├── smithery.yaml │ ├── src │ │ ├── algorand-client.ts │ │ ├── env.ts │ │ ├── index.ts │ │ ├── resources │ │ │ ├── index.ts │ │ │ ├── knowledge │ │ │ │ ├── ARCs.txt │ │ │ │ ├── developers-algokit-architecture-decisions.txt │ │ │ │ ├── developers-algokit-cli.txt │ │ │ │ ├── developers-algokit-utils-python.txt │ │ │ │ ├── developers-algokit-utils-typescript.txt │ │ │ │ ├── developers-clis.txt │ │ │ │ ├── developers-details.txt │ │ │ │ ├── developers-liquid-auth.txt │ │ │ │ ├── developers-nodes.txt │ │ │ │ ├── developers-puya.txt │ │ │ │ ├── developers-python.txt │ │ │ │ ├── developers-sdks-js.txt │ │ │ │ ├── developers-sdks-python.txt │ │ │ │ ├── developers-tealscript.txt │ │ │ │ ├── developers.txt │ │ │ │ ├── index.ts │ │ │ │ ├── taxonomy │ │ │ │ │ ├── algokit-cli:README.md │ │ │ │ │ ├── algokit:cli:algokit.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2022-11-14_sandbox-approach.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2022-11-22_beaker-testing-strategy.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-11_beaker_productionisation_review.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-11_brew_install.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-01-12_smart-contract-deployment.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-06-06_frontend-templates.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2023-07-19_advanced_generate_command.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-13_native_binaries.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-23_init-wizard-v2.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-01-31_binary_distribution.md │ │ │ │ │ ├── algokit:cli:architecture-decisions:2024-03-06_local_dev_ui_packaging.md │ │ │ │ │ ├── algokit:cli:articles:output_stability.md │ │ │ │ │ ├── algokit:cli:cli:index.md │ │ │ │ │ ├── algokit:cli:features:compile.md │ │ │ │ │ ├── algokit:cli:features:completions.md │ │ │ │ │ ├── algokit:cli:features:config.md │ │ │ │ │ ├── algokit:cli:features:dispenser.md │ │ │ │ │ ├── algokit:cli:features:doctor.md │ │ │ │ │ ├── algokit:cli:features:explore.md │ │ │ │ │ ├── algokit:cli:features:generate.md │ │ │ │ │ ├── algokit:cli:features:goal.md │ │ │ │ │ ├── algokit:cli:features:init.md │ │ │ │ │ ├── algokit:cli:features:localnet.md │ │ │ │ │ ├── algokit:cli:features:project:bootstrap.md │ │ │ │ │ ├── algokit:cli:features:project:deploy.md │ │ │ │ │ ├── algokit:cli:features:project:link.md │ │ │ │ │ ├── algokit:cli:features:project:list.md │ │ │ │ │ ├── algokit:cli:features:project:run.md │ │ │ │ │ ├── algokit:cli:features:project.md │ │ │ │ │ ├── algokit:cli:features:tasks:analyze.md │ │ │ │ │ ├── algokit:cli:features:tasks:ipfs.md │ │ │ │ │ ├── algokit:cli:features:tasks:mint.md │ │ │ │ │ ├── algokit:cli:features:tasks:nfd.md │ │ │ │ │ ├── algokit:cli:features:tasks:opt.md │ │ │ │ │ ├── algokit:cli:features:tasks:send.md │ │ │ │ │ ├── algokit:cli:features:tasks:sign.md │ │ │ │ │ ├── algokit:cli:features:tasks:transfer.md │ │ │ │ │ ├── algokit:cli:features:tasks:vanity_address.md │ │ │ │ │ ├── algokit:cli:features:tasks:wallet.md │ │ │ │ │ ├── algokit:cli:features:tasks.md │ │ │ │ │ ├── algokit:cli:tutorials:algokit-template.md │ │ │ │ │ ├── algokit:cli:tutorials:intro.md │ │ │ │ │ ├── algokit:cli:tutorials:smart-contracts.md │ │ │ │ │ ├── algokit:docs:testnet_api.md │ │ │ │ │ ├── algokit:lora:README.md │ │ │ │ │ ├── algokit:README.md │ │ │ │ │ ├── algokit:utils:python:markdown:apidocs:algokit_utils:algokit_utils.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:account.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:debugger.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:python:markdown:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:python:markdown:index.md │ │ │ │ │ ├── algokit:utils:python:README.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:account.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:debugger.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:python:source:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:python:source:index.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:account.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:algorand-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:amount.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app-deploy.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:app.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:asset.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:debugging.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:dispenser-client.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:event-emitter.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:indexer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:testing.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transaction-composer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transaction.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:transfer.md │ │ │ │ │ ├── algokit:utils:typescript:capabilities:typed-app-clients.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:testing.TestLogger.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:testing.TransactionLogger.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account_manager.AccountManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account.MultisigAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_account.SigningAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_sender.AlgorandClientTransactionSender.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_algorand_client.AlgorandClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_amount.AlgoAmount.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_arc56.Arc56Method.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_client.AppClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_client.ApplicationClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_deployer.AppDeployer.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_factory.AppFactory.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_app_manager.AppManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_asset_manager.AssetManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_async_event_emitter.AsyncEventEmitter.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_composer.TransactionComposer.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_config.UpdatableConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_dispenser_client.TestNetDispenserApiClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_kmd_account_manager.KmdAccountManager.md │ │ │ │ │ ├── algokit:utils:typescript:code:classes:types_logic_error.LogicError.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_app.OnSchemaBreak.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_app.OnUpdate.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.AccountStatus.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.ApplicationOnComplete.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_indexer.SignatureType.md │ │ │ │ │ ├── algokit:utils:typescript:code:enums:types_lifecycle_events.EventType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account_manager.EnsureFundedResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account.AccountConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_account.TransactionSignerAccount.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_algorand_client_interface.AlgorandClientInterface.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Arc56Contract.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Event.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Method.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.ProgramSourceInfo.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageKey.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageMap.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StructField.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallABIArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallCoreParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCallInterfaceParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCoreParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.AppSourceMaps.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.FundAppAccountParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppById.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppByIdBase.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_client.SourceMapExport.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppLookup.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_factory.AppFactoryParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.AppInformation.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValueRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValuesRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSources.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.CallConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.DeclaredSchemaValueSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Hint.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.ReservedSchemaValueSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Schema.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.SchemaSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.StateSchemaSpec.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app_spec.Struct.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCallParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCallTransactionResultOfType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppCompilationResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppDeploymentParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppDeployMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppLookup.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppMetadata.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppState.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.AppStorageSchema.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxName.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxReference.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxValueRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.BoxValuesRequestParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CompiledTeal.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CoreAppCallArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.CreateAppParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.RawAppCallArgs.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.TealTemplateParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_app.UpdateAppParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset_manager.AssetInformation.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset_manager.BulkAssetOptInOutResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetBulkOptInOutParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptInParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptOutParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_asset.CreateAssetParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.AlgoSdkClients.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppClient.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppFactory.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_composer.BuiltTransactions.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_config.Config.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.AVMTracesEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourceDebugEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourcesDebugEventData.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserFundResponse.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserLimitResponse.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.TestNetDispenserApiClientParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_indexer.LookupAssetHoldingsOptions.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_logic_error.LogicErrorDetails.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoClientConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_network_client.NetworkDetails.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgoKitLogCaptureFixture.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixture.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixtureConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandTestAutomationContext.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.GetTestAccountParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_testing.LogSnapshotConfig.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.AtomicTransactionComposerToSend.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendAtomicTransactionComposerResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResult.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResults.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionGroupToSend.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionToSign.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoRekeyParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoTransferParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedReturnType.md │ │ │ │ │ ├── algokit:utils:typescript:code:interfaces:types_transfer.TransferAssetParams.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:index.indexer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:index.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:testing.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account_manager_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_account.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algo_http_client_with_retry.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_asset_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_interface.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_creator.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_sender.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client_transfer_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_algorand_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_amount_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_amount.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_arc56.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_deployer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_factory_and_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_factory.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_app.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_asset_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_asset.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_async_event_emitter_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_async_event_emitter.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_client_manager_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_client_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_composer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_config.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_debugging.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_dispenser_client_spec.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_dispenser_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_expand.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_indexer.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_kmd_account_manager.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_lifecycle_events.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_logging.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_logic_error.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_network_client.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_testing.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_transaction.md │ │ │ │ │ ├── algokit:utils:typescript:code:modules:types_transfer.md │ │ │ │ │ ├── algokit:utils:typescript:code:README.md │ │ │ │ │ ├── algokit:utils:typescript:README.md │ │ │ │ │ ├── algokit:utils:typescript:v7-migration.md │ │ │ │ │ ├── algokit:utils:typescript:v8-migration.md │ │ │ │ │ ├── ARCs:ARC-template.md │ │ │ │ │ ├── ARCs:assets:arc-0012:README.md │ │ │ │ │ ├── ARCs:assets:arc-0034:TemplateForm.md │ │ │ │ │ ├── ARCs:assets:arc-0062:README.md │ │ │ │ │ ├── ARCs:pages:nfts.md │ │ │ │ │ ├── ARCs:pages:wallets.md │ │ │ │ │ ├── ARCs:README.md │ │ │ │ │ ├── ARCs:specs:arc-0000.md │ │ │ │ │ ├── ARCs:specs:arc-0001.md │ │ │ │ │ ├── ARCs:specs:arc-0002.md │ │ │ │ │ ├── ARCs:specs:arc-0003.md │ │ │ │ │ ├── ARCs:specs:arc-0004.md │ │ │ │ │ ├── ARCs:specs:arc-0005.md │ │ │ │ │ ├── ARCs:specs:arc-0006.md │ │ │ │ │ ├── ARCs:specs:arc-0007.md │ │ │ │ │ ├── ARCs:specs:arc-0008.md │ │ │ │ │ ├── ARCs:specs:arc-0009.md │ │ │ │ │ ├── ARCs:specs:arc-0010.md │ │ │ │ │ ├── ARCs:specs:arc-0011.md │ │ │ │ │ ├── ARCs:specs:arc-0012.md │ │ │ │ │ ├── ARCs:specs:arc-0015.md │ │ │ │ │ ├── ARCs:specs:arc-0016.md │ │ │ │ │ ├── ARCs:specs:arc-0018.md │ │ │ │ │ ├── ARCs:specs:arc-0019.md │ │ │ │ │ ├── ARCs:specs:arc-0020.md │ │ │ │ │ ├── ARCs:specs:arc-0021.md │ │ │ │ │ ├── ARCs:specs:arc-0022.md │ │ │ │ │ ├── ARCs:specs:arc-0023.md │ │ │ │ │ ├── ARCs:specs:arc-0025.md │ │ │ │ │ ├── ARCs:specs:arc-0026.md │ │ │ │ │ ├── ARCs:specs:arc-0028.md │ │ │ │ │ ├── ARCs:specs:arc-0032.md │ │ │ │ │ ├── ARCs:specs:arc-0033.md │ │ │ │ │ ├── ARCs:specs:arc-0034.md │ │ │ │ │ ├── ARCs:specs:arc-0035.md │ │ │ │ │ ├── ARCs:specs:arc-0036.md │ │ │ │ │ ├── ARCs:specs:arc-0042.md │ │ │ │ │ ├── ARCs:specs:arc-0047.md │ │ │ │ │ ├── ARCs:specs:arc-0048.md │ │ │ │ │ ├── ARCs:specs:arc-0049.md │ │ │ │ │ ├── ARCs:specs:arc-0054.md │ │ │ │ │ ├── ARCs:specs:arc-0055.md │ │ │ │ │ ├── ARCs:specs:arc-0056.md │ │ │ │ │ ├── ARCs:specs:arc-0059.md │ │ │ │ │ ├── ARCs:specs:arc-0062.md │ │ │ │ │ ├── ARCs:specs:arc-0065.md │ │ │ │ │ ├── ARCs:specs:arc-0069.md │ │ │ │ │ ├── ARCs:specs:arc-0072.md │ │ │ │ │ ├── ARCs:specs:arc-0073.md │ │ │ │ │ ├── ARCs:specs:arc-0074.md │ │ │ │ │ ├── ARCs:specs:arc-0076.md │ │ │ │ │ ├── ARCs:specs:arc-0078.md │ │ │ │ │ ├── ARCs:specs:arc-0079.md │ │ │ │ │ ├── ARCs:specs:arc-0200.md │ │ │ │ │ ├── clis_index.md │ │ │ │ │ ├── developer:docs:about.md │ │ │ │ │ ├── developer:docs:clis:algokey:algokey.md │ │ │ │ │ ├── developer:docs:clis:algokey:generate.md │ │ │ │ │ ├── developer:docs:clis:algokey:import.md │ │ │ │ │ ├── developer:docs:clis:algokey:multisig:append-auth-addr.md │ │ │ │ │ ├── developer:docs:clis:algokey:multisig:multisig.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:info.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:part.md │ │ │ │ │ ├── developer:docs:clis:algokey:part:reparent.md │ │ │ │ │ ├── developer:docs:clis:algokey:sign.md │ │ │ │ │ ├── developer:docs:clis:conduit:conduit.md │ │ │ │ │ ├── developer:docs:clis:conduit:init.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:exporters.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:importers.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:list.md │ │ │ │ │ ├── developer:docs:clis:conduit:list:processors.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:diagcfg.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:disable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:enable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:metric.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:metric:status.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:disable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:enable.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:endpoint.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:name.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:status.md │ │ │ │ │ ├── developer:docs:clis:diagcfg:telemetry:telemetry.md │ │ │ │ │ ├── developer:docs:clis:goal:node:restart.md │ │ │ │ │ ├── developer:docs:clis:goal:node:start.md │ │ │ │ │ ├── developer:docs:clis:goal:node:status.md │ │ │ │ │ ├── developer:docs:clis:goal:node:stop.md │ │ │ │ │ ├── developer:docs:clis:goal:node:wait.md │ │ │ │ │ ├── developer:docs:clis:goal:protocols.md │ │ │ │ │ ├── developer:docs:clis:goal:report.md │ │ │ │ │ ├── developer:docs:clis:goal:version.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:list.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:new.md │ │ │ │ │ ├── developer:docs:clis:goal:wallet:wallet.md │ │ │ │ │ ├── developer:docs:clis:indexer:api-config.md │ │ │ │ │ ├── developer:docs:clis:indexer:daemon.md │ │ │ │ │ ├── developer:docs:clis:indexer:indexer.md │ │ │ │ │ ├── developer:docs:clis:indexer:util:util.md │ │ │ │ │ ├── developer:docs:clis:indexer:util:validator.md │ │ │ │ │ ├── developer:docs:clis:kmd.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:debug.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:remote.md │ │ │ │ │ ├── developer:docs:clis:tealdbg:tealdbg.md │ │ │ │ │ ├── developer:docs:details:accounts:create.md │ │ │ │ │ ├── developer:docs:details:accounts:index.md │ │ │ │ │ ├── developer:docs:details:accounts:rekey.md │ │ │ │ │ ├── developer:docs:details:algorand_consensus.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:betanet.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:index.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:mainnet.md │ │ │ │ │ ├── developer:docs:details:algorand-networks:testnet.md │ │ │ │ │ ├── developer:docs:details:asa.md │ │ │ │ │ ├── developer:docs:details:atc.md │ │ │ │ │ ├── developer:docs:details:atomic_transfers.md │ │ │ │ │ ├── developer:docs:details:conduit.md │ │ │ │ │ ├── developer:docs:details:crust.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:guidelines.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:jsonspec.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:index.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v1.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v10.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v2.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v3.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v4.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v5.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v6.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v7.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v8.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:opcodes:v9.md │ │ │ │ │ ├── developer:docs:details:dapps:avm:teal:specification.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:ABI:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:create.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:innertx.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:state.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:apps:txs.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:debugging.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:frontend:apps.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:frontend:smartsigs.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:guidelines.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:index.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:modes.md │ │ │ │ │ ├── developer:docs:details:dapps:smart-contracts:smartsigs:walkthrough.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:beaker.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:pyteal.md │ │ │ │ │ ├── developer:docs:details:dapps:writing-contracts:python.md │ │ │ │ │ ├── developer:docs:details:encoding.md │ │ │ │ │ ├── developer:docs:details:ethereum_to_algorand.md │ │ │ │ │ ├── developer:docs:details:index.md │ │ │ │ │ ├── developer:docs:details:indexer.md │ │ │ │ │ ├── developer:docs:details:parameter_tables.md │ │ │ │ │ ├── developer:docs:details:stateproofs:index.md │ │ │ │ │ ├── developer:docs:details:stateproofs:light_client.md │ │ │ │ │ ├── developer:docs:details:technical_faq.md │ │ │ │ │ ├── developer:docs:details:transactions:index.md │ │ │ │ │ ├── developer:docs:details:transactions:offline_transactions.md │ │ │ │ │ ├── developer:docs:details:transactions:payment_prompts.md │ │ │ │ │ ├── developer:docs:details:transactions:signatures.md │ │ │ │ │ ├── developer:docs:details:transactions:transactions.md │ │ │ │ │ ├── developer:docs:details:useful_resources.md │ │ │ │ │ ├── developer:docs:get-started:algokit.md │ │ │ │ │ ├── developer:docs:get-started:basics:what_is_blockchain.md │ │ │ │ │ ├── developer:docs:get-started:basics:whats_a_dapp.md │ │ │ │ │ ├── developer:docs:get-started:basics:where_to_start.md │ │ │ │ │ ├── developer:docs:get-started:basics:why_algorand.md │ │ │ │ │ ├── developer:docs:get-started:tokenization:ft.md │ │ │ │ │ ├── developer:docs:get-started:tokenization:nft.md │ │ │ │ │ ├── developer:docs:index.md │ │ │ │ │ ├── developer:docs:rest-apis:algod.md │ │ │ │ │ ├── developer:docs:rest-apis:indexer.md │ │ │ │ │ ├── developer:docs:rest-apis:kmd.md │ │ │ │ │ ├── developer:docs:rest-apis:restendpoints.md │ │ │ │ │ ├── developer:docs:run-a-node:operations:catchup.md │ │ │ │ │ ├── developer:docs:run-a-node:operations:switch_networks.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:generate_keys.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:index.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:offline.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:online.md │ │ │ │ │ ├── developer:docs:run-a-node:participate:renew.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:artifacts.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:config.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:relay.md │ │ │ │ │ ├── developer:docs:run-a-node:reference:telemetry-config.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:indexer.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:install.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:node-troubleshooting.md │ │ │ │ │ ├── developer:docs:run-a-node:setup:types.md │ │ │ │ │ ├── developer:docs:sdks:go:index.md │ │ │ │ │ ├── developer:docs:sdks:index.md │ │ │ │ │ ├── developer:docs:sdks:java:index.md │ │ │ │ │ ├── developer:docs:sdks:javascript:index.md │ │ │ │ │ ├── developer:docs:sdks:python:index.md │ │ │ │ │ ├── developer:python:code:example:accounts.md │ │ │ │ │ ├── developer:python:code:example:arc4_types.md │ │ │ │ │ ├── developer:python:code:example:assets.md │ │ │ │ │ ├── developer:python:code:example:box_storage.md │ │ │ │ │ ├── developer:python:code:example:control_flow.md │ │ │ │ │ ├── developer:python:code:example:crypto:merkle_tree.md │ │ │ │ │ ├── developer:python:code:example:defi:amm.md │ │ │ │ │ ├── developer:python:code:example:defi:auction.md │ │ │ │ │ ├── developer:python:code:example:defi:htlc_logicsig.md │ │ │ │ │ ├── developer:python:code:example:defi:marketplace.md │ │ │ │ │ ├── developer:python:code:example:events:arc28_events.md │ │ │ │ │ ├── developer:python:code:example:global_storage.md │ │ │ │ │ ├── developer:python:code:example:governance:simple_voting.md │ │ │ │ │ ├── developer:python:code:example:hello_world.md │ │ │ │ │ ├── developer:python:code:example:inner_transactions.md │ │ │ │ │ ├── developer:python:code:example:local_storage.md │ │ │ │ │ ├── developer:python:code:example:nft:proof_of_attendance.md │ │ │ │ │ ├── developer:python:code:example:privacy:zk_whitelist.md │ │ │ │ │ ├── developer:python:code:example:scratch_storage.md │ │ │ │ │ ├── developer:python:code:example:self_payment.md │ │ │ │ │ ├── developer:python:code:example:struct_in_box.md │ │ │ │ │ ├── developer:python:code:example:subsidize_app_call.md │ │ │ │ │ ├── developer:python:code:example:transactions.md │ │ │ │ │ ├── developer:python:code:example:utility:calculator.md │ │ │ │ │ ├── devportal-code-examples:projects:python-contract-examples:README.md │ │ │ │ │ ├── devportal-code-examples:README.md │ │ │ │ │ ├── docs:.walletconnect:index.md │ │ │ │ │ ├── docs:.walletconnect:walletconnect-schema.md │ │ │ │ │ ├── docs:README.md │ │ │ │ │ ├── docs:scripts:example_tracker:example_list.md │ │ │ │ │ ├── docs:scripts:README.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── liquid_auth_index.md │ │ │ │ │ ├── liquid-auth:ARCHITECTURE.md │ │ │ │ │ ├── liquid-auth:decisions:1-Service-Authentication.md │ │ │ │ │ ├── liquid-auth:decisions:2-Bidirectional-Communication.md │ │ │ │ │ ├── liquid-auth:decisions:3-Peer-to-Peer-Signaling.md │ │ │ │ │ ├── liquid-auth:decisions:4-Fido-Extension.md │ │ │ │ │ ├── liquid-auth:decisions:README.md │ │ │ │ │ ├── liquid-auth:docs:architecture.md │ │ │ │ │ ├── liquid-auth:docs:clients:android:provider-service:authenticate.md │ │ │ │ │ ├── liquid-auth:docs:clients:android:provider-service:register.md │ │ │ │ │ ├── liquid-auth:docs:clients:browser:authentication.md │ │ │ │ │ ├── liquid-auth:docs:clients:browser:example.md │ │ │ │ │ ├── liquid-auth:docs:introduction.md │ │ │ │ │ ├── liquid-auth:docs:README.md │ │ │ │ │ ├── liquid-auth:docs:server:environment-variables.md │ │ │ │ │ ├── liquid-auth:docs:server:integrations.md │ │ │ │ │ ├── liquid-auth:docs:server:introduction.md │ │ │ │ │ ├── liquid-auth:docs:server:running-locally.md │ │ │ │ │ ├── liquid-auth:README.md │ │ │ │ │ ├── liquid-auth:SEQUENCE.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.request.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.response.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:attestation:attestation.controller.post.request.md │ │ │ │ │ ├── liquid-auth:services:liquid-auth-api-js:src:auth:auth.controller.get.user.md │ │ │ │ │ ├── liquid-auth:sites:express-dapp:README.md │ │ │ │ │ ├── liquid-auth:VISION.md │ │ │ │ │ ├── puya_index.md │ │ │ │ │ ├── puya:docs:algopy_testing:index.md │ │ │ │ │ ├── puya:docs:api-algopy.arc4.md │ │ │ │ │ ├── puya:docs:api-algopy.gtxn.md │ │ │ │ │ ├── puya:docs:api-algopy.itxn.md │ │ │ │ │ ├── puya:docs:api-algopy.md │ │ │ │ │ ├── puya:docs:api-algopy.op.md │ │ │ │ │ ├── puya:docs:api.md │ │ │ │ │ ├── puya:docs:compiler.md │ │ │ │ │ ├── puya:docs:index.md │ │ │ │ │ ├── puya:docs:language-guide.md │ │ │ │ │ ├── puya:docs:lg-arc28.md │ │ │ │ │ ├── puya:docs:lg-arc4.md │ │ │ │ │ ├── puya:docs:lg-builtins.md │ │ │ │ │ ├── puya:docs:lg-calling-apps.md │ │ │ │ │ ├── puya:docs:lg-compile.md │ │ │ │ │ ├── puya:docs:lg-control.md │ │ │ │ │ ├── puya:docs:lg-errors.md │ │ │ │ │ ├── puya:docs:lg-logs.md │ │ │ │ │ ├── puya:docs:lg-modules.md │ │ │ │ │ ├── puya:docs:lg-opcode-budget.md │ │ │ │ │ ├── puya:docs:lg-ops.md │ │ │ │ │ ├── puya:docs:lg-storage.md │ │ │ │ │ ├── puya:docs:lg-structure.md │ │ │ │ │ ├── puya:docs:lg-transactions.md │ │ │ │ │ ├── puya:docs:lg-types.md │ │ │ │ │ ├── puya:docs:lg-unsupported-python-features.md │ │ │ │ │ ├── puya:docs:principles.md │ │ │ │ │ ├── puya:examples:auction:README.md │ │ │ │ │ ├── puya:python:testing:docs:algopy.md │ │ │ │ │ ├── puya:python:testing:docs:api.md │ │ │ │ │ ├── puya:python:testing:docs:coverage.md │ │ │ │ │ ├── puya:python:testing:docs:examples.md │ │ │ │ │ ├── puya:python:testing:docs:faq.md │ │ │ │ │ ├── puya:python:testing:docs:index.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:arc4-types.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:avm-types.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:concepts.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:contract-testing.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:index.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:opcodes.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:signature-testing.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:state-management.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:subroutines.md │ │ │ │ │ ├── puya:python:testing:docs:testing-guide:transactions.md │ │ │ │ │ ├── puya:python:testing:examples:README.md │ │ │ │ │ ├── puya:python:testing:README.md │ │ │ │ │ ├── puya:README.md │ │ │ │ │ ├── puya:src:puya:ARCHITECTURE.md │ │ │ │ │ ├── puya:src:puyapy:_typeshed:README.md │ │ │ │ │ ├── puya:src:puyapy:_vendor:mypy:typeshed:stdlib:_typeshed:README.md │ │ │ │ │ ├── puya:src:puyapy:awst_build:README.md │ │ │ │ │ ├── puya:stubs:README.md │ │ │ │ │ ├── puya:tests:test_expected_output:README.md │ │ │ │ │ ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-bytes-and-strings.md │ │ │ │ │ ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-integer-types.md │ │ │ │ │ ├── puya:typescript:docs:README.md │ │ │ │ │ ├── puya:typescript:packages:algo-ts:readme.md │ │ │ │ │ ├── puya:typescript:README.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIAddressType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIArrayDynamicType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIArrayStaticType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIBoolType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIByteType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIContract.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIInterface.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIMethod.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIStringType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABITupleType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIUfixedType.md │ │ │ │ │ ├── SDKs:javascript:classes:ABIUintType.md │ │ │ │ │ ├── SDKs:javascript:classes:Algodv2.md │ │ │ │ │ ├── SDKs:javascript:classes:AtomicTransactionComposer.md │ │ │ │ │ ├── SDKs:javascript:classes:DryrunResult.md │ │ │ │ │ ├── SDKs:javascript:classes:Indexer.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Account.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountParticipation.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AccountStateDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Application.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLocalState.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLocalStatesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLogData.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationLogsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationParams.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ApplicationStateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Asset.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetBalancesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetHoldingsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetParams.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.AssetsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Block.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockRewards.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockUpgradeState.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BlockUpgradeVote.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Box.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BoxDescriptor.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.BoxesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ErrorResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.EvalDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.EvalDeltaKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.HashFactory.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.HealthCheck.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.IndexerStateProofMessage.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.MerkleArrayProof.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.MiniAssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.ParticipationUpdates.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofFields.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofParticipant.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofReveal.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofSignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofSigSlot.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofTracking.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateProofVerifier.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.StateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TealKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TealValue.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.Transaction.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionApplication.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetConfig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetFreeze.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionAssetTransfer.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionKeyreg.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionPayment.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureLogicsig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisig.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisigSubsignature.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:indexerModels.TransactionStateProof.md │ │ │ │ │ ├── SDKs:javascript:classes:Kmd.md │ │ │ │ │ ├── SDKs:javascript:classes:LogicSig.md │ │ │ │ │ ├── SDKs:javascript:classes:LogicSigAccount.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Account.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountApplicationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountAssetsInformationResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountParticipation.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AccountStateDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AppCallLogs.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Application.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationInitialStates.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationKVStorage.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationLocalReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationLocalState.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationParams.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationStateOperation.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ApplicationStateSchema.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Asset.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetHolding.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetHoldingReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AssetParams.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AvmKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.AvmValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockHashResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockLogsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BlockTxidsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Box.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxDescriptor.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxesResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BoxReference.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.BuildVersion.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.CompileResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DisassembleResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunRequest.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunSource.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunState.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.DryrunTxnResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ErrorResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.EvalDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.EvalDeltaKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.GetBlockTimeStampOffsetResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.GetSyncRoundResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.KvDelta.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.LedgerStateDeltaForTransactionGroup.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.LightBlockHeaderProof.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.NodeStatusResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PendingTransactionResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PendingTransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.PostTransactionsResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.ScratchChange.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateInitialStates.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateRequest.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateRequestTransactionGroup.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTraceConfig.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTransactionGroupResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateTransactionResult.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulateUnnamedResourcesAccessed.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationEvalOverrides.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationOpcodeTraceUnit.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SimulationTransactionExecTrace.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.StateProof.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.StateProofMessage.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.SupplyResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TealKeyValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TealValue.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionGroupLedgerStateDeltasForRoundResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionParametersResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.TransactionProofResponse.md │ │ │ │ │ ├── SDKs:javascript:classes:modelsv2.Version.md │ │ │ │ │ ├── SDKs:javascript:classes:SourceMap.md │ │ │ │ │ ├── SDKs:javascript:classes:Transaction.md │ │ │ │ │ ├── SDKs:javascript:enums:ABIReferenceType.md │ │ │ │ │ ├── SDKs:javascript:enums:ABITransactionType.md │ │ │ │ │ ├── SDKs:javascript:enums:AtomicTransactionComposerStatus.md │ │ │ │ │ ├── SDKs:javascript:enums:IntDecoding.md │ │ │ │ │ ├── SDKs:javascript:enums:OnApplicationComplete.md │ │ │ │ │ ├── SDKs:javascript:enums:TransactionType.md │ │ │ │ │ ├── SDKs:javascript:examples:README.md │ │ │ │ │ ├── SDKs:javascript:FAQ.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractNetworkInfo.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractNetworks.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIContractParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIInterfaceParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodArgParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIMethodReturnParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:ABIResult.md │ │ │ │ │ ├── SDKs:javascript:interfaces:Account.md │ │ │ │ │ ├── SDKs:javascript:interfaces:Address.md │ │ │ │ │ ├── SDKs:javascript:interfaces:AlgodTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClient.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClientError.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BaseHTTPClientResponse.md │ │ │ │ │ ├── SDKs:javascript:interfaces:BoxReference.md │ │ │ │ │ ├── SDKs:javascript:interfaces:CustomTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedAssetParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedBoxReference.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedGlobalStateSchema.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLocalStateSchema.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLogicSig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedLogicSigAccount.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedMultisig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedSignedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedSubsig.md │ │ │ │ │ ├── SDKs:javascript:interfaces:EncodedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:IndexerTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:KMDTokenHeader.md │ │ │ │ │ ├── SDKs:javascript:interfaces:MultisigMetadata.md │ │ │ │ │ ├── SDKs:javascript:interfaces:SignedTransaction.md │ │ │ │ │ ├── SDKs:javascript:interfaces:SuggestedParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:TransactionParams.md │ │ │ │ │ ├── SDKs:javascript:interfaces:TransactionWithSigner.md │ │ │ │ │ ├── SDKs:javascript:modules:indexerModels.md │ │ │ │ │ ├── SDKs:javascript:modules:modelsv2.md │ │ │ │ │ ├── SDKs:javascript:modules.md │ │ │ │ │ ├── SDKs:javascript:README.md │ │ │ │ │ ├── SDKs:python:algosdk:v2client:harness:README.md │ │ │ │ │ ├── SDKs:python:examples:README.md │ │ │ │ │ ├── SDKs:python:README.md │ │ │ │ │ ├── tealscript:examples_amm_README.md │ │ │ │ │ ├── tealscript:examples_auction_README.md │ │ │ │ │ ├── tealscript:examples_big_box_README.md │ │ │ │ │ ├── tealscript:examples_itxns_README.md │ │ │ │ │ ├── tealscript:examples_lsig_with_app_README.md │ │ │ │ │ ├── tealscript:examples_reti_README.md │ │ │ │ │ ├── tealscript:FEATURES.md │ │ │ │ │ ├── tealscript:guides_atomic_txn.md │ │ │ │ │ ├── tealscript:guides_features.md │ │ │ │ │ ├── tealscript:guides_getting_started.md │ │ │ │ │ ├── tealscript:guides_inner_transactions.md │ │ │ │ │ ├── tealscript:guides_lifecycle.md │ │ │ │ │ ├── tealscript:guides_math.md │ │ │ │ │ ├── tealscript:guides_methods.md │ │ │ │ │ ├── tealscript:guides_multiple_contracts.md │ │ │ │ │ ├── tealscript:guides_pyteal.md │ │ │ │ │ ├── tealscript:guides_storage.md │ │ │ │ │ ├── tealscript:guides_Supported Types_arrays.md │ │ │ │ │ ├── tealscript:guides_Supported Types_numbers.md │ │ │ │ │ ├── TEALScript:README.md │ │ │ │ │ ├── tealscript:tests_test_package_README.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0001-intro.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0002-init.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0003-contract.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0004-artifacts.md │ │ │ │ │ ├── tealscript:tutorials_Hello World_0005-hello.md │ │ │ │ │ └── tealscript:tutorials_Hello World_0006-test.md │ │ │ │ └── taxonomy-categories │ │ │ │ ├── algokit-utils.json │ │ │ │ ├── algokit.json │ │ │ │ ├── arcs.json │ │ │ │ ├── clis.json │ │ │ │ ├── details.json │ │ │ │ ├── developers.json │ │ │ │ ├── liquid-auth.json │ │ │ │ ├── nodes.json │ │ │ │ ├── puya.json │ │ │ │ ├── python.json │ │ │ │ ├── sdks.json │ │ │ │ └── tealscript.json │ │ │ └── wallet │ │ │ └── index.ts │ │ ├── tools │ │ │ ├── accountManager.ts │ │ │ ├── algodManager.ts │ │ │ ├── apiManager │ │ │ │ ├── algod │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── asset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction.ts │ │ │ │ ├── example │ │ │ │ │ ├── get-balance.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── indexer │ │ │ │ │ ├── account.ts │ │ │ │ │ ├── application.ts │ │ │ │ │ ├── asset.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transaction.ts │ │ │ │ ├── nfd │ │ │ │ │ └── index.ts │ │ │ │ ├── tinyman │ │ │ │ │ ├── analytics.ts │ │ │ │ │ ├── bootstrap.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── liquidity.ts │ │ │ │ │ ├── opt_in.ts │ │ │ │ │ ├── pool.ts │ │ │ │ │ ├── remove_liquidity.ts │ │ │ │ │ └── swap.ts │ │ │ │ ├── ultrade │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── market.ts │ │ │ │ │ ├── system.ts │ │ │ │ │ └── wallet.ts │ │ │ │ └── vestige │ │ │ │ ├── assets.ts │ │ │ │ ├── balances.ts │ │ │ │ ├── index.ts │ │ │ │ ├── networks.ts │ │ │ │ ├── notes.ts │ │ │ │ ├── pools.ts │ │ │ │ ├── protocols.ts │ │ │ │ ├── swaps.ts │ │ │ │ └── vaults.ts │ │ │ ├── arc26Manager.ts │ │ │ ├── index.ts │ │ │ ├── knowledgeManager.ts │ │ │ ├── transactionManager │ │ │ │ ├── accountTransactions.ts │ │ │ │ ├── appTransactions │ │ │ │ │ ├── callTxn.ts │ │ │ │ │ ├── clearTxn.ts │ │ │ │ │ ├── closeOutTxn.ts │ │ │ │ │ ├── createTxn.ts │ │ │ │ │ ├── deleteTxn.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── optInTxn.ts │ │ │ │ │ ├── test │ │ │ │ │ │ ├── counter_approval.teal │ │ │ │ │ │ ├── counter_clear.teal │ │ │ │ │ │ ├── storage_test_approval_v2.teal │ │ │ │ │ │ ├── storage_test_approval.teal │ │ │ │ │ │ └── storage_test_clear.teal │ │ │ │ │ ├── types.ts │ │ │ │ │ └── updateTxn.ts │ │ │ │ ├── assetTransactions.ts │ │ │ │ ├── generalTransaction.ts │ │ │ │ └── index.ts │ │ │ └── utilityManager.ts │ │ ├── types.ts │ │ └── utils │ │ └── responseProcessor.ts │ ├── tests │ │ ├── resources │ │ │ ├── algod │ │ │ │ ├── account.test.ts │ │ │ │ ├── application.test.ts │ │ │ │ ├── asset.test.ts │ │ │ │ └── transaction.test.ts │ │ │ └── indexer │ │ │ ├── account.test.ts │ │ │ ├── application.test.ts │ │ │ ├── asset.test.ts │ │ │ └── transaction.test.ts │ │ └── tools │ │ ├── accountManager.test.ts │ │ ├── algodManager.test.ts │ │ ├── apiManager │ │ │ └── example │ │ │ └── get-balance.test.ts │ │ ├── transactionManager │ │ │ ├── accountTransactionManager.test.ts │ │ │ ├── appTransactionManager.test.ts │ │ │ ├── assetTransactionManager.test.ts │ │ │ ├── generalTransactionManager.test.ts │ │ │ └── transactionManager.test.ts │ │ └── utilityManager.test.ts │ └── tsconfig.json ├── README.md ├── rename_files.sh └── tsconfig.json ``` # Files -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.AssetResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / AssetResponse # Class: AssetResponse [indexerModels](../modules/indexerModels.md).AssetResponse ## Hierarchy - `default` ↳ **`AssetResponse`** ## Table of contents ### Constructors - [constructor](indexerModels.AssetResponse.md#constructor) ### Properties - [asset](indexerModels.AssetResponse.md#asset) - [attribute\_map](indexerModels.AssetResponse.md#attribute_map) - [currentRound](indexerModels.AssetResponse.md#currentround) ### Methods - [get\_obj\_for\_encoding](indexerModels.AssetResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.AssetResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new AssetResponse**(`«destructured»`) Creates a new `AssetResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `asset` | [`Asset`](indexerModels.Asset.md) | | › `currentRound` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:2046 ## Properties ### asset • **asset**: [`Asset`](indexerModels.Asset.md) Specifies both the unique identifier and the parameters for an asset #### Defined in client/v2/indexer/models/types.ts:2034 ___ ### 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:2039 ## 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`): [`AssetResponse`](indexerModels.AssetResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AssetResponse`](indexerModels.AssetResponse.md) #### Defined in client/v2/indexer/models/types.ts:2064 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.AccountStateDelta.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / AccountStateDelta # Class: AccountStateDelta [indexerModels](../modules/indexerModels.md).AccountStateDelta Application state delta. ## Hierarchy - `default` ↳ **`AccountStateDelta`** ## Table of contents ### Constructors - [constructor](indexerModels.AccountStateDelta.md#constructor) ### Properties - [address](indexerModels.AccountStateDelta.md#address) - [attribute\_map](indexerModels.AccountStateDelta.md#attribute_map) - [delta](indexerModels.AccountStateDelta.md#delta) ### Methods - [get\_obj\_for\_encoding](indexerModels.AccountStateDelta.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.AccountStateDelta.md#from_obj_for_encoding) ## Constructors ### constructor • **new AccountStateDelta**(`«destructured»`) Creates a new `AccountStateDelta` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `address` | `string` | | › `delta` | [`EvalDeltaKeyValue`](indexerModels.EvalDeltaKeyValue.md)[] | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:680 ## Properties ### address • **address**: `string` #### Defined in client/v2/indexer/models/types.ts:668 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### delta • **delta**: [`EvalDeltaKeyValue`](indexerModels.EvalDeltaKeyValue.md)[] Application state delta. #### Defined in client/v2/indexer/models/types.ts:673 ## 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`): [`AccountStateDelta`](indexerModels.AccountStateDelta.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AccountStateDelta`](indexerModels.AccountStateDelta.md) #### Defined in client/v2/indexer/models/types.ts:698 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:ABIUfixedType.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / ABIUfixedType # Class: ABIUfixedType ## Hierarchy - [`ABIType`](ABIType.md) ↳ **`ABIUfixedType`** ## Table of contents ### Constructors - [constructor](ABIUfixedType.md#constructor) ### Properties - [bitSize](ABIUfixedType.md#bitsize) - [precision](ABIUfixedType.md#precision) ### Methods - [byteLen](ABIUfixedType.md#bytelen) - [decode](ABIUfixedType.md#decode) - [encode](ABIUfixedType.md#encode) - [equals](ABIUfixedType.md#equals) - [isDynamic](ABIUfixedType.md#isdynamic) - [toString](ABIUfixedType.md#tostring) - [from](ABIUfixedType.md#from) ## Constructors ### constructor • **new ABIUfixedType**(`size`, `denominator`) #### Parameters | Name | Type | | :------ | :------ | | `size` | `number` | | `denominator` | `number` | #### Overrides [ABIType](ABIType.md).[constructor](ABIType.md#constructor) #### Defined in abi/abi_type.ts:184 ## Properties ### bitSize • **bitSize**: `number` #### Defined in abi/abi_type.ts:181 ___ ### precision • **precision**: `number` #### Defined in abi/abi_type.ts:182 ## Methods ### byteLen ▸ **byteLen**(): `number` #### Returns `number` #### Overrides [ABIType](ABIType.md).[byteLen](ABIType.md#bytelen) #### Defined in abi/abi_type.ts:212 ___ ### decode ▸ **decode**(`byteString`): `bigint` #### Parameters | Name | Type | | :------ | :------ | | `byteString` | `Uint8Array` | #### Returns `bigint` #### Overrides [ABIType](ABIType.md).[decode](ABIType.md#decode) #### Defined in abi/abi_type.ts:233 ___ ### encode ▸ **encode**(`value`): `Uint8Array` #### Parameters | Name | Type | | :------ | :------ | | `value` | [`ABIValue`](../modules.md#abivalue) | #### Returns `Uint8Array` #### Overrides [ABIType](ABIType.md).[encode](ABIType.md#encode) #### Defined in abi/abi_type.ts:216 ___ ### equals ▸ **equals**(`other`): `boolean` #### Parameters | Name | Type | | :------ | :------ | | `other` | [`ABIType`](ABIType.md) | #### Returns `boolean` #### Overrides [ABIType](ABIType.md).[equals](ABIType.md#equals) #### Defined in abi/abi_type.ts:200 ___ ### isDynamic ▸ **isDynamic**(): `boolean` #### Returns `boolean` #### Overrides [ABIType](ABIType.md).[isDynamic](ABIType.md#isdynamic) #### Defined in abi/abi_type.ts:208 ___ ### toString ▸ **toString**(): `string` #### Returns `string` #### Overrides [ABIType](ABIType.md).[toString](ABIType.md#tostring) #### Defined in abi/abi_type.ts:196 ___ ### from ▸ `Static` **from**(`str`): [`ABIType`](ABIType.md) #### Parameters | Name | Type | | :------ | :------ | | `str` | `string` | #### Returns [`ABIType`](ABIType.md) #### Inherited from [ABIType](ABIType.md).[from](ABIType.md#from) #### Defined in abi/abi_type.ts:57 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/tealscript:guides_inner_transactions.md: -------------------------------------------------------------------------------- ```markdown --- title: Inner Transactions --- Algorand Smart Contracts have the ability to send transactions from the application's contract address. Transactions sent from a contract address via an application call is called an inner transaction. ## Inner Transaction To send a single inner transaction, one of the following methods can be used. | Function | Usage | | ---------------------------- | --------------------------------------------- | | `sendPayment` | Send a payment transaction | | `sendAssetTransfer` | Send an asset transfer transaction | | `sendAssetCreation` | Send a transcation that creates a transcation | | `sendAssetConfig` | Send an asset config transaction | | `sendAssetFreeze` | Send an asset freeze transaction | | `sendAppCall` | Send an application call | | `sendMethodCall` | Call an ABI method of another app | | `sendOnlineKeyRegistration` | Send a rekreg transaction to register offline | | `sendOfflineKeyRegistration` | Send a rekreg transaction to register offline | ## Inner Transaction Group You can also send multiple inner transactions in the same group. To add transactions to a group, `this.pendingGroup` is used. It should be noted that at any given time only one group can be constructed at a time. This means | Function | Usage | | --------------------------------------------- | -------------------------------------------- | | `this.pendingGroup.addPayment` | Add a payment transaction | | `this.pendingGroup.addAssetTransfer` | Add an asset transfer transaction | | `this.pendingGroup.addAssetCreation` | Add a transcation that creates a transcation | | `this.pendingGroup.addAssetConfig` | Add an asset config transaction | | `this.pendingGroup.addAssetFreeze` | Add an asset freeze transaction | | `this.pendingGroup.addAppCall` | Add an application call | | `this.pendingGroup.addMethodCall` | Add an ABI method call to another app | | `this.pendingGroup.addOnlineKeyRegistration` | Add a rekreg transaction to register offline | | `this.pendingGroup.addOfflineKeyRegistration` | Add a rekreg transaction to register offline | Once transactions have been added to the pending group, the group can be submitted via `this.pendingGroup.submit()` ## Inner Transaction Fields The fields of the most recent inner transaction can be read via `this.itxn` ``` -------------------------------------------------------------------------------- /packages/server/src/tools/apiManager/vestige/balances.ts: -------------------------------------------------------------------------------- ```typescript import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; import { ResponseProcessor } from '../../../utils/responseProcessor.js'; import { env } from '../../../env.js'; export const balanceTools: Tool[] = [ { name: 'api_vestige_view_balances', description: 'Get balances by network id, protocol id and asset id', inputSchema: { type: 'object', properties: { network_id: { type: 'integer', description: 'Network ID' }, protocol_id: { type: 'integer', description: 'Protocol ID' }, address: { type: 'string', description: 'Optional address filter' }, 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', 'protocol_id'] } } ]; export const handleBalanceTools = ResponseProcessor.wrapResourceHandler(async function handleBalanceTools(args: any): Promise<any> { const name = args.name; const baseUrl = env.vestige_api_url; let endpoint = ''; switch (name) { case 'api_vestige_view_balances': endpoint = '/balances'; 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 balance data: ${error instanceof Error ? error.message : String(error)}` ); } }); ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.EvalDelta.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / EvalDelta # Class: EvalDelta [indexerModels](../modules/indexerModels.md).EvalDelta Represents a TEAL value delta. ## Hierarchy - `default` ↳ **`EvalDelta`** ## Table of contents ### Constructors - [constructor](indexerModels.EvalDelta.md#constructor) ### Properties - [action](indexerModels.EvalDelta.md#action) - [attribute\_map](indexerModels.EvalDelta.md#attribute_map) - [bytes](indexerModels.EvalDelta.md#bytes) - [uint](indexerModels.EvalDelta.md#uint) ### Methods - [get\_obj\_for\_encoding](indexerModels.EvalDelta.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.EvalDelta.md#from_obj_for_encoding) ## Constructors ### constructor • **new EvalDelta**(`«destructured»`) Creates a new `EvalDelta` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `action` | `number` \| `bigint` | | › `bytes?` | `string` | | › `uint?` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:2977 ## Properties ### action • **action**: `number` \| `bigint` (at) delta action. #### Defined in client/v2/indexer/models/types.ts:2959 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### bytes • `Optional` **bytes**: `string` (bs) bytes value. #### Defined in client/v2/indexer/models/types.ts:2964 ___ ### uint • `Optional` **uint**: `number` \| `bigint` (ui) uint value. #### Defined in client/v2/indexer/models/types.ts:2969 ## 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`): [`EvalDelta`](indexerModels.EvalDelta.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`EvalDelta`](indexerModels.EvalDelta.md) #### Defined in client/v2/indexer/models/types.ts:2999 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_asset.AssetBulkOptInOutParams.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/asset](../modules/types_asset.md) / AssetBulkOptInOutParams # Interface: AssetBulkOptInOutParams [types/asset](../modules/types_asset.md).AssetBulkOptInOutParams **`Deprecated`** Parameters for `assetBulkOptIn` / `assetBulkOptOut` call. ## Table of contents ### Properties - [account](types_asset.AssetBulkOptInOutParams.md#account) - [assetIds](types_asset.AssetBulkOptInOutParams.md#assetids) - [maxFee](types_asset.AssetBulkOptInOutParams.md#maxfee) - [note](types_asset.AssetBulkOptInOutParams.md#note) - [suppressLog](types_asset.AssetBulkOptInOutParams.md#suppresslog) - [transactionParams](types_asset.AssetBulkOptInOutParams.md#transactionparams) - [validateBalances](types_asset.AssetBulkOptInOutParams.md#validatebalances) ## Properties ### account • **account**: [`SendTransactionFrom`](../modules/types_transaction.md#sendtransactionfrom) The account to opt in/out for #### Defined in [src/types/asset.ts:94](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/asset.ts#L94) ___ ### assetIds • **assetIds**: `number`[] The IDs of the assets to opt in for / out of #### Defined in [src/types/asset.ts:96](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/asset.ts#L96) ___ ### maxFee • `Optional` **maxFee**: [`AlgoAmount`](../classes/types_amount.AlgoAmount.md) The maximum fee that you are happy to pay per transaction (default: unbounded) - if this is set it's possible the transaction could get rejected during network congestion #### Defined in [src/types/asset.ts:104](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/asset.ts#L104) ___ ### note • `Optional` **note**: [`TransactionNote`](../modules/types_transaction.md#transactionnote) The (optional) transaction note #### Defined in [src/types/asset.ts:102](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/asset.ts#L102) ___ ### suppressLog • `Optional` **suppressLog**: `boolean` Whether to suppress log messages from transaction send, default: do not suppress #### Defined in [src/types/asset.ts:106](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/asset.ts#L106) ___ ### transactionParams • `Optional` **transactionParams**: `SuggestedParams` Optional transaction parameters #### Defined in [src/types/asset.ts:100](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/asset.ts#L100) ___ ### validateBalances • `Optional` **validateBalances**: `boolean` Whether or not to validate the opt-in/out is valid before issuing transactions; default = true #### Defined in [src/types/asset.ts:98](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/asset.ts#L98) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCallInterfaceParams.md: -------------------------------------------------------------------------------- ```markdown [@algorandfoundation/algokit-utils](../README.md) / [types/app-client](../modules/types_app_client.md) / AppClientDeployCallInterfaceParams # Interface: AppClientDeployCallInterfaceParams [types/app-client](../modules/types_app_client.md).AppClientDeployCallInterfaceParams Call interface parameters to pass into ApplicationClient.deploy ## Hierarchy - **`AppClientDeployCallInterfaceParams`** ↳ [`AppClientDeployParams`](types_app_client.AppClientDeployParams.md) ## Table of contents ### Properties - [createArgs](types_app_client.AppClientDeployCallInterfaceParams.md#createargs) - [createOnCompleteAction](types_app_client.AppClientDeployCallInterfaceParams.md#createoncompleteaction) - [deleteArgs](types_app_client.AppClientDeployCallInterfaceParams.md#deleteargs) - [deployTimeParams](types_app_client.AppClientDeployCallInterfaceParams.md#deploytimeparams) - [updateArgs](types_app_client.AppClientDeployCallInterfaceParams.md#updateargs) ## Properties ### createArgs • `Optional` **createArgs**: [`AppClientCallArgs`](../modules/types_app_client.md#appclientcallargs) Any args to pass to any create transaction that is issued as part of deployment #### Defined in [src/types/app-client.ts:182](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L182) ___ ### createOnCompleteAction • `Optional` **createOnCompleteAction**: ``"no_op"`` \| ``"opt_in"`` \| ``"close_out"`` \| ``"update_application"`` \| ``"delete_application"`` \| `NoOpOC` \| `OptInOC` \| `CloseOutOC` \| `UpdateApplicationOC` \| `DeleteApplicationOC` Override the on-completion action for the create call; defaults to NoOp #### Defined in [src/types/app-client.ts:184](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L184) ___ ### deleteArgs • `Optional` **deleteArgs**: [`AppClientCallArgs`](../modules/types_app_client.md#appclientcallargs) Any args to pass to any delete transaction that is issued as part of deployment #### Defined in [src/types/app-client.ts:188](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L188) ___ ### deployTimeParams • `Optional` **deployTimeParams**: [`TealTemplateParams`](types_app.TealTemplateParams.md) Any deploy-time parameters to replace in the TEAL code #### Defined in [src/types/app-client.ts:180](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L180) ___ ### updateArgs • `Optional` **updateArgs**: [`AppClientCallArgs`](../modules/types_app_client.md#appclientcallargs) Any args to pass to any update transaction that is issued as part of deployment #### Defined in [src/types/app-client.ts:186](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-client.ts#L186) ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.SimulateRequestTransactionGroup.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / SimulateRequestTransactionGroup # Class: SimulateRequestTransactionGroup [modelsv2](../modules/modelsv2.md).SimulateRequestTransactionGroup A transaction group to simulate. ## Hierarchy - `default` ↳ **`SimulateRequestTransactionGroup`** ## Table of contents ### Constructors - [constructor](modelsv2.SimulateRequestTransactionGroup.md#constructor) ### Properties - [attribute\_map](modelsv2.SimulateRequestTransactionGroup.md#attribute_map) - [txns](modelsv2.SimulateRequestTransactionGroup.md#txns) ### Methods - [get\_obj\_for\_encoding](modelsv2.SimulateRequestTransactionGroup.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.SimulateRequestTransactionGroup.md#from_obj_for_encoding) ## Constructors ### constructor • **new SimulateRequestTransactionGroup**(`txns`) Creates a new `SimulateRequestTransactionGroup` object. #### Parameters | Name | Type | Description | | :------ | :------ | :------ | | `txns` | `Object` | An atomic transaction group. | | `txns.txns` | [`EncodedSignedTransaction`](../interfaces/EncodedSignedTransaction.md)[] | - | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:4397 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### txns • **txns**: [`EncodedSignedTransaction`](../interfaces/EncodedSignedTransaction.md)[] An atomic transaction group. #### Defined in client/v2/algod/models/types.ts:4391 ## 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`): [`SimulateRequestTransactionGroup`](modelsv2.SimulateRequestTransactionGroup.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`SimulateRequestTransactionGroup`](modelsv2.SimulateRequestTransactionGroup.md) #### Defined in client/v2/algod/models/types.ts:4407 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.TealValue.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / TealValue # Class: TealValue [indexerModels](../modules/indexerModels.md).TealValue Represents a TEAL value. ## Hierarchy - `default` ↳ **`TealValue`** ## Table of contents ### Constructors - [constructor](indexerModels.TealValue.md#constructor) ### Properties - [attribute\_map](indexerModels.TealValue.md#attribute_map) - [bytes](indexerModels.TealValue.md#bytes) - [type](indexerModels.TealValue.md#type) - [uint](indexerModels.TealValue.md#uint) ### Methods - [get\_obj\_for\_encoding](indexerModels.TealValue.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.TealValue.md#from_obj_for_encoding) ## Constructors ### constructor • **new TealValue**(`«destructured»`) Creates a new `TealValue` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `bytes` | `string` | | › `type` | `number` \| `bigint` | | › `uint` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:4045 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### bytes • **bytes**: `string` bytes value. #### Defined in client/v2/indexer/models/types.ts:4027 ___ ### type • **type**: `number` \| `bigint` type of the value. Value `1` refers to **bytes**, value `2` refers to **uint** #### Defined in client/v2/indexer/models/types.ts:4032 ___ ### uint • **uint**: `number` \| `bigint` uint value. #### Defined in client/v2/indexer/models/types.ts:4037 ## 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`): [`TealValue`](indexerModels.TealValue.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`TealValue`](indexerModels.TealValue.md) #### Defined in client/v2/indexer/models/types.ts:4067 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.ApplicationKVStorage.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / ApplicationKVStorage # Class: ApplicationKVStorage [modelsv2](../modules/modelsv2.md).ApplicationKVStorage An application's global/local/box state. ## Hierarchy - `default` ↳ **`ApplicationKVStorage`** ## Table of contents ### Constructors - [constructor](modelsv2.ApplicationKVStorage.md#constructor) ### Properties - [account](modelsv2.ApplicationKVStorage.md#account) - [attribute\_map](modelsv2.ApplicationKVStorage.md#attribute_map) - [kvs](modelsv2.ApplicationKVStorage.md#kvs) ### Methods - [get\_obj\_for\_encoding](modelsv2.ApplicationKVStorage.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.ApplicationKVStorage.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationKVStorage**(`«destructured»`) Creates a new `ApplicationKVStorage` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `account?` | `string` | | › `kvs` | [`AvmKeyValue`](modelsv2.AvmKeyValue.md)[] | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:1120 ## Properties ### account • `Optional` **account**: `string` The address of the account associated with the local state. #### Defined in client/v2/algod/models/types.ts:1113 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### kvs • **kvs**: [`AvmKeyValue`](modelsv2.AvmKeyValue.md)[] Key-Value pairs representing application states. #### Defined in client/v2/algod/models/types.ts:1108 ## 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`): [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationKVStorage`](modelsv2.ApplicationKVStorage.md) #### Defined in client/v2/algod/models/types.ts:1132 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.StateProofVerifier.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / StateProofVerifier # Class: StateProofVerifier [indexerModels](../modules/indexerModels.md).StateProofVerifier ## Hierarchy - `default` ↳ **`StateProofVerifier`** ## Table of contents ### Constructors - [constructor](indexerModels.StateProofVerifier.md#constructor) ### Properties - [attribute\_map](indexerModels.StateProofVerifier.md#attribute_map) - [commitment](indexerModels.StateProofVerifier.md#commitment) - [keyLifetime](indexerModels.StateProofVerifier.md#keylifetime) ### Methods - [get\_obj\_for\_encoding](indexerModels.StateProofVerifier.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.StateProofVerifier.md#from_obj_for_encoding) ## Constructors ### constructor • **new StateProofVerifier**(`«destructured»`) Creates a new `StateProofVerifier` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `commitment?` | `string` \| `Uint8Array` | | › `keyLifetime?` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3891 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### commitment • `Optional` **commitment**: `Uint8Array` (cmt) Represents the root of the vector commitment tree. #### Defined in client/v2/indexer/models/types.ts:3879 ___ ### keyLifetime • `Optional` **keyLifetime**: `number` \| `bigint` (lf) Key lifetime. #### Defined in client/v2/indexer/models/types.ts:3884 ## 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`): [`StateProofVerifier`](indexerModels.StateProofVerifier.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`StateProofVerifier`](indexerModels.StateProofVerifier.md) #### Defined in client/v2/indexer/models/types.ts:3912 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.ApplicationStateSchema.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / ApplicationStateSchema # Class: ApplicationStateSchema [modelsv2](../modules/modelsv2.md).ApplicationStateSchema Specifies maximums on the number of each type that may be stored. ## Hierarchy - `default` ↳ **`ApplicationStateSchema`** ## Table of contents ### Constructors - [constructor](modelsv2.ApplicationStateSchema.md#constructor) ### Properties - [attribute\_map](modelsv2.ApplicationStateSchema.md#attribute_map) - [numByteSlice](modelsv2.ApplicationStateSchema.md#numbyteslice) - [numUint](modelsv2.ApplicationStateSchema.md#numuint) ### Methods - [get\_obj\_for\_encoding](modelsv2.ApplicationStateSchema.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.ApplicationStateSchema.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationStateSchema**(`«destructured»`) Creates a new `ApplicationStateSchema` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `numByteSlice` | `number` \| `bigint` | | › `numUint` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:1516 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### numByteSlice • **numByteSlice**: `number` \| `bigint` (nbs) num of byte slices. #### Defined in client/v2/algod/models/types.ts:1509 ___ ### numUint • **numUint**: `number` \| `bigint` (nui) num of uints. #### Defined in client/v2/algod/models/types.ts:1504 ## 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`): [`ApplicationStateSchema`](modelsv2.ApplicationStateSchema.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationStateSchema`](modelsv2.ApplicationStateSchema.md) #### Defined in client/v2/algod/models/types.ts:1534 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/liquid-auth:docs:clients:browser:authentication.md: -------------------------------------------------------------------------------- ```markdown --- title: 'Browser: Authentication' sidebar: badge: text: "TODO" variant: danger --- Authenticate an existing [Passkey](/guides/concepts/#passkeys) with the [Service](/guides/server/introduction). ### Who is this for? - **dApps** logging back into the service without connecting to another client - **Browser Wallets** that want to communicate with other clients ## Client Sign in with an existing account using an instance of the `SignalClient` ```typescript //app.ts await client.assertion( credentialId, // Some known credential ID {requestId: 12345} // Optional requestId to link ) ``` ## Stateless Using the stateless method without a `SignalClient` ```typescript //app.ts import {assertion} from '@algorandfoundation/liquid-auth/assertion' await assertion( "https://my-liquid-service.com", credentialId, // Some known credential ID {requestId: 12345} // Optional requestId to link ) ``` ## Manual If you want to manually handle the process of creating a passkey, you can use the following methods and preforming the three steps of the process. ### 🧮 Options Manually fetching the `Options` from the service. ```typescript import {fetchAssertionRequestOptions} from '@algorandfoundation/liquid-client/assertion' const encodedOptions = await fetchAssertionRequestOptions("https://my-liquid-service.com", "<KNOWN_CREDENTIAL_ID>") ``` ### 🎉 Retrieving Decode the options and fetch the Passkey. ```typescript import {fromBase64Url} from "@algorandfoundation/liquid-client/encoding"; const options = { ...encodedOptions }; // Challenge from the service options.challenge = fromBase64Url(options.challenge); // Decode any known credentials if (options.allowCredentials) { for (const cred of options.allowCredentials) { cred.id = fromBase64Url(cred.id); } } const credential = navigator.credentials.get({ publicKey: options }) ``` ### 🔐 Liquid Extension Optionally, Authenticate a remote user with the Liquid Extension. ```typescript credential.clientExtensionResults = { // Optionally authenticate a remote peer requestId: "<UUID_FROM_QR_CODE>" } ``` ### 🚚 Response Encode and submit the passkey to the service. ```typescript import {fetchAssertionResponse} from '@algorandfoundation/liquid-client/assertion' import {toBase64URL} from '@algorandfoundation/liquid-client/encoding' const result = await fetchAssertionResponse("https://my-liquid-service.com", { id: credential.id, type: credential.type, rawId: toBase64URL(credential.rawId), clientExtensionResults: credential.clientExtensionResults, response: Object.keys(AuthenticatorAssertionResponse.prototype).reduce((prev, curr) => { prev[curr] = toBase64URL(credential.response[curr]); return prev; }, { clientDataJSON: toBase64URL(credential.response.clientDataJSON), }), }) ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.AccountResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / AccountResponse # Class: AccountResponse [indexerModels](../modules/indexerModels.md).AccountResponse ## Hierarchy - `default` ↳ **`AccountResponse`** ## Table of contents ### Constructors - [constructor](indexerModels.AccountResponse.md#constructor) ### Properties - [account](indexerModels.AccountResponse.md#account) - [attribute\_map](indexerModels.AccountResponse.md#attribute_map) - [currentRound](indexerModels.AccountResponse.md#currentround) ### Methods - [get\_obj\_for\_encoding](indexerModels.AccountResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.AccountResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new AccountResponse**(`«destructured»`) Creates a new `AccountResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `account` | [`Account`](indexerModels.Account.md) | | › `currentRound` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:630 ## Properties ### account • **account**: [`Account`](indexerModels.Account.md) Account information at a given round. Definition: data/basics/userBalance.go : AccountData #### Defined in client/v2/indexer/models/types.ts:616 ___ ### 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:621 ## 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`): [`AccountResponse`](indexerModels.AccountResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AccountResponse`](indexerModels.AccountResponse.md) #### Defined in client/v2/indexer/models/types.ts:648 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/ARCs:specs:arc-0008.md: -------------------------------------------------------------------------------- ```markdown --- arc: 8 title: Algorand Wallet Sign and Post API description: A function used to simultaneously sign and post transactions to the network. author: DanBurton (@DanBurton) discussions-to: https://github.com/algorandfoundation/ARCs/issues/52 status: Deprecated type: Standards Track category: Interface created: 2021-08-09 --- # Algorand Wallet Sign and Post API ## Abstract A function `signAndPostTxns`, which accepts an array of `WalletTransaction`s, and posts them to the network. Accepts the inputs to [ARC-0001](./arc-0001.md#interface-signtxnsfunction)'s / [ARC-0005](./arc-0005.md#interface-signtxnsfunction)'s `signTxns`, and produces the output of [ARC-0007](./arc-0007.md#interface-posttxnsfunction)'s `postTxns`. ## Specification ### Interface `SignAndPostTxnsFunction` ```ts export type SignAndPostTxnsFunction = ( txns: WalletTransaction[], opts?: any, ) => Promise<PostTxnsResult>; ``` * `WalletTransaction` is as specified by [ARC-0005](./arc-0005.md#interface-wallettransaction). * `PostTxnsResult` is as specified by [ARC-0007](./arc-0007.md#interface-posttxnsfunction). Errors are handled exactly as specified by [ARC-0001](./arc-0001.md#error-standards) and [ARC-0007](./arc-0007.md#error-standard) ## Rationale Allows the user to be sure that what they are signing is in fact all that is being sent. Doesn't necessarily grant the DApp direct access to the signed txns, though they are posted to the network, so they should not be considered private. Exposing only this API instead of exposing `postTxns` directly is potentially safer for the wallet user, since it only allows the posting of transactions which the user has explicitly approved. ## Security Considerations In case the wallet uses an API service that is secret or provided by the user, the wallet **MUST** ensure that the URL of the service and the potential tokens/headers are not leaked to the dApp. > Leakage may happen by accidentally including too much information in responses or errors returned by the various methods. For example, if the nodeJS superagent library is used without filtering errors and responses, errors and responses may include the request object, which includes the potentially secret API service URL / secret token headers. For dApps using the `signAndPostTxns` function, it is **RECOMMENDED** to display a Waiting/Loading Screen to wait until the transaction is confirmed to prevent potential issues. > The reasoning is the following: the pop-up/window in which the wallet is showing the waiting/loading screen may disappear in some cases (e.g., if the user clicks away from it). If it disappears, the user may be tempted to perform again the action, causing significant damages. ## Copyright Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CCO</a>. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.ApplicationLocalReference.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / ApplicationLocalReference # Class: ApplicationLocalReference [modelsv2](../modules/modelsv2.md).ApplicationLocalReference References an account's local state for an application. ## Hierarchy - `default` ↳ **`ApplicationLocalReference`** ## Table of contents ### Constructors - [constructor](modelsv2.ApplicationLocalReference.md#constructor) ### Properties - [account](modelsv2.ApplicationLocalReference.md#account) - [app](modelsv2.ApplicationLocalReference.md#app) - [attribute\_map](modelsv2.ApplicationLocalReference.md#attribute_map) ### Methods - [get\_obj\_for\_encoding](modelsv2.ApplicationLocalReference.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.ApplicationLocalReference.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationLocalReference**(`«destructured»`) Creates a new `ApplicationLocalReference` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `account` | `string` | | › `app` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:1167 ## Properties ### account • **account**: `string` Address of the account with the local state. #### Defined in client/v2/algod/models/types.ts:1155 ___ ### app • **app**: `number` \| `bigint` Application ID of the local state application. #### Defined in client/v2/algod/models/types.ts:1160 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ## 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`): [`ApplicationLocalReference`](modelsv2.ApplicationLocalReference.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationLocalReference`](modelsv2.ApplicationLocalReference.md) #### Defined in client/v2/algod/models/types.ts:1179 ``` -------------------------------------------------------------------------------- /rename_files.sh: -------------------------------------------------------------------------------- ```bash #!/bin/bash # Script to rename files in the taxonomy directory # Changes: # - ARCs: to arcs: # - SDKs: to sdks: # - TEALScript: to tealscript: # Directory to process DIRECTORY="/Users/mg/Documents/GitHub/GoPlausible/algorand-mcp/packages/server/src/resources/knowledge/taxonomy" # Check if directory exists if [ ! -d "$DIRECTORY" ]; then echo "Error: Directory $DIRECTORY does not exist." exit 1 fi # Counter for renamed files renamed_count=0 # Function to process a file process_file() { local file="$1" local basename=$(basename "$file") local dirname=$(dirname "$file") local new_name="" # Check if file name starts with ARCs: if [[ "$basename" == ARCs:* ]]; then new_name="${dirname}/arcs:${basename#ARCs:}" echo "Renaming: $file -> $new_name" mv "$file" "$new_name" ((renamed_count++)) # Check if file name starts with SDKs: elif [[ "$basename" == SDKs:* ]]; then new_name="${dirname}/sdks:${basename#SDKs:}" echo "Renaming: $file -> $new_name" mv "$file" "$new_name" ((renamed_count++)) # Check if file name starts with TEALScript: elif [[ "$basename" == TEALScript_* ]]; then new_name="${dirname}/tealscript:${basename#TEALScript_}" echo "Renaming: $file -> $new_name" mv "$file" "$new_name" ((renamed_count++)) fi } # Find all files in the directory and process them echo "Starting to process files in $DIRECTORY..." find "$DIRECTORY" -type f | while read -r file; do process_file "$file" done # Find all directories in the directory and process them # This is needed because directory names might also need to be renamed find "$DIRECTORY" -type d | sort -r | while read -r dir; do # Skip the root directory if [ "$dir" != "$DIRECTORY" ]; then basename=$(basename "$dir") dirname=$(dirname "$dir") # Check if directory name starts with ARCs: if [[ "$basename" == ARCs:* ]]; then new_name="${dirname}/arcs:${basename#ARCs:}" echo "Renaming directory: $dir -> $new_name" mv "$dir" "$new_name" ((renamed_count++)) # Check if directory name starts with SDKs: elif [[ "$basename" == SDKs:* ]]; then new_name="${dirname}/sdks:${basename#SDKs:}" echo "Renaming directory: $dir -> $new_name" mv "$dir" "$new_name" ((renamed_count++)) # Check if directory name starts with TEALScript: elif [[ "$basename" == TEALScript:* ]]; then new_name="${dirname}/tealscript:${basename#TEALScript:}" echo "Renaming directory: $dir -> $new_name" mv "$dir" "$new_name" ((renamed_count++)) fi fi done echo "Renaming complete. Total items renamed: $renamed_count" ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.StateProofParticipant.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / StateProofParticipant # Class: StateProofParticipant [indexerModels](../modules/indexerModels.md).StateProofParticipant ## Hierarchy - `default` ↳ **`StateProofParticipant`** ## Table of contents ### Constructors - [constructor](indexerModels.StateProofParticipant.md#constructor) ### Properties - [attribute\_map](indexerModels.StateProofParticipant.md#attribute_map) - [verifier](indexerModels.StateProofParticipant.md#verifier) - [weight](indexerModels.StateProofParticipant.md#weight) ### Methods - [get\_obj\_for\_encoding](indexerModels.StateProofParticipant.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.StateProofParticipant.md#from_obj_for_encoding) ## Constructors ### constructor • **new StateProofParticipant**(`«destructured»`) Creates a new `StateProofParticipant` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `verifier?` | [`StateProofVerifier`](indexerModels.StateProofVerifier.md) | | › `weight?` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3596 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### verifier • `Optional` **verifier**: [`StateProofVerifier`](indexerModels.StateProofVerifier.md) (p) #### Defined in client/v2/indexer/models/types.ts:3584 ___ ### weight • `Optional` **weight**: `number` \| `bigint` (w) #### Defined in client/v2/indexer/models/types.ts:3589 ## 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`): [`StateProofParticipant`](indexerModels.StateProofParticipant.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`StateProofParticipant`](indexerModels.StateProofParticipant.md) #### Defined in client/v2/indexer/models/types.ts:3614 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:cli:features:tasks:send.md: -------------------------------------------------------------------------------- ```markdown # AlgoKit Task Send The AlgoKit Send feature allows you to send signed Algorand transaction(s) to a specified network using the AlgoKit CLI. This feature supports sending single or multiple transactions, either provided directly as a base64 encoded string or from a binary file. ## Usage Available commands and possible usage as follows: ```bash $ ~ algokit task send Usage: algokit task send [OPTIONS] Send a signed transaction to the given network. Options: -f, --file FILE Single or multiple message pack encoded signed transactions from binary file to send. Option is mutually exclusive with transaction. -t, --transaction TEXT Base64 encoded signed transaction to send. Option is mutually exclusive with file. -n, --network [localnet|testnet|mainnet] Network to use. Refers to `localnet` by default. -h, --help Show this message and exit. ``` ## Options - `--file, -f PATH`: Specifies the path to a binary file containing single or multiple message pack encoded signed transactions to send. Mutually exclusive with `--transaction` option. - `--transaction, -t TEXT`: Specifies a single base64 encoded signed transaction to send. Mutually exclusive with `--file` option. - `--network, -n [localnet|testnet|mainnet]`: Specifies the network to which the transactions will be sent. Refers to `localnet` by default. > Please note, `--transaction` flag only supports sending a single transaction. If you want to send multiple transactions, you can use the `--file` flag to specify a binary file containing multiple transactions. ## Example To send a transaction, you can use the `send` command as follows: ```bash $ algokit task send --file {PATH_TO_BINARY_FILE_CONTAINING_SIGNED_TRANSACTIONS} ``` This will send the transactions to the default `localnet` network. If you want to send the transactions to a different network, you can use the `--network` flag: ```bash $ algokit task send --transaction {YOUR_BASE64_ENCODED_SIGNED_TRANSACTION} --network testnet ``` You can also pipe in the `stdout` of `algokit sign` command: ```bash $ algokit task sign --account {YOUR_ACCOUNT_ALIAS OR YOUR_ADDRESS} --file {PATH_TO_BINARY_FILE_CONTAINING_TRANSACTIONS} --force | algokit task send --network {network_name} ``` If the transaction is successfully sent, the transaction ID (txid) will be output to the console. You can check the transaction status at the provided transaction explorer URL. ## Goal Compatibility Please note, at the moment this feature only supports [`goal clerk`](https://developer.algorand.org/docs/clis/goal/clerk/clerk/) compatible transaction objects. ## Further Reading For in-depth details, visit the [send section](../../cli/index.md#send) in the AlgoKit CLI reference documentation. ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:python:testing:docs:testing-guide:index.md: -------------------------------------------------------------------------------- ```markdown # Testing Guide The Algorand Python Testing framework provides powerful tools for testing Algorand Python smart contracts within a Python interpreter. This guide covers the main features and concepts of the framework, helping you write effective tests for your Algorand applications. ```{note} For all code examples in the _Testing Guide_ section, assume `context` is an instance of `AlgopyTestContext` obtained using the `algopy_testing_context()` context manager. All subsequent code is executed within this context. ``` ```{mermaid} graph TD subgraph GA["Your Development Environment"] A["algopy (type stubs)"] B["algopy_testing (testing framework)<br>(You are here 📍)"] C["puya (compiler)"] end subgraph GB["Your Algorand Project"] D[Your Algorand Python contract] end D -->|type hints inferred from| A D -->|compiled using| C D -->|tested via| B ``` > _High-level overview of the relationship between your smart contracts project, Algorand Python Testing framework, Algorand Python type stubs, and the compiler_ The Algorand Python Testing framework streamlines unit testing of your Algorand Python smart contracts by offering functionality to: 1. Simulate the Algorand Virtual Machine (AVM) environment 2. Create and manipulate test accounts, assets, applications, transactions, and ARC4 types 3. Test smart contract classes, including their states, variables, and methods 4. Verify logic signatures and subroutines 5. Manage global state, local state, scratch slots, and boxes in test contexts 6. Simulate transactions and transaction groups, including inner transactions 7. Verify opcode behavior By using this framework, you can ensure your Algorand Python smart contracts function correctly before deploying them to a live network. Key features of the framework include: - `AlgopyTestContext`: The main entry point for testing, providing access to various testing utilities and simulated blockchain state - AVM Type Simulation: Accurate representations of AVM types like `UInt64` and `Bytes` - ARC4 Support: Tools for testing ARC4 contracts and methods, including struct definitions and ABI encoding/decoding - Transaction Simulation: Ability to create and execute various transaction types - State Management: Tools for managing and verifying global and local state changes - Opcode Simulation: Implementations of AVM opcodes for accurate smart contract behavior testing The framework is designed to work seamlessly with Algorand Python smart contracts, allowing developers to write comprehensive unit tests that closely mimic the behavior of contracts on the Algorand blockchain. ## Table of Contents ```{toctree} --- maxdepth: 3 --- concepts avm-types arc4-types transactions contract-testing signature-testing state-management subroutines opcodes ``` ``` -------------------------------------------------------------------------------- /packages/server/src/tools/apiManager/vestige/pools.ts: -------------------------------------------------------------------------------- ```typescript import { Tool, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js'; import { ResponseProcessor } from '../../../utils/responseProcessor.js'; import { env } from '../../../env.js'; export const poolTools: Tool[] = [ { name: 'api_vestige_view_pools', description: 'Get pools', inputSchema: { type: 'object', properties: { network_id: { type: 'integer', description: 'Network ID' }, protocol_id: { type: 'integer', description: 'Optional protocol ID filter' }, other_protocol_id: { type: 'integer', description: 'Optional other protocol ID filter' }, asset_1_id: { type: 'integer', description: 'Optional asset 1 ID filter' }, asset_2_id: { type: 'integer', description: 'Optional asset 2 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'] } } ]; export const handlePoolTools = ResponseProcessor.wrapResourceHandler(async function handlePoolTools(args: any): Promise<any> { const name = args.name; const baseUrl = env.vestige_api_url; let endpoint = ''; switch (name) { case 'api_vestige_view_pools': endpoint = '/pools'; 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 pool data: ${error instanceof Error ? error.message : String(error)}` ); } }); ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.CompileResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / CompileResponse # Class: CompileResponse [modelsv2](../modules/modelsv2.md).CompileResponse Teal compile Result ## Hierarchy - `default` ↳ **`CompileResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.CompileResponse.md#constructor) ### Properties - [attribute\_map](modelsv2.CompileResponse.md#attribute_map) - [hash](modelsv2.CompileResponse.md#hash) - [result](modelsv2.CompileResponse.md#result) - [sourcemap](modelsv2.CompileResponse.md#sourcemap) ### Methods - [get\_obj\_for\_encoding](modelsv2.CompileResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.CompileResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new CompileResponse**(`«destructured»`) Creates a new `CompileResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `hash` | `string` | | › `result` | `string` | | › `sourcemap?` | `Record`\<`string`, `any`\> | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:2532 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### hash • **hash**: `string` base32 SHA512_256 of program bytes (Address style) #### Defined in client/v2/algod/models/types.ts:2514 ___ ### result • **result**: `string` base64 encoded program bytes #### Defined in client/v2/algod/models/types.ts:2519 ___ ### sourcemap • `Optional` **sourcemap**: `Record`\<`string`, `any`\> JSON of the source map #### Defined in client/v2/algod/models/types.ts:2524 ## 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`): [`CompileResponse`](modelsv2.CompileResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`CompileResponse`](modelsv2.CompileResponse.md) #### Defined in client/v2/algod/models/types.ts:2554 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/puya:python:testing:examples:README.md: -------------------------------------------------------------------------------- ```markdown # Algorand Python Testing examples This directory contains examples demonstrating how to use algorand-python-testing to test smart contracts written in Algorand Python. ## Overview `algorand-python-testing` provides a powerful framework for unit testing Algorand smart contracts written in Algorand Python. It allows developers to emulate AVM behavior in a Python interpreter, making it easier to write and run tests for your Algorand applications. ## Key Features 1. **Test Environment Setup**: Use the `context` fixture to set up a test environment that emulates AVM behavior. 2. **Arrange, Act, Assert Pattern**: Examples follow the 'arrange, act, assert' pattern for clear and structured tests. 3. **Asset and Account Creation**: Easily create test assets and accounts using `context.any.asset` and `context.any.account`. 4. **State Manipulation**: Test global and local state changes in your smart contracts. 5. **ABI Method Testing**: Examples of how to test ABI methods in your smart contracts. ## Quickstart To run the examples in a self-contained manner: 1. Install [hatch](https://hatch.pypa.io/latest/) 2. From the root of the repo, run: ```bash hatch run examples:test examples/<example_directory> ``` Replace `<example_directory>` with the specific example you want to run (e.g., `auction`, `abi`, etc.). ## Writing Tests When writing tests for your Algorand smart contracts: 1. Use the `context` fixture to set up your test environment. 2. Create test assets and accounts as needed using `context.any.asset` and `context.any.account`. 3. Interact with your smart contract methods. 4. Assert the expected outcomes, including state changes and transaction results. For detailed examples, refer to the individual test files in each example directory. ## Contributing If you have additional examples or improvements, feel free to contribute by submitting a pull request. 1. Follow the [contribution guidelines](https://github.com/algorandfoundation/algorand-python-testing/blob/main/CONTRIBUTING.md). 2. Create a new folder under `examples/` with your contract/signature and test files. 3. If you are contributing a smart contract example make sure to name the file `contract.py`. For logic signatures, name it `signature.py`. 4. For test files use `test_contract.py` or `test_signature.py` respectively. 5. Use the default PR template when opening a PR, and describe what sort of example are you adding as well as which feature of `algorand-python-testing` it demonstrates. ## Resources - [Algorand Developer Documentation](https://developer.algorand.org/) - [algorand-python](https://algorandfoundation.github.io/puya/) - [algorand-python-testing](https://algorandfoundation.github.io/algorand-python-testing/) - ['arrange, act, assert' patern](https://automationpanda.com/2020/07/07/arrange-act-assert-a-pattern-for-writing-good-tests/) ``` -------------------------------------------------------------------------------- /packages/server/src/tools/knowledgeManager.ts: -------------------------------------------------------------------------------- ```typescript import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js'; import fs from 'fs/promises'; import path from 'path'; import { fileURLToPath } from 'url'; // Tool schemas export const knowledgeToolSchemas = { getKnowledgeDoc: { type: 'object', properties: { documents: { type: 'array', items: { type: 'string' }, description: 'Array of document keys (e.g. ["ARCs:specs:arc-0020.md"])' } }, required: ['documents'] } }; export class KnowledgeManager { static readonly knowledgeTools = [ { name: 'get_knowledge_doc', description: 'Get markdown content for specified knowledge documents', inputSchema: knowledgeToolSchemas.getKnowledgeDoc, } ]; // Tool handlers static async handleTool(name: string, args: Record<string, unknown>) { try { switch (name) { case 'get_knowledge_doc': if (!Array.isArray(args.documents)) { throw new McpError(ErrorCode.InvalidParams, 'Documents array is required'); } const results = await Promise.all(args.documents.map(async (docKey) => { if (typeof docKey !== 'string') { throw new McpError(ErrorCode.InvalidParams, 'Document key must be a string'); } const __dirname = path.dirname(fileURLToPath(import.meta.url)); const twoLevelsUp = path.resolve(__dirname, '../'); console.log('Current directory:', __dirname); try { const filePath = path.resolve( twoLevelsUp, 'resources/knowledge/taxonomy', docKey ); const content = await fs.readFile(filePath, 'utf-8'); return content; } catch (error) { console.error(`[MCP Error] Failed to read document ${docKey}:`, error); throw new McpError( ErrorCode.InternalError, `Failed to read document ${docKey}: ${error instanceof Error ? error.message : 'Unknown error'}` ); } })); return { content: [{ type: 'text', text: JSON.stringify({ documents: results }, null, 2) }] }; default: console.error(`[MCP Error] Unknown tool requested: ${name}`); throw new McpError( ErrorCode.MethodNotFound, `Unknown tool: ${name}` ); } } catch (error) { if (error instanceof McpError) { console.error(`[MCP Error] ${error.code}: ${error.message}`); throw error; } console.error('[MCP Error] Unexpected error:', error); throw new McpError( ErrorCode.InternalError, `Operation failed: ${error instanceof Error ? error.message : 'Unknown error'}` ); } } } ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.ApplicationStateSchema.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / ApplicationStateSchema # Class: ApplicationStateSchema [indexerModels](../modules/indexerModels.md).ApplicationStateSchema Specifies maximums on the number of each type that may be stored. ## Hierarchy - `default` ↳ **`ApplicationStateSchema`** ## Table of contents ### Constructors - [constructor](indexerModels.ApplicationStateSchema.md#constructor) ### Properties - [attribute\_map](indexerModels.ApplicationStateSchema.md#attribute_map) - [numByteSlice](indexerModels.ApplicationStateSchema.md#numbyteslice) - [numUint](indexerModels.ApplicationStateSchema.md#numuint) ### Methods - [get\_obj\_for\_encoding](indexerModels.ApplicationStateSchema.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.ApplicationStateSchema.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationStateSchema**(`«destructured»`) Creates a new `ApplicationStateSchema` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `numByteSlice` | `number` \| `bigint` | | › `numUint` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:1366 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### numByteSlice • **numByteSlice**: `number` \| `bigint` number of byte slices. #### Defined in client/v2/indexer/models/types.ts:1354 ___ ### numUint • **numUint**: `number` \| `bigint` number of uints. #### Defined in client/v2/indexer/models/types.ts:1359 ## 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`): [`ApplicationStateSchema`](indexerModels.ApplicationStateSchema.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationStateSchema`](indexerModels.ApplicationStateSchema.md) #### Defined in client/v2/indexer/models/types.ts:1384 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.AssetHolding.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / AssetHolding # Class: AssetHolding [modelsv2](../modules/modelsv2.md).AssetHolding Describes an asset held by an account. Definition: data/basics/userBalance.go : AssetHolding ## Hierarchy - `default` ↳ **`AssetHolding`** ## Table of contents ### Constructors - [constructor](modelsv2.AssetHolding.md#constructor) ### Properties - [amount](modelsv2.AssetHolding.md#amount) - [assetId](modelsv2.AssetHolding.md#assetid) - [attribute\_map](modelsv2.AssetHolding.md#attribute_map) - [isFrozen](modelsv2.AssetHolding.md#isfrozen) ### Methods - [get\_obj\_for\_encoding](modelsv2.AssetHolding.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.AssetHolding.md#from_obj_for_encoding) ## Constructors ### constructor • **new AssetHolding**(`«destructured»`) Creates a new `AssetHolding` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `amount` | `number` \| `bigint` | | › `assetId` | `number` \| `bigint` | | › `isFrozen` | `boolean` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:1636 ## Properties ### amount • **amount**: `number` \| `bigint` (a) number of units held. #### Defined in client/v2/algod/models/types.ts:1618 ___ ### assetId • **assetId**: `number` \| `bigint` Asset ID of the holding. #### Defined in client/v2/algod/models/types.ts:1623 ___ ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### isFrozen • **isFrozen**: `boolean` (f) whether or not the holding is frozen. #### Defined in client/v2/algod/models/types.ts:1628 ## Methods ### get\_obj\_for\_encoding ▸ **get_obj_for_encoding**(`binary?`): `Record`\<`string`, `any`\> Get an object ready for encoding to either JSON or msgpack. #### Parameters | Name | Type | Default value | Description | | :------ | :------ | :------ | :------ | | `binary` | `boolean` | `false` | Use true to indicate that the encoding can handle raw binary objects (Uint8Arrays). Use false to indicate that raw binary objects should be converted to base64 strings. True should be used for objects that will be encoded with msgpack, and false should be used for objects that will be encoded with JSON. | #### Returns `Record`\<`string`, `any`\> #### Inherited from BaseModel.get\_obj\_for\_encoding #### Defined in client/v2/basemodel.ts:65 ___ ### from\_obj\_for\_encoding ▸ `Static` **from_obj_for_encoding**(`data`): [`AssetHolding`](modelsv2.AssetHolding.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`AssetHolding`](modelsv2.AssetHolding.md) #### Defined in client/v2/algod/models/types.ts:1658 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.StateProofSigSlot.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / StateProofSigSlot # Class: StateProofSigSlot [indexerModels](../modules/indexerModels.md).StateProofSigSlot ## Hierarchy - `default` ↳ **`StateProofSigSlot`** ## Table of contents ### Constructors - [constructor](indexerModels.StateProofSigSlot.md#constructor) ### Properties - [attribute\_map](indexerModels.StateProofSigSlot.md#attribute_map) - [lowerSigWeight](indexerModels.StateProofSigSlot.md#lowersigweight) - [signature](indexerModels.StateProofSigSlot.md#signature) ### Methods - [get\_obj\_for\_encoding](indexerModels.StateProofSigSlot.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.StateProofSigSlot.md#from_obj_for_encoding) ## Constructors ### constructor • **new StateProofSigSlot**(`«destructured»`) Creates a new `StateProofSigSlot` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `lowerSigWeight?` | `number` \| `bigint` | | › `signature?` | [`StateProofSignature`](indexerModels.StateProofSignature.md) | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:3705 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### lowerSigWeight • `Optional` **lowerSigWeight**: `number` \| `bigint` (l) The total weight of signatures in the lower-numbered slots. #### Defined in client/v2/indexer/models/types.ts:3696 ___ ### signature • `Optional` **signature**: [`StateProofSignature`](indexerModels.StateProofSignature.md) #### Defined in client/v2/indexer/models/types.ts:3698 ## 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`): [`StateProofSigSlot`](indexerModels.StateProofSigSlot.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`StateProofSigSlot`](indexerModels.StateProofSigSlot.md) #### Defined in client/v2/indexer/models/types.ts:3723 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.Version.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / Version # Class: Version [modelsv2](../modules/modelsv2.md).Version algod version information. ## Hierarchy - `default` ↳ **`Version`** ## Table of contents ### Constructors - [constructor](modelsv2.Version.md#constructor) ### Properties - [attribute\_map](modelsv2.Version.md#attribute_map) - [build](modelsv2.Version.md#build) - [genesisHashB64](modelsv2.Version.md#genesishashb64) - [genesisId](modelsv2.Version.md#genesisid) - [versions](modelsv2.Version.md#versions) ### Methods - [get\_obj\_for\_encoding](modelsv2.Version.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.Version.md#from_obj_for_encoding) ## Constructors ### constructor • **new Version**(`«destructured»`) Creates a new `Version` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `build` | [`BuildVersion`](modelsv2.BuildVersion.md) | | › `genesisHashB64` | `string` \| `Uint8Array` | | › `genesisId` | `string` | | › `versions` | `string`[] | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:6012 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### build • **build**: [`BuildVersion`](modelsv2.BuildVersion.md) #### Defined in client/v2/algod/models/types.ts:5997 ___ ### genesisHashB64 • **genesisHashB64**: `Uint8Array` #### Defined in client/v2/algod/models/types.ts:5999 ___ ### genesisId • **genesisId**: `string` #### Defined in client/v2/algod/models/types.ts:6001 ___ ### versions • **versions**: `string`[] #### Defined in client/v2/algod/models/types.ts:6003 ## 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`): [`Version`](modelsv2.Version.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`Version`](modelsv2.Version.md) #### Defined in client/v2/algod/models/types.ts:6041 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:indexerModels.ApplicationResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [indexerModels](../modules/indexerModels.md) / ApplicationResponse # Class: ApplicationResponse [indexerModels](../modules/indexerModels.md).ApplicationResponse ## Hierarchy - `default` ↳ **`ApplicationResponse`** ## Table of contents ### Constructors - [constructor](indexerModels.ApplicationResponse.md#constructor) ### Properties - [application](indexerModels.ApplicationResponse.md#application) - [attribute\_map](indexerModels.ApplicationResponse.md#attribute_map) - [currentRound](indexerModels.ApplicationResponse.md#currentround) ### Methods - [get\_obj\_for\_encoding](indexerModels.ApplicationResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](indexerModels.ApplicationResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new ApplicationResponse**(`«destructured»`) Creates a new `ApplicationResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `application?` | [`Application`](indexerModels.Application.md) | | › `currentRound` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/indexer/models/types.ts:1312 ## Properties ### application • `Optional` **application**: [`Application`](indexerModels.Application.md) Application index and its parameters #### Defined in client/v2/indexer/models/types.ts:1305 ___ ### 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:1300 ## 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`): [`ApplicationResponse`](indexerModels.ApplicationResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`ApplicationResponse`](indexerModels.ApplicationResponse.md) #### Defined in client/v2/indexer/models/types.ts:1330 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/tealscript:guides_lifecycle.md: -------------------------------------------------------------------------------- ```markdown --- title: Lifecycle Methods --- ## Create, Update, and Delete By default, Algorand applications can be created, updated, and deleted. In TEALScript, applications can be created by default, but cannot be updated to deleted. The default `createApplication` method won't run any logic, but rather simply create the application on the chain. ### Modifying create logic To modify the logic executed upon applicaiton creation (for example, to set default storage values) your contract class must implement a method to override `createApplication`. #### Example ```typescript class Counter extends Contract { counter = GlobalStateKey<uint64>(); createApplication(startingNumber: uint64): void { this.counter.value = startingNumber } } ``` ### Implementing a updateApplication Method By default, TEALScript contracts cannot be updated. To allow a contract to be updated, a method that overrides `Contract.updateApplication` must be implemented. #### Example ```typescript class Counter extends Contract { counter = GlobalStateKey<uint64>(); createApplication(startingNumber: uint64): void { this.counter.value = startingNumber } updateApplication(): void { assert(this.txn.sender === this.app.creator) } } ``` ### Implementing a deleteApplication Method By defualt, TEALScript contracts cannot be deleted. To allow a contract to be deleted, a method that overrides `deleteApplication` must be implemented. #### Example ```typescript class Counter extends Contract { counter = GlobalStateKey<uint64>(); createApplication(startingNumber: uint64): void { this.counter.value = startingNumber } deleteApplication(): void { assert(this.txn.sender === this.app.creator) } } ``` ## OptIn, CloseOut, and ClearState If your contract uses local state, you will need to override the `optInToApplication` method and override `closeOutOfApplication` and/or `clearState` as desired. To learn more about contract state, see [this page](./storage.md) ## Advanced OnComplete Control To have more granular control on what OnComplete a specific method allows, use the `allow.call` or `allow.create` decorator to control allowed OnCompletes when calling or creating the application. ### Example ```typescript class Counter extends Contract { counter = LocalStateKey<uint64>(); // This method will increment a counter in local state @allow.create('OptIn') // Allow an OptIn create so the creators counter can be set when creating the app @allow.call('OptIn') // Allow anyone to OptIn to the contract so they can use local state @allow.call('NoOp') // Allow anyone to call the app again with a NoOp call (can only OptIn once) useLocalState(): void { if (!this.counter(this.txn.sender).exists) this.counter(this.txn.sender).value = 1 else this.counter(this.txn.sender).value = this.counter(this.txn.sender).value + 1 } } ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/algokit:utils:typescript:README.md: -------------------------------------------------------------------------------- ```markdown # AlgoKit TypeScript Utilities A set of core Algorand utilities written in TypeScript and released via npm that make it easier to build solutions on Algorand. This project is part of [AlgoKit](https://github.com/algorandfoundation/algokit-cli). The goal of this library is to provide intuitive, productive utility functions that make it easier, quicker and safer to build applications on Algorand. Largely these functions wrap the underlying Algorand SDK, but provide a higher level interface with sensible defaults and capabilities for common tasks. Note: If you prefer Python there's an equivalent [Python utility library](https://github.com/algorandfoundation/algokit-utils-py). [Install](#install) | [Documentation](./docs/README.md) ## Install Before installing, you'll need to decide on the version you want to target. Version 7 and 8 have the same feature set, however v7 leverages algosdk@>=2.9.0<3.0, whereas v8 leverages algosdk@>=3.0.0. Your project and it's dependencies will help you decide which version to target. Once you've decided on the target version, this library can be installed from NPM using your favourite npm client, e.g.: To target algosdk@2 and use version 7 of AlgoKit Utils, run the below: ``` npm install algosdk@^2.9.0 @algorandfoundation/algokit-utils@^7.0.0 ``` To target algosdk@3 and use the latest version of AlgoKit Utils, run the below: ``` npm install algosdk@^3.0.0 @algorandfoundation/algokit-utils ``` Now you can import the library: ```typescript import { AlgorandClient, Config } from '@algorandfoundation/algokit-utils' ``` See [usage](./docs/README.md#usage) for more details. ## Migration Whilst we aim to minimise breaking changes, there are situations where they are required. JSDoc deprecations should guide you through most migration paths inside your IDE, however the migration guides will provide more detailed information should you need it. If you're targetting v7, please refer to the [v7 migration guide](./docs/v7-migration.md). If you're targetting v8, please refer to the [v8 migration guide](./docs/v8-migration.md). ## Guiding principles This library follows the [Guiding Principles of AlgoKit](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/algokit.md#guiding-principles). ## Contributing This is an open source project managed by the Algorand Foundation. See the [AlgoKit contributing page](https://github.com/algorandfoundation/algokit-cli/blob/main/CONTRIBUTING.md) to learn about making improvements. To successfully run the tests in this repository you need to be running LocalNet via [AlgoKit](https://github.com/algorandfoundation/algokit-cli) and also have package dependencies and `.env.template` copied to `.env` (both of which `algokit bootstrap all` can do for you): ``` algokit bootstrap all algokit localnet start ``` To run tests you can use VS Code, or: ``` npm run test ``` ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.BlockLogsResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / BlockLogsResponse # Class: BlockLogsResponse [modelsv2](../modules/modelsv2.md).BlockLogsResponse All logs emitted in the given round. Each app call, whether top-level or inner, that contains logs results in a separate AppCallLogs object. Therefore there may be multiple AppCallLogs with the same application ID and outer transaction ID in the event of multiple inner app calls to the same app. App calls with no logs are not included in the response. AppCallLogs are returned in the same order that their corresponding app call appeared in the block (pre-order traversal of inner app calls) ## Hierarchy - `default` ↳ **`BlockLogsResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.BlockLogsResponse.md#constructor) ### Properties - [attribute\_map](modelsv2.BlockLogsResponse.md#attribute_map) - [logs](modelsv2.BlockLogsResponse.md#logs) ### Methods - [get\_obj\_for\_encoding](modelsv2.BlockLogsResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.BlockLogsResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new BlockLogsResponse**(`logs`) Creates a new `BlockLogsResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `logs` | `Object` | | `logs.logs` | [`AppCallLogs`](modelsv2.AppCallLogs.md)[] | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:2117 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### logs • **logs**: [`AppCallLogs`](modelsv2.AppCallLogs.md)[] #### Defined in client/v2/algod/models/types.ts:2111 ## 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`): [`BlockLogsResponse`](modelsv2.BlockLogsResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`BlockLogsResponse`](modelsv2.BlockLogsResponse.md) #### Defined in client/v2/algod/models/types.ts:2127 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.SupplyResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / SupplyResponse # Class: SupplyResponse [modelsv2](../modules/modelsv2.md).SupplyResponse Supply represents the current supply of MicroAlgos in the system. ## Hierarchy - `default` ↳ **`SupplyResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.SupplyResponse.md#constructor) ### Properties - [attribute\_map](modelsv2.SupplyResponse.md#attribute_map) - [currentRound](modelsv2.SupplyResponse.md#currentround) - [onlineMoney](modelsv2.SupplyResponse.md#onlinemoney) - [totalMoney](modelsv2.SupplyResponse.md#totalmoney) ### Methods - [get\_obj\_for\_encoding](modelsv2.SupplyResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.SupplyResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new SupplyResponse**(`«destructured»`) Creates a new `SupplyResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `currentRound` | `number` \| `bigint` | | › `onlineMoney` | `number` \| `bigint` | | › `totalMoney` | `number` \| `bigint` | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:5573 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### currentRound • **currentRound**: `number` \| `bigint` Round #### Defined in client/v2/algod/models/types.ts:5555 ___ ### onlineMoney • **onlineMoney**: `number` \| `bigint` OnlineMoney #### Defined in client/v2/algod/models/types.ts:5560 ___ ### totalMoney • **totalMoney**: `number` \| `bigint` TotalMoney #### Defined in client/v2/algod/models/types.ts:5565 ## 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`): [`SupplyResponse`](modelsv2.SupplyResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`SupplyResponse`](modelsv2.SupplyResponse.md) #### Defined in client/v2/algod/models/types.ts:5595 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/SDKs:javascript:classes:modelsv2.DryrunResponse.md: -------------------------------------------------------------------------------- ```markdown [algosdk](../README.md) / [Exports](../modules.md) / [modelsv2](../modules/modelsv2.md) / DryrunResponse # Class: DryrunResponse [modelsv2](../modules/modelsv2.md).DryrunResponse DryrunResponse contains per-txn debug information from a dryrun. ## Hierarchy - `default` ↳ **`DryrunResponse`** ## Table of contents ### Constructors - [constructor](modelsv2.DryrunResponse.md#constructor) ### Properties - [attribute\_map](modelsv2.DryrunResponse.md#attribute_map) - [error](modelsv2.DryrunResponse.md#error) - [protocolVersion](modelsv2.DryrunResponse.md#protocolversion) - [txns](modelsv2.DryrunResponse.md#txns) ### Methods - [get\_obj\_for\_encoding](modelsv2.DryrunResponse.md#get_obj_for_encoding) - [from\_obj\_for\_encoding](modelsv2.DryrunResponse.md#from_obj_for_encoding) ## Constructors ### constructor • **new DryrunResponse**(`«destructured»`) Creates a new `DryrunResponse` object. #### Parameters | Name | Type | | :------ | :------ | | `«destructured»` | `Object` | | › `error` | `string` | | › `protocolVersion` | `string` | | › `txns` | [`DryrunTxnResult`](modelsv2.DryrunTxnResult.md)[] | #### Overrides BaseModel.constructor #### Defined in client/v2/algod/models/types.ts:2745 ## Properties ### attribute\_map • **attribute\_map**: `Record`\<`string`, `string`\> #### Inherited from BaseModel.attribute\_map #### Defined in client/v2/basemodel.ts:56 ___ ### error • **error**: `string` #### Defined in client/v2/algod/models/types.ts:2730 ___ ### protocolVersion • **protocolVersion**: `string` Protocol version is the protocol version Dryrun was operated under. #### Defined in client/v2/algod/models/types.ts:2735 ___ ### txns • **txns**: [`DryrunTxnResult`](modelsv2.DryrunTxnResult.md)[] #### Defined in client/v2/algod/models/types.ts:2737 ## 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`): [`DryrunResponse`](modelsv2.DryrunResponse.md) #### Parameters | Name | Type | | :------ | :------ | | `data` | `Record`\<`string`, `any`\> | #### Returns [`DryrunResponse`](modelsv2.DryrunResponse.md) #### Defined in client/v2/algod/models/types.ts:2767 ``` -------------------------------------------------------------------------------- /packages/server/src/resources/knowledge/taxonomy/ARCs:specs:arc-0016.md: -------------------------------------------------------------------------------- ```markdown --- arc: 16 title: Convention for declaring traits of an NFT's description: This is a convention for declaring traits in an NFT's metadata. author: Keegan Thompson (@keeganthomp) discussions-to: https://github.com/algorandfoundation/ARCs/issues/62 status: Final type: Standards Track category: ARC sub-category: Asa created: 2022-01-04 --- # Standard for declaring traits inside non-fungible NFT's metadata ## Abstract The goal is to establish a standard for how traits are declared inside a non-fungible NFT's metadata, for example as specified in ([ARC-3](./arc-0003.md)), ([ARC-69](./arc-0069.md)) or ([ARC-72](./arc-0072.md)). ## 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. If the property `traits` is provided anywhere in the metadata, it **MUST** adhere to the schema below. If the NFT is a part of a larger collection and that collection has traits, all the available traits for the collection **MUST** be listed as a property of the `traits` object. If the NFT does not have a particular trait, it's value **MUST** be "none". The JSON schema for `traits` is as follows: ```json { "title": "Traits for Non-Fungible Token", "type": "object", "properties": { "traits": { "type": "object", "description": "Traits (attributes) that can be used to calculate things like rarity. Values may be strings or numbers" } } } ``` #### Examples ##### Example of an NFT that has traits ```json { "name": "NFT With Traits", "description": "NFT with traits", "image": "https://s3.amazonaws.com/your-bucket/images/two.png", "image_integrity": "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", "properties": { "creator": "Tim Smith", "created_at": "January 2, 2022", "traits": { "background": "red", "shirt_color": "blue", "glasses": "none", "tattoos": 4, } } } ``` ##### Example of an NFT that has no traits ```json { "name": "NFT Without Traits", "description": "NFT without traits", "image": "https://s3.amazonaws.com/your-bucket/images/one.png", "image_integrity": "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=", "properties": { "creator": "John Smith", "created_at": "January 1, 2022", } } ``` ## Rationale A standard for traits is needed so programs know what to expect in order to calculate things like rarity. ## Backwards Compatibility If the metadata does not have the field `traits`, each value of `properties` should be considered a trait. ## Security Considerations None. ## Copyright Copyright and related rights waived via <a href="https://creativecommons.org/publicdomain/zero/1.0/">CCO</a>. ```