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 | } ```