#
tokens: 129508/50000 1/942 files (page 93/93)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 93 of 93. Use http://codebase.md/goplausible/algorand-mcp?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── llms-install.md
├── llms.txt
├── package.json
├── packages
│   ├── client
│   │   ├── .env.example
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── src
│   │   │   ├── env.ts
│   │   │   ├── index.ts
│   │   │   └── LocalWallet.ts
│   │   └── tsconfig.json
│   └── server
│       ├── .env.example
│       ├── API specs
│       │   ├── algod_api.json
│       │   ├── indexer_api.json
│       │   ├── mcp.json
│       │   ├── nfd_api.json
│       │   ├── ultrade_api.json
│       │   ├── vestige_api.json
│       │   └── vestige_free_api.json
│       ├── Dockerfile
│       ├── jest.config.js
│       ├── package.json
│       ├── README.md
│       ├── smithery.yaml
│       ├── src
│       │   ├── algorand-client.ts
│       │   ├── env.ts
│       │   ├── index.ts
│       │   ├── resources
│       │   │   ├── index.ts
│       │   │   ├── knowledge
│       │   │   │   ├── ARCs.txt
│       │   │   │   ├── developers-algokit-architecture-decisions.txt
│       │   │   │   ├── developers-algokit-cli.txt
│       │   │   │   ├── developers-algokit-utils-python.txt
│       │   │   │   ├── developers-algokit-utils-typescript.txt
│       │   │   │   ├── developers-clis.txt
│       │   │   │   ├── developers-details.txt
│       │   │   │   ├── developers-liquid-auth.txt
│       │   │   │   ├── developers-nodes.txt
│       │   │   │   ├── developers-puya.txt
│       │   │   │   ├── developers-python.txt
│       │   │   │   ├── developers-sdks-js.txt
│       │   │   │   ├── developers-sdks-python.txt
│       │   │   │   ├── developers-tealscript.txt
│       │   │   │   ├── developers.txt
│       │   │   │   ├── index.ts
│       │   │   │   ├── taxonomy
│       │   │   │   │   ├── algokit-cli:README.md
│       │   │   │   │   ├── algokit:cli:algokit.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2022-11-14_sandbox-approach.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2022-11-22_beaker-testing-strategy.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-01-11_beaker_productionisation_review.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-01-11_brew_install.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-01-12_smart-contract-deployment.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-06-06_frontend-templates.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2023-07-19_advanced_generate_command.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2024-01-13_native_binaries.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2024-01-23_init-wizard-v2.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2024-01-31_binary_distribution.md
│       │   │   │   │   ├── algokit:cli:architecture-decisions:2024-03-06_local_dev_ui_packaging.md
│       │   │   │   │   ├── algokit:cli:articles:output_stability.md
│       │   │   │   │   ├── algokit:cli:cli:index.md
│       │   │   │   │   ├── algokit:cli:features:compile.md
│       │   │   │   │   ├── algokit:cli:features:completions.md
│       │   │   │   │   ├── algokit:cli:features:config.md
│       │   │   │   │   ├── algokit:cli:features:dispenser.md
│       │   │   │   │   ├── algokit:cli:features:doctor.md
│       │   │   │   │   ├── algokit:cli:features:explore.md
│       │   │   │   │   ├── algokit:cli:features:generate.md
│       │   │   │   │   ├── algokit:cli:features:goal.md
│       │   │   │   │   ├── algokit:cli:features:init.md
│       │   │   │   │   ├── algokit:cli:features:localnet.md
│       │   │   │   │   ├── algokit:cli:features:project:bootstrap.md
│       │   │   │   │   ├── algokit:cli:features:project:deploy.md
│       │   │   │   │   ├── algokit:cli:features:project:link.md
│       │   │   │   │   ├── algokit:cli:features:project:list.md
│       │   │   │   │   ├── algokit:cli:features:project:run.md
│       │   │   │   │   ├── algokit:cli:features:project.md
│       │   │   │   │   ├── algokit:cli:features:tasks:analyze.md
│       │   │   │   │   ├── algokit:cli:features:tasks:ipfs.md
│       │   │   │   │   ├── algokit:cli:features:tasks:mint.md
│       │   │   │   │   ├── algokit:cli:features:tasks:nfd.md
│       │   │   │   │   ├── algokit:cli:features:tasks:opt.md
│       │   │   │   │   ├── algokit:cli:features:tasks:send.md
│       │   │   │   │   ├── algokit:cli:features:tasks:sign.md
│       │   │   │   │   ├── algokit:cli:features:tasks:transfer.md
│       │   │   │   │   ├── algokit:cli:features:tasks:vanity_address.md
│       │   │   │   │   ├── algokit:cli:features:tasks:wallet.md
│       │   │   │   │   ├── algokit:cli:features:tasks.md
│       │   │   │   │   ├── algokit:cli:tutorials:algokit-template.md
│       │   │   │   │   ├── algokit:cli:tutorials:intro.md
│       │   │   │   │   ├── algokit:cli:tutorials:smart-contracts.md
│       │   │   │   │   ├── algokit:docs:testnet_api.md
│       │   │   │   │   ├── algokit:lora:README.md
│       │   │   │   │   ├── algokit:README.md
│       │   │   │   │   ├── algokit:utils:python:markdown:apidocs:algokit_utils:algokit_utils.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:account.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:app-client.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:app-deploy.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:client.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:debugger.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:dispenser-client.md
│       │   │   │   │   ├── algokit:utils:python:markdown:capabilities:transfer.md
│       │   │   │   │   ├── algokit:utils:python:markdown:index.md
│       │   │   │   │   ├── algokit:utils:python:README.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:account.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:app-client.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:app-deploy.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:client.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:debugger.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:dispenser-client.md
│       │   │   │   │   ├── algokit:utils:python:source:capabilities:transfer.md
│       │   │   │   │   ├── algokit:utils:python:source:index.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:account.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:algorand-client.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:amount.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:app-client.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:app-deploy.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:app.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:asset.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:client.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:debugging.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:dispenser-client.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:event-emitter.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:indexer.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:testing.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:transaction-composer.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:transaction.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:transfer.md
│       │   │   │   │   ├── algokit:utils:typescript:capabilities:typed-app-clients.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:testing.TestLogger.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:testing.TransactionLogger.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_account_manager.AccountManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_account.MultisigAccount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_account.SigningAccount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_algo_http_client_with_retry.AlgoHttpClientWithRetry.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_creator.AlgorandClientTransactionCreator.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_algorand_client_transaction_sender.AlgorandClientTransactionSender.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_algorand_client.AlgorandClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_amount.AlgoAmount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_arc56.Arc56Method.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_client.AppClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_client.ApplicationClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_deployer.AppDeployer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_factory.AppFactory.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_app_manager.AppManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_asset_manager.AssetManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_async_event_emitter.AsyncEventEmitter.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_client_manager.ClientManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_composer.TransactionComposer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_config.UpdatableConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_dispenser_client.TestNetDispenserApiClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_kmd_account_manager.KmdAccountManager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:classes:types_logic_error.LogicError.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_app.OnSchemaBreak.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_app.OnUpdate.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_indexer.AccountStatus.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_indexer.ApplicationOnComplete.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_indexer.SignatureType.md
│       │   │   │   │   ├── algokit:utils:typescript:code:enums:types_lifecycle_events.EventType.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_account_manager.EnsureFundedResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_account.AccountConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_account.TransactionSignerAccount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_algorand_client_interface.AlgorandClientInterface.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Arc56Contract.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Event.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.Method.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.ProgramSourceInfo.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageKey.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StorageMap.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_arc56.StructField.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallABIArgs.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCallCoreParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientCompilationResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCallInterfaceParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployCoreParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientDeployParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppClientParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.AppSourceMaps.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.FundAppAccountParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppById.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.ResolveAppByIdBase.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_client.SourceMapExport.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppLookup.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_deployer.AppMetadata.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_factory.AppFactoryParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_manager.AppInformation.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxReference.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValueRequestParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_manager.BoxValuesRequestParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSources.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.AppSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.CallConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.DeclaredSchemaValueSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.Hint.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.ReservedSchemaValueSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.Schema.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.SchemaSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.StateSchemaSpec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app_spec.Struct.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppCallParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppCallTransactionResultOfType.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppCompilationResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppDeploymentParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppDeployMetadata.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppLookup.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppMetadata.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppReference.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppState.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.AppStorageSchema.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.BoxName.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.BoxReference.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.BoxValueRequestParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.BoxValuesRequestParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.CompiledTeal.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.CoreAppCallArgs.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.CreateAppParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.RawAppCallArgs.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.TealTemplateParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_app.UpdateAppParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset_manager.AssetInformation.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset_manager.BulkAssetOptInOutResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset.AssetBulkOptInOutParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptInParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset.AssetOptOutParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_asset.CreateAssetParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_client_manager.AlgoSdkClients.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppClient.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_client_manager.TypedAppFactory.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_composer.BuiltTransactions.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_config.Config.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_debugging.AVMTracesEventData.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourceDebugEventData.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_debugging.TealSourcesDebugEventData.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserFundResponse.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.DispenserLimitResponse.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_dispenser_client.TestNetDispenserApiClientParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_indexer.LookupAssetHoldingsOptions.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_logic_error.LogicErrorDetails.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoClientConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_network_client.AlgoConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_network_client.NetworkDetails.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.AlgoKitLogCaptureFixture.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixture.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandFixtureConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.AlgorandTestAutomationContext.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.GetTestAccountParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_testing.LogSnapshotConfig.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.AtomicTransactionComposerToSend.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.ConfirmedTransactionResults.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendAtomicTransactionComposerResults.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResult.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.SendTransactionResults.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionGroupToSend.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transaction.TransactionToSign.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoRekeyParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.AlgoTransferParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.EnsureFundedReturnType.md
│       │   │   │   │   ├── algokit:utils:typescript:code:interfaces:types_transfer.TransferAssetParams.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:index.indexer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:index.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:testing.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_account_manager_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_account_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_account.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algo_http_client_with_retry.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_asset_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_interface.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_creator.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_transaction_sender.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client_transfer_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_algorand_client.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_amount_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_amount.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_arc56.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_client_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_client.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_deployer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_factory_and_client_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_factory.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_app.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_asset_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_asset.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_async_event_emitter_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_async_event_emitter.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_client_manager_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_client_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_composer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_config.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_debugging.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_dispenser_client_spec.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_dispenser_client.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_expand.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_indexer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_kmd_account_manager.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_lifecycle_events.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_logging.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_logic_error.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_network_client.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_testing.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_transaction.md
│       │   │   │   │   ├── algokit:utils:typescript:code:modules:types_transfer.md
│       │   │   │   │   ├── algokit:utils:typescript:code:README.md
│       │   │   │   │   ├── algokit:utils:typescript:README.md
│       │   │   │   │   ├── algokit:utils:typescript:v7-migration.md
│       │   │   │   │   ├── algokit:utils:typescript:v8-migration.md
│       │   │   │   │   ├── ARCs:ARC-template.md
│       │   │   │   │   ├── ARCs:assets:arc-0012:README.md
│       │   │   │   │   ├── ARCs:assets:arc-0034:TemplateForm.md
│       │   │   │   │   ├── ARCs:assets:arc-0062:README.md
│       │   │   │   │   ├── ARCs:pages:nfts.md
│       │   │   │   │   ├── ARCs:pages:wallets.md
│       │   │   │   │   ├── ARCs:README.md
│       │   │   │   │   ├── ARCs:specs:arc-0000.md
│       │   │   │   │   ├── ARCs:specs:arc-0001.md
│       │   │   │   │   ├── ARCs:specs:arc-0002.md
│       │   │   │   │   ├── ARCs:specs:arc-0003.md
│       │   │   │   │   ├── ARCs:specs:arc-0004.md
│       │   │   │   │   ├── ARCs:specs:arc-0005.md
│       │   │   │   │   ├── ARCs:specs:arc-0006.md
│       │   │   │   │   ├── ARCs:specs:arc-0007.md
│       │   │   │   │   ├── ARCs:specs:arc-0008.md
│       │   │   │   │   ├── ARCs:specs:arc-0009.md
│       │   │   │   │   ├── ARCs:specs:arc-0010.md
│       │   │   │   │   ├── ARCs:specs:arc-0011.md
│       │   │   │   │   ├── ARCs:specs:arc-0012.md
│       │   │   │   │   ├── ARCs:specs:arc-0015.md
│       │   │   │   │   ├── ARCs:specs:arc-0016.md
│       │   │   │   │   ├── ARCs:specs:arc-0018.md
│       │   │   │   │   ├── ARCs:specs:arc-0019.md
│       │   │   │   │   ├── ARCs:specs:arc-0020.md
│       │   │   │   │   ├── ARCs:specs:arc-0021.md
│       │   │   │   │   ├── ARCs:specs:arc-0022.md
│       │   │   │   │   ├── ARCs:specs:arc-0023.md
│       │   │   │   │   ├── ARCs:specs:arc-0025.md
│       │   │   │   │   ├── ARCs:specs:arc-0026.md
│       │   │   │   │   ├── ARCs:specs:arc-0028.md
│       │   │   │   │   ├── ARCs:specs:arc-0032.md
│       │   │   │   │   ├── ARCs:specs:arc-0033.md
│       │   │   │   │   ├── ARCs:specs:arc-0034.md
│       │   │   │   │   ├── ARCs:specs:arc-0035.md
│       │   │   │   │   ├── ARCs:specs:arc-0036.md
│       │   │   │   │   ├── ARCs:specs:arc-0042.md
│       │   │   │   │   ├── ARCs:specs:arc-0047.md
│       │   │   │   │   ├── ARCs:specs:arc-0048.md
│       │   │   │   │   ├── ARCs:specs:arc-0049.md
│       │   │   │   │   ├── ARCs:specs:arc-0054.md
│       │   │   │   │   ├── ARCs:specs:arc-0055.md
│       │   │   │   │   ├── ARCs:specs:arc-0056.md
│       │   │   │   │   ├── ARCs:specs:arc-0059.md
│       │   │   │   │   ├── ARCs:specs:arc-0062.md
│       │   │   │   │   ├── ARCs:specs:arc-0065.md
│       │   │   │   │   ├── ARCs:specs:arc-0069.md
│       │   │   │   │   ├── ARCs:specs:arc-0072.md
│       │   │   │   │   ├── ARCs:specs:arc-0073.md
│       │   │   │   │   ├── ARCs:specs:arc-0074.md
│       │   │   │   │   ├── ARCs:specs:arc-0076.md
│       │   │   │   │   ├── ARCs:specs:arc-0078.md
│       │   │   │   │   ├── ARCs:specs:arc-0079.md
│       │   │   │   │   ├── ARCs:specs:arc-0200.md
│       │   │   │   │   ├── clis_index.md
│       │   │   │   │   ├── developer:docs:about.md
│       │   │   │   │   ├── developer:docs:clis:algokey:algokey.md
│       │   │   │   │   ├── developer:docs:clis:algokey:generate.md
│       │   │   │   │   ├── developer:docs:clis:algokey:import.md
│       │   │   │   │   ├── developer:docs:clis:algokey:multisig:append-auth-addr.md
│       │   │   │   │   ├── developer:docs:clis:algokey:multisig:multisig.md
│       │   │   │   │   ├── developer:docs:clis:algokey:part:info.md
│       │   │   │   │   ├── developer:docs:clis:algokey:part:part.md
│       │   │   │   │   ├── developer:docs:clis:algokey:part:reparent.md
│       │   │   │   │   ├── developer:docs:clis:algokey:sign.md
│       │   │   │   │   ├── developer:docs:clis:conduit:conduit.md
│       │   │   │   │   ├── developer:docs:clis:conduit:init.md
│       │   │   │   │   ├── developer:docs:clis:conduit:list:exporters.md
│       │   │   │   │   ├── developer:docs:clis:conduit:list:importers.md
│       │   │   │   │   ├── developer:docs:clis:conduit:list:list.md
│       │   │   │   │   ├── developer:docs:clis:conduit:list:processors.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:diagcfg.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:metric:disable.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:metric:enable.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:metric:metric.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:metric:status.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:disable.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:enable.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:endpoint.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:name.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:status.md
│       │   │   │   │   ├── developer:docs:clis:diagcfg:telemetry:telemetry.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:restart.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:start.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:status.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:stop.md
│       │   │   │   │   ├── developer:docs:clis:goal:node:wait.md
│       │   │   │   │   ├── developer:docs:clis:goal:protocols.md
│       │   │   │   │   ├── developer:docs:clis:goal:report.md
│       │   │   │   │   ├── developer:docs:clis:goal:version.md
│       │   │   │   │   ├── developer:docs:clis:goal:wallet:list.md
│       │   │   │   │   ├── developer:docs:clis:goal:wallet:new.md
│       │   │   │   │   ├── developer:docs:clis:goal:wallet:wallet.md
│       │   │   │   │   ├── developer:docs:clis:indexer:api-config.md
│       │   │   │   │   ├── developer:docs:clis:indexer:daemon.md
│       │   │   │   │   ├── developer:docs:clis:indexer:indexer.md
│       │   │   │   │   ├── developer:docs:clis:indexer:util:util.md
│       │   │   │   │   ├── developer:docs:clis:indexer:util:validator.md
│       │   │   │   │   ├── developer:docs:clis:kmd.md
│       │   │   │   │   ├── developer:docs:clis:tealdbg:debug.md
│       │   │   │   │   ├── developer:docs:clis:tealdbg:remote.md
│       │   │   │   │   ├── developer:docs:clis:tealdbg:tealdbg.md
│       │   │   │   │   ├── developer:docs:details:accounts:create.md
│       │   │   │   │   ├── developer:docs:details:accounts:index.md
│       │   │   │   │   ├── developer:docs:details:accounts:rekey.md
│       │   │   │   │   ├── developer:docs:details:algorand_consensus.md
│       │   │   │   │   ├── developer:docs:details:algorand-networks:betanet.md
│       │   │   │   │   ├── developer:docs:details:algorand-networks:index.md
│       │   │   │   │   ├── developer:docs:details:algorand-networks:mainnet.md
│       │   │   │   │   ├── developer:docs:details:algorand-networks:testnet.md
│       │   │   │   │   ├── developer:docs:details:asa.md
│       │   │   │   │   ├── developer:docs:details:atc.md
│       │   │   │   │   ├── developer:docs:details:atomic_transfers.md
│       │   │   │   │   ├── developer:docs:details:conduit.md
│       │   │   │   │   ├── developer:docs:details:crust.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:guidelines.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:jsonspec.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v1.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v10.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v2.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v3.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v4.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v5.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v6.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v7.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v8.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:opcodes:v9.md
│       │   │   │   │   ├── developer:docs:details:dapps:avm:teal:specification.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:ABI:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:create.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:innertx.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:state.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:apps:txs.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:debugging.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:frontend:apps.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:frontend:smartsigs.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:guidelines.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:smartsigs:index.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:smartsigs:modes.md
│       │   │   │   │   ├── developer:docs:details:dapps:smart-contracts:smartsigs:walkthrough.md
│       │   │   │   │   ├── developer:docs:details:dapps:writing-contracts:beaker.md
│       │   │   │   │   ├── developer:docs:details:dapps:writing-contracts:pyteal.md
│       │   │   │   │   ├── developer:docs:details:dapps:writing-contracts:python.md
│       │   │   │   │   ├── developer:docs:details:encoding.md
│       │   │   │   │   ├── developer:docs:details:ethereum_to_algorand.md
│       │   │   │   │   ├── developer:docs:details:index.md
│       │   │   │   │   ├── developer:docs:details:indexer.md
│       │   │   │   │   ├── developer:docs:details:parameter_tables.md
│       │   │   │   │   ├── developer:docs:details:stateproofs:index.md
│       │   │   │   │   ├── developer:docs:details:stateproofs:light_client.md
│       │   │   │   │   ├── developer:docs:details:technical_faq.md
│       │   │   │   │   ├── developer:docs:details:transactions:index.md
│       │   │   │   │   ├── developer:docs:details:transactions:offline_transactions.md
│       │   │   │   │   ├── developer:docs:details:transactions:payment_prompts.md
│       │   │   │   │   ├── developer:docs:details:transactions:signatures.md
│       │   │   │   │   ├── developer:docs:details:transactions:transactions.md
│       │   │   │   │   ├── developer:docs:details:useful_resources.md
│       │   │   │   │   ├── developer:docs:get-started:algokit.md
│       │   │   │   │   ├── developer:docs:get-started:basics:what_is_blockchain.md
│       │   │   │   │   ├── developer:docs:get-started:basics:whats_a_dapp.md
│       │   │   │   │   ├── developer:docs:get-started:basics:where_to_start.md
│       │   │   │   │   ├── developer:docs:get-started:basics:why_algorand.md
│       │   │   │   │   ├── developer:docs:get-started:tokenization:ft.md
│       │   │   │   │   ├── developer:docs:get-started:tokenization:nft.md
│       │   │   │   │   ├── developer:docs:index.md
│       │   │   │   │   ├── developer:docs:rest-apis:algod.md
│       │   │   │   │   ├── developer:docs:rest-apis:indexer.md
│       │   │   │   │   ├── developer:docs:rest-apis:kmd.md
│       │   │   │   │   ├── developer:docs:rest-apis:restendpoints.md
│       │   │   │   │   ├── developer:docs:run-a-node:operations:catchup.md
│       │   │   │   │   ├── developer:docs:run-a-node:operations:switch_networks.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:generate_keys.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:index.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:offline.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:online.md
│       │   │   │   │   ├── developer:docs:run-a-node:participate:renew.md
│       │   │   │   │   ├── developer:docs:run-a-node:reference:artifacts.md
│       │   │   │   │   ├── developer:docs:run-a-node:reference:config.md
│       │   │   │   │   ├── developer:docs:run-a-node:reference:relay.md
│       │   │   │   │   ├── developer:docs:run-a-node:reference:telemetry-config.md
│       │   │   │   │   ├── developer:docs:run-a-node:setup:indexer.md
│       │   │   │   │   ├── developer:docs:run-a-node:setup:install.md
│       │   │   │   │   ├── developer:docs:run-a-node:setup:node-troubleshooting.md
│       │   │   │   │   ├── developer:docs:run-a-node:setup:types.md
│       │   │   │   │   ├── developer:docs:sdks:go:index.md
│       │   │   │   │   ├── developer:docs:sdks:index.md
│       │   │   │   │   ├── developer:docs:sdks:java:index.md
│       │   │   │   │   ├── developer:docs:sdks:javascript:index.md
│       │   │   │   │   ├── developer:docs:sdks:python:index.md
│       │   │   │   │   ├── developer:python:code:example:accounts.md
│       │   │   │   │   ├── developer:python:code:example:arc4_types.md
│       │   │   │   │   ├── developer:python:code:example:assets.md
│       │   │   │   │   ├── developer:python:code:example:box_storage.md
│       │   │   │   │   ├── developer:python:code:example:control_flow.md
│       │   │   │   │   ├── developer:python:code:example:crypto:merkle_tree.md
│       │   │   │   │   ├── developer:python:code:example:defi:amm.md
│       │   │   │   │   ├── developer:python:code:example:defi:auction.md
│       │   │   │   │   ├── developer:python:code:example:defi:htlc_logicsig.md
│       │   │   │   │   ├── developer:python:code:example:defi:marketplace.md
│       │   │   │   │   ├── developer:python:code:example:events:arc28_events.md
│       │   │   │   │   ├── developer:python:code:example:global_storage.md
│       │   │   │   │   ├── developer:python:code:example:governance:simple_voting.md
│       │   │   │   │   ├── developer:python:code:example:hello_world.md
│       │   │   │   │   ├── developer:python:code:example:inner_transactions.md
│       │   │   │   │   ├── developer:python:code:example:local_storage.md
│       │   │   │   │   ├── developer:python:code:example:nft:proof_of_attendance.md
│       │   │   │   │   ├── developer:python:code:example:privacy:zk_whitelist.md
│       │   │   │   │   ├── developer:python:code:example:scratch_storage.md
│       │   │   │   │   ├── developer:python:code:example:self_payment.md
│       │   │   │   │   ├── developer:python:code:example:struct_in_box.md
│       │   │   │   │   ├── developer:python:code:example:subsidize_app_call.md
│       │   │   │   │   ├── developer:python:code:example:transactions.md
│       │   │   │   │   ├── developer:python:code:example:utility:calculator.md
│       │   │   │   │   ├── devportal-code-examples:projects:python-contract-examples:README.md
│       │   │   │   │   ├── devportal-code-examples:README.md
│       │   │   │   │   ├── docs:.walletconnect:index.md
│       │   │   │   │   ├── docs:.walletconnect:walletconnect-schema.md
│       │   │   │   │   ├── docs:README.md
│       │   │   │   │   ├── docs:scripts:example_tracker:example_list.md
│       │   │   │   │   ├── docs:scripts:README.md
│       │   │   │   │   ├── index.md
│       │   │   │   │   ├── liquid_auth_index.md
│       │   │   │   │   ├── liquid-auth:ARCHITECTURE.md
│       │   │   │   │   ├── liquid-auth:decisions:1-Service-Authentication.md
│       │   │   │   │   ├── liquid-auth:decisions:2-Bidirectional-Communication.md
│       │   │   │   │   ├── liquid-auth:decisions:3-Peer-to-Peer-Signaling.md
│       │   │   │   │   ├── liquid-auth:decisions:4-Fido-Extension.md
│       │   │   │   │   ├── liquid-auth:decisions:README.md
│       │   │   │   │   ├── liquid-auth:docs:architecture.md
│       │   │   │   │   ├── liquid-auth:docs:clients:android:provider-service:authenticate.md
│       │   │   │   │   ├── liquid-auth:docs:clients:android:provider-service:register.md
│       │   │   │   │   ├── liquid-auth:docs:clients:browser:authentication.md
│       │   │   │   │   ├── liquid-auth:docs:clients:browser:example.md
│       │   │   │   │   ├── liquid-auth:docs:introduction.md
│       │   │   │   │   ├── liquid-auth:docs:README.md
│       │   │   │   │   ├── liquid-auth:docs:server:environment-variables.md
│       │   │   │   │   ├── liquid-auth:docs:server:integrations.md
│       │   │   │   │   ├── liquid-auth:docs:server:introduction.md
│       │   │   │   │   ├── liquid-auth:docs:server:running-locally.md
│       │   │   │   │   ├── liquid-auth:README.md
│       │   │   │   │   ├── liquid-auth:SEQUENCE.md
│       │   │   │   │   ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.request.md
│       │   │   │   │   ├── liquid-auth:services:liquid-auth-api-js:src:assertion:assertion.controller.post.response.md
│       │   │   │   │   ├── liquid-auth:services:liquid-auth-api-js:src:attestation:attestation.controller.post.request.md
│       │   │   │   │   ├── liquid-auth:services:liquid-auth-api-js:src:auth:auth.controller.get.user.md
│       │   │   │   │   ├── liquid-auth:sites:express-dapp:README.md
│       │   │   │   │   ├── liquid-auth:VISION.md
│       │   │   │   │   ├── puya_index.md
│       │   │   │   │   ├── puya:docs:algopy_testing:index.md
│       │   │   │   │   ├── puya:docs:api-algopy.arc4.md
│       │   │   │   │   ├── puya:docs:api-algopy.gtxn.md
│       │   │   │   │   ├── puya:docs:api-algopy.itxn.md
│       │   │   │   │   ├── puya:docs:api-algopy.md
│       │   │   │   │   ├── puya:docs:api-algopy.op.md
│       │   │   │   │   ├── puya:docs:api.md
│       │   │   │   │   ├── puya:docs:compiler.md
│       │   │   │   │   ├── puya:docs:index.md
│       │   │   │   │   ├── puya:docs:language-guide.md
│       │   │   │   │   ├── puya:docs:lg-arc28.md
│       │   │   │   │   ├── puya:docs:lg-arc4.md
│       │   │   │   │   ├── puya:docs:lg-builtins.md
│       │   │   │   │   ├── puya:docs:lg-calling-apps.md
│       │   │   │   │   ├── puya:docs:lg-compile.md
│       │   │   │   │   ├── puya:docs:lg-control.md
│       │   │   │   │   ├── puya:docs:lg-errors.md
│       │   │   │   │   ├── puya:docs:lg-logs.md
│       │   │   │   │   ├── puya:docs:lg-modules.md
│       │   │   │   │   ├── puya:docs:lg-opcode-budget.md
│       │   │   │   │   ├── puya:docs:lg-ops.md
│       │   │   │   │   ├── puya:docs:lg-storage.md
│       │   │   │   │   ├── puya:docs:lg-structure.md
│       │   │   │   │   ├── puya:docs:lg-transactions.md
│       │   │   │   │   ├── puya:docs:lg-types.md
│       │   │   │   │   ├── puya:docs:lg-unsupported-python-features.md
│       │   │   │   │   ├── puya:docs:principles.md
│       │   │   │   │   ├── puya:examples:auction:README.md
│       │   │   │   │   ├── puya:python:testing:docs:algopy.md
│       │   │   │   │   ├── puya:python:testing:docs:api.md
│       │   │   │   │   ├── puya:python:testing:docs:coverage.md
│       │   │   │   │   ├── puya:python:testing:docs:examples.md
│       │   │   │   │   ├── puya:python:testing:docs:faq.md
│       │   │   │   │   ├── puya:python:testing:docs:index.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:arc4-types.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:avm-types.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:concepts.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:contract-testing.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:index.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:opcodes.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:signature-testing.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:state-management.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:subroutines.md
│       │   │   │   │   ├── puya:python:testing:docs:testing-guide:transactions.md
│       │   │   │   │   ├── puya:python:testing:examples:README.md
│       │   │   │   │   ├── puya:python:testing:README.md
│       │   │   │   │   ├── puya:README.md
│       │   │   │   │   ├── puya:src:puya:ARCHITECTURE.md
│       │   │   │   │   ├── puya:src:puyapy:_typeshed:README.md
│       │   │   │   │   ├── puya:src:puyapy:_vendor:mypy:typeshed:stdlib:_typeshed:README.md
│       │   │   │   │   ├── puya:src:puyapy:awst_build:README.md
│       │   │   │   │   ├── puya:stubs:README.md
│       │   │   │   │   ├── puya:tests:test_expected_output:README.md
│       │   │   │   │   ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-bytes-and-strings.md
│       │   │   │   │   ├── puya:typescript:docs:architecture-decisions:2024-05-21_primitive-integer-types.md
│       │   │   │   │   ├── puya:typescript:docs:README.md
│       │   │   │   │   ├── puya:typescript:packages:algo-ts:readme.md
│       │   │   │   │   ├── puya:typescript:README.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIAddressType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIArrayDynamicType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIArrayStaticType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIBoolType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIByteType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIContract.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIInterface.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIMethod.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIStringType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABITupleType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIUfixedType.md
│       │   │   │   │   ├── SDKs:javascript:classes:ABIUintType.md
│       │   │   │   │   ├── SDKs:javascript:classes:Algodv2.md
│       │   │   │   │   ├── SDKs:javascript:classes:AtomicTransactionComposer.md
│       │   │   │   │   ├── SDKs:javascript:classes:DryrunResult.md
│       │   │   │   │   ├── SDKs:javascript:classes:Indexer.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Account.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AccountParticipation.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AccountResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AccountsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AccountStateDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Application.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationLocalState.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationLocalStatesResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationLogData.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationLogsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationParams.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ApplicationStateSchema.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Asset.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetBalancesResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetHolding.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetHoldingsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetParams.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.AssetsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Block.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BlockRewards.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BlockUpgradeState.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BlockUpgradeVote.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Box.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BoxDescriptor.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.BoxesResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ErrorResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.EvalDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.EvalDeltaKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.HashFactory.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.HealthCheck.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.IndexerStateProofMessage.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.MerkleArrayProof.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.MiniAssetHolding.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.ParticipationUpdates.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofFields.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofParticipant.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofReveal.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofSignature.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofSigSlot.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofTracking.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateProofVerifier.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.StateSchema.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TealKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TealValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.Transaction.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionApplication.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionAssetConfig.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionAssetFreeze.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionAssetTransfer.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionKeyreg.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionPayment.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionSignature.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionSignatureLogicsig.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisig.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionSignatureMultisigSubsignature.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:indexerModels.TransactionStateProof.md
│       │   │   │   │   ├── SDKs:javascript:classes:Kmd.md
│       │   │   │   │   ├── SDKs:javascript:classes:LogicSig.md
│       │   │   │   │   ├── SDKs:javascript:classes:LogicSigAccount.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Account.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountApplicationResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountAssetHolding.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountAssetResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountAssetsInformationResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountParticipation.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AccountStateDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AppCallLogs.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Application.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationInitialStates.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationKVStorage.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationLocalReference.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationLocalState.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationParams.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationStateOperation.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ApplicationStateSchema.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Asset.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AssetHolding.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AssetHoldingReference.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AssetParams.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AvmKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.AvmValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BlockHashResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BlockLogsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BlockResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BlockTxidsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Box.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BoxDescriptor.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BoxesResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BoxReference.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.BuildVersion.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.CompileResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DisassembleResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunRequest.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunSource.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunState.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.DryrunTxnResult.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ErrorResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.EvalDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.EvalDeltaKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.GetBlockTimeStampOffsetResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.GetSyncRoundResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.KvDelta.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.LedgerStateDeltaForTransactionGroup.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.LightBlockHeaderProof.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.NodeStatusResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.PendingTransactionResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.PendingTransactionsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.PostTransactionsResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.ScratchChange.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateInitialStates.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateRequest.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateRequestTransactionGroup.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateTraceConfig.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateTransactionGroupResult.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateTransactionResult.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulateUnnamedResourcesAccessed.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulationEvalOverrides.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulationOpcodeTraceUnit.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SimulationTransactionExecTrace.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.StateProof.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.StateProofMessage.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.SupplyResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TealKeyValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TealValue.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TransactionGroupLedgerStateDeltasForRoundResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TransactionParametersResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.TransactionProofResponse.md
│       │   │   │   │   ├── SDKs:javascript:classes:modelsv2.Version.md
│       │   │   │   │   ├── SDKs:javascript:classes:SourceMap.md
│       │   │   │   │   ├── SDKs:javascript:classes:Transaction.md
│       │   │   │   │   ├── SDKs:javascript:enums:ABIReferenceType.md
│       │   │   │   │   ├── SDKs:javascript:enums:ABITransactionType.md
│       │   │   │   │   ├── SDKs:javascript:enums:AtomicTransactionComposerStatus.md
│       │   │   │   │   ├── SDKs:javascript:enums:IntDecoding.md
│       │   │   │   │   ├── SDKs:javascript:enums:OnApplicationComplete.md
│       │   │   │   │   ├── SDKs:javascript:enums:TransactionType.md
│       │   │   │   │   ├── SDKs:javascript:examples:README.md
│       │   │   │   │   ├── SDKs:javascript:FAQ.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIContractNetworkInfo.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIContractNetworks.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIContractParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIInterfaceParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIMethodArgParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIMethodParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIMethodReturnParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:ABIResult.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:Account.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:Address.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:AlgodTokenHeader.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:BaseHTTPClient.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:BaseHTTPClientError.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:BaseHTTPClientResponse.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:BoxReference.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:CustomTokenHeader.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedAssetParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedBoxReference.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedGlobalStateSchema.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedLocalStateSchema.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedLogicSig.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedLogicSigAccount.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedMultisig.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedSignedTransaction.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedSubsig.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:EncodedTransaction.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:IndexerTokenHeader.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:KMDTokenHeader.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:MultisigMetadata.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:SignedTransaction.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:SuggestedParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:TransactionParams.md
│       │   │   │   │   ├── SDKs:javascript:interfaces:TransactionWithSigner.md
│       │   │   │   │   ├── SDKs:javascript:modules:indexerModels.md
│       │   │   │   │   ├── SDKs:javascript:modules:modelsv2.md
│       │   │   │   │   ├── SDKs:javascript:modules.md
│       │   │   │   │   ├── SDKs:javascript:README.md
│       │   │   │   │   ├── SDKs:python:algosdk:v2client:harness:README.md
│       │   │   │   │   ├── SDKs:python:examples:README.md
│       │   │   │   │   ├── SDKs:python:README.md
│       │   │   │   │   ├── tealscript:examples_amm_README.md
│       │   │   │   │   ├── tealscript:examples_auction_README.md
│       │   │   │   │   ├── tealscript:examples_big_box_README.md
│       │   │   │   │   ├── tealscript:examples_itxns_README.md
│       │   │   │   │   ├── tealscript:examples_lsig_with_app_README.md
│       │   │   │   │   ├── tealscript:examples_reti_README.md
│       │   │   │   │   ├── tealscript:FEATURES.md
│       │   │   │   │   ├── tealscript:guides_atomic_txn.md
│       │   │   │   │   ├── tealscript:guides_features.md
│       │   │   │   │   ├── tealscript:guides_getting_started.md
│       │   │   │   │   ├── tealscript:guides_inner_transactions.md
│       │   │   │   │   ├── tealscript:guides_lifecycle.md
│       │   │   │   │   ├── tealscript:guides_math.md
│       │   │   │   │   ├── tealscript:guides_methods.md
│       │   │   │   │   ├── tealscript:guides_multiple_contracts.md
│       │   │   │   │   ├── tealscript:guides_pyteal.md
│       │   │   │   │   ├── tealscript:guides_storage.md
│       │   │   │   │   ├── tealscript:guides_Supported Types_arrays.md
│       │   │   │   │   ├── tealscript:guides_Supported Types_numbers.md
│       │   │   │   │   ├── TEALScript:README.md
│       │   │   │   │   ├── tealscript:tests_test_package_README.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0001-intro.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0002-init.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0003-contract.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0004-artifacts.md
│       │   │   │   │   ├── tealscript:tutorials_Hello World_0005-hello.md
│       │   │   │   │   └── tealscript:tutorials_Hello World_0006-test.md
│       │   │   │   └── taxonomy-categories
│       │   │   │       ├── algokit-utils.json
│       │   │   │       ├── algokit.json
│       │   │   │       ├── arcs.json
│       │   │   │       ├── clis.json
│       │   │   │       ├── details.json
│       │   │   │       ├── developers.json
│       │   │   │       ├── liquid-auth.json
│       │   │   │       ├── nodes.json
│       │   │   │       ├── puya.json
│       │   │   │       ├── python.json
│       │   │   │       ├── sdks.json
│       │   │   │       └── tealscript.json
│       │   │   └── wallet
│       │   │       └── index.ts
│       │   ├── tools
│       │   │   ├── accountManager.ts
│       │   │   ├── algodManager.ts
│       │   │   ├── apiManager
│       │   │   │   ├── algod
│       │   │   │   │   ├── account.ts
│       │   │   │   │   ├── application.ts
│       │   │   │   │   ├── asset.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   └── transaction.ts
│       │   │   │   ├── example
│       │   │   │   │   ├── get-balance.ts
│       │   │   │   │   └── index.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── indexer
│       │   │   │   │   ├── account.ts
│       │   │   │   │   ├── application.ts
│       │   │   │   │   ├── asset.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   └── transaction.ts
│       │   │   │   ├── nfd
│       │   │   │   │   └── index.ts
│       │   │   │   ├── tinyman
│       │   │   │   │   ├── analytics.ts
│       │   │   │   │   ├── bootstrap.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   ├── liquidity.ts
│       │   │   │   │   ├── opt_in.ts
│       │   │   │   │   ├── pool.ts
│       │   │   │   │   ├── remove_liquidity.ts
│       │   │   │   │   └── swap.ts
│       │   │   │   ├── ultrade
│       │   │   │   │   ├── index.ts
│       │   │   │   │   ├── market.ts
│       │   │   │   │   ├── system.ts
│       │   │   │   │   └── wallet.ts
│       │   │   │   └── vestige
│       │   │   │       ├── assets.ts
│       │   │   │       ├── balances.ts
│       │   │   │       ├── index.ts
│       │   │   │       ├── networks.ts
│       │   │   │       ├── notes.ts
│       │   │   │       ├── pools.ts
│       │   │   │       ├── protocols.ts
│       │   │   │       ├── swaps.ts
│       │   │   │       └── vaults.ts
│       │   │   ├── arc26Manager.ts
│       │   │   ├── index.ts
│       │   │   ├── knowledgeManager.ts
│       │   │   ├── transactionManager
│       │   │   │   ├── accountTransactions.ts
│       │   │   │   ├── appTransactions
│       │   │   │   │   ├── callTxn.ts
│       │   │   │   │   ├── clearTxn.ts
│       │   │   │   │   ├── closeOutTxn.ts
│       │   │   │   │   ├── createTxn.ts
│       │   │   │   │   ├── deleteTxn.ts
│       │   │   │   │   ├── index.ts
│       │   │   │   │   ├── optInTxn.ts
│       │   │   │   │   ├── test
│       │   │   │   │   │   ├── counter_approval.teal
│       │   │   │   │   │   ├── counter_clear.teal
│       │   │   │   │   │   ├── storage_test_approval_v2.teal
│       │   │   │   │   │   ├── storage_test_approval.teal
│       │   │   │   │   │   └── storage_test_clear.teal
│       │   │   │   │   ├── types.ts
│       │   │   │   │   └── updateTxn.ts
│       │   │   │   ├── assetTransactions.ts
│       │   │   │   ├── generalTransaction.ts
│       │   │   │   └── index.ts
│       │   │   └── utilityManager.ts
│       │   ├── types.ts
│       │   └── utils
│       │       └── responseProcessor.ts
│       ├── tests
│       │   ├── resources
│       │   │   ├── algod
│       │   │   │   ├── account.test.ts
│       │   │   │   ├── application.test.ts
│       │   │   │   ├── asset.test.ts
│       │   │   │   └── transaction.test.ts
│       │   │   └── indexer
│       │   │       ├── account.test.ts
│       │   │       ├── application.test.ts
│       │   │       ├── asset.test.ts
│       │   │       └── transaction.test.ts
│       │   └── tools
│       │       ├── accountManager.test.ts
│       │       ├── algodManager.test.ts
│       │       ├── apiManager
│       │       │   └── example
│       │       │       └── get-balance.test.ts
│       │       ├── transactionManager
│       │       │   ├── accountTransactionManager.test.ts
│       │       │   ├── appTransactionManager.test.ts
│       │       │   ├── assetTransactionManager.test.ts
│       │       │   ├── generalTransactionManager.test.ts
│       │       │   └── transactionManager.test.ts
│       │       └── utilityManager.test.ts
│       └── tsconfig.json
├── README.md
├── rename_files.sh
└── tsconfig.json
```

# Files

--------------------------------------------------------------------------------
/packages/server/API specs/nfd_api.json:
--------------------------------------------------------------------------------

```json
   1 | {
   2 |   "openapi": "3.0.3",
   3 |   "info": {
   4 |     "title": "NFD Management Service",
   5 |     "description": "Service for querying and managing NFDs",
   6 |     "contact": {
   7 |       "name": "Support",
   8 |       "url": "https://discord.gg/7XcuMTfeZP",
   9 |       "email": "[email protected]"
  10 |     },
  11 |     "version": "1.0"
  12 |   },
  13 |   "servers": [
  14 |     {
  15 |       "url": "https://api.nf.domains"
  16 |     },
  17 |     {
  18 |       "url": "https://api.testnet.nf.domains"
  19 |     },
  20 |     {
  21 |       "url": "https://api.betanet.nf.domains"
  22 |     },
  23 |     {
  24 |       "url": "http://localhost:80"
  25 |     }
  26 |   ],
  27 |   "paths": {
  28 |     "/info/openapi3.yaml": {
  29 |       "get": {
  30 |         "tags": [
  31 |           "info"
  32 |         ],
  33 |         "summary": "Download ./pubfiles/openapi3.yaml",
  34 |         "description": "YAML document containing the API swagger definition",
  35 |         "operationId": "info#/info/openapi3.yaml",
  36 |         "responses": {
  37 |           "200": {
  38 |             "description": "File downloaded"
  39 |           }
  40 |         }
  41 |       }
  42 |     },
  43 |     "/info/version": {
  44 |       "get": {
  45 |         "tags": [
  46 |           "info"
  47 |         ],
  48 |         "summary": "version info",
  49 |         "description": "Returns version information for the service",
  50 |         "operationId": "info#version",
  51 |         "responses": {
  52 |           "200": {
  53 |             "description": "OK response.",
  54 |             "content": {
  55 |               "application/json": {
  56 |                 "schema": {
  57 |                   "$ref": "#/components/schemas/VersionResponseBody"
  58 |                 },
  59 |                 "example": {
  60 |                   "appVersion": "5cfa595 [2022-03-20T17:02:35Z]",
  61 |                   "contractVersion": "1.0"
  62 |                 }
  63 |               }
  64 |             }
  65 |           }
  66 |         }
  67 |       }
  68 |     },
  69 |     "/nfd/{nameOrID}": {
  70 |       "get": {
  71 |         "tags": [
  72 |           "nfd"
  73 |         ],
  74 |         "summary": "Get a specific NFD by name or by its application ID",
  75 |         "description": "Get a specific NFD by name or by its application ID",
  76 |         "operationId": "nfd#getNFD",
  77 |         "parameters": [
  78 |           {
  79 |             "name": "view",
  80 |             "in": "query",
  81 |             "description": "View of data to return, tiny, brief (default), or full",
  82 |             "allowEmptyValue": true,
  83 |             "schema": {
  84 |               "type": "string",
  85 |               "description": "View of data to return, tiny, brief (default), or full",
  86 |               "default": "brief",
  87 |               "enum": [
  88 |                 "tiny",
  89 |                 "brief",
  90 |                 "full"
  91 |               ]
  92 |             }
  93 |           },
  94 |           {
  95 |             "name": "poll",
  96 |             "in": "query",
  97 |             "description": "Use if polling waiting for state change - causes notFound to return as 204 instead of 404.  Should only be used when waiting for an NFD to transition from not-existing to being reserved for user to claim",
  98 |             "allowEmptyValue": true,
  99 |             "schema": {
 100 |               "type": "boolean",
 101 |               "description": "Use if polling waiting for state change - causes notFound to return as 204 instead of 404.  Should only be used when waiting for an NFD to transition from not-existing to being reserved for user to claim",
 102 |               "default": false
 103 |             }
 104 |           },
 105 |           {
 106 |             "name": "nocache",
 107 |             "in": "query",
 108 |             "description": "Set to true to return a never-cached result.  Use sparingly and only during certain 'NFD already exists' UX state transitions.",
 109 |             "allowEmptyValue": true,
 110 |             "schema": {
 111 |               "type": "boolean",
 112 |               "description": "Set to true to return a never-cached result.  Use sparingly and only during certain 'NFD already exists' UX state transitions.",
 113 |               "default": false
 114 |             }
 115 |           },
 116 |           {
 117 |             "name": "nameOrID",
 118 |             "in": "path",
 119 |             "required": true,
 120 |             "schema": {
 121 |               "type": "string",
 122 |               "description": "Name of a NFD (alphanumeric only or emojis/alphanumeric), or an NFD Application ID",
 123 |               "example": "silvio.algo",
 124 |               "pattern": "^(.+\\.algo)|(\\d+)$",
 125 |               "minLength": 1,
 126 |               "maxLength": 120
 127 |             },
 128 |             "example": "silvio.algo"
 129 |           },
 130 |           {
 131 |             "name": "if-none-match",
 132 |             "in": "header",
 133 |             "description": "etag",
 134 |             "allowEmptyValue": true,
 135 |             "schema": {
 136 |               "type": "string",
 137 |               "description": "etag"
 138 |             }
 139 |           }
 140 |         ],
 141 |         "responses": {
 142 |           "200": {
 143 |             "description": "OK response.",
 144 |             "headers": {
 145 |               "ETag": {
 146 |                 "description": "ETag",
 147 |                 "schema": {
 148 |                   "type": "string",
 149 |                   "description": "ETag",
 150 |                   "example": "abc123"
 151 |                 },
 152 |                 "example": "abc123"
 153 |               },
 154 |               "cache-control": {
 155 |                 "description": "Cache-Control header",
 156 |                 "schema": {
 157 |                   "type": "string",
 158 |                   "description": "Cache-Control header",
 159 |                   "example": "abc123"
 160 |                 },
 161 |                 "example": "abc123"
 162 |               }
 163 |             },
 164 |             "content": {
 165 |               "application/json": {
 166 |                 "schema": {
 167 |                   "$ref": "#/components/schemas/NfdRecord"
 168 |                 },
 169 |                 "example": {
 170 |                   "appID": 1000000,
 171 |                   "asaID": 1,
 172 |                   "avatarOutdated": false,
 173 |                   "caAlgo": [
 174 |                     "333333333333333333333333333333333333333333333333333333333A"
 175 |                   ],
 176 |                   "category": "premium",
 177 |                   "currentAsOfBlock": 1,
 178 |                   "depositAccount": "333333333333333333333333333333333333333333333333333333333A",
 179 |                   "expired": false,
 180 |                   "match-check": "abc123",
 181 |                   "metaTags": [
 182 |                     "abc123"
 183 |                   ],
 184 |                   "name": "abc123",
 185 |                   "nfdAccount": "333333333333333333333333333333333333333333333333333333333A",
 186 |                   "owner": "333333333333333333333333333333333333333333333333333333333A",
 187 |                   "parentAppID": 1000000,
 188 |                   "properties": {
 189 |                     "internal": {
 190 |                       "abc123": "abc123"
 191 |                     },
 192 |                     "userDefined": {
 193 |                       "ca:b": "abc123"
 194 |                     },
 195 |                     "verified": {
 196 |                       "caAlgo": "abc123"
 197 |                     }
 198 |                   },
 199 |                   "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
 200 |                   "saleType": "buyItNow",
 201 |                   "sellAmount": 1,
 202 |                   "seller": "333333333333333333333333333333333333333333333333333333333A",
 203 |                   "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A",
 204 |                   "state": "minting",
 205 |                   "tags": [
 206 |                     "abc123"
 207 |                   ],
 208 |                   "timeChanged": "1970-01-01T00:00:01Z",
 209 |                   "timeCreated": "1970-01-01T00:00:01Z",
 210 |                   "timeExpires": "1970-01-01T00:00:01Z",
 211 |                   "timePurchased": "1970-01-01T00:00:01Z",
 212 |                   "unverifiedCa": {
 213 |                     "btc": [
 214 |                       "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
 215 |                     ]
 216 |                   },
 217 |                   "unverifiedCaAlgo": [
 218 |                     "333333333333333333333333333333333333333333333333333333333A"
 219 |                   ]
 220 |                 }
 221 |               }
 222 |             }
 223 |           },
 224 |           "204": {
 225 |             "description": "Polling, NFD not found",
 226 |             "headers": {
 227 |               "ETag": {
 228 |                 "description": "ETag",
 229 |                 "schema": {
 230 |                   "type": "string",
 231 |                   "description": "ETag",
 232 |                   "example": "abc123"
 233 |                 },
 234 |                 "example": "abc123"
 235 |               },
 236 |               "cache-control": {
 237 |                 "description": "Cache-Control header",
 238 |                 "schema": {
 239 |                   "type": "string",
 240 |                   "description": "Cache-Control header",
 241 |                   "example": "abc123"
 242 |                 },
 243 |                 "example": "abc123"
 244 |               }
 245 |             }
 246 |           },
 247 |           "304": {
 248 |             "description": "ETag not changed"
 249 |           },
 250 |           "400": {
 251 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
 252 |             "content": {
 253 |               "application/vnd.goa.error": {
 254 |                 "schema": {
 255 |                   "$ref": "#/components/schemas/Error"
 256 |                 }
 257 |               }
 258 |             }
 259 |           },
 260 |           "404": {
 261 |             "description": "notFound: Not Found response.",
 262 |             "content": {
 263 |               "application/vnd.goa.error": {
 264 |                 "schema": {
 265 |                   "$ref": "#/components/schemas/Error"
 266 |                 }
 267 |               }
 268 |             }
 269 |           },
 270 |           "429": {
 271 |             "description": "rateLimited: Too Many Requests response.",
 272 |             "content": {
 273 |               "application/json": {
 274 |                 "schema": {
 275 |                   "$ref": "#/components/schemas/RateLimited"
 276 |                 },
 277 |                 "example": {
 278 |                   "limit": 5,
 279 |                   "secsRemaining": 50
 280 |                 }
 281 |               }
 282 |             }
 283 |           }
 284 |         }
 285 |       }
 286 |     },
 287 |     "/nfd/activity": {
 288 |       "get": {
 289 |         "tags": [
 290 |           "nfd"
 291 |         ],
 292 |         "summary": "Fetch change activity for an NFD",
 293 |         "description": "Fetch change activity for an NFD, specifically general 'block-level' deltas for an NFD",
 294 |         "operationId": "nfd#activity",
 295 |         "parameters": [
 296 |           {
 297 |             "name": "name",
 298 |             "in": "query",
 299 |             "description": "Name(s) of NFDs to fetch activity for.  Specify the same query parameter multiple times for each nane, ie: name=xxx&name=yyy&name=zzz\")",
 300 |             "allowEmptyValue": true,
 301 |             "required": true,
 302 |             "schema": {
 303 |               "type": "array",
 304 |               "items": {
 305 |                 "type": "string",
 306 |                 "example": "abc123"
 307 |               },
 308 |               "description": "Name(s) of NFDs to fetch activity for.  Specify the same query parameter multiple times for each nane, ie: name=xxx&name=yyy&name=zzz\")",
 309 |               "example": [
 310 |                 "silvio.algo"
 311 |               ],
 312 |               "minItems": 1,
 313 |               "maxItems": 20
 314 |             },
 315 |             "example": [
 316 |               "silvio.algo"
 317 |             ]
 318 |           },
 319 |           {
 320 |             "name": "type",
 321 |             "in": "query",
 322 |             "description": "type of activity to retrieve",
 323 |             "allowEmptyValue": true,
 324 |             "schema": {
 325 |               "type": "string",
 326 |               "description": "type of activity to retrieve",
 327 |               "default": "changes",
 328 |               "example": "changes",
 329 |               "enum": [
 330 |                 "changes"
 331 |               ]
 332 |             },
 333 |             "example": "changes"
 334 |           },
 335 |           {
 336 |             "name": "afterTime",
 337 |             "in": "query",
 338 |             "description": "Fetch events that occurred only after the specified time",
 339 |             "allowEmptyValue": true,
 340 |             "schema": {
 341 |               "type": "string",
 342 |               "description": "Fetch events that occurred only after the specified time",
 343 |               "example": "1970-01-01T00:00:01Z",
 344 |               "format": "date-time"
 345 |             },
 346 |             "example": "1970-01-01T00:00:01Z"
 347 |           },
 348 |           {
 349 |             "name": "limit",
 350 |             "in": "query",
 351 |             "description": "Limit the number of results returned, per NFD - max 50",
 352 |             "allowEmptyValue": true,
 353 |             "schema": {
 354 |               "type": "integer",
 355 |               "description": "Limit the number of results returned, per NFD - max 50",
 356 |               "default": 10,
 357 |               "example": 10,
 358 |               "format": "int64",
 359 |               "minimum": 1,
 360 |               "maximum": 50
 361 |             },
 362 |             "example": 10
 363 |           },
 364 |           {
 365 |             "name": "sort",
 366 |             "in": "query",
 367 |             "description": "What to sort on - descending timestamp is default",
 368 |             "allowEmptyValue": true,
 369 |             "schema": {
 370 |               "type": "string",
 371 |               "description": "What to sort on - descending timestamp is default",
 372 |               "default": "timeDesc",
 373 |               "example": "timeAsc",
 374 |               "enum": [
 375 |                 "timeDesc",
 376 |                 "timeAsc"
 377 |               ]
 378 |             },
 379 |             "example": "timeAsc"
 380 |           },
 381 |           {
 382 |             "name": "if-none-match",
 383 |             "in": "header",
 384 |             "description": "etag",
 385 |             "allowEmptyValue": true,
 386 |             "schema": {
 387 |               "type": "string",
 388 |               "description": "etag"
 389 |             }
 390 |           }
 391 |         ],
 392 |         "responses": {
 393 |           "200": {
 394 |             "description": "OK response.",
 395 |             "headers": {
 396 |               "ETag": {
 397 |                 "description": "ETag",
 398 |                 "schema": {
 399 |                   "type": "string",
 400 |                   "description": "ETag",
 401 |                   "example": "abc123"
 402 |                 },
 403 |                 "example": "abc123"
 404 |               },
 405 |               "cache-control": {
 406 |                 "description": "Cache-Control header",
 407 |                 "schema": {
 408 |                   "type": "string",
 409 |                   "description": "Cache-Control header",
 410 |                   "example": "abc123"
 411 |                 },
 412 |                 "example": "abc123"
 413 |               }
 414 |             },
 415 |             "content": {
 416 |               "application/json": {
 417 |                 "schema": {
 418 |                   "type": "array",
 419 |                   "items": {
 420 |                     "$ref": "#/components/schemas/NFDActivity"
 421 |                   },
 422 |                   "example": [
 423 |                     {
 424 |                       "block": 1,
 425 |                       "cache-control": "abc123",
 426 |                       "changes": {
 427 |                         "abc123": "abc123"
 428 |                       },
 429 |                       "etag": "abc123",
 430 |                       "match-check": "abc123",
 431 |                       "name": "abc123",
 432 |                       "timeChanged": "1970-01-01T00:00:01Z"
 433 |                     }
 434 |                   ]
 435 |                 },
 436 |                 "example": [
 437 |                   {
 438 |                     "block": 1,
 439 |                     "cache-control": "abc123",
 440 |                     "changes": {
 441 |                       "abc123": "abc123"
 442 |                     },
 443 |                     "etag": "abc123",
 444 |                     "match-check": "abc123",
 445 |                     "name": "abc123",
 446 |                     "timeChanged": "1970-01-01T00:00:01Z"
 447 |                   }
 448 |                 ]
 449 |               }
 450 |             }
 451 |           },
 452 |           "304": {
 453 |             "description": "ETag not changed"
 454 |           },
 455 |           "400": {
 456 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
 457 |             "content": {
 458 |               "application/vnd.goa.error": {
 459 |                 "schema": {
 460 |                   "$ref": "#/components/schemas/Error"
 461 |                 }
 462 |               }
 463 |             }
 464 |           },
 465 |           "404": {
 466 |             "description": "notFound: Not Found response.",
 467 |             "content": {
 468 |               "application/vnd.goa.error": {
 469 |                 "schema": {
 470 |                   "$ref": "#/components/schemas/Error"
 471 |                 }
 472 |               }
 473 |             }
 474 |           },
 475 |           "429": {
 476 |             "description": "rateLimited: Too Many Requests response.",
 477 |             "content": {
 478 |               "application/json": {
 479 |                 "schema": {
 480 |                   "$ref": "#/components/schemas/RateLimited"
 481 |                 },
 482 |                 "example": {
 483 |                   "limit": 5,
 484 |                   "secsRemaining": 50
 485 |                 }
 486 |               }
 487 |             }
 488 |           }
 489 |         }
 490 |       }
 491 |     },
 492 |     "/nfd/analytics": {
 493 |       "get": {
 494 |         "tags": [
 495 |           "nfd"
 496 |         ],
 497 |         "summary": "Fetch NFD analytics via various filters",
 498 |         "description": "Fetch NFD analytics via various filters",
 499 |         "operationId": "nfd#analytics",
 500 |         "parameters": [
 501 |           {
 502 |             "name": "name",
 503 |             "in": "query",
 504 |             "description": "name or partial match of NFD name to filter on",
 505 |             "allowEmptyValue": true,
 506 |             "schema": {
 507 |               "type": "string",
 508 |               "description": "name or partial match of NFD name to filter on",
 509 |               "example": "abc123"
 510 |             },
 511 |             "example": "abc123"
 512 |           },
 513 |           {
 514 |             "name": "buyer",
 515 |             "in": "query",
 516 |             "description": "Buyer address to filter on",
 517 |             "allowEmptyValue": true,
 518 |             "schema": {
 519 |               "type": "string",
 520 |               "description": "An Algorand Account address",
 521 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
 522 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
 523 |             },
 524 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
 525 |           },
 526 |           {
 527 |             "name": "seller",
 528 |             "in": "query",
 529 |             "description": "Seller address to filter on",
 530 |             "allowEmptyValue": true,
 531 |             "schema": {
 532 |               "type": "string",
 533 |               "description": "An Algorand Account address",
 534 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
 535 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
 536 |             },
 537 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
 538 |           },
 539 |           {
 540 |             "name": "event",
 541 |             "in": "query",
 542 |             "description": "one or more events to filter on",
 543 |             "allowEmptyValue": true,
 544 |             "schema": {
 545 |               "type": "array",
 546 |               "items": {
 547 |                 "type": "string",
 548 |                 "example": "renewed",
 549 |                 "enum": [
 550 |                   "minted",
 551 |                   "renewed",
 552 |                   "offeredForSale",
 553 |                   "canceledSale",
 554 |                   "escrowedOffer",
 555 |                   "sold",
 556 |                   "postedOffer"
 557 |                 ]
 558 |               },
 559 |               "description": "one or more events to filter on",
 560 |               "example": [
 561 |                 "renewed"
 562 |               ]
 563 |             },
 564 |             "example": [
 565 |               "renewed"
 566 |             ]
 567 |           },
 568 |           {
 569 |             "name": "requireBuyer",
 570 |             "in": "query",
 571 |             "description": "Whether the buyer property must be present in the data.  Setting this will exclude auction mint events for eg",
 572 |             "allowEmptyValue": true,
 573 |             "schema": {
 574 |               "type": "boolean",
 575 |               "description": "Whether the buyer property must be present in the data.  Setting this will exclude auction mint events for eg",
 576 |               "example": false
 577 |             },
 578 |             "example": false
 579 |           },
 580 |           {
 581 |             "name": "includeOwner",
 582 |             "in": "query",
 583 |             "description": "Whether to add a currentOwner property to each event with the 'current' owner of the NFD referenced by that event",
 584 |             "allowEmptyValue": true,
 585 |             "schema": {
 586 |               "type": "boolean",
 587 |               "description": "Whether to add a currentOwner property to each event with the 'current' owner of the NFD referenced by that event",
 588 |               "example": false
 589 |             },
 590 |             "example": false
 591 |           },
 592 |           {
 593 |             "name": "excludeNFDAsSeller",
 594 |             "in": "query",
 595 |             "description": "Whether to exclude events where NFDomains is the seller.  If set to true, and filtering on 'sold' event for eg, returned items will will be secondary sales only.",
 596 |             "allowEmptyValue": true,
 597 |             "schema": {
 598 |               "type": "boolean",
 599 |               "description": "Whether to exclude events where NFDomains is the seller.  If set to true, and filtering on 'sold' event for eg, returned items will will be secondary sales only.",
 600 |               "default": false,
 601 |               "example": false
 602 |             },
 603 |             "example": false
 604 |           },
 605 |           {
 606 |             "name": "category",
 607 |             "in": "query",
 608 |             "allowEmptyValue": true,
 609 |             "schema": {
 610 |               "type": "array",
 611 |               "items": {
 612 |                 "type": "string",
 613 |                 "description": "Category of NFD",
 614 |                 "example": "premium",
 615 |                 "enum": [
 616 |                   "curated",
 617 |                   "premium",
 618 |                   "common"
 619 |                 ]
 620 |               },
 621 |               "example": [
 622 |                 "abc123"
 623 |               ]
 624 |             },
 625 |             "example": [
 626 |               "abc123"
 627 |             ]
 628 |           },
 629 |           {
 630 |             "name": "saleType",
 631 |             "in": "query",
 632 |             "allowEmptyValue": true,
 633 |             "schema": {
 634 |               "type": "array",
 635 |               "items": {
 636 |                 "type": "string",
 637 |                 "description": "Sale type of NFD",
 638 |                 "example": "buyItNow",
 639 |                 "enum": [
 640 |                   "auction",
 641 |                   "buyItNow"
 642 |                 ]
 643 |               },
 644 |               "example": [
 645 |                 "abc123"
 646 |               ]
 647 |             },
 648 |             "example": [
 649 |               "abc123"
 650 |             ]
 651 |           },
 652 |           {
 653 |             "name": "length",
 654 |             "in": "query",
 655 |             "description": "Length of NFD",
 656 |             "allowEmptyValue": true,
 657 |             "schema": {
 658 |               "type": "array",
 659 |               "items": {
 660 |                 "type": "string",
 661 |                 "example": "2_letters",
 662 |                 "enum": [
 663 |                   "1_letters",
 664 |                   "2_letters",
 665 |                   "3_letters",
 666 |                   "4_letters",
 667 |                   "5_letters",
 668 |                   "6_letters",
 669 |                   "7_letters",
 670 |                   "8_letters",
 671 |                   "9_letters",
 672 |                   "10+_letters"
 673 |                 ]
 674 |               },
 675 |               "description": "Length of NFD",
 676 |               "example": [
 677 |                 "2_letters"
 678 |               ]
 679 |             },
 680 |             "example": [
 681 |               "2_letters"
 682 |             ]
 683 |           },
 684 |           {
 685 |             "name": "traits",
 686 |             "in": "query",
 687 |             "description": "Traits of NFD",
 688 |             "allowEmptyValue": true,
 689 |             "schema": {
 690 |               "type": "array",
 691 |               "items": {
 692 |                 "type": "string",
 693 |                 "example": "pristine",
 694 |                 "enum": [
 695 |                   "emoji",
 696 |                   "pristine",
 697 |                   "segment"
 698 |                 ]
 699 |               },
 700 |               "description": "Traits of NFD",
 701 |               "example": [
 702 |                 "pristine"
 703 |               ]
 704 |             },
 705 |             "example": [
 706 |               "pristine"
 707 |             ]
 708 |           },
 709 |           {
 710 |             "name": "parentAppID",
 711 |             "in": "query",
 712 |             "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD",
 713 |             "allowEmptyValue": true,
 714 |             "schema": {
 715 |               "type": "integer",
 716 |               "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD",
 717 |               "example": 1000000,
 718 |               "format": "int64"
 719 |             },
 720 |             "example": 1000000
 721 |           },
 722 |           {
 723 |             "name": "minPrice",
 724 |             "in": "query",
 725 |             "description": "Minimum price of NFD",
 726 |             "allowEmptyValue": true,
 727 |             "schema": {
 728 |               "type": "integer",
 729 |               "description": "Minimum price of NFD",
 730 |               "example": 1,
 731 |               "format": "int64"
 732 |             },
 733 |             "example": 1
 734 |           },
 735 |           {
 736 |             "name": "maxPrice",
 737 |             "in": "query",
 738 |             "description": "Maximum price of NFD",
 739 |             "allowEmptyValue": true,
 740 |             "schema": {
 741 |               "type": "integer",
 742 |               "description": "Maximum price of NFD",
 743 |               "example": 1,
 744 |               "format": "int64"
 745 |             },
 746 |             "example": 1
 747 |           },
 748 |           {
 749 |             "name": "afterTime",
 750 |             "in": "query",
 751 |             "description": "Fetch analytics events that occurred only after the specified time",
 752 |             "allowEmptyValue": true,
 753 |             "schema": {
 754 |               "type": "string",
 755 |               "description": "Fetch analytics events that occurred only after the specified time",
 756 |               "example": "1970-01-01T00:00:01Z",
 757 |               "format": "date-time"
 758 |             },
 759 |             "example": "1970-01-01T00:00:01Z"
 760 |           },
 761 |           {
 762 |             "name": "limit",
 763 |             "in": "query",
 764 |             "description": "Limit the number of results returned - max 200",
 765 |             "allowEmptyValue": true,
 766 |             "schema": {
 767 |               "type": "integer",
 768 |               "description": "Limit the number of results returned - max 200",
 769 |               "default": 50,
 770 |               "example": 50,
 771 |               "format": "int64",
 772 |               "minimum": 1,
 773 |               "maximum": 200
 774 |             },
 775 |             "example": 50
 776 |           },
 777 |           {
 778 |             "name": "offset",
 779 |             "in": "query",
 780 |             "description": "Starting document in large list.  Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200",
 781 |             "allowEmptyValue": true,
 782 |             "schema": {
 783 |               "type": "integer",
 784 |               "description": "Starting document in large list.  Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200",
 785 |               "default": 0,
 786 |               "example": 1,
 787 |               "format": "int64",
 788 |               "minimum": 0
 789 |             },
 790 |             "example": 1
 791 |           },
 792 |           {
 793 |             "name": "sort",
 794 |             "in": "query",
 795 |             "description": "What to sort on - descending timestamp is default",
 796 |             "allowEmptyValue": true,
 797 |             "schema": {
 798 |               "type": "string",
 799 |               "description": "What to sort on - descending timestamp is default",
 800 |               "default": "timeDesc",
 801 |               "example": "priceAsc",
 802 |               "enum": [
 803 |                 "timeDesc",
 804 |                 "priceAsc",
 805 |                 "priceDesc"
 806 |               ]
 807 |             },
 808 |             "example": "priceAsc"
 809 |           },
 810 |           {
 811 |             "name": "if-none-match",
 812 |             "in": "header",
 813 |             "description": "etag",
 814 |             "allowEmptyValue": true,
 815 |             "schema": {
 816 |               "type": "string",
 817 |               "description": "etag"
 818 |             }
 819 |           }
 820 |         ],
 821 |         "responses": {
 822 |           "200": {
 823 |             "description": "OK response.",
 824 |             "headers": {
 825 |               "ETag": {
 826 |                 "description": "ETag",
 827 |                 "schema": {
 828 |                   "type": "string",
 829 |                   "description": "ETag",
 830 |                   "example": "abc123"
 831 |                 },
 832 |                 "example": "abc123"
 833 |               },
 834 |               "cache-control": {
 835 |                 "description": "Cache-Control header",
 836 |                 "schema": {
 837 |                   "type": "string",
 838 |                   "description": "Cache-Control header",
 839 |                   "example": "abc123"
 840 |                 },
 841 |                 "example": "abc123"
 842 |               }
 843 |             },
 844 |             "content": {
 845 |               "application/json": {
 846 |                 "schema": {
 847 |                   "$ref": "#/components/schemas/NFDAnalyticRecords"
 848 |                 },
 849 |                 "example": {
 850 |                   "match-check": "abc123",
 851 |                   "results": [
 852 |                     {
 853 |                       "data": {
 854 |                         "block": 1,
 855 |                         "buyer": "abc123",
 856 |                         "carryCost": 1,
 857 |                         "category": "premium",
 858 |                         "currentOwner": "abc123",
 859 |                         "event": "renewed",
 860 |                         "groupID": "abc123",
 861 |                         "metaTags": [
 862 |                           "abc123"
 863 |                         ],
 864 |                         "name": "abc123",
 865 |                         "newExpTime": "1970-01-01T00:00:01Z",
 866 |                         "note": "abc123",
 867 |                         "oneYearRenewalPrice": 1,
 868 |                         "saleType": "buyItNow",
 869 |                         "seller": "abc123"
 870 |                       },
 871 |                       "price": 1,
 872 |                       "priceUsd": 1,
 873 |                       "timestamp": "1970-01-01T00:00:01Z"
 874 |                     }
 875 |                   ],
 876 |                   "total": 1
 877 |                 }
 878 |               }
 879 |             }
 880 |           },
 881 |           "304": {
 882 |             "description": "ETag not changed"
 883 |           },
 884 |           "400": {
 885 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
 886 |             "content": {
 887 |               "application/vnd.goa.error": {
 888 |                 "schema": {
 889 |                   "$ref": "#/components/schemas/Error"
 890 |                 }
 891 |               }
 892 |             }
 893 |           },
 894 |           "404": {
 895 |             "description": "notFound: Not Found response.",
 896 |             "content": {
 897 |               "application/vnd.goa.error": {
 898 |                 "schema": {
 899 |                   "$ref": "#/components/schemas/Error"
 900 |                 }
 901 |               }
 902 |             }
 903 |           },
 904 |           "429": {
 905 |             "description": "rateLimited: Too Many Requests response.",
 906 |             "content": {
 907 |               "application/json": {
 908 |                 "schema": {
 909 |                   "$ref": "#/components/schemas/RateLimited"
 910 |                 },
 911 |                 "example": {
 912 |                   "limit": 5,
 913 |                   "secsRemaining": 50
 914 |                 }
 915 |               }
 916 |             }
 917 |           }
 918 |         }
 919 |       }
 920 |     },
 921 |     "/nfd/badges/{name}": {
 922 |       "get": {
 923 |         "tags": [
 924 |           "nfd"
 925 |         ],
 926 |         "summary": "Fetch badge information (donations/etc) for an NFD",
 927 |         "description": "Fetch badge information (ie: donations) for an NFD",
 928 |         "operationId": "nfd#badges",
 929 |         "parameters": [
 930 |           {
 931 |             "name": "name",
 932 |             "in": "path",
 933 |             "required": true,
 934 |             "schema": {
 935 |               "type": "string",
 936 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
 937 |               "example": "silvio.algo",
 938 |               "pattern": "^.+\\.algo$",
 939 |               "minLength": 1,
 940 |               "maxLength": 120
 941 |             },
 942 |             "example": "silvio.algo"
 943 |           },
 944 |           {
 945 |             "name": "if-none-match",
 946 |             "in": "header",
 947 |             "description": "etag",
 948 |             "allowEmptyValue": true,
 949 |             "schema": {
 950 |               "type": "string",
 951 |               "description": "etag"
 952 |             }
 953 |           }
 954 |         ],
 955 |         "responses": {
 956 |           "200": {
 957 |             "description": "OK response.",
 958 |             "headers": {
 959 |               "ETag": {
 960 |                 "description": "ETag",
 961 |                 "schema": {
 962 |                   "type": "string",
 963 |                   "description": "ETag",
 964 |                   "example": "abc123"
 965 |                 },
 966 |                 "example": "abc123"
 967 |               },
 968 |               "cache-control": {
 969 |                 "description": "Cache-Control header",
 970 |                 "schema": {
 971 |                   "type": "string",
 972 |                   "description": "Cache-Control header",
 973 |                   "example": "abc123"
 974 |                 },
 975 |                 "example": "abc123"
 976 |               }
 977 |             },
 978 |             "content": {
 979 |               "application/json": {
 980 |                 "schema": {
 981 |                   "type": "object",
 982 |                   "example": {
 983 |                     "abc123": [
 984 |                       {
 985 |                         "abc123": "abc123"
 986 |                       }
 987 |                     ]
 988 |                   },
 989 |                   "additionalProperties": {
 990 |                     "type": "array",
 991 |                     "items": {
 992 |                       "type": "object",
 993 |                       "example": {
 994 |                         "abc123": "abc123"
 995 |                       },
 996 |                       "additionalProperties": {
 997 |                         "type": "string",
 998 |                         "example": "abc123"
 999 |                       }
1000 |                     },
1001 |                     "example": [
1002 |                       {
1003 |                         "abc123": "abc123"
1004 |                       }
1005 |                     ]
1006 |                   }
1007 |                 },
1008 |                 "example": {
1009 |                   "abc123": [
1010 |                     {
1011 |                       "abc123": "abc123"
1012 |                     }
1013 |                   ]
1014 |                 }
1015 |               }
1016 |             }
1017 |           },
1018 |           "304": {
1019 |             "description": "ETag not changed"
1020 |           },
1021 |           "400": {
1022 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
1023 |             "content": {
1024 |               "application/vnd.goa.error": {
1025 |                 "schema": {
1026 |                   "$ref": "#/components/schemas/Error"
1027 |                 }
1028 |               }
1029 |             }
1030 |           },
1031 |           "404": {
1032 |             "description": "notFound: Not Found response.",
1033 |             "content": {
1034 |               "application/vnd.goa.error": {
1035 |                 "schema": {
1036 |                   "$ref": "#/components/schemas/Error"
1037 |                 }
1038 |               }
1039 |             }
1040 |           },
1041 |           "429": {
1042 |             "description": "rateLimited: Too Many Requests response.",
1043 |             "content": {
1044 |               "application/json": {
1045 |                 "schema": {
1046 |                   "$ref": "#/components/schemas/RateLimited"
1047 |                 },
1048 |                 "example": {
1049 |                   "limit": 5,
1050 |                   "secsRemaining": 50
1051 |                 }
1052 |               }
1053 |             }
1054 |           }
1055 |         }
1056 |       }
1057 |     },
1058 |     "/nfd/bluesky/leaders": {
1059 |       "get": {
1060 |         "tags": [
1061 |           "nfd"
1062 |         ],
1063 |         "summary": "blueskyLeaders nfd",
1064 |         "description": "Get top bluesky influencers",
1065 |         "operationId": "nfd#blueskyLeaders",
1066 |         "parameters": [
1067 |           {
1068 |             "name": "if-none-match",
1069 |             "in": "header",
1070 |             "description": "etag",
1071 |             "allowEmptyValue": true,
1072 |             "schema": {
1073 |               "type": "string",
1074 |               "description": "etag"
1075 |             }
1076 |           }
1077 |         ],
1078 |         "responses": {
1079 |           "200": {
1080 |             "description": "OK response.",
1081 |             "headers": {
1082 |               "ETag": {
1083 |                 "description": "ETag",
1084 |                 "schema": {
1085 |                   "type": "string",
1086 |                   "description": "ETag",
1087 |                   "example": "abc123"
1088 |                 },
1089 |                 "example": "abc123"
1090 |               },
1091 |               "cache-control": {
1092 |                 "description": "Cache-Control header",
1093 |                 "schema": {
1094 |                   "type": "string",
1095 |                   "description": "Cache-Control header",
1096 |                   "example": "abc123"
1097 |                 },
1098 |                 "example": "abc123"
1099 |               }
1100 |             },
1101 |             "content": {
1102 |               "application/json": {
1103 |                 "schema": {
1104 |                   "type": "array",
1105 |                   "items": {
1106 |                     "$ref": "#/components/schemas/BlueskyRecord"
1107 |                   },
1108 |                   "example": [
1109 |                     {
1110 |                       "blueskydid": "abc123",
1111 |                       "displayName": "abc123",
1112 |                       "followers": 1,
1113 |                       "following": 1,
1114 |                       "handle": "abc123",
1115 |                       "nfd": {
1116 |                         "appID": 1000000,
1117 |                         "asaID": 1,
1118 |                         "avatarOutdated": false,
1119 |                         "caAlgo": [
1120 |                           "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
1121 |                         ],
1122 |                         "cache-control": "abc123",
1123 |                         "category": "abc123",
1124 |                         "currentAsOfBlock": 1,
1125 |                         "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1126 |                         "etag": "abc123",
1127 |                         "expired": false,
1128 |                         "match-check": "abc123",
1129 |                         "metaTags": [
1130 |                           "abc123"
1131 |                         ],
1132 |                         "name": "abc123",
1133 |                         "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1134 |                         "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1135 |                         "parentAppID": 1000000,
1136 |                         "properties": {
1137 |                           "internal": {
1138 |                             "abc123": "abc123"
1139 |                           },
1140 |                           "userDefined": {
1141 |                             "ca:b": "abc123"
1142 |                           },
1143 |                           "verified": {
1144 |                             "caAlgo": "abc123"
1145 |                           }
1146 |                         },
1147 |                         "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1148 |                         "saleType": "abc123",
1149 |                         "sellAmount": 1,
1150 |                         "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1151 |                         "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1152 |                         "state": "abc123",
1153 |                         "tags": [
1154 |                           "abc123"
1155 |                         ],
1156 |                         "timeChanged": "1970-01-01T00:00:01Z",
1157 |                         "timeCreated": "1970-01-01T00:00:01Z",
1158 |                         "timeExpires": "1970-01-01T00:00:01Z",
1159 |                         "timePurchased": "1970-01-01T00:00:01Z",
1160 |                         "unverifiedCa": {
1161 |                           "btc": [
1162 |                             "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
1163 |                           ]
1164 |                         },
1165 |                         "unverifiedCaAlgo": [
1166 |                           "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
1167 |                         ]
1168 |                       },
1169 |                       "posts": 1
1170 |                     }
1171 |                   ]
1172 |                 },
1173 |                 "example": [
1174 |                   {
1175 |                     "blueskydid": "abc123",
1176 |                     "displayName": "abc123",
1177 |                     "followers": 1,
1178 |                     "following": 1,
1179 |                     "handle": "abc123",
1180 |                     "nfd": {
1181 |                       "appID": 1000000,
1182 |                       "asaID": 1,
1183 |                       "avatarOutdated": false,
1184 |                       "caAlgo": [
1185 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
1186 |                       ],
1187 |                       "cache-control": "abc123",
1188 |                       "category": "abc123",
1189 |                       "currentAsOfBlock": 1,
1190 |                       "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1191 |                       "etag": "abc123",
1192 |                       "expired": false,
1193 |                       "match-check": "abc123",
1194 |                       "metaTags": [
1195 |                         "abc123"
1196 |                       ],
1197 |                       "name": "abc123",
1198 |                       "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1199 |                       "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1200 |                       "parentAppID": 1000000,
1201 |                       "properties": {
1202 |                         "internal": {
1203 |                           "abc123": "abc123"
1204 |                         },
1205 |                         "userDefined": {
1206 |                           "ca:b": "abc123"
1207 |                         },
1208 |                         "verified": {
1209 |                           "caAlgo": "abc123"
1210 |                         }
1211 |                       },
1212 |                       "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1213 |                       "saleType": "abc123",
1214 |                       "sellAmount": 1,
1215 |                       "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1216 |                       "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1217 |                       "state": "abc123",
1218 |                       "tags": [
1219 |                         "abc123"
1220 |                       ],
1221 |                       "timeChanged": "1970-01-01T00:00:01Z",
1222 |                       "timeCreated": "1970-01-01T00:00:01Z",
1223 |                       "timeExpires": "1970-01-01T00:00:01Z",
1224 |                       "timePurchased": "1970-01-01T00:00:01Z",
1225 |                       "unverifiedCa": {
1226 |                         "btc": [
1227 |                           "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
1228 |                         ]
1229 |                       },
1230 |                       "unverifiedCaAlgo": [
1231 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
1232 |                       ]
1233 |                     },
1234 |                     "posts": 1
1235 |                   }
1236 |                 ]
1237 |               }
1238 |             }
1239 |           },
1240 |           "304": {
1241 |             "description": "ETag not changed"
1242 |           },
1243 |           "400": {
1244 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
1245 |             "content": {
1246 |               "application/vnd.goa.error": {
1247 |                 "schema": {
1248 |                   "$ref": "#/components/schemas/Error"
1249 |                 }
1250 |               }
1251 |             }
1252 |           },
1253 |           "404": {
1254 |             "description": "notFound: Not Found response.",
1255 |             "content": {
1256 |               "application/vnd.goa.error": {
1257 |                 "schema": {
1258 |                   "$ref": "#/components/schemas/Error"
1259 |                 }
1260 |               }
1261 |             }
1262 |           },
1263 |           "429": {
1264 |             "description": "rateLimited: Too Many Requests response.",
1265 |             "content": {
1266 |               "application/json": {
1267 |                 "schema": {
1268 |                   "$ref": "#/components/schemas/RateLimited"
1269 |                 },
1270 |                 "example": {
1271 |                   "limit": 5,
1272 |                   "secsRemaining": 50
1273 |                 }
1274 |               }
1275 |             }
1276 |           }
1277 |         }
1278 |       }
1279 |     },
1280 |     "/nfd/browse": {
1281 |       "get": {
1282 |         "tags": [
1283 |           "nfd"
1284 |         ],
1285 |         "summary": "Browse NFDs via various filters",
1286 |         "operationId": "nfd#browse",
1287 |         "parameters": [
1288 |           {
1289 |             "name": "name",
1290 |             "in": "query",
1291 |             "description": "name or partial match of NFD name to filter on",
1292 |             "allowEmptyValue": true,
1293 |             "schema": {
1294 |               "type": "string",
1295 |               "description": "name or partial match of NFD name to filter on"
1296 |             }
1297 |           },
1298 |           {
1299 |             "name": "category",
1300 |             "in": "query",
1301 |             "allowEmptyValue": true,
1302 |             "schema": {
1303 |               "type": "array",
1304 |               "items": {
1305 |                 "type": "string",
1306 |                 "description": "Category of NFD",
1307 |                 "example": "premium",
1308 |                 "enum": [
1309 |                   "curated",
1310 |                   "premium",
1311 |                   "common"
1312 |                 ]
1313 |               }
1314 |             }
1315 |           },
1316 |           {
1317 |             "name": "saleType",
1318 |             "in": "query",
1319 |             "allowEmptyValue": true,
1320 |             "schema": {
1321 |               "type": "array",
1322 |               "items": {
1323 |                 "type": "string",
1324 |                 "description": "Sale type of NFD",
1325 |                 "example": "buyItNow",
1326 |                 "enum": [
1327 |                   "auction",
1328 |                   "buyItNow"
1329 |                 ]
1330 |               }
1331 |             }
1332 |           },
1333 |           {
1334 |             "name": "state",
1335 |             "in": "query",
1336 |             "allowEmptyValue": true,
1337 |             "schema": {
1338 |               "type": "array",
1339 |               "items": {
1340 |                 "type": "string",
1341 |                 "description": "State of NFD",
1342 |                 "example": "forSale",
1343 |                 "enum": [
1344 |                   "reserved",
1345 |                   "forSale",
1346 |                   "owned",
1347 |                   "expired"
1348 |                 ]
1349 |               }
1350 |             }
1351 |           },
1352 |           {
1353 |             "name": "parentAppID",
1354 |             "in": "query",
1355 |             "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD",
1356 |             "allowEmptyValue": true,
1357 |             "schema": {
1358 |               "type": "integer",
1359 |               "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD",
1360 |               "example": 1000000,
1361 |               "format": "int64"
1362 |             },
1363 |             "example": 1000000
1364 |           },
1365 |           {
1366 |             "name": "length",
1367 |             "in": "query",
1368 |             "description": "Length of NFD",
1369 |             "allowEmptyValue": true,
1370 |             "schema": {
1371 |               "type": "array",
1372 |               "items": {
1373 |                 "type": "string",
1374 |                 "example": "2_letters",
1375 |                 "enum": [
1376 |                   "1_letters",
1377 |                   "2_letters",
1378 |                   "3_letters",
1379 |                   "4_letters",
1380 |                   "5_letters",
1381 |                   "6_letters",
1382 |                   "7_letters",
1383 |                   "8_letters",
1384 |                   "9_letters",
1385 |                   "10+_letters"
1386 |                 ]
1387 |               },
1388 |               "description": "Length of NFD"
1389 |             }
1390 |           },
1391 |           {
1392 |             "name": "traits",
1393 |             "in": "query",
1394 |             "description": "Traits of NFD",
1395 |             "allowEmptyValue": true,
1396 |             "schema": {
1397 |               "type": "array",
1398 |               "items": {
1399 |                 "type": "string",
1400 |                 "example": "pristine",
1401 |                 "enum": [
1402 |                   "emoji",
1403 |                   "pristine",
1404 |                   "segment"
1405 |                 ]
1406 |               },
1407 |               "description": "Traits of NFD"
1408 |             }
1409 |           },
1410 |           {
1411 |             "name": "owner",
1412 |             "in": "query",
1413 |             "description": "An Algorand account address to find all NFDs owned by that address",
1414 |             "allowEmptyValue": true,
1415 |             "schema": {
1416 |               "type": "string",
1417 |               "description": "An Algorand Account address",
1418 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1419 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
1420 |             },
1421 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
1422 |           },
1423 |           {
1424 |             "name": "reservedFor",
1425 |             "in": "query",
1426 |             "description": "An Algorand account address to find all NFDs reserved for that address",
1427 |             "allowEmptyValue": true,
1428 |             "schema": {
1429 |               "type": "string",
1430 |               "description": "An Algorand Account address",
1431 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1432 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
1433 |             },
1434 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
1435 |           },
1436 |           {
1437 |             "name": "prefix",
1438 |             "in": "query",
1439 |             "description": "The start of an NFD name, fetching multiple NFDs that have that prefix",
1440 |             "allowEmptyValue": true,
1441 |             "schema": {
1442 |               "type": "string",
1443 |               "description": "The start of an NFD name, fetching multiple NFDs that have that prefix",
1444 |               "minLength": 1,
1445 |               "maxLength": 32
1446 |             }
1447 |           },
1448 |           {
1449 |             "name": "substring",
1450 |             "in": "query",
1451 |             "description": "Part of an NFD name, fetching multiple NFDs that have that substring (minimum 3 characters)",
1452 |             "allowEmptyValue": true,
1453 |             "schema": {
1454 |               "type": "string",
1455 |               "description": "Part of an NFD name, fetching multiple NFDs that have that substring (minimum 3 characters)",
1456 |               "minLength": 3,
1457 |               "maxLength": 32
1458 |             }
1459 |           },
1460 |           {
1461 |             "name": "vproperty",
1462 |             "in": "query",
1463 |             "description": "Verified property name to search on - specify value with vvalue",
1464 |             "allowEmptyValue": true,
1465 |             "schema": {
1466 |               "type": "string",
1467 |               "description": "Verified property name to search on - specify value with vvalue",
1468 |               "example": "discord",
1469 |               "enum": [
1470 |                 "blueskydid",
1471 |                 "discord",
1472 |                 "telegram",
1473 |                 "github",
1474 |                 "twitter",
1475 |                 "email",
1476 |                 "domain",
1477 |                 "nostrpubkey"
1478 |               ]
1479 |             },
1480 |             "example": "discord"
1481 |           },
1482 |           {
1483 |             "name": "vvalue",
1484 |             "in": "query",
1485 |             "description": "Value to find in the vproperty field specified with the vproperty parameter",
1486 |             "allowEmptyValue": true,
1487 |             "schema": {
1488 |               "type": "string",
1489 |               "description": "Value to find in the vproperty field specified with the vproperty parameter",
1490 |               "example": "abc123"
1491 |             },
1492 |             "example": "abc123"
1493 |           },
1494 |           {
1495 |             "name": "minPrice",
1496 |             "in": "query",
1497 |             "description": "Minimum price of NFD",
1498 |             "allowEmptyValue": true,
1499 |             "schema": {
1500 |               "type": "integer",
1501 |               "description": "Minimum price of NFD",
1502 |               "format": "int64"
1503 |             }
1504 |           },
1505 |           {
1506 |             "name": "maxPrice",
1507 |             "in": "query",
1508 |             "description": "Maximum price of NFD",
1509 |             "allowEmptyValue": true,
1510 |             "schema": {
1511 |               "type": "integer",
1512 |               "description": "Maximum price of NFD",
1513 |               "format": "int64"
1514 |             }
1515 |           },
1516 |           {
1517 |             "name": "changedAfter",
1518 |             "in": "query",
1519 |             "description": "Fetch NFDs that changed after the specified timestamp",
1520 |             "allowEmptyValue": true,
1521 |             "schema": {
1522 |               "type": "string",
1523 |               "description": "Fetch NFDs that changed after the specified timestamp",
1524 |               "example": "1970-01-01T00:00:01Z",
1525 |               "format": "date-time"
1526 |             },
1527 |             "example": "1970-01-01T00:00:01Z"
1528 |           },
1529 |           {
1530 |             "name": "limit",
1531 |             "in": "query",
1532 |             "description": "Limit the number of results returned - max 200",
1533 |             "allowEmptyValue": true,
1534 |             "schema": {
1535 |               "type": "integer",
1536 |               "description": "Limit the number of results returned - max 200",
1537 |               "default": 50,
1538 |               "format": "int64",
1539 |               "minimum": 1,
1540 |               "maximum": 200
1541 |             }
1542 |           },
1543 |           {
1544 |             "name": "offset",
1545 |             "in": "query",
1546 |             "description": "Starting document in large list.  Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200",
1547 |             "allowEmptyValue": true,
1548 |             "schema": {
1549 |               "type": "integer",
1550 |               "description": "Starting document in large list.  Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200",
1551 |               "default": 0,
1552 |               "format": "int64",
1553 |               "minimum": 0
1554 |             }
1555 |           },
1556 |           {
1557 |             "name": "sort",
1558 |             "in": "query",
1559 |             "description": "What to sort on",
1560 |             "allowEmptyValue": true,
1561 |             "schema": {
1562 |               "type": "string",
1563 |               "description": "What to sort on",
1564 |               "default": "createdDesc",
1565 |               "enum": [
1566 |                 "createdDesc",
1567 |                 "timeChangedDesc",
1568 |                 "soldDesc",
1569 |                 "priceAsc",
1570 |                 "priceDesc",
1571 |                 "highestSaleDesc",
1572 |                 "saleTypeAsc"
1573 |               ]
1574 |             }
1575 |           },
1576 |           {
1577 |             "name": "view",
1578 |             "in": "query",
1579 |             "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only), brief (default), or full",
1580 |             "allowEmptyValue": true,
1581 |             "schema": {
1582 |               "type": "string",
1583 |               "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only), brief (default), or full",
1584 |               "default": "brief",
1585 |               "enum": [
1586 |                 "tiny",
1587 |                 "brief",
1588 |                 "full"
1589 |               ]
1590 |             }
1591 |           },
1592 |           {
1593 |             "name": "if-none-match",
1594 |             "in": "header",
1595 |             "description": "etag",
1596 |             "allowEmptyValue": true,
1597 |             "schema": {
1598 |               "type": "string",
1599 |               "description": "etag"
1600 |             }
1601 |           }
1602 |         ],
1603 |         "responses": {
1604 |           "200": {
1605 |             "description": "OK response.",
1606 |             "headers": {
1607 |               "ETag": {
1608 |                 "description": "ETag",
1609 |                 "schema": {
1610 |                   "type": "string",
1611 |                   "description": "ETag",
1612 |                   "example": "abc123"
1613 |                 },
1614 |                 "example": "abc123"
1615 |               },
1616 |               "cache-control": {
1617 |                 "description": "Cache-Control header",
1618 |                 "schema": {
1619 |                   "type": "string",
1620 |                   "description": "Cache-Control header",
1621 |                   "example": "abc123"
1622 |                 },
1623 |                 "example": "abc123"
1624 |               }
1625 |             },
1626 |             "content": {
1627 |               "application/json": {
1628 |                 "schema": {
1629 |                   "$ref": "#/components/schemas/NfdRecordCollection"
1630 |                 },
1631 |                 "example": [
1632 |                   {
1633 |                     "appID": 1000000,
1634 |                     "asaID": 1,
1635 |                     "avatarOutdated": false,
1636 |                     "caAlgo": [
1637 |                       "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
1638 |                     ],
1639 |                     "cache-control": "abc123",
1640 |                     "category": "abc123",
1641 |                     "currentAsOfBlock": 1,
1642 |                     "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1643 |                     "etag": "abc123",
1644 |                     "expired": false,
1645 |                     "match-check": "abc123",
1646 |                     "metaTags": [
1647 |                       "abc123"
1648 |                     ],
1649 |                     "name": "abc123",
1650 |                     "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1651 |                     "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1652 |                     "parentAppID": 1000000,
1653 |                     "properties": {
1654 |                       "internal": {
1655 |                         "abc123": "abc123"
1656 |                       },
1657 |                       "userDefined": {
1658 |                         "ca:b": "abc123"
1659 |                       },
1660 |                       "verified": {
1661 |                         "caAlgo": "abc123"
1662 |                       }
1663 |                     },
1664 |                     "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1665 |                     "saleType": "abc123",
1666 |                     "sellAmount": 1,
1667 |                     "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1668 |                     "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
1669 |                     "state": "abc123",
1670 |                     "tags": [
1671 |                       "abc123"
1672 |                     ],
1673 |                     "timeChanged": "1970-01-01T00:00:01Z",
1674 |                     "timeCreated": "1970-01-01T00:00:01Z",
1675 |                     "timeExpires": "1970-01-01T00:00:01Z",
1676 |                     "timePurchased": "1970-01-01T00:00:01Z",
1677 |                     "unverifiedCa": {
1678 |                       "btc": [
1679 |                         "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
1680 |                       ]
1681 |                     },
1682 |                     "unverifiedCaAlgo": [
1683 |                       "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
1684 |                     ]
1685 |                   }
1686 |                 ]
1687 |               }
1688 |             }
1689 |           },
1690 |           "304": {
1691 |             "description": "ETag not changed"
1692 |           },
1693 |           "400": {
1694 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
1695 |             "content": {
1696 |               "application/vnd.goa.error": {
1697 |                 "schema": {
1698 |                   "$ref": "#/components/schemas/Error"
1699 |                 }
1700 |               }
1701 |             }
1702 |           },
1703 |           "404": {
1704 |             "description": "notFound: Not Found response.",
1705 |             "content": {
1706 |               "application/vnd.goa.error": {
1707 |                 "schema": {
1708 |                   "$ref": "#/components/schemas/Error"
1709 |                 }
1710 |               }
1711 |             }
1712 |           },
1713 |           "429": {
1714 |             "description": "rateLimited: Too Many Requests response.",
1715 |             "content": {
1716 |               "application/json": {
1717 |                 "schema": {
1718 |                   "$ref": "#/components/schemas/RateLimited"
1719 |                 },
1720 |                 "example": {
1721 |                   "limit": 5,
1722 |                   "secsRemaining": 50
1723 |                 }
1724 |               }
1725 |             }
1726 |           }
1727 |         }
1728 |       }
1729 |     },
1730 |     "/nfd/consensus/leaders": {
1731 |       "get": {
1732 |         "tags": [
1733 |           "nfd"
1734 |         ],
1735 |         "summary": "consensusLeaders nfd",
1736 |         "description": "Get top consensus leaders",
1737 |         "operationId": "nfd#consensusLeaders",
1738 |         "parameters": [
1739 |           {
1740 |             "name": "requireNFD",
1741 |             "in": "query",
1742 |             "description": "should it only match against accounts matching NFD linked addresses",
1743 |             "allowEmptyValue": true,
1744 |             "schema": {
1745 |               "type": "boolean",
1746 |               "description": "should it only match against accounts matching NFD linked addresses",
1747 |               "default": true,
1748 |               "example": false
1749 |             },
1750 |             "example": false
1751 |           },
1752 |           {
1753 |             "name": "if-none-match",
1754 |             "in": "header",
1755 |             "description": "etag",
1756 |             "allowEmptyValue": true,
1757 |             "schema": {
1758 |               "type": "string",
1759 |               "description": "etag"
1760 |             }
1761 |           }
1762 |         ],
1763 |         "responses": {
1764 |           "200": {
1765 |             "description": "OK response.",
1766 |             "headers": {
1767 |               "ETag": {
1768 |                 "description": "ETag",
1769 |                 "schema": {
1770 |                   "type": "string",
1771 |                   "description": "ETag",
1772 |                   "example": "abc123"
1773 |                 },
1774 |                 "example": "abc123"
1775 |               },
1776 |               "cache-control": {
1777 |                 "description": "Cache-Control header",
1778 |                 "schema": {
1779 |                   "type": "string",
1780 |                   "description": "Cache-Control header",
1781 |                   "example": "abc123"
1782 |                 },
1783 |                 "example": "abc123"
1784 |               }
1785 |             },
1786 |             "content": {
1787 |               "application/json": {
1788 |                 "schema": {
1789 |                   "type": "array",
1790 |                   "items": {
1791 |                     "$ref": "#/components/schemas/ConsensusRecord"
1792 |                   },
1793 |                   "example": [
1794 |                     {
1795 |                       "account": "abc123",
1796 |                       "lastPropBlock": 1,
1797 |                       "lastPropTime": "1970-01-01T00:00:01Z",
1798 |                       "lastVoteBlock": 1,
1799 |                       "lastVoteTime": "1970-01-01T00:00:01Z",
1800 |                       "linkType": "abc123",
1801 |                       "ownerAccount": "abc123",
1802 |                       "pctOfOnline": 1,
1803 |                       "proposals": 1,
1804 |                       "rank": 1,
1805 |                       "votes": 1
1806 |                     }
1807 |                   ]
1808 |                 },
1809 |                 "example": [
1810 |                   {
1811 |                     "account": "abc123",
1812 |                     "lastPropBlock": 1,
1813 |                     "lastPropTime": "1970-01-01T00:00:01Z",
1814 |                     "lastVoteBlock": 1,
1815 |                     "lastVoteTime": "1970-01-01T00:00:01Z",
1816 |                     "linkType": "abc123",
1817 |                     "ownerAccount": "abc123",
1818 |                     "pctOfOnline": 1,
1819 |                     "proposals": 1,
1820 |                     "rank": 1,
1821 |                     "votes": 1
1822 |                   }
1823 |                 ]
1824 |               }
1825 |             }
1826 |           },
1827 |           "304": {
1828 |             "description": "ETag not changed"
1829 |           },
1830 |           "400": {
1831 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
1832 |             "content": {
1833 |               "application/vnd.goa.error": {
1834 |                 "schema": {
1835 |                   "$ref": "#/components/schemas/Error"
1836 |                 }
1837 |               }
1838 |             }
1839 |           },
1840 |           "404": {
1841 |             "description": "notFound: Not Found response.",
1842 |             "content": {
1843 |               "application/vnd.goa.error": {
1844 |                 "schema": {
1845 |                   "$ref": "#/components/schemas/Error"
1846 |                 }
1847 |               }
1848 |             }
1849 |           },
1850 |           "429": {
1851 |             "description": "rateLimited: Too Many Requests response.",
1852 |             "content": {
1853 |               "application/json": {
1854 |                 "schema": {
1855 |                   "$ref": "#/components/schemas/RateLimited"
1856 |                 },
1857 |                 "example": {
1858 |                   "limit": 5,
1859 |                   "secsRemaining": 50
1860 |                 }
1861 |               }
1862 |             }
1863 |           }
1864 |         }
1865 |       }
1866 |     },
1867 |     "/nfd/consensus/metrics": {
1868 |       "get": {
1869 |         "tags": [
1870 |           "nfd"
1871 |         ],
1872 |         "summary": "consensusMetrics nfd",
1873 |         "description": "Get general metrics about Algorand consensus",
1874 |         "operationId": "nfd#consensusMetrics",
1875 |         "parameters": [
1876 |           {
1877 |             "name": "if-none-match",
1878 |             "in": "header",
1879 |             "description": "etag",
1880 |             "allowEmptyValue": true,
1881 |             "schema": {
1882 |               "type": "string",
1883 |               "description": "etag"
1884 |             }
1885 |           }
1886 |         ],
1887 |         "responses": {
1888 |           "200": {
1889 |             "description": "OK response.",
1890 |             "headers": {
1891 |               "ETag": {
1892 |                 "description": "ETag",
1893 |                 "schema": {
1894 |                   "type": "string",
1895 |                   "description": "ETag",
1896 |                   "example": "abc123"
1897 |                 },
1898 |                 "example": "abc123"
1899 |               },
1900 |               "cache-control": {
1901 |                 "description": "Cache-Control header",
1902 |                 "schema": {
1903 |                   "type": "string",
1904 |                   "description": "Cache-Control header",
1905 |                   "example": "abc123"
1906 |                 },
1907 |                 "example": "abc123"
1908 |               }
1909 |             },
1910 |             "content": {
1911 |               "application/json": {
1912 |                 "schema": {
1913 |                   "type": "object",
1914 |                   "example": {
1915 |                     "abc123": [
1916 |                       {
1917 |                         "abc123": "abc123"
1918 |                       }
1919 |                     ]
1920 |                   },
1921 |                   "additionalProperties": {
1922 |                     "type": "array",
1923 |                     "items": {
1924 |                       "type": "object",
1925 |                       "example": {
1926 |                         "abc123": "abc123"
1927 |                       },
1928 |                       "additionalProperties": {
1929 |                         "type": "string",
1930 |                         "example": "abc123"
1931 |                       }
1932 |                     },
1933 |                     "example": [
1934 |                       {
1935 |                         "abc123": "abc123"
1936 |                       }
1937 |                     ]
1938 |                   }
1939 |                 },
1940 |                 "example": {
1941 |                   "abc123": [
1942 |                     {
1943 |                       "abc123": "abc123"
1944 |                     }
1945 |                   ]
1946 |                 }
1947 |               }
1948 |             }
1949 |           },
1950 |           "304": {
1951 |             "description": "ETag not changed"
1952 |           },
1953 |           "400": {
1954 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
1955 |             "content": {
1956 |               "application/vnd.goa.error": {
1957 |                 "schema": {
1958 |                   "$ref": "#/components/schemas/Error"
1959 |                 }
1960 |               }
1961 |             }
1962 |           },
1963 |           "404": {
1964 |             "description": "notFound: Not Found response.",
1965 |             "content": {
1966 |               "application/vnd.goa.error": {
1967 |                 "schema": {
1968 |                   "$ref": "#/components/schemas/Error"
1969 |                 }
1970 |               }
1971 |             }
1972 |           },
1973 |           "429": {
1974 |             "description": "rateLimited: Too Many Requests response.",
1975 |             "content": {
1976 |               "application/json": {
1977 |                 "schema": {
1978 |                   "$ref": "#/components/schemas/RateLimited"
1979 |                 },
1980 |                 "example": {
1981 |                   "limit": 5,
1982 |                   "secsRemaining": 50
1983 |                 }
1984 |               }
1985 |             }
1986 |           }
1987 |         }
1988 |       }
1989 |     },
1990 |     "/nfd/contract/lock/{name}": {
1991 |       "post": {
1992 |         "tags": [
1993 |           "nfd"
1994 |         ],
1995 |         "summary": "contractLock nfd",
1996 |         "description": "Lock/Unlock an NFD contract - if locked, the contract can never being modified until unlocked again by the owner.",
1997 |         "operationId": "nfd#contractLock",
1998 |         "parameters": [
1999 |           {
2000 |             "name": "name",
2001 |             "in": "path",
2002 |             "required": true,
2003 |             "schema": {
2004 |               "type": "string",
2005 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
2006 |               "example": "silvio.algo",
2007 |               "pattern": "^.+\\.algo$",
2008 |               "minLength": 1,
2009 |               "maxLength": 120
2010 |             },
2011 |             "example": "silvio.algo"
2012 |           }
2013 |         ],
2014 |         "requestBody": {
2015 |           "required": true,
2016 |           "content": {
2017 |             "application/json": {
2018 |               "schema": {
2019 |                 "$ref": "#/components/schemas/ContractLockRequestBody"
2020 |               },
2021 |               "example": {
2022 |                 "lock": false,
2023 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
2024 |               }
2025 |             }
2026 |           }
2027 |         },
2028 |         "responses": {
2029 |           "200": {
2030 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
2031 |             "content": {
2032 |               "application/json": {
2033 |                 "schema": {
2034 |                   "type": "string",
2035 |                   "example": "abc123"
2036 |                 },
2037 |                 "example": "abc123"
2038 |               }
2039 |             }
2040 |           },
2041 |           "400": {
2042 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2043 |             "content": {
2044 |               "application/vnd.goa.error": {
2045 |                 "schema": {
2046 |                   "$ref": "#/components/schemas/Error"
2047 |                 }
2048 |               }
2049 |             }
2050 |           },
2051 |           "404": {
2052 |             "description": "notFound: Not Found response.",
2053 |             "content": {
2054 |               "application/vnd.goa.error": {
2055 |                 "schema": {
2056 |                   "$ref": "#/components/schemas/Error"
2057 |                 }
2058 |               }
2059 |             }
2060 |           },
2061 |           "429": {
2062 |             "description": "rateLimited: Too Many Requests response.",
2063 |             "content": {
2064 |               "application/json": {
2065 |                 "schema": {
2066 |                   "$ref": "#/components/schemas/RateLimited"
2067 |                 },
2068 |                 "example": {
2069 |                   "limit": 5,
2070 |                   "secsRemaining": 50
2071 |                 }
2072 |               }
2073 |             }
2074 |           }
2075 |         }
2076 |       }
2077 |     },
2078 |     "/nfd/contract/upgrade/{name}": {
2079 |       "post": {
2080 |         "tags": [
2081 |           "nfd"
2082 |         ],
2083 |         "summary": "contractUpgrade nfd",
2084 |         "description": "Request upgrade of a pre 2.11 NFD to 2.11 (going no further)",
2085 |         "operationId": "nfd#contractUpgrade",
2086 |         "parameters": [
2087 |           {
2088 |             "name": "name",
2089 |             "in": "path",
2090 |             "required": true,
2091 |             "schema": {
2092 |               "type": "string",
2093 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
2094 |               "example": "silvio.algo",
2095 |               "pattern": "^.+\\.algo$",
2096 |               "minLength": 1,
2097 |               "maxLength": 120
2098 |             },
2099 |             "example": "silvio.algo"
2100 |           }
2101 |         ],
2102 |         "requestBody": {
2103 |           "required": true,
2104 |           "content": {
2105 |             "application/json": {
2106 |               "schema": {
2107 |                 "$ref": "#/components/schemas/RescindOfferRequestBody"
2108 |               },
2109 |               "example": {
2110 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
2111 |               }
2112 |             }
2113 |           }
2114 |         },
2115 |         "responses": {
2116 |           "200": {
2117 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
2118 |             "content": {
2119 |               "application/json": {
2120 |                 "schema": {
2121 |                   "type": "string",
2122 |                   "example": "abc123"
2123 |                 },
2124 |                 "example": "abc123"
2125 |               }
2126 |             }
2127 |           },
2128 |           "400": {
2129 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2130 |             "content": {
2131 |               "application/vnd.goa.error": {
2132 |                 "schema": {
2133 |                   "$ref": "#/components/schemas/Error"
2134 |                 }
2135 |               }
2136 |             }
2137 |           },
2138 |           "403": {
2139 |             "description": "upgradeNotNeeded: The NFD contract doesn't need upgraded",
2140 |             "content": {
2141 |               "application/vnd.goa.error": {
2142 |                 "schema": {
2143 |                   "$ref": "#/components/schemas/Error"
2144 |                 }
2145 |               }
2146 |             }
2147 |           },
2148 |           "404": {
2149 |             "description": "notFound: Not Found response.",
2150 |             "content": {
2151 |               "application/vnd.goa.error": {
2152 |                 "schema": {
2153 |                   "$ref": "#/components/schemas/Error"
2154 |                 }
2155 |               }
2156 |             }
2157 |           },
2158 |           "429": {
2159 |             "description": "rateLimited: Too Many Requests response.",
2160 |             "content": {
2161 |               "application/json": {
2162 |                 "schema": {
2163 |                   "$ref": "#/components/schemas/RateLimited"
2164 |                 },
2165 |                 "example": {
2166 |                   "limit": 5,
2167 |                   "secsRemaining": 50
2168 |                 }
2169 |               }
2170 |             }
2171 |           }
2172 |         }
2173 |       }
2174 |     },
2175 |     "/nfd/donations/{name}": {
2176 |       "get": {
2177 |         "tags": [
2178 |           "nfd"
2179 |         ],
2180 |         "summary": "donations nfd",
2181 |         "description": "Fetch donation activity for an NFD, totalling amounts sent 'to' designated donation accounts",
2182 |         "operationId": "nfd#donations",
2183 |         "parameters": [
2184 |           {
2185 |             "name": "name",
2186 |             "in": "path",
2187 |             "required": true,
2188 |             "schema": {
2189 |               "type": "string",
2190 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
2191 |               "example": "silvio.algo",
2192 |               "pattern": "^.+\\.algo$",
2193 |               "minLength": 1,
2194 |               "maxLength": 120
2195 |             },
2196 |             "example": "silvio.algo"
2197 |           }
2198 |         ],
2199 |         "responses": {
2200 |           "200": {
2201 |             "description": "OK response.",
2202 |             "content": {
2203 |               "application/json": {
2204 |                 "schema": {
2205 |                   "type": "array",
2206 |                   "items": {
2207 |                     "$ref": "#/components/schemas/Donation"
2208 |                   },
2209 |                   "example": [
2210 |                     {
2211 |                       "address": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
2212 |                       "total": 1
2213 |                     }
2214 |                   ]
2215 |                 },
2216 |                 "example": [
2217 |                   {
2218 |                     "address": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
2219 |                     "total": 1
2220 |                   }
2221 |                 ]
2222 |               }
2223 |             }
2224 |           },
2225 |           "304": {
2226 |             "description": "Not Modified response."
2227 |           },
2228 |           "400": {
2229 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2230 |             "content": {
2231 |               "application/vnd.goa.error": {
2232 |                 "schema": {
2233 |                   "$ref": "#/components/schemas/Error"
2234 |                 }
2235 |               }
2236 |             }
2237 |           },
2238 |           "404": {
2239 |             "description": "notFound: Not Found response.",
2240 |             "content": {
2241 |               "application/vnd.goa.error": {
2242 |                 "schema": {
2243 |                   "$ref": "#/components/schemas/Error"
2244 |                 }
2245 |               }
2246 |             }
2247 |           },
2248 |           "429": {
2249 |             "description": "rateLimited: Too Many Requests response.",
2250 |             "content": {
2251 |               "application/json": {
2252 |                 "schema": {
2253 |                   "$ref": "#/components/schemas/RateLimited"
2254 |                 },
2255 |                 "example": {
2256 |                   "limit": 5,
2257 |                   "secsRemaining": 50
2258 |                 }
2259 |               }
2260 |             }
2261 |           }
2262 |         }
2263 |       }
2264 |     },
2265 |     "/nfd/getQuote/{name}": {
2266 |       "get": {
2267 |         "tags": [
2268 |           "nfd"
2269 |         ],
2270 |         "summary": "getQuote nfd",
2271 |         "description": "get price / carry cost to mint or rewnew an NFD (if existing)",
2272 |         "operationId": "nfd#getQuote",
2273 |         "parameters": [
2274 |           {
2275 |             "name": "buyer",
2276 |             "in": "query",
2277 |             "description": "Address requesting price. Optional, but important when getting quote on existing nfd that is expired. If expired, then owner can renew for base price, but if not existing (but expired) owner, then the price is reverse-auction format over 28 days.",
2278 |             "allowEmptyValue": true,
2279 |             "required": true,
2280 |             "schema": {
2281 |               "type": "string",
2282 |               "description": "An Algorand Account address",
2283 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
2284 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
2285 |             },
2286 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
2287 |           },
2288 |           {
2289 |             "name": "name",
2290 |             "in": "path",
2291 |             "required": true,
2292 |             "schema": {
2293 |               "type": "string",
2294 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
2295 |               "example": "silvio.algo",
2296 |               "pattern": "^.+\\.algo$",
2297 |               "minLength": 1,
2298 |               "maxLength": 120
2299 |             },
2300 |             "example": "silvio.algo"
2301 |           }
2302 |         ],
2303 |         "responses": {
2304 |           "200": {
2305 |             "description": "OK response.",
2306 |             "content": {
2307 |               "application/json": {
2308 |                 "schema": {
2309 |                   "$ref": "#/components/schemas/GetQuoteResponseBody"
2310 |                 },
2311 |                 "example": {
2312 |                   "carryCost": 1,
2313 |                   "exists": false,
2314 |                   "inAuction": false,
2315 |                   "isExpired": false,
2316 |                   "price": 1
2317 |                 }
2318 |               }
2319 |             }
2320 |           },
2321 |           "400": {
2322 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2323 |             "content": {
2324 |               "application/vnd.goa.error": {
2325 |                 "schema": {
2326 |                   "$ref": "#/components/schemas/Error"
2327 |                 }
2328 |               }
2329 |             }
2330 |           },
2331 |           "403": {
2332 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
2333 |             "content": {
2334 |               "application/vnd.goa.error": {}
2335 |             }
2336 |           },
2337 |           "404": {
2338 |             "description": "notFound: Not Found response.",
2339 |             "content": {
2340 |               "application/vnd.goa.error": {
2341 |                 "schema": {
2342 |                   "$ref": "#/components/schemas/Error"
2343 |                 }
2344 |               }
2345 |             }
2346 |           },
2347 |           "429": {
2348 |             "description": "rateLimited: Too Many Requests response.",
2349 |             "content": {
2350 |               "application/json": {
2351 |                 "schema": {
2352 |                   "$ref": "#/components/schemas/RateLimited"
2353 |                 },
2354 |                 "example": {
2355 |                   "limit": 5,
2356 |                   "secsRemaining": 50
2357 |                 }
2358 |               }
2359 |             }
2360 |           }
2361 |         }
2362 |       }
2363 |     },
2364 |     "/nfd/isValid/{appID}": {
2365 |       "get": {
2366 |         "tags": [
2367 |           "nfd"
2368 |         ],
2369 |         "summary": "isValidNFD nfd",
2370 |         "description": "Determines if specified NFD Application ID is authentic",
2371 |         "operationId": "nfd#isValidNFD",
2372 |         "parameters": [
2373 |           {
2374 |             "name": "appID",
2375 |             "in": "path",
2376 |             "description": "Application ID of a presumed NFD to verify.  The API will perform a forward-name lookup of the name within the NFD to verify it points to the same ID",
2377 |             "required": true,
2378 |             "schema": {
2379 |               "type": "integer",
2380 |               "description": "Application ID of a presumed NFD to verify.  The API will perform a forward-name lookup of the name within the NFD to verify it points to the same ID",
2381 |               "example": 1,
2382 |               "format": "int64"
2383 |             },
2384 |             "example": 1
2385 |           }
2386 |         ],
2387 |         "responses": {
2388 |           "200": {
2389 |             "description": "OK response.",
2390 |             "content": {
2391 |               "application/json": {
2392 |                 "schema": {
2393 |                   "$ref": "#/components/schemas/IsValidNFDResponseBody"
2394 |                 },
2395 |                 "example": {
2396 |                   "isValid": false,
2397 |                   "message": "abc123",
2398 |                   "name": "abc123",
2399 |                   "sigNameAddress": "abc123"
2400 |                 }
2401 |               }
2402 |             }
2403 |           },
2404 |           "400": {
2405 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2406 |             "content": {
2407 |               "application/vnd.goa.error": {
2408 |                 "schema": {
2409 |                   "$ref": "#/components/schemas/Error"
2410 |                 }
2411 |               }
2412 |             }
2413 |           },
2414 |           "404": {
2415 |             "description": "notFound: Not Found response.",
2416 |             "content": {
2417 |               "application/vnd.goa.error": {
2418 |                 "schema": {
2419 |                   "$ref": "#/components/schemas/Error"
2420 |                 }
2421 |               }
2422 |             }
2423 |           },
2424 |           "429": {
2425 |             "description": "rateLimited: Too Many Requests response.",
2426 |             "content": {
2427 |               "application/json": {
2428 |                 "schema": {
2429 |                   "$ref": "#/components/schemas/RateLimited"
2430 |                 },
2431 |                 "example": {
2432 |                   "limit": 5,
2433 |                   "secsRemaining": 50
2434 |                 }
2435 |               }
2436 |             }
2437 |           }
2438 |         }
2439 |       }
2440 |     },
2441 |     "/nfd/isValidASA/{asaID}": {
2442 |       "get": {
2443 |         "tags": [
2444 |           "nfd"
2445 |         ],
2446 |         "summary": "isValidASA nfd",
2447 |         "description": "Determines if specified NFD NFT ASA ID is authentic NFD",
2448 |         "operationId": "nfd#isValidASA",
2449 |         "parameters": [
2450 |           {
2451 |             "name": "asaID",
2452 |             "in": "path",
2453 |             "description": "Asset ID of a presumed NFD ASA to verify.  The API will verify the found asset references an NFD that in turn references that asset.",
2454 |             "required": true,
2455 |             "schema": {
2456 |               "type": "integer",
2457 |               "description": "Asset ID of a presumed NFD ASA to verify.  The API will verify the found asset references an NFD that in turn references that asset.",
2458 |               "example": 1,
2459 |               "format": "int64"
2460 |             },
2461 |             "example": 1
2462 |           }
2463 |         ],
2464 |         "responses": {
2465 |           "200": {
2466 |             "description": "OK response.",
2467 |             "content": {
2468 |               "application/json": {
2469 |                 "schema": {
2470 |                   "$ref": "#/components/schemas/IsValidASAResponseBody"
2471 |                 },
2472 |                 "example": {
2473 |                   "appID": 1,
2474 |                   "isValid": false,
2475 |                   "message": "abc123",
2476 |                   "name": "abc123"
2477 |                 }
2478 |               }
2479 |             }
2480 |           },
2481 |           "400": {
2482 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2483 |             "content": {
2484 |               "application/vnd.goa.error": {
2485 |                 "schema": {
2486 |                   "$ref": "#/components/schemas/Error"
2487 |                 }
2488 |               }
2489 |             }
2490 |           },
2491 |           "404": {
2492 |             "description": "notFound: Not Found response.",
2493 |             "content": {
2494 |               "application/vnd.goa.error": {
2495 |                 "schema": {
2496 |                   "$ref": "#/components/schemas/Error"
2497 |                 }
2498 |               }
2499 |             }
2500 |           },
2501 |           "429": {
2502 |             "description": "rateLimited: Too Many Requests response.",
2503 |             "content": {
2504 |               "application/json": {
2505 |                 "schema": {
2506 |                   "$ref": "#/components/schemas/RateLimited"
2507 |                 },
2508 |                 "example": {
2509 |                   "limit": 5,
2510 |                   "secsRemaining": 50
2511 |                 }
2512 |               }
2513 |             }
2514 |           }
2515 |         }
2516 |       }
2517 |     },
2518 |     "/nfd/links/addAddress/{name}": {
2519 |       "post": {
2520 |         "tags": [
2521 |           "nfd"
2522 |         ],
2523 |         "summary": "linkAddress nfd",
2524 |         "description": "Link one or more addresses to an NFD, adding to the reverse-address lookups as well as to this NFD.  Sender must be owner, and each added address must be able to be signed for.",
2525 |         "operationId": "nfd#linkAddress",
2526 |         "parameters": [
2527 |           {
2528 |             "name": "name",
2529 |             "in": "path",
2530 |             "required": true,
2531 |             "schema": {
2532 |               "type": "string",
2533 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
2534 |               "example": "silvio.algo",
2535 |               "pattern": "^.+\\.algo$",
2536 |               "minLength": 1,
2537 |               "maxLength": 120
2538 |             },
2539 |             "example": "silvio.algo"
2540 |           }
2541 |         ],
2542 |         "requestBody": {
2543 |           "required": true,
2544 |           "content": {
2545 |             "application/json": {
2546 |               "schema": {
2547 |                 "$ref": "#/components/schemas/LinkAddressRequestBody"
2548 |               },
2549 |               "example": {
2550 |                 "address": [
2551 |                   "333333333333333333333333333333333333333333333333333333333A",
2552 |                   "333333333333333333333333333333333333333333333333333333333A",
2553 |                   "333333333333333333333333333333333333333333333333333333333A"
2554 |                 ],
2555 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
2556 |               }
2557 |             }
2558 |           }
2559 |         },
2560 |         "responses": {
2561 |           "202": {
2562 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
2563 |             "content": {
2564 |               "application/json": {
2565 |                 "schema": {
2566 |                   "type": "string",
2567 |                   "example": "abc123"
2568 |                 },
2569 |                 "example": "abc123"
2570 |               }
2571 |             }
2572 |           },
2573 |           "400": {
2574 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2575 |             "content": {
2576 |               "application/vnd.goa.error": {
2577 |                 "schema": {
2578 |                   "$ref": "#/components/schemas/Error"
2579 |                 }
2580 |               }
2581 |             }
2582 |           },
2583 |           "403": {
2584 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
2585 |             "content": {
2586 |               "application/vnd.goa.error": {
2587 |                 "schema": {
2588 |                   "$ref": "#/components/schemas/Error"
2589 |                 }
2590 |               }
2591 |             }
2592 |           },
2593 |           "404": {
2594 |             "description": "notFound: Not Found response.",
2595 |             "content": {
2596 |               "application/vnd.goa.error": {
2597 |                 "schema": {
2598 |                   "$ref": "#/components/schemas/Error"
2599 |                 }
2600 |               }
2601 |             }
2602 |           },
2603 |           "429": {
2604 |             "description": "rateLimited: Too Many Requests response.",
2605 |             "content": {
2606 |               "application/json": {
2607 |                 "schema": {
2608 |                   "$ref": "#/components/schemas/RateLimited"
2609 |                 },
2610 |                 "example": {
2611 |                   "limit": 5,
2612 |                   "secsRemaining": 50
2613 |                 }
2614 |               }
2615 |             }
2616 |           }
2617 |         }
2618 |       }
2619 |     },
2620 |     "/nfd/links/removeAddress/{name}": {
2621 |       "post": {
2622 |         "tags": [
2623 |           "nfd"
2624 |         ],
2625 |         "summary": "unlinkAddress nfd",
2626 |         "description": "UnLink one or more addresses to an NFD, adding to the reverse-address lookups as well as to this NFD.  Sender must be owner, and each added address must be able to be signed for.",
2627 |         "operationId": "nfd#unlinkAddress",
2628 |         "parameters": [
2629 |           {
2630 |             "name": "name",
2631 |             "in": "path",
2632 |             "required": true,
2633 |             "schema": {
2634 |               "type": "string",
2635 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
2636 |               "example": "silvio.algo",
2637 |               "pattern": "^.+\\.algo$",
2638 |               "minLength": 1,
2639 |               "maxLength": 120
2640 |             },
2641 |             "example": "silvio.algo"
2642 |           }
2643 |         ],
2644 |         "requestBody": {
2645 |           "required": true,
2646 |           "content": {
2647 |             "application/json": {
2648 |               "schema": {
2649 |                 "$ref": "#/components/schemas/LinkAddressRequestBody"
2650 |               },
2651 |               "example": {
2652 |                 "address": [
2653 |                   "333333333333333333333333333333333333333333333333333333333A",
2654 |                   "333333333333333333333333333333333333333333333333333333333A",
2655 |                   "333333333333333333333333333333333333333333333333333333333A"
2656 |                 ],
2657 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
2658 |               }
2659 |             }
2660 |           }
2661 |         },
2662 |         "responses": {
2663 |           "202": {
2664 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
2665 |             "content": {
2666 |               "application/json": {
2667 |                 "schema": {
2668 |                   "type": "string",
2669 |                   "example": "abc123"
2670 |                 },
2671 |                 "example": "abc123"
2672 |               }
2673 |             }
2674 |           },
2675 |           "400": {
2676 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2677 |             "content": {
2678 |               "application/vnd.goa.error": {
2679 |                 "schema": {
2680 |                   "$ref": "#/components/schemas/Error"
2681 |                 }
2682 |               }
2683 |             }
2684 |           },
2685 |           "403": {
2686 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
2687 |             "content": {
2688 |               "application/vnd.goa.error": {
2689 |                 "schema": {
2690 |                   "$ref": "#/components/schemas/Error"
2691 |                 }
2692 |               }
2693 |             }
2694 |           },
2695 |           "404": {
2696 |             "description": "notFound: Not Found response.",
2697 |             "content": {
2698 |               "application/vnd.goa.error": {
2699 |                 "schema": {
2700 |                   "$ref": "#/components/schemas/Error"
2701 |                 }
2702 |               }
2703 |             }
2704 |           },
2705 |           "429": {
2706 |             "description": "rateLimited: Too Many Requests response.",
2707 |             "content": {
2708 |               "application/json": {
2709 |                 "schema": {
2710 |                   "$ref": "#/components/schemas/RateLimited"
2711 |                 },
2712 |                 "example": {
2713 |                   "limit": 5,
2714 |                   "secsRemaining": 50
2715 |                 }
2716 |               }
2717 |             }
2718 |           }
2719 |         }
2720 |       }
2721 |     },
2722 |     "/nfd/links/setPrimaryAddress/{name}": {
2723 |       "post": {
2724 |         "tags": [
2725 |           "nfd"
2726 |         ],
2727 |         "summary": "setPrimaryAddress nfd",
2728 |         "description": "Set which of the currently verified addresses should be the first in the list (swapping positions as necessary)",
2729 |         "operationId": "nfd#setPrimaryAddress",
2730 |         "parameters": [
2731 |           {
2732 |             "name": "name",
2733 |             "in": "path",
2734 |             "required": true,
2735 |             "schema": {
2736 |               "type": "string",
2737 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
2738 |               "example": "silvio.algo",
2739 |               "pattern": "^.+\\.algo$",
2740 |               "minLength": 1,
2741 |               "maxLength": 120
2742 |             },
2743 |             "example": "silvio.algo"
2744 |           }
2745 |         ],
2746 |         "requestBody": {
2747 |           "required": true,
2748 |           "content": {
2749 |             "application/json": {
2750 |               "schema": {
2751 |                 "$ref": "#/components/schemas/SetPrimaryAddressRequestBody"
2752 |               },
2753 |               "example": {
2754 |                 "address": "333333333333333333333333333333333333333333333333333333333A",
2755 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
2756 |               }
2757 |             }
2758 |           }
2759 |         },
2760 |         "responses": {
2761 |           "202": {
2762 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
2763 |             "content": {
2764 |               "application/json": {
2765 |                 "schema": {
2766 |                   "type": "string",
2767 |                   "example": "abc123"
2768 |                 },
2769 |                 "example": "abc123"
2770 |               }
2771 |             }
2772 |           },
2773 |           "400": {
2774 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2775 |             "content": {
2776 |               "application/vnd.goa.error": {
2777 |                 "schema": {
2778 |                   "$ref": "#/components/schemas/Error"
2779 |                 }
2780 |               }
2781 |             }
2782 |           },
2783 |           "403": {
2784 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
2785 |             "content": {
2786 |               "application/vnd.goa.error": {
2787 |                 "schema": {
2788 |                   "$ref": "#/components/schemas/Error"
2789 |                 }
2790 |               }
2791 |             }
2792 |           },
2793 |           "404": {
2794 |             "description": "notFound: Not Found response.",
2795 |             "content": {
2796 |               "application/vnd.goa.error": {
2797 |                 "schema": {
2798 |                   "$ref": "#/components/schemas/Error"
2799 |                 }
2800 |               }
2801 |             }
2802 |           },
2803 |           "429": {
2804 |             "description": "rateLimited: Too Many Requests response.",
2805 |             "content": {
2806 |               "application/json": {
2807 |                 "schema": {
2808 |                   "$ref": "#/components/schemas/RateLimited"
2809 |                 },
2810 |                 "example": {
2811 |                   "limit": 5,
2812 |                   "secsRemaining": 50
2813 |                 }
2814 |               }
2815 |             }
2816 |           }
2817 |         }
2818 |       }
2819 |     },
2820 |     "/nfd/links/setPrimaryNFD/{name}": {
2821 |       "post": {
2822 |         "tags": [
2823 |           "nfd"
2824 |         ],
2825 |         "summary": "setPrimaryNFD nfd",
2826 |         "description": "Set the specified NFD as the primary NFD to return for the specified address via its reverse lookup",
2827 |         "operationId": "nfd#setPrimaryNFD",
2828 |         "parameters": [
2829 |           {
2830 |             "name": "name",
2831 |             "in": "path",
2832 |             "required": true,
2833 |             "schema": {
2834 |               "type": "string",
2835 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
2836 |               "example": "silvio.algo",
2837 |               "pattern": "^.+\\.algo$",
2838 |               "minLength": 1,
2839 |               "maxLength": 120
2840 |             },
2841 |             "example": "silvio.algo"
2842 |           }
2843 |         ],
2844 |         "requestBody": {
2845 |           "required": true,
2846 |           "content": {
2847 |             "application/json": {
2848 |               "schema": {
2849 |                 "$ref": "#/components/schemas/SetPrimaryAddressRequestBody"
2850 |               },
2851 |               "example": {
2852 |                 "address": "333333333333333333333333333333333333333333333333333333333A",
2853 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
2854 |               }
2855 |             }
2856 |           }
2857 |         },
2858 |         "responses": {
2859 |           "202": {
2860 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
2861 |             "content": {
2862 |               "application/json": {
2863 |                 "schema": {
2864 |                   "type": "string",
2865 |                   "example": "abc123"
2866 |                 },
2867 |                 "example": "abc123"
2868 |               }
2869 |             }
2870 |           },
2871 |           "400": {
2872 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
2873 |             "content": {
2874 |               "application/vnd.goa.error": {
2875 |                 "schema": {
2876 |                   "$ref": "#/components/schemas/Error"
2877 |                 }
2878 |               }
2879 |             }
2880 |           },
2881 |           "403": {
2882 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
2883 |             "content": {
2884 |               "application/vnd.goa.error": {
2885 |                 "schema": {
2886 |                   "$ref": "#/components/schemas/Error"
2887 |                 }
2888 |               }
2889 |             }
2890 |           },
2891 |           "404": {
2892 |             "description": "notFound: Not Found response.",
2893 |             "content": {
2894 |               "application/vnd.goa.error": {
2895 |                 "schema": {
2896 |                   "$ref": "#/components/schemas/Error"
2897 |                 }
2898 |               }
2899 |             }
2900 |           },
2901 |           "429": {
2902 |             "description": "rateLimited: Too Many Requests response.",
2903 |             "content": {
2904 |               "application/json": {
2905 |                 "schema": {
2906 |                   "$ref": "#/components/schemas/RateLimited"
2907 |                 },
2908 |                 "example": {
2909 |                   "limit": 5,
2910 |                   "secsRemaining": 50
2911 |                 }
2912 |               }
2913 |             }
2914 |           }
2915 |         }
2916 |       }
2917 |     },
2918 |     "/nfd/lookup": {
2919 |       "get": {
2920 |         "tags": [
2921 |           "nfd"
2922 |         ],
2923 |         "summary": "Reverse Address lookup with results returned per address",
2924 |         "description": "Get the primary NFD for an address.  Must be verified address, or if allowUnverified is set, it may match against an unverified address",
2925 |         "operationId": "nfd#getLookup",
2926 |         "parameters": [
2927 |           {
2928 |             "name": "address",
2929 |             "in": "query",
2930 |             "description": "one or more addresses (algo or otherwise) to look up, maximum of 20 can be defined.  Specify the same query parameter multiple times for each address, ie: address=xxx&address=yyy&address=zzz",
2931 |             "allowEmptyValue": true,
2932 |             "required": true,
2933 |             "schema": {
2934 |               "type": "array",
2935 |               "items": {
2936 |                 "type": "string",
2937 |                 "example": "abc123"
2938 |               },
2939 |               "description": "one or more addresses (algo or otherwise) to look up, maximum of 20 can be defined.  Specify the same query parameter multiple times for each address, ie: address=xxx&address=yyy&address=zzz",
2940 |               "example": [
2941 |                 "abc123",
2942 |                 "abc123"
2943 |               ],
2944 |               "minItems": 1,
2945 |               "maxItems": 20
2946 |             },
2947 |             "example": [
2948 |               "abc123",
2949 |               "abc123"
2950 |             ]
2951 |           },
2952 |           {
2953 |             "name": "view",
2954 |             "in": "query",
2955 |             "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only [default]), thumbnail (tiny + avatar), brief, or full",
2956 |             "allowEmptyValue": true,
2957 |             "schema": {
2958 |               "type": "string",
2959 |               "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only [default]), thumbnail (tiny + avatar), brief, or full",
2960 |               "default": "tiny",
2961 |               "enum": [
2962 |                 "tiny",
2963 |                 "thumbnail",
2964 |                 "brief",
2965 |                 "full"
2966 |               ]
2967 |             }
2968 |           },
2969 |           {
2970 |             "name": "allowUnverified",
2971 |             "in": "query",
2972 |             "description": "Whether to allow unverified addresses to match (and only if its only match).  Defaults to false",
2973 |             "allowEmptyValue": true,
2974 |             "schema": {
2975 |               "type": "boolean",
2976 |               "description": "Whether to allow unverified addresses to match (and only if its only match).  Defaults to false",
2977 |               "default": false,
2978 |               "example": false
2979 |             },
2980 |             "example": false
2981 |           },
2982 |           {
2983 |             "name": "if-none-match",
2984 |             "in": "header",
2985 |             "description": "etag",
2986 |             "allowEmptyValue": true,
2987 |             "schema": {
2988 |               "type": "string",
2989 |               "description": "etag"
2990 |             }
2991 |           }
2992 |         ],
2993 |         "responses": {
2994 |           "200": {
2995 |             "description": "OK response.",
2996 |             "headers": {
2997 |               "ETag": {
2998 |                 "description": "ETag",
2999 |                 "schema": {
3000 |                   "type": "string",
3001 |                   "description": "ETag",
3002 |                   "example": "abc123"
3003 |                 },
3004 |                 "example": "abc123"
3005 |               },
3006 |               "cache-control": {
3007 |                 "description": "Cache-Control header",
3008 |                 "schema": {
3009 |                   "type": "string",
3010 |                   "description": "Cache-Control header",
3011 |                   "example": "abc123"
3012 |                 },
3013 |                 "example": "abc123"
3014 |               }
3015 |             },
3016 |             "content": {
3017 |               "application/json": {
3018 |                 "schema": {
3019 |                   "type": "object",
3020 |                   "example": {
3021 |                     "abc123": {
3022 |                       "appID": 1000000,
3023 |                       "asaID": 1,
3024 |                       "avatarOutdated": false,
3025 |                       "caAlgo": [
3026 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
3027 |                       ],
3028 |                       "cache-control": "abc123",
3029 |                       "category": "abc123",
3030 |                       "currentAsOfBlock": 1,
3031 |                       "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3032 |                       "etag": "abc123",
3033 |                       "expired": false,
3034 |                       "match-check": "abc123",
3035 |                       "metaTags": [
3036 |                         "abc123"
3037 |                       ],
3038 |                       "name": "abc123",
3039 |                       "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3040 |                       "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3041 |                       "parentAppID": 1000000,
3042 |                       "properties": {
3043 |                         "internal": {
3044 |                           "abc123": "abc123"
3045 |                         },
3046 |                         "userDefined": {
3047 |                           "ca:b": "abc123"
3048 |                         },
3049 |                         "verified": {
3050 |                           "caAlgo": "abc123"
3051 |                         }
3052 |                       },
3053 |                       "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3054 |                       "saleType": "abc123",
3055 |                       "sellAmount": 1,
3056 |                       "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3057 |                       "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3058 |                       "state": "abc123",
3059 |                       "tags": [
3060 |                         "abc123"
3061 |                       ],
3062 |                       "timeChanged": "1970-01-01T00:00:01Z",
3063 |                       "timeCreated": "1970-01-01T00:00:01Z",
3064 |                       "timeExpires": "1970-01-01T00:00:01Z",
3065 |                       "timePurchased": "1970-01-01T00:00:01Z",
3066 |                       "unverifiedCa": {
3067 |                         "btc": [
3068 |                           "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
3069 |                         ]
3070 |                       },
3071 |                       "unverifiedCaAlgo": [
3072 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
3073 |                       ]
3074 |                     }
3075 |                   },
3076 |                   "additionalProperties": {
3077 |                     "$ref": "#/components/schemas/NfdRecordinaddress"
3078 |                   }
3079 |                 },
3080 |                 "example": {
3081 |                   "abc123": {
3082 |                     "appID": 1000000,
3083 |                     "asaID": 1,
3084 |                     "avatarOutdated": false,
3085 |                     "caAlgo": [
3086 |                       "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
3087 |                     ],
3088 |                     "cache-control": "abc123",
3089 |                     "category": "abc123",
3090 |                     "currentAsOfBlock": 1,
3091 |                     "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3092 |                     "etag": "abc123",
3093 |                     "expired": false,
3094 |                     "match-check": "abc123",
3095 |                     "metaTags": [
3096 |                       "abc123"
3097 |                     ],
3098 |                     "name": "abc123",
3099 |                     "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3100 |                     "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3101 |                     "parentAppID": 1000000,
3102 |                     "properties": {
3103 |                       "internal": {
3104 |                         "abc123": "abc123"
3105 |                       },
3106 |                       "userDefined": {
3107 |                         "ca:b": "abc123"
3108 |                       },
3109 |                       "verified": {
3110 |                         "caAlgo": "abc123"
3111 |                       }
3112 |                     },
3113 |                     "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3114 |                     "saleType": "abc123",
3115 |                     "sellAmount": 1,
3116 |                     "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3117 |                     "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3118 |                     "state": "abc123",
3119 |                     "tags": [
3120 |                       "abc123"
3121 |                     ],
3122 |                     "timeChanged": "1970-01-01T00:00:01Z",
3123 |                     "timeCreated": "1970-01-01T00:00:01Z",
3124 |                     "timeExpires": "1970-01-01T00:00:01Z",
3125 |                     "timePurchased": "1970-01-01T00:00:01Z",
3126 |                     "unverifiedCa": {
3127 |                       "btc": [
3128 |                         "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
3129 |                       ]
3130 |                     },
3131 |                     "unverifiedCaAlgo": [
3132 |                       "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
3133 |                     ]
3134 |                   }
3135 |                 }
3136 |               }
3137 |             }
3138 |           },
3139 |           "304": {
3140 |             "description": "ETag not changed"
3141 |           },
3142 |           "400": {
3143 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3144 |             "content": {
3145 |               "application/vnd.goa.error": {}
3146 |             }
3147 |           },
3148 |           "404": {
3149 |             "description": "notFound: Not Found response.",
3150 |             "headers": {
3151 |               "goa-attribute-fault": {
3152 |                 "description": "Is the error a server-side fault?",
3153 |                 "schema": {
3154 |                   "type": "boolean",
3155 |                   "description": "Is the error a server-side fault?",
3156 |                   "example": false
3157 |                 },
3158 |                 "example": false
3159 |               },
3160 |               "goa-attribute-id": {
3161 |                 "description": "ID is a unique identifier for this particular occurrence of the problem.",
3162 |                 "schema": {
3163 |                   "type": "string",
3164 |                   "description": "ID is a unique identifier for this particular occurrence of the problem.",
3165 |                   "example": "123abc"
3166 |                 },
3167 |                 "example": "123abc"
3168 |               },
3169 |               "goa-attribute-message": {
3170 |                 "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
3171 |                 "schema": {
3172 |                   "type": "string",
3173 |                   "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
3174 |                   "example": "parameter 'p' must be an integer"
3175 |                 },
3176 |                 "example": "parameter 'p' must be an integer"
3177 |               },
3178 |               "goa-attribute-name": {
3179 |                 "description": "Name is the name of this class of errors.",
3180 |                 "schema": {
3181 |                   "type": "string",
3182 |                   "description": "Name is the name of this class of errors.",
3183 |                   "example": "bad_request"
3184 |                 },
3185 |                 "example": "bad_request"
3186 |               },
3187 |               "goa-attribute-temporary": {
3188 |                 "description": "Is the error temporary?",
3189 |                 "schema": {
3190 |                   "type": "boolean",
3191 |                   "description": "Is the error temporary?",
3192 |                   "example": false
3193 |                 },
3194 |                 "example": false
3195 |               },
3196 |               "goa-attribute-timeout": {
3197 |                 "description": "Is the error a timeout?",
3198 |                 "schema": {
3199 |                   "type": "boolean",
3200 |                   "description": "Is the error a timeout?",
3201 |                   "example": false
3202 |                 },
3203 |                 "example": false
3204 |               }
3205 |             }
3206 |           },
3207 |           "429": {
3208 |             "description": "rateLimited: Too Many Requests response.",
3209 |             "content": {
3210 |               "application/json": {
3211 |                 "schema": {
3212 |                   "$ref": "#/components/schemas/RateLimited"
3213 |                 },
3214 |                 "example": {
3215 |                   "limit": 5,
3216 |                   "secsRemaining": 50
3217 |                 }
3218 |               }
3219 |             }
3220 |           }
3221 |         }
3222 |       }
3223 |     },
3224 |     "/nfd/mint": {
3225 |       "post": {
3226 |         "tags": [
3227 |           "nfd"
3228 |         ],
3229 |         "summary": "mint nfd",
3230 |         "description": "Mint a new NFD, with user buying specified NFD and paying for a prorated amount of time based on its yearly price.",
3231 |         "operationId": "nfd#mint",
3232 |         "requestBody": {
3233 |           "required": true,
3234 |           "content": {
3235 |             "application/json": {
3236 |               "schema": {
3237 |                 "$ref": "#/components/schemas/MintRequestBody"
3238 |               },
3239 |               "example": {
3240 |                 "algoOffer": 2,
3241 |                 "buyer": "333333333333333333333333333333333333333333333333333333333A",
3242 |                 "name": "aa",
3243 |                 "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
3244 |                 "years": 2
3245 |               }
3246 |             }
3247 |           }
3248 |         },
3249 |         "responses": {
3250 |           "201": {
3251 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
3252 |             "content": {
3253 |               "application/json": {
3254 |                 "schema": {
3255 |                   "type": "string",
3256 |                   "example": "abc123"
3257 |                 },
3258 |                 "example": "abc123"
3259 |               }
3260 |             }
3261 |           },
3262 |           "204": {
3263 |             "description": "alreadyExists: NFD already exists",
3264 |             "headers": {
3265 |               "goa-attribute-fault": {
3266 |                 "description": "Is the error a server-side fault?",
3267 |                 "schema": {
3268 |                   "type": "boolean",
3269 |                   "description": "Is the error a server-side fault?",
3270 |                   "example": false
3271 |                 },
3272 |                 "example": false
3273 |               },
3274 |               "goa-attribute-id": {
3275 |                 "description": "ID is a unique identifier for this particular occurrence of the problem.",
3276 |                 "schema": {
3277 |                   "type": "string",
3278 |                   "description": "ID is a unique identifier for this particular occurrence of the problem.",
3279 |                   "example": "123abc"
3280 |                 },
3281 |                 "example": "123abc"
3282 |               },
3283 |               "goa-attribute-message": {
3284 |                 "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
3285 |                 "schema": {
3286 |                   "type": "string",
3287 |                   "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
3288 |                   "example": "parameter 'p' must be an integer"
3289 |                 },
3290 |                 "example": "parameter 'p' must be an integer"
3291 |               },
3292 |               "goa-attribute-name": {
3293 |                 "description": "Name is the name of this class of errors.",
3294 |                 "schema": {
3295 |                   "type": "string",
3296 |                   "description": "Name is the name of this class of errors.",
3297 |                   "example": "bad_request"
3298 |                 },
3299 |                 "example": "bad_request"
3300 |               },
3301 |               "goa-attribute-temporary": {
3302 |                 "description": "Is the error temporary?",
3303 |                 "schema": {
3304 |                   "type": "boolean",
3305 |                   "description": "Is the error temporary?",
3306 |                   "example": false
3307 |                 },
3308 |                 "example": false
3309 |               },
3310 |               "goa-attribute-timeout": {
3311 |                 "description": "Is the error a timeout?",
3312 |                 "schema": {
3313 |                   "type": "boolean",
3314 |                   "description": "Is the error a timeout?",
3315 |                   "example": false
3316 |                 },
3317 |                 "example": false
3318 |               }
3319 |             }
3320 |           },
3321 |           "400": {
3322 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3323 |             "content": {
3324 |               "application/vnd.goa.error": {
3325 |                 "schema": {
3326 |                   "$ref": "#/components/schemas/Error"
3327 |                 }
3328 |               }
3329 |             }
3330 |           },
3331 |           "403": {
3332 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
3333 |             "content": {
3334 |               "application/vnd.goa.error": {}
3335 |             }
3336 |           },
3337 |           "404": {
3338 |             "description": "notFound: Not Found response.",
3339 |             "content": {
3340 |               "application/vnd.goa.error": {
3341 |                 "schema": {
3342 |                   "$ref": "#/components/schemas/Error"
3343 |                 }
3344 |               }
3345 |             }
3346 |           },
3347 |           "429": {
3348 |             "description": "rateLimited: Too Many Requests response.",
3349 |             "content": {
3350 |               "application/json": {
3351 |                 "schema": {
3352 |                   "$ref": "#/components/schemas/RateLimited"
3353 |                 },
3354 |                 "example": {
3355 |                   "limit": 5,
3356 |                   "secsRemaining": 50
3357 |                 }
3358 |               }
3359 |             }
3360 |           }
3361 |         }
3362 |       }
3363 |     },
3364 |     "/nfd/nameSig/{name}": {
3365 |       "get": {
3366 |         "tags": [
3367 |           "nfd"
3368 |         ],
3369 |         "summary": "getNameSig nfd",
3370 |         "description": "Returns NameSig address for an NFD name (usable for V1 only)",
3371 |         "operationId": "nfd#getNameSig",
3372 |         "parameters": [
3373 |           {
3374 |             "name": "name",
3375 |             "in": "path",
3376 |             "required": true,
3377 |             "schema": {
3378 |               "type": "string",
3379 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
3380 |               "example": "silvio.algo",
3381 |               "pattern": "^.+\\.algo$",
3382 |               "minLength": 1,
3383 |               "maxLength": 120
3384 |             },
3385 |             "example": "silvio.algo"
3386 |           }
3387 |         ],
3388 |         "responses": {
3389 |           "200": {
3390 |             "description": "OK response.",
3391 |             "content": {
3392 |               "application/json": {
3393 |                 "schema": {
3394 |                   "type": "string",
3395 |                   "description": "Algorand Address of Smart-Sig NAME account",
3396 |                   "example": "abc123"
3397 |                 },
3398 |                 "example": "abc123"
3399 |               }
3400 |             }
3401 |           },
3402 |           "400": {
3403 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3404 |             "content": {
3405 |               "application/vnd.goa.error": {
3406 |                 "schema": {
3407 |                   "$ref": "#/components/schemas/Error"
3408 |                 }
3409 |               }
3410 |             }
3411 |           },
3412 |           "404": {
3413 |             "description": "notFound: Not Found response.",
3414 |             "content": {
3415 |               "application/vnd.goa.error": {
3416 |                 "schema": {
3417 |                   "$ref": "#/components/schemas/Error"
3418 |                 }
3419 |               }
3420 |             }
3421 |           },
3422 |           "429": {
3423 |             "description": "rateLimited: Too Many Requests response.",
3424 |             "content": {
3425 |               "application/json": {
3426 |                 "schema": {
3427 |                   "$ref": "#/components/schemas/RateLimited"
3428 |                 },
3429 |                 "example": {
3430 |                   "limit": 5,
3431 |                   "secsRemaining": 50
3432 |                 }
3433 |               }
3434 |             }
3435 |           }
3436 |         }
3437 |       }
3438 |     },
3439 |     "/nfd/offer/{name}": {
3440 |       "post": {
3441 |         "tags": [
3442 |           "nfd"
3443 |         ],
3444 |         "summary": "offer nfd",
3445 |         "description": "Offer up an NFD for sale - specifying price and optionally an address it is reserved for.",
3446 |         "operationId": "nfd#offer",
3447 |         "parameters": [
3448 |           {
3449 |             "name": "name",
3450 |             "in": "path",
3451 |             "required": true,
3452 |             "schema": {
3453 |               "type": "string",
3454 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
3455 |               "example": "silvio.algo",
3456 |               "pattern": "^.+\\.algo$",
3457 |               "minLength": 1,
3458 |               "maxLength": 120
3459 |             },
3460 |             "example": "silvio.algo"
3461 |           }
3462 |         ],
3463 |         "requestBody": {
3464 |           "required": true,
3465 |           "content": {
3466 |             "application/json": {
3467 |               "schema": {
3468 |                 "$ref": "#/components/schemas/OfferRequestBody"
3469 |               },
3470 |               "example": {
3471 |                 "offer": 1,
3472 |                 "payReceiver": false,
3473 |                 "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
3474 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
3475 |               }
3476 |             }
3477 |           }
3478 |         },
3479 |         "responses": {
3480 |           "200": {
3481 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
3482 |             "content": {
3483 |               "application/json": {
3484 |                 "schema": {
3485 |                   "type": "string",
3486 |                   "example": "abc123"
3487 |                 },
3488 |                 "example": "abc123"
3489 |               }
3490 |             }
3491 |           },
3492 |           "400": {
3493 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3494 |             "content": {
3495 |               "application/vnd.goa.error": {
3496 |                 "schema": {
3497 |                   "$ref": "#/components/schemas/Error"
3498 |                 }
3499 |               }
3500 |             }
3501 |           },
3502 |           "403": {
3503 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
3504 |             "content": {
3505 |               "application/vnd.goa.error": {
3506 |                 "schema": {
3507 |                   "$ref": "#/components/schemas/Error"
3508 |                 }
3509 |               }
3510 |             }
3511 |           },
3512 |           "404": {
3513 |             "description": "notFound: Not Found response.",
3514 |             "content": {
3515 |               "application/vnd.goa.error": {
3516 |                 "schema": {
3517 |                   "$ref": "#/components/schemas/Error"
3518 |                 }
3519 |               }
3520 |             }
3521 |           },
3522 |           "413": {
3523 |             "description": "tooManyTransactions: The number of transactions allowed in a single transaction group (16) have been exceeded.  Update fewer fields in one transaction, or if selling, reduce the data within the NFD first.",
3524 |             "content": {
3525 |               "application/vnd.goa.error": {
3526 |                 "schema": {
3527 |                   "$ref": "#/components/schemas/Error"
3528 |                 }
3529 |               }
3530 |             }
3531 |           },
3532 |           "429": {
3533 |             "description": "rateLimited: Too Many Requests response.",
3534 |             "content": {
3535 |               "application/json": {
3536 |                 "schema": {
3537 |                   "$ref": "#/components/schemas/RateLimited"
3538 |                 },
3539 |                 "example": {
3540 |                   "limit": 5,
3541 |                   "secsRemaining": 50
3542 |                 }
3543 |               }
3544 |             }
3545 |           }
3546 |         }
3547 |       }
3548 |     },
3549 |     "/nfd/postOfferToOwner/{name}": {
3550 |       "post": {
3551 |         "tags": [
3552 |           "nfd"
3553 |         ],
3554 |         "summary": "postOfferToOwner nfd",
3555 |         "description": "Post an offer to buy to the owner of an NFD, offering up a particular amount with optional note for them to consider",
3556 |         "operationId": "nfd#postOfferToOwner",
3557 |         "parameters": [
3558 |           {
3559 |             "name": "name",
3560 |             "in": "path",
3561 |             "required": true,
3562 |             "schema": {
3563 |               "type": "string",
3564 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
3565 |               "example": "silvio.algo",
3566 |               "pattern": "^.+\\.algo$",
3567 |               "minLength": 1,
3568 |               "maxLength": 120
3569 |             },
3570 |             "example": "silvio.algo"
3571 |           }
3572 |         ],
3573 |         "requestBody": {
3574 |           "required": true,
3575 |           "content": {
3576 |             "application/json": {
3577 |               "schema": {
3578 |                 "$ref": "#/components/schemas/PostOfferToOwnerRequestBody"
3579 |               },
3580 |               "example": {
3581 |                 "note": "aaa",
3582 |                 "offer": 1000001,
3583 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
3584 |               }
3585 |             }
3586 |           }
3587 |         },
3588 |         "responses": {
3589 |           "200": {
3590 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
3591 |             "content": {
3592 |               "application/json": {
3593 |                 "schema": {
3594 |                   "type": "string",
3595 |                   "example": "abc123"
3596 |                 },
3597 |                 "example": "abc123"
3598 |               }
3599 |             }
3600 |           },
3601 |           "400": {
3602 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3603 |             "content": {
3604 |               "application/vnd.goa.error": {
3605 |                 "schema": {
3606 |                   "$ref": "#/components/schemas/Error"
3607 |                 }
3608 |               }
3609 |             }
3610 |           },
3611 |           "404": {
3612 |             "description": "notFound: Not Found response.",
3613 |             "content": {
3614 |               "application/vnd.goa.error": {
3615 |                 "schema": {
3616 |                   "$ref": "#/components/schemas/Error"
3617 |                 }
3618 |               }
3619 |             }
3620 |           },
3621 |           "429": {
3622 |             "description": "rateLimited: Too Many Requests response.",
3623 |             "content": {
3624 |               "application/json": {
3625 |                 "schema": {
3626 |                   "$ref": "#/components/schemas/RateLimited"
3627 |                 },
3628 |                 "example": {
3629 |                   "limit": 5,
3630 |                   "secsRemaining": 50
3631 |                 }
3632 |               }
3633 |             }
3634 |           }
3635 |         }
3636 |       }
3637 |     },
3638 |     "/nfd/purchase/{name}": {
3639 |       "post": {
3640 |         "tags": [
3641 |           "nfd"
3642 |         ],
3643 |         "summary": "purchase nfd",
3644 |         "description": "Purchase an NFD for sale - specifying buyer (to sign transaction) and price",
3645 |         "operationId": "nfd#purchase",
3646 |         "parameters": [
3647 |           {
3648 |             "name": "name",
3649 |             "in": "path",
3650 |             "required": true,
3651 |             "schema": {
3652 |               "type": "string",
3653 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
3654 |               "example": "silvio.algo",
3655 |               "pattern": "^.+\\.algo$",
3656 |               "minLength": 1,
3657 |               "maxLength": 120
3658 |             },
3659 |             "example": "silvio.algo"
3660 |           }
3661 |         ],
3662 |         "requestBody": {
3663 |           "required": true,
3664 |           "content": {
3665 |             "application/json": {
3666 |               "schema": {
3667 |                 "$ref": "#/components/schemas/PurchaseRequestBody"
3668 |               },
3669 |               "example": {
3670 |                 "buyer": "333333333333333333333333333333333333333333333333333333333A",
3671 |                 "offer": 1
3672 |               }
3673 |             }
3674 |           }
3675 |         },
3676 |         "responses": {
3677 |           "200": {
3678 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
3679 |             "content": {
3680 |               "application/json": {
3681 |                 "schema": {
3682 |                   "type": "string",
3683 |                   "example": "abc123"
3684 |                 },
3685 |                 "example": "abc123"
3686 |               }
3687 |             }
3688 |           },
3689 |           "400": {
3690 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3691 |             "content": {
3692 |               "application/vnd.goa.error": {}
3693 |             }
3694 |           },
3695 |           "404": {
3696 |             "description": "notFound: Not Found response.",
3697 |             "content": {
3698 |               "application/vnd.goa.error": {
3699 |                 "schema": {
3700 |                   "$ref": "#/components/schemas/Error"
3701 |                 }
3702 |               }
3703 |             }
3704 |           },
3705 |           "429": {
3706 |             "description": "rateLimited: Too Many Requests response.",
3707 |             "content": {
3708 |               "application/json": {
3709 |                 "schema": {
3710 |                   "$ref": "#/components/schemas/RateLimited"
3711 |                 },
3712 |                 "example": {
3713 |                   "limit": 5,
3714 |                   "secsRemaining": 50
3715 |                 }
3716 |               }
3717 |             }
3718 |           }
3719 |         }
3720 |       }
3721 |     },
3722 |     "/nfd/renew": {
3723 |       "post": {
3724 |         "tags": [
3725 |           "nfd"
3726 |         ],
3727 |         "summary": "renew nfd",
3728 |         "description": "Renew or extend the expiration of an NFD.  If current owner, renews at base price. If other owner, can take ownership but goes through reverse auction process for first 28 days where price drops to base price - with price being for 1 year",
3729 |         "operationId": "nfd#renew",
3730 |         "requestBody": {
3731 |           "required": true,
3732 |           "content": {
3733 |             "application/json": {
3734 |               "schema": {
3735 |                 "$ref": "#/components/schemas/RenewRequestBody"
3736 |               },
3737 |               "example": {
3738 |                 "algoOffer": 2,
3739 |                 "buyer": "333333333333333333333333333333333333333333333333333333333A",
3740 |                 "name": "aa",
3741 |                 "years": 2
3742 |               }
3743 |             }
3744 |           }
3745 |         },
3746 |         "responses": {
3747 |           "201": {
3748 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
3749 |             "content": {
3750 |               "application/json": {
3751 |                 "schema": {
3752 |                   "type": "string",
3753 |                   "example": "abc123"
3754 |                 },
3755 |                 "example": "abc123"
3756 |               }
3757 |             }
3758 |           },
3759 |           "400": {
3760 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3761 |             "content": {
3762 |               "application/vnd.goa.error": {
3763 |                 "schema": {
3764 |                   "$ref": "#/components/schemas/Error"
3765 |                 }
3766 |               }
3767 |             }
3768 |           },
3769 |           "403": {
3770 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
3771 |             "content": {
3772 |               "application/vnd.goa.error": {
3773 |                 "schema": {
3774 |                   "$ref": "#/components/schemas/Error"
3775 |                 }
3776 |               }
3777 |             }
3778 |           },
3779 |           "404": {
3780 |             "description": "notFound: Not Found response.",
3781 |             "content": {
3782 |               "application/vnd.goa.error": {
3783 |                 "schema": {
3784 |                   "$ref": "#/components/schemas/Error"
3785 |                 }
3786 |               }
3787 |             }
3788 |           },
3789 |           "429": {
3790 |             "description": "rateLimited: Too Many Requests response.",
3791 |             "content": {
3792 |               "application/json": {
3793 |                 "schema": {
3794 |                   "$ref": "#/components/schemas/RateLimited"
3795 |                 },
3796 |                 "example": {
3797 |                   "limit": 5,
3798 |                   "secsRemaining": 50
3799 |                 }
3800 |               }
3801 |             }
3802 |           }
3803 |         }
3804 |       }
3805 |     },
3806 |     "/nfd/rescindOffer/{name}": {
3807 |       "post": {
3808 |         "tags": [
3809 |           "nfd"
3810 |         ],
3811 |         "summary": "rescindOffer nfd",
3812 |         "description": "Rescind offer of sale. Claiming NFD back for self, and removing it for sale.",
3813 |         "operationId": "nfd#rescindOffer",
3814 |         "parameters": [
3815 |           {
3816 |             "name": "name",
3817 |             "in": "path",
3818 |             "required": true,
3819 |             "schema": {
3820 |               "type": "string",
3821 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
3822 |               "example": "silvio.algo",
3823 |               "pattern": "^.+\\.algo$",
3824 |               "minLength": 1,
3825 |               "maxLength": 120
3826 |             },
3827 |             "example": "silvio.algo"
3828 |           }
3829 |         ],
3830 |         "requestBody": {
3831 |           "required": true,
3832 |           "content": {
3833 |             "application/json": {
3834 |               "schema": {
3835 |                 "$ref": "#/components/schemas/RescindOfferRequestBody"
3836 |               },
3837 |               "example": {
3838 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
3839 |               }
3840 |             }
3841 |           }
3842 |         },
3843 |         "responses": {
3844 |           "200": {
3845 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
3846 |             "content": {
3847 |               "application/json": {
3848 |                 "schema": {
3849 |                   "type": "string",
3850 |                   "example": "abc123"
3851 |                 },
3852 |                 "example": "abc123"
3853 |               }
3854 |             }
3855 |           },
3856 |           "400": {
3857 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3858 |             "content": {
3859 |               "application/vnd.goa.error": {
3860 |                 "schema": {
3861 |                   "$ref": "#/components/schemas/Error"
3862 |                 }
3863 |               }
3864 |             }
3865 |           },
3866 |           "404": {
3867 |             "description": "notFound: Not Found response.",
3868 |             "content": {
3869 |               "application/vnd.goa.error": {
3870 |                 "schema": {
3871 |                   "$ref": "#/components/schemas/Error"
3872 |                 }
3873 |               }
3874 |             }
3875 |           },
3876 |           "429": {
3877 |             "description": "rateLimited: Too Many Requests response.",
3878 |             "content": {
3879 |               "application/json": {
3880 |                 "schema": {
3881 |                   "$ref": "#/components/schemas/RateLimited"
3882 |                 },
3883 |                 "example": {
3884 |                   "limit": 5,
3885 |                   "secsRemaining": 50
3886 |                 }
3887 |               }
3888 |             }
3889 |           }
3890 |         }
3891 |       }
3892 |     },
3893 |     "/nfd/revAddressSig/{address}": {
3894 |       "get": {
3895 |         "tags": [
3896 |           "nfd"
3897 |         ],
3898 |         "summary": "getRevAddressSig nfd",
3899 |         "description": "Returns RevAddress address for an NFD name (usable for V1 only)",
3900 |         "operationId": "nfd#getRevAddressSig",
3901 |         "parameters": [
3902 |           {
3903 |             "name": "address",
3904 |             "in": "path",
3905 |             "required": true,
3906 |             "schema": {
3907 |               "type": "string",
3908 |               "description": "An Algorand Account address",
3909 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
3910 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
3911 |             },
3912 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
3913 |           }
3914 |         ],
3915 |         "responses": {
3916 |           "200": {
3917 |             "description": "OK response.",
3918 |             "content": {
3919 |               "application/json": {
3920 |                 "schema": {
3921 |                   "type": "string",
3922 |                   "description": "Algorand Address of Smart-Sig NAME account",
3923 |                   "example": "abc123"
3924 |                 },
3925 |                 "example": "abc123"
3926 |               }
3927 |             }
3928 |           },
3929 |           "400": {
3930 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
3931 |             "content": {
3932 |               "application/vnd.goa.error": {
3933 |                 "schema": {
3934 |                   "$ref": "#/components/schemas/Error"
3935 |                 }
3936 |               }
3937 |             }
3938 |           },
3939 |           "404": {
3940 |             "description": "notFound: Not Found response.",
3941 |             "content": {
3942 |               "application/vnd.goa.error": {
3943 |                 "schema": {
3944 |                   "$ref": "#/components/schemas/Error"
3945 |                 }
3946 |               }
3947 |             }
3948 |           },
3949 |           "429": {
3950 |             "description": "rateLimited: Too Many Requests response.",
3951 |             "content": {
3952 |               "application/json": {
3953 |                 "schema": {
3954 |                   "$ref": "#/components/schemas/RateLimited"
3955 |                 },
3956 |                 "example": {
3957 |                   "limit": 5,
3958 |                   "secsRemaining": 50
3959 |                 }
3960 |               }
3961 |             }
3962 |           }
3963 |         }
3964 |       }
3965 |     },
3966 |     "/nfd/segment/leaders": {
3967 |       "get": {
3968 |         "tags": [
3969 |           "nfd"
3970 |         ],
3971 |         "summary": "segmentLeaders nfd",
3972 |         "description": "Get top segment roots",
3973 |         "operationId": "nfd#segmentLeaders",
3974 |         "parameters": [
3975 |           {
3976 |             "name": "if-none-match",
3977 |             "in": "header",
3978 |             "description": "etag",
3979 |             "allowEmptyValue": true,
3980 |             "schema": {
3981 |               "type": "string",
3982 |               "description": "etag"
3983 |             }
3984 |           }
3985 |         ],
3986 |         "responses": {
3987 |           "200": {
3988 |             "description": "OK response.",
3989 |             "headers": {
3990 |               "ETag": {
3991 |                 "description": "ETag",
3992 |                 "schema": {
3993 |                   "type": "string",
3994 |                   "description": "ETag",
3995 |                   "example": "abc123"
3996 |                 },
3997 |                 "example": "abc123"
3998 |               },
3999 |               "cache-control": {
4000 |                 "description": "Cache-Control header",
4001 |                 "schema": {
4002 |                   "type": "string",
4003 |                   "description": "Cache-Control header",
4004 |                   "example": "abc123"
4005 |                 },
4006 |                 "example": "abc123"
4007 |               }
4008 |             },
4009 |             "content": {
4010 |               "application/json": {
4011 |                 "schema": {
4012 |                   "$ref": "#/components/schemas/NfdRecordCollection"
4013 |                 },
4014 |                 "example": [
4015 |                   {
4016 |                     "appID": 1000000,
4017 |                     "asaID": 1,
4018 |                     "avatarOutdated": false,
4019 |                     "caAlgo": [
4020 |                       "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4021 |                     ],
4022 |                     "cache-control": "abc123",
4023 |                     "category": "abc123",
4024 |                     "currentAsOfBlock": 1,
4025 |                     "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4026 |                     "etag": "abc123",
4027 |                     "expired": false,
4028 |                     "match-check": "abc123",
4029 |                     "metaTags": [
4030 |                       "abc123"
4031 |                     ],
4032 |                     "name": "abc123",
4033 |                     "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4034 |                     "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4035 |                     "parentAppID": 1000000,
4036 |                     "properties": {
4037 |                       "internal": {
4038 |                         "abc123": "abc123"
4039 |                       },
4040 |                       "userDefined": {
4041 |                         "ca:b": "abc123"
4042 |                       },
4043 |                       "verified": {
4044 |                         "caAlgo": "abc123"
4045 |                       }
4046 |                     },
4047 |                     "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4048 |                     "saleType": "abc123",
4049 |                     "sellAmount": 1,
4050 |                     "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4051 |                     "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4052 |                     "state": "abc123",
4053 |                     "tags": [
4054 |                       "abc123"
4055 |                     ],
4056 |                     "timeChanged": "1970-01-01T00:00:01Z",
4057 |                     "timeCreated": "1970-01-01T00:00:01Z",
4058 |                     "timeExpires": "1970-01-01T00:00:01Z",
4059 |                     "timePurchased": "1970-01-01T00:00:01Z",
4060 |                     "unverifiedCa": {
4061 |                       "btc": [
4062 |                         "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
4063 |                       ]
4064 |                     },
4065 |                     "unverifiedCaAlgo": [
4066 |                       "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4067 |                     ]
4068 |                   }
4069 |                 ]
4070 |               }
4071 |             }
4072 |           },
4073 |           "304": {
4074 |             "description": "ETag not changed"
4075 |           },
4076 |           "400": {
4077 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
4078 |             "content": {
4079 |               "application/vnd.goa.error": {
4080 |                 "schema": {
4081 |                   "$ref": "#/components/schemas/Error"
4082 |                 }
4083 |               }
4084 |             }
4085 |           },
4086 |           "404": {
4087 |             "description": "notFound: Not Found response.",
4088 |             "content": {
4089 |               "application/vnd.goa.error": {
4090 |                 "schema": {
4091 |                   "$ref": "#/components/schemas/Error"
4092 |                 }
4093 |               }
4094 |             }
4095 |           },
4096 |           "429": {
4097 |             "description": "rateLimited: Too Many Requests response.",
4098 |             "content": {
4099 |               "application/json": {
4100 |                 "schema": {
4101 |                   "$ref": "#/components/schemas/RateLimited"
4102 |                 },
4103 |                 "example": {
4104 |                   "limit": 5,
4105 |                   "secsRemaining": 50
4106 |                 }
4107 |               }
4108 |             }
4109 |           }
4110 |         }
4111 |       }
4112 |     },
4113 |     "/nfd/segment/lock/{name}": {
4114 |       "post": {
4115 |         "tags": [
4116 |           "nfd"
4117 |         ],
4118 |         "summary": "Lock/Unlock an NFD segment - specifying open price if unlocking",
4119 |         "description": "Lock/Unlock an NFD segment - if locked, the segment only allows minted names created by the segment owner.  If unlocked, anyone can mint off the segment for the price (in USD) the owner sets",
4120 |         "operationId": "nfd#segmentLock",
4121 |         "parameters": [
4122 |           {
4123 |             "name": "name",
4124 |             "in": "path",
4125 |             "required": true,
4126 |             "schema": {
4127 |               "type": "string",
4128 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
4129 |               "example": "silvio.algo",
4130 |               "pattern": "^.+\\.algo$",
4131 |               "minLength": 1,
4132 |               "maxLength": 120
4133 |             },
4134 |             "example": "silvio.algo"
4135 |           }
4136 |         ],
4137 |         "requestBody": {
4138 |           "required": true,
4139 |           "content": {
4140 |             "application/json": {
4141 |               "schema": {
4142 |                 "$ref": "#/components/schemas/SegmentLockRequestBody"
4143 |               },
4144 |               "example": {
4145 |                 "lock": false,
4146 |                 "sellAmount": 1,
4147 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
4148 |               }
4149 |             }
4150 |           }
4151 |         },
4152 |         "responses": {
4153 |           "200": {
4154 |             "description": "OK response.",
4155 |             "content": {
4156 |               "application/json": {
4157 |                 "schema": {
4158 |                   "type": "string",
4159 |                   "description": "Array of unsigned and signed grouped transactions to sign/submit",
4160 |                   "example": "abc123"
4161 |                 },
4162 |                 "example": "abc123"
4163 |               }
4164 |             }
4165 |           },
4166 |           "400": {
4167 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
4168 |             "content": {
4169 |               "application/vnd.goa.error": {
4170 |                 "schema": {
4171 |                   "$ref": "#/components/schemas/Error"
4172 |                 }
4173 |               }
4174 |             }
4175 |           },
4176 |           "403": {
4177 |             "description": "segmentPriceTooLow: segment price doesn't meet minimum required price",
4178 |             "headers": {
4179 |               "goa-attribute-fault": {
4180 |                 "description": "Is the error a server-side fault?",
4181 |                 "schema": {
4182 |                   "type": "boolean",
4183 |                   "description": "Is the error a server-side fault?",
4184 |                   "example": false
4185 |                 },
4186 |                 "example": false
4187 |               },
4188 |               "goa-attribute-id": {
4189 |                 "description": "ID is a unique identifier for this particular occurrence of the problem.",
4190 |                 "schema": {
4191 |                   "type": "string",
4192 |                   "description": "ID is a unique identifier for this particular occurrence of the problem.",
4193 |                   "example": "123abc"
4194 |                 },
4195 |                 "example": "123abc"
4196 |               },
4197 |               "goa-attribute-message": {
4198 |                 "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
4199 |                 "schema": {
4200 |                   "type": "string",
4201 |                   "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
4202 |                   "example": "parameter 'p' must be an integer"
4203 |                 },
4204 |                 "example": "parameter 'p' must be an integer"
4205 |               },
4206 |               "goa-attribute-name": {
4207 |                 "description": "Name is the name of this class of errors.",
4208 |                 "schema": {
4209 |                   "type": "string",
4210 |                   "description": "Name is the name of this class of errors.",
4211 |                   "example": "bad_request"
4212 |                 },
4213 |                 "example": "bad_request"
4214 |               },
4215 |               "goa-attribute-temporary": {
4216 |                 "description": "Is the error temporary?",
4217 |                 "schema": {
4218 |                   "type": "boolean",
4219 |                   "description": "Is the error temporary?",
4220 |                   "example": false
4221 |                 },
4222 |                 "example": false
4223 |               },
4224 |               "goa-attribute-timeout": {
4225 |                 "description": "Is the error a timeout?",
4226 |                 "schema": {
4227 |                   "type": "boolean",
4228 |                   "description": "Is the error a timeout?",
4229 |                   "example": false
4230 |                 },
4231 |                 "example": false
4232 |               }
4233 |             }
4234 |           },
4235 |           "404": {
4236 |             "description": "notFound: Not Found response.",
4237 |             "content": {
4238 |               "application/vnd.goa.error": {
4239 |                 "schema": {
4240 |                   "$ref": "#/components/schemas/Error"
4241 |                 }
4242 |               }
4243 |             }
4244 |           },
4245 |           "429": {
4246 |             "description": "rateLimited: Too Many Requests response.",
4247 |             "content": {
4248 |               "application/json": {
4249 |                 "schema": {
4250 |                   "$ref": "#/components/schemas/RateLimited"
4251 |                 },
4252 |                 "example": {
4253 |                   "limit": 5,
4254 |                   "secsRemaining": 50
4255 |                 }
4256 |               }
4257 |             }
4258 |           }
4259 |         }
4260 |       }
4261 |     },
4262 |     "/nfd/suggest/{name}": {
4263 |       "get": {
4264 |         "tags": [
4265 |           "nfd"
4266 |         ],
4267 |         "summary": "suggest nfd",
4268 |         "description": "Suggest NFDs to purchase",
4269 |         "operationId": "nfd#suggest",
4270 |         "parameters": [
4271 |           {
4272 |             "name": "limit",
4273 |             "in": "query",
4274 |             "description": "Limit the number of results returned - max 40",
4275 |             "allowEmptyValue": true,
4276 |             "schema": {
4277 |               "type": "integer",
4278 |               "description": "Limit the number of results returned - max 40",
4279 |               "default": 20,
4280 |               "example": 20,
4281 |               "format": "int64",
4282 |               "minimum": 1,
4283 |               "maximum": 40
4284 |             },
4285 |             "example": 20
4286 |           },
4287 |           {
4288 |             "name": "view",
4289 |             "in": "query",
4290 |             "description": "View of data to return, brief (default), or full",
4291 |             "allowEmptyValue": true,
4292 |             "schema": {
4293 |               "type": "string",
4294 |               "description": "View of data to return, brief (default), or full",
4295 |               "default": "brief",
4296 |               "example": "full",
4297 |               "enum": [
4298 |                 "brief",
4299 |                 "full"
4300 |               ]
4301 |             },
4302 |             "example": "full"
4303 |           },
4304 |           {
4305 |             "name": "buyer",
4306 |             "in": "query",
4307 |             "description": "Expected buyer of name.  Used for segment minting as additional check on availability of mint",
4308 |             "allowEmptyValue": true,
4309 |             "required": true,
4310 |             "schema": {
4311 |               "type": "string",
4312 |               "description": "An Algorand Account address",
4313 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4314 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
4315 |             },
4316 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4317 |           },
4318 |           {
4319 |             "name": "name",
4320 |             "in": "path",
4321 |             "description": "A name (even partial) to search for [receiving suggestions as well]",
4322 |             "required": true,
4323 |             "schema": {
4324 |               "type": "string",
4325 |               "description": "A name (even partial) to search for [receiving suggestions as well]",
4326 |               "example": "aaa",
4327 |               "pattern": "^([a-z0-9]{1,27}\\.){0,1}[a-z0-9]{1,27}(\\.algo)?$",
4328 |               "maxLength": 60
4329 |             },
4330 |             "example": "aaa"
4331 |           }
4332 |         ],
4333 |         "responses": {
4334 |           "200": {
4335 |             "description": "OK response.",
4336 |             "content": {
4337 |               "application/json": {
4338 |                 "schema": {
4339 |                   "$ref": "#/components/schemas/NfdRecordCollection"
4340 |                 },
4341 |                 "example": [
4342 |                   {
4343 |                     "appID": 1000000,
4344 |                     "asaID": 1,
4345 |                     "avatarOutdated": false,
4346 |                     "caAlgo": [
4347 |                       "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4348 |                     ],
4349 |                     "cache-control": "abc123",
4350 |                     "category": "abc123",
4351 |                     "currentAsOfBlock": 1,
4352 |                     "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4353 |                     "etag": "abc123",
4354 |                     "expired": false,
4355 |                     "match-check": "abc123",
4356 |                     "metaTags": [
4357 |                       "abc123"
4358 |                     ],
4359 |                     "name": "abc123",
4360 |                     "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4361 |                     "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4362 |                     "parentAppID": 1000000,
4363 |                     "properties": {
4364 |                       "internal": {
4365 |                         "abc123": "abc123"
4366 |                       },
4367 |                       "userDefined": {
4368 |                         "ca:b": "abc123"
4369 |                       },
4370 |                       "verified": {
4371 |                         "caAlgo": "abc123"
4372 |                       }
4373 |                     },
4374 |                     "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4375 |                     "saleType": "abc123",
4376 |                     "sellAmount": 1,
4377 |                     "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4378 |                     "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4379 |                     "state": "abc123",
4380 |                     "tags": [
4381 |                       "abc123"
4382 |                     ],
4383 |                     "timeChanged": "1970-01-01T00:00:01Z",
4384 |                     "timeCreated": "1970-01-01T00:00:01Z",
4385 |                     "timeExpires": "1970-01-01T00:00:01Z",
4386 |                     "timePurchased": "1970-01-01T00:00:01Z",
4387 |                     "unverifiedCa": {
4388 |                       "btc": [
4389 |                         "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
4390 |                       ]
4391 |                     },
4392 |                     "unverifiedCaAlgo": [
4393 |                       "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4394 |                     ]
4395 |                   }
4396 |                 ]
4397 |               }
4398 |             }
4399 |           },
4400 |           "400": {
4401 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
4402 |             "content": {
4403 |               "application/vnd.goa.error": {
4404 |                 "schema": {
4405 |                   "$ref": "#/components/schemas/Error"
4406 |                 }
4407 |               }
4408 |             }
4409 |           },
4410 |           "403": {
4411 |             "description": "segmentNotSupported: parent segment isn't at contract version supporting segments",
4412 |             "headers": {
4413 |               "goa-attribute-fault": {
4414 |                 "description": "Is the error a server-side fault?",
4415 |                 "schema": {
4416 |                   "type": "boolean",
4417 |                   "description": "Is the error a server-side fault?",
4418 |                   "example": false
4419 |                 },
4420 |                 "example": false
4421 |               },
4422 |               "goa-attribute-id": {
4423 |                 "description": "ID is a unique identifier for this particular occurrence of the problem.",
4424 |                 "schema": {
4425 |                   "type": "string",
4426 |                   "description": "ID is a unique identifier for this particular occurrence of the problem.",
4427 |                   "example": "123abc"
4428 |                 },
4429 |                 "example": "123abc"
4430 |               },
4431 |               "goa-attribute-message": {
4432 |                 "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
4433 |                 "schema": {
4434 |                   "type": "string",
4435 |                   "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
4436 |                   "example": "parameter 'p' must be an integer"
4437 |                 },
4438 |                 "example": "parameter 'p' must be an integer"
4439 |               },
4440 |               "goa-attribute-name": {
4441 |                 "description": "Name is the name of this class of errors.",
4442 |                 "schema": {
4443 |                   "type": "string",
4444 |                   "description": "Name is the name of this class of errors.",
4445 |                   "example": "bad_request"
4446 |                 },
4447 |                 "example": "bad_request"
4448 |               },
4449 |               "goa-attribute-temporary": {
4450 |                 "description": "Is the error temporary?",
4451 |                 "schema": {
4452 |                   "type": "boolean",
4453 |                   "description": "Is the error temporary?",
4454 |                   "example": false
4455 |                 },
4456 |                 "example": false
4457 |               },
4458 |               "goa-attribute-timeout": {
4459 |                 "description": "Is the error a timeout?",
4460 |                 "schema": {
4461 |                   "type": "boolean",
4462 |                   "description": "Is the error a timeout?",
4463 |                   "example": false
4464 |                 },
4465 |                 "example": false
4466 |               }
4467 |             }
4468 |           },
4469 |           "404": {
4470 |             "description": "notFound: Not Found response.",
4471 |             "content": {
4472 |               "application/vnd.goa.error": {
4473 |                 "schema": {
4474 |                   "$ref": "#/components/schemas/Error"
4475 |                 }
4476 |               }
4477 |             }
4478 |           },
4479 |           "429": {
4480 |             "description": "rateLimited: Too Many Requests response.",
4481 |             "content": {
4482 |               "application/json": {
4483 |                 "schema": {
4484 |                   "$ref": "#/components/schemas/RateLimited"
4485 |                 },
4486 |                 "example": {
4487 |                   "limit": 5,
4488 |                   "secsRemaining": 50
4489 |                 }
4490 |               }
4491 |             }
4492 |           }
4493 |         }
4494 |       }
4495 |     },
4496 |     "/nfd/totals": {
4497 |       "get": {
4498 |         "tags": [
4499 |           "nfd"
4500 |         ],
4501 |         "summary": "totals nfd",
4502 |         "description": "Fetch NFD summary data - results subject to change in the future",
4503 |         "operationId": "nfd#totals",
4504 |         "parameters": [
4505 |           {
4506 |             "name": "if-none-match",
4507 |             "in": "header",
4508 |             "description": "etag",
4509 |             "allowEmptyValue": true,
4510 |             "schema": {
4511 |               "type": "string",
4512 |               "description": "etag"
4513 |             }
4514 |           }
4515 |         ],
4516 |         "responses": {
4517 |           "200": {
4518 |             "description": "OK response.",
4519 |             "headers": {
4520 |               "ETag": {
4521 |                 "description": "ETag",
4522 |                 "schema": {
4523 |                   "type": "string",
4524 |                   "description": "ETag",
4525 |                   "example": "abc123"
4526 |                 },
4527 |                 "example": "abc123"
4528 |               },
4529 |               "cache-control": {
4530 |                 "description": "Cache-Control header",
4531 |                 "schema": {
4532 |                   "type": "string",
4533 |                   "description": "Cache-Control header",
4534 |                   "example": "abc123"
4535 |                 },
4536 |                 "example": "abc123"
4537 |               }
4538 |             },
4539 |             "content": {
4540 |               "application/json": {
4541 |                 "schema": {
4542 |                   "$ref": "#/components/schemas/TotalsOKResponseBody"
4543 |                 },
4544 |                 "example": {
4545 |                   "contractTotals": {
4546 |                     "allVersions": {
4547 |                       "abc123": 1
4548 |                     },
4549 |                     "majorVersions": {
4550 |                       "abc123": 1
4551 |                     }
4552 |                   },
4553 |                   "expiredTotal": 1,
4554 |                   "forSale": 1,
4555 |                   "match-check": "abc123",
4556 |                   "mintedTotals": {
4557 |                     "day": 1,
4558 |                     "lifetime": 1,
4559 |                     "month": 1,
4560 |                     "week": 1
4561 |                   },
4562 |                   "segmentTotals": {
4563 |                     "day": 1,
4564 |                     "lifetime": 1,
4565 |                     "month": 1,
4566 |                     "week": 1
4567 |                   },
4568 |                   "soldTotals": {
4569 |                     "day": 1,
4570 |                     "lifetime": 1,
4571 |                     "month": 1,
4572 |                     "week": 1
4573 |                   },
4574 |                   "total": 1,
4575 |                   "totalSegments": 1,
4576 |                   "uniqueOwners": 1
4577 |                 }
4578 |               }
4579 |             }
4580 |           },
4581 |           "304": {
4582 |             "description": "ETag not changed"
4583 |           },
4584 |           "400": {
4585 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
4586 |             "content": {
4587 |               "application/vnd.goa.error": {
4588 |                 "schema": {
4589 |                   "$ref": "#/components/schemas/Error"
4590 |                 }
4591 |               }
4592 |             }
4593 |           },
4594 |           "404": {
4595 |             "description": "notFound: Not Found response.",
4596 |             "content": {
4597 |               "application/vnd.goa.error": {
4598 |                 "schema": {
4599 |                   "$ref": "#/components/schemas/Error"
4600 |                 }
4601 |               }
4602 |             }
4603 |           },
4604 |           "429": {
4605 |             "description": "rateLimited: Too Many Requests response.",
4606 |             "content": {
4607 |               "application/json": {
4608 |                 "schema": {
4609 |                   "$ref": "#/components/schemas/RateLimited"
4610 |                 },
4611 |                 "example": {
4612 |                   "limit": 5,
4613 |                   "secsRemaining": 50
4614 |                 }
4615 |               }
4616 |             }
4617 |           }
4618 |         }
4619 |       }
4620 |     },
4621 |     "/nfd/twitter/leaders": {
4622 |       "get": {
4623 |         "tags": [
4624 |           "nfd"
4625 |         ],
4626 |         "summary": "twitterLeaders nfd",
4627 |         "description": "Get top twitter influencers",
4628 |         "operationId": "nfd#twitterLeaders",
4629 |         "parameters": [
4630 |           {
4631 |             "name": "if-none-match",
4632 |             "in": "header",
4633 |             "description": "etag",
4634 |             "allowEmptyValue": true,
4635 |             "schema": {
4636 |               "type": "string",
4637 |               "description": "etag"
4638 |             }
4639 |           }
4640 |         ],
4641 |         "responses": {
4642 |           "200": {
4643 |             "description": "OK response.",
4644 |             "headers": {
4645 |               "ETag": {
4646 |                 "description": "ETag",
4647 |                 "schema": {
4648 |                   "type": "string",
4649 |                   "description": "ETag",
4650 |                   "example": "abc123"
4651 |                 },
4652 |                 "example": "abc123"
4653 |               },
4654 |               "cache-control": {
4655 |                 "description": "Cache-Control header",
4656 |                 "schema": {
4657 |                   "type": "string",
4658 |                   "description": "Cache-Control header",
4659 |                   "example": "abc123"
4660 |                 },
4661 |                 "example": "abc123"
4662 |               }
4663 |             },
4664 |             "content": {
4665 |               "application/json": {
4666 |                 "schema": {
4667 |                   "type": "array",
4668 |                   "items": {
4669 |                     "$ref": "#/components/schemas/TwitterRecord"
4670 |                   },
4671 |                   "example": [
4672 |                     {
4673 |                       "followers": 1,
4674 |                       "following": 1,
4675 |                       "nfd": {
4676 |                         "appID": 1000000,
4677 |                         "asaID": 1,
4678 |                         "avatarOutdated": false,
4679 |                         "caAlgo": [
4680 |                           "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4681 |                         ],
4682 |                         "cache-control": "abc123",
4683 |                         "category": "abc123",
4684 |                         "currentAsOfBlock": 1,
4685 |                         "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4686 |                         "etag": "abc123",
4687 |                         "expired": false,
4688 |                         "match-check": "abc123",
4689 |                         "metaTags": [
4690 |                           "abc123"
4691 |                         ],
4692 |                         "name": "abc123",
4693 |                         "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4694 |                         "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4695 |                         "parentAppID": 1000000,
4696 |                         "properties": {
4697 |                           "internal": {
4698 |                             "abc123": "abc123"
4699 |                           },
4700 |                           "userDefined": {
4701 |                             "ca:b": "abc123"
4702 |                           },
4703 |                           "verified": {
4704 |                             "caAlgo": "abc123"
4705 |                           }
4706 |                         },
4707 |                         "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4708 |                         "saleType": "abc123",
4709 |                         "sellAmount": 1,
4710 |                         "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4711 |                         "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4712 |                         "state": "abc123",
4713 |                         "tags": [
4714 |                           "abc123"
4715 |                         ],
4716 |                         "timeChanged": "1970-01-01T00:00:01Z",
4717 |                         "timeCreated": "1970-01-01T00:00:01Z",
4718 |                         "timeExpires": "1970-01-01T00:00:01Z",
4719 |                         "timePurchased": "1970-01-01T00:00:01Z",
4720 |                         "unverifiedCa": {
4721 |                           "btc": [
4722 |                             "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
4723 |                           ]
4724 |                         },
4725 |                         "unverifiedCaAlgo": [
4726 |                           "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4727 |                         ]
4728 |                       },
4729 |                       "timeChanged": "1970-01-01T00:00:01Z",
4730 |                       "tweets": 1,
4731 |                       "twitterHandle": "abc123"
4732 |                     }
4733 |                   ]
4734 |                 },
4735 |                 "example": [
4736 |                   {
4737 |                     "followers": 1,
4738 |                     "following": 1,
4739 |                     "nfd": {
4740 |                       "appID": 1000000,
4741 |                       "asaID": 1,
4742 |                       "avatarOutdated": false,
4743 |                       "caAlgo": [
4744 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4745 |                       ],
4746 |                       "cache-control": "abc123",
4747 |                       "category": "abc123",
4748 |                       "currentAsOfBlock": 1,
4749 |                       "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4750 |                       "etag": "abc123",
4751 |                       "expired": false,
4752 |                       "match-check": "abc123",
4753 |                       "metaTags": [
4754 |                         "abc123"
4755 |                       ],
4756 |                       "name": "abc123",
4757 |                       "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4758 |                       "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4759 |                       "parentAppID": 1000000,
4760 |                       "properties": {
4761 |                         "internal": {
4762 |                           "abc123": "abc123"
4763 |                         },
4764 |                         "userDefined": {
4765 |                           "ca:b": "abc123"
4766 |                         },
4767 |                         "verified": {
4768 |                           "caAlgo": "abc123"
4769 |                         }
4770 |                       },
4771 |                       "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4772 |                       "saleType": "abc123",
4773 |                       "sellAmount": 1,
4774 |                       "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4775 |                       "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
4776 |                       "state": "abc123",
4777 |                       "tags": [
4778 |                         "abc123"
4779 |                       ],
4780 |                       "timeChanged": "1970-01-01T00:00:01Z",
4781 |                       "timeCreated": "1970-01-01T00:00:01Z",
4782 |                       "timeExpires": "1970-01-01T00:00:01Z",
4783 |                       "timePurchased": "1970-01-01T00:00:01Z",
4784 |                       "unverifiedCa": {
4785 |                         "btc": [
4786 |                           "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
4787 |                         ]
4788 |                       },
4789 |                       "unverifiedCaAlgo": [
4790 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
4791 |                       ]
4792 |                     },
4793 |                     "timeChanged": "1970-01-01T00:00:01Z",
4794 |                     "tweets": 1,
4795 |                     "twitterHandle": "abc123"
4796 |                   }
4797 |                 ]
4798 |               }
4799 |             }
4800 |           },
4801 |           "304": {
4802 |             "description": "ETag not changed"
4803 |           },
4804 |           "400": {
4805 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
4806 |             "content": {
4807 |               "application/vnd.goa.error": {
4808 |                 "schema": {
4809 |                   "$ref": "#/components/schemas/Error"
4810 |                 }
4811 |               }
4812 |             }
4813 |           },
4814 |           "404": {
4815 |             "description": "notFound: Not Found response.",
4816 |             "content": {
4817 |               "application/vnd.goa.error": {
4818 |                 "schema": {
4819 |                   "$ref": "#/components/schemas/Error"
4820 |                 }
4821 |               }
4822 |             }
4823 |           },
4824 |           "429": {
4825 |             "description": "rateLimited: Too Many Requests response.",
4826 |             "content": {
4827 |               "application/json": {
4828 |                 "schema": {
4829 |                   "$ref": "#/components/schemas/RateLimited"
4830 |                 },
4831 |                 "example": {
4832 |                   "limit": 5,
4833 |                   "secsRemaining": 50
4834 |                 }
4835 |               }
4836 |             }
4837 |           }
4838 |         }
4839 |       }
4840 |     },
4841 |     "/nfd/update/{name}": {
4842 |       "patch": {
4843 |         "tags": [
4844 |           "nfd"
4845 |         ],
4846 |         "summary": "updatePartial nfd",
4847 |         "description": "Set an attribute in an NFD on behalf of a particular sender (who must be the owner).  Can set user-defined fields, or clear verified fields (except v.ca*)",
4848 |         "operationId": "nfd#updatePartial",
4849 |         "parameters": [
4850 |           {
4851 |             "name": "name",
4852 |             "in": "path",
4853 |             "required": true,
4854 |             "schema": {
4855 |               "type": "string",
4856 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
4857 |               "example": "silvio.algo",
4858 |               "pattern": "^.+\\.algo$",
4859 |               "minLength": 1,
4860 |               "maxLength": 120
4861 |             },
4862 |             "example": "silvio.algo"
4863 |           }
4864 |         ],
4865 |         "requestBody": {
4866 |           "required": true,
4867 |           "content": {
4868 |             "application/json": {
4869 |               "schema": {
4870 |                 "$ref": "#/components/schemas/UpdatePartialRequestBody"
4871 |               },
4872 |               "example": {
4873 |                 "properties": {
4874 |                   "internal": {
4875 |                     "abc123": "abc123"
4876 |                   },
4877 |                   "userDefined": {
4878 |                     "ca:b": "abc123"
4879 |                   },
4880 |                   "verified": {
4881 |                     "caAlgo": "abc123"
4882 |                   }
4883 |                 },
4884 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
4885 |               }
4886 |             }
4887 |           }
4888 |         },
4889 |         "responses": {
4890 |           "202": {
4891 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
4892 |             "content": {
4893 |               "application/json": {
4894 |                 "schema": {
4895 |                   "type": "string",
4896 |                   "example": "abc123"
4897 |                 },
4898 |                 "example": "abc123"
4899 |               }
4900 |             }
4901 |           },
4902 |           "400": {
4903 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
4904 |             "content": {
4905 |               "application/vnd.goa.error": {
4906 |                 "schema": {
4907 |                   "$ref": "#/components/schemas/Error"
4908 |                 }
4909 |               }
4910 |             }
4911 |           },
4912 |           "403": {
4913 |             "description": "invalidFieldSet: You can only set user-defined properties, or clear verified properties",
4914 |             "content": {
4915 |               "application/vnd.goa.error": {
4916 |                 "schema": {
4917 |                   "$ref": "#/components/schemas/Error"
4918 |                 }
4919 |               }
4920 |             }
4921 |           },
4922 |           "404": {
4923 |             "description": "notFound: Not Found response.",
4924 |             "content": {
4925 |               "application/vnd.goa.error": {
4926 |                 "schema": {
4927 |                   "$ref": "#/components/schemas/Error"
4928 |                 }
4929 |               }
4930 |             }
4931 |           },
4932 |           "413": {
4933 |             "description": "tooManyTransactions: The number of transactions allowed in a single transaction group (16) have been exceeded.  Update fewer fields in one transaction, or if selling, reduce the data within the NFD first.",
4934 |             "content": {
4935 |               "application/vnd.goa.error": {
4936 |                 "schema": {
4937 |                   "$ref": "#/components/schemas/Error"
4938 |                 }
4939 |               }
4940 |             }
4941 |           },
4942 |           "429": {
4943 |             "description": "rateLimited: Too Many Requests response.",
4944 |             "content": {
4945 |               "application/json": {
4946 |                 "schema": {
4947 |                   "$ref": "#/components/schemas/RateLimited"
4948 |                 },
4949 |                 "example": {
4950 |                   "limit": 5,
4951 |                   "secsRemaining": 50
4952 |                 }
4953 |               }
4954 |             }
4955 |           }
4956 |         }
4957 |       },
4958 |       "put": {
4959 |         "tags": [
4960 |           "nfd"
4961 |         ],
4962 |         "summary": "updateAll nfd",
4963 |         "description": "Replace all NFD user-settable attributes with those passed-in, removing, adding and replacing on behalf of a particular sender (who must be the owner).  Returns transaction group of transactions to sign",
4964 |         "operationId": "nfd#updateAll",
4965 |         "parameters": [
4966 |           {
4967 |             "name": "name",
4968 |             "in": "path",
4969 |             "required": true,
4970 |             "schema": {
4971 |               "type": "string",
4972 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
4973 |               "example": "silvio.algo",
4974 |               "pattern": "^.+\\.algo$",
4975 |               "minLength": 1,
4976 |               "maxLength": 120
4977 |             },
4978 |             "example": "silvio.algo"
4979 |           }
4980 |         ],
4981 |         "requestBody": {
4982 |           "required": true,
4983 |           "content": {
4984 |             "application/json": {
4985 |               "schema": {
4986 |                 "$ref": "#/components/schemas/UpdatePartialRequestBody"
4987 |               },
4988 |               "example": {
4989 |                 "properties": {
4990 |                   "internal": {
4991 |                     "abc123": "abc123"
4992 |                   },
4993 |                   "userDefined": {
4994 |                     "ca:b": "abc123"
4995 |                   },
4996 |                   "verified": {
4997 |                     "caAlgo": "abc123"
4998 |                   }
4999 |                 },
5000 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
5001 |               }
5002 |             }
5003 |           }
5004 |         },
5005 |         "responses": {
5006 |           "202": {
5007 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
5008 |             "content": {
5009 |               "application/json": {
5010 |                 "schema": {
5011 |                   "type": "string",
5012 |                   "example": "abc123"
5013 |                 },
5014 |                 "example": "abc123"
5015 |               }
5016 |             }
5017 |           },
5018 |           "400": {
5019 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
5020 |             "content": {
5021 |               "application/vnd.goa.error": {
5022 |                 "schema": {
5023 |                   "$ref": "#/components/schemas/Error"
5024 |                 }
5025 |               }
5026 |             }
5027 |           },
5028 |           "403": {
5029 |             "description": "invalidFieldSet: You can only set user-defined properties, or clear verified properties",
5030 |             "content": {
5031 |               "application/vnd.goa.error": {
5032 |                 "schema": {
5033 |                   "$ref": "#/components/schemas/Error"
5034 |                 }
5035 |               }
5036 |             }
5037 |           },
5038 |           "404": {
5039 |             "description": "notFound: Not Found response.",
5040 |             "content": {
5041 |               "application/vnd.goa.error": {
5042 |                 "schema": {
5043 |                   "$ref": "#/components/schemas/Error"
5044 |                 }
5045 |               }
5046 |             }
5047 |           },
5048 |           "413": {
5049 |             "description": "tooManyTransactions: The number of transactions allowed in a single transaction group (16) have been exceeded.  Update fewer fields in one transaction, or if selling, reduce the data within the NFD first.",
5050 |             "content": {
5051 |               "application/vnd.goa.error": {
5052 |                 "schema": {
5053 |                   "$ref": "#/components/schemas/Error"
5054 |                 }
5055 |               }
5056 |             }
5057 |           },
5058 |           "429": {
5059 |             "description": "rateLimited: Too Many Requests response.",
5060 |             "content": {
5061 |               "application/json": {
5062 |                 "schema": {
5063 |                   "$ref": "#/components/schemas/RateLimited"
5064 |                 },
5065 |                 "example": {
5066 |                   "limit": 5,
5067 |                   "secsRemaining": 50
5068 |                 }
5069 |               }
5070 |             }
5071 |           }
5072 |         }
5073 |       }
5074 |     },
5075 |     "/nfd/updateImage/{name}/{sender}/{which}": {
5076 |       "post": {
5077 |         "tags": [
5078 |           "nfd"
5079 |         ],
5080 |         "summary": "updateImage nfd",
5081 |         "description": "Update the avatar or banner image associated with an NFD by uploading new image content",
5082 |         "operationId": "nfd#updateImage",
5083 |         "parameters": [
5084 |           {
5085 |             "name": "wantTxn",
5086 |             "in": "query",
5087 |             "description": "Whether to return transactions to sign to update the specified image attribute within the NFD",
5088 |             "allowEmptyValue": true,
5089 |             "schema": {
5090 |               "type": "boolean",
5091 |               "description": "Whether to return transactions to sign to update the specified image attribute within the NFD",
5092 |               "default": true,
5093 |               "example": false
5094 |             },
5095 |             "example": false
5096 |           },
5097 |           {
5098 |             "name": "name",
5099 |             "in": "path",
5100 |             "required": true,
5101 |             "schema": {
5102 |               "type": "string",
5103 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
5104 |               "example": "silvio.algo",
5105 |               "pattern": "^.+\\.algo$",
5106 |               "minLength": 1,
5107 |               "maxLength": 120
5108 |             },
5109 |             "example": "silvio.algo"
5110 |           },
5111 |           {
5112 |             "name": "sender",
5113 |             "in": "path",
5114 |             "description": "Address that will be signing the returned transactions.  Should be owner of NFD",
5115 |             "required": true,
5116 |             "schema": {
5117 |               "type": "string",
5118 |               "description": "An Algorand Account address",
5119 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5120 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
5121 |             },
5122 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
5123 |           },
5124 |           {
5125 |             "name": "which",
5126 |             "in": "path",
5127 |             "description": "Which image to update, avatar or banner",
5128 |             "required": true,
5129 |             "schema": {
5130 |               "type": "string",
5131 |               "description": "Which image to update, avatar or banner",
5132 |               "example": "banner",
5133 |               "enum": [
5134 |                 "avatar",
5135 |                 "banner"
5136 |               ]
5137 |             },
5138 |             "example": "banner"
5139 |           }
5140 |         ],
5141 |         "responses": {
5142 |           "200": {
5143 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
5144 |             "content": {
5145 |               "application/json": {
5146 |                 "schema": {
5147 |                   "type": "string",
5148 |                   "example": "abc123"
5149 |                 },
5150 |                 "example": "abc123"
5151 |               }
5152 |             }
5153 |           },
5154 |           "400": {
5155 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
5156 |             "content": {
5157 |               "application/vnd.goa.error": {
5158 |                 "schema": {
5159 |                   "$ref": "#/components/schemas/Error"
5160 |                 }
5161 |               }
5162 |             }
5163 |           },
5164 |           "403": {
5165 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
5166 |             "content": {
5167 |               "application/vnd.goa.error": {
5168 |                 "schema": {
5169 |                   "$ref": "#/components/schemas/Error"
5170 |                 }
5171 |               }
5172 |             }
5173 |           },
5174 |           "404": {
5175 |             "description": "notFound: Not Found response.",
5176 |             "content": {
5177 |               "application/vnd.goa.error": {
5178 |                 "schema": {
5179 |                   "$ref": "#/components/schemas/Error"
5180 |                 }
5181 |               }
5182 |             }
5183 |           },
5184 |           "413": {
5185 |             "description": "imageTooLarge: Images must be <10 Megabytes in size",
5186 |             "content": {
5187 |               "application/vnd.goa.error": {
5188 |                 "schema": {
5189 |                   "$ref": "#/components/schemas/Error"
5190 |                 }
5191 |               }
5192 |             }
5193 |           },
5194 |           "429": {
5195 |             "description": "rateLimited: Too Many Requests response.",
5196 |             "content": {
5197 |               "application/json": {
5198 |                 "schema": {
5199 |                   "$ref": "#/components/schemas/RateLimited"
5200 |                 },
5201 |                 "example": {
5202 |                   "limit": 5,
5203 |                   "secsRemaining": 50
5204 |                 }
5205 |               }
5206 |             }
5207 |           }
5208 |         }
5209 |       }
5210 |     },
5211 |     "/nfd/v2/address": {
5212 |       "get": {
5213 |         "tags": [
5214 |           "nfd"
5215 |         ],
5216 |         "summary": "Reverse Address lookup with results returned per address",
5217 |         "description": "Get all NFDs which have been explicitly linked to one or more verified [or unverified] Algorand address(es).  Unverified addresses will match but return as unverifiedCaAlgo array.  These should be treated specially and not have the same trust level as verified addresses as they can be falsely attributed.  The caAlgo array is what should be trusted for things like NFT creation addresses. For reverse lookups returning multiple NFDs, the first result should be used.",
5218 |         "operationId": "nfd#getNFDsForAddressesV2",
5219 |         "parameters": [
5220 |           {
5221 |             "name": "address",
5222 |             "in": "query",
5223 |             "description": "one or more addresses (algo or otherwise) to look up, maximum of 20 can be defined.  Specify the same query parameter multiple times for each address, ie: address=xxx&address=yyy&address=zzz",
5224 |             "allowEmptyValue": true,
5225 |             "required": true,
5226 |             "schema": {
5227 |               "type": "array",
5228 |               "items": {
5229 |                 "type": "string",
5230 |                 "example": "abc123"
5231 |               },
5232 |               "description": "one or more addresses (algo or otherwise) to look up, maximum of 20 can be defined.  Specify the same query parameter multiple times for each address, ie: address=xxx&address=yyy&address=zzz",
5233 |               "example": [
5234 |                 "abc123",
5235 |                 "abc123"
5236 |               ],
5237 |               "minItems": 1,
5238 |               "maxItems": 20
5239 |             },
5240 |             "example": [
5241 |               "abc123",
5242 |               "abc123"
5243 |             ]
5244 |           },
5245 |           {
5246 |             "name": "limit",
5247 |             "in": "query",
5248 |             "description": "Limit the total number of NFDs returned - automatically changed to at least be 1 per address",
5249 |             "allowEmptyValue": true,
5250 |             "schema": {
5251 |               "type": "integer",
5252 |               "description": "Limit the total number of NFDs returned - automatically changed to at least be 1 per address",
5253 |               "default": 20,
5254 |               "format": "int64",
5255 |               "minimum": 1,
5256 |               "maximum": 200
5257 |             }
5258 |           },
5259 |           {
5260 |             "name": "view",
5261 |             "in": "query",
5262 |             "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only [default]), thumbnail (tiny + avatar), brief, or full",
5263 |             "allowEmptyValue": true,
5264 |             "schema": {
5265 |               "type": "string",
5266 |               "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only [default]), thumbnail (tiny + avatar), brief, or full",
5267 |               "default": "tiny",
5268 |               "enum": [
5269 |                 "tiny",
5270 |                 "thumbnail",
5271 |                 "brief",
5272 |                 "full"
5273 |               ]
5274 |             }
5275 |           },
5276 |           {
5277 |             "name": "if-none-match",
5278 |             "in": "header",
5279 |             "description": "etag",
5280 |             "allowEmptyValue": true,
5281 |             "schema": {
5282 |               "type": "string",
5283 |               "description": "etag"
5284 |             }
5285 |           }
5286 |         ],
5287 |         "responses": {
5288 |           "200": {
5289 |             "description": "OK response.",
5290 |             "headers": {
5291 |               "ETag": {
5292 |                 "description": "ETag",
5293 |                 "schema": {
5294 |                   "type": "string",
5295 |                   "description": "ETag",
5296 |                   "example": "abc123"
5297 |                 },
5298 |                 "example": "abc123"
5299 |               },
5300 |               "cache-control": {
5301 |                 "description": "Cache-Control header",
5302 |                 "schema": {
5303 |                   "type": "string",
5304 |                   "description": "Cache-Control header",
5305 |                   "example": "abc123"
5306 |                 },
5307 |                 "example": "abc123"
5308 |               }
5309 |             },
5310 |             "content": {
5311 |               "application/json": {
5312 |                 "schema": {
5313 |                   "type": "object",
5314 |                   "example": {
5315 |                     "abc123": [
5316 |                       {
5317 |                         "appID": 1000000,
5318 |                         "asaID": 1,
5319 |                         "avatarOutdated": false,
5320 |                         "caAlgo": [
5321 |                           "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
5322 |                         ],
5323 |                         "cache-control": "abc123",
5324 |                         "category": "abc123",
5325 |                         "currentAsOfBlock": 1,
5326 |                         "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5327 |                         "etag": "abc123",
5328 |                         "expired": false,
5329 |                         "match-check": "abc123",
5330 |                         "metaTags": [
5331 |                           "abc123"
5332 |                         ],
5333 |                         "name": "abc123",
5334 |                         "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5335 |                         "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5336 |                         "parentAppID": 1000000,
5337 |                         "properties": {
5338 |                           "internal": {
5339 |                             "abc123": "abc123"
5340 |                           },
5341 |                           "userDefined": {
5342 |                             "ca:b": "abc123"
5343 |                           },
5344 |                           "verified": {
5345 |                             "caAlgo": "abc123"
5346 |                           }
5347 |                         },
5348 |                         "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5349 |                         "saleType": "abc123",
5350 |                         "sellAmount": 1,
5351 |                         "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5352 |                         "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5353 |                         "state": "abc123",
5354 |                         "tags": [
5355 |                           "abc123"
5356 |                         ],
5357 |                         "timeChanged": "1970-01-01T00:00:01Z",
5358 |                         "timeCreated": "1970-01-01T00:00:01Z",
5359 |                         "timeExpires": "1970-01-01T00:00:01Z",
5360 |                         "timePurchased": "1970-01-01T00:00:01Z",
5361 |                         "unverifiedCa": {
5362 |                           "btc": [
5363 |                             "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
5364 |                           ]
5365 |                         },
5366 |                         "unverifiedCaAlgo": [
5367 |                           "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
5368 |                         ]
5369 |                       }
5370 |                     ]
5371 |                   },
5372 |                   "additionalProperties": {
5373 |                     "$ref": "#/components/schemas/NfdRecordinaddressCollection"
5374 |                   }
5375 |                 },
5376 |                 "example": {
5377 |                   "abc123": [
5378 |                     {
5379 |                       "appID": 1000000,
5380 |                       "asaID": 1,
5381 |                       "avatarOutdated": false,
5382 |                       "caAlgo": [
5383 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
5384 |                       ],
5385 |                       "cache-control": "abc123",
5386 |                       "category": "abc123",
5387 |                       "currentAsOfBlock": 1,
5388 |                       "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5389 |                       "etag": "abc123",
5390 |                       "expired": false,
5391 |                       "match-check": "abc123",
5392 |                       "metaTags": [
5393 |                         "abc123"
5394 |                       ],
5395 |                       "name": "abc123",
5396 |                       "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5397 |                       "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5398 |                       "parentAppID": 1000000,
5399 |                       "properties": {
5400 |                         "internal": {
5401 |                           "abc123": "abc123"
5402 |                         },
5403 |                         "userDefined": {
5404 |                           "ca:b": "abc123"
5405 |                         },
5406 |                         "verified": {
5407 |                           "caAlgo": "abc123"
5408 |                         }
5409 |                       },
5410 |                       "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5411 |                       "saleType": "abc123",
5412 |                       "sellAmount": 1,
5413 |                       "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5414 |                       "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5415 |                       "state": "abc123",
5416 |                       "tags": [
5417 |                         "abc123"
5418 |                       ],
5419 |                       "timeChanged": "1970-01-01T00:00:01Z",
5420 |                       "timeCreated": "1970-01-01T00:00:01Z",
5421 |                       "timeExpires": "1970-01-01T00:00:01Z",
5422 |                       "timePurchased": "1970-01-01T00:00:01Z",
5423 |                       "unverifiedCa": {
5424 |                         "btc": [
5425 |                           "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
5426 |                         ]
5427 |                       },
5428 |                       "unverifiedCaAlgo": [
5429 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
5430 |                       ]
5431 |                     }
5432 |                   ]
5433 |                 }
5434 |               }
5435 |             }
5436 |           },
5437 |           "304": {
5438 |             "description": "ETag not changed"
5439 |           },
5440 |           "400": {
5441 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
5442 |             "content": {
5443 |               "application/vnd.goa.error": {}
5444 |             }
5445 |           },
5446 |           "404": {
5447 |             "description": "notFound: Not Found response.",
5448 |             "headers": {
5449 |               "goa-attribute-fault": {
5450 |                 "description": "Is the error a server-side fault?",
5451 |                 "schema": {
5452 |                   "type": "boolean",
5453 |                   "description": "Is the error a server-side fault?",
5454 |                   "example": false
5455 |                 },
5456 |                 "example": false
5457 |               },
5458 |               "goa-attribute-id": {
5459 |                 "description": "ID is a unique identifier for this particular occurrence of the problem.",
5460 |                 "schema": {
5461 |                   "type": "string",
5462 |                   "description": "ID is a unique identifier for this particular occurrence of the problem.",
5463 |                   "example": "123abc"
5464 |                 },
5465 |                 "example": "123abc"
5466 |               },
5467 |               "goa-attribute-message": {
5468 |                 "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
5469 |                 "schema": {
5470 |                   "type": "string",
5471 |                   "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
5472 |                   "example": "parameter 'p' must be an integer"
5473 |                 },
5474 |                 "example": "parameter 'p' must be an integer"
5475 |               },
5476 |               "goa-attribute-name": {
5477 |                 "description": "Name is the name of this class of errors.",
5478 |                 "schema": {
5479 |                   "type": "string",
5480 |                   "description": "Name is the name of this class of errors.",
5481 |                   "example": "bad_request"
5482 |                 },
5483 |                 "example": "bad_request"
5484 |               },
5485 |               "goa-attribute-temporary": {
5486 |                 "description": "Is the error temporary?",
5487 |                 "schema": {
5488 |                   "type": "boolean",
5489 |                   "description": "Is the error temporary?",
5490 |                   "example": false
5491 |                 },
5492 |                 "example": false
5493 |               },
5494 |               "goa-attribute-timeout": {
5495 |                 "description": "Is the error a timeout?",
5496 |                 "schema": {
5497 |                   "type": "boolean",
5498 |                   "description": "Is the error a timeout?",
5499 |                   "example": false
5500 |                 },
5501 |                 "example": false
5502 |               }
5503 |             }
5504 |           },
5505 |           "429": {
5506 |             "description": "rateLimited: Too Many Requests response.",
5507 |             "content": {
5508 |               "application/json": {
5509 |                 "schema": {
5510 |                   "$ref": "#/components/schemas/RateLimited"
5511 |                 },
5512 |                 "example": {
5513 |                   "limit": 5,
5514 |                   "secsRemaining": 50
5515 |                 }
5516 |               }
5517 |             }
5518 |           }
5519 |         }
5520 |       }
5521 |     },
5522 |     "/nfd/v2/donations/leaders/{name}": {
5523 |       "get": {
5524 |         "tags": [
5525 |           "nfd"
5526 |         ],
5527 |         "summary": "donationLeadersV2 nfd",
5528 |         "description": "Get top donors to a specific NFD Donation target",
5529 |         "operationId": "nfd#donationLeadersV2",
5530 |         "parameters": [
5531 |           {
5532 |             "name": "name",
5533 |             "in": "path",
5534 |             "required": true,
5535 |             "schema": {
5536 |               "type": "string",
5537 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
5538 |               "example": "silvio.algo",
5539 |               "pattern": "^.+\\.algo$",
5540 |               "minLength": 1,
5541 |               "maxLength": 120
5542 |             },
5543 |             "example": "silvio.algo"
5544 |           }
5545 |         ],
5546 |         "responses": {
5547 |           "200": {
5548 |             "description": "OK response.",
5549 |             "content": {
5550 |               "application/json": {
5551 |                 "schema": {
5552 |                   "type": "array",
5553 |                   "items": {
5554 |                     "$ref": "#/components/schemas/Donation"
5555 |                   },
5556 |                   "example": [
5557 |                     {
5558 |                       "address": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5559 |                       "total": 1
5560 |                     }
5561 |                   ]
5562 |                 },
5563 |                 "example": [
5564 |                   {
5565 |                     "address": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5566 |                     "total": 1
5567 |                   }
5568 |                 ]
5569 |               }
5570 |             }
5571 |           },
5572 |           "304": {
5573 |             "description": "Not Modified response."
5574 |           },
5575 |           "400": {
5576 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
5577 |             "content": {
5578 |               "application/vnd.goa.error": {
5579 |                 "schema": {
5580 |                   "$ref": "#/components/schemas/Error"
5581 |                 }
5582 |               }
5583 |             }
5584 |           },
5585 |           "404": {
5586 |             "description": "notFound: Not Found response.",
5587 |             "content": {
5588 |               "application/vnd.goa.error": {
5589 |                 "schema": {
5590 |                   "$ref": "#/components/schemas/Error"
5591 |                 }
5592 |               }
5593 |             }
5594 |           },
5595 |           "429": {
5596 |             "description": "rateLimited: Too Many Requests response.",
5597 |             "content": {
5598 |               "application/json": {
5599 |                 "schema": {
5600 |                   "$ref": "#/components/schemas/RateLimited"
5601 |                 },
5602 |                 "example": {
5603 |                   "limit": 5,
5604 |                   "secsRemaining": 50
5605 |                 }
5606 |               }
5607 |             }
5608 |           }
5609 |         }
5610 |       }
5611 |     },
5612 |     "/nfd/v2/donations/list": {
5613 |       "get": {
5614 |         "tags": [
5615 |           "nfd"
5616 |         ],
5617 |         "summary": "donationListV2 nfd",
5618 |         "description": "Fetch list of tracked Donation NFD 'targets'.",
5619 |         "operationId": "nfd#donationListV2",
5620 |         "responses": {
5621 |           "200": {
5622 |             "description": "OK response.",
5623 |             "content": {
5624 |               "application/json": {
5625 |                 "schema": {
5626 |                   "$ref": "#/components/schemas/NfdRecordResponseFullCollection"
5627 |                 },
5628 |                 "example": [
5629 |                   {
5630 |                     "appID": 1000000,
5631 |                     "asaID": 1,
5632 |                     "avatarOutdated": false,
5633 |                     "caAlgo": [
5634 |                       "333333333333333333333333333333333333333333333333333333333A"
5635 |                     ],
5636 |                     "category": "premium",
5637 |                     "currentAsOfBlock": 1,
5638 |                     "depositAccount": "333333333333333333333333333333333333333333333333333333333A",
5639 |                     "expired": false,
5640 |                     "match-check": "abc123",
5641 |                     "metaTags": [
5642 |                       "abc123"
5643 |                     ],
5644 |                     "name": "abc123",
5645 |                     "nfdAccount": "333333333333333333333333333333333333333333333333333333333A",
5646 |                     "owner": "333333333333333333333333333333333333333333333333333333333A",
5647 |                     "parentAppID": 1000000,
5648 |                     "properties": {
5649 |                       "internal": {
5650 |                         "abc123": "abc123"
5651 |                       },
5652 |                       "userDefined": {
5653 |                         "ca:b": "abc123"
5654 |                       },
5655 |                       "verified": {
5656 |                         "caAlgo": "abc123"
5657 |                       }
5658 |                     },
5659 |                     "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
5660 |                     "saleType": "buyItNow",
5661 |                     "sellAmount": 1,
5662 |                     "seller": "333333333333333333333333333333333333333333333333333333333A",
5663 |                     "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A",
5664 |                     "state": "minting",
5665 |                     "tags": [
5666 |                       "abc123"
5667 |                     ],
5668 |                     "timeChanged": "1970-01-01T00:00:01Z",
5669 |                     "timeCreated": "1970-01-01T00:00:01Z",
5670 |                     "timeExpires": "1970-01-01T00:00:01Z",
5671 |                     "timePurchased": "1970-01-01T00:00:01Z",
5672 |                     "unverifiedCa": {
5673 |                       "btc": [
5674 |                         "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
5675 |                       ]
5676 |                     },
5677 |                     "unverifiedCaAlgo": [
5678 |                       "333333333333333333333333333333333333333333333333333333333A"
5679 |                     ]
5680 |                   }
5681 |                 ]
5682 |               }
5683 |             }
5684 |           },
5685 |           "400": {
5686 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
5687 |             "content": {
5688 |               "application/vnd.goa.error": {
5689 |                 "schema": {
5690 |                   "$ref": "#/components/schemas/Error"
5691 |                 }
5692 |               }
5693 |             }
5694 |           },
5695 |           "404": {
5696 |             "description": "notFound: Not Found response.",
5697 |             "content": {
5698 |               "application/vnd.goa.error": {
5699 |                 "schema": {
5700 |                   "$ref": "#/components/schemas/Error"
5701 |                 }
5702 |               }
5703 |             }
5704 |           },
5705 |           "429": {
5706 |             "description": "rateLimited: Too Many Requests response.",
5707 |             "content": {
5708 |               "application/json": {
5709 |                 "schema": {
5710 |                   "$ref": "#/components/schemas/RateLimited"
5711 |                 },
5712 |                 "example": {
5713 |                   "limit": 5,
5714 |                   "secsRemaining": 50
5715 |                 }
5716 |               }
5717 |             }
5718 |           }
5719 |         }
5720 |       }
5721 |     },
5722 |     "/nfd/v2/search": {
5723 |       "get": {
5724 |         "tags": [
5725 |           "nfd"
5726 |         ],
5727 |         "summary": "Search NFDs via various filters",
5728 |         "description": "Search NFDs via various filters",
5729 |         "operationId": "nfd#searchV2",
5730 |         "parameters": [
5731 |           {
5732 |             "name": "name",
5733 |             "in": "query",
5734 |             "description": "name or partial match of NFD name to filter on",
5735 |             "allowEmptyValue": true,
5736 |             "schema": {
5737 |               "type": "string",
5738 |               "description": "name or partial match of NFD name to filter on"
5739 |             }
5740 |           },
5741 |           {
5742 |             "name": "category",
5743 |             "in": "query",
5744 |             "allowEmptyValue": true,
5745 |             "schema": {
5746 |               "type": "array",
5747 |               "items": {
5748 |                 "type": "string",
5749 |                 "description": "Category of NFD",
5750 |                 "example": "premium",
5751 |                 "enum": [
5752 |                   "curated",
5753 |                   "premium",
5754 |                   "common"
5755 |                 ]
5756 |               }
5757 |             }
5758 |           },
5759 |           {
5760 |             "name": "saleType",
5761 |             "in": "query",
5762 |             "allowEmptyValue": true,
5763 |             "schema": {
5764 |               "type": "array",
5765 |               "items": {
5766 |                 "type": "string",
5767 |                 "description": "Sale type of NFD",
5768 |                 "example": "buyItNow",
5769 |                 "enum": [
5770 |                   "auction",
5771 |                   "buyItNow"
5772 |                 ]
5773 |               }
5774 |             }
5775 |           },
5776 |           {
5777 |             "name": "state",
5778 |             "in": "query",
5779 |             "allowEmptyValue": true,
5780 |             "schema": {
5781 |               "type": "array",
5782 |               "items": {
5783 |                 "type": "string",
5784 |                 "description": "State of NFD",
5785 |                 "example": "forSale",
5786 |                 "enum": [
5787 |                   "reserved",
5788 |                   "forSale",
5789 |                   "owned",
5790 |                   "expired"
5791 |                 ]
5792 |               }
5793 |             }
5794 |           },
5795 |           {
5796 |             "name": "parentAppID",
5797 |             "in": "query",
5798 |             "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD",
5799 |             "allowEmptyValue": true,
5800 |             "schema": {
5801 |               "type": "integer",
5802 |               "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD",
5803 |               "example": 1000000,
5804 |               "format": "int64"
5805 |             },
5806 |             "example": 1000000
5807 |           },
5808 |           {
5809 |             "name": "length",
5810 |             "in": "query",
5811 |             "description": "Length of NFD",
5812 |             "allowEmptyValue": true,
5813 |             "schema": {
5814 |               "type": "array",
5815 |               "items": {
5816 |                 "type": "string",
5817 |                 "example": "2_letters",
5818 |                 "enum": [
5819 |                   "1_letters",
5820 |                   "2_letters",
5821 |                   "3_letters",
5822 |                   "4_letters",
5823 |                   "5_letters",
5824 |                   "6_letters",
5825 |                   "7_letters",
5826 |                   "8_letters",
5827 |                   "9_letters",
5828 |                   "10+_letters"
5829 |                 ]
5830 |               },
5831 |               "description": "Length of NFD"
5832 |             }
5833 |           },
5834 |           {
5835 |             "name": "traits",
5836 |             "in": "query",
5837 |             "description": "Traits of NFD",
5838 |             "allowEmptyValue": true,
5839 |             "schema": {
5840 |               "type": "array",
5841 |               "items": {
5842 |                 "type": "string",
5843 |                 "example": "pristine",
5844 |                 "enum": [
5845 |                   "emoji",
5846 |                   "pristine",
5847 |                   "segment"
5848 |                 ]
5849 |               },
5850 |               "description": "Traits of NFD"
5851 |             }
5852 |           },
5853 |           {
5854 |             "name": "owner",
5855 |             "in": "query",
5856 |             "description": "An Algorand account address to find all NFDs owned by that address",
5857 |             "allowEmptyValue": true,
5858 |             "schema": {
5859 |               "type": "string",
5860 |               "description": "An Algorand Account address",
5861 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5862 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
5863 |             },
5864 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
5865 |           },
5866 |           {
5867 |             "name": "reservedFor",
5868 |             "in": "query",
5869 |             "description": "An Algorand account address to find all NFDs reserved for that address",
5870 |             "allowEmptyValue": true,
5871 |             "schema": {
5872 |               "type": "string",
5873 |               "description": "An Algorand Account address",
5874 |               "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
5875 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
5876 |             },
5877 |             "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
5878 |           },
5879 |           {
5880 |             "name": "excludeUserReserved",
5881 |             "in": "query",
5882 |             "description": "Should NFDs reserved for an account (transfers for example or unclaimed winning auctions) be excluded",
5883 |             "allowEmptyValue": true,
5884 |             "schema": {
5885 |               "type": "boolean",
5886 |               "description": "Should NFDs reserved for an account (transfers for example or unclaimed winning auctions) be excluded"
5887 |             }
5888 |           },
5889 |           {
5890 |             "name": "prefix",
5891 |             "in": "query",
5892 |             "description": "The start of an NFD name, fetching multiple NFDs that have that prefix",
5893 |             "allowEmptyValue": true,
5894 |             "schema": {
5895 |               "type": "string",
5896 |               "description": "The start of an NFD name, fetching multiple NFDs that have that prefix",
5897 |               "minLength": 1,
5898 |               "maxLength": 32
5899 |             }
5900 |           },
5901 |           {
5902 |             "name": "substring",
5903 |             "in": "query",
5904 |             "description": "Part of an NFD name, fetching multiple NFDs that have that substring (minimum 3 characters)",
5905 |             "allowEmptyValue": true,
5906 |             "schema": {
5907 |               "type": "string",
5908 |               "description": "Part of an NFD name, fetching multiple NFDs that have that substring (minimum 3 characters)",
5909 |               "minLength": 3,
5910 |               "maxLength": 32
5911 |             }
5912 |           },
5913 |           {
5914 |             "name": "vproperty",
5915 |             "in": "query",
5916 |             "description": "Verified property name to search on - specify value with vvalue",
5917 |             "allowEmptyValue": true,
5918 |             "schema": {
5919 |               "type": "string",
5920 |               "description": "Verified property name to search on - specify value with vvalue",
5921 |               "example": "discord",
5922 |               "enum": [
5923 |                 "blueskydid",
5924 |                 "discord",
5925 |                 "telegram",
5926 |                 "twitter",
5927 |                 "github",
5928 |                 "email",
5929 |                 "domain",
5930 |                 "nostrpubkey"
5931 |               ]
5932 |             },
5933 |             "example": "discord"
5934 |           },
5935 |           {
5936 |             "name": "vvalue",
5937 |             "in": "query",
5938 |             "description": "Value to find in the vproperty field specified with the vproperty parameter",
5939 |             "allowEmptyValue": true,
5940 |             "schema": {
5941 |               "type": "string",
5942 |               "description": "Value to find in the vproperty field specified with the vproperty parameter",
5943 |               "example": "abc123"
5944 |             },
5945 |             "example": "abc123"
5946 |           },
5947 |           {
5948 |             "name": "segmentLocked",
5949 |             "in": "query",
5950 |             "description": "Whether to explicitly filter on segments being locked or unlocked.  Typically only valuable when filtering on unlocked",
5951 |             "allowEmptyValue": true,
5952 |             "schema": {
5953 |               "type": "boolean",
5954 |               "description": "Whether to explicitly filter on segments being locked or unlocked.  Typically only valuable when filtering on unlocked",
5955 |               "example": false
5956 |             },
5957 |             "example": false
5958 |           },
5959 |           {
5960 |             "name": "segmentRoot",
5961 |             "in": "query",
5962 |             "description": "Whether to explicitly filter on NFD roots or segments.  True to only see roots, False to only see segments.",
5963 |             "allowEmptyValue": true,
5964 |             "schema": {
5965 |               "type": "boolean",
5966 |               "description": "Whether to explicitly filter on NFD roots or segments.  True to only see roots, False to only see segments.",
5967 |               "example": false
5968 |             },
5969 |             "example": false
5970 |           },
5971 |           {
5972 |             "name": "minPrice",
5973 |             "in": "query",
5974 |             "description": "Minimum price of NFD",
5975 |             "allowEmptyValue": true,
5976 |             "schema": {
5977 |               "type": "integer",
5978 |               "description": "Minimum price of NFD",
5979 |               "format": "int64"
5980 |             }
5981 |           },
5982 |           {
5983 |             "name": "maxPrice",
5984 |             "in": "query",
5985 |             "description": "Maximum price of NFD",
5986 |             "allowEmptyValue": true,
5987 |             "schema": {
5988 |               "type": "integer",
5989 |               "description": "Maximum price of NFD",
5990 |               "format": "int64"
5991 |             }
5992 |           },
5993 |           {
5994 |             "name": "minPriceUsd",
5995 |             "in": "query",
5996 |             "description": "Minimum price of NFD Segment in USD (cents)",
5997 |             "allowEmptyValue": true,
5998 |             "schema": {
5999 |               "type": "integer",
6000 |               "description": "Minimum price of NFD Segment in USD (cents)",
6001 |               "format": "int64"
6002 |             }
6003 |           },
6004 |           {
6005 |             "name": "maxPriceUsd",
6006 |             "in": "query",
6007 |             "description": "Maximum price of NFD Segment in USD (cents)",
6008 |             "allowEmptyValue": true,
6009 |             "schema": {
6010 |               "type": "integer",
6011 |               "description": "Maximum price of NFD Segment in USD (cents)",
6012 |               "format": "int64"
6013 |             }
6014 |           },
6015 |           {
6016 |             "name": "changedAfter",
6017 |             "in": "query",
6018 |             "description": "Fetch NFDs that changed after the specified timestamp",
6019 |             "allowEmptyValue": true,
6020 |             "schema": {
6021 |               "type": "string",
6022 |               "description": "Fetch NFDs that changed after the specified timestamp",
6023 |               "example": "1970-01-01T00:00:01Z",
6024 |               "format": "date-time"
6025 |             },
6026 |             "example": "1970-01-01T00:00:01Z"
6027 |           },
6028 |           {
6029 |             "name": "expiresBefore",
6030 |             "in": "query",
6031 |             "description": "Return only NFDs with an expiration time at or before the specified timestamp",
6032 |             "allowEmptyValue": true,
6033 |             "schema": {
6034 |               "type": "string",
6035 |               "description": "Return only NFDs with an expiration time at or before the specified timestamp",
6036 |               "example": "1970-01-01T00:00:01Z",
6037 |               "format": "date-time"
6038 |             },
6039 |             "example": "1970-01-01T00:00:01Z"
6040 |           },
6041 |           {
6042 |             "name": "limit",
6043 |             "in": "query",
6044 |             "description": "Limit the number of results returned - max 200",
6045 |             "allowEmptyValue": true,
6046 |             "schema": {
6047 |               "type": "integer",
6048 |               "description": "Limit the number of results returned - max 200",
6049 |               "default": 50,
6050 |               "format": "int64",
6051 |               "minimum": 1,
6052 |               "maximum": 200
6053 |             }
6054 |           },
6055 |           {
6056 |             "name": "offset",
6057 |             "in": "query",
6058 |             "description": "Starting document in large list.  Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200",
6059 |             "allowEmptyValue": true,
6060 |             "schema": {
6061 |               "type": "integer",
6062 |               "description": "Starting document in large list.  Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200",
6063 |               "default": 0,
6064 |               "format": "int64",
6065 |               "minimum": 0
6066 |             }
6067 |           },
6068 |           {
6069 |             "name": "sort",
6070 |             "in": "query",
6071 |             "description": "What to sort on",
6072 |             "allowEmptyValue": true,
6073 |             "schema": {
6074 |               "type": "string",
6075 |               "description": "What to sort on",
6076 |               "default": "createdDesc",
6077 |               "enum": [
6078 |                 "createdDesc",
6079 |                 "timeChangedDesc",
6080 |                 "soldDesc",
6081 |                 "priceAsc",
6082 |                 "priceDesc",
6083 |                 "highestSaleDesc",
6084 |                 "saleTypeAsc",
6085 |                 "nameAsc",
6086 |                 "expiresAsc",
6087 |                 "expiresDesc"
6088 |               ]
6089 |             }
6090 |           },
6091 |           {
6092 |             "name": "view",
6093 |             "in": "query",
6094 |             "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only), brief (default), or full",
6095 |             "allowEmptyValue": true,
6096 |             "schema": {
6097 |               "type": "string",
6098 |               "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only), brief (default), or full",
6099 |               "default": "brief",
6100 |               "enum": [
6101 |                 "tiny",
6102 |                 "thumbnail",
6103 |                 "brief",
6104 |                 "full"
6105 |               ]
6106 |             }
6107 |           },
6108 |           {
6109 |             "name": "if-none-match",
6110 |             "in": "header",
6111 |             "description": "etag",
6112 |             "allowEmptyValue": true,
6113 |             "schema": {
6114 |               "type": "string",
6115 |               "description": "etag"
6116 |             }
6117 |           }
6118 |         ],
6119 |         "responses": {
6120 |           "200": {
6121 |             "description": "OK response.",
6122 |             "headers": {
6123 |               "ETag": {
6124 |                 "description": "ETag",
6125 |                 "schema": {
6126 |                   "type": "string",
6127 |                   "description": "ETag",
6128 |                   "example": "abc123"
6129 |                 },
6130 |                 "example": "abc123"
6131 |               },
6132 |               "cache-control": {
6133 |                 "description": "Cache-Control header",
6134 |                 "schema": {
6135 |                   "type": "string",
6136 |                   "description": "Cache-Control header",
6137 |                   "example": "abc123"
6138 |                 },
6139 |                 "example": "abc123"
6140 |               }
6141 |             },
6142 |             "content": {
6143 |               "application/json": {
6144 |                 "schema": {
6145 |                   "$ref": "#/components/schemas/NfdV2SearchRecords"
6146 |                 },
6147 |                 "example": {
6148 |                   "match-check": "abc123",
6149 |                   "nfds": [
6150 |                     {
6151 |                       "appID": 1000000,
6152 |                       "asaID": 1,
6153 |                       "avatarOutdated": false,
6154 |                       "caAlgo": [
6155 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
6156 |                       ],
6157 |                       "cache-control": "abc123",
6158 |                       "category": "abc123",
6159 |                       "currentAsOfBlock": 1,
6160 |                       "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6161 |                       "etag": "abc123",
6162 |                       "expired": false,
6163 |                       "match-check": "abc123",
6164 |                       "metaTags": [
6165 |                         "abc123"
6166 |                       ],
6167 |                       "name": "abc123",
6168 |                       "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6169 |                       "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6170 |                       "parentAppID": 1000000,
6171 |                       "properties": {
6172 |                         "internal": {
6173 |                           "abc123": "abc123"
6174 |                         },
6175 |                         "userDefined": {
6176 |                           "ca:b": "abc123"
6177 |                         },
6178 |                         "verified": {
6179 |                           "caAlgo": "abc123"
6180 |                         }
6181 |                       },
6182 |                       "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6183 |                       "saleType": "abc123",
6184 |                       "sellAmount": 1,
6185 |                       "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6186 |                       "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6187 |                       "state": "abc123",
6188 |                       "tags": [
6189 |                         "abc123"
6190 |                       ],
6191 |                       "timeChanged": "1970-01-01T00:00:01Z",
6192 |                       "timeCreated": "1970-01-01T00:00:01Z",
6193 |                       "timeExpires": "1970-01-01T00:00:01Z",
6194 |                       "timePurchased": "1970-01-01T00:00:01Z",
6195 |                       "unverifiedCa": {
6196 |                         "btc": [
6197 |                           "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
6198 |                         ]
6199 |                       },
6200 |                       "unverifiedCaAlgo": [
6201 |                         "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
6202 |                       ]
6203 |                     }
6204 |                   ],
6205 |                   "total": 1
6206 |                 }
6207 |               }
6208 |             }
6209 |           },
6210 |           "304": {
6211 |             "description": "ETag not changed"
6212 |           },
6213 |           "400": {
6214 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
6215 |             "content": {
6216 |               "application/vnd.goa.error": {
6217 |                 "schema": {
6218 |                   "$ref": "#/components/schemas/Error"
6219 |                 }
6220 |               }
6221 |             }
6222 |           },
6223 |           "404": {
6224 |             "description": "notFound: Not Found response.",
6225 |             "content": {
6226 |               "application/vnd.goa.error": {
6227 |                 "schema": {
6228 |                   "$ref": "#/components/schemas/Error"
6229 |                 }
6230 |               }
6231 |             }
6232 |           },
6233 |           "429": {
6234 |             "description": "rateLimited: Too Many Requests response.",
6235 |             "content": {
6236 |               "application/json": {
6237 |                 "schema": {
6238 |                   "$ref": "#/components/schemas/RateLimited"
6239 |                 },
6240 |                 "example": {
6241 |                   "limit": 5,
6242 |                   "secsRemaining": 50
6243 |                 }
6244 |               }
6245 |             }
6246 |           }
6247 |         }
6248 |       }
6249 |     },
6250 |     "/nfd/v3/contract/upgrade/{name}": {
6251 |       "post": {
6252 |         "tags": [
6253 |           "nfd"
6254 |         ],
6255 |         "summary": "ContractUpgradeV3 nfd",
6256 |         "description": "Request upgrade of a 2.11 or 3.x NFD to 3.x+ (post renewals). First switch to 3.x will pay 1 year renewal fee",
6257 |         "operationId": "nfd#ContractUpgradeV3",
6258 |         "parameters": [
6259 |           {
6260 |             "name": "name",
6261 |             "in": "path",
6262 |             "required": true,
6263 |             "schema": {
6264 |               "type": "string",
6265 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
6266 |               "example": "silvio.algo",
6267 |               "pattern": "^.+\\.algo$",
6268 |               "minLength": 1,
6269 |               "maxLength": 120
6270 |             },
6271 |             "example": "silvio.algo"
6272 |           }
6273 |         ],
6274 |         "requestBody": {
6275 |           "required": true,
6276 |           "content": {
6277 |             "application/json": {
6278 |               "schema": {
6279 |                 "$ref": "#/components/schemas/RescindOfferRequestBody"
6280 |               },
6281 |               "example": {
6282 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
6283 |               }
6284 |             }
6285 |           }
6286 |         },
6287 |         "responses": {
6288 |           "200": {
6289 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
6290 |             "content": {
6291 |               "application/json": {
6292 |                 "schema": {
6293 |                   "type": "string",
6294 |                   "example": "abc123"
6295 |                 },
6296 |                 "example": "abc123"
6297 |               }
6298 |             }
6299 |           },
6300 |           "400": {
6301 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
6302 |             "content": {
6303 |               "application/vnd.goa.error": {
6304 |                 "schema": {
6305 |                   "$ref": "#/components/schemas/Error"
6306 |                 }
6307 |               }
6308 |             }
6309 |           },
6310 |           "403": {
6311 |             "description": "upgradeNotNeeded: The NFD contract doesn't need upgraded",
6312 |             "content": {
6313 |               "application/vnd.goa.error": {
6314 |                 "schema": {
6315 |                   "$ref": "#/components/schemas/Error"
6316 |                 }
6317 |               }
6318 |             }
6319 |           },
6320 |           "404": {
6321 |             "description": "notFound: Not Found response.",
6322 |             "content": {
6323 |               "application/vnd.goa.error": {
6324 |                 "schema": {
6325 |                   "$ref": "#/components/schemas/Error"
6326 |                 }
6327 |               }
6328 |             }
6329 |           },
6330 |           "429": {
6331 |             "description": "rateLimited: Too Many Requests response.",
6332 |             "content": {
6333 |               "application/json": {
6334 |                 "schema": {
6335 |                   "$ref": "#/components/schemas/RateLimited"
6336 |                 },
6337 |                 "example": {
6338 |                   "limit": 5,
6339 |                   "secsRemaining": 50
6340 |                 }
6341 |               }
6342 |             }
6343 |           }
6344 |         }
6345 |       }
6346 |     },
6347 |     "/nfd/vault/lock/{name}": {
6348 |       "post": {
6349 |         "tags": [
6350 |           "nfd"
6351 |         ],
6352 |         "summary": "vaultOptInLock nfd",
6353 |         "description": "Lock/Unlock ability for the specified NFD Vault to auto opt-in to assets, allowing airdrops from other accounts",
6354 |         "operationId": "nfd#vaultOptInLock",
6355 |         "parameters": [
6356 |           {
6357 |             "name": "name",
6358 |             "in": "path",
6359 |             "required": true,
6360 |             "schema": {
6361 |               "type": "string",
6362 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
6363 |               "example": "silvio.algo",
6364 |               "pattern": "^.+\\.algo$",
6365 |               "minLength": 1,
6366 |               "maxLength": 120
6367 |             },
6368 |             "example": "silvio.algo"
6369 |           }
6370 |         ],
6371 |         "requestBody": {
6372 |           "required": true,
6373 |           "content": {
6374 |             "application/json": {
6375 |               "schema": {
6376 |                 "$ref": "#/components/schemas/ContractLockRequestBody"
6377 |               },
6378 |               "example": {
6379 |                 "lock": false,
6380 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
6381 |               }
6382 |             }
6383 |           }
6384 |         },
6385 |         "responses": {
6386 |           "200": {
6387 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
6388 |             "content": {
6389 |               "application/json": {
6390 |                 "schema": {
6391 |                   "type": "string",
6392 |                   "example": "abc123"
6393 |                 },
6394 |                 "example": "abc123"
6395 |               }
6396 |             }
6397 |           },
6398 |           "400": {
6399 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
6400 |             "content": {
6401 |               "application/vnd.goa.error": {
6402 |                 "schema": {
6403 |                   "$ref": "#/components/schemas/Error"
6404 |                 }
6405 |               }
6406 |             }
6407 |           },
6408 |           "404": {
6409 |             "description": "notFound: Not Found response.",
6410 |             "content": {
6411 |               "application/vnd.goa.error": {
6412 |                 "schema": {
6413 |                   "$ref": "#/components/schemas/Error"
6414 |                 }
6415 |               }
6416 |             }
6417 |           },
6418 |           "429": {
6419 |             "description": "rateLimited: Too Many Requests response.",
6420 |             "content": {
6421 |               "application/json": {
6422 |                 "schema": {
6423 |                   "$ref": "#/components/schemas/RateLimited"
6424 |                 },
6425 |                 "example": {
6426 |                   "limit": 5,
6427 |                   "secsRemaining": 50
6428 |                 }
6429 |               }
6430 |             }
6431 |           }
6432 |         }
6433 |       }
6434 |     },
6435 |     "/nfd/vault/sendFrom/{name}": {
6436 |       "post": {
6437 |         "tags": [
6438 |           "nfd"
6439 |         ],
6440 |         "summary": "sendFromVault nfd",
6441 |         "description": "Send an amount of an asset [0 == ALGO] to another account FROM the NFD Vault.  Only owner of NFD can send.",
6442 |         "operationId": "nfd#sendFromVault",
6443 |         "parameters": [
6444 |           {
6445 |             "name": "name",
6446 |             "in": "path",
6447 |             "required": true,
6448 |             "schema": {
6449 |               "type": "string",
6450 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
6451 |               "example": "silvio.algo",
6452 |               "pattern": "^.+\\.algo$",
6453 |               "minLength": 1,
6454 |               "maxLength": 120
6455 |             },
6456 |             "example": "silvio.algo"
6457 |           }
6458 |         ],
6459 |         "requestBody": {
6460 |           "required": true,
6461 |           "content": {
6462 |             "application/json": {
6463 |               "schema": {
6464 |                 "$ref": "#/components/schemas/SendFromVaultRequestBody"
6465 |               },
6466 |               "example": {
6467 |                 "amount": 1,
6468 |                 "amountStr": "abc123",
6469 |                 "assets": [
6470 |                   1,
6471 |                   1
6472 |                 ],
6473 |                 "note": "aaa",
6474 |                 "receiver": "abc123",
6475 |                 "receiverCanSign": false,
6476 |                 "receiverType": "nfdVault",
6477 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
6478 |               }
6479 |             }
6480 |           }
6481 |         },
6482 |         "responses": {
6483 |           "200": {
6484 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
6485 |             "content": {
6486 |               "application/json": {
6487 |                 "schema": {
6488 |                   "type": "string",
6489 |                   "example": "abc123"
6490 |                 },
6491 |                 "example": "abc123"
6492 |               }
6493 |             }
6494 |           },
6495 |           "400": {
6496 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
6497 |             "content": {
6498 |               "application/vnd.goa.error": {
6499 |                 "schema": {
6500 |                   "$ref": "#/components/schemas/Error"
6501 |                 }
6502 |               }
6503 |             }
6504 |           },
6505 |           "403": {
6506 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
6507 |             "content": {
6508 |               "application/vnd.goa.error": {
6509 |                 "schema": {
6510 |                   "$ref": "#/components/schemas/Error"
6511 |                 }
6512 |               }
6513 |             }
6514 |           },
6515 |           "404": {
6516 |             "description": "notFound: Not Found response.",
6517 |             "content": {
6518 |               "application/vnd.goa.error": {
6519 |                 "schema": {
6520 |                   "$ref": "#/components/schemas/Error"
6521 |                 }
6522 |               }
6523 |             }
6524 |           },
6525 |           "429": {
6526 |             "description": "rateLimited: Too Many Requests response.",
6527 |             "content": {
6528 |               "application/json": {
6529 |                 "schema": {
6530 |                   "$ref": "#/components/schemas/RateLimited"
6531 |                 },
6532 |                 "example": {
6533 |                   "limit": 5,
6534 |                   "secsRemaining": 50
6535 |                 }
6536 |               }
6537 |             }
6538 |           }
6539 |         }
6540 |       }
6541 |     },
6542 |     "/nfd/vault/sendTo/{name}": {
6543 |       "post": {
6544 |         "tags": [
6545 |           "nfd"
6546 |         ],
6547 |         "summary": "sendToVault nfd",
6548 |         "description": "Provide transaction to send an asset owned by sender account to an NFD vault.  Call to have opt-in to vault will be included if necessary.  Callable by NFD owner, or if Opt-in is UNLOCKED (or asset already opted-in), anyone can call",
6549 |         "operationId": "nfd#sendToVault",
6550 |         "parameters": [
6551 |           {
6552 |             "name": "name",
6553 |             "in": "path",
6554 |             "required": true,
6555 |             "schema": {
6556 |               "type": "string",
6557 |               "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric",
6558 |               "example": "silvio.algo",
6559 |               "pattern": "^.+\\.algo$",
6560 |               "minLength": 1,
6561 |               "maxLength": 120
6562 |             },
6563 |             "example": "silvio.algo"
6564 |           }
6565 |         ],
6566 |         "requestBody": {
6567 |           "required": true,
6568 |           "content": {
6569 |             "application/json": {
6570 |               "schema": {
6571 |                 "$ref": "#/components/schemas/SendToVaultRequestBody"
6572 |               },
6573 |               "example": {
6574 |                 "amount": 1,
6575 |                 "amountStr": "abc123",
6576 |                 "assets": [
6577 |                   1,
6578 |                   1
6579 |                 ],
6580 |                 "note": "aaa",
6581 |                 "optInOnly": false,
6582 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
6583 |               }
6584 |             }
6585 |           }
6586 |         },
6587 |         "responses": {
6588 |           "200": {
6589 |             "description": "Returns (as escaped string) array of paired values representing a transaction group to submit to an Algorand node. u or s for unsigned or signed, followed by the base64-encoded message-pack of an unsigned transaction (to be signed by sender/buyer) or a signed transaction to be submitted as-is.",
6590 |             "content": {
6591 |               "application/json": {
6592 |                 "schema": {
6593 |                   "type": "string",
6594 |                   "example": "abc123"
6595 |                 },
6596 |                 "example": "abc123"
6597 |               }
6598 |             }
6599 |           },
6600 |           "400": {
6601 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
6602 |             "content": {
6603 |               "application/vnd.goa.error": {
6604 |                 "schema": {
6605 |                   "$ref": "#/components/schemas/Error"
6606 |                 }
6607 |               }
6608 |             }
6609 |           },
6610 |           "403": {
6611 |             "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed",
6612 |             "content": {
6613 |               "application/vnd.goa.error": {
6614 |                 "schema": {
6615 |                   "$ref": "#/components/schemas/Error"
6616 |                 }
6617 |               }
6618 |             }
6619 |           },
6620 |           "404": {
6621 |             "description": "notFound: Not Found response.",
6622 |             "content": {
6623 |               "application/vnd.goa.error": {
6624 |                 "schema": {
6625 |                   "$ref": "#/components/schemas/Error"
6626 |                 }
6627 |               }
6628 |             }
6629 |           },
6630 |           "413": {
6631 |             "description": "tooManyTransactions: The number of transactions allowed in a single transaction group (16) have been exceeded.",
6632 |             "content": {
6633 |               "application/vnd.goa.error": {
6634 |                 "schema": {
6635 |                   "$ref": "#/components/schemas/Error"
6636 |                 }
6637 |               }
6638 |             }
6639 |           },
6640 |           "429": {
6641 |             "description": "rateLimited: Too Many Requests response.",
6642 |             "content": {
6643 |               "application/json": {
6644 |                 "schema": {
6645 |                   "$ref": "#/components/schemas/RateLimited"
6646 |                 },
6647 |                 "example": {
6648 |                   "limit": 5,
6649 |                   "secsRemaining": 50
6650 |                 }
6651 |               }
6652 |             }
6653 |           }
6654 |         }
6655 |       }
6656 |     },
6657 |     "/nfd/verify/confirm/{id}": {
6658 |       "post": {
6659 |         "tags": [
6660 |           "nfd"
6661 |         ],
6662 |         "summary": "verifyConfirm nfd",
6663 |         "description": "Verify a particular piece of data on, or off-chain.  Each verification differs in its requirements",
6664 |         "operationId": "nfd#verifyConfirm",
6665 |         "parameters": [
6666 |           {
6667 |             "name": "id",
6668 |             "in": "path",
6669 |             "description": "ID of challenge, must be used in subsequent confirmation call",
6670 |             "required": true,
6671 |             "schema": {
6672 |               "type": "string",
6673 |               "description": "ID of challenge, must be used in subsequent confirmation call",
6674 |               "example": "abc123"
6675 |             },
6676 |             "example": "abc123"
6677 |           }
6678 |         ],
6679 |         "requestBody": {
6680 |           "required": true,
6681 |           "content": {
6682 |             "application/json": {
6683 |               "schema": {
6684 |                 "$ref": "#/components/schemas/VerifyConfirmRequestBody"
6685 |               },
6686 |               "example": {
6687 |                 "challenge": "abc123"
6688 |               }
6689 |             }
6690 |           }
6691 |         },
6692 |         "responses": {
6693 |           "200": {
6694 |             "description": "OK response.",
6695 |             "content": {
6696 |               "application/json": {
6697 |                 "schema": {
6698 |                   "$ref": "#/components/schemas/VerifyConfirmResponseBody"
6699 |                 },
6700 |                 "example": {
6701 |                   "confirmed": false
6702 |                 }
6703 |               }
6704 |             }
6705 |           },
6706 |           "400": {
6707 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
6708 |             "content": {
6709 |               "application/vnd.goa.error": {
6710 |                 "schema": {
6711 |                   "$ref": "#/components/schemas/Error"
6712 |                 }
6713 |               }
6714 |             }
6715 |           },
6716 |           "403": {
6717 |             "description": "noNFDNSubscription: No active subscription to NFDN",
6718 |             "headers": {
6719 |               "goa-attribute-fault": {
6720 |                 "description": "Is the error a server-side fault?",
6721 |                 "schema": {
6722 |                   "type": "boolean",
6723 |                   "description": "Is the error a server-side fault?",
6724 |                   "example": false
6725 |                 },
6726 |                 "example": false
6727 |               },
6728 |               "goa-attribute-id": {
6729 |                 "description": "ID is a unique identifier for this particular occurrence of the problem.",
6730 |                 "schema": {
6731 |                   "type": "string",
6732 |                   "description": "ID is a unique identifier for this particular occurrence of the problem.",
6733 |                   "example": "123abc"
6734 |                 },
6735 |                 "example": "123abc"
6736 |               },
6737 |               "goa-attribute-message": {
6738 |                 "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
6739 |                 "schema": {
6740 |                   "type": "string",
6741 |                   "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
6742 |                   "example": "parameter 'p' must be an integer"
6743 |                 },
6744 |                 "example": "parameter 'p' must be an integer"
6745 |               },
6746 |               "goa-attribute-name": {
6747 |                 "description": "Name is the name of this class of errors.",
6748 |                 "schema": {
6749 |                   "type": "string",
6750 |                   "description": "Name is the name of this class of errors.",
6751 |                   "example": "bad_request"
6752 |                 },
6753 |                 "example": "bad_request"
6754 |               },
6755 |               "goa-attribute-temporary": {
6756 |                 "description": "Is the error temporary?",
6757 |                 "schema": {
6758 |                   "type": "boolean",
6759 |                   "description": "Is the error temporary?",
6760 |                   "example": false
6761 |                 },
6762 |                 "example": false
6763 |               },
6764 |               "goa-attribute-timeout": {
6765 |                 "description": "Is the error a timeout?",
6766 |                 "schema": {
6767 |                   "type": "boolean",
6768 |                   "description": "Is the error a timeout?",
6769 |                   "example": false
6770 |                 },
6771 |                 "example": false
6772 |               }
6773 |             }
6774 |           },
6775 |           "404": {
6776 |             "description": "notFound: Not Found response.",
6777 |             "content": {
6778 |               "application/vnd.goa.error": {
6779 |                 "schema": {
6780 |                   "$ref": "#/components/schemas/Error"
6781 |                 }
6782 |               }
6783 |             }
6784 |           },
6785 |           "429": {
6786 |             "description": "rateLimited: Too Many Requests response.",
6787 |             "content": {
6788 |               "application/json": {
6789 |                 "schema": {
6790 |                   "$ref": "#/components/schemas/RateLimited"
6791 |                 },
6792 |                 "example": {
6793 |                   "limit": 5,
6794 |                   "secsRemaining": 50
6795 |                 }
6796 |               }
6797 |             }
6798 |           }
6799 |         }
6800 |       }
6801 |     },
6802 |     "/nfd/verify/request": {
6803 |       "post": {
6804 |         "tags": [
6805 |           "nfd"
6806 |         ],
6807 |         "summary": "verifyRequest nfd",
6808 |         "description": "Request Verification for particular piece of data on, or off-chain.  Each verification differs in its requirements. Returns data to be used in challenge",
6809 |         "operationId": "nfd#verifyRequest",
6810 |         "requestBody": {
6811 |           "required": true,
6812 |           "content": {
6813 |             "application/json": {
6814 |               "schema": {
6815 |                 "$ref": "#/components/schemas/VerifyRequestRequestBody"
6816 |               },
6817 |               "example": {
6818 |                 "fieldToVerify": "twitter",
6819 |                 "name": "aa",
6820 |                 "sender": "333333333333333333333333333333333333333333333333333333333A"
6821 |               }
6822 |             }
6823 |           }
6824 |         },
6825 |         "responses": {
6826 |           "200": {
6827 |             "description": "OK response.",
6828 |             "content": {
6829 |               "application/json": {
6830 |                 "schema": {
6831 |                   "$ref": "#/components/schemas/VerifyRequestResponseBody"
6832 |                 },
6833 |                 "example": {
6834 |                   "challenge": "abc123",
6835 |                   "id": "abc123",
6836 |                   "validated": false
6837 |                 }
6838 |               }
6839 |             }
6840 |           },
6841 |           "400": {
6842 |             "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid",
6843 |             "content": {
6844 |               "application/vnd.goa.error": {
6845 |                 "schema": {
6846 |                   "$ref": "#/components/schemas/Error"
6847 |                 }
6848 |               }
6849 |             }
6850 |           },
6851 |           "404": {
6852 |             "description": "notFound: Not Found response.",
6853 |             "content": {
6854 |               "application/vnd.goa.error": {
6855 |                 "schema": {
6856 |                   "$ref": "#/components/schemas/Error"
6857 |                 }
6858 |               }
6859 |             }
6860 |           },
6861 |           "429": {
6862 |             "description": "rateLimited: Too Many Requests response.",
6863 |             "content": {
6864 |               "application/json": {
6865 |                 "schema": {
6866 |                   "$ref": "#/components/schemas/RateLimited"
6867 |                 },
6868 |                 "example": {
6869 |                   "limit": 5,
6870 |                   "secsRemaining": 50
6871 |                 }
6872 |               }
6873 |             }
6874 |           }
6875 |         }
6876 |       }
6877 |     }
6878 |   },
6879 |   "components": {
6880 |     "schemas": {
6881 |       "BlueskyRecord": {
6882 |         "type": "object",
6883 |         "properties": {
6884 |           "blueskydid": {
6885 |             "type": "string",
6886 |             "example": "abc123"
6887 |           },
6888 |           "displayName": {
6889 |             "type": "string",
6890 |             "example": "abc123"
6891 |           },
6892 |           "followers": {
6893 |             "type": "integer",
6894 |             "example": 1,
6895 |             "format": "int64"
6896 |           },
6897 |           "following": {
6898 |             "type": "integer",
6899 |             "example": 1,
6900 |             "format": "int64"
6901 |           },
6902 |           "handle": {
6903 |             "type": "string",
6904 |             "example": "abc123"
6905 |           },
6906 |           "nfd": {
6907 |             "$ref": "#/components/schemas/NFD"
6908 |           },
6909 |           "posts": {
6910 |             "type": "integer",
6911 |             "example": 1,
6912 |             "format": "int64"
6913 |           }
6914 |         },
6915 |         "description": "BlueskyRecord contains information about an NFD w/ Verified Blueesky account and basic info on its metrics",
6916 |         "example": {
6917 |           "blueskydid": "abc123",
6918 |           "displayName": "abc123",
6919 |           "followers": 1,
6920 |           "following": 1,
6921 |           "handle": "abc123",
6922 |           "nfd": {
6923 |             "appID": 1000000,
6924 |             "asaID": 1,
6925 |             "avatarOutdated": false,
6926 |             "caAlgo": [
6927 |               "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
6928 |             ],
6929 |             "cache-control": "abc123",
6930 |             "category": "abc123",
6931 |             "currentAsOfBlock": 1,
6932 |             "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6933 |             "etag": "abc123",
6934 |             "expired": false,
6935 |             "match-check": "abc123",
6936 |             "metaTags": [
6937 |               "abc123"
6938 |             ],
6939 |             "name": "abc123",
6940 |             "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6941 |             "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6942 |             "parentAppID": 1000000,
6943 |             "properties": {
6944 |               "internal": {
6945 |                 "abc123": "abc123"
6946 |               },
6947 |               "userDefined": {
6948 |                 "ca:b": "abc123"
6949 |               },
6950 |               "verified": {
6951 |                 "caAlgo": "abc123"
6952 |               }
6953 |             },
6954 |             "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6955 |             "saleType": "abc123",
6956 |             "sellAmount": 1,
6957 |             "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6958 |             "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
6959 |             "state": "abc123",
6960 |             "tags": [
6961 |               "abc123"
6962 |             ],
6963 |             "timeChanged": "1970-01-01T00:00:01Z",
6964 |             "timeCreated": "1970-01-01T00:00:01Z",
6965 |             "timeExpires": "1970-01-01T00:00:01Z",
6966 |             "timePurchased": "1970-01-01T00:00:01Z",
6967 |             "unverifiedCa": {
6968 |               "btc": [
6969 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
6970 |               ]
6971 |             },
6972 |             "unverifiedCaAlgo": [
6973 |               "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
6974 |             ]
6975 |           },
6976 |           "posts": 1
6977 |         },
6978 |         "required": [
6979 |           "nfd",
6980 |           "blueskydid",
6981 |           "displayName",
6982 |           "handle",
6983 |           "followers",
6984 |           "following",
6985 |           "posts"
6986 |         ]
6987 |       },
6988 |       "ConsensusRecord": {
6989 |         "type": "object",
6990 |         "properties": {
6991 |           "account": {
6992 |             "type": "string",
6993 |             "example": "abc123"
6994 |           },
6995 |           "lastPropBlock": {
6996 |             "type": "integer",
6997 |             "example": 1,
6998 |             "format": "int64"
6999 |           },
7000 |           "lastPropTime": {
7001 |             "type": "string",
7002 |             "example": "1970-01-01T00:00:01Z",
7003 |             "format": "date-time"
7004 |           },
7005 |           "lastVoteBlock": {
7006 |             "type": "integer",
7007 |             "example": 1,
7008 |             "format": "int64"
7009 |           },
7010 |           "lastVoteTime": {
7011 |             "type": "string",
7012 |             "example": "1970-01-01T00:00:01Z",
7013 |             "format": "date-time"
7014 |           },
7015 |           "linkType": {
7016 |             "type": "string",
7017 |             "example": "abc123"
7018 |           },
7019 |           "ownerAccount": {
7020 |             "type": "string",
7021 |             "example": "abc123"
7022 |           },
7023 |           "pctOfOnline": {
7024 |             "type": "number",
7025 |             "example": 1,
7026 |             "format": "double"
7027 |           },
7028 |           "proposals": {
7029 |             "type": "integer",
7030 |             "example": 1,
7031 |             "format": "int64"
7032 |           },
7033 |           "rank": {
7034 |             "type": "integer",
7035 |             "example": 1,
7036 |             "format": "int64"
7037 |           },
7038 |           "votes": {
7039 |             "type": "integer",
7040 |             "example": 1,
7041 |             "format": "int64"
7042 |           }
7043 |         },
7044 |         "description": "ConsensusRecord contains information about an account that participated in consensus",
7045 |         "example": {
7046 |           "account": "abc123",
7047 |           "lastPropBlock": 1,
7048 |           "lastPropTime": "1970-01-01T00:00:01Z",
7049 |           "lastVoteBlock": 1,
7050 |           "lastVoteTime": "1970-01-01T00:00:01Z",
7051 |           "linkType": "abc123",
7052 |           "ownerAccount": "abc123",
7053 |           "pctOfOnline": 1,
7054 |           "proposals": 1,
7055 |           "rank": 1,
7056 |           "votes": 1
7057 |         },
7058 |         "required": [
7059 |           "account",
7060 |           "ownerAccount",
7061 |           "pctOfOnline"
7062 |         ]
7063 |       },
7064 |       "ContractLockRequestBody": {
7065 |         "type": "object",
7066 |         "properties": {
7067 |           "lock": {
7068 |             "type": "boolean",
7069 |             "description": "Whether to lock (true), or unlock (false)",
7070 |             "example": false
7071 |           },
7072 |           "sender": {
7073 |             "type": "string",
7074 |             "description": "Sender of transaction - needs to be owner of NFD",
7075 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7076 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7077 |           }
7078 |         },
7079 |         "example": {
7080 |           "lock": false,
7081 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
7082 |         },
7083 |         "required": [
7084 |           "sender",
7085 |           "lock"
7086 |         ]
7087 |       },
7088 |       "Donation": {
7089 |         "type": "object",
7090 |         "properties": {
7091 |           "address": {
7092 |             "type": "string",
7093 |             "description": "Sender or Receiver Algorand address depending on request",
7094 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7095 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7096 |           },
7097 |           "total": {
7098 |             "type": "integer",
7099 |             "description": "Total donation in microAlgos",
7100 |             "example": 1,
7101 |             "format": "int64"
7102 |           }
7103 |         },
7104 |         "description": "Donation contains basic information about donation totals to specific addresses from accounts related to an NFD",
7105 |         "example": {
7106 |           "address": "333333333333333333333333333333333333333333333333333333333A",
7107 |           "total": 1
7108 |         },
7109 |         "required": [
7110 |           "address",
7111 |           "total"
7112 |         ]
7113 |       },
7114 |       "Error": {
7115 |         "type": "object",
7116 |         "properties": {
7117 |           "fault": {
7118 |             "type": "boolean",
7119 |             "description": "Is the error a server-side fault?",
7120 |             "example": false
7121 |           },
7122 |           "id": {
7123 |             "type": "string",
7124 |             "description": "ID is a unique identifier for this particular occurrence of the problem.",
7125 |             "example": "123abc"
7126 |           },
7127 |           "message": {
7128 |             "type": "string",
7129 |             "description": "Message is a human-readable explanation specific to this occurrence of the problem.",
7130 |             "example": "parameter 'p' must be an integer"
7131 |           },
7132 |           "name": {
7133 |             "type": "string",
7134 |             "description": "Name is the name of this class of errors.",
7135 |             "example": "bad_request"
7136 |           },
7137 |           "temporary": {
7138 |             "type": "boolean",
7139 |             "description": "Is the error temporary?",
7140 |             "example": false
7141 |           },
7142 |           "timeout": {
7143 |             "type": "boolean",
7144 |             "description": "Is the error a timeout?",
7145 |             "example": false
7146 |           }
7147 |         },
7148 |         "example": {
7149 |           "fault": false,
7150 |           "id": "123abc",
7151 |           "message": "parameter 'p' must be an integer",
7152 |           "name": "bad_request",
7153 |           "temporary": false,
7154 |           "timeout": false
7155 |         },
7156 |         "required": [
7157 |           "name",
7158 |           "id",
7159 |           "message",
7160 |           "temporary",
7161 |           "timeout",
7162 |           "fault"
7163 |         ]
7164 |       },
7165 |       "GetQuoteResponseBody": {
7166 |         "type": "object",
7167 |         "properties": {
7168 |           "carryCost": {
7169 |             "type": "integer",
7170 |             "description": "extra needed to cover MBR (if necessary) - price already includes this amount",
7171 |             "example": 1,
7172 |             "format": "int64"
7173 |           },
7174 |           "exists": {
7175 |             "type": "boolean",
7176 |             "description": "whether the nfd exists. if so, cost is renewal, otherwise mint (including carry)",
7177 |             "example": false
7178 |           },
7179 |           "inAuction": {
7180 |             "type": "boolean",
7181 |             "description": "if nfd is in auction pricing for given buyer",
7182 |             "example": false
7183 |           },
7184 |           "isExpired": {
7185 |             "type": "boolean",
7186 |             "description": "whether the (existing) nfd is expired",
7187 |             "example": false
7188 |           },
7189 |           "price": {
7190 |             "type": "integer",
7191 |             "description": "price in microAlgo for 1 year w/ carry cost (if needs minted) added in. subtract carry cost for per-year cost",
7192 |             "example": 1,
7193 |             "format": "int64"
7194 |           }
7195 |         },
7196 |         "example": {
7197 |           "carryCost": 1,
7198 |           "exists": false,
7199 |           "inAuction": false,
7200 |           "isExpired": false,
7201 |           "price": 1
7202 |         },
7203 |         "required": [
7204 |           "price",
7205 |           "carryCost",
7206 |           "exists",
7207 |           "isExpired",
7208 |           "inAuction"
7209 |         ]
7210 |       },
7211 |       "IsValidASAResponseBody": {
7212 |         "type": "object",
7213 |         "properties": {
7214 |           "appID": {
7215 |             "type": "integer",
7216 |             "example": 1,
7217 |             "format": "int64"
7218 |           },
7219 |           "isValid": {
7220 |             "type": "boolean",
7221 |             "example": false
7222 |           },
7223 |           "message": {
7224 |             "type": "string",
7225 |             "example": "abc123"
7226 |           },
7227 |           "name": {
7228 |             "type": "string",
7229 |             "example": "abc123"
7230 |           }
7231 |         },
7232 |         "description": "Whether NFD NFT ASA ID is for authentic NFD",
7233 |         "example": {
7234 |           "appID": 1,
7235 |           "isValid": false,
7236 |           "message": "abc123",
7237 |           "name": "abc123"
7238 |         },
7239 |         "required": [
7240 |           "isValid",
7241 |           "name",
7242 |           "appID",
7243 |           "message"
7244 |         ]
7245 |       },
7246 |       "IsValidNFDResponseBody": {
7247 |         "type": "object",
7248 |         "properties": {
7249 |           "isValid": {
7250 |             "type": "boolean",
7251 |             "example": false
7252 |           },
7253 |           "message": {
7254 |             "type": "string",
7255 |             "example": "abc123"
7256 |           },
7257 |           "name": {
7258 |             "type": "string",
7259 |             "example": "abc123"
7260 |           },
7261 |           "sigNameAddress": {
7262 |             "type": "string",
7263 |             "example": "abc123"
7264 |           }
7265 |         },
7266 |         "description": "Whether NFD App ID is for authentic NFD",
7267 |         "example": {
7268 |           "isValid": false,
7269 |           "message": "abc123",
7270 |           "name": "abc123",
7271 |           "sigNameAddress": "abc123"
7272 |         },
7273 |         "required": [
7274 |           "isValid",
7275 |           "name",
7276 |           "message"
7277 |         ]
7278 |       },
7279 |       "LinkAddressRequestBody": {
7280 |         "type": "object",
7281 |         "properties": {
7282 |           "address": {
7283 |             "type": "array",
7284 |             "items": {
7285 |               "type": "string",
7286 |               "example": "333333333333333333333333333333333333333333333333333333333A",
7287 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7288 |             },
7289 |             "description": "Address(es) to link to the NFD (must be able to sign for each)",
7290 |             "example": [
7291 |               "333333333333333333333333333333333333333333333333333333333A",
7292 |               "333333333333333333333333333333333333333333333333333333333A",
7293 |               "333333333333333333333333333333333333333333333333333333333A"
7294 |             ],
7295 |             "maxItems": 7
7296 |           },
7297 |           "sender": {
7298 |             "type": "string",
7299 |             "description": "Address that will be signing the returned transactions.  Should be owner of NFD",
7300 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7301 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7302 |           }
7303 |         },
7304 |         "example": {
7305 |           "address": [
7306 |             "333333333333333333333333333333333333333333333333333333333A",
7307 |             "333333333333333333333333333333333333333333333333333333333A",
7308 |             "333333333333333333333333333333333333333333333333333333333A"
7309 |           ],
7310 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
7311 |         },
7312 |         "required": [
7313 |           "sender",
7314 |           "address"
7315 |         ]
7316 |       },
7317 |       "MintRequestBody": {
7318 |         "type": "object",
7319 |         "properties": {
7320 |           "algoOffer": {
7321 |             "type": "integer",
7322 |             "description": "Offer price in ALGO. Expiration time set prorated based on amount paid vs fixed per-year cost when years argument is used",
7323 |             "example": 2,
7324 |             "format": "int64",
7325 |             "minimum": 1,
7326 |             "maximum": 100000000
7327 |           },
7328 |           "buyer": {
7329 |             "type": "string",
7330 |             "description": "Address paying/signing for minting transaction",
7331 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7332 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7333 |           },
7334 |           "name": {
7335 |             "type": "string",
7336 |             "example": "aa",
7337 |             "pattern": "^.+\\.algo$",
7338 |             "minLength": 1,
7339 |             "maxLength": 120
7340 |           },
7341 |           "reservedFor": {
7342 |             "type": "string",
7343 |             "description": "Address NFD is being minted for if not buyer",
7344 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7345 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7346 |           },
7347 |           "years": {
7348 |             "type": "integer",
7349 |             "description": "Number of years until expiration, 1 yr minimum, 20 max, extending renewal date - sets price in multiples of 1 year",
7350 |             "example": 2,
7351 |             "format": "int64",
7352 |             "minimum": 1,
7353 |             "maximum": 20
7354 |           }
7355 |         },
7356 |         "example": {
7357 |           "algoOffer": 2,
7358 |           "buyer": "333333333333333333333333333333333333333333333333333333333A",
7359 |           "name": "aa",
7360 |           "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
7361 |           "years": 2
7362 |         },
7363 |         "required": [
7364 |           "name",
7365 |           "buyer"
7366 |         ]
7367 |       },
7368 |       "NFD": {
7369 |         "type": "object",
7370 |         "properties": {
7371 |           "appID": {
7372 |             "type": "integer",
7373 |             "description": "NFD Application ID",
7374 |             "example": 1000000,
7375 |             "format": "int64"
7376 |           },
7377 |           "asaID": {
7378 |             "type": "integer",
7379 |             "description": "NFD ASA ID",
7380 |             "example": 1,
7381 |             "format": "int64"
7382 |           },
7383 |           "avatarOutdated": {
7384 |             "type": "boolean",
7385 |             "description": "Whether the verified Avatar set in this NFD is newer (arc19) then is set into the NFD. This will only be present on direct NFD fetch and if true",
7386 |             "example": false
7387 |           },
7388 |           "caAlgo": {
7389 |             "type": "array",
7390 |             "items": {
7391 |               "type": "string",
7392 |               "example": "333333333333333333333333333333333333333333333333333333333A",
7393 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7394 |             },
7395 |             "description": "Verified Algorand addresses for this NFD",
7396 |             "example": [
7397 |               "333333333333333333333333333333333333333333333333333333333A"
7398 |             ]
7399 |           },
7400 |           "cache-control": {
7401 |             "type": "string",
7402 |             "description": "Cache-Control header",
7403 |             "example": "abc123"
7404 |           },
7405 |           "category": {
7406 |             "type": "string",
7407 |             "example": "premium",
7408 |             "enum": [
7409 |               "curated",
7410 |               "premium",
7411 |               "common"
7412 |             ]
7413 |           },
7414 |           "currentAsOfBlock": {
7415 |             "type": "integer",
7416 |             "description": "Round this data was last fetched from",
7417 |             "example": 1,
7418 |             "format": "int64"
7419 |           },
7420 |           "depositAccount": {
7421 |             "type": "string",
7422 |             "description": "account wallets should send funds to - precedence is: caAlgo[0], unverifiedCaAlgo[0], owner",
7423 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7424 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7425 |           },
7426 |           "etag": {
7427 |             "type": "string",
7428 |             "description": "ETag",
7429 |             "example": "abc123"
7430 |           },
7431 |           "expired": {
7432 |             "type": "boolean",
7433 |             "example": false
7434 |           },
7435 |           "match-check": {
7436 |             "type": "string",
7437 |             "description": "Not returned, used in tagging for response to indicate if-none-match etag matched",
7438 |             "example": "abc123"
7439 |           },
7440 |           "metaTags": {
7441 |             "type": "array",
7442 |             "items": {
7443 |               "type": "string",
7444 |               "example": "abc123"
7445 |             },
7446 |             "description": "Tags set by the system for tracking/analytics",
7447 |             "example": [
7448 |               "abc123"
7449 |             ]
7450 |           },
7451 |           "name": {
7452 |             "type": "string",
7453 |             "example": "abc123"
7454 |           },
7455 |           "nfdAccount": {
7456 |             "type": "string",
7457 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7458 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7459 |           },
7460 |           "owner": {
7461 |             "type": "string",
7462 |             "description": "Owner of NFD",
7463 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7464 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7465 |           },
7466 |           "parentAppID": {
7467 |             "type": "integer",
7468 |             "description": "NFD Application ID of Parent if this is a segment",
7469 |             "example": 1000000,
7470 |             "format": "int64"
7471 |           },
7472 |           "properties": {
7473 |             "$ref": "#/components/schemas/NFDProperties"
7474 |           },
7475 |           "reservedFor": {
7476 |             "type": "string",
7477 |             "description": "Reserved owner of NFD",
7478 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7479 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7480 |           },
7481 |           "saleType": {
7482 |             "type": "string",
7483 |             "example": "buyItNow",
7484 |             "enum": [
7485 |               "auction",
7486 |               "buyItNow"
7487 |             ]
7488 |           },
7489 |           "sellAmount": {
7490 |             "type": "integer",
7491 |             "description": "amount NFD is being sold for (microAlgos)",
7492 |             "example": 1,
7493 |             "format": "int64"
7494 |           },
7495 |           "seller": {
7496 |             "type": "string",
7497 |             "description": "RecipientUid of NFD sales",
7498 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7499 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7500 |           },
7501 |           "sigNameAddress": {
7502 |             "type": "string",
7503 |             "example": "333333333333333333333333333333333333333333333333333333333A",
7504 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7505 |           },
7506 |           "state": {
7507 |             "type": "string",
7508 |             "example": "minting",
7509 |             "enum": [
7510 |               "available",
7511 |               "minting",
7512 |               "reserved",
7513 |               "forSale",
7514 |               "owned",
7515 |               "expired"
7516 |             ]
7517 |           },
7518 |           "tags": {
7519 |             "type": "array",
7520 |             "items": {
7521 |               "type": "string",
7522 |               "example": "abc123"
7523 |             },
7524 |             "description": "Tags assigned to this NFD",
7525 |             "example": [
7526 |               "abc123"
7527 |             ]
7528 |           },
7529 |           "timeChanged": {
7530 |             "type": "string",
7531 |             "example": "1970-01-01T00:00:01Z",
7532 |             "format": "date-time"
7533 |           },
7534 |           "timeCreated": {
7535 |             "type": "string",
7536 |             "example": "1970-01-01T00:00:01Z",
7537 |             "format": "date-time"
7538 |           },
7539 |           "timeExpires": {
7540 |             "type": "string",
7541 |             "example": "1970-01-01T00:00:01Z",
7542 |             "format": "date-time"
7543 |           },
7544 |           "timePurchased": {
7545 |             "type": "string",
7546 |             "example": "1970-01-01T00:00:01Z",
7547 |             "format": "date-time"
7548 |           },
7549 |           "unverifiedCa": {
7550 |             "type": "object",
7551 |             "description": "Unverified (non-algo) Crypto addresses for this NFD",
7552 |             "example": {
7553 |               "btc": [
7554 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
7555 |               ]
7556 |             },
7557 |             "additionalProperties": {
7558 |               "type": "array",
7559 |               "items": {
7560 |                 "type": "string",
7561 |                 "example": "abc123"
7562 |               },
7563 |               "example": [
7564 |                 "abc123"
7565 |               ]
7566 |             }
7567 |           },
7568 |           "unverifiedCaAlgo": {
7569 |             "type": "array",
7570 |             "items": {
7571 |               "type": "string",
7572 |               "example": "333333333333333333333333333333333333333333333333333333333A",
7573 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
7574 |             },
7575 |             "description": "Unverified Algorand addresses for this NFD",
7576 |             "example": [
7577 |               "333333333333333333333333333333333333333333333333333333333A"
7578 |             ]
7579 |           }
7580 |         },
7581 |         "description": "NFD contains all known information about an NFD record",
7582 |         "example": {
7583 |           "appID": 1000000,
7584 |           "asaID": 1,
7585 |           "avatarOutdated": false,
7586 |           "caAlgo": [
7587 |             "333333333333333333333333333333333333333333333333333333333A"
7588 |           ],
7589 |           "cache-control": "abc123",
7590 |           "category": "premium",
7591 |           "currentAsOfBlock": 1,
7592 |           "depositAccount": "333333333333333333333333333333333333333333333333333333333A",
7593 |           "etag": "abc123",
7594 |           "expired": false,
7595 |           "match-check": "abc123",
7596 |           "metaTags": [
7597 |             "abc123"
7598 |           ],
7599 |           "name": "abc123",
7600 |           "nfdAccount": "333333333333333333333333333333333333333333333333333333333A",
7601 |           "owner": "333333333333333333333333333333333333333333333333333333333A",
7602 |           "parentAppID": 1000000,
7603 |           "properties": {
7604 |             "internal": {
7605 |               "abc123": "abc123"
7606 |             },
7607 |             "userDefined": {
7608 |               "ca:b": "abc123"
7609 |             },
7610 |             "verified": {
7611 |               "caAlgo": "abc123"
7612 |             }
7613 |           },
7614 |           "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
7615 |           "saleType": "buyItNow",
7616 |           "sellAmount": 1,
7617 |           "seller": "333333333333333333333333333333333333333333333333333333333A",
7618 |           "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A",
7619 |           "state": "minting",
7620 |           "tags": [
7621 |             "abc123"
7622 |           ],
7623 |           "timeChanged": "1970-01-01T00:00:01Z",
7624 |           "timeCreated": "1970-01-01T00:00:01Z",
7625 |           "timeExpires": "1970-01-01T00:00:01Z",
7626 |           "timePurchased": "1970-01-01T00:00:01Z",
7627 |           "unverifiedCa": {
7628 |             "btc": [
7629 |               "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
7630 |             ]
7631 |           },
7632 |           "unverifiedCaAlgo": [
7633 |             "333333333333333333333333333333333333333333333333333333333A"
7634 |           ]
7635 |         },
7636 |         "required": [
7637 |           "name"
7638 |         ]
7639 |       },
7640 |       "NFDActivity": {
7641 |         "type": "object",
7642 |         "properties": {
7643 |           "block": {
7644 |             "type": "integer",
7645 |             "description": "Algorand Block number of change",
7646 |             "example": 1,
7647 |             "format": "int64"
7648 |           },
7649 |           "cache-control": {
7650 |             "type": "string",
7651 |             "description": "Cache-Control header",
7652 |             "example": "abc123"
7653 |           },
7654 |           "changes": {
7655 |             "type": "object",
7656 |             "description": "Changed properties",
7657 |             "example": {
7658 |               "abc123": "abc123"
7659 |             },
7660 |             "additionalProperties": {
7661 |               "type": "string",
7662 |               "example": "abc123"
7663 |             }
7664 |           },
7665 |           "etag": {
7666 |             "type": "string",
7667 |             "description": "ETag",
7668 |             "example": "abc123"
7669 |           },
7670 |           "match-check": {
7671 |             "type": "string",
7672 |             "description": "Not returned, used in tagging for response to indicate if-none-match etag matched",
7673 |             "example": "abc123"
7674 |           },
7675 |           "name": {
7676 |             "type": "string",
7677 |             "description": "NFD Name",
7678 |             "example": "abc123"
7679 |           },
7680 |           "timeChanged": {
7681 |             "type": "string",
7682 |             "example": "1970-01-01T00:00:01Z",
7683 |             "format": "date-time"
7684 |           }
7685 |         },
7686 |         "description": "NFDActivity contains the property changes made in a particular NFD contract update call",
7687 |         "example": {
7688 |           "block": 1,
7689 |           "cache-control": "abc123",
7690 |           "changes": {
7691 |             "abc123": "abc123"
7692 |           },
7693 |           "etag": "abc123",
7694 |           "match-check": "abc123",
7695 |           "name": "abc123",
7696 |           "timeChanged": "1970-01-01T00:00:01Z"
7697 |         },
7698 |         "required": [
7699 |           "name",
7700 |           "block",
7701 |           "timeChanged"
7702 |         ]
7703 |       },
7704 |       "NFDAnalyticEvent": {
7705 |         "type": "object",
7706 |         "properties": {
7707 |           "block": {
7708 |             "type": "integer",
7709 |             "example": 1,
7710 |             "format": "int64"
7711 |           },
7712 |           "buyer": {
7713 |             "type": "string",
7714 |             "example": "abc123"
7715 |           },
7716 |           "carryCost": {
7717 |             "type": "integer",
7718 |             "description": "extra amount paid to cover minimum balance requirements - add to price to determine total amount paid",
7719 |             "example": 1,
7720 |             "format": "int64"
7721 |           },
7722 |           "category": {
7723 |             "type": "string",
7724 |             "example": "premium",
7725 |             "enum": [
7726 |               "curated",
7727 |               "premium",
7728 |               "common"
7729 |             ]
7730 |           },
7731 |           "currentOwner": {
7732 |             "type": "string",
7733 |             "description": "NFD current owner - if set via includeOwner property",
7734 |             "example": "abc123"
7735 |           },
7736 |           "event": {
7737 |             "type": "string",
7738 |             "example": "renewed",
7739 |             "enum": [
7740 |               "minted",
7741 |               "renewed",
7742 |               "offeredForSale",
7743 |               "canceledSale",
7744 |               "escrowedOffer",
7745 |               "sold",
7746 |               "postedOffer"
7747 |             ]
7748 |           },
7749 |           "groupID": {
7750 |             "type": "string",
7751 |             "example": "abc123"
7752 |           },
7753 |           "metaTags": {
7754 |             "type": "array",
7755 |             "items": {
7756 |               "type": "string",
7757 |               "example": "abc123"
7758 |             },
7759 |             "example": [
7760 |               "abc123"
7761 |             ]
7762 |           },
7763 |           "name": {
7764 |             "type": "string",
7765 |             "description": "NFD Name",
7766 |             "example": "abc123"
7767 |           },
7768 |           "newExpTime": {
7769 |             "type": "string",
7770 |             "description": "new expiration time set from minting or renewing",
7771 |             "example": "1970-01-01T00:00:01Z",
7772 |             "format": "date-time"
7773 |           },
7774 |           "note": {
7775 |             "type": "string",
7776 |             "example": "abc123"
7777 |           },
7778 |           "oneYearRenewalPrice": {
7779 |             "type": "integer",
7780 |             "description": "price for one year mint/renew",
7781 |             "example": 1,
7782 |             "format": "int64"
7783 |           },
7784 |           "saleType": {
7785 |             "type": "string",
7786 |             "example": "buyItNow",
7787 |             "enum": [
7788 |               "auction",
7789 |               "buyItNow"
7790 |             ]
7791 |           },
7792 |           "seller": {
7793 |             "type": "string",
7794 |             "example": "abc123"
7795 |           }
7796 |         },
7797 |         "description": "NFDAnalyticEvent contains a price history record for a point in time of an NFD",
7798 |         "example": {
7799 |           "block": 1,
7800 |           "buyer": "abc123",
7801 |           "carryCost": 1,
7802 |           "category": "premium",
7803 |           "currentOwner": "abc123",
7804 |           "event": "renewed",
7805 |           "groupID": "abc123",
7806 |           "metaTags": [
7807 |             "abc123"
7808 |           ],
7809 |           "name": "abc123",
7810 |           "newExpTime": "1970-01-01T00:00:01Z",
7811 |           "note": "abc123",
7812 |           "oneYearRenewalPrice": 1,
7813 |           "saleType": "buyItNow",
7814 |           "seller": "abc123"
7815 |         }
7816 |       },
7817 |       "NFDAnalyticRecord": {
7818 |         "type": "object",
7819 |         "properties": {
7820 |           "data": {
7821 |             "$ref": "#/components/schemas/NFDAnalyticEvent"
7822 |           },
7823 |           "price": {
7824 |             "type": "integer",
7825 |             "description": "price of event in microAlgos",
7826 |             "example": 1,
7827 |             "format": "int64"
7828 |           },
7829 |           "priceUsd": {
7830 |             "type": "number",
7831 |             "description": "price of event in USD",
7832 |             "example": 1,
7833 |             "format": "double"
7834 |           },
7835 |           "timestamp": {
7836 |             "type": "string",
7837 |             "example": "1970-01-01T00:00:01Z",
7838 |             "format": "date-time"
7839 |           }
7840 |         },
7841 |         "description": "NFDAnalyticRecord is an NFD Analytics record in a time-series collection, with timestamp, price, and event data for that point in time.",
7842 |         "example": {
7843 |           "data": {
7844 |             "block": 1,
7845 |             "buyer": "abc123",
7846 |             "carryCost": 1,
7847 |             "category": "premium",
7848 |             "currentOwner": "abc123",
7849 |             "event": "renewed",
7850 |             "groupID": "abc123",
7851 |             "metaTags": [
7852 |               "abc123"
7853 |             ],
7854 |             "name": "abc123",
7855 |             "newExpTime": "1970-01-01T00:00:01Z",
7856 |             "note": "abc123",
7857 |             "oneYearRenewalPrice": 1,
7858 |             "saleType": "buyItNow",
7859 |             "seller": "abc123"
7860 |           },
7861 |           "price": 1,
7862 |           "priceUsd": 1,
7863 |           "timestamp": "1970-01-01T00:00:01Z"
7864 |         }
7865 |       },
7866 |       "NFDAnalyticRecords": {
7867 |         "type": "object",
7868 |         "properties": {
7869 |           "match-check": {
7870 |             "type": "string",
7871 |             "description": "Not returned, used in tagging for response to indicate if-none-match etag matched",
7872 |             "example": "abc123"
7873 |           },
7874 |           "results": {
7875 |             "type": "array",
7876 |             "items": {
7877 |               "$ref": "#/components/schemas/NFDAnalyticRecord"
7878 |             },
7879 |             "example": [
7880 |               {
7881 |                 "data": {
7882 |                   "block": 1,
7883 |                   "buyer": "abc123",
7884 |                   "carryCost": 1,
7885 |                   "category": "premium",
7886 |                   "currentOwner": "abc123",
7887 |                   "event": "renewed",
7888 |                   "groupID": "abc123",
7889 |                   "metaTags": [
7890 |                     "abc123"
7891 |                   ],
7892 |                   "name": "abc123",
7893 |                   "newExpTime": "1970-01-01T00:00:01Z",
7894 |                   "note": "abc123",
7895 |                   "oneYearRenewalPrice": 1,
7896 |                   "saleType": "buyItNow",
7897 |                   "seller": "abc123"
7898 |                 },
7899 |                 "price": 1,
7900 |                 "priceUsd": 1,
7901 |                 "timestamp": "1970-01-01T00:00:01Z"
7902 |               }
7903 |             ]
7904 |           },
7905 |           "total": {
7906 |             "type": "integer",
7907 |             "description": "total number of results, with data containing paged amount based on offset/limit",
7908 |             "example": 1,
7909 |             "format": "int64"
7910 |           }
7911 |         },
7912 |         "example": {
7913 |           "match-check": "abc123",
7914 |           "results": [
7915 |             {
7916 |               "data": {
7917 |                 "block": 1,
7918 |                 "buyer": "abc123",
7919 |                 "carryCost": 1,
7920 |                 "category": "premium",
7921 |                 "currentOwner": "abc123",
7922 |                 "event": "renewed",
7923 |                 "groupID": "abc123",
7924 |                 "metaTags": [
7925 |                   "abc123"
7926 |                 ],
7927 |                 "name": "abc123",
7928 |                 "newExpTime": "1970-01-01T00:00:01Z",
7929 |                 "note": "abc123",
7930 |                 "oneYearRenewalPrice": 1,
7931 |                 "saleType": "buyItNow",
7932 |                 "seller": "abc123"
7933 |               },
7934 |               "price": 1,
7935 |               "priceUsd": 1,
7936 |               "timestamp": "1970-01-01T00:00:01Z"
7937 |             }
7938 |           ],
7939 |           "total": 1
7940 |         },
7941 |         "required": [
7942 |           "total",
7943 |           "results"
7944 |         ]
7945 |       },
7946 |       "NFDProperties": {
7947 |         "type": "object",
7948 |         "properties": {
7949 |           "internal": {
7950 |             "type": "object",
7951 |             "description": "Internal properties",
7952 |             "example": {
7953 |               "abc123": "abc123"
7954 |             },
7955 |             "additionalProperties": {
7956 |               "type": "string",
7957 |               "example": "abc123"
7958 |             }
7959 |           },
7960 |           "userDefined": {
7961 |             "type": "object",
7962 |             "description": "User properties",
7963 |             "example": {
7964 |               "ca:b": "abc123"
7965 |             },
7966 |             "additionalProperties": {
7967 |               "type": "string",
7968 |               "example": "abc123"
7969 |             }
7970 |           },
7971 |           "verified": {
7972 |             "type": "object",
7973 |             "description": "Verified properties",
7974 |             "example": {
7975 |               "caAlgo": "abc123"
7976 |             },
7977 |             "additionalProperties": {
7978 |               "type": "string",
7979 |               "example": "abc123"
7980 |             }
7981 |           }
7982 |         },
7983 |         "description": "NFDProperties contains the expanded metadata stored within an NFD contracts' global-state",
7984 |         "example": {
7985 |           "internal": {
7986 |             "abc123": "abc123"
7987 |           },
7988 |           "userDefined": {
7989 |             "ca:b": "abc123"
7990 |           },
7991 |           "verified": {
7992 |             "caAlgo": "abc123"
7993 |           }
7994 |         }
7995 |       },
7996 |       "NfdRecord": {
7997 |         "type": "object",
7998 |         "properties": {
7999 |           "appID": {
8000 |             "type": "integer",
8001 |             "description": "NFD Application ID",
8002 |             "example": 1000000,
8003 |             "format": "int64"
8004 |           },
8005 |           "asaID": {
8006 |             "type": "integer",
8007 |             "description": "NFD ASA ID",
8008 |             "example": 1,
8009 |             "format": "int64"
8010 |           },
8011 |           "avatarOutdated": {
8012 |             "type": "boolean",
8013 |             "description": "Whether the verified Avatar set in this NFD is newer (arc19) then is set into the NFD. This will only be present on direct NFD fetch and if true",
8014 |             "example": false
8015 |           },
8016 |           "caAlgo": {
8017 |             "type": "array",
8018 |             "items": {
8019 |               "type": "string",
8020 |               "example": "333333333333333333333333333333333333333333333333333333333A",
8021 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8022 |             },
8023 |             "description": "Verified Algorand addresses for this NFD",
8024 |             "example": [
8025 |               "333333333333333333333333333333333333333333333333333333333A"
8026 |             ]
8027 |           },
8028 |           "category": {
8029 |             "type": "string",
8030 |             "example": "premium",
8031 |             "enum": [
8032 |               "curated",
8033 |               "premium",
8034 |               "common"
8035 |             ]
8036 |           },
8037 |           "currentAsOfBlock": {
8038 |             "type": "integer",
8039 |             "description": "Round this data was last fetched from",
8040 |             "example": 1,
8041 |             "format": "int64"
8042 |           },
8043 |           "depositAccount": {
8044 |             "type": "string",
8045 |             "description": "account wallets should send funds to - precedence is: caAlgo[0], unverifiedCaAlgo[0], owner",
8046 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8047 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8048 |           },
8049 |           "expired": {
8050 |             "type": "boolean",
8051 |             "example": false
8052 |           },
8053 |           "match-check": {
8054 |             "type": "string",
8055 |             "description": "Not returned, used in tagging for response to indicate if-none-match etag matched",
8056 |             "example": "abc123"
8057 |           },
8058 |           "metaTags": {
8059 |             "type": "array",
8060 |             "items": {
8061 |               "type": "string",
8062 |               "example": "abc123"
8063 |             },
8064 |             "description": "Tags set by the system for tracking/analytics",
8065 |             "example": [
8066 |               "abc123"
8067 |             ]
8068 |           },
8069 |           "name": {
8070 |             "type": "string",
8071 |             "example": "abc123"
8072 |           },
8073 |           "nfdAccount": {
8074 |             "type": "string",
8075 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8076 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8077 |           },
8078 |           "owner": {
8079 |             "type": "string",
8080 |             "description": "Owner of NFD",
8081 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8082 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8083 |           },
8084 |           "parentAppID": {
8085 |             "type": "integer",
8086 |             "description": "NFD Application ID of Parent if this is a segment",
8087 |             "example": 1000000,
8088 |             "format": "int64"
8089 |           },
8090 |           "properties": {
8091 |             "$ref": "#/components/schemas/NFDProperties"
8092 |           },
8093 |           "reservedFor": {
8094 |             "type": "string",
8095 |             "description": "Reserved owner of NFD",
8096 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8097 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8098 |           },
8099 |           "saleType": {
8100 |             "type": "string",
8101 |             "example": "buyItNow",
8102 |             "enum": [
8103 |               "auction",
8104 |               "buyItNow"
8105 |             ]
8106 |           },
8107 |           "sellAmount": {
8108 |             "type": "integer",
8109 |             "description": "amount NFD is being sold for (microAlgos)",
8110 |             "example": 1,
8111 |             "format": "int64"
8112 |           },
8113 |           "seller": {
8114 |             "type": "string",
8115 |             "description": "RecipientUid of NFD sales",
8116 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8117 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8118 |           },
8119 |           "sigNameAddress": {
8120 |             "type": "string",
8121 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8122 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8123 |           },
8124 |           "state": {
8125 |             "type": "string",
8126 |             "example": "minting",
8127 |             "enum": [
8128 |               "available",
8129 |               "minting",
8130 |               "reserved",
8131 |               "forSale",
8132 |               "owned",
8133 |               "expired"
8134 |             ]
8135 |           },
8136 |           "tags": {
8137 |             "type": "array",
8138 |             "items": {
8139 |               "type": "string",
8140 |               "example": "abc123"
8141 |             },
8142 |             "description": "Tags assigned to this NFD",
8143 |             "example": [
8144 |               "abc123"
8145 |             ]
8146 |           },
8147 |           "timeChanged": {
8148 |             "type": "string",
8149 |             "example": "1970-01-01T00:00:01Z",
8150 |             "format": "date-time"
8151 |           },
8152 |           "timeCreated": {
8153 |             "type": "string",
8154 |             "example": "1970-01-01T00:00:01Z",
8155 |             "format": "date-time"
8156 |           },
8157 |           "timeExpires": {
8158 |             "type": "string",
8159 |             "example": "1970-01-01T00:00:01Z",
8160 |             "format": "date-time"
8161 |           },
8162 |           "timePurchased": {
8163 |             "type": "string",
8164 |             "example": "1970-01-01T00:00:01Z",
8165 |             "format": "date-time"
8166 |           },
8167 |           "unverifiedCa": {
8168 |             "type": "object",
8169 |             "description": "Unverified (non-algo) Crypto addresses for this NFD",
8170 |             "example": {
8171 |               "btc": [
8172 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8173 |               ]
8174 |             },
8175 |             "additionalProperties": {
8176 |               "type": "array",
8177 |               "items": {
8178 |                 "type": "string",
8179 |                 "example": "abc123"
8180 |               },
8181 |               "example": [
8182 |                 "abc123"
8183 |               ]
8184 |             }
8185 |           },
8186 |           "unverifiedCaAlgo": {
8187 |             "type": "array",
8188 |             "items": {
8189 |               "type": "string",
8190 |               "example": "333333333333333333333333333333333333333333333333333333333A",
8191 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8192 |             },
8193 |             "description": "Unverified Algorand addresses for this NFD",
8194 |             "example": [
8195 |               "333333333333333333333333333333333333333333333333333333333A"
8196 |             ]
8197 |           }
8198 |         },
8199 |         "example": {
8200 |           "appID": 1000000,
8201 |           "asaID": 1,
8202 |           "avatarOutdated": false,
8203 |           "caAlgo": [
8204 |             "333333333333333333333333333333333333333333333333333333333A"
8205 |           ],
8206 |           "category": "premium",
8207 |           "currentAsOfBlock": 1,
8208 |           "depositAccount": "333333333333333333333333333333333333333333333333333333333A",
8209 |           "expired": false,
8210 |           "match-check": "abc123",
8211 |           "metaTags": [
8212 |             "abc123"
8213 |           ],
8214 |           "name": "abc123",
8215 |           "nfdAccount": "333333333333333333333333333333333333333333333333333333333A",
8216 |           "owner": "333333333333333333333333333333333333333333333333333333333A",
8217 |           "parentAppID": 1000000,
8218 |           "properties": {
8219 |             "internal": {
8220 |               "abc123": "abc123"
8221 |             },
8222 |             "userDefined": {
8223 |               "ca:b": "abc123"
8224 |             },
8225 |             "verified": {
8226 |               "caAlgo": "abc123"
8227 |             }
8228 |           },
8229 |           "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
8230 |           "saleType": "buyItNow",
8231 |           "sellAmount": 1,
8232 |           "seller": "333333333333333333333333333333333333333333333333333333333A",
8233 |           "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A",
8234 |           "state": "minting",
8235 |           "tags": [
8236 |             "abc123"
8237 |           ],
8238 |           "timeChanged": "1970-01-01T00:00:01Z",
8239 |           "timeCreated": "1970-01-01T00:00:01Z",
8240 |           "timeExpires": "1970-01-01T00:00:01Z",
8241 |           "timePurchased": "1970-01-01T00:00:01Z",
8242 |           "unverifiedCa": {
8243 |             "btc": [
8244 |               "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8245 |             ]
8246 |           },
8247 |           "unverifiedCaAlgo": [
8248 |             "333333333333333333333333333333333333333333333333333333333A"
8249 |           ]
8250 |         },
8251 |         "required": [
8252 |           "name"
8253 |         ]
8254 |       },
8255 |       "NfdRecordCollection": {
8256 |         "type": "array",
8257 |         "items": {
8258 |           "$ref": "#/components/schemas/NfdRecord"
8259 |         },
8260 |         "example": [
8261 |           {
8262 |             "appID": 1000000,
8263 |             "asaID": 1,
8264 |             "avatarOutdated": false,
8265 |             "caAlgo": [
8266 |               "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
8267 |             ],
8268 |             "cache-control": "abc123",
8269 |             "category": "abc123",
8270 |             "currentAsOfBlock": 1,
8271 |             "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8272 |             "etag": "abc123",
8273 |             "expired": false,
8274 |             "match-check": "abc123",
8275 |             "metaTags": [
8276 |               "abc123"
8277 |             ],
8278 |             "name": "abc123",
8279 |             "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8280 |             "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8281 |             "parentAppID": 1000000,
8282 |             "properties": {
8283 |               "internal": {
8284 |                 "abc123": "abc123"
8285 |               },
8286 |               "userDefined": {
8287 |                 "ca:b": "abc123"
8288 |               },
8289 |               "verified": {
8290 |                 "caAlgo": "abc123"
8291 |               }
8292 |             },
8293 |             "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8294 |             "saleType": "abc123",
8295 |             "sellAmount": 1,
8296 |             "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8297 |             "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8298 |             "state": "abc123",
8299 |             "tags": [
8300 |               "abc123"
8301 |             ],
8302 |             "timeChanged": "1970-01-01T00:00:01Z",
8303 |             "timeCreated": "1970-01-01T00:00:01Z",
8304 |             "timeExpires": "1970-01-01T00:00:01Z",
8305 |             "timePurchased": "1970-01-01T00:00:01Z",
8306 |             "unverifiedCa": {
8307 |               "btc": [
8308 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8309 |               ]
8310 |             },
8311 |             "unverifiedCaAlgo": [
8312 |               "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
8313 |             ]
8314 |           }
8315 |         ]
8316 |       },
8317 |       "NfdRecordResponseFull": {
8318 |         "type": "object",
8319 |         "properties": {
8320 |           "appID": {
8321 |             "type": "integer",
8322 |             "description": "NFD Application ID",
8323 |             "example": 1000000,
8324 |             "format": "int64"
8325 |           },
8326 |           "asaID": {
8327 |             "type": "integer",
8328 |             "description": "NFD ASA ID",
8329 |             "example": 1,
8330 |             "format": "int64"
8331 |           },
8332 |           "avatarOutdated": {
8333 |             "type": "boolean",
8334 |             "description": "Whether the verified Avatar set in this NFD is newer (arc19) then is set into the NFD. This will only be present on direct NFD fetch and if true",
8335 |             "example": false
8336 |           },
8337 |           "caAlgo": {
8338 |             "type": "array",
8339 |             "items": {
8340 |               "type": "string",
8341 |               "example": "333333333333333333333333333333333333333333333333333333333A",
8342 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8343 |             },
8344 |             "description": "Verified Algorand addresses for this NFD",
8345 |             "example": [
8346 |               "333333333333333333333333333333333333333333333333333333333A"
8347 |             ]
8348 |           },
8349 |           "cache-control": {
8350 |             "type": "string",
8351 |             "description": "Cache-Control header",
8352 |             "example": "abc123"
8353 |           },
8354 |           "category": {
8355 |             "type": "string",
8356 |             "example": "premium",
8357 |             "enum": [
8358 |               "curated",
8359 |               "premium",
8360 |               "common"
8361 |             ]
8362 |           },
8363 |           "currentAsOfBlock": {
8364 |             "type": "integer",
8365 |             "description": "Round this data was last fetched from",
8366 |             "example": 1,
8367 |             "format": "int64"
8368 |           },
8369 |           "depositAccount": {
8370 |             "type": "string",
8371 |             "description": "account wallets should send funds to - precedence is: caAlgo[0], unverifiedCaAlgo[0], owner",
8372 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8373 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8374 |           },
8375 |           "etag": {
8376 |             "type": "string",
8377 |             "description": "ETag",
8378 |             "example": "abc123"
8379 |           },
8380 |           "expired": {
8381 |             "type": "boolean",
8382 |             "example": false
8383 |           },
8384 |           "match-check": {
8385 |             "type": "string",
8386 |             "description": "Not returned, used in tagging for response to indicate if-none-match etag matched",
8387 |             "example": "abc123"
8388 |           },
8389 |           "metaTags": {
8390 |             "type": "array",
8391 |             "items": {
8392 |               "type": "string",
8393 |               "example": "abc123"
8394 |             },
8395 |             "description": "Tags set by the system for tracking/analytics",
8396 |             "example": [
8397 |               "abc123"
8398 |             ]
8399 |           },
8400 |           "name": {
8401 |             "type": "string",
8402 |             "example": "abc123"
8403 |           },
8404 |           "nfdAccount": {
8405 |             "type": "string",
8406 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8407 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8408 |           },
8409 |           "owner": {
8410 |             "type": "string",
8411 |             "description": "Owner of NFD",
8412 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8413 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8414 |           },
8415 |           "parentAppID": {
8416 |             "type": "integer",
8417 |             "description": "NFD Application ID of Parent if this is a segment",
8418 |             "example": 1000000,
8419 |             "format": "int64"
8420 |           },
8421 |           "properties": {
8422 |             "$ref": "#/components/schemas/NFDProperties"
8423 |           },
8424 |           "reservedFor": {
8425 |             "type": "string",
8426 |             "description": "Reserved owner of NFD",
8427 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8428 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8429 |           },
8430 |           "saleType": {
8431 |             "type": "string",
8432 |             "example": "buyItNow",
8433 |             "enum": [
8434 |               "auction",
8435 |               "buyItNow"
8436 |             ]
8437 |           },
8438 |           "sellAmount": {
8439 |             "type": "integer",
8440 |             "description": "amount NFD is being sold for (microAlgos)",
8441 |             "example": 1,
8442 |             "format": "int64"
8443 |           },
8444 |           "seller": {
8445 |             "type": "string",
8446 |             "description": "RecipientUid of NFD sales",
8447 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8448 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8449 |           },
8450 |           "sigNameAddress": {
8451 |             "type": "string",
8452 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8453 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8454 |           },
8455 |           "state": {
8456 |             "type": "string",
8457 |             "example": "minting",
8458 |             "enum": [
8459 |               "available",
8460 |               "minting",
8461 |               "reserved",
8462 |               "forSale",
8463 |               "owned",
8464 |               "expired"
8465 |             ]
8466 |           },
8467 |           "tags": {
8468 |             "type": "array",
8469 |             "items": {
8470 |               "type": "string",
8471 |               "example": "abc123"
8472 |             },
8473 |             "description": "Tags assigned to this NFD",
8474 |             "example": [
8475 |               "abc123"
8476 |             ]
8477 |           },
8478 |           "timeChanged": {
8479 |             "type": "string",
8480 |             "example": "1970-01-01T00:00:01Z",
8481 |             "format": "date-time"
8482 |           },
8483 |           "timeCreated": {
8484 |             "type": "string",
8485 |             "example": "1970-01-01T00:00:01Z",
8486 |             "format": "date-time"
8487 |           },
8488 |           "timeExpires": {
8489 |             "type": "string",
8490 |             "example": "1970-01-01T00:00:01Z",
8491 |             "format": "date-time"
8492 |           },
8493 |           "timePurchased": {
8494 |             "type": "string",
8495 |             "example": "1970-01-01T00:00:01Z",
8496 |             "format": "date-time"
8497 |           },
8498 |           "unverifiedCa": {
8499 |             "type": "object",
8500 |             "description": "Unverified (non-algo) Crypto addresses for this NFD",
8501 |             "example": {
8502 |               "btc": [
8503 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8504 |               ]
8505 |             },
8506 |             "additionalProperties": {
8507 |               "type": "array",
8508 |               "items": {
8509 |                 "type": "string",
8510 |                 "example": "abc123"
8511 |               },
8512 |               "example": [
8513 |                 "abc123"
8514 |               ]
8515 |             }
8516 |           },
8517 |           "unverifiedCaAlgo": {
8518 |             "type": "array",
8519 |             "items": {
8520 |               "type": "string",
8521 |               "example": "333333333333333333333333333333333333333333333333333333333A",
8522 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8523 |             },
8524 |             "description": "Unverified Algorand addresses for this NFD",
8525 |             "example": [
8526 |               "333333333333333333333333333333333333333333333333333333333A"
8527 |             ]
8528 |           }
8529 |         },
8530 |         "description": "NFD contains all known information about an NFD record (full view)",
8531 |         "example": {
8532 |           "appID": 1000000,
8533 |           "asaID": 1,
8534 |           "avatarOutdated": false,
8535 |           "caAlgo": [
8536 |             "333333333333333333333333333333333333333333333333333333333A"
8537 |           ],
8538 |           "cache-control": "abc123",
8539 |           "category": "premium",
8540 |           "currentAsOfBlock": 1,
8541 |           "depositAccount": "333333333333333333333333333333333333333333333333333333333A",
8542 |           "etag": "abc123",
8543 |           "expired": false,
8544 |           "match-check": "abc123",
8545 |           "metaTags": [
8546 |             "abc123"
8547 |           ],
8548 |           "name": "abc123",
8549 |           "nfdAccount": "333333333333333333333333333333333333333333333333333333333A",
8550 |           "owner": "333333333333333333333333333333333333333333333333333333333A",
8551 |           "parentAppID": 1000000,
8552 |           "properties": {
8553 |             "internal": {
8554 |               "abc123": "abc123"
8555 |             },
8556 |             "userDefined": {
8557 |               "ca:b": "abc123"
8558 |             },
8559 |             "verified": {
8560 |               "caAlgo": "abc123"
8561 |             }
8562 |           },
8563 |           "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
8564 |           "saleType": "buyItNow",
8565 |           "sellAmount": 1,
8566 |           "seller": "333333333333333333333333333333333333333333333333333333333A",
8567 |           "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A",
8568 |           "state": "minting",
8569 |           "tags": [
8570 |             "abc123"
8571 |           ],
8572 |           "timeChanged": "1970-01-01T00:00:01Z",
8573 |           "timeCreated": "1970-01-01T00:00:01Z",
8574 |           "timeExpires": "1970-01-01T00:00:01Z",
8575 |           "timePurchased": "1970-01-01T00:00:01Z",
8576 |           "unverifiedCa": {
8577 |             "btc": [
8578 |               "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8579 |             ]
8580 |           },
8581 |           "unverifiedCaAlgo": [
8582 |             "333333333333333333333333333333333333333333333333333333333A"
8583 |           ]
8584 |         },
8585 |         "required": [
8586 |           "name"
8587 |         ]
8588 |       },
8589 |       "NfdRecordResponseFullCollection": {
8590 |         "type": "array",
8591 |         "items": {
8592 |           "$ref": "#/components/schemas/NfdRecordResponseFull"
8593 |         },
8594 |         "description": "DonationListV2ResponseBody is the result type for an array of NfdRecordResponse (full view)",
8595 |         "example": [
8596 |           {
8597 |             "appID": 1000000,
8598 |             "asaID": 1,
8599 |             "avatarOutdated": false,
8600 |             "caAlgo": [
8601 |               "333333333333333333333333333333333333333333333333333333333A"
8602 |             ],
8603 |             "category": "premium",
8604 |             "currentAsOfBlock": 1,
8605 |             "depositAccount": "333333333333333333333333333333333333333333333333333333333A",
8606 |             "expired": false,
8607 |             "match-check": "abc123",
8608 |             "metaTags": [
8609 |               "abc123"
8610 |             ],
8611 |             "name": "abc123",
8612 |             "nfdAccount": "333333333333333333333333333333333333333333333333333333333A",
8613 |             "owner": "333333333333333333333333333333333333333333333333333333333A",
8614 |             "parentAppID": 1000000,
8615 |             "properties": {
8616 |               "internal": {
8617 |                 "abc123": "abc123"
8618 |               },
8619 |               "userDefined": {
8620 |                 "ca:b": "abc123"
8621 |               },
8622 |               "verified": {
8623 |                 "caAlgo": "abc123"
8624 |               }
8625 |             },
8626 |             "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
8627 |             "saleType": "buyItNow",
8628 |             "sellAmount": 1,
8629 |             "seller": "333333333333333333333333333333333333333333333333333333333A",
8630 |             "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A",
8631 |             "state": "minting",
8632 |             "tags": [
8633 |               "abc123"
8634 |             ],
8635 |             "timeChanged": "1970-01-01T00:00:01Z",
8636 |             "timeCreated": "1970-01-01T00:00:01Z",
8637 |             "timeExpires": "1970-01-01T00:00:01Z",
8638 |             "timePurchased": "1970-01-01T00:00:01Z",
8639 |             "unverifiedCa": {
8640 |               "btc": [
8641 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8642 |               ]
8643 |             },
8644 |             "unverifiedCaAlgo": [
8645 |               "333333333333333333333333333333333333333333333333333333333A"
8646 |             ]
8647 |           }
8648 |         ]
8649 |       },
8650 |       "NfdRecordinaddress": {
8651 |         "type": "object",
8652 |         "properties": {
8653 |           "appID": {
8654 |             "type": "integer",
8655 |             "description": "NFD Application ID",
8656 |             "example": 1000000,
8657 |             "format": "int64"
8658 |           },
8659 |           "asaID": {
8660 |             "type": "integer",
8661 |             "description": "NFD ASA ID",
8662 |             "example": 1,
8663 |             "format": "int64"
8664 |           },
8665 |           "avatarOutdated": {
8666 |             "type": "boolean",
8667 |             "description": "Whether the verified Avatar set in this NFD is newer (arc19) then is set into the NFD. This will only be present on direct NFD fetch and if true",
8668 |             "example": false
8669 |           },
8670 |           "caAlgo": {
8671 |             "type": "array",
8672 |             "items": {
8673 |               "type": "string",
8674 |               "example": "333333333333333333333333333333333333333333333333333333333A",
8675 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8676 |             },
8677 |             "description": "Verified Algorand addresses for this NFD",
8678 |             "example": [
8679 |               "333333333333333333333333333333333333333333333333333333333A"
8680 |             ]
8681 |           },
8682 |           "cache-control": {
8683 |             "type": "string",
8684 |             "description": "Cache-Control header",
8685 |             "example": "abc123"
8686 |           },
8687 |           "category": {
8688 |             "type": "string",
8689 |             "example": "premium",
8690 |             "enum": [
8691 |               "curated",
8692 |               "premium",
8693 |               "common"
8694 |             ]
8695 |           },
8696 |           "currentAsOfBlock": {
8697 |             "type": "integer",
8698 |             "description": "Round this data was last fetched from",
8699 |             "example": 1,
8700 |             "format": "int64"
8701 |           },
8702 |           "depositAccount": {
8703 |             "type": "string",
8704 |             "description": "account wallets should send funds to - precedence is: caAlgo[0], unverifiedCaAlgo[0], owner",
8705 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8706 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8707 |           },
8708 |           "etag": {
8709 |             "type": "string",
8710 |             "description": "ETag",
8711 |             "example": "abc123"
8712 |           },
8713 |           "expired": {
8714 |             "type": "boolean",
8715 |             "example": false
8716 |           },
8717 |           "match-check": {
8718 |             "type": "string",
8719 |             "description": "Not returned, used in tagging for response to indicate if-none-match etag matched",
8720 |             "example": "abc123"
8721 |           },
8722 |           "metaTags": {
8723 |             "type": "array",
8724 |             "items": {
8725 |               "type": "string",
8726 |               "example": "abc123"
8727 |             },
8728 |             "description": "Tags set by the system for tracking/analytics",
8729 |             "example": [
8730 |               "abc123"
8731 |             ]
8732 |           },
8733 |           "name": {
8734 |             "type": "string",
8735 |             "example": "abc123"
8736 |           },
8737 |           "nfdAccount": {
8738 |             "type": "string",
8739 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8740 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8741 |           },
8742 |           "owner": {
8743 |             "type": "string",
8744 |             "description": "Owner of NFD",
8745 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8746 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8747 |           },
8748 |           "parentAppID": {
8749 |             "type": "integer",
8750 |             "description": "NFD Application ID of Parent if this is a segment",
8751 |             "example": 1000000,
8752 |             "format": "int64"
8753 |           },
8754 |           "properties": {
8755 |             "$ref": "#/components/schemas/NFDProperties"
8756 |           },
8757 |           "reservedFor": {
8758 |             "type": "string",
8759 |             "description": "Reserved owner of NFD",
8760 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8761 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8762 |           },
8763 |           "saleType": {
8764 |             "type": "string",
8765 |             "example": "buyItNow",
8766 |             "enum": [
8767 |               "auction",
8768 |               "buyItNow"
8769 |             ]
8770 |           },
8771 |           "sellAmount": {
8772 |             "type": "integer",
8773 |             "description": "amount NFD is being sold for (microAlgos)",
8774 |             "example": 1,
8775 |             "format": "int64"
8776 |           },
8777 |           "seller": {
8778 |             "type": "string",
8779 |             "description": "RecipientUid of NFD sales",
8780 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8781 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8782 |           },
8783 |           "sigNameAddress": {
8784 |             "type": "string",
8785 |             "example": "333333333333333333333333333333333333333333333333333333333A",
8786 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8787 |           },
8788 |           "state": {
8789 |             "type": "string",
8790 |             "example": "minting",
8791 |             "enum": [
8792 |               "available",
8793 |               "minting",
8794 |               "reserved",
8795 |               "forSale",
8796 |               "owned",
8797 |               "expired"
8798 |             ]
8799 |           },
8800 |           "tags": {
8801 |             "type": "array",
8802 |             "items": {
8803 |               "type": "string",
8804 |               "example": "abc123"
8805 |             },
8806 |             "description": "Tags assigned to this NFD",
8807 |             "example": [
8808 |               "abc123"
8809 |             ]
8810 |           },
8811 |           "timeChanged": {
8812 |             "type": "string",
8813 |             "example": "1970-01-01T00:00:01Z",
8814 |             "format": "date-time"
8815 |           },
8816 |           "timeCreated": {
8817 |             "type": "string",
8818 |             "example": "1970-01-01T00:00:01Z",
8819 |             "format": "date-time"
8820 |           },
8821 |           "timeExpires": {
8822 |             "type": "string",
8823 |             "example": "1970-01-01T00:00:01Z",
8824 |             "format": "date-time"
8825 |           },
8826 |           "timePurchased": {
8827 |             "type": "string",
8828 |             "example": "1970-01-01T00:00:01Z",
8829 |             "format": "date-time"
8830 |           },
8831 |           "unverifiedCa": {
8832 |             "type": "object",
8833 |             "description": "Unverified (non-algo) Crypto addresses for this NFD",
8834 |             "example": {
8835 |               "btc": [
8836 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8837 |               ]
8838 |             },
8839 |             "additionalProperties": {
8840 |               "type": "array",
8841 |               "items": {
8842 |                 "type": "string",
8843 |                 "example": "abc123"
8844 |               },
8845 |               "example": [
8846 |                 "abc123"
8847 |               ]
8848 |             }
8849 |           },
8850 |           "unverifiedCaAlgo": {
8851 |             "type": "array",
8852 |             "items": {
8853 |               "type": "string",
8854 |               "example": "333333333333333333333333333333333333333333333333333333333A",
8855 |               "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
8856 |             },
8857 |             "description": "Unverified Algorand addresses for this NFD",
8858 |             "example": [
8859 |               "333333333333333333333333333333333333333333333333333333333A"
8860 |             ]
8861 |           }
8862 |         },
8863 |         "description": "NFD contains all known information about an NFD record",
8864 |         "example": {
8865 |           "appID": 1000000,
8866 |           "asaID": 1,
8867 |           "avatarOutdated": false,
8868 |           "caAlgo": [
8869 |             "333333333333333333333333333333333333333333333333333333333A"
8870 |           ],
8871 |           "cache-control": "abc123",
8872 |           "category": "premium",
8873 |           "currentAsOfBlock": 1,
8874 |           "depositAccount": "333333333333333333333333333333333333333333333333333333333A",
8875 |           "etag": "abc123",
8876 |           "expired": false,
8877 |           "match-check": "abc123",
8878 |           "metaTags": [
8879 |             "abc123"
8880 |           ],
8881 |           "name": "abc123",
8882 |           "nfdAccount": "333333333333333333333333333333333333333333333333333333333A",
8883 |           "owner": "333333333333333333333333333333333333333333333333333333333A",
8884 |           "parentAppID": 1000000,
8885 |           "properties": {
8886 |             "internal": {
8887 |               "abc123": "abc123"
8888 |             },
8889 |             "userDefined": {
8890 |               "ca:b": "abc123"
8891 |             },
8892 |             "verified": {
8893 |               "caAlgo": "abc123"
8894 |             }
8895 |           },
8896 |           "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
8897 |           "saleType": "buyItNow",
8898 |           "sellAmount": 1,
8899 |           "seller": "333333333333333333333333333333333333333333333333333333333A",
8900 |           "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A",
8901 |           "state": "minting",
8902 |           "tags": [
8903 |             "abc123"
8904 |           ],
8905 |           "timeChanged": "1970-01-01T00:00:01Z",
8906 |           "timeCreated": "1970-01-01T00:00:01Z",
8907 |           "timeExpires": "1970-01-01T00:00:01Z",
8908 |           "timePurchased": "1970-01-01T00:00:01Z",
8909 |           "unverifiedCa": {
8910 |             "btc": [
8911 |               "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8912 |             ]
8913 |           },
8914 |           "unverifiedCaAlgo": [
8915 |             "333333333333333333333333333333333333333333333333333333333A"
8916 |           ]
8917 |         },
8918 |         "required": [
8919 |           "name"
8920 |         ]
8921 |       },
8922 |       "NfdRecordinaddressCollection": {
8923 |         "type": "array",
8924 |         "items": {
8925 |           "$ref": "#/components/schemas/NfdRecordinaddress"
8926 |         },
8927 |         "example": [
8928 |           {
8929 |             "appID": 1000000,
8930 |             "asaID": 1,
8931 |             "avatarOutdated": false,
8932 |             "caAlgo": [
8933 |               "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
8934 |             ],
8935 |             "cache-control": "abc123",
8936 |             "category": "abc123",
8937 |             "currentAsOfBlock": 1,
8938 |             "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8939 |             "etag": "abc123",
8940 |             "expired": false,
8941 |             "match-check": "abc123",
8942 |             "metaTags": [
8943 |               "abc123"
8944 |             ],
8945 |             "name": "abc123",
8946 |             "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8947 |             "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8948 |             "parentAppID": 1000000,
8949 |             "properties": {
8950 |               "internal": {
8951 |                 "abc123": "abc123"
8952 |               },
8953 |               "userDefined": {
8954 |                 "ca:b": "abc123"
8955 |               },
8956 |               "verified": {
8957 |                 "caAlgo": "abc123"
8958 |               }
8959 |             },
8960 |             "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8961 |             "saleType": "abc123",
8962 |             "sellAmount": 1,
8963 |             "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8964 |             "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
8965 |             "state": "abc123",
8966 |             "tags": [
8967 |               "abc123"
8968 |             ],
8969 |             "timeChanged": "1970-01-01T00:00:01Z",
8970 |             "timeCreated": "1970-01-01T00:00:01Z",
8971 |             "timeExpires": "1970-01-01T00:00:01Z",
8972 |             "timePurchased": "1970-01-01T00:00:01Z",
8973 |             "unverifiedCa": {
8974 |               "btc": [
8975 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
8976 |               ]
8977 |             },
8978 |             "unverifiedCaAlgo": [
8979 |               "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
8980 |             ]
8981 |           }
8982 |         ]
8983 |       },
8984 |       "NfdV2SearchRecords": {
8985 |         "type": "object",
8986 |         "properties": {
8987 |           "match-check": {
8988 |             "type": "string",
8989 |             "description": "Not returned, used in tagging for response to indicate if-none-match etag matched",
8990 |             "example": "abc123"
8991 |           },
8992 |           "nfds": {
8993 |             "$ref": "#/components/schemas/NfdRecordCollection"
8994 |           },
8995 |           "total": {
8996 |             "type": "integer",
8997 |             "description": "total number of results, with data containing paged amount based on offset/limit",
8998 |             "example": 1,
8999 |             "format": "int64"
9000 |           }
9001 |         },
9002 |         "example": {
9003 |           "match-check": "abc123",
9004 |           "nfds": [
9005 |             {
9006 |               "appID": 1000000,
9007 |               "asaID": 1,
9008 |               "avatarOutdated": false,
9009 |               "caAlgo": [
9010 |                 "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
9011 |               ],
9012 |               "cache-control": "abc123",
9013 |               "category": "abc123",
9014 |               "currentAsOfBlock": 1,
9015 |               "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9016 |               "etag": "abc123",
9017 |               "expired": false,
9018 |               "match-check": "abc123",
9019 |               "metaTags": [
9020 |                 "abc123"
9021 |               ],
9022 |               "name": "abc123",
9023 |               "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9024 |               "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9025 |               "parentAppID": 1000000,
9026 |               "properties": {
9027 |                 "internal": {
9028 |                   "abc123": "abc123"
9029 |                 },
9030 |                 "userDefined": {
9031 |                   "ca:b": "abc123"
9032 |                 },
9033 |                 "verified": {
9034 |                   "caAlgo": "abc123"
9035 |                 }
9036 |               },
9037 |               "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9038 |               "saleType": "abc123",
9039 |               "sellAmount": 1,
9040 |               "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9041 |               "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9042 |               "state": "abc123",
9043 |               "tags": [
9044 |                 "abc123"
9045 |               ],
9046 |               "timeChanged": "1970-01-01T00:00:01Z",
9047 |               "timeCreated": "1970-01-01T00:00:01Z",
9048 |               "timeExpires": "1970-01-01T00:00:01Z",
9049 |               "timePurchased": "1970-01-01T00:00:01Z",
9050 |               "unverifiedCa": {
9051 |                 "btc": [
9052 |                   "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
9053 |                 ]
9054 |               },
9055 |               "unverifiedCaAlgo": [
9056 |                 "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
9057 |               ]
9058 |             }
9059 |           ],
9060 |           "total": 1
9061 |         },
9062 |         "required": [
9063 |           "total",
9064 |           "nfds"
9065 |         ]
9066 |       },
9067 |       "OfferRequestBody": {
9068 |         "type": "object",
9069 |         "properties": {
9070 |           "offer": {
9071 |             "type": "integer",
9072 |             "description": "Amount in microAlgo to sell the NFD for.  1 ALGO is 1,000,000 microAlgo. 100 million maximum.",
9073 |             "example": 1,
9074 |             "format": "int64",
9075 |             "minimum": 0,
9076 |             "maximum": 100000000000000
9077 |           },
9078 |           "payReceiver": {
9079 |             "type": "boolean",
9080 |             "description": "Whether to pay the offer amount + fees to the account the NFD is reserved for.  Equivalent to 'gifting' the NFD",
9081 |             "example": false
9082 |           },
9083 |           "reservedFor": {
9084 |             "type": "string",
9085 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9086 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9087 |           },
9088 |           "sender": {
9089 |             "type": "string",
9090 |             "description": "Sender of transaction - needs to be owner of NFD",
9091 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9092 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9093 |           }
9094 |         },
9095 |         "example": {
9096 |           "offer": 1,
9097 |           "payReceiver": false,
9098 |           "reservedFor": "333333333333333333333333333333333333333333333333333333333A",
9099 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9100 |         },
9101 |         "required": [
9102 |           "sender",
9103 |           "offer"
9104 |         ]
9105 |       },
9106 |       "PostOfferToOwnerRequestBody": {
9107 |         "type": "object",
9108 |         "properties": {
9109 |           "note": {
9110 |             "type": "string",
9111 |             "description": "Note to pass along to the NFD owner.  Must be provided but can be blank",
9112 |             "example": "aaa",
9113 |             "maxLength": 512
9114 |           },
9115 |           "offer": {
9116 |             "type": "integer",
9117 |             "description": "Amount in microAlgo being offered to the NFD owner",
9118 |             "example": 1000001,
9119 |             "format": "int64",
9120 |             "minimum": 1000000,
9121 |             "maximum": 100000000000000
9122 |           },
9123 |           "sender": {
9124 |             "type": "string",
9125 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9126 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9127 |           }
9128 |         },
9129 |         "example": {
9130 |           "note": "aaa",
9131 |           "offer": 1000001,
9132 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9133 |         },
9134 |         "required": [
9135 |           "sender",
9136 |           "offer",
9137 |           "note"
9138 |         ]
9139 |       },
9140 |       "PurchaseRequestBody": {
9141 |         "type": "object",
9142 |         "properties": {
9143 |           "buyer": {
9144 |             "type": "string",
9145 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9146 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9147 |           },
9148 |           "offer": {
9149 |             "type": "integer",
9150 |             "description": "Amount in microAlgo to purchase/claim the NFD for",
9151 |             "example": 1,
9152 |             "format": "int64",
9153 |             "minimum": 0,
9154 |             "maximum": 100000000000000
9155 |           }
9156 |         },
9157 |         "example": {
9158 |           "buyer": "333333333333333333333333333333333333333333333333333333333A",
9159 |           "offer": 1
9160 |         },
9161 |         "required": [
9162 |           "buyer",
9163 |           "offer"
9164 |         ]
9165 |       },
9166 |       "RateLimited": {
9167 |         "type": "object",
9168 |         "properties": {
9169 |           "limit": {
9170 |             "type": "integer",
9171 |             "example": 5,
9172 |             "format": "int64"
9173 |           },
9174 |           "secsRemaining": {
9175 |             "type": "integer",
9176 |             "example": 50,
9177 |             "format": "int64"
9178 |           }
9179 |         },
9180 |         "example": {
9181 |           "limit": 5,
9182 |           "secsRemaining": 50
9183 |         },
9184 |         "required": [
9185 |           "limit",
9186 |           "secsRemaining"
9187 |         ]
9188 |       },
9189 |       "RenewRequestBody": {
9190 |         "type": "object",
9191 |         "properties": {
9192 |           "algoOffer": {
9193 |             "type": "integer",
9194 |             "description": "Offer price in ALGO. Expiration time set prorated based on amount paid vs fixed per-year cost when years argument is used",
9195 |             "example": 2,
9196 |             "format": "int64",
9197 |             "minimum": 1,
9198 |             "maximum": 100000000
9199 |           },
9200 |           "buyer": {
9201 |             "type": "string",
9202 |             "description": "Address paying/signing for minting transaction",
9203 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9204 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9205 |           },
9206 |           "name": {
9207 |             "type": "string",
9208 |             "example": "aa",
9209 |             "pattern": "^.+\\.algo$",
9210 |             "minLength": 1,
9211 |             "maxLength": 120
9212 |           },
9213 |           "years": {
9214 |             "type": "integer",
9215 |             "description": "Number of years until expiration, 1 yr minimum, 20 max, extending renewal date - sets price in multiples of 1 year. If not current owner and expired, only 1 year is allowed",
9216 |             "example": 2,
9217 |             "format": "int64",
9218 |             "minimum": 1,
9219 |             "maximum": 20
9220 |           }
9221 |         },
9222 |         "example": {
9223 |           "algoOffer": 2,
9224 |           "buyer": "333333333333333333333333333333333333333333333333333333333A",
9225 |           "name": "aa",
9226 |           "years": 2
9227 |         },
9228 |         "required": [
9229 |           "name",
9230 |           "buyer"
9231 |         ]
9232 |       },
9233 |       "RescindOfferRequestBody": {
9234 |         "type": "object",
9235 |         "properties": {
9236 |           "sender": {
9237 |             "type": "string",
9238 |             "description": "Sender of transaction - needs to be owner of NFD",
9239 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9240 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9241 |           }
9242 |         },
9243 |         "example": {
9244 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9245 |         },
9246 |         "required": [
9247 |           "sender"
9248 |         ]
9249 |       },
9250 |       "SegmentLockRequestBody": {
9251 |         "type": "object",
9252 |         "properties": {
9253 |           "lock": {
9254 |             "type": "boolean",
9255 |             "description": "Whether to lock (true), or unlock (false)",
9256 |             "example": false
9257 |           },
9258 |           "sellAmount": {
9259 |             "type": "integer",
9260 |             "description": "amount users minting off the segment have to pay to mint in USD (in cents - ie: 300 = $3.00). Set to 0 if locking",
9261 |             "example": 1,
9262 |             "format": "int64",
9263 |             "minimum": 0,
9264 |             "maximum": 100000000
9265 |           },
9266 |           "sender": {
9267 |             "type": "string",
9268 |             "description": "Sender of transaction - needs to be owner of NFD",
9269 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9270 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9271 |           }
9272 |         },
9273 |         "example": {
9274 |           "lock": false,
9275 |           "sellAmount": 1,
9276 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9277 |         },
9278 |         "required": [
9279 |           "sender",
9280 |           "lock",
9281 |           "sellAmount"
9282 |         ]
9283 |       },
9284 |       "SendFromVaultRequestBody": {
9285 |         "type": "object",
9286 |         "properties": {
9287 |           "amount": {
9288 |             "type": "integer",
9289 |             "description": "Base amount (in base units of specified asset - so decimals must be considered) of asset to send.   If multiple assets are specified, amount is should be 0 as ALL of each are sent and closed out",
9290 |             "example": 1,
9291 |             "format": "int64",
9292 |             "minimum": 0,
9293 |             "maximum": 100000000000000
9294 |           },
9295 |           "amountStr": {
9296 |             "type": "string",
9297 |             "description": "String version of Base amount (in base units of specified asset - so decimals must be considered) of asset to send.  This is used to work around JS deficiencies with bigint",
9298 |             "example": "abc123"
9299 |           },
9300 |           "assets": {
9301 |             "type": "array",
9302 |             "items": {
9303 |               "type": "integer",
9304 |               "example": 1,
9305 |               "format": "int64"
9306 |             },
9307 |             "description": "Algorand ASA IDs to transfer FROM vault - use asset 0 to send ALGO.  Specifying multiple assets means ALL of each are sent and amount is ignored. If receiver is a vault and needs to opt-in, then need MBR/opt-in pairs (5 pairs - 8  opt-ins each - 40 assets), then 6 send calls of 7 assets w/ 5 at end for total of 40.  If receiver is already opted-in, then 112 (7 per txn, 16 tnxs) is max.",
9308 |             "example": [
9309 |               1,
9310 |               1
9311 |             ],
9312 |             "minItems": 1,
9313 |             "maxItems": 112
9314 |           },
9315 |           "note": {
9316 |             "type": "string",
9317 |             "description": "Optional note to include in asset send transaction",
9318 |             "default": "",
9319 |             "example": "aaa",
9320 |             "maxLength": 1000
9321 |           },
9322 |           "receiver": {
9323 |             "type": "string",
9324 |             "description": "Algorand account or NFD Name (if vault receiver) the asset(s) should be sent to",
9325 |             "example": "abc123"
9326 |           },
9327 |           "receiverCanSign": {
9328 |             "type": "boolean",
9329 |             "description": "Specifies that the receiver account is something the caller can sign for. If specified, then opt-in transactions it signs may be included",
9330 |             "default": false,
9331 |             "example": false
9332 |           },
9333 |           "receiverType": {
9334 |             "type": "string",
9335 |             "description": "Type of receiver, 'account', or 'nfdVault'",
9336 |             "default": "account",
9337 |             "example": "nfdVault",
9338 |             "enum": [
9339 |               "account",
9340 |               "nfdVault"
9341 |             ]
9342 |           },
9343 |           "sender": {
9344 |             "type": "string",
9345 |             "description": "Sender of transaction, must be NFD owner",
9346 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9347 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9348 |           }
9349 |         },
9350 |         "example": {
9351 |           "amount": 1,
9352 |           "amountStr": "abc123",
9353 |           "assets": [
9354 |             1,
9355 |             1
9356 |           ],
9357 |           "note": "aaa",
9358 |           "receiver": "abc123",
9359 |           "receiverCanSign": false,
9360 |           "receiverType": "nfdVault",
9361 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9362 |         },
9363 |         "required": [
9364 |           "sender",
9365 |           "assets",
9366 |           "receiver"
9367 |         ]
9368 |       },
9369 |       "SendToVaultRequestBody": {
9370 |         "type": "object",
9371 |         "properties": {
9372 |           "amount": {
9373 |             "type": "integer",
9374 |             "description": "Base amount (in base units of specified asset - so decimals must be considered) of asset to send.   If multiple assets specified, amount is ignored and ALL of each are sent",
9375 |             "example": 1,
9376 |             "format": "int64",
9377 |             "minimum": 0,
9378 |             "maximum": 100000000000000
9379 |           },
9380 |           "amountStr": {
9381 |             "type": "string",
9382 |             "description": "String version of Base amount (in base units of specified asset - so decimals must be considered) of asset to send.  This is used to work around JS deficiencies with bigint",
9383 |             "example": "abc123"
9384 |           },
9385 |           "assets": {
9386 |             "type": "array",
9387 |             "items": {
9388 |               "type": "integer",
9389 |               "example": 1,
9390 |               "format": "int64"
9391 |             },
9392 |             "description": "Algorand ASA IDs to transfer (and opt-in inside vault if necessary) - use asset 0 to send ALGO.  Specifying multiple assets means ALL of each are sent and amount is ignored. 13 is max assets that can be specified if they're being sent (2 for MBR payments, 2 for opt-in txns (8+4 asset opt-ins), 12 asset transfers).  If opt-in only then 64 is maximum (1 MBR per 8 assets, 8 assets per txn * 8 txns)",
9393 |             "example": [
9394 |               1,
9395 |               1
9396 |             ],
9397 |             "minItems": 1,
9398 |             "maxItems": 64
9399 |           },
9400 |           "note": {
9401 |             "type": "string",
9402 |             "description": "Optional note to include in asset send transaction",
9403 |             "default": "",
9404 |             "example": "aaa",
9405 |             "maxLength": 1000
9406 |           },
9407 |           "optInOnly": {
9408 |             "type": "boolean",
9409 |             "description": "Whether to only opt-in to the asset, instead of including asset transfer txn",
9410 |             "default": false,
9411 |             "example": false
9412 |           },
9413 |           "sender": {
9414 |             "type": "string",
9415 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9416 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9417 |           }
9418 |         },
9419 |         "example": {
9420 |           "amount": 1,
9421 |           "amountStr": "abc123",
9422 |           "assets": [
9423 |             1,
9424 |             1
9425 |           ],
9426 |           "note": "aaa",
9427 |           "optInOnly": false,
9428 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9429 |         },
9430 |         "required": [
9431 |           "sender",
9432 |           "assets",
9433 |           "optInOnly"
9434 |         ]
9435 |       },
9436 |       "SetPrimaryAddressRequestBody": {
9437 |         "type": "object",
9438 |         "properties": {
9439 |           "address": {
9440 |             "type": "string",
9441 |             "description": "The address (already linked) to make primary - swapping into position if necessary",
9442 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9443 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9444 |           },
9445 |           "sender": {
9446 |             "type": "string",
9447 |             "description": "Address that will be signing the returned transactions.  Should be owner of NFD",
9448 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9449 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9450 |           }
9451 |         },
9452 |         "example": {
9453 |           "address": "333333333333333333333333333333333333333333333333333333333A",
9454 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9455 |         },
9456 |         "required": [
9457 |           "sender",
9458 |           "address"
9459 |         ]
9460 |       },
9461 |       "TotalsOKResponseBody": {
9462 |         "type": "object",
9463 |         "properties": {
9464 |           "contractTotals": {
9465 |             "type": "object",
9466 |             "properties": {
9467 |               "allVersions": {
9468 |                 "type": "object",
9469 |                 "description": "Contract versions",
9470 |                 "example": {
9471 |                   "abc123": 1
9472 |                 },
9473 |                 "additionalProperties": {
9474 |                   "type": "integer",
9475 |                   "example": 1,
9476 |                   "format": "int64"
9477 |                 }
9478 |               },
9479 |               "majorVersions": {
9480 |                 "type": "object",
9481 |                 "description": "Contract versions",
9482 |                 "example": {
9483 |                   "abc123": 1
9484 |                 },
9485 |                 "additionalProperties": {
9486 |                   "type": "integer",
9487 |                   "example": 1,
9488 |                   "format": "int64"
9489 |                 }
9490 |               }
9491 |             },
9492 |             "example": {
9493 |               "allVersions": {
9494 |                 "abc123": 1
9495 |               },
9496 |               "majorVersions": {
9497 |                 "abc123": 1
9498 |               }
9499 |             }
9500 |           },
9501 |           "expiredTotal": {
9502 |             "type": "integer",
9503 |             "description": "NFDs that have expired",
9504 |             "example": 1,
9505 |             "format": "int64"
9506 |           },
9507 |           "forSale": {
9508 |             "type": "integer",
9509 |             "example": 1,
9510 |             "format": "int64"
9511 |           },
9512 |           "match-check": {
9513 |             "type": "string",
9514 |             "description": "Not returned, used in tagging for response to indicate if-none-match etag matched",
9515 |             "example": "abc123"
9516 |           },
9517 |           "mintedTotals": {
9518 |             "type": "object",
9519 |             "properties": {
9520 |               "day": {
9521 |                 "type": "integer",
9522 |                 "example": 1,
9523 |                 "format": "int64"
9524 |               },
9525 |               "lifetime": {
9526 |                 "type": "integer",
9527 |                 "example": 1,
9528 |                 "format": "int64"
9529 |               },
9530 |               "month": {
9531 |                 "type": "integer",
9532 |                 "example": 1,
9533 |                 "format": "int64"
9534 |               },
9535 |               "week": {
9536 |                 "type": "integer",
9537 |                 "example": 1,
9538 |                 "format": "int64"
9539 |               }
9540 |             },
9541 |             "example": {
9542 |               "day": 1,
9543 |               "lifetime": 1,
9544 |               "month": 1,
9545 |               "week": 1
9546 |             }
9547 |           },
9548 |           "segmentTotals": {
9549 |             "type": "object",
9550 |             "properties": {
9551 |               "day": {
9552 |                 "type": "integer",
9553 |                 "example": 1,
9554 |                 "format": "int64"
9555 |               },
9556 |               "lifetime": {
9557 |                 "type": "integer",
9558 |                 "example": 1,
9559 |                 "format": "int64"
9560 |               },
9561 |               "month": {
9562 |                 "type": "integer",
9563 |                 "example": 1,
9564 |                 "format": "int64"
9565 |               },
9566 |               "week": {
9567 |                 "type": "integer",
9568 |                 "example": 1,
9569 |                 "format": "int64"
9570 |               }
9571 |             },
9572 |             "example": {
9573 |               "day": 1,
9574 |               "lifetime": 1,
9575 |               "month": 1,
9576 |               "week": 1
9577 |             }
9578 |           },
9579 |           "soldTotals": {
9580 |             "type": "object",
9581 |             "properties": {
9582 |               "day": {
9583 |                 "type": "integer",
9584 |                 "example": 1,
9585 |                 "format": "int64"
9586 |               },
9587 |               "lifetime": {
9588 |                 "type": "integer",
9589 |                 "example": 1,
9590 |                 "format": "int64"
9591 |               },
9592 |               "month": {
9593 |                 "type": "integer",
9594 |                 "example": 1,
9595 |                 "format": "int64"
9596 |               },
9597 |               "week": {
9598 |                 "type": "integer",
9599 |                 "example": 1,
9600 |                 "format": "int64"
9601 |               }
9602 |             },
9603 |             "example": {
9604 |               "day": 1,
9605 |               "lifetime": 1,
9606 |               "month": 1,
9607 |               "week": 1
9608 |             }
9609 |           },
9610 |           "total": {
9611 |             "type": "integer",
9612 |             "example": 1,
9613 |             "format": "int64"
9614 |           },
9615 |           "totalSegments": {
9616 |             "type": "integer",
9617 |             "example": 1,
9618 |             "format": "int64"
9619 |           },
9620 |           "uniqueOwners": {
9621 |             "type": "integer",
9622 |             "example": 1,
9623 |             "format": "int64"
9624 |           }
9625 |         },
9626 |         "example": {
9627 |           "contractTotals": {
9628 |             "allVersions": {
9629 |               "abc123": 1
9630 |             },
9631 |             "majorVersions": {
9632 |               "abc123": 1
9633 |             }
9634 |           },
9635 |           "expiredTotal": 1,
9636 |           "forSale": 1,
9637 |           "match-check": "abc123",
9638 |           "mintedTotals": {
9639 |             "day": 1,
9640 |             "lifetime": 1,
9641 |             "month": 1,
9642 |             "week": 1
9643 |           },
9644 |           "segmentTotals": {
9645 |             "day": 1,
9646 |             "lifetime": 1,
9647 |             "month": 1,
9648 |             "week": 1
9649 |           },
9650 |           "soldTotals": {
9651 |             "day": 1,
9652 |             "lifetime": 1,
9653 |             "month": 1,
9654 |             "week": 1
9655 |           },
9656 |           "total": 1,
9657 |           "totalSegments": 1,
9658 |           "uniqueOwners": 1
9659 |         },
9660 |         "required": [
9661 |           "total",
9662 |           "totalSegments",
9663 |           "forSale",
9664 |           "mintedTotals",
9665 |           "segmentTotals",
9666 |           "soldTotals",
9667 |           "contractTotals",
9668 |           "uniqueOwners",
9669 |           "expiredTotal"
9670 |         ]
9671 |       },
9672 |       "TwitterRecord": {
9673 |         "type": "object",
9674 |         "properties": {
9675 |           "followers": {
9676 |             "type": "integer",
9677 |             "example": 1,
9678 |             "format": "int64"
9679 |           },
9680 |           "following": {
9681 |             "type": "integer",
9682 |             "example": 1,
9683 |             "format": "int64"
9684 |           },
9685 |           "nfd": {
9686 |             "$ref": "#/components/schemas/NFD"
9687 |           },
9688 |           "timeChanged": {
9689 |             "type": "string",
9690 |             "example": "1970-01-01T00:00:01Z",
9691 |             "format": "date-time"
9692 |           },
9693 |           "tweets": {
9694 |             "type": "integer",
9695 |             "example": 1,
9696 |             "format": "int64"
9697 |           },
9698 |           "twitterHandle": {
9699 |             "type": "string",
9700 |             "example": "abc123"
9701 |           }
9702 |         },
9703 |         "description": "TwitterRecord contains information about an NFD w/ Verified Twitter account and basic info on its twitter metrics",
9704 |         "example": {
9705 |           "followers": 1,
9706 |           "following": 1,
9707 |           "nfd": {
9708 |             "appID": 1000000,
9709 |             "asaID": 1,
9710 |             "avatarOutdated": false,
9711 |             "caAlgo": [
9712 |               "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
9713 |             ],
9714 |             "cache-control": "abc123",
9715 |             "category": "abc123",
9716 |             "currentAsOfBlock": 1,
9717 |             "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9718 |             "etag": "abc123",
9719 |             "expired": false,
9720 |             "match-check": "abc123",
9721 |             "metaTags": [
9722 |               "abc123"
9723 |             ],
9724 |             "name": "abc123",
9725 |             "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9726 |             "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9727 |             "parentAppID": 1000000,
9728 |             "properties": {
9729 |               "internal": {
9730 |                 "abc123": "abc123"
9731 |               },
9732 |               "userDefined": {
9733 |                 "ca:b": "abc123"
9734 |               },
9735 |               "verified": {
9736 |                 "caAlgo": "abc123"
9737 |               }
9738 |             },
9739 |             "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9740 |             "saleType": "abc123",
9741 |             "sellAmount": 1,
9742 |             "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9743 |             "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU",
9744 |             "state": "abc123",
9745 |             "tags": [
9746 |               "abc123"
9747 |             ],
9748 |             "timeChanged": "1970-01-01T00:00:01Z",
9749 |             "timeCreated": "1970-01-01T00:00:01Z",
9750 |             "timeExpires": "1970-01-01T00:00:01Z",
9751 |             "timePurchased": "1970-01-01T00:00:01Z",
9752 |             "unverifiedCa": {
9753 |               "btc": [
9754 |                 "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL"
9755 |               ]
9756 |             },
9757 |             "unverifiedCaAlgo": [
9758 |               "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU"
9759 |             ]
9760 |           },
9761 |           "timeChanged": "1970-01-01T00:00:01Z",
9762 |           "tweets": 1,
9763 |           "twitterHandle": "abc123"
9764 |         },
9765 |         "required": [
9766 |           "timeChanged",
9767 |           "nfd",
9768 |           "twitterHandle",
9769 |           "followers",
9770 |           "following",
9771 |           "tweets"
9772 |         ]
9773 |       },
9774 |       "UpdatePartialRequestBody": {
9775 |         "type": "object",
9776 |         "properties": {
9777 |           "properties": {
9778 |             "$ref": "#/components/schemas/NFDProperties"
9779 |           },
9780 |           "sender": {
9781 |             "type": "string",
9782 |             "description": "Address that will be signing the returned transactions.  Should be owner of NFD",
9783 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9784 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9785 |           }
9786 |         },
9787 |         "example": {
9788 |           "properties": {
9789 |             "internal": {
9790 |               "abc123": "abc123"
9791 |             },
9792 |             "userDefined": {
9793 |               "ca:b": "abc123"
9794 |             },
9795 |             "verified": {
9796 |               "caAlgo": "abc123"
9797 |             }
9798 |           },
9799 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9800 |         },
9801 |         "required": [
9802 |           "sender",
9803 |           "properties"
9804 |         ]
9805 |       },
9806 |       "VerifyConfirmRequestBody": {
9807 |         "type": "object",
9808 |         "properties": {
9809 |           "challenge": {
9810 |             "type": "string",
9811 |             "description": "Challenge value, optional depending on verification type",
9812 |             "example": "abc123"
9813 |           }
9814 |         },
9815 |         "example": {
9816 |           "challenge": "abc123"
9817 |         }
9818 |       },
9819 |       "VerifyConfirmResponseBody": {
9820 |         "type": "object",
9821 |         "properties": {
9822 |           "confirmed": {
9823 |             "type": "boolean",
9824 |             "example": false
9825 |           }
9826 |         },
9827 |         "description": "Whether verification was successful",
9828 |         "example": {
9829 |           "confirmed": false
9830 |         },
9831 |         "required": [
9832 |           "confirmed"
9833 |         ]
9834 |       },
9835 |       "VerifyRequestRequestBody": {
9836 |         "type": "object",
9837 |         "properties": {
9838 |           "fieldToVerify": {
9839 |             "type": "string",
9840 |             "description": "User defined field name to verify",
9841 |             "example": "twitter",
9842 |             "enum": [
9843 |               "blueskydid",
9844 |               "twitter",
9845 |               "github",
9846 |               "domain",
9847 |               "email",
9848 |               "avatar",
9849 |               "banner"
9850 |             ]
9851 |           },
9852 |           "name": {
9853 |             "type": "string",
9854 |             "example": "aa",
9855 |             "pattern": "^.+\\.algo$",
9856 |             "minLength": 1,
9857 |             "maxLength": 120
9858 |           },
9859 |           "sender": {
9860 |             "type": "string",
9861 |             "description": "Sender of transaction - needs to be owner of NFD",
9862 |             "example": "333333333333333333333333333333333333333333333333333333333A",
9863 |             "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$"
9864 |           }
9865 |         },
9866 |         "example": {
9867 |           "fieldToVerify": "twitter",
9868 |           "name": "aa",
9869 |           "sender": "333333333333333333333333333333333333333333333333333333333A"
9870 |         },
9871 |         "required": [
9872 |           "name",
9873 |           "sender",
9874 |           "fieldToVerify"
9875 |         ]
9876 |       },
9877 |       "VerifyRequestResponseBody": {
9878 |         "type": "object",
9879 |         "properties": {
9880 |           "challenge": {
9881 |             "type": "string",
9882 |             "description": "Challenge to be used as part of verification process, with use specific to each field",
9883 |             "example": "abc123"
9884 |           },
9885 |           "id": {
9886 |             "type": "string",
9887 |             "description": "ID of challenge, must be used in subsequent confirmation call but may be blank",
9888 |             "example": "abc123"
9889 |           },
9890 |           "validated": {
9891 |             "type": "boolean",
9892 |             "description": "If set, no confirmation is required, the verify call was sufficient",
9893 |             "example": false
9894 |           }
9895 |         },
9896 |         "description": "Data to use as part of verification",
9897 |         "example": {
9898 |           "challenge": "abc123",
9899 |           "id": "abc123",
9900 |           "validated": false
9901 |         },
9902 |         "required": [
9903 |           "id",
9904 |           "challenge"
9905 |         ]
9906 |       },
9907 |       "VersionResponseBody": {
9908 |         "type": "object",
9909 |         "properties": {
9910 |           "appVersion": {
9911 |             "type": "string",
9912 |             "example": "5cfa595 [2022-03-20T17:02:35Z]"
9913 |           },
9914 |           "contractVersion": {
9915 |             "type": "string",
9916 |             "example": "1.0"
9917 |           }
9918 |         },
9919 |         "example": {
9920 |           "appVersion": "5cfa595 [2022-03-20T17:02:35Z]",
9921 |           "contractVersion": "1.0"
9922 |         },
9923 |         "required": [
9924 |           "appVersion",
9925 |           "contractVersion"
9926 |         ]
9927 |       }
9928 |     },
9929 |     "securitySchemes": {
9930 |       "basic_header_Authorization": {
9931 |         "type": "http",
9932 |         "description": "Basic authentication",
9933 |         "scheme": "basic"
9934 |       },
9935 |       "jwt_header_Authorization": {
9936 |         "type": "http",
9937 |         "description": "Secures endpoint by requiring a valid JWT token.",
9938 |         "scheme": "bearer"
9939 |       },
9940 |       "jwt_query_token": {
9941 |         "type": "http",
9942 |         "description": "Secures endpoint by requiring a valid JWT token.",
9943 |         "scheme": "bearer"
9944 |       }
9945 |     }
9946 |   },
9947 |   "tags": [
9948 |     {
9949 |       "name": "info",
9950 |       "description": "The info service provides information on version data, liveness, readiness checks, etc."
9951 |     },
9952 |     {
9953 |       "name": "nfd",
9954 |       "description": "The nfd service provides apis for creating/searching/updating NFDs.  All changes occur via smart-contract calls with the endpoints returning transactions to sign for submission to an Algorand node"
9955 |     }
9956 |   ]
9957 | }
```
Page 93/93FirstPrevNextLast