Skip to main content
Glama

Algorand MCP

by GoPlausible
{ "openapi": "3.0.3", "info": { "title": "NFD Management Service", "description": "Service for querying and managing NFDs", "contact": { "name": "Support", "url": "https://discord.gg/7XcuMTfeZP", "email": "feedback@txnlab.dev" }, "version": "1.0" }, "servers": [ { "url": "https://api.nf.domains" }, { "url": "https://api.testnet.nf.domains" }, { "url": "https://api.betanet.nf.domains" }, { "url": "http://localhost:80" } ], "paths": { "/info/openapi3.yaml": { "get": { "tags": [ "info" ], "summary": "Download ./pubfiles/openapi3.yaml", "description": "YAML document containing the API swagger definition", "operationId": "info#/info/openapi3.yaml", "responses": { "200": { "description": "File downloaded" } } } }, "/info/version": { "get": { "tags": [ "info" ], "summary": "version info", "description": "Returns version information for the service", "operationId": "info#version", "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VersionResponseBody" }, "example": { "appVersion": "5cfa595 [2022-03-20T17:02:35Z]", "contractVersion": "1.0" } } } } } } }, "/nfd/{nameOrID}": { "get": { "tags": [ "nfd" ], "summary": "Get a specific NFD by name or by its application ID", "description": "Get a specific NFD by name or by its application ID", "operationId": "nfd#getNFD", "parameters": [ { "name": "view", "in": "query", "description": "View of data to return, tiny, brief (default), or full", "allowEmptyValue": true, "schema": { "type": "string", "description": "View of data to return, tiny, brief (default), or full", "default": "brief", "enum": [ "tiny", "brief", "full" ] } }, { "name": "poll", "in": "query", "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", "allowEmptyValue": true, "schema": { "type": "boolean", "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", "default": false } }, { "name": "nocache", "in": "query", "description": "Set to true to return a never-cached result. Use sparingly and only during certain 'NFD already exists' UX state transitions.", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "Set to true to return a never-cached result. Use sparingly and only during certain 'NFD already exists' UX state transitions.", "default": false } }, { "name": "nameOrID", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD (alphanumeric only or emojis/alphanumeric), or an NFD Application ID", "example": "silvio.algo", "pattern": "^(.+\\.algo)|(\\d+)$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NfdRecord" }, "example": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ], "category": "premium", "currentAsOfBlock": 1, "depositAccount": "333333333333333333333333333333333333333333333333333333333A", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "333333333333333333333333333333333333333333333333333333333A", "owner": "333333333333333333333333333333333333333333333333333333333A", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "saleType": "buyItNow", "sellAmount": 1, "seller": "333333333333333333333333333333333333333333333333333333333A", "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A", "state": "minting", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ] } } } }, "204": { "description": "Polling, NFD not found", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/activity": { "get": { "tags": [ "nfd" ], "summary": "Fetch change activity for an NFD", "description": "Fetch change activity for an NFD, specifically general 'block-level' deltas for an NFD", "operationId": "nfd#activity", "parameters": [ { "name": "name", "in": "query", "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\")", "allowEmptyValue": true, "required": true, "schema": { "type": "array", "items": { "type": "string", "example": "abc123" }, "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\")", "example": [ "silvio.algo" ], "minItems": 1, "maxItems": 20 }, "example": [ "silvio.algo" ] }, { "name": "type", "in": "query", "description": "type of activity to retrieve", "allowEmptyValue": true, "schema": { "type": "string", "description": "type of activity to retrieve", "default": "changes", "example": "changes", "enum": [ "changes" ] }, "example": "changes" }, { "name": "afterTime", "in": "query", "description": "Fetch events that occurred only after the specified time", "allowEmptyValue": true, "schema": { "type": "string", "description": "Fetch events that occurred only after the specified time", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "example": "1970-01-01T00:00:01Z" }, { "name": "limit", "in": "query", "description": "Limit the number of results returned, per NFD - max 50", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Limit the number of results returned, per NFD - max 50", "default": 10, "example": 10, "format": "int64", "minimum": 1, "maximum": 50 }, "example": 10 }, { "name": "sort", "in": "query", "description": "What to sort on - descending timestamp is default", "allowEmptyValue": true, "schema": { "type": "string", "description": "What to sort on - descending timestamp is default", "default": "timeDesc", "example": "timeAsc", "enum": [ "timeDesc", "timeAsc" ] }, "example": "timeAsc" }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NFDActivity" }, "example": [ { "block": 1, "cache-control": "abc123", "changes": { "abc123": "abc123" }, "etag": "abc123", "match-check": "abc123", "name": "abc123", "timeChanged": "1970-01-01T00:00:01Z" } ] }, "example": [ { "block": 1, "cache-control": "abc123", "changes": { "abc123": "abc123" }, "etag": "abc123", "match-check": "abc123", "name": "abc123", "timeChanged": "1970-01-01T00:00:01Z" } ] } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/analytics": { "get": { "tags": [ "nfd" ], "summary": "Fetch NFD analytics via various filters", "description": "Fetch NFD analytics via various filters", "operationId": "nfd#analytics", "parameters": [ { "name": "name", "in": "query", "description": "name or partial match of NFD name to filter on", "allowEmptyValue": true, "schema": { "type": "string", "description": "name or partial match of NFD name to filter on", "example": "abc123" }, "example": "abc123" }, { "name": "buyer", "in": "query", "description": "Buyer address to filter on", "allowEmptyValue": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "seller", "in": "query", "description": "Seller address to filter on", "allowEmptyValue": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "event", "in": "query", "description": "one or more events to filter on", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "example": "renewed", "enum": [ "minted", "renewed", "offeredForSale", "canceledSale", "escrowedOffer", "sold", "postedOffer" ] }, "description": "one or more events to filter on", "example": [ "renewed" ] }, "example": [ "renewed" ] }, { "name": "requireBuyer", "in": "query", "description": "Whether the buyer property must be present in the data. Setting this will exclude auction mint events for eg", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "Whether the buyer property must be present in the data. Setting this will exclude auction mint events for eg", "example": false }, "example": false }, { "name": "includeOwner", "in": "query", "description": "Whether to add a currentOwner property to each event with the 'current' owner of the NFD referenced by that event", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "Whether to add a currentOwner property to each event with the 'current' owner of the NFD referenced by that event", "example": false }, "example": false }, { "name": "excludeNFDAsSeller", "in": "query", "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.", "allowEmptyValue": true, "schema": { "type": "boolean", "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.", "default": false, "example": false }, "example": false }, { "name": "category", "in": "query", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "description": "Category of NFD", "example": "premium", "enum": [ "curated", "premium", "common" ] }, "example": [ "abc123" ] }, "example": [ "abc123" ] }, { "name": "saleType", "in": "query", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "description": "Sale type of NFD", "example": "buyItNow", "enum": [ "auction", "buyItNow" ] }, "example": [ "abc123" ] }, "example": [ "abc123" ] }, { "name": "length", "in": "query", "description": "Length of NFD", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "example": "2_letters", "enum": [ "1_letters", "2_letters", "3_letters", "4_letters", "5_letters", "6_letters", "7_letters", "8_letters", "9_letters", "10+_letters" ] }, "description": "Length of NFD", "example": [ "2_letters" ] }, "example": [ "2_letters" ] }, { "name": "traits", "in": "query", "description": "Traits of NFD", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "example": "pristine", "enum": [ "emoji", "pristine", "segment" ] }, "description": "Traits of NFD", "example": [ "pristine" ] }, "example": [ "pristine" ] }, { "name": "parentAppID", "in": "query", "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD", "example": 1000000, "format": "int64" }, "example": 1000000 }, { "name": "minPrice", "in": "query", "description": "Minimum price of NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Minimum price of NFD", "example": 1, "format": "int64" }, "example": 1 }, { "name": "maxPrice", "in": "query", "description": "Maximum price of NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Maximum price of NFD", "example": 1, "format": "int64" }, "example": 1 }, { "name": "afterTime", "in": "query", "description": "Fetch analytics events that occurred only after the specified time", "allowEmptyValue": true, "schema": { "type": "string", "description": "Fetch analytics events that occurred only after the specified time", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "example": "1970-01-01T00:00:01Z" }, { "name": "limit", "in": "query", "description": "Limit the number of results returned - max 200", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Limit the number of results returned - max 200", "default": 50, "example": 50, "format": "int64", "minimum": 1, "maximum": 200 }, "example": 50 }, { "name": "offset", "in": "query", "description": "Starting document in large list. Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Starting document in large list. Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200", "default": 0, "example": 1, "format": "int64", "minimum": 0 }, "example": 1 }, { "name": "sort", "in": "query", "description": "What to sort on - descending timestamp is default", "allowEmptyValue": true, "schema": { "type": "string", "description": "What to sort on - descending timestamp is default", "default": "timeDesc", "example": "priceAsc", "enum": [ "timeDesc", "priceAsc", "priceDesc" ] }, "example": "priceAsc" }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NFDAnalyticRecords" }, "example": { "match-check": "abc123", "results": [ { "data": { "block": 1, "buyer": "abc123", "carryCost": 1, "category": "premium", "currentOwner": "abc123", "event": "renewed", "groupID": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "newExpTime": "1970-01-01T00:00:01Z", "note": "abc123", "oneYearRenewalPrice": 1, "saleType": "buyItNow", "seller": "abc123" }, "price": 1, "priceUsd": 1, "timestamp": "1970-01-01T00:00:01Z" } ], "total": 1 } } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/badges/{name}": { "get": { "tags": [ "nfd" ], "summary": "Fetch badge information (donations/etc) for an NFD", "description": "Fetch badge information (ie: donations) for an NFD", "operationId": "nfd#badges", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "type": "object", "example": { "abc123": [ { "abc123": "abc123" } ] }, "additionalProperties": { "type": "array", "items": { "type": "object", "example": { "abc123": "abc123" }, "additionalProperties": { "type": "string", "example": "abc123" } }, "example": [ { "abc123": "abc123" } ] } }, "example": { "abc123": [ { "abc123": "abc123" } ] } } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/bluesky/leaders": { "get": { "tags": [ "nfd" ], "summary": "blueskyLeaders nfd", "description": "Get top bluesky influencers", "operationId": "nfd#blueskyLeaders", "parameters": [ { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlueskyRecord" }, "example": [ { "blueskydid": "abc123", "displayName": "abc123", "followers": 1, "following": 1, "handle": "abc123", "nfd": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] }, "posts": 1 } ] }, "example": [ { "blueskydid": "abc123", "displayName": "abc123", "followers": 1, "following": 1, "handle": "abc123", "nfd": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] }, "posts": 1 } ] } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/browse": { "get": { "tags": [ "nfd" ], "summary": "Browse NFDs via various filters", "operationId": "nfd#browse", "parameters": [ { "name": "name", "in": "query", "description": "name or partial match of NFD name to filter on", "allowEmptyValue": true, "schema": { "type": "string", "description": "name or partial match of NFD name to filter on" } }, { "name": "category", "in": "query", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "description": "Category of NFD", "example": "premium", "enum": [ "curated", "premium", "common" ] } } }, { "name": "saleType", "in": "query", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "description": "Sale type of NFD", "example": "buyItNow", "enum": [ "auction", "buyItNow" ] } } }, { "name": "state", "in": "query", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "description": "State of NFD", "example": "forSale", "enum": [ "reserved", "forSale", "owned", "expired" ] } } }, { "name": "parentAppID", "in": "query", "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD", "example": 1000000, "format": "int64" }, "example": 1000000 }, { "name": "length", "in": "query", "description": "Length of NFD", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "example": "2_letters", "enum": [ "1_letters", "2_letters", "3_letters", "4_letters", "5_letters", "6_letters", "7_letters", "8_letters", "9_letters", "10+_letters" ] }, "description": "Length of NFD" } }, { "name": "traits", "in": "query", "description": "Traits of NFD", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "example": "pristine", "enum": [ "emoji", "pristine", "segment" ] }, "description": "Traits of NFD" } }, { "name": "owner", "in": "query", "description": "An Algorand account address to find all NFDs owned by that address", "allowEmptyValue": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "reservedFor", "in": "query", "description": "An Algorand account address to find all NFDs reserved for that address", "allowEmptyValue": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "prefix", "in": "query", "description": "The start of an NFD name, fetching multiple NFDs that have that prefix", "allowEmptyValue": true, "schema": { "type": "string", "description": "The start of an NFD name, fetching multiple NFDs that have that prefix", "minLength": 1, "maxLength": 32 } }, { "name": "substring", "in": "query", "description": "Part of an NFD name, fetching multiple NFDs that have that substring (minimum 3 characters)", "allowEmptyValue": true, "schema": { "type": "string", "description": "Part of an NFD name, fetching multiple NFDs that have that substring (minimum 3 characters)", "minLength": 3, "maxLength": 32 } }, { "name": "vproperty", "in": "query", "description": "Verified property name to search on - specify value with vvalue", "allowEmptyValue": true, "schema": { "type": "string", "description": "Verified property name to search on - specify value with vvalue", "example": "discord", "enum": [ "blueskydid", "discord", "telegram", "github", "twitter", "email", "domain", "nostrpubkey" ] }, "example": "discord" }, { "name": "vvalue", "in": "query", "description": "Value to find in the vproperty field specified with the vproperty parameter", "allowEmptyValue": true, "schema": { "type": "string", "description": "Value to find in the vproperty field specified with the vproperty parameter", "example": "abc123" }, "example": "abc123" }, { "name": "minPrice", "in": "query", "description": "Minimum price of NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Minimum price of NFD", "format": "int64" } }, { "name": "maxPrice", "in": "query", "description": "Maximum price of NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Maximum price of NFD", "format": "int64" } }, { "name": "changedAfter", "in": "query", "description": "Fetch NFDs that changed after the specified timestamp", "allowEmptyValue": true, "schema": { "type": "string", "description": "Fetch NFDs that changed after the specified timestamp", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "example": "1970-01-01T00:00:01Z" }, { "name": "limit", "in": "query", "description": "Limit the number of results returned - max 200", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Limit the number of results returned - max 200", "default": 50, "format": "int64", "minimum": 1, "maximum": 200 } }, { "name": "offset", "in": "query", "description": "Starting document in large list. Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Starting document in large list. Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200", "default": 0, "format": "int64", "minimum": 0 } }, { "name": "sort", "in": "query", "description": "What to sort on", "allowEmptyValue": true, "schema": { "type": "string", "description": "What to sort on", "default": "createdDesc", "enum": [ "createdDesc", "timeChangedDesc", "soldDesc", "priceAsc", "priceDesc", "highestSaleDesc", "saleTypeAsc" ] } }, { "name": "view", "in": "query", "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only), brief (default), or full", "allowEmptyValue": true, "schema": { "type": "string", "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only), brief (default), or full", "default": "brief", "enum": [ "tiny", "brief", "full" ] } }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NfdRecordCollection" }, "example": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ] } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/consensus/leaders": { "get": { "tags": [ "nfd" ], "summary": "consensusLeaders nfd", "description": "Get top consensus leaders", "operationId": "nfd#consensusLeaders", "parameters": [ { "name": "requireNFD", "in": "query", "description": "should it only match against accounts matching NFD linked addresses", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "should it only match against accounts matching NFD linked addresses", "default": true, "example": false }, "example": false }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConsensusRecord" }, "example": [ { "account": "abc123", "lastPropBlock": 1, "lastPropTime": "1970-01-01T00:00:01Z", "lastVoteBlock": 1, "lastVoteTime": "1970-01-01T00:00:01Z", "linkType": "abc123", "ownerAccount": "abc123", "pctOfOnline": 1, "proposals": 1, "rank": 1, "votes": 1 } ] }, "example": [ { "account": "abc123", "lastPropBlock": 1, "lastPropTime": "1970-01-01T00:00:01Z", "lastVoteBlock": 1, "lastVoteTime": "1970-01-01T00:00:01Z", "linkType": "abc123", "ownerAccount": "abc123", "pctOfOnline": 1, "proposals": 1, "rank": 1, "votes": 1 } ] } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/consensus/metrics": { "get": { "tags": [ "nfd" ], "summary": "consensusMetrics nfd", "description": "Get general metrics about Algorand consensus", "operationId": "nfd#consensusMetrics", "parameters": [ { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "type": "object", "example": { "abc123": [ { "abc123": "abc123" } ] }, "additionalProperties": { "type": "array", "items": { "type": "object", "example": { "abc123": "abc123" }, "additionalProperties": { "type": "string", "example": "abc123" } }, "example": [ { "abc123": "abc123" } ] } }, "example": { "abc123": [ { "abc123": "abc123" } ] } } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/contract/lock/{name}": { "post": { "tags": [ "nfd" ], "summary": "contractLock nfd", "description": "Lock/Unlock an NFD contract - if locked, the contract can never being modified until unlocked again by the owner.", "operationId": "nfd#contractLock", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContractLockRequestBody" }, "example": { "lock": false, "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/contract/upgrade/{name}": { "post": { "tags": [ "nfd" ], "summary": "contractUpgrade nfd", "description": "Request upgrade of a pre 2.11 NFD to 2.11 (going no further)", "operationId": "nfd#contractUpgrade", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RescindOfferRequestBody" }, "example": { "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeNotNeeded: The NFD contract doesn't need upgraded", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/donations/{name}": { "get": { "tags": [ "nfd" ], "summary": "donations nfd", "description": "Fetch donation activity for an NFD, totalling amounts sent 'to' designated donation accounts", "operationId": "nfd#donations", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Donation" }, "example": [ { "address": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "total": 1 } ] }, "example": [ { "address": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "total": 1 } ] } } }, "304": { "description": "Not Modified response." }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/getQuote/{name}": { "get": { "tags": [ "nfd" ], "summary": "getQuote nfd", "description": "get price / carry cost to mint or rewnew an NFD (if existing)", "operationId": "nfd#getQuote", "parameters": [ { "name": "buyer", "in": "query", "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.", "allowEmptyValue": true, "required": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetQuoteResponseBody" }, "example": { "carryCost": 1, "exists": false, "inAuction": false, "isExpired": false, "price": 1 } } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": {} } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/isValid/{appID}": { "get": { "tags": [ "nfd" ], "summary": "isValidNFD nfd", "description": "Determines if specified NFD Application ID is authentic", "operationId": "nfd#isValidNFD", "parameters": [ { "name": "appID", "in": "path", "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", "required": true, "schema": { "type": "integer", "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", "example": 1, "format": "int64" }, "example": 1 } ], "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IsValidNFDResponseBody" }, "example": { "isValid": false, "message": "abc123", "name": "abc123", "sigNameAddress": "abc123" } } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/isValidASA/{asaID}": { "get": { "tags": [ "nfd" ], "summary": "isValidASA nfd", "description": "Determines if specified NFD NFT ASA ID is authentic NFD", "operationId": "nfd#isValidASA", "parameters": [ { "name": "asaID", "in": "path", "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.", "required": true, "schema": { "type": "integer", "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.", "example": 1, "format": "int64" }, "example": 1 } ], "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IsValidASAResponseBody" }, "example": { "appID": 1, "isValid": false, "message": "abc123", "name": "abc123" } } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/links/addAddress/{name}": { "post": { "tags": [ "nfd" ], "summary": "linkAddress nfd", "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.", "operationId": "nfd#linkAddress", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkAddressRequestBody" }, "example": { "address": [ "333333333333333333333333333333333333333333333333333333333A", "333333333333333333333333333333333333333333333333333333333A", "333333333333333333333333333333333333333333333333333333333A" ], "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "202": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/links/removeAddress/{name}": { "post": { "tags": [ "nfd" ], "summary": "unlinkAddress nfd", "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.", "operationId": "nfd#unlinkAddress", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkAddressRequestBody" }, "example": { "address": [ "333333333333333333333333333333333333333333333333333333333A", "333333333333333333333333333333333333333333333333333333333A", "333333333333333333333333333333333333333333333333333333333A" ], "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "202": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/links/setPrimaryAddress/{name}": { "post": { "tags": [ "nfd" ], "summary": "setPrimaryAddress nfd", "description": "Set which of the currently verified addresses should be the first in the list (swapping positions as necessary)", "operationId": "nfd#setPrimaryAddress", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetPrimaryAddressRequestBody" }, "example": { "address": "333333333333333333333333333333333333333333333333333333333A", "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "202": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/links/setPrimaryNFD/{name}": { "post": { "tags": [ "nfd" ], "summary": "setPrimaryNFD nfd", "description": "Set the specified NFD as the primary NFD to return for the specified address via its reverse lookup", "operationId": "nfd#setPrimaryNFD", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetPrimaryAddressRequestBody" }, "example": { "address": "333333333333333333333333333333333333333333333333333333333A", "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "202": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/lookup": { "get": { "tags": [ "nfd" ], "summary": "Reverse Address lookup with results returned per address", "description": "Get the primary NFD for an address. Must be verified address, or if allowUnverified is set, it may match against an unverified address", "operationId": "nfd#getLookup", "parameters": [ { "name": "address", "in": "query", "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", "allowEmptyValue": true, "required": true, "schema": { "type": "array", "items": { "type": "string", "example": "abc123" }, "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", "example": [ "abc123", "abc123" ], "minItems": 1, "maxItems": 20 }, "example": [ "abc123", "abc123" ] }, { "name": "view", "in": "query", "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only [default]), thumbnail (tiny + avatar), brief, or full", "allowEmptyValue": true, "schema": { "type": "string", "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only [default]), thumbnail (tiny + avatar), brief, or full", "default": "tiny", "enum": [ "tiny", "thumbnail", "brief", "full" ] } }, { "name": "allowUnverified", "in": "query", "description": "Whether to allow unverified addresses to match (and only if its only match). Defaults to false", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "Whether to allow unverified addresses to match (and only if its only match). Defaults to false", "default": false, "example": false }, "example": false }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "type": "object", "example": { "abc123": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } }, "additionalProperties": { "$ref": "#/components/schemas/NfdRecordinaddress" } }, "example": { "abc123": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } } } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": {} } }, "404": { "description": "notFound: Not Found response.", "headers": { "goa-attribute-fault": { "description": "Is the error a server-side fault?", "schema": { "type": "boolean", "description": "Is the error a server-side fault?", "example": false }, "example": false }, "goa-attribute-id": { "description": "ID is a unique identifier for this particular occurrence of the problem.", "schema": { "type": "string", "description": "ID is a unique identifier for this particular occurrence of the problem.", "example": "123abc" }, "example": "123abc" }, "goa-attribute-message": { "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "schema": { "type": "string", "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "example": "parameter 'p' must be an integer" }, "example": "parameter 'p' must be an integer" }, "goa-attribute-name": { "description": "Name is the name of this class of errors.", "schema": { "type": "string", "description": "Name is the name of this class of errors.", "example": "bad_request" }, "example": "bad_request" }, "goa-attribute-temporary": { "description": "Is the error temporary?", "schema": { "type": "boolean", "description": "Is the error temporary?", "example": false }, "example": false }, "goa-attribute-timeout": { "description": "Is the error a timeout?", "schema": { "type": "boolean", "description": "Is the error a timeout?", "example": false }, "example": false } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/mint": { "post": { "tags": [ "nfd" ], "summary": "mint nfd", "description": "Mint a new NFD, with user buying specified NFD and paying for a prorated amount of time based on its yearly price.", "operationId": "nfd#mint", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MintRequestBody" }, "example": { "algoOffer": 2, "buyer": "333333333333333333333333333333333333333333333333333333333A", "name": "aa", "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "years": 2 } } } }, "responses": { "201": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "204": { "description": "alreadyExists: NFD already exists", "headers": { "goa-attribute-fault": { "description": "Is the error a server-side fault?", "schema": { "type": "boolean", "description": "Is the error a server-side fault?", "example": false }, "example": false }, "goa-attribute-id": { "description": "ID is a unique identifier for this particular occurrence of the problem.", "schema": { "type": "string", "description": "ID is a unique identifier for this particular occurrence of the problem.", "example": "123abc" }, "example": "123abc" }, "goa-attribute-message": { "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "schema": { "type": "string", "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "example": "parameter 'p' must be an integer" }, "example": "parameter 'p' must be an integer" }, "goa-attribute-name": { "description": "Name is the name of this class of errors.", "schema": { "type": "string", "description": "Name is the name of this class of errors.", "example": "bad_request" }, "example": "bad_request" }, "goa-attribute-temporary": { "description": "Is the error temporary?", "schema": { "type": "boolean", "description": "Is the error temporary?", "example": false }, "example": false }, "goa-attribute-timeout": { "description": "Is the error a timeout?", "schema": { "type": "boolean", "description": "Is the error a timeout?", "example": false }, "example": false } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": {} } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/nameSig/{name}": { "get": { "tags": [ "nfd" ], "summary": "getNameSig nfd", "description": "Returns NameSig address for an NFD name (usable for V1 only)", "operationId": "nfd#getNameSig", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "type": "string", "description": "Algorand Address of Smart-Sig NAME account", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/offer/{name}": { "post": { "tags": [ "nfd" ], "summary": "offer nfd", "description": "Offer up an NFD for sale - specifying price and optionally an address it is reserved for.", "operationId": "nfd#offer", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OfferRequestBody" }, "example": { "offer": 1, "payReceiver": false, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "413": { "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.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/postOfferToOwner/{name}": { "post": { "tags": [ "nfd" ], "summary": "postOfferToOwner nfd", "description": "Post an offer to buy to the owner of an NFD, offering up a particular amount with optional note for them to consider", "operationId": "nfd#postOfferToOwner", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PostOfferToOwnerRequestBody" }, "example": { "note": "aaa", "offer": 1000001, "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/purchase/{name}": { "post": { "tags": [ "nfd" ], "summary": "purchase nfd", "description": "Purchase an NFD for sale - specifying buyer (to sign transaction) and price", "operationId": "nfd#purchase", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PurchaseRequestBody" }, "example": { "buyer": "333333333333333333333333333333333333333333333333333333333A", "offer": 1 } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": {} } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/renew": { "post": { "tags": [ "nfd" ], "summary": "renew nfd", "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", "operationId": "nfd#renew", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RenewRequestBody" }, "example": { "algoOffer": 2, "buyer": "333333333333333333333333333333333333333333333333333333333A", "name": "aa", "years": 2 } } } }, "responses": { "201": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/rescindOffer/{name}": { "post": { "tags": [ "nfd" ], "summary": "rescindOffer nfd", "description": "Rescind offer of sale. Claiming NFD back for self, and removing it for sale.", "operationId": "nfd#rescindOffer", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RescindOfferRequestBody" }, "example": { "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/revAddressSig/{address}": { "get": { "tags": [ "nfd" ], "summary": "getRevAddressSig nfd", "description": "Returns RevAddress address for an NFD name (usable for V1 only)", "operationId": "nfd#getRevAddressSig", "parameters": [ { "name": "address", "in": "path", "required": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" } ], "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "type": "string", "description": "Algorand Address of Smart-Sig NAME account", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/segment/leaders": { "get": { "tags": [ "nfd" ], "summary": "segmentLeaders nfd", "description": "Get top segment roots", "operationId": "nfd#segmentLeaders", "parameters": [ { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NfdRecordCollection" }, "example": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ] } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/segment/lock/{name}": { "post": { "tags": [ "nfd" ], "summary": "Lock/Unlock an NFD segment - specifying open price if unlocking", "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", "operationId": "nfd#segmentLock", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SegmentLockRequestBody" }, "example": { "lock": false, "sellAmount": 1, "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "type": "string", "description": "Array of unsigned and signed grouped transactions to sign/submit", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "segmentPriceTooLow: segment price doesn't meet minimum required price", "headers": { "goa-attribute-fault": { "description": "Is the error a server-side fault?", "schema": { "type": "boolean", "description": "Is the error a server-side fault?", "example": false }, "example": false }, "goa-attribute-id": { "description": "ID is a unique identifier for this particular occurrence of the problem.", "schema": { "type": "string", "description": "ID is a unique identifier for this particular occurrence of the problem.", "example": "123abc" }, "example": "123abc" }, "goa-attribute-message": { "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "schema": { "type": "string", "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "example": "parameter 'p' must be an integer" }, "example": "parameter 'p' must be an integer" }, "goa-attribute-name": { "description": "Name is the name of this class of errors.", "schema": { "type": "string", "description": "Name is the name of this class of errors.", "example": "bad_request" }, "example": "bad_request" }, "goa-attribute-temporary": { "description": "Is the error temporary?", "schema": { "type": "boolean", "description": "Is the error temporary?", "example": false }, "example": false }, "goa-attribute-timeout": { "description": "Is the error a timeout?", "schema": { "type": "boolean", "description": "Is the error a timeout?", "example": false }, "example": false } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/suggest/{name}": { "get": { "tags": [ "nfd" ], "summary": "suggest nfd", "description": "Suggest NFDs to purchase", "operationId": "nfd#suggest", "parameters": [ { "name": "limit", "in": "query", "description": "Limit the number of results returned - max 40", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Limit the number of results returned - max 40", "default": 20, "example": 20, "format": "int64", "minimum": 1, "maximum": 40 }, "example": 20 }, { "name": "view", "in": "query", "description": "View of data to return, brief (default), or full", "allowEmptyValue": true, "schema": { "type": "string", "description": "View of data to return, brief (default), or full", "default": "brief", "example": "full", "enum": [ "brief", "full" ] }, "example": "full" }, { "name": "buyer", "in": "query", "description": "Expected buyer of name. Used for segment minting as additional check on availability of mint", "allowEmptyValue": true, "required": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "name", "in": "path", "description": "A name (even partial) to search for [receiving suggestions as well]", "required": true, "schema": { "type": "string", "description": "A name (even partial) to search for [receiving suggestions as well]", "example": "aaa", "pattern": "^([a-z0-9]{1,27}\\.){0,1}[a-z0-9]{1,27}(\\.algo)?$", "maxLength": 60 }, "example": "aaa" } ], "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NfdRecordCollection" }, "example": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ] } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "segmentNotSupported: parent segment isn't at contract version supporting segments", "headers": { "goa-attribute-fault": { "description": "Is the error a server-side fault?", "schema": { "type": "boolean", "description": "Is the error a server-side fault?", "example": false }, "example": false }, "goa-attribute-id": { "description": "ID is a unique identifier for this particular occurrence of the problem.", "schema": { "type": "string", "description": "ID is a unique identifier for this particular occurrence of the problem.", "example": "123abc" }, "example": "123abc" }, "goa-attribute-message": { "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "schema": { "type": "string", "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "example": "parameter 'p' must be an integer" }, "example": "parameter 'p' must be an integer" }, "goa-attribute-name": { "description": "Name is the name of this class of errors.", "schema": { "type": "string", "description": "Name is the name of this class of errors.", "example": "bad_request" }, "example": "bad_request" }, "goa-attribute-temporary": { "description": "Is the error temporary?", "schema": { "type": "boolean", "description": "Is the error temporary?", "example": false }, "example": false }, "goa-attribute-timeout": { "description": "Is the error a timeout?", "schema": { "type": "boolean", "description": "Is the error a timeout?", "example": false }, "example": false } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/totals": { "get": { "tags": [ "nfd" ], "summary": "totals nfd", "description": "Fetch NFD summary data - results subject to change in the future", "operationId": "nfd#totals", "parameters": [ { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TotalsOKResponseBody" }, "example": { "contractTotals": { "allVersions": { "abc123": 1 }, "majorVersions": { "abc123": 1 } }, "expiredTotal": 1, "forSale": 1, "match-check": "abc123", "mintedTotals": { "day": 1, "lifetime": 1, "month": 1, "week": 1 }, "segmentTotals": { "day": 1, "lifetime": 1, "month": 1, "week": 1 }, "soldTotals": { "day": 1, "lifetime": 1, "month": 1, "week": 1 }, "total": 1, "totalSegments": 1, "uniqueOwners": 1 } } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/twitter/leaders": { "get": { "tags": [ "nfd" ], "summary": "twitterLeaders nfd", "description": "Get top twitter influencers", "operationId": "nfd#twitterLeaders", "parameters": [ { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TwitterRecord" }, "example": [ { "followers": 1, "following": 1, "nfd": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] }, "timeChanged": "1970-01-01T00:00:01Z", "tweets": 1, "twitterHandle": "abc123" } ] }, "example": [ { "followers": 1, "following": 1, "nfd": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] }, "timeChanged": "1970-01-01T00:00:01Z", "tweets": 1, "twitterHandle": "abc123" } ] } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/update/{name}": { "patch": { "tags": [ "nfd" ], "summary": "updatePartial nfd", "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*)", "operationId": "nfd#updatePartial", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePartialRequestBody" }, "example": { "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "202": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "invalidFieldSet: You can only set user-defined properties, or clear verified properties", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "413": { "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.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } }, "put": { "tags": [ "nfd" ], "summary": "updateAll nfd", "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", "operationId": "nfd#updateAll", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePartialRequestBody" }, "example": { "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "202": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "invalidFieldSet: You can only set user-defined properties, or clear verified properties", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "413": { "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.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/updateImage/{name}/{sender}/{which}": { "post": { "tags": [ "nfd" ], "summary": "updateImage nfd", "description": "Update the avatar or banner image associated with an NFD by uploading new image content", "operationId": "nfd#updateImage", "parameters": [ { "name": "wantTxn", "in": "query", "description": "Whether to return transactions to sign to update the specified image attribute within the NFD", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "Whether to return transactions to sign to update the specified image attribute within the NFD", "default": true, "example": false }, "example": false }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" }, { "name": "sender", "in": "path", "description": "Address that will be signing the returned transactions. Should be owner of NFD", "required": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "which", "in": "path", "description": "Which image to update, avatar or banner", "required": true, "schema": { "type": "string", "description": "Which image to update, avatar or banner", "example": "banner", "enum": [ "avatar", "banner" ] }, "example": "banner" } ], "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "413": { "description": "imageTooLarge: Images must be <10 Megabytes in size", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/v2/address": { "get": { "tags": [ "nfd" ], "summary": "Reverse Address lookup with results returned per address", "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.", "operationId": "nfd#getNFDsForAddressesV2", "parameters": [ { "name": "address", "in": "query", "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", "allowEmptyValue": true, "required": true, "schema": { "type": "array", "items": { "type": "string", "example": "abc123" }, "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", "example": [ "abc123", "abc123" ], "minItems": 1, "maxItems": 20 }, "example": [ "abc123", "abc123" ] }, { "name": "limit", "in": "query", "description": "Limit the total number of NFDs returned - automatically changed to at least be 1 per address", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Limit the total number of NFDs returned - automatically changed to at least be 1 per address", "default": 20, "format": "int64", "minimum": 1, "maximum": 200 } }, { "name": "view", "in": "query", "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only [default]), thumbnail (tiny + avatar), brief, or full", "allowEmptyValue": true, "schema": { "type": "string", "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only [default]), thumbnail (tiny + avatar), brief, or full", "default": "tiny", "enum": [ "tiny", "thumbnail", "brief", "full" ] } }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "type": "object", "example": { "abc123": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ] }, "additionalProperties": { "$ref": "#/components/schemas/NfdRecordinaddressCollection" } }, "example": { "abc123": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ] } } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": {} } }, "404": { "description": "notFound: Not Found response.", "headers": { "goa-attribute-fault": { "description": "Is the error a server-side fault?", "schema": { "type": "boolean", "description": "Is the error a server-side fault?", "example": false }, "example": false }, "goa-attribute-id": { "description": "ID is a unique identifier for this particular occurrence of the problem.", "schema": { "type": "string", "description": "ID is a unique identifier for this particular occurrence of the problem.", "example": "123abc" }, "example": "123abc" }, "goa-attribute-message": { "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "schema": { "type": "string", "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "example": "parameter 'p' must be an integer" }, "example": "parameter 'p' must be an integer" }, "goa-attribute-name": { "description": "Name is the name of this class of errors.", "schema": { "type": "string", "description": "Name is the name of this class of errors.", "example": "bad_request" }, "example": "bad_request" }, "goa-attribute-temporary": { "description": "Is the error temporary?", "schema": { "type": "boolean", "description": "Is the error temporary?", "example": false }, "example": false }, "goa-attribute-timeout": { "description": "Is the error a timeout?", "schema": { "type": "boolean", "description": "Is the error a timeout?", "example": false }, "example": false } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/v2/donations/leaders/{name}": { "get": { "tags": [ "nfd" ], "summary": "donationLeadersV2 nfd", "description": "Get top donors to a specific NFD Donation target", "operationId": "nfd#donationLeadersV2", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Donation" }, "example": [ { "address": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "total": 1 } ] }, "example": [ { "address": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "total": 1 } ] } } }, "304": { "description": "Not Modified response." }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/v2/donations/list": { "get": { "tags": [ "nfd" ], "summary": "donationListV2 nfd", "description": "Fetch list of tracked Donation NFD 'targets'.", "operationId": "nfd#donationListV2", "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NfdRecordResponseFullCollection" }, "example": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ], "category": "premium", "currentAsOfBlock": 1, "depositAccount": "333333333333333333333333333333333333333333333333333333333A", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "333333333333333333333333333333333333333333333333333333333A", "owner": "333333333333333333333333333333333333333333333333333333333A", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "saleType": "buyItNow", "sellAmount": 1, "seller": "333333333333333333333333333333333333333333333333333333333A", "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A", "state": "minting", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ] } ] } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/v2/search": { "get": { "tags": [ "nfd" ], "summary": "Search NFDs via various filters", "description": "Search NFDs via various filters", "operationId": "nfd#searchV2", "parameters": [ { "name": "name", "in": "query", "description": "name or partial match of NFD name to filter on", "allowEmptyValue": true, "schema": { "type": "string", "description": "name or partial match of NFD name to filter on" } }, { "name": "category", "in": "query", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "description": "Category of NFD", "example": "premium", "enum": [ "curated", "premium", "common" ] } } }, { "name": "saleType", "in": "query", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "description": "Sale type of NFD", "example": "buyItNow", "enum": [ "auction", "buyItNow" ] } } }, { "name": "state", "in": "query", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "description": "State of NFD", "example": "forSale", "enum": [ "reserved", "forSale", "owned", "expired" ] } } }, { "name": "parentAppID", "in": "query", "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "The parent NFD Application ID to find. Used for fetching segments of an NFD", "example": 1000000, "format": "int64" }, "example": 1000000 }, { "name": "length", "in": "query", "description": "Length of NFD", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "example": "2_letters", "enum": [ "1_letters", "2_letters", "3_letters", "4_letters", "5_letters", "6_letters", "7_letters", "8_letters", "9_letters", "10+_letters" ] }, "description": "Length of NFD" } }, { "name": "traits", "in": "query", "description": "Traits of NFD", "allowEmptyValue": true, "schema": { "type": "array", "items": { "type": "string", "example": "pristine", "enum": [ "emoji", "pristine", "segment" ] }, "description": "Traits of NFD" } }, { "name": "owner", "in": "query", "description": "An Algorand account address to find all NFDs owned by that address", "allowEmptyValue": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "reservedFor", "in": "query", "description": "An Algorand account address to find all NFDs reserved for that address", "allowEmptyValue": true, "schema": { "type": "string", "description": "An Algorand Account address", "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "example": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" }, { "name": "excludeUserReserved", "in": "query", "description": "Should NFDs reserved for an account (transfers for example or unclaimed winning auctions) be excluded", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "Should NFDs reserved for an account (transfers for example or unclaimed winning auctions) be excluded" } }, { "name": "prefix", "in": "query", "description": "The start of an NFD name, fetching multiple NFDs that have that prefix", "allowEmptyValue": true, "schema": { "type": "string", "description": "The start of an NFD name, fetching multiple NFDs that have that prefix", "minLength": 1, "maxLength": 32 } }, { "name": "substring", "in": "query", "description": "Part of an NFD name, fetching multiple NFDs that have that substring (minimum 3 characters)", "allowEmptyValue": true, "schema": { "type": "string", "description": "Part of an NFD name, fetching multiple NFDs that have that substring (minimum 3 characters)", "minLength": 3, "maxLength": 32 } }, { "name": "vproperty", "in": "query", "description": "Verified property name to search on - specify value with vvalue", "allowEmptyValue": true, "schema": { "type": "string", "description": "Verified property name to search on - specify value with vvalue", "example": "discord", "enum": [ "blueskydid", "discord", "telegram", "twitter", "github", "email", "domain", "nostrpubkey" ] }, "example": "discord" }, { "name": "vvalue", "in": "query", "description": "Value to find in the vproperty field specified with the vproperty parameter", "allowEmptyValue": true, "schema": { "type": "string", "description": "Value to find in the vproperty field specified with the vproperty parameter", "example": "abc123" }, "example": "abc123" }, { "name": "segmentLocked", "in": "query", "description": "Whether to explicitly filter on segments being locked or unlocked. Typically only valuable when filtering on unlocked", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "Whether to explicitly filter on segments being locked or unlocked. Typically only valuable when filtering on unlocked", "example": false }, "example": false }, { "name": "segmentRoot", "in": "query", "description": "Whether to explicitly filter on NFD roots or segments. True to only see roots, False to only see segments.", "allowEmptyValue": true, "schema": { "type": "boolean", "description": "Whether to explicitly filter on NFD roots or segments. True to only see roots, False to only see segments.", "example": false }, "example": false }, { "name": "minPrice", "in": "query", "description": "Minimum price of NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Minimum price of NFD", "format": "int64" } }, { "name": "maxPrice", "in": "query", "description": "Maximum price of NFD", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Maximum price of NFD", "format": "int64" } }, { "name": "minPriceUsd", "in": "query", "description": "Minimum price of NFD Segment in USD (cents)", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Minimum price of NFD Segment in USD (cents)", "format": "int64" } }, { "name": "maxPriceUsd", "in": "query", "description": "Maximum price of NFD Segment in USD (cents)", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Maximum price of NFD Segment in USD (cents)", "format": "int64" } }, { "name": "changedAfter", "in": "query", "description": "Fetch NFDs that changed after the specified timestamp", "allowEmptyValue": true, "schema": { "type": "string", "description": "Fetch NFDs that changed after the specified timestamp", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "example": "1970-01-01T00:00:01Z" }, { "name": "expiresBefore", "in": "query", "description": "Return only NFDs with an expiration time at or before the specified timestamp", "allowEmptyValue": true, "schema": { "type": "string", "description": "Return only NFDs with an expiration time at or before the specified timestamp", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "example": "1970-01-01T00:00:01Z" }, { "name": "limit", "in": "query", "description": "Limit the number of results returned - max 200", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Limit the number of results returned - max 200", "default": 50, "format": "int64", "minimum": 1, "maximum": 200 } }, { "name": "offset", "in": "query", "description": "Starting document in large list. Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200", "allowEmptyValue": true, "schema": { "type": "integer", "description": "Starting document in large list. Fetch 1-100 [limit 100], pass offset 100 to fetch 100-200", "default": 0, "format": "int64", "minimum": 0 } }, { "name": "sort", "in": "query", "description": "What to sort on", "allowEmptyValue": true, "schema": { "type": "string", "description": "What to sort on", "default": "createdDesc", "enum": [ "createdDesc", "timeChangedDesc", "soldDesc", "priceAsc", "priceDesc", "highestSaleDesc", "saleTypeAsc", "nameAsc", "expiresAsc", "expiresDesc" ] } }, { "name": "view", "in": "query", "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only), brief (default), or full", "allowEmptyValue": true, "schema": { "type": "string", "description": "View of data to return, tiny (name, owner, caAlgo, unverifiedCaAlgo only), brief (default), or full", "default": "brief", "enum": [ "tiny", "thumbnail", "brief", "full" ] } }, { "name": "if-none-match", "in": "header", "description": "etag", "allowEmptyValue": true, "schema": { "type": "string", "description": "etag" } } ], "responses": { "200": { "description": "OK response.", "headers": { "ETag": { "description": "ETag", "schema": { "type": "string", "description": "ETag", "example": "abc123" }, "example": "abc123" }, "cache-control": { "description": "Cache-Control header", "schema": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "example": "abc123" } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NfdV2SearchRecords" }, "example": { "match-check": "abc123", "nfds": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ], "total": 1 } } } }, "304": { "description": "ETag not changed" }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/v3/contract/upgrade/{name}": { "post": { "tags": [ "nfd" ], "summary": "ContractUpgradeV3 nfd", "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", "operationId": "nfd#ContractUpgradeV3", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RescindOfferRequestBody" }, "example": { "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeNotNeeded: The NFD contract doesn't need upgraded", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/vault/lock/{name}": { "post": { "tags": [ "nfd" ], "summary": "vaultOptInLock nfd", "description": "Lock/Unlock ability for the specified NFD Vault to auto opt-in to assets, allowing airdrops from other accounts", "operationId": "nfd#vaultOptInLock", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContractLockRequestBody" }, "example": { "lock": false, "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/vault/sendFrom/{name}": { "post": { "tags": [ "nfd" ], "summary": "sendFromVault nfd", "description": "Send an amount of an asset [0 == ALGO] to another account FROM the NFD Vault. Only owner of NFD can send.", "operationId": "nfd#sendFromVault", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendFromVaultRequestBody" }, "example": { "amount": 1, "amountStr": "abc123", "assets": [ 1, 1 ], "note": "aaa", "receiver": "abc123", "receiverCanSign": false, "receiverType": "nfdVault", "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/vault/sendTo/{name}": { "post": { "tags": [ "nfd" ], "summary": "sendToVault nfd", "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", "operationId": "nfd#sendToVault", "parameters": [ { "name": "name", "in": "path", "required": true, "schema": { "type": "string", "description": "Name of a NFD, alphanumeric only or emojis/alphanumeric", "example": "silvio.algo", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "example": "silvio.algo" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SendToVaultRequestBody" }, "example": { "amount": 1, "amountStr": "abc123", "assets": [ 1, 1 ], "note": "aaa", "optInOnly": false, "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "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.", "content": { "application/json": { "schema": { "type": "string", "example": "abc123" }, "example": "abc123" } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "upgradeRequired: The NFD contract needs upgraded before this operation will be allowed", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "413": { "description": "tooManyTransactions: The number of transactions allowed in a single transaction group (16) have been exceeded.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/verify/confirm/{id}": { "post": { "tags": [ "nfd" ], "summary": "verifyConfirm nfd", "description": "Verify a particular piece of data on, or off-chain. Each verification differs in its requirements", "operationId": "nfd#verifyConfirm", "parameters": [ { "name": "id", "in": "path", "description": "ID of challenge, must be used in subsequent confirmation call", "required": true, "schema": { "type": "string", "description": "ID of challenge, must be used in subsequent confirmation call", "example": "abc123" }, "example": "abc123" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyConfirmRequestBody" }, "example": { "challenge": "abc123" } } } }, "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyConfirmResponseBody" }, "example": { "confirmed": false } } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "403": { "description": "noNFDNSubscription: No active subscription to NFDN", "headers": { "goa-attribute-fault": { "description": "Is the error a server-side fault?", "schema": { "type": "boolean", "description": "Is the error a server-side fault?", "example": false }, "example": false }, "goa-attribute-id": { "description": "ID is a unique identifier for this particular occurrence of the problem.", "schema": { "type": "string", "description": "ID is a unique identifier for this particular occurrence of the problem.", "example": "123abc" }, "example": "123abc" }, "goa-attribute-message": { "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "schema": { "type": "string", "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "example": "parameter 'p' must be an integer" }, "example": "parameter 'p' must be an integer" }, "goa-attribute-name": { "description": "Name is the name of this class of errors.", "schema": { "type": "string", "description": "Name is the name of this class of errors.", "example": "bad_request" }, "example": "bad_request" }, "goa-attribute-temporary": { "description": "Is the error temporary?", "schema": { "type": "boolean", "description": "Is the error temporary?", "example": false }, "example": false }, "goa-attribute-timeout": { "description": "Is the error a timeout?", "schema": { "type": "boolean", "description": "Is the error a timeout?", "example": false }, "example": false } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } }, "/nfd/verify/request": { "post": { "tags": [ "nfd" ], "summary": "verifyRequest nfd", "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", "operationId": "nfd#verifyRequest", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyRequestRequestBody" }, "example": { "fieldToVerify": "twitter", "name": "aa", "sender": "333333333333333333333333333333333333333333333333333333333A" } } } }, "responses": { "200": { "description": "OK response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyRequestResponseBody" }, "example": { "challenge": "abc123", "id": "abc123", "validated": false } } } }, "400": { "description": "invalidAddress: invalidAddress is returned for an Algorand address that doesn't appear to be valid", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "404": { "description": "notFound: Not Found response.", "content": { "application/vnd.goa.error": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "429": { "description": "rateLimited: Too Many Requests response.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RateLimited" }, "example": { "limit": 5, "secsRemaining": 50 } } } } } } } }, "components": { "schemas": { "BlueskyRecord": { "type": "object", "properties": { "blueskydid": { "type": "string", "example": "abc123" }, "displayName": { "type": "string", "example": "abc123" }, "followers": { "type": "integer", "example": 1, "format": "int64" }, "following": { "type": "integer", "example": 1, "format": "int64" }, "handle": { "type": "string", "example": "abc123" }, "nfd": { "$ref": "#/components/schemas/NFD" }, "posts": { "type": "integer", "example": 1, "format": "int64" } }, "description": "BlueskyRecord contains information about an NFD w/ Verified Blueesky account and basic info on its metrics", "example": { "blueskydid": "abc123", "displayName": "abc123", "followers": 1, "following": 1, "handle": "abc123", "nfd": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] }, "posts": 1 }, "required": [ "nfd", "blueskydid", "displayName", "handle", "followers", "following", "posts" ] }, "ConsensusRecord": { "type": "object", "properties": { "account": { "type": "string", "example": "abc123" }, "lastPropBlock": { "type": "integer", "example": 1, "format": "int64" }, "lastPropTime": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "lastVoteBlock": { "type": "integer", "example": 1, "format": "int64" }, "lastVoteTime": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "linkType": { "type": "string", "example": "abc123" }, "ownerAccount": { "type": "string", "example": "abc123" }, "pctOfOnline": { "type": "number", "example": 1, "format": "double" }, "proposals": { "type": "integer", "example": 1, "format": "int64" }, "rank": { "type": "integer", "example": 1, "format": "int64" }, "votes": { "type": "integer", "example": 1, "format": "int64" } }, "description": "ConsensusRecord contains information about an account that participated in consensus", "example": { "account": "abc123", "lastPropBlock": 1, "lastPropTime": "1970-01-01T00:00:01Z", "lastVoteBlock": 1, "lastVoteTime": "1970-01-01T00:00:01Z", "linkType": "abc123", "ownerAccount": "abc123", "pctOfOnline": 1, "proposals": 1, "rank": 1, "votes": 1 }, "required": [ "account", "ownerAccount", "pctOfOnline" ] }, "ContractLockRequestBody": { "type": "object", "properties": { "lock": { "type": "boolean", "description": "Whether to lock (true), or unlock (false)", "example": false }, "sender": { "type": "string", "description": "Sender of transaction - needs to be owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "lock": false, "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "lock" ] }, "Donation": { "type": "object", "properties": { "address": { "type": "string", "description": "Sender or Receiver Algorand address depending on request", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "total": { "type": "integer", "description": "Total donation in microAlgos", "example": 1, "format": "int64" } }, "description": "Donation contains basic information about donation totals to specific addresses from accounts related to an NFD", "example": { "address": "333333333333333333333333333333333333333333333333333333333A", "total": 1 }, "required": [ "address", "total" ] }, "Error": { "type": "object", "properties": { "fault": { "type": "boolean", "description": "Is the error a server-side fault?", "example": false }, "id": { "type": "string", "description": "ID is a unique identifier for this particular occurrence of the problem.", "example": "123abc" }, "message": { "type": "string", "description": "Message is a human-readable explanation specific to this occurrence of the problem.", "example": "parameter 'p' must be an integer" }, "name": { "type": "string", "description": "Name is the name of this class of errors.", "example": "bad_request" }, "temporary": { "type": "boolean", "description": "Is the error temporary?", "example": false }, "timeout": { "type": "boolean", "description": "Is the error a timeout?", "example": false } }, "example": { "fault": false, "id": "123abc", "message": "parameter 'p' must be an integer", "name": "bad_request", "temporary": false, "timeout": false }, "required": [ "name", "id", "message", "temporary", "timeout", "fault" ] }, "GetQuoteResponseBody": { "type": "object", "properties": { "carryCost": { "type": "integer", "description": "extra needed to cover MBR (if necessary) - price already includes this amount", "example": 1, "format": "int64" }, "exists": { "type": "boolean", "description": "whether the nfd exists. if so, cost is renewal, otherwise mint (including carry)", "example": false }, "inAuction": { "type": "boolean", "description": "if nfd is in auction pricing for given buyer", "example": false }, "isExpired": { "type": "boolean", "description": "whether the (existing) nfd is expired", "example": false }, "price": { "type": "integer", "description": "price in microAlgo for 1 year w/ carry cost (if needs minted) added in. subtract carry cost for per-year cost", "example": 1, "format": "int64" } }, "example": { "carryCost": 1, "exists": false, "inAuction": false, "isExpired": false, "price": 1 }, "required": [ "price", "carryCost", "exists", "isExpired", "inAuction" ] }, "IsValidASAResponseBody": { "type": "object", "properties": { "appID": { "type": "integer", "example": 1, "format": "int64" }, "isValid": { "type": "boolean", "example": false }, "message": { "type": "string", "example": "abc123" }, "name": { "type": "string", "example": "abc123" } }, "description": "Whether NFD NFT ASA ID is for authentic NFD", "example": { "appID": 1, "isValid": false, "message": "abc123", "name": "abc123" }, "required": [ "isValid", "name", "appID", "message" ] }, "IsValidNFDResponseBody": { "type": "object", "properties": { "isValid": { "type": "boolean", "example": false }, "message": { "type": "string", "example": "abc123" }, "name": { "type": "string", "example": "abc123" }, "sigNameAddress": { "type": "string", "example": "abc123" } }, "description": "Whether NFD App ID is for authentic NFD", "example": { "isValid": false, "message": "abc123", "name": "abc123", "sigNameAddress": "abc123" }, "required": [ "isValid", "name", "message" ] }, "LinkAddressRequestBody": { "type": "object", "properties": { "address": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Address(es) to link to the NFD (must be able to sign for each)", "example": [ "333333333333333333333333333333333333333333333333333333333A", "333333333333333333333333333333333333333333333333333333333A", "333333333333333333333333333333333333333333333333333333333A" ], "maxItems": 7 }, "sender": { "type": "string", "description": "Address that will be signing the returned transactions. Should be owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "address": [ "333333333333333333333333333333333333333333333333333333333A", "333333333333333333333333333333333333333333333333333333333A", "333333333333333333333333333333333333333333333333333333333A" ], "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "address" ] }, "MintRequestBody": { "type": "object", "properties": { "algoOffer": { "type": "integer", "description": "Offer price in ALGO. Expiration time set prorated based on amount paid vs fixed per-year cost when years argument is used", "example": 2, "format": "int64", "minimum": 1, "maximum": 100000000 }, "buyer": { "type": "string", "description": "Address paying/signing for minting transaction", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "name": { "type": "string", "example": "aa", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "reservedFor": { "type": "string", "description": "Address NFD is being minted for if not buyer", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "years": { "type": "integer", "description": "Number of years until expiration, 1 yr minimum, 20 max, extending renewal date - sets price in multiples of 1 year", "example": 2, "format": "int64", "minimum": 1, "maximum": 20 } }, "example": { "algoOffer": 2, "buyer": "333333333333333333333333333333333333333333333333333333333A", "name": "aa", "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "years": 2 }, "required": [ "name", "buyer" ] }, "NFD": { "type": "object", "properties": { "appID": { "type": "integer", "description": "NFD Application ID", "example": 1000000, "format": "int64" }, "asaID": { "type": "integer", "description": "NFD ASA ID", "example": 1, "format": "int64" }, "avatarOutdated": { "type": "boolean", "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", "example": false }, "caAlgo": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Verified Algorand addresses for this NFD", "example": [ "333333333333333333333333333333333333333333333333333333333A" ] }, "cache-control": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "category": { "type": "string", "example": "premium", "enum": [ "curated", "premium", "common" ] }, "currentAsOfBlock": { "type": "integer", "description": "Round this data was last fetched from", "example": 1, "format": "int64" }, "depositAccount": { "type": "string", "description": "account wallets should send funds to - precedence is: caAlgo[0], unverifiedCaAlgo[0], owner", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "etag": { "type": "string", "description": "ETag", "example": "abc123" }, "expired": { "type": "boolean", "example": false }, "match-check": { "type": "string", "description": "Not returned, used in tagging for response to indicate if-none-match etag matched", "example": "abc123" }, "metaTags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "description": "Tags set by the system for tracking/analytics", "example": [ "abc123" ] }, "name": { "type": "string", "example": "abc123" }, "nfdAccount": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "owner": { "type": "string", "description": "Owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "parentAppID": { "type": "integer", "description": "NFD Application ID of Parent if this is a segment", "example": 1000000, "format": "int64" }, "properties": { "$ref": "#/components/schemas/NFDProperties" }, "reservedFor": { "type": "string", "description": "Reserved owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "saleType": { "type": "string", "example": "buyItNow", "enum": [ "auction", "buyItNow" ] }, "sellAmount": { "type": "integer", "description": "amount NFD is being sold for (microAlgos)", "example": 1, "format": "int64" }, "seller": { "type": "string", "description": "RecipientUid of NFD sales", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "sigNameAddress": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "state": { "type": "string", "example": "minting", "enum": [ "available", "minting", "reserved", "forSale", "owned", "expired" ] }, "tags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "description": "Tags assigned to this NFD", "example": [ "abc123" ] }, "timeChanged": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timeCreated": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timeExpires": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timePurchased": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "unverifiedCa": { "type": "object", "description": "Unverified (non-algo) Crypto addresses for this NFD", "example": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "additionalProperties": { "type": "array", "items": { "type": "string", "example": "abc123" }, "example": [ "abc123" ] } }, "unverifiedCaAlgo": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Unverified Algorand addresses for this NFD", "example": [ "333333333333333333333333333333333333333333333333333333333A" ] } }, "description": "NFD contains all known information about an NFD record", "example": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ], "cache-control": "abc123", "category": "premium", "currentAsOfBlock": 1, "depositAccount": "333333333333333333333333333333333333333333333333333333333A", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "333333333333333333333333333333333333333333333333333333333A", "owner": "333333333333333333333333333333333333333333333333333333333A", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "saleType": "buyItNow", "sellAmount": 1, "seller": "333333333333333333333333333333333333333333333333333333333A", "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A", "state": "minting", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ] }, "required": [ "name" ] }, "NFDActivity": { "type": "object", "properties": { "block": { "type": "integer", "description": "Algorand Block number of change", "example": 1, "format": "int64" }, "cache-control": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "changes": { "type": "object", "description": "Changed properties", "example": { "abc123": "abc123" }, "additionalProperties": { "type": "string", "example": "abc123" } }, "etag": { "type": "string", "description": "ETag", "example": "abc123" }, "match-check": { "type": "string", "description": "Not returned, used in tagging for response to indicate if-none-match etag matched", "example": "abc123" }, "name": { "type": "string", "description": "NFD Name", "example": "abc123" }, "timeChanged": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" } }, "description": "NFDActivity contains the property changes made in a particular NFD contract update call", "example": { "block": 1, "cache-control": "abc123", "changes": { "abc123": "abc123" }, "etag": "abc123", "match-check": "abc123", "name": "abc123", "timeChanged": "1970-01-01T00:00:01Z" }, "required": [ "name", "block", "timeChanged" ] }, "NFDAnalyticEvent": { "type": "object", "properties": { "block": { "type": "integer", "example": 1, "format": "int64" }, "buyer": { "type": "string", "example": "abc123" }, "carryCost": { "type": "integer", "description": "extra amount paid to cover minimum balance requirements - add to price to determine total amount paid", "example": 1, "format": "int64" }, "category": { "type": "string", "example": "premium", "enum": [ "curated", "premium", "common" ] }, "currentOwner": { "type": "string", "description": "NFD current owner - if set via includeOwner property", "example": "abc123" }, "event": { "type": "string", "example": "renewed", "enum": [ "minted", "renewed", "offeredForSale", "canceledSale", "escrowedOffer", "sold", "postedOffer" ] }, "groupID": { "type": "string", "example": "abc123" }, "metaTags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "example": [ "abc123" ] }, "name": { "type": "string", "description": "NFD Name", "example": "abc123" }, "newExpTime": { "type": "string", "description": "new expiration time set from minting or renewing", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "note": { "type": "string", "example": "abc123" }, "oneYearRenewalPrice": { "type": "integer", "description": "price for one year mint/renew", "example": 1, "format": "int64" }, "saleType": { "type": "string", "example": "buyItNow", "enum": [ "auction", "buyItNow" ] }, "seller": { "type": "string", "example": "abc123" } }, "description": "NFDAnalyticEvent contains a price history record for a point in time of an NFD", "example": { "block": 1, "buyer": "abc123", "carryCost": 1, "category": "premium", "currentOwner": "abc123", "event": "renewed", "groupID": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "newExpTime": "1970-01-01T00:00:01Z", "note": "abc123", "oneYearRenewalPrice": 1, "saleType": "buyItNow", "seller": "abc123" } }, "NFDAnalyticRecord": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/NFDAnalyticEvent" }, "price": { "type": "integer", "description": "price of event in microAlgos", "example": 1, "format": "int64" }, "priceUsd": { "type": "number", "description": "price of event in USD", "example": 1, "format": "double" }, "timestamp": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" } }, "description": "NFDAnalyticRecord is an NFD Analytics record in a time-series collection, with timestamp, price, and event data for that point in time.", "example": { "data": { "block": 1, "buyer": "abc123", "carryCost": 1, "category": "premium", "currentOwner": "abc123", "event": "renewed", "groupID": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "newExpTime": "1970-01-01T00:00:01Z", "note": "abc123", "oneYearRenewalPrice": 1, "saleType": "buyItNow", "seller": "abc123" }, "price": 1, "priceUsd": 1, "timestamp": "1970-01-01T00:00:01Z" } }, "NFDAnalyticRecords": { "type": "object", "properties": { "match-check": { "type": "string", "description": "Not returned, used in tagging for response to indicate if-none-match etag matched", "example": "abc123" }, "results": { "type": "array", "items": { "$ref": "#/components/schemas/NFDAnalyticRecord" }, "example": [ { "data": { "block": 1, "buyer": "abc123", "carryCost": 1, "category": "premium", "currentOwner": "abc123", "event": "renewed", "groupID": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "newExpTime": "1970-01-01T00:00:01Z", "note": "abc123", "oneYearRenewalPrice": 1, "saleType": "buyItNow", "seller": "abc123" }, "price": 1, "priceUsd": 1, "timestamp": "1970-01-01T00:00:01Z" } ] }, "total": { "type": "integer", "description": "total number of results, with data containing paged amount based on offset/limit", "example": 1, "format": "int64" } }, "example": { "match-check": "abc123", "results": [ { "data": { "block": 1, "buyer": "abc123", "carryCost": 1, "category": "premium", "currentOwner": "abc123", "event": "renewed", "groupID": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "newExpTime": "1970-01-01T00:00:01Z", "note": "abc123", "oneYearRenewalPrice": 1, "saleType": "buyItNow", "seller": "abc123" }, "price": 1, "priceUsd": 1, "timestamp": "1970-01-01T00:00:01Z" } ], "total": 1 }, "required": [ "total", "results" ] }, "NFDProperties": { "type": "object", "properties": { "internal": { "type": "object", "description": "Internal properties", "example": { "abc123": "abc123" }, "additionalProperties": { "type": "string", "example": "abc123" } }, "userDefined": { "type": "object", "description": "User properties", "example": { "ca:b": "abc123" }, "additionalProperties": { "type": "string", "example": "abc123" } }, "verified": { "type": "object", "description": "Verified properties", "example": { "caAlgo": "abc123" }, "additionalProperties": { "type": "string", "example": "abc123" } } }, "description": "NFDProperties contains the expanded metadata stored within an NFD contracts' global-state", "example": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } } }, "NfdRecord": { "type": "object", "properties": { "appID": { "type": "integer", "description": "NFD Application ID", "example": 1000000, "format": "int64" }, "asaID": { "type": "integer", "description": "NFD ASA ID", "example": 1, "format": "int64" }, "avatarOutdated": { "type": "boolean", "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", "example": false }, "caAlgo": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Verified Algorand addresses for this NFD", "example": [ "333333333333333333333333333333333333333333333333333333333A" ] }, "category": { "type": "string", "example": "premium", "enum": [ "curated", "premium", "common" ] }, "currentAsOfBlock": { "type": "integer", "description": "Round this data was last fetched from", "example": 1, "format": "int64" }, "depositAccount": { "type": "string", "description": "account wallets should send funds to - precedence is: caAlgo[0], unverifiedCaAlgo[0], owner", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "expired": { "type": "boolean", "example": false }, "match-check": { "type": "string", "description": "Not returned, used in tagging for response to indicate if-none-match etag matched", "example": "abc123" }, "metaTags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "description": "Tags set by the system for tracking/analytics", "example": [ "abc123" ] }, "name": { "type": "string", "example": "abc123" }, "nfdAccount": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "owner": { "type": "string", "description": "Owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "parentAppID": { "type": "integer", "description": "NFD Application ID of Parent if this is a segment", "example": 1000000, "format": "int64" }, "properties": { "$ref": "#/components/schemas/NFDProperties" }, "reservedFor": { "type": "string", "description": "Reserved owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "saleType": { "type": "string", "example": "buyItNow", "enum": [ "auction", "buyItNow" ] }, "sellAmount": { "type": "integer", "description": "amount NFD is being sold for (microAlgos)", "example": 1, "format": "int64" }, "seller": { "type": "string", "description": "RecipientUid of NFD sales", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "sigNameAddress": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "state": { "type": "string", "example": "minting", "enum": [ "available", "minting", "reserved", "forSale", "owned", "expired" ] }, "tags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "description": "Tags assigned to this NFD", "example": [ "abc123" ] }, "timeChanged": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timeCreated": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timeExpires": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timePurchased": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "unverifiedCa": { "type": "object", "description": "Unverified (non-algo) Crypto addresses for this NFD", "example": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "additionalProperties": { "type": "array", "items": { "type": "string", "example": "abc123" }, "example": [ "abc123" ] } }, "unverifiedCaAlgo": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Unverified Algorand addresses for this NFD", "example": [ "333333333333333333333333333333333333333333333333333333333A" ] } }, "example": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ], "category": "premium", "currentAsOfBlock": 1, "depositAccount": "333333333333333333333333333333333333333333333333333333333A", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "333333333333333333333333333333333333333333333333333333333A", "owner": "333333333333333333333333333333333333333333333333333333333A", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "saleType": "buyItNow", "sellAmount": 1, "seller": "333333333333333333333333333333333333333333333333333333333A", "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A", "state": "minting", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ] }, "required": [ "name" ] }, "NfdRecordCollection": { "type": "array", "items": { "$ref": "#/components/schemas/NfdRecord" }, "example": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ] }, "NfdRecordResponseFull": { "type": "object", "properties": { "appID": { "type": "integer", "description": "NFD Application ID", "example": 1000000, "format": "int64" }, "asaID": { "type": "integer", "description": "NFD ASA ID", "example": 1, "format": "int64" }, "avatarOutdated": { "type": "boolean", "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", "example": false }, "caAlgo": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Verified Algorand addresses for this NFD", "example": [ "333333333333333333333333333333333333333333333333333333333A" ] }, "cache-control": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "category": { "type": "string", "example": "premium", "enum": [ "curated", "premium", "common" ] }, "currentAsOfBlock": { "type": "integer", "description": "Round this data was last fetched from", "example": 1, "format": "int64" }, "depositAccount": { "type": "string", "description": "account wallets should send funds to - precedence is: caAlgo[0], unverifiedCaAlgo[0], owner", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "etag": { "type": "string", "description": "ETag", "example": "abc123" }, "expired": { "type": "boolean", "example": false }, "match-check": { "type": "string", "description": "Not returned, used in tagging for response to indicate if-none-match etag matched", "example": "abc123" }, "metaTags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "description": "Tags set by the system for tracking/analytics", "example": [ "abc123" ] }, "name": { "type": "string", "example": "abc123" }, "nfdAccount": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "owner": { "type": "string", "description": "Owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "parentAppID": { "type": "integer", "description": "NFD Application ID of Parent if this is a segment", "example": 1000000, "format": "int64" }, "properties": { "$ref": "#/components/schemas/NFDProperties" }, "reservedFor": { "type": "string", "description": "Reserved owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "saleType": { "type": "string", "example": "buyItNow", "enum": [ "auction", "buyItNow" ] }, "sellAmount": { "type": "integer", "description": "amount NFD is being sold for (microAlgos)", "example": 1, "format": "int64" }, "seller": { "type": "string", "description": "RecipientUid of NFD sales", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "sigNameAddress": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "state": { "type": "string", "example": "minting", "enum": [ "available", "minting", "reserved", "forSale", "owned", "expired" ] }, "tags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "description": "Tags assigned to this NFD", "example": [ "abc123" ] }, "timeChanged": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timeCreated": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timeExpires": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timePurchased": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "unverifiedCa": { "type": "object", "description": "Unverified (non-algo) Crypto addresses for this NFD", "example": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "additionalProperties": { "type": "array", "items": { "type": "string", "example": "abc123" }, "example": [ "abc123" ] } }, "unverifiedCaAlgo": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Unverified Algorand addresses for this NFD", "example": [ "333333333333333333333333333333333333333333333333333333333A" ] } }, "description": "NFD contains all known information about an NFD record (full view)", "example": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ], "cache-control": "abc123", "category": "premium", "currentAsOfBlock": 1, "depositAccount": "333333333333333333333333333333333333333333333333333333333A", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "333333333333333333333333333333333333333333333333333333333A", "owner": "333333333333333333333333333333333333333333333333333333333A", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "saleType": "buyItNow", "sellAmount": 1, "seller": "333333333333333333333333333333333333333333333333333333333A", "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A", "state": "minting", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ] }, "required": [ "name" ] }, "NfdRecordResponseFullCollection": { "type": "array", "items": { "$ref": "#/components/schemas/NfdRecordResponseFull" }, "description": "DonationListV2ResponseBody is the result type for an array of NfdRecordResponse (full view)", "example": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ], "category": "premium", "currentAsOfBlock": 1, "depositAccount": "333333333333333333333333333333333333333333333333333333333A", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "333333333333333333333333333333333333333333333333333333333A", "owner": "333333333333333333333333333333333333333333333333333333333A", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "saleType": "buyItNow", "sellAmount": 1, "seller": "333333333333333333333333333333333333333333333333333333333A", "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A", "state": "minting", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ] } ] }, "NfdRecordinaddress": { "type": "object", "properties": { "appID": { "type": "integer", "description": "NFD Application ID", "example": 1000000, "format": "int64" }, "asaID": { "type": "integer", "description": "NFD ASA ID", "example": 1, "format": "int64" }, "avatarOutdated": { "type": "boolean", "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", "example": false }, "caAlgo": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Verified Algorand addresses for this NFD", "example": [ "333333333333333333333333333333333333333333333333333333333A" ] }, "cache-control": { "type": "string", "description": "Cache-Control header", "example": "abc123" }, "category": { "type": "string", "example": "premium", "enum": [ "curated", "premium", "common" ] }, "currentAsOfBlock": { "type": "integer", "description": "Round this data was last fetched from", "example": 1, "format": "int64" }, "depositAccount": { "type": "string", "description": "account wallets should send funds to - precedence is: caAlgo[0], unverifiedCaAlgo[0], owner", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "etag": { "type": "string", "description": "ETag", "example": "abc123" }, "expired": { "type": "boolean", "example": false }, "match-check": { "type": "string", "description": "Not returned, used in tagging for response to indicate if-none-match etag matched", "example": "abc123" }, "metaTags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "description": "Tags set by the system for tracking/analytics", "example": [ "abc123" ] }, "name": { "type": "string", "example": "abc123" }, "nfdAccount": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "owner": { "type": "string", "description": "Owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "parentAppID": { "type": "integer", "description": "NFD Application ID of Parent if this is a segment", "example": 1000000, "format": "int64" }, "properties": { "$ref": "#/components/schemas/NFDProperties" }, "reservedFor": { "type": "string", "description": "Reserved owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "saleType": { "type": "string", "example": "buyItNow", "enum": [ "auction", "buyItNow" ] }, "sellAmount": { "type": "integer", "description": "amount NFD is being sold for (microAlgos)", "example": 1, "format": "int64" }, "seller": { "type": "string", "description": "RecipientUid of NFD sales", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "sigNameAddress": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "state": { "type": "string", "example": "minting", "enum": [ "available", "minting", "reserved", "forSale", "owned", "expired" ] }, "tags": { "type": "array", "items": { "type": "string", "example": "abc123" }, "description": "Tags assigned to this NFD", "example": [ "abc123" ] }, "timeChanged": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timeCreated": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timeExpires": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "timePurchased": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "unverifiedCa": { "type": "object", "description": "Unverified (non-algo) Crypto addresses for this NFD", "example": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "additionalProperties": { "type": "array", "items": { "type": "string", "example": "abc123" }, "example": [ "abc123" ] } }, "unverifiedCaAlgo": { "type": "array", "items": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "description": "Unverified Algorand addresses for this NFD", "example": [ "333333333333333333333333333333333333333333333333333333333A" ] } }, "description": "NFD contains all known information about an NFD record", "example": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ], "cache-control": "abc123", "category": "premium", "currentAsOfBlock": 1, "depositAccount": "333333333333333333333333333333333333333333333333333333333A", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "333333333333333333333333333333333333333333333333333333333A", "owner": "333333333333333333333333333333333333333333333333333333333A", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "saleType": "buyItNow", "sellAmount": 1, "seller": "333333333333333333333333333333333333333333333333333333333A", "sigNameAddress": "333333333333333333333333333333333333333333333333333333333A", "state": "minting", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "333333333333333333333333333333333333333333333333333333333A" ] }, "required": [ "name" ] }, "NfdRecordinaddressCollection": { "type": "array", "items": { "$ref": "#/components/schemas/NfdRecordinaddress" }, "example": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ] }, "NfdV2SearchRecords": { "type": "object", "properties": { "match-check": { "type": "string", "description": "Not returned, used in tagging for response to indicate if-none-match etag matched", "example": "abc123" }, "nfds": { "$ref": "#/components/schemas/NfdRecordCollection" }, "total": { "type": "integer", "description": "total number of results, with data containing paged amount based on offset/limit", "example": 1, "format": "int64" } }, "example": { "match-check": "abc123", "nfds": [ { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] } ], "total": 1 }, "required": [ "total", "nfds" ] }, "OfferRequestBody": { "type": "object", "properties": { "offer": { "type": "integer", "description": "Amount in microAlgo to sell the NFD for. 1 ALGO is 1,000,000 microAlgo. 100 million maximum.", "example": 1, "format": "int64", "minimum": 0, "maximum": 100000000000000 }, "payReceiver": { "type": "boolean", "description": "Whether to pay the offer amount + fees to the account the NFD is reserved for. Equivalent to 'gifting' the NFD", "example": false }, "reservedFor": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "sender": { "type": "string", "description": "Sender of transaction - needs to be owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "offer": 1, "payReceiver": false, "reservedFor": "333333333333333333333333333333333333333333333333333333333A", "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "offer" ] }, "PostOfferToOwnerRequestBody": { "type": "object", "properties": { "note": { "type": "string", "description": "Note to pass along to the NFD owner. Must be provided but can be blank", "example": "aaa", "maxLength": 512 }, "offer": { "type": "integer", "description": "Amount in microAlgo being offered to the NFD owner", "example": 1000001, "format": "int64", "minimum": 1000000, "maximum": 100000000000000 }, "sender": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "note": "aaa", "offer": 1000001, "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "offer", "note" ] }, "PurchaseRequestBody": { "type": "object", "properties": { "buyer": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "offer": { "type": "integer", "description": "Amount in microAlgo to purchase/claim the NFD for", "example": 1, "format": "int64", "minimum": 0, "maximum": 100000000000000 } }, "example": { "buyer": "333333333333333333333333333333333333333333333333333333333A", "offer": 1 }, "required": [ "buyer", "offer" ] }, "RateLimited": { "type": "object", "properties": { "limit": { "type": "integer", "example": 5, "format": "int64" }, "secsRemaining": { "type": "integer", "example": 50, "format": "int64" } }, "example": { "limit": 5, "secsRemaining": 50 }, "required": [ "limit", "secsRemaining" ] }, "RenewRequestBody": { "type": "object", "properties": { "algoOffer": { "type": "integer", "description": "Offer price in ALGO. Expiration time set prorated based on amount paid vs fixed per-year cost when years argument is used", "example": 2, "format": "int64", "minimum": 1, "maximum": 100000000 }, "buyer": { "type": "string", "description": "Address paying/signing for minting transaction", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "name": { "type": "string", "example": "aa", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "years": { "type": "integer", "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", "example": 2, "format": "int64", "minimum": 1, "maximum": 20 } }, "example": { "algoOffer": 2, "buyer": "333333333333333333333333333333333333333333333333333333333A", "name": "aa", "years": 2 }, "required": [ "name", "buyer" ] }, "RescindOfferRequestBody": { "type": "object", "properties": { "sender": { "type": "string", "description": "Sender of transaction - needs to be owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender" ] }, "SegmentLockRequestBody": { "type": "object", "properties": { "lock": { "type": "boolean", "description": "Whether to lock (true), or unlock (false)", "example": false }, "sellAmount": { "type": "integer", "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", "example": 1, "format": "int64", "minimum": 0, "maximum": 100000000 }, "sender": { "type": "string", "description": "Sender of transaction - needs to be owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "lock": false, "sellAmount": 1, "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "lock", "sellAmount" ] }, "SendFromVaultRequestBody": { "type": "object", "properties": { "amount": { "type": "integer", "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", "example": 1, "format": "int64", "minimum": 0, "maximum": 100000000000000 }, "amountStr": { "type": "string", "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", "example": "abc123" }, "assets": { "type": "array", "items": { "type": "integer", "example": 1, "format": "int64" }, "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.", "example": [ 1, 1 ], "minItems": 1, "maxItems": 112 }, "note": { "type": "string", "description": "Optional note to include in asset send transaction", "default": "", "example": "aaa", "maxLength": 1000 }, "receiver": { "type": "string", "description": "Algorand account or NFD Name (if vault receiver) the asset(s) should be sent to", "example": "abc123" }, "receiverCanSign": { "type": "boolean", "description": "Specifies that the receiver account is something the caller can sign for. If specified, then opt-in transactions it signs may be included", "default": false, "example": false }, "receiverType": { "type": "string", "description": "Type of receiver, 'account', or 'nfdVault'", "default": "account", "example": "nfdVault", "enum": [ "account", "nfdVault" ] }, "sender": { "type": "string", "description": "Sender of transaction, must be NFD owner", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "amount": 1, "amountStr": "abc123", "assets": [ 1, 1 ], "note": "aaa", "receiver": "abc123", "receiverCanSign": false, "receiverType": "nfdVault", "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "assets", "receiver" ] }, "SendToVaultRequestBody": { "type": "object", "properties": { "amount": { "type": "integer", "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", "example": 1, "format": "int64", "minimum": 0, "maximum": 100000000000000 }, "amountStr": { "type": "string", "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", "example": "abc123" }, "assets": { "type": "array", "items": { "type": "integer", "example": 1, "format": "int64" }, "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)", "example": [ 1, 1 ], "minItems": 1, "maxItems": 64 }, "note": { "type": "string", "description": "Optional note to include in asset send transaction", "default": "", "example": "aaa", "maxLength": 1000 }, "optInOnly": { "type": "boolean", "description": "Whether to only opt-in to the asset, instead of including asset transfer txn", "default": false, "example": false }, "sender": { "type": "string", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "amount": 1, "amountStr": "abc123", "assets": [ 1, 1 ], "note": "aaa", "optInOnly": false, "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "assets", "optInOnly" ] }, "SetPrimaryAddressRequestBody": { "type": "object", "properties": { "address": { "type": "string", "description": "The address (already linked) to make primary - swapping into position if necessary", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" }, "sender": { "type": "string", "description": "Address that will be signing the returned transactions. Should be owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "address": "333333333333333333333333333333333333333333333333333333333A", "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "address" ] }, "TotalsOKResponseBody": { "type": "object", "properties": { "contractTotals": { "type": "object", "properties": { "allVersions": { "type": "object", "description": "Contract versions", "example": { "abc123": 1 }, "additionalProperties": { "type": "integer", "example": 1, "format": "int64" } }, "majorVersions": { "type": "object", "description": "Contract versions", "example": { "abc123": 1 }, "additionalProperties": { "type": "integer", "example": 1, "format": "int64" } } }, "example": { "allVersions": { "abc123": 1 }, "majorVersions": { "abc123": 1 } } }, "expiredTotal": { "type": "integer", "description": "NFDs that have expired", "example": 1, "format": "int64" }, "forSale": { "type": "integer", "example": 1, "format": "int64" }, "match-check": { "type": "string", "description": "Not returned, used in tagging for response to indicate if-none-match etag matched", "example": "abc123" }, "mintedTotals": { "type": "object", "properties": { "day": { "type": "integer", "example": 1, "format": "int64" }, "lifetime": { "type": "integer", "example": 1, "format": "int64" }, "month": { "type": "integer", "example": 1, "format": "int64" }, "week": { "type": "integer", "example": 1, "format": "int64" } }, "example": { "day": 1, "lifetime": 1, "month": 1, "week": 1 } }, "segmentTotals": { "type": "object", "properties": { "day": { "type": "integer", "example": 1, "format": "int64" }, "lifetime": { "type": "integer", "example": 1, "format": "int64" }, "month": { "type": "integer", "example": 1, "format": "int64" }, "week": { "type": "integer", "example": 1, "format": "int64" } }, "example": { "day": 1, "lifetime": 1, "month": 1, "week": 1 } }, "soldTotals": { "type": "object", "properties": { "day": { "type": "integer", "example": 1, "format": "int64" }, "lifetime": { "type": "integer", "example": 1, "format": "int64" }, "month": { "type": "integer", "example": 1, "format": "int64" }, "week": { "type": "integer", "example": 1, "format": "int64" } }, "example": { "day": 1, "lifetime": 1, "month": 1, "week": 1 } }, "total": { "type": "integer", "example": 1, "format": "int64" }, "totalSegments": { "type": "integer", "example": 1, "format": "int64" }, "uniqueOwners": { "type": "integer", "example": 1, "format": "int64" } }, "example": { "contractTotals": { "allVersions": { "abc123": 1 }, "majorVersions": { "abc123": 1 } }, "expiredTotal": 1, "forSale": 1, "match-check": "abc123", "mintedTotals": { "day": 1, "lifetime": 1, "month": 1, "week": 1 }, "segmentTotals": { "day": 1, "lifetime": 1, "month": 1, "week": 1 }, "soldTotals": { "day": 1, "lifetime": 1, "month": 1, "week": 1 }, "total": 1, "totalSegments": 1, "uniqueOwners": 1 }, "required": [ "total", "totalSegments", "forSale", "mintedTotals", "segmentTotals", "soldTotals", "contractTotals", "uniqueOwners", "expiredTotal" ] }, "TwitterRecord": { "type": "object", "properties": { "followers": { "type": "integer", "example": 1, "format": "int64" }, "following": { "type": "integer", "example": 1, "format": "int64" }, "nfd": { "$ref": "#/components/schemas/NFD" }, "timeChanged": { "type": "string", "example": "1970-01-01T00:00:01Z", "format": "date-time" }, "tweets": { "type": "integer", "example": 1, "format": "int64" }, "twitterHandle": { "type": "string", "example": "abc123" } }, "description": "TwitterRecord contains information about an NFD w/ Verified Twitter account and basic info on its twitter metrics", "example": { "followers": 1, "following": 1, "nfd": { "appID": 1000000, "asaID": 1, "avatarOutdated": false, "caAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ], "cache-control": "abc123", "category": "abc123", "currentAsOfBlock": 1, "depositAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "etag": "abc123", "expired": false, "match-check": "abc123", "metaTags": [ "abc123" ], "name": "abc123", "nfdAccount": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "owner": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "parentAppID": 1000000, "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "reservedFor": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "saleType": "abc123", "sellAmount": 1, "seller": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "sigNameAddress": "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU", "state": "abc123", "tags": [ "abc123" ], "timeChanged": "1970-01-01T00:00:01Z", "timeCreated": "1970-01-01T00:00:01Z", "timeExpires": "1970-01-01T00:00:01Z", "timePurchased": "1970-01-01T00:00:01Z", "unverifiedCa": { "btc": [ "12KKDt4Mj7N5UAkQMN7LtPZMayenXHa8KL" ] }, "unverifiedCaAlgo": [ "4F5OA5OQC5TBHMCUDJWGKMUZAQE7BGWCKSJJSJEMJO5PURIFT5RW3VHNZU" ] }, "timeChanged": "1970-01-01T00:00:01Z", "tweets": 1, "twitterHandle": "abc123" }, "required": [ "timeChanged", "nfd", "twitterHandle", "followers", "following", "tweets" ] }, "UpdatePartialRequestBody": { "type": "object", "properties": { "properties": { "$ref": "#/components/schemas/NFDProperties" }, "sender": { "type": "string", "description": "Address that will be signing the returned transactions. Should be owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "properties": { "internal": { "abc123": "abc123" }, "userDefined": { "ca:b": "abc123" }, "verified": { "caAlgo": "abc123" } }, "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "sender", "properties" ] }, "VerifyConfirmRequestBody": { "type": "object", "properties": { "challenge": { "type": "string", "description": "Challenge value, optional depending on verification type", "example": "abc123" } }, "example": { "challenge": "abc123" } }, "VerifyConfirmResponseBody": { "type": "object", "properties": { "confirmed": { "type": "boolean", "example": false } }, "description": "Whether verification was successful", "example": { "confirmed": false }, "required": [ "confirmed" ] }, "VerifyRequestRequestBody": { "type": "object", "properties": { "fieldToVerify": { "type": "string", "description": "User defined field name to verify", "example": "twitter", "enum": [ "blueskydid", "twitter", "github", "domain", "email", "avatar", "banner" ] }, "name": { "type": "string", "example": "aa", "pattern": "^.+\\.algo$", "minLength": 1, "maxLength": 120 }, "sender": { "type": "string", "description": "Sender of transaction - needs to be owner of NFD", "example": "333333333333333333333333333333333333333333333333333333333A", "pattern": "^[A-Z2-7]{57}[AEIMQUY4]$" } }, "example": { "fieldToVerify": "twitter", "name": "aa", "sender": "333333333333333333333333333333333333333333333333333333333A" }, "required": [ "name", "sender", "fieldToVerify" ] }, "VerifyRequestResponseBody": { "type": "object", "properties": { "challenge": { "type": "string", "description": "Challenge to be used as part of verification process, with use specific to each field", "example": "abc123" }, "id": { "type": "string", "description": "ID of challenge, must be used in subsequent confirmation call but may be blank", "example": "abc123" }, "validated": { "type": "boolean", "description": "If set, no confirmation is required, the verify call was sufficient", "example": false } }, "description": "Data to use as part of verification", "example": { "challenge": "abc123", "id": "abc123", "validated": false }, "required": [ "id", "challenge" ] }, "VersionResponseBody": { "type": "object", "properties": { "appVersion": { "type": "string", "example": "5cfa595 [2022-03-20T17:02:35Z]" }, "contractVersion": { "type": "string", "example": "1.0" } }, "example": { "appVersion": "5cfa595 [2022-03-20T17:02:35Z]", "contractVersion": "1.0" }, "required": [ "appVersion", "contractVersion" ] } }, "securitySchemes": { "basic_header_Authorization": { "type": "http", "description": "Basic authentication", "scheme": "basic" }, "jwt_header_Authorization": { "type": "http", "description": "Secures endpoint by requiring a valid JWT token.", "scheme": "bearer" }, "jwt_query_token": { "type": "http", "description": "Secures endpoint by requiring a valid JWT token.", "scheme": "bearer" } } }, "tags": [ { "name": "info", "description": "The info service provides information on version data, liveness, readiness checks, etc." }, { "name": "nfd", "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" } ] }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GoPlausible/algorand-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server