diff --git a/src/Packages/ZkEvmApi/api~/openapi.json b/src/Packages/ZkEvmApi/api~/openapi.json new file mode 100644 index 00000000..6d7ce638 --- /dev/null +++ b/src/Packages/ZkEvmApi/api~/openapi.json @@ -0,0 +1,11184 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Immutable zkEVM API", + "version": "1.0.0", + "description": "Immutable Multi Rollup API", + "contact": { + "name": "Immutable API Support", + "email": "support@immutable.com", + "url": "https://support.immutable.com" + } + }, + "servers": [ + { + "url": "https://api.sandbox.immutable.com" + } + ], + "tags": [ + { + "name": "activities", + "description": "Activities Endpoints", + "x-displayName": "activities" + }, + { + "name": "chains", + "description": "Chains Endpoints", + "x-displayName": "chains" + }, + { + "name": "collections", + "description": "Collections Endpoints", + "x-displayName": "collections" + }, + { + "name": "nfts", + "description": "NFTs Endpoints", + "x-displayName": "nfts" + }, + { + "name": "nft owners", + "description": "NFT Owner Endpoints", + "x-displayName": "nft owners" + }, + { + "name": "metadata", + "description": "NFT Metadata Endpoints", + "x-displayName": "metadata" + }, + { + "name": "tokens", + "description": "ERC20 Token Endpoints", + "x-displayName": "tokens" + }, + { + "name": "demopage", + "description": "Temporary HTML endpoint for demo purposes", + "x-displayName": "demopage" + }, + { + "name": "verification", + "x-displayName": "verification" + }, + { + "name": "operatorallowlist", + "x-displayName": "operatorallowlist" + }, + { + "name": "crafting", + "x-displayName": "crafting" + }, + { + "name": "listings", + "description": "Listings Endpoints", + "x-displayName": "listings" + }, + { + "name": "orders", + "x-displayName": "orders" + }, + { + "name": "passport", + "description": "Passport operations", + "x-displayName": "passport" + }, + { + "name": "gamefi", + "description": "team gamefi", + "x-displayName": "gamefi" + }, + { + "name": "passport profile", + "description": "Passport Profile endpoints", + "x-displayName": "passport profile" + }, + { + "name": "feed-items", + "x-displayName": "feed-items" + }, + { + "name": "assets", + "x-displayName": "assets" + }, + { + "name": "guardian", + "description": "Guardian endpoints", + "x-displayName": "guardian" + }, + { + "name": "pricing", + "description": "Pricing Endpoints", + "x-displayName": "pricing" + }, + { + "name": "metadata-search", + "x-displayName": "metadata-search" + } + ], + "paths": { + "/v1/chains/{chain_name}/activity-history": { + "get": { + "tags": [ + "activities" + ], + "operationId": "ListActivityHistory", + "summary": "List history of activities", + "description": "List activities sorted by updated_at timestamp ascending, useful for time based data replication", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "From indexed at including given date", + "required": true, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "to_updated_at", + "in": "query", + "required": false, + "description": "To indexed at including given date", + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "contract_address", + "in": "query", + "description": "The contract address of the collection", + "required": false, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "activity_type", + "in": "query", + "description": "The activity type", + "required": false, + "example": "burn", + "schema": { + "$ref": "#/components/schemas/ActivityType" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListActivitiesResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/activities": { + "get": { + "tags": [ + "activities" + ], + "operationId": "ListActivities", + "summary": "List all activities", + "description": "List all activities", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "query", + "description": "The contract address of NFT or ERC20 Token", + "required": false, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "token_id", + "in": "query", + "description": "An `uint256` token id as string", + "required": false, + "schema": { + "type": "string" + }, + "example": "1" + }, + { + "name": "account_address", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3", + "description": "The account address activity contains" + }, + { + "name": "activity_type", + "in": "query", + "description": "The activity type", + "required": false, + "example": "burn", + "schema": { + "$ref": "#/components/schemas/ActivityType" + } + }, + { + "name": "transaction_hash", + "in": "query", + "description": "The transaction hash of activity", + "required": false, + "schema": { + "type": "string" + }, + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListActivitiesResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/activities/{activity_id}": { + "get": { + "tags": [ + "activities" + ], + "operationId": "GetActivity", + "summary": "Get a single activity by ID", + "description": "Get a single activity by ID", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "activity_id", + "description": "The id of activity", + "schema": { + "$ref": "#/components/schemas/ActivityID" + }, + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetActivityResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections": { + "get": { + "description": "List all collections", + "tags": [ + "collections" + ], + "operationId": "ListCollections", + "summary": "List all collections", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "description": "The name of chain", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "query", + "required": false, + "description": "List of contract addresses to filter by", + "schema": { + "type": "array", + "items": { + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } + } + }, + { + "name": "verification_status", + "in": "query", + "required": false, + "description": "List of verification status to filter by", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssetVerificationStatus" + } + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "required": false, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCollectionsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}": { + "get": { + "description": "Get collection by contract address", + "tags": [ + "collections" + ], + "operationId": "GetCollection", + "summary": "Get collection by contract address", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetCollectionResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata": { + "post": { + "description": "Refresh collection metadata", + "summary": "Refresh collection metadata", + "tags": [ + "collections" + ], + "operationId": "RefreshCollectionMetadata", + "security": [ + { + "ImmutableApiKey": [ + "refresh:metadata" + ] + }, + { + "BearerAuthWithClient": [] + }, + { + "BearerAuth": [] + } + ], + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + } + ], + "requestBody": { + "description": "The request body", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RefreshCollectionMetadataRequest" + } + } + } + }, + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RefreshCollectionMetadataResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/accounts/{account_address}/collections": { + "get": { + "description": "List collections by NFT owner account address", + "tags": [ + "collections" + ], + "operationId": "ListCollectionsByNFTOwner", + "summary": "List collections by NFT owner", + "parameters": [ + { + "name": "account_address", + "in": "path", + "description": "Account address", + "required": true, + "schema": { + "type": "string" + }, + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCollectionsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}": { + "get": { + "description": "Get NFT by token ID", + "tags": [ + "nfts" + ], + "summary": "Get NFT by token ID", + "operationId": "GetNFT", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "The address of NFT contract", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + { + "name": "token_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "An `uint256` token id as string", + "example": "1" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetNFTResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}": { + "get": { + "description": "Get metadata by ID", + "tags": [ + "metadata" + ], + "summary": "Get metadata by ID", + "operationId": "GetMetadata", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "The address of metadata contract", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + { + "name": "metadata_id", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/MetadataID" + }, + "description": "The id of the metadata" + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetMetadataResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/metadata": { + "get": { + "description": "Get a list of metadata from the given contract", + "tags": [ + "metadata" + ], + "summary": "Get a list of metadata from the given contract", + "operationId": "ListMetadata", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "The address of metadata contract", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "required": false, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMetadataResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/metadata": { + "get": { + "description": "Get a list of metadata from the given chain", + "tags": [ + "metadata" + ], + "summary": "Get a list of metadata from the given chain", + "operationId": "ListMetadataForChain", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "required": false, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMetadataResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata": { + "post": { + "x-go-name": "RefreshMetadataByID", + "operationId": "RefreshMetadataByID", + "description": "Refresh stacked metadata", + "summary": "Refresh stacked metadata", + "tags": [ + "metadata" + ], + "parameters": [ + { + "$ref": "#/components/parameters/ChainName" + }, + { + "$ref": "#/components/parameters/ContractAddress" + } + ], + "security": [ + { + "ImmutableApiKey": [ + "refresh:metadata" + ] + } + ], + "requestBody": { + "description": "NFT Metadata Refresh Request", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RefreshMetadataByIDRequest" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "headers": { + "imx-refreshes-limit": { + "$ref": "#/components/headers/MetadataRefreshLimit" + }, + "imx-refresh-limit-reset": { + "$ref": "#/components/headers/MetadataRefreshLimitReset" + }, + "imx-remaining-refreshes": { + "$ref": "#/components/headers/MetadataRefreshLimitRemaining" + }, + "retry-after": { + "$ref": "#/components/headers/MetadataRefreshRetryAfter" + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataRefreshRateLimitResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyMetadataRefreshes" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/nfts": { + "get": { + "description": "List NFTs by contract address", + "tags": [ + "nfts" + ], + "summary": "List NFTs by contract address", + "operationId": "ListNFTs", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address", + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "token_id", + "in": "query", + "required": false, + "description": "List of token IDs to filter by", + "schema": { + "type": "array", + "maxItems": 30, + "items": { + "type": "string", + "example": "1" + } + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "required": false, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListNFTsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/accounts/{account_address}/nfts": { + "get": { + "description": "List NFTs by account address", + "tags": [ + "nfts" + ], + "operationId": "ListNFTsByAccountAddress", + "summary": "List NFTs by account address", + "parameters": [ + { + "name": "account_address", + "in": "path", + "description": "Account address", + "required": true, + "schema": { + "type": "string" + }, + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "query", + "description": "The address of contract", + "required": false, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "token_id", + "in": "query", + "required": false, + "description": "List of token IDs to filter by", + "schema": { + "type": "array", + "maxItems": 30, + "items": { + "type": "string", + "example": "1" + } + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "required": false, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListNFTsByOwnerResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners": { + "get": { + "description": "List NFT owners by token ID", + "tags": [ + "nft owners" + ], + "operationId": "ListNFTOwners", + "summary": "List NFT owners by token ID", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address of contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "token_id", + "in": "path", + "description": "An `uint256` token id as string", + "required": true, + "schema": { + "type": "string" + }, + "example": "1" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListNFTOwnersResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/nfts": { + "get": { + "description": "List all NFTs on a chain", + "tags": [ + "nfts" + ], + "operationId": "ListAllNFTs", + "summary": "List all NFTs", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "required": false, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListNFTsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/nft-owners": { + "get": { + "description": "List all NFT owners on a chain", + "tags": [ + "nft owners" + ], + "operationId": "ListAllNFTOwners", + "summary": "List all NFT owners", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListNFTOwnersResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/owners": { + "get": { + "description": "List owners by contract address", + "tags": [ + "nft owners" + ], + "operationId": "ListOwnersByContractAddress", + "summary": "List owners by contract address", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address of contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "account_address", + "in": "query", + "required": false, + "description": "List of account addresses to filter by", + "schema": { + "type": "array", + "maxItems": 30, + "items": { + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "required": false, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCollectionOwnersResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/tokens": { + "get": { + "description": "List ERC20 tokens", + "tags": [ + "tokens" + ], + "operationId": "ListERC20Tokens", + "summary": "List ERC20 tokens", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "Datetime to use as the oldest updated timestamp", + "required": false, + "schema": { + "type": "string", + "example": "2022-08-16T17:43:26.991388Z", + "format": "date-time" + } + }, + { + "name": "verification_status", + "in": "query", + "required": false, + "description": "List of verification status to filter by", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssetVerificationStatus" + } + } + }, + { + "name": "is_canonical", + "in": "query", + "required": false, + "description": "[Experimental - Canonical token data may be updated] Filter by canonical or non-canonical tokens.", + "schema": { + "type": "boolean" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTokensResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/tokens/{contract_address}": { + "get": { + "description": "Get single ERC20 token", + "tags": [ + "tokens" + ], + "operationId": "GetERC20Token", + "summary": "Get single ERC20 token", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address of contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTokenResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains": { + "get": { + "description": "List supported chains", + "summary": "List supported chains", + "tags": [ + "chains" + ], + "operationId": "ListChains", + "parameters": [ + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListChainsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata": { + "post": { + "description": "Refresh NFT metadata", + "summary": "Refresh NFT metadata", + "tags": [ + "metadata" + ], + "operationId": "RefreshNFTMetadataByTokenID", + "security": [ + { + "ImmutableApiKey": [ + "refresh:metadata" + ] + } + ], + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address of contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "requestBody": { + "description": "the request body", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RefreshNFTMetadataByTokenIDRequest" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "headers": { + "imx-refreshes-limit": { + "$ref": "#/components/headers/MetadataRefreshLimit" + }, + "imx-refresh-limit-reset": { + "$ref": "#/components/headers/MetadataRefreshLimitReset" + }, + "imx-remaining-refreshes": { + "$ref": "#/components/headers/MetadataRefreshLimitRemaining" + }, + "retry-after": { + "$ref": "#/components/headers/MetadataRefreshRetryAfter" + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataRefreshRateLimitResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyMetadataRefreshes" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests": { + "post": { + "description": "Create a mint request to mint a set of NFTs for a given collection", + "summary": "Mint NFTs", + "security": [ + { + "ImmutableApiKey": [ + "write:mint-request" + ] + } + ], + "tags": [ + "nfts" + ], + "operationId": "CreateMintRequest", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address of contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "requestBody": { + "description": "Create Mint Request Body", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMintRequestRequest" + } + } + } + }, + "responses": { + "202": { + "description": "Accepted", + "headers": { + "imx-mint-requests-limit": { + "$ref": "#/components/headers/MintRequestsLimit" + }, + "imx-mint-requests-limit-reset": { + "$ref": "#/components/headers/MintRequestsLimitReset" + }, + "imx-remaining-mint-requests": { + "$ref": "#/components/headers/MintRequestsLimitRemaining" + }, + "imx-mint-requests-retry-after": { + "$ref": "#/components/headers/MintRequestsRetryAfter" + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMintRequestResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "409": { + "$ref": "#/components/responses/Conflict" + }, + "429": { + "$ref": "#/components/responses/TooManyMintRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + }, + "get": { + "description": "Retrieve the status of all mints for a given contract address", + "summary": "List mint requests", + "security": [ + { + "ImmutableApiKey": [ + "write:mint-request" + ] + } + ], + "tags": [ + "nfts" + ], + "operationId": "ListMintRequests", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address of contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + }, + { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "status", + "description": "The status of the mint request", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/MintRequestStatus" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMintRequestsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests/{reference_id}": { + "get": { + "description": "Retrieve the status of a mint request identified by its reference_id", + "summary": "Get mint request by reference ID", + "security": [ + { + "ImmutableApiKey": [ + "write:mint-request" + ] + } + ], + "tags": [ + "nfts" + ], + "operationId": "GetMintRequest", + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address of contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "reference_id", + "description": "The id of the mint request", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "example": "67f7d464-b8f0-4f6a-9a3b-8d3cb4a21af0" + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListMintRequestsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/crafting/sign": { + "post": { + "description": "Sign a crafting payload", + "tags": [ + "crafting" + ], + "operationId": "SignCraftingPayload", + "summary": "Sign a crafting payload", + "security": [ + { + "ImmutableApiKey": [ + "create:collections" + ] + } + ], + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + } + ], + "requestBody": { + "description": "The request body", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SignCraftingRequest" + } + } + } + }, + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SignCraftingResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/internal/chains/{chain_name}/environment/{environment}/collections/{contract_address}/refresh-metadata": { + "post": { + "description": "Refresh collection metadata internal", + "summary": "Refresh collection metadata internal", + "tags": [ + "collections" + ], + "operationId": "RefreshCollectionMetadataInternal", + "security": [ + { + "BearerAuthWithClient": [] + } + ], + "parameters": [ + { + "name": "contract_address", + "in": "path", + "description": "The address contract", + "required": true, + "schema": { + "type": "string" + }, + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "environment", + "in": "path", + "description": "The environment of the collection", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The request body", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RefreshCollectionMetadataRequest" + } + } + } + }, + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RefreshCollectionMetadataResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/orders/cancel": { + "post": { + "tags": [ + "orders" + ], + "summary": "Cancel one or more orders", + "description": "Cancel one or more orders", + "operationId": "CancelOrders", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CancelOrdersRequestBody" + } + } + } + }, + "responses": { + "200": { + "description": "Orders cancellation response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CancelOrdersResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + }, + "501": { + "$ref": "#/components/responses/NotImplementedError" + } + } + } + }, + "/v1/chains/{chain_name}/orders/listings": { + "get": { + "tags": [ + "orders" + ], + "summary": "List all listings", + "description": "List all listings", + "operationId": "ListListings", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "status", + "in": "query", + "description": "Order status to filter by", + "required": false, + "schema": { + "$ref": "#/components/schemas/OrderStatusName" + } + }, + { + "name": "sell_item_contract_address", + "in": "query", + "description": "Sell item contract address to filter by", + "required": false, + "schema": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "buy_item_type", + "in": "query", + "description": "Buy item type to filter by", + "required": false, + "schema": { + "type": "string", + "enum": [ + "NATIVE", + "ERC20" + ], + "example": "NATIVE" + } + }, + { + "name": "buy_item_contract_address", + "in": "query", + "description": "Buy item contract address to filter by", + "required": false, + "schema": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "account_address", + "in": "query", + "description": "The account address of the user who created the listing", + "required": false, + "schema": { + "type": "string", + "example": "0xc49Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "sell_item_metadata_id", + "in": "query", + "description": "The metadata_id of the sell item", + "required": false, + "schema": { + "type": "string", + "format": "uuid", + "example": "020792C9-4AD7-8EC4-4038-9E05C598535B" + } + }, + { + "name": "sell_item_token_id", + "in": "query", + "description": "Sell item token identifier to filter by", + "required": false, + "schema": { + "type": "string", + "example": "1", + "pattern": "\\d+" + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "From updated at including given date", + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Maximum number of orders to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "sort_by", + "in": "query", + "description": "Order field to sort by. `buy_item_amount` sorts by per token price, for example if 5 ERC-1155s are on sale for 10eth, it’s sorted as 2eth for `buy_item_amount`.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created_at", + "updated_at", + "buy_item_amount" + ], + "description": "Order field to sort by", + "example": "created_at" + }, + "example": "created_at" + }, + { + "name": "sort_direction", + "in": "query", + "description": "Ascending or descending direction for sort", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "description": "Ascending or descending direction for sort", + "example": "asc" + }, + "example": "asc" + }, + { + "name": "page_cursor", + "in": "query", + "description": "Page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListListingsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + }, + "post": { + "tags": [ + "orders" + ], + "summary": "Create a listing", + "description": "Create a listing", + "operationId": "CreateListing", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateListingRequestBody" + } + } + } + }, + "responses": { + "201": { + "description": "Created response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/orders/bids": { + "get": { + "tags": [ + "orders" + ], + "summary": "List all bids", + "description": "List all bids", + "operationId": "ListBids", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "status", + "in": "query", + "description": "Order status to filter by", + "required": false, + "schema": { + "$ref": "#/components/schemas/OrderStatusName" + } + }, + { + "name": "buy_item_contract_address", + "in": "query", + "description": "Buy item contract address to filter by", + "required": false, + "schema": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "sell_item_contract_address", + "in": "query", + "description": "Sell item contract address to filter by", + "required": false, + "schema": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "account_address", + "in": "query", + "description": "The account address of the user who created the bid", + "required": false, + "schema": { + "type": "string", + "example": "0xc49Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "buy_item_metadata_id", + "in": "query", + "description": "The metadata_id of the buy item", + "required": false, + "schema": { + "type": "string", + "format": "uuid", + "example": "020792C9-4AD7-8EC4-4038-9E05C598535B" + } + }, + { + "name": "buy_item_token_id", + "in": "query", + "description": "buy item token identifier to filter by", + "required": false, + "schema": { + "type": "string", + "example": "1", + "pattern": "\\d+" + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "From updated at including given date", + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Maximum number of orders to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "sort_by", + "in": "query", + "description": "Order field to sort by. `sell_item_amount` sorts by per token price, for example if 10eth is offered for 5 ERC1155 items, it’s sorted as 2eth for `sell_item_amount`.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created_at", + "updated_at", + "sell_item_amount" + ], + "description": "Order field to sort by", + "example": "created_at" + }, + "example": "created_at" + }, + { + "name": "sort_direction", + "in": "query", + "description": "Ascending or descending direction for sort", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "description": "Ascending or descending direction for sort", + "example": "asc" + }, + "example": "asc" + }, + { + "name": "page_cursor", + "in": "query", + "description": "Page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListBidsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + }, + "post": { + "tags": [ + "orders" + ], + "summary": "Create a bid", + "description": "Create a bid", + "operationId": "CreateBid", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateBidRequestBody" + } + } + } + }, + "responses": { + "201": { + "description": "Created response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BidResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + }, + "501": { + "$ref": "#/components/responses/NotImplementedError" + } + } + } + }, + "/v1/chains/{chain_name}/orders/collection-bids": { + "get": { + "tags": [ + "orders" + ], + "summary": "List all collection bids", + "description": "List all collection bids", + "operationId": "ListCollectionBids", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "status", + "in": "query", + "description": "Order status to filter by", + "required": false, + "schema": { + "$ref": "#/components/schemas/OrderStatusName" + } + }, + { + "name": "buy_item_contract_address", + "in": "query", + "description": "Buy item contract address to filter by", + "required": false, + "schema": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "sell_item_contract_address", + "in": "query", + "description": "Sell item contract address to filter by", + "required": false, + "schema": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "account_address", + "in": "query", + "description": "The account address of the user who created the bid", + "required": false, + "schema": { + "type": "string", + "example": "0xc49Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "from_updated_at", + "in": "query", + "description": "From updated at including given date", + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Maximum number of orders to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "sort_by", + "in": "query", + "description": "Order field to sort by. `sell_item_amount` sorts by per token price, for example if 10eth is offered for 5 ERC1155 items, it’s sorted as 2eth for `sell_item_amount`.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created_at", + "updated_at", + "sell_item_amount" + ], + "description": "Order field to sort by", + "example": "created_at" + }, + "example": "created_at" + }, + { + "name": "sort_direction", + "in": "query", + "description": "Ascending or descending direction for sort", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "description": "Ascending or descending direction for sort", + "example": "asc" + }, + "example": "asc" + }, + { + "name": "page_cursor", + "in": "query", + "description": "Page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCollectionBidsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + }, + "post": { + "tags": [ + "orders" + ], + "summary": "Create a collection bid", + "description": "Create a collection bid", + "operationId": "CreateCollectionBid", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCollectionBidRequestBody" + } + } + } + }, + "responses": { + "201": { + "description": "Created response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionBidResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + }, + "501": { + "$ref": "#/components/responses/NotImplementedError" + } + } + } + }, + "/v1/chains/{chain_name}/orders/listings/{listing_id}": { + "get": { + "tags": [ + "orders" + ], + "summary": "Get a single listing by ID", + "description": "Get a single listing by ID", + "operationId": "GetListing", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "listing_id", + "in": "path", + "description": "Global Order identifier", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "description": "Global Order identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + } + } + ], + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListingResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/orders/bids/{bid_id}": { + "get": { + "tags": [ + "orders" + ], + "summary": "Get a single bid by ID", + "description": "Get a single bid by ID", + "operationId": "GetBid", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "bid_id", + "in": "path", + "description": "Global Bid identifier", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "description": "Global Bid identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + } + } + ], + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BidResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/orders/collection-bids/{collection_bid_id}": { + "get": { + "tags": [ + "orders" + ], + "summary": "Get a single collection bid by ID", + "description": "Get a single collection bid by ID", + "operationId": "GetCollectionBid", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "collection_bid_id", + "in": "path", + "description": "Global Collection Bid identifier", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "description": "Global Collection Bid identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + } + } + ], + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionBidResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/orders/fulfillment-data": { + "post": { + "tags": [ + "orders" + ], + "summary": "Retrieve fulfillment data for orders", + "description": "Retrieve signed fulfillment data based on the list of order IDs and corresponding fees.", + "operationId": "fulfillment_data", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FulfillmentDataRequest" + } + } + } + } + }, + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "result": { + "type": "object", + "properties": { + "fulfillable_orders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FulfillableOrder" + } + }, + "unfulfillable_orders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UnfulfillableOrder" + } + } + }, + "required": [ + "fulfillable_orders", + "unfulfillable_orders" + ] + } + }, + "required": [ + "result" + ] + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/trades": { + "get": { + "tags": [ + "orders" + ], + "summary": "List all trades", + "description": "List all trades", + "operationId": "ListTrades", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "account_address", + "in": "query", + "required": false, + "schema": { + "type": "string", + "description": "Account address to filter trades by (includes buy and sell wallet address)", + "example": "0x784578949A4A50DeA641Fb15dd2B11C72E76919a", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "sell_item_contract_address", + "in": "query", + "required": false, + "schema": { + "type": "string", + "description": "Sell item contract address to filter by", + "example": "0x784578949A4A50DeA641Fb15dd2B11C72E76919a", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "from_indexed_at", + "in": "query", + "description": "From indexed at including given date", + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Maximum number of trades to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "sort_by", + "in": "query", + "description": "Trade field to sort by", + "required": false, + "schema": { + "type": "string", + "enum": [ + "indexed_at" + ], + "description": "Trade field to sort by", + "example": "indexed_at" + }, + "example": "indexed_at" + }, + { + "name": "sort_direction", + "in": "query", + "description": "Ascending or descending direction for sort", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "description": "Ascending or descending direction for sort", + "example": "asc" + }, + "example": "asc" + }, + { + "name": "page_cursor", + "in": "query", + "description": "Page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTradeResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/trades/{trade_id}": { + "get": { + "tags": [ + "orders" + ], + "summary": "Get a single trade by ID", + "description": "Get a single trade by ID", + "operationId": "GetTrade", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + }, + { + "name": "trade_id", + "in": "path", + "description": "Global Trade identifier", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "description": "Global Trade identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + } + } + ], + "responses": { + "200": { + "description": "OK response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TradeResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/passport/users/{user_id}/linked-addresses": { + "get": { + "deprecated": true, + "summary": "Get Ethereum linked addresses for a user", + "description": "This API has been deprecated, please use https://docs.immutable.com/zkevm/api/reference/#/operations/getUserInfo instead to get a list of linked addresses.", + "tags": [ + "passport" + ], + "parameters": [ + { + "name": "user_id", + "in": "path", + "description": "The user's userId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "operationId": "getLinkedAddresses", + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "responses": { + "200": { + "description": "User's list of linked addresses response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetLinkedAddressesRes" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "429": { + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } + } + } + } + }, + "/passport-profile/v1/phone-otp/verify": { + "post": { + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "tags": [ + "passport profile" + ], + "summary": "Verify phone OTP code against user phone number", + "description": "Verify phone OTP code for user supplied phone number", + "operationId": "verify-phone-otp", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PhoneNumberOTPVerificationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "429": { + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/passport-profile/v1/profile": { + "get": { + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "tags": [ + "passport profile" + ], + "summary": "Get profile for authenticated user", + "description": "Get profile for the authenticated user's Passport wallet", + "operationId": "get-profile-by-authenticated-wallet", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProfileResponse" + } + } + } + }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "429": { + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/passport-profile/v1/username": { + "post": { + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "tags": [ + "passport profile" + ], + "summary": "Update username", + "description": "Update username for the authenticated user's Passport wallet", + "operationId": "update-username", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsernameUpdateRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsernameUpdateResponse" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/passport-profile/v1/phone-otp": { + "post": { + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "tags": [ + "passport profile" + ], + "summary": "Send phone OTP code for user supplied phone number", + "description": "Send phone OTP code for user supplied phone number", + "operationId": "send-phone-otp", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PhoneNumberOTPRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PhoneNumberOTPResponse" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "429": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/passport-profile/v2/linked-wallets": { + "post": { + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "tags": [ + "passport profile" + ], + "summary": "Link wallet v2", + "description": "Link an external EOA wallet to an Immutable Passport account by providing an EIP-712 signature.", + "operationId": "link-wallet-v2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LinkWalletV2Request" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Wallet" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/passport-profile/v1/user/info": { + "get": { + "summary": "Get all info for a Passport user", + "description": "Get all the info for an authenticated Passport user", + "tags": [ + "passport profile" + ], + "operationId": "getUserInfo", + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "responses": { + "200": { + "description": "Passport user's info", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserInfo" + } + } + } + }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } + } + } + } + }, + "/v1/chains/{chain_name}/search/filters/{contract_address}": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "ListFilters", + "summary": "Get list of metadata attribute filters", + "description": "Get list of metadata filters", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract addresses for collection", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListFiltersResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/search/nfts": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "SearchNFTs", + "summary": "Search NFTs", + "description": "Search NFTs", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "query", + "required": true, + "description": "List of contract addresses to filter by", + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "maxItems": 20, + "minItems": 1 + } + }, + { + "name": "account_address", + "in": "query", + "required": false, + "description": "Account address to filter by", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } + }, + { + "name": "stack_id", + "in": "query", + "required": false, + "description": "Filters NFTs that belong to any of these stacks", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" + }, + "minItems": 1, + "maxItems": 20 + } + }, + { + "name": "only_include_owner_listings", + "in": "query", + "required": false, + "description": "Whether the listings should include only the owner created listings", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "description": "Number of results to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchNFTsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/search/stacks": { + "get": { + "tags": [ + "metadata-search" + ], + "operationId": "SearchStacks", + "summary": "Search NFT stacks", + "description": "Search NFT stacks", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "query", + "required": true, + "description": "List of contract addresses to filter by", + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "maxItems": 20, + "minItems": 1 + } + }, + { + "name": "account_address", + "in": "query", + "required": false, + "description": "Account address to filter by", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + } + }, + { + "name": "only_include_owner_listings", + "in": "query", + "required": false, + "description": "Whether to the listings should include only the owner created listings", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "only_if_has_active_listings", + "in": "query", + "required": false, + "description": "Filters results to include only stacks that have a current active listing. False and 'null' return all unfiltered stacks.", + "schema": { + "type": "boolean", + "example": true + } + }, + { + "name": "traits", + "in": "query", + "required": false, + "description": "JSON encoded traits to filter by. e.g. encodeURIComponent(JSON.stringify({\"rarity\": {\"values\": [\"common\", \"rare\"], \"condition\": \"eq\"}}))", + "schema": { + "type": "string" + } + }, + { + "name": "keyword", + "in": "query", + "required": false, + "description": "Keyword to search NFT name and description. Alphanumeric characters only.", + "schema": { + "type": "string", + "example": "sword" + } + }, + { + "name": "payment_token", + "in": "query", + "required": false, + "description": "Filters the active listings, bids, floor listing and top bid by the specified payment token, either the address of the payment token contract or 'NATIVE'", + "schema": { + "type": "string", + "example": "NATIVE" + } + }, + { + "name": "sort_by", + "in": "query", + "required": false, + "description": "Sort results in a specific order", + "schema": { + "type": "string", + "nullable": false, + "enum": [ + "cheapest_first" + ] + } + }, + { + "name": "page_size", + "in": "query", + "required": false, + "description": "Number of results to return per page", + "schema": { + "$ref": "#/components/schemas/PageSize" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchStacksResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/stacks": { + "get": { + "tags": [ + "metadata" + ], + "operationId": "ListStacks", + "summary": "List NFT stack bundles by stack_id. Response will include Market, Listings & Stack Count information for each stack", + "description": "List NFT stack bundles by stack_id. This endpoint functions similarly to `ListMetadataByID` but extends the response to include Market, Listings & Stack Count information for each stack.", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "stack_id", + "in": "query", + "required": true, + "description": "List of stack_id to filter by", + "schema": { + "type": "array", + "items": { + "format": "uuid", + "type": "string", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" + }, + "maxItems": 20, + "minItems": 1 + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "List of stack bundles", + "items": { + "$ref": "#/components/schemas/StackBundle" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/quotes/{contract_address}/stacks": { + "get": { + "tags": [ + "pricing" + ], + "operationId": "QuotesForStacks", + "summary": "Get pricing data for a list of stack ids", + "description": "Get pricing data for a list of stack ids", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address for collection that these stacks are on", + "schema": { + "pattern": "^0x[a-fA-F0-9]{40}$", + "type": "string" + } + }, + { + "name": "stack_id", + "in": "query", + "required": true, + "description": "List of stack ids to get pricing data for", + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "uuid", + "example": "7053e765-c119-4efb-b5cf-405ccccaf6c4" + }, + "minItems": 1, + "maxItems": 20 + } + }, + { + "name": "payment_token", + "in": "query", + "required": false, + "description": "Filters the active listings, bids, floor listing and top bid by the specified payment token, either the address of the payment token contract or 'NATIVE'.", + "schema": { + "type": "string", + "example": "NATIVE" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotesForStacksResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/v1/chains/{chain_name}/quotes/{contract_address}/nfts": { + "get": { + "tags": [ + "pricing" + ], + "operationId": "QuotesForNFTs", + "summary": "Get pricing data for a list of token ids", + "description": "pricing data for a list of token ids", + "parameters": [ + { + "name": "chain_name", + "description": "The name of chain", + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "in": "path", + "required": true, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address for collection that these token ids are on", + "schema": { + "type": "string", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + { + "name": "token_id", + "in": "query", + "required": true, + "description": "List of token ids to get pricing data for", + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^\\d+$", + "example": "1337" + }, + "minItems": 1, + "maxItems": 20 + } + }, + { + "name": "payment_token", + "in": "query", + "required": false, + "description": "Filters the active listings, bids, floor listing and top bid by the specified payment token, either the address of the payment token contract or 'NATIVE'.", + "schema": { + "type": "string", + "example": "NATIVE" + } + }, + { + "name": "page_cursor", + "in": "query", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "required": false, + "schema": { + "$ref": "#/components/schemas/PageCursor" + } + } + ], + "responses": { + "200": { + "description": "200 response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotesForNFTsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "401": { + "$ref": "#/components/responses/UnauthorisedRequest" + }, + "403": { + "$ref": "#/components/responses/ForbiddenRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + } + }, + "components": { + "securitySchemes": { + "BearerAuthWithClient": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT" + }, + "BearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT" + }, + "ImmutableApiKey": { + "x-go-name": "ImmutableApiKey", + "type": "apiKey", + "in": "header", + "name": "x-immutable-api-key" + }, + "OktaBearerAuth": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT" + } + }, + "parameters": { + "ChainName": { + "name": "chain_name", + "description": "The name of chain", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + }, + "examples": { + "testnet": { + "value": "imtbl-zkevm-testnet", + "summary": "Immutable zkEVM Public Testnet" + } + } + }, + "ContractAddress": { + "name": "contract_address", + "in": "path", + "required": true, + "description": "Contract address", + "schema": { + "$ref": "#/components/schemas/Address" + } + } + }, + "responses": { + "NotFound": { + "description": "The specified resource was not found (404)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "BadRequest": { + "description": "Bad Request (400)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "UnauthorisedRequest": { + "description": "Unauthorised Request (401)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "ForbiddenRequest": { + "description": "Forbidden Request (403)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "Conflict": { + "description": "Conflict (409)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError409" + } + } + } + }, + "TooManyRequests": { + "description": "Too Many Requests (429)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + }, + "headers": { + "Retry-After": { + "$ref": "#/components/headers/RetryAfter" + } + } + }, + "TooManyMetadataRefreshes": { + "description": "Too Many Metadata refreshes (429)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + }, + "headers": { + "imx-refreshes-limit": { + "$ref": "#/components/headers/MetadataRefreshLimit" + }, + "imx-refresh-limit-reset": { + "$ref": "#/components/headers/MetadataRefreshLimitReset" + }, + "imx-remaining-refreshes": { + "$ref": "#/components/headers/MetadataRefreshLimitRemaining" + }, + "Retry-After": { + "$ref": "#/components/headers/MetadataRefreshRetryAfter" + } + } + }, + "TooManyMintRequests": { + "description": "Too Many mint requests (429)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + }, + "headers": { + "imx-mint-requests-limit": { + "$ref": "#/components/headers/MintRequestsLimit" + }, + "imx-mint-requests-limit-reset": { + "$ref": "#/components/headers/MintRequestsLimitReset" + }, + "imx-remaining-mint-requests": { + "$ref": "#/components/headers/MintRequestsLimitRemaining" + }, + "imx-mint-requests-retry-after": { + "$ref": "#/components/headers/MintRequestsRetryAfter" + }, + "Retry-After": { + "$ref": "#/components/headers/MintRequestsRetryAfter" + } + } + }, + "InternalServerError": { + "description": "Internal Server Error (500)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "NotImplementedError": { + "description": "Not Implemented Error (501)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError501" + } + } + } + } + }, + "headers": { + "MetadataRefreshLimit": { + "description": "The refresh request limit available to the project for each one-hour window.", + "schema": { + "type": "string" + } + }, + "MetadataRefreshLimitReset": { + "description": "The expiry date of the current one-hour window.", + "schema": { + "type": "string" + } + }, + "MetadataRefreshLimitRemaining": { + "description": "The number of refresh requests remaining in the current window.", + "schema": { + "type": "string" + } + }, + "MetadataRefreshRetryAfter": { + "description": "The number of seconds until the next refresh request can be made.", + "schema": { + "type": "string" + } + }, + "RetryAfter": { + "description": "The number of seconds until the next request can be made.", + "schema": { + "type": "string" + } + }, + "MintRequestsLimit": { + "description": "The mint requests limit available to the project for each time window.", + "schema": { + "type": "string" + } + }, + "MintRequestsLimitReset": { + "description": "The expiry date of the current time window.", + "schema": { + "type": "string" + } + }, + "MintRequestsLimitRemaining": { + "description": "The number of mint requests remaining in the current window.", + "schema": { + "type": "string" + } + }, + "MintRequestsRetryAfter": { + "description": "The number of seconds until the next refresh request can be made.", + "schema": { + "type": "string" + } + } + }, + "schemas": { + "PageSize": { + "type": "integer", + "format": "int32", + "description": "Maximum number of items to return", + "minimum": 1, + "default": 100, + "maximum": 200, + "example": 10 + }, + "PageCursor": { + "type": "string", + "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" + }, + "Page": { + "type": "object", + "description": "Pagination properties", + "properties": { + "previous_cursor": { + "type": "string", + "nullable": true, + "description": "First item as an encoded string", + "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" + }, + "next_cursor": { + "type": "string", + "nullable": true, + "description": "Last item as an encoded string", + "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" + } + }, + "required": [ + "previous_cursor", + "next_cursor" + ] + }, + "ActivityType": { + "description": "The activity type", + "example": "mint", + "type": "string", + "enum": [ + "mint", + "burn", + "transfer", + "sale", + "deposit", + "withdrawal" + ] + }, + "ActivityNFT": { + "type": "object", + "properties": { + "contract_type": { + "$ref": "#/components/schemas/NFTContractType" + }, + "contract_address": { + "description": "The token contract address", + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "token_id": { + "description": "An `uint256` token id as string", + "type": "string", + "example": "1" + }, + "amount": { + "description": "(deprecated - will never be filled, use amount on Activity instead) The amount of tokens exchanged", + "type": "string", + "example": "1", + "deprecated": true + } + }, + "required": [ + "contract_type", + "contract_address", + "token_id", + "amount" + ] + }, + "ActivityToken": { + "type": "object", + "properties": { + "contract_type": { + "$ref": "#/components/schemas/TokenContractType" + }, + "contract_address": { + "description": "The contract address", + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + } + }, + "required": [ + "contract_type", + "contract_address" + ] + }, + "ActivityAsset": { + "description": "The contract and asset details for this activity", + "oneOf": [ + { + "$ref": "#/components/schemas/ActivityNFT" + }, + { + "$ref": "#/components/schemas/ActivityToken" + } + ], + "discriminator": { + "propertyName": "contract_type" + } + }, + "Address": { + "x-go-type": "common.Address", + "x-go-type-import": { + "path": "github.com/ethereum/go-ethereum/common", + "name": "common" + }, + "description": "An Ethereum address", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "Mint": { + "type": "object", + "description": "The mint activity details", + "properties": { + "to": { + "description": "The account address the asset was minted to", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "amount": { + "description": "The minted amount", + "type": "string", + "example": "1" + }, + "asset": { + "$ref": "#/components/schemas/ActivityAsset" + } + }, + "required": [ + "to", + "amount", + "asset" + ] + }, + "Deposit": { + "type": "object", + "description": "The deposit activity details", + "properties": { + "to": { + "description": "The account address the asset was deposited to", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "amount": { + "description": "The deposited amount", + "type": "string", + "example": "1" + }, + "asset": { + "$ref": "#/components/schemas/ActivityAsset" + } + }, + "required": [ + "to", + "amount", + "asset" + ] + }, + "Burn": { + "description": "The burn activity details", + "type": "object", + "properties": { + "from": { + "description": "The account address the asset was transferred from", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "amount": { + "description": "The amount of assets burnt", + "type": "string", + "example": "1" + }, + "asset": { + "$ref": "#/components/schemas/ActivityAsset" + } + }, + "required": [ + "from", + "amount", + "asset" + ] + }, + "Withdrawal": { + "description": "The withdrawal activity details", + "type": "object", + "properties": { + "from": { + "description": "The account address the asset was withdrawn from", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "amount": { + "description": "The amount of assets withdrawn", + "type": "string", + "example": "1" + }, + "asset": { + "$ref": "#/components/schemas/ActivityAsset" + } + }, + "required": [ + "from", + "amount", + "asset" + ] + }, + "Transfer": { + "type": "object", + "description": "The transfer activity details", + "properties": { + "from": { + "description": "The account address the asset was transferred from", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "to": { + "description": "The account address the asset was transferred to", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "amount": { + "description": "The amount of assets transferred", + "type": "string", + "example": "1" + }, + "asset": { + "$ref": "#/components/schemas/ActivityAsset" + } + }, + "required": [ + "activity_type", + "from", + "to", + "amount", + "asset" + ] + }, + "ActivityNativeToken": { + "type": "object", + "properties": { + "symbol": { + "description": "The token symbol", + "type": "string", + "example": "ETH" + } + }, + "required": [ + "symbol" + ] + }, + "SalePayment": { + "type": "object", + "properties": { + "token": { + "description": "The type of payment token", + "oneOf": [ + { + "$ref": "#/components/schemas/ActivityToken" + }, + { + "$ref": "#/components/schemas/ActivityNativeToken" + } + ] + }, + "price_excluding_fees": { + "description": "The base price of the sale not including any fees", + "type": "string", + "example": "180" + }, + "price_including_fees": { + "description": "The total price of the sale. Includes the sum of all fees", + "type": "string", + "example": "200" + }, + "fees": { + "description": "The fees associated with this sale", + "type": "array", + "items": { + "$ref": "#/components/schemas/SaleFee" + }, + "example": [ + { + "address": "0xB0F3749458169B7Ad51B5503CC3649DE55c2D0D2", + "amount": "20", + "type": "ROYALTY" + } + ], + "minItems": 0 + } + }, + "required": [ + "token", + "price_excluding_fees", + "price_including_fees", + "fees" + ] + }, + "SaleFee": { + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "Fee payable to recipient upon settlement", + "example": "200" + }, + "type": { + "type": "string", + "description": "Fee type", + "example": "ROYALTY", + "enum": [ + "ROYALTY" + ] + }, + "recipient": { + "type": "string", + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + } + }, + "NFTSale": { + "description": "The NFT Sale activity details", + "type": "object", + "properties": { + "order_id": { + "description": "The id of order", + "type": "string", + "example": "ARZ3NDEKTSV4RRFFQ69G5FAV" + }, + "to": { + "description": "The account address of buyer", + "type": "string", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "from": { + "description": "The account address of seller", + "type": "string", + "example": "0xbD6cFcf93474De653d7B42b346c7c25d1F9c559C" + }, + "asset": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ActivityNFT" + } + }, + "payment": { + "$ref": "#/components/schemas/SalePayment" + } + }, + "required": [ + "order_id", + "to", + "from", + "asset", + "payment" + ] + }, + "ActivityDetails": { + "description": "The activity details", + "oneOf": [ + { + "$ref": "#/components/schemas/Mint" + }, + { + "$ref": "#/components/schemas/Burn" + }, + { + "$ref": "#/components/schemas/Transfer" + }, + { + "$ref": "#/components/schemas/NFTSale" + }, + { + "$ref": "#/components/schemas/Deposit" + }, + { + "$ref": "#/components/schemas/Withdrawal" + } + ] + }, + "BlockchainMetadata": { + "description": "The metadata related to blockchain transaction", + "nullable": true, + "type": "object", + "properties": { + "transaction_hash": { + "type": "string", + "description": "The transaction hash of the activity", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + }, + "block_number": { + "description": "EVM block number (uint64 as string)", + "type": "string", + "example": "1" + }, + "transaction_index": { + "description": "Transaction index in a block (uint32 as string)", + "type": "string", + "example": "1" + }, + "log_index": { + "description": "The log index of activity in a block (uint32 as string)", + "type": "string", + "nullable": true, + "example": "1" + } + }, + "required": [ + "transaction_hash", + "block_number", + "transaction_index", + "log_index" + ] + }, + "Activity": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/ActivityID" + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "type": { + "$ref": "#/components/schemas/ActivityType" + }, + "details": { + "$ref": "#/components/schemas/ActivityDetails" + }, + "updated_at": { + "type": "string", + "description": "The time activity was updated at", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z" + }, + "indexed_at": { + "type": "string", + "description": "The time activity was indexed", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z" + }, + "blockchain_metadata": { + "$ref": "#/components/schemas/BlockchainMetadata" + } + }, + "required": [ + "id", + "chain", + "type", + "details", + "indexed_at", + "updated_at", + "blockchain_metadata" + ] + }, + "ListActivitiesResult": { + "type": "object", + "description": "List activities response", + "properties": { + "result": { + "type": "array", + "description": "List of activities", + "items": { + "$ref": "#/components/schemas/Activity" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "GetActivityResult": { + "type": "object", + "description": "Single activity", + "properties": { + "result": { + "$ref": "#/components/schemas/Activity" + } + }, + "required": [ + "result" + ] + }, + "Collection": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "name": { + "type": "string", + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "symbol": { + "type": "string", + "nullable": true, + "description": "The symbol of contract", + "example": "BASP" + }, + "contract_type": { + "$ref": "#/components/schemas/CollectionContractType" + }, + "contract_address": { + "type": "string", + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "description": { + "type": "string", + "nullable": true, + "description": "The description of collection", + "example": "Some description" + }, + "image": { + "type": "string", + "description": "The url of the collection image", + "example": "https://some-url", + "nullable": true + }, + "external_link": { + "type": "string", + "description": "The url of external link", + "example": "https://some-url", + "nullable": true + }, + "contract_uri": { + "type": "string", + "description": "The uri for the metadata of the collection", + "example": "https://some-url", + "nullable": true + }, + "base_uri": { + "type": "string", + "nullable": true, + "description": "The metadata uri for nft", + "example": "https://some-url" + }, + "verification_status": { + "$ref": "#/components/schemas/AssetVerificationStatus" + }, + "indexed_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection was first indexed" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection was last updated" + }, + "metadata_synced_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection metadata was last synced" + } + }, + "required": [ + "chain", + "name", + "symbol", + "contract_type", + "contract_address", + "description", + "image", + "external_link", + "base_uri", + "metadata_uri", + "indexed_at", + "updated_at", + "metadata_synced_at", + "verification_status" + ] + }, + "ListCollectionsResult": { + "type": "object", + "properties": { + "result": { + "description": "List of collections", + "type": "array", + "items": { + "$ref": "#/components/schemas/Collection" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "GetCollectionResult": { + "type": "object", + "description": "Single Collection", + "properties": { + "result": { + "$ref": "#/components/schemas/Collection" + } + }, + "required": [ + "result" + ] + }, + "GetMetadataResult": { + "type": "object", + "description": "Single metadata", + "properties": { + "result": { + "$ref": "#/components/schemas/Metadata" + } + }, + "required": [ + "result" + ] + }, + "ListMetadataResult": { + "type": "object", + "properties": { + "result": { + "description": "List of metadata", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "Metadata": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/MetadataID" + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "description": "The contract address of the metadata" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the metadata was created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" + }, + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" + }, + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" + }, + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" + }, + "external_url": { + "type": "string", + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" + }, + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + } + }, + "required": [ + "id", + "chain", + "contract_address", + "created_at", + "updated_at", + "name", + "description", + "image", + "external_link", + "animation_url", + "youtube_url", + "attributes" + ] + }, + "RefreshMetadataByIDRequest": { + "type": "object", + "description": "Request body for refreshing metadata by id. Total size of this list should not exceed 228 KiB", + "properties": { + "metadata": { + "type": "array", + "maxItems": 10, + "minItems": 1, + "items": { + "$ref": "#/components/schemas/RefreshMetadataByID" + } + } + }, + "required": [ + "metadata" + ] + }, + "NFT": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "token_id": { + "type": "string", + "example": "1", + "description": "An `uint256` token id as string" + }, + "contract_address": { + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "description": "The contract address of the NFT" + }, + "contract_type": { + "$ref": "#/components/schemas/NFTContractType" + }, + "indexed_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT was first indexed" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT owner was last updated" + }, + "metadata_synced_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "When NFT metadata was last synced", + "example": "2022-08-16T17:43:26.991388Z" + }, + "metadata_id": { + "type": "string", + "format": "uuid", + "nullable": true, + "description": "The id of the metadata of this NFT", + "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" + }, + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" + }, + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" + }, + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" + }, + "external_link": { + "deprecated": true, + "type": "string", + "nullable": true, + "description": "(deprecated - use external_url instead) The external website link of NFT", + "example": "https://some-url" + }, + "external_url": { + "type": "string", + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" + }, + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of NFT Metadata attributes", + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + }, + "total_supply": { + "type": "string", + "nullable": true, + "description": "The total supply of NFT", + "example": "100" + } + }, + "required": [ + "chain", + "token_id", + "contract_address", + "indexed_at", + "updated_at", + "metadata_synced_at", + "name", + "description", + "image", + "external_link", + "external_url", + "animation_url", + "youtube_url", + "attributes", + "contract_type" + ] + }, + "NFTWithBalance": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "token_id": { + "type": "string", + "example": "1", + "description": "An `uint256` token id as string" + }, + "contract_address": { + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "description": "The contract address of the NFT" + }, + "contract_type": { + "$ref": "#/components/schemas/NFTContractType" + }, + "indexed_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT was first indexed" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT owner was last updated" + }, + "metadata_synced_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "When NFT metadata was last synced", + "example": "2022-08-16T17:43:26.991388Z" + }, + "metadata_id": { + "type": "string", + "format": "uuid", + "nullable": true, + "description": "The id of the metadata of this NFT", + "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" + }, + "name": { + "type": "string", + "nullable": true, + "description": "The name of the NFT", + "example": "Sword" + }, + "description": { + "type": "string", + "nullable": true, + "description": "The description of the NFT", + "example": "This is a super awesome sword" + }, + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" + }, + "external_link": { + "type": "string", + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" + }, + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": false, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + }, + "balance": { + "type": "string", + "nullable": false, + "description": "The amount of this NFT this account owns", + "example": "11" + } + }, + "required": [ + "chain", + "token_id", + "contract_address", + "indexed_at", + "updated_at", + "metadata_synced_at", + "name", + "description", + "image", + "external_link", + "animation_url", + "youtube_url", + "balance", + "contract_type", + "attributes" + ] + }, + "NFTMetadataAttribute": { + "type": "object", + "properties": { + "display_type": { + "description": "Display type for this attribute", + "type": "string", + "nullable": true, + "enum": [ + "number", + "boost_percentage", + "boost_number", + "date" + ], + "example": "number" + }, + "trait_type": { + "description": "The metadata trait type", + "type": "string", + "example": "Aqua Power" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ], + "description": "The metadata trait value", + "example": "Happy" + } + }, + "required": [ + "trait_type", + "value" + ] + }, + "ChainName": { + "type": "string", + "description": "The name of chain", + "example": "imtbl-zkevm-testnet" + }, + "ActivityID": { + "description": "Activity id in UUIDv4 format", + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" + }, + "MetadataID": { + "description": "Metadata id in UUIDv4 format", + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" + }, + "CollectionContractType": { + "description": "The collection contract type", + "type": "string", + "enum": [ + "ERC721", + "ERC1155" + ] + }, + "NFTContractType": { + "description": "The contract type for an NFT", + "type": "string", + "enum": [ + "ERC721", + "ERC1155" + ] + }, + "TokenContractType": { + "description": "The contract type for a token", + "type": "string", + "enum": [ + "ERC20" + ] + }, + "AssetVerificationStatus": { + "description": "The verification status for a given contract", + "type": "string", + "enum": [ + "verified", + "unverified", + "spam", + "inactive" + ] + }, + "VerificationRequestStatus": { + "description": "The status of the verification request", + "type": "string", + "enum": [ + "completed", + "pending" + ] + }, + "GetNFTResult": { + "type": "object", + "description": "Single NFT", + "properties": { + "result": { + "$ref": "#/components/schemas/NFT" + } + }, + "required": [ + "result" + ] + }, + "ListNFTsResult": { + "type": "object", + "properties": { + "result": { + "description": "List of NFTs", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFT" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ListNFTsByOwnerResult": { + "type": "object", + "properties": { + "result": { + "description": "List of NFTs by owner", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTWithBalance" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "NFTOwner": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "The address of NFT contract", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + }, + "token_id": { + "type": "string", + "description": "An `uint256` token id as string", + "example": "1" + }, + "account_address": { + "type": "string", + "description": "The account address of the owner of the NFT", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + }, + "balance": { + "type": "string", + "description": "The amount of owned tokens (uint256 as string)", + "example": "1" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT owner was last updated" + } + }, + "required": [ + "chain", + "contract_address", + "token_id", + "account_address", + "balance" + ] + }, + "NFTWithOwner": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "The address of NFT contract", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + }, + "token_id": { + "type": "string", + "description": "An `uint256` token id as string", + "example": "1" + }, + "account_address": { + "type": "string", + "description": "The account address of the owner of the NFT", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + }, + "balance": { + "type": "string", + "description": "The amount of owned tokens (uint256 as string)", + "example": "1" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the owner last changed for the given NFT" + } + }, + "required": [ + "chain", + "contract_address", + "token_id", + "account_address", + "balance", + "updated_at" + ] + }, + "GetTokenResult": { + "type": "object", + "description": "Single Token", + "properties": { + "result": { + "$ref": "#/components/schemas/Token" + } + }, + "required": [ + "result" + ] + }, + "ListNFTOwnersResult": { + "type": "object", + "properties": { + "result": { + "description": "List of nft owners", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTOwner" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ListCollectionOwnersResult": { + "type": "object", + "properties": { + "result": { + "description": "List of NFT owners", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTWithOwner" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ChainWithDetails": { + "allOf": [ + { + "$ref": "#/components/schemas/Chain" + }, + { + "type": "object", + "properties": { + "rpc_url": { + "type": "string", + "nullable": true, + "description": "URL for RPC node" + }, + "operator_allowlist_address": { + "type": "string", + "nullable": true, + "description": "The address of the Operator Allowlist - https://docs.immutable.com/products/zkevm/minting/royalties/allowlist-spec/" + }, + "minter_address": { + "type": "string", + "nullable": true, + "description": "The address of the minter used in the Minting API - https://docs.immutable.com/products/zkEVM/minting/minting-api#minting-api-prerequisites" + } + }, + "required": [ + "rpc_url", + "operator_allowlist_address", + "minter_address" + ] + } + ] + }, + "Chain": { + "type": "object", + "description": "The chain details", + "properties": { + "id": { + "type": "string", + "description": "The id of chain", + "example": "eip155:13372" + }, + "name": { + "type": "string", + "description": "The name of chain", + "example": "imtbl-zkevm-testnet" + } + }, + "required": [ + "id", + "name" + ] + }, + "ListChainsResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "description": "List of chains", + "items": { + "$ref": "#/components/schemas/ChainWithDetails" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ListTokensResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "description": "List of tokens", + "items": { + "$ref": "#/components/schemas/Token" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "RefreshMetadataByID": { + "allOf": [ + { + "$ref": "#/components/schemas/RefreshableNFTAttributes" + }, + { + "type": "object", + "properties": { + "metadata_id": { + "$ref": "#/components/schemas/MetadataID" + } + }, + "required": [ + "metadata_id" + ] + } + ] + }, + "RefreshMetadataByTokenID": { + "allOf": [ + { + "$ref": "#/components/schemas/RefreshableNFTAttributes" + }, + { + "type": "object", + "properties": { + "token_id": { + "type": "string", + "description": "An `uint256` token id as string", + "example": "1" + } + }, + "required": [ + "token_id" + ] + } + ] + }, + "RefreshableNFTAttributes": { + "allOf": [ + { + "$ref": "#/components/schemas/NFTMetadataRequest" + } + ], + "required": [ + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes" + ] + }, + "NFTMetadataRequest": { + "type": "object", + "description": "The NFT metadata. Total size of this object should not exceed 16 KiB", + "properties": { + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" + }, + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" + }, + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" + }, + "external_url": { + "type": "string", + "nullable": true, + "description": "The external link of the NFT", + "example": "https://some-url" + }, + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube link of the NFT", + "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + } + } + }, + "RefreshNFTMetadataByTokenIDRequest": { + "type": "object", + "properties": { + "nft_metadata": { + "type": "array", + "description": "List of nft metadata to be refreshed. Total size of the list should not exceed 228 KiB", + "maxItems": 250, + "minItems": 1, + "items": { + "$ref": "#/components/schemas/RefreshMetadataByTokenID" + } + } + }, + "required": [ + "nft_metadata" + ] + }, + "Token": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "The address of token contract", + "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" + }, + "root_contract_address": { + "type": "string", + "description": "The address of root token contract", + "example": "0x43e60b30d5bec48c0f5890e3d1e9f1b1296bb4aa", + "nullable": true + }, + "root_chain_id": { + "type": "string", + "description": "The id of the root chain for a bridged token", + "example": "eip155:1", + "nullable": true + }, + "bridge_used": { + "type": "string", + "description": "The name of the bridge, for bridged tokens only", + "example": "axelar", + "nullable": true + }, + "symbol": { + "type": "string", + "description": "The symbol of token", + "example": "AAA", + "nullable": true + }, + "decimals": { + "type": "integer", + "description": "The decimals of token", + "example": 18, + "nullable": true + }, + "image_url": { + "type": "string", + "description": "The image url of token", + "example": "https://some-url", + "nullable": true + }, + "name": { + "type": "string", + "description": "The name of token", + "example": "Token A", + "nullable": true + }, + "verification_status": { + "$ref": "#/components/schemas/AssetVerificationStatus" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection was last updated" + }, + "is_canonical": { + "type": "boolean", + "example": true, + "description": "Indicates whether the token is canonical or not" + } + }, + "required": [ + "chain", + "contract_address", + "root_contract_address", + "symbol", + "decimals", + "image_url", + "name", + "updated_at", + "verification_status", + "is_canonical" + ] + }, + "CollectionMetadata": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true, + "description": "The name of the collection", + "example": "Gigantic Lizards" + }, + "symbol": { + "type": "string", + "nullable": true, + "description": "The symbol of contract", + "example": "GLZ" + }, + "description": { + "type": "string", + "nullable": true, + "description": "The description of collection", + "example": "This is the Gigantic Lizards collection" + }, + "image": { + "type": "string", + "description": "The url of the collection image", + "example": "https://some-url", + "nullable": true + }, + "external_link": { + "type": "string", + "description": "The url of external link", + "example": "https://some-url", + "nullable": true + }, + "contract_uri": { + "type": "string", + "description": "The uri for the metadata of the collection", + "example": "https://some-url", + "nullable": true + }, + "base_uri": { + "type": "string", + "nullable": true, + "description": "The metadata uri for nft", + "example": "https://some-url" + } + }, + "required": [ + "name", + "image", + "symbol", + "description", + "base_uri", + "external_link", + "contract_uri" + ] + }, + "RefreshCollectionMetadataRequest": { + "type": "object", + "properties": { + "collection_metadata": { + "$ref": "#/components/schemas/CollectionMetadata" + } + }, + "required": [ + "collection_metadata" + ] + }, + "RefreshCollectionMetadataResult": { + "type": "object", + "properties": { + "contract_address": { + "type": "string" + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "collection_metadata": { + "$ref": "#/components/schemas/CollectionMetadata" + } + }, + "required": [ + "contract_address", + "chain", + "collection_metadata" + ] + }, + "MetadataRefreshRateLimitResult": { + "type": "object", + "properties": { + "imx_refreshes_limit": { + "type": "string" + }, + "imx_refresh_limit_reset": { + "type": "string" + }, + "imx_remaining_refreshes": { + "type": "string" + }, + "retry_after": { + "type": "string" + } + }, + "required": [ + "imx_refreshes_limit", + "imx_refresh_limit_reset", + "imx_remaining_refreshes", + "retry_after" + ] + }, + "CreateMintRequestRequest": { + "type": "object", + "properties": { + "assets": { + "type": "array", + "maxItems": 100, + "minItems": 1, + "description": "List of nft to be minted", + "items": { + "$ref": "#/components/schemas/MintAsset" + } + } + }, + "required": [ + "assets" + ] + }, + "VerificationRequestInternal": { + "description": "The verification request (internal)", + "allOf": [ + { + "$ref": "#/components/schemas/VerificationRequest" + }, + { + "type": "object", + "properties": { + "org_tier": { + "$ref": "#/components/schemas/OrganisationTier" + } + }, + "required": [ + "org_tier" + ] + } + ] + }, + "VerificationRequest": { + "description": "The verification request", + "type": "object", + "properties": { + "id": { + "description": "The id of the verification request", + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "description": "The contract address", + "type": "string", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "org_name": { + "description": "The name of the organisation associated with this contract", + "nullable": true, + "type": "string", + "example": "Immutable" + }, + "name": { + "type": "string", + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "symbol": { + "type": "string", + "nullable": true, + "description": "The symbol of contract", + "example": "BASP" + }, + "description": { + "type": "string", + "nullable": true, + "description": "The description of collection", + "example": "Some description" + }, + "org_id": { + "type": "string", + "nullable": true, + "description": "The id of the organisation associated with this contract", + "example": "753da67a-5d3b-42c7-b87a-eba3d17a6362" + }, + "requester_email": { + "type": "string", + "nullable": true, + "description": "The email address of the user who requested the contract to be verified", + "example": "user@immutable.com" + }, + "contract_type": { + "$ref": "#/components/schemas/VerificationRequestContractType" + }, + "verification_request_status": { + "$ref": "#/components/schemas/VerificationRequestStatus" + } + }, + "required": [ + "id", + "chain", + "contract_address", + "name", + "symbol", + "description", + "contract_type", + "org_name", + "org_id", + "requester_email", + "verification_request_status" + ] + }, + "VerificationRequestContractType": { + "description": "The contract type associated with the given request", + "type": "string", + "enum": [ + "ERC20", + "ERC721", + "ERC1155" + ] + }, + "OrganisationTier": { + "description": "The tier of the organisation", + "type": "string", + "nullable": true, + "enum": [ + "common", + "uncommon", + "rare", + "epic", + "legendary" + ] + }, + "MintAsset": { + "type": "object", + "properties": { + "reference_id": { + "type": "string", + "description": "The id of this asset in the system that originates the mint request", + "example": "67f7d464-b8f0-4f6a-9a3b-8d3cb4a21af0" + }, + "owner_address": { + "type": "string", + "description": "The address of the receiver", + "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" + }, + "token_id": { + "type": "string", + "description": "An optional `uint256` token id as string. Required for ERC1155 collections.", + "example": "1", + "nullable": true + }, + "amount": { + "type": "string", + "description": "Optional mount of tokens to mint. Required for ERC1155 collections. ERC712 collections can omit this field or set it to 1", + "example": "1", + "nullable": true, + "minLength": 1 + }, + "metadata": { + "$ref": "#/components/schemas/NFTMetadataRequest" + } + }, + "required": [ + "reference_id", + "owner_address" + ] + }, + "CreateMintRequestResult": { + "type": "object", + "properties": { + "imx_mint_requests_limit": { + "type": "string" + }, + "imx_mint_requests_limit_reset": { + "type": "string" + }, + "imx_remaining_mint_requests": { + "type": "string" + }, + "imx_mint_requests_retry_after": { + "type": "string" + } + }, + "required": [ + "imx_mint_requests_limit", + "imx_mint_requests_limit_reset", + "imx_remaining_mint_requests", + "imx_mint_requests_retry_after" + ] + }, + "ListMintRequestsResult": { + "type": "object", + "description": "List mint requests", + "properties": { + "result": { + "type": "array", + "description": "List of mint requests", + "items": { + "$ref": "#/components/schemas/GetMintRequestResult" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "GetMintRequestResult": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "collection_address": { + "type": "string", + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "reference_id": { + "type": "string", + "description": "The reference id of this mint request" + }, + "owner_address": { + "type": "string", + "description": "The address of the owner of the NFT" + }, + "token_id": { + "type": "string", + "example": "1", + "nullable": true, + "description": "An `uint256` token id as string. Only available when the mint request succeeds" + }, + "amount": { + "type": "string", + "example": "1", + "nullable": true, + "description": "An `uint256` amount as string. Only relevant for mint requests on ERC1155 contracts" + }, + "activity_id": { + "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b", + "nullable": true, + "description": "The id of the mint activity associated with this mint request" + }, + "transaction_hash": { + "type": "string", + "nullable": true, + "description": "The transaction hash of the activity", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the mint request was created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "When the mint request was last updated", + "example": "2022-08-16T17:43:26.991388Z" + }, + "error": { + "$ref": "#/components/schemas/MintRequestErrorMessage" + }, + "status": { + "$ref": "#/components/schemas/MintRequestStatus" + } + }, + "required": [ + "chain", + "collection_address", + "reference_id", + "owner_address", + "status", + "token_id", + "transaction_hash", + "error", + "created_at", + "updated_at" + ] + }, + "MintRequestErrorMessage": { + "type": "object", + "description": "The error details in case the mint request fails", + "nullable": true, + "properties": { + "message": { + "description": "An error message in case the mint request fails", + "type": "string" + } + } + }, + "MintRequestStatus": { + "description": "The status of the mint request", + "example": "pending", + "type": "string", + "enum": [ + "pending", + "succeeded", + "failed" + ] + }, + "OperatorAllowlistStatus": { + "description": "The status of a contract on the operator allowlist", + "example": "requested", + "type": "string", + "enum": [ + "requested", + "approved", + "rejected", + "removed", + "added" + ] + }, + "OperatorAllowlistStatusDetails": { + "description": "The operator allowlist status details", + "oneOf": [ + { + "$ref": "#/components/schemas/OperatorAllowlistStatusRequested" + }, + { + "$ref": "#/components/schemas/OperatorAllowlistStatusUpdated" + } + ] + }, + "OperatorAllowlistStatusRequested": { + "type": "object", + "description": "The request details", + "properties": { + "purpose": { + "description": "Reason this contract needs to be added", + "type": "string", + "example": "Custom crafting contract" + }, + "is_settlement_contract": { + "description": "Attestation of whether this contract is a settlement contract", + "type": "boolean", + "example": false + } + }, + "required": [ + "purpose", + "is_settlement_contract" + ] + }, + "OperatorAllowlistStatusUpdated": { + "type": "object", + "description": "The update details", + "properties": { + "reason": { + "description": "Why this action was performed", + "type": "string", + "example": "Contract meets expectations" + } + }, + "required": [ + "reason" + ] + }, + "OperatorAllowlistContractStatusInternal": { + "allOf": [ + { + "$ref": "#/components/schemas/OperatorAllowlistContractStatus" + }, + { + "type": "object", + "properties": { + "org_name": { + "description": "The name of the organisation associated with this contract", + "nullable": true, + "type": "string", + "example": "Immutable" + }, + "org_tier": { + "$ref": "#/components/schemas/OrganisationTier" + } + }, + "required": [ + "org_name", + "org_tier" + ] + } + ] + }, + "OperatorAllowlistContractStatus": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "status": { + "$ref": "#/components/schemas/OperatorAllowlistStatus" + }, + "details": { + "$ref": "#/components/schemas/OperatorAllowlistStatusDetails" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the contract status was created" + }, + "created_by": { + "type": "string", + "format": "email", + "description": "Who created the status", + "example": "user@immutable.com" + } + }, + "required": [ + "chain", + "contract_address", + "status", + "details", + "created_at", + "created_by" + ] + }, + "Call": { + "type": "object", + "properties": { + "target_address": { + "$ref": "#/components/schemas/Address" + }, + "function_signature": { + "type": "string", + "description": "The function signature", + "example": "mint(address,uint256)" + }, + "function_args": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The function arguments", + "example": [ + "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e", + "1" + ] + } + }, + "required": [ + "target_address", + "function_signature", + "function_args" + ] + }, + "SignCraftingRequest": { + "type": "object", + "properties": { + "multi_caller": { + "type": "object", + "properties": { + "address": { + "$ref": "#/components/schemas/Address" + }, + "name": { + "type": "string", + "description": "The name of the multicaller contract", + "example": "Multicaller" + }, + "version": { + "type": "string", + "description": "The version of the multicaller contract", + "example": "1" + } + }, + "required": [ + "address", + "name", + "version" + ] + }, + "reference_id": { + "type": "string", + "description": "The id of this request in the system that originates the crafting request, specified as a 32 byte hex string", + "example": "67f7d464b8f04f6a9a3b8d3cb4a21af0" + }, + "calls": { + "type": "array", + "description": "The calls to be signed", + "items": { + "$ref": "#/components/schemas/Call" + }, + "minLength": 1, + "maxLength": 100 + }, + "expires_at": { + "type": "string", + "format": "date-time", + "description": "The expiration time of the request", + "example": "2022-08-16T17:43:26.991388Z" + } + }, + "required": [ + "multi_caller", + "reference_id", + "calls", + "expires_at" + ] + }, + "SignCraftingResult": { + "type": "object", + "properties": { + "signer_address": { + "$ref": "#/components/schemas/Address" + }, + "signature": { + "type": "string", + "description": "The signature of the request", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + } + }, + "required": [ + "signer_address", + "signature" + ] + }, + "BasicAPIError": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error Message", + "example": "all fields must be provided" + }, + "link": { + "type": "string", + "description": "Link to IMX documentation that can help resolve this error", + "example": "https://docs.x.immutable.com/reference/#/" + }, + "trace_id": { + "type": "string", + "description": "Trace ID of the initial request", + "example": "e47634b79a5cd6894ddc9639ec4aad26" + } + }, + "required": [ + "message", + "link", + "trace_id" + ] + }, + "APIError400": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "VALIDATION_ERROR" + ], + "example": "VALIDATION_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError404": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "RESOURCE_NOT_FOUND" + ], + "example": "RESOURCE_NOT_FOUND" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError500": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "INTERNAL_SERVER_ERROR" + ], + "example": "INTERNAL_SERVER_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError401": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "UNAUTHORISED_REQUEST" + ], + "example": "UNAUTHORISED_REQUEST" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError403": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "AUTHENTICATION_ERROR" + ], + "example": "AUTHENTICATION_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError429": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "TOO_MANY_REQUESTS_ERROR" + ], + "example": "TOO_MANY_REQUESTS_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError409": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "CONFLICT_ERROR" + ], + "example": "CONFLICT_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error", + "additionalProperties": true + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "Item": { + "oneOf": [ + { + "$ref": "#/components/schemas/NativeItem" + }, + { + "$ref": "#/components/schemas/ERC20Item" + }, + { + "$ref": "#/components/schemas/ERC721Item" + }, + { + "$ref": "#/components/schemas/ERC1155Item" + }, + { + "$ref": "#/components/schemas/ERC721CollectionItem" + }, + { + "$ref": "#/components/schemas/ERC1155CollectionItem" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "NATIVE": "#/components/schemas/NativeItem", + "ERC20": "#/components/schemas/ERC20Item", + "ERC721": "#/components/schemas/ERC721Item", + "ERC1155": "#/components/schemas/ERC1155Item", + "ERC721_COLLECTION": "#/components/schemas/ERC721CollectionItem", + "ERC1155_COLLECTION": "#/components/schemas/ERC1155CollectionItem" + } + } + }, + "AssetCollectionItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/ERC721CollectionItem" + }, + { + "$ref": "#/components/schemas/ERC1155CollectionItem" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "ERC721_COLLECTION": "#/components/schemas/ERC721CollectionItem", + "ERC1155_COLLECTION": "#/components/schemas/ERC1155CollectionItem" + } + } + }, + "FulfillmentDataRequest": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "format": "uuid" + }, + "taker_address": { + "type": "string", + "description": "Address of the intended account fulfilling the order", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [ + { + "type": "TAKER_ECOSYSTEM", + "amount": "2250000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + ], + "minItems": 0, + "maxItems": 2 + }, + "token_id": { + "type": "string", + "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", + "example": "123", + "pattern": "\\d+" + } + }, + "required": [ + "order_id", + "fees", + "taker_address" + ] + }, + "FulfillableOrder": { + "type": "object", + "properties": { + "order": { + "$ref": "#/components/schemas/Order" + }, + "token_id": { + "type": "string", + "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", + "example": "123", + "pattern": "\\d+" + }, + "extra_data": { + "type": "string" + } + }, + "required": [ + "extra_data", + "order" + ] + }, + "UnfulfillableOrder": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "description": "OrderID for the requested but unfulfillable order", + "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + }, + "token_id": { + "type": "string", + "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", + "example": "123", + "pattern": "\\d+" + }, + "reason": { + "type": "string", + "description": "Nullable string containing error reason if the signing is unsuccessful for the order", + "example": "Invalid order status INACTIVE for order 7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + } + }, + "required": [ + "reason", + "order_id" + ] + }, + "NativeItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is the native IMX token", + "example": "NATIVE", + "enum": [ + "NATIVE" + ] + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "amount" + ] + }, + "ERC20Item": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC20", + "example": "ERC20", + "enum": [ + "ERC20" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC20 token", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "amount" + ] + }, + "ERC721Item": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC721", + "example": "ERC721", + "enum": [ + "ERC721" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC721 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "token_id": { + "type": "string", + "description": "ID of ERC721 token", + "example": "1", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "token_id" + ] + }, + "ERC1155Item": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC1155", + "example": "ERC1155", + "enum": [ + "ERC1155" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC1155 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "token_id": { + "type": "string", + "description": "ID of ERC1155 token", + "example": "1", + "pattern": "\\d+" + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "token_id", + "amount" + ] + }, + "ERC721CollectionItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC721", + "example": "ERC721_COLLECTION", + "enum": [ + "ERC721_COLLECTION" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC721 collection", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "amount" + ] + }, + "ERC1155CollectionItem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC1155", + "example": "ERC1155_COLLECTION", + "enum": [ + "ERC1155_COLLECTION" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC1155 collection", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token. This value is provided in the smallest unit of the token (e.g., wei for Ethereum).", + "example": "9750000000000000000", + "pattern": "\\d+" + } + }, + "required": [ + "type", + "contract_address", + "amount" + ] + }, + "CancelOrdersRequestBody": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "description": "Address of the user initiating the cancel request", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "orders": { + "type": "array", + "description": "List of order ids proposed for cancellation", + "items": { + "type": "string", + "format": "uuid" + }, + "uniqueItems": true, + "minItems": 1, + "maxItems": 20 + }, + "signature": { + "type": "string", + "description": "Signature generated by the user for the specific cancellation request", + "example": "0x12345" + } + }, + "required": [ + "account_address", + "orders", + "signature" + ], + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "ids": [ + "018a8c71-d7e4-e303-a2ef-318871ef7756", + "238a8c71-d7e4-e303-a2ef-318871ef7778", + "458a8c71-d7e4-e303-a2ef-318871ef7790" + ], + "signature": 291 + } + }, + "CreateListingRequestBody": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "order_hash": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "buy": { + "type": "array", + "description": "Buy item for listing should either be NATIVE or ERC20 item", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "fees": { + "type": "array", + "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0, + "maxItems": 2 + }, + "end_at": { + "type": "string", + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + }, + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" + }, + "salt": { + "type": "string", + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" + }, + "sell": { + "type": "array", + "description": "Sell item for listing should be an ERC721 item", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "signature": { + "type": "string", + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" + }, + "start_at": { + "type": "string", + "description": "Time after which Order is considered active", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", + "buy": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [ + { + "type": "MAKER_ECOSYSTEM", + "amount": "2250000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + ], + "end_at": "2022-03-10T05:00:50.52Z", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.4" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z" + }, + "required": [ + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" + ] + }, + "CreateBidRequestBody": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "order_hash": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "buy": { + "type": "array", + "description": "Buy item for bid should either be ERC721 or ERC1155 item", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "fees": { + "type": "array", + "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0, + "maxItems": 2 + }, + "end_at": { + "type": "string", + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + }, + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" + }, + "salt": { + "type": "string", + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" + }, + "sell": { + "type": "array", + "description": "Sell item for bid should be an ERC20 item", + "items": { + "$ref": "#/components/schemas/ERC20Item" + }, + "example": [ + { + "type": "ERC20", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "9750000000000000000" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "signature": { + "type": "string", + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" + }, + "start_at": { + "type": "string", + "description": "Time after which Order is considered active", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [ + { + "type": "MAKER_ECOSYSTEM", + "amount": "2250000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + ], + "end_at": "2022-03-10T05:00:50.52Z", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z" + }, + "required": [ + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" + ] + }, + "CreateCollectionBidRequestBody": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "order_hash": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "buy": { + "type": "array", + "description": "Buy item for collection bid should either be ERC721 or ERC1155 collection item", + "items": { + "$ref": "#/components/schemas/AssetCollectionItem" + }, + "example": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "fees": { + "type": "array", + "description": "Buy fees should only include maker marketplace fees and should be no more than two entries as more entires will incur more gas. It is best practice to have this as few as possible.", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0, + "maxItems": 2 + }, + "end_at": { + "type": "string", + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + }, + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" + }, + "salt": { + "type": "string", + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" + }, + "sell": { + "type": "array", + "description": "Sell item for collection bid should be an ERC20 item", + "items": { + "$ref": "#/components/schemas/ERC20Item" + }, + "example": [ + { + "type": "ERC20", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "9750000000000000000" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "signature": { + "type": "string", + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" + }, + "start_at": { + "type": "string", + "description": "Time after which Order is considered active", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + } + }, + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [ + { + "type": "MAKER_ECOSYSTEM", + "amount": "2250000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + } + ], + "end_at": "2022-03-10T05:00:50.52Z", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z" + }, + "required": [ + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" + ] + }, + "Fee": { + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "Fee payable to recipient upon settlement", + "example": "2250000000000000000", + "pattern": "\\d+" + }, + "type": { + "type": "string", + "description": "Fee type", + "example": "ROYALTY", + "enum": [ + "ROYALTY", + "MAKER_ECOSYSTEM", + "TAKER_ECOSYSTEM", + "PROTOCOL" + ] + }, + "recipient_address": { + "type": "string", + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + "example": { + "amount": "2250000000000000000", + "type": "ROYALTY", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + }, + "required": [ + "type", + "amount", + "recipient_address" + ] + }, + "Order": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "buy": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0 + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "created_at": { + "type": "string", + "description": "Time the Order is created", + "format": "date-time", + "example": "2022-03-07T07:20:50.52Z" + }, + "end_at": { + "type": "string", + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-10T05:00:50.52Z" + }, + "id": { + "type": "string", + "description": "Global Order identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + }, + "order_hash": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" + }, + "salt": { + "type": "string", + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" + }, + "sell": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "signature": { + "type": "string", + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" + }, + "start_at": { + "type": "string", + "description": "Time after which Order is considered active", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" + }, + "status": { + "$ref": "#/components/schemas/OrderStatus" + }, + "type": { + "type": "string", + "description": "Order type", + "example": "LISTING", + "enum": [ + "LISTING", + "BID", + "COLLECTION_BID" + ] + }, + "updated_at": { + "type": "string", + "description": "Time the Order is last updated", + "format": "date-time", + "example": "2022-03-07T07:20:50.52Z" + }, + "fill_status": { + "$ref": "#/components/schemas/FillStatus" + } + }, + "example": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "buy": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.4" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "ACTIVE" + }, + "fill_status": { + "numerator": 1, + "denominator": 2 + }, + "type": "LISTING", + "updated_at": "2022-03-07T07:20:50.52Z" + }, + "required": [ + "id", + "type", + "account_address", + "buy", + "sell", + "fees", + "chain", + "created_at", + "end_at", + "start_at", + "updated_at", + "order_hash", + "protocol_data", + "salt", + "signature", + "status", + "fill_status" + ] + }, + "Trade": { + "type": "object", + "properties": { + "buy": { + "description": "Buy items are transferred from the taker to the maker.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "buyer_address": { + "description": "Deprecated. Use maker and taker addresses instead of buyer and seller addresses.", + "type": "string", + "example": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40" + }, + "buyer_fees": { + "description": "Deprecated. Use fees instead. The taker always pays the fees.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0, + "maxItems": 1 + }, + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Fee" + }, + "example": [], + "minItems": 0, + "maxItems": 1 + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "order_id": { + "type": "string", + "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + }, + "blockchain_metadata": { + "$ref": "#/components/schemas/TradeBlockchainMetadata" + }, + "indexed_at": { + "type": "string", + "description": "Time the on-chain trade event is indexed by the order book system", + "format": "date-time", + "example": "2022-03-07T07:20:50.52Z" + }, + "id": { + "type": "string", + "description": "Global Trade identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + }, + "sell": { + "description": "Sell items are transferred from the maker to the taker.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Item" + }, + "example": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "minItems": 1, + "maxItems": 1 + }, + "seller_address": { + "description": "Deprecated. Use maker and taker addresses instead of buyer and seller addresses.", + "type": "string", + "example": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D" + }, + "maker_address": { + "type": "string", + "example": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D" + }, + "taker_address": { + "type": "string", + "example": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40" + } + }, + "example": { + "buy": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", + "buyer_fees": [], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "indexed_at": "2022-03-07T07:20:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "seller_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "maker_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "taker_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40" + }, + "required": [ + "id", + "order_id", + "buy", + "buyer_address", + "sell", + "seller_address", + "buyer_fees", + "fees", + "chain", + "maker_address", + "taker_address", + "indexed_at", + "blockchain_metadata" + ] + }, + "CancelOrdersResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/CancelOrdersResultData" + } + }, + "required": [ + "result" + ], + "example": { + "result": { + "successful_cancellations": [ + "018a8c71-d7e4-e303-a2ef-318871ef7756", + "458a8c71-d7e4-e303-a2ef-318871ef7778" + ], + "pending_cancellations": [ + "238a8c71-d7e4-e303-a2ef-318871ef7778", + "898a8c71-d7e4-e303-a2ef-318871ef7735" + ], + "failed_cancellations": [ + { + "order": "458a8c71-d7e4-e303-a2ef-318871ef7790", + "reason_code": "FILLED" + }, + { + "order": "338a8c71-d7e4-e303-a2ef-318871ef7342", + "reason_code": "FILLED" + } + ] + } + } + }, + "CancelOrdersResultData": { + "type": "object", + "properties": { + "successful_cancellations": { + "type": "array", + "description": "Orders which were successfully cancelled", + "items": { + "type": "string" + }, + "minItems": 0, + "maxItems": 10 + }, + "pending_cancellations": { + "type": "array", + "description": "Orders which are marked for cancellation but the cancellation cannot be guaranteed", + "items": { + "type": "string" + }, + "minItems": 0, + "maxItems": 10 + }, + "failed_cancellations": { + "type": "array", + "description": "Orders which failed to be cancelled", + "items": { + "$ref": "#/components/schemas/FailedOrderCancellation" + }, + "minItems": 0, + "maxItems": 10 + } + }, + "required": [ + "successful_cancellations", + "pending_cancellations", + "failed_cancellations" + ] + }, + "FailedOrderCancellation": { + "type": "object", + "properties": { + "order": { + "type": "string", + "description": "ID of the order which failed to be cancelled", + "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + }, + "reason_code": { + "type": "string", + "enum": [ + "FILLED" + ], + "description": "Reason code indicating why the order failed to be cancelled", + "example": "FILLED" + } + }, + "required": [ + "order", + "reason_code" + ] + }, + "ListingResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Order" + } + }, + "required": [ + "result" + ], + "example": { + "result": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "type": { + "name": "LISTING" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + } + } + }, + "BidResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Order" + } + }, + "required": [ + "result" + ], + "example": { + "result": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "type": "BID", + "updated_at": "2022-03-07T07:20:50.52Z" + } + } + }, + "CollectionBidResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Order" + } + }, + "required": [ + "result" + ], + "example": { + "result": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "PARTIAL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "type": "COLLECTION_BID", + "updated_at": "2022-03-07T07:20:50.52Z" + } + } + }, + "ListListingsResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/Page" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + }, + "minItems": 0, + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ], + "example": { + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + }, + "result": [ + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + }, + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + } + ] + } + }, + "ListBidsResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/Page" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + }, + "minItems": 0, + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ], + "example": { + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + }, + "result": [ + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + }, + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "FULL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + } + ] + } + }, + "ListCollectionBidsResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/Page" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + }, + "minItems": 0, + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ], + "example": { + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + }, + "result": [ + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "PARTIAL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + }, + { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "end_at": "2022-03-10T05:00:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "order_hash": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "protocol_data": { + "order_type": "PARTIAL_RESTRICTED", + "counter": "1", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "updated_at": "2022-03-07T07:20:50.52Z" + } + ] + } + }, + "TradeResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Trade" + } + }, + "required": [ + "result" + ], + "example": { + "result": { + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", + "buyer_fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "seller_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "maker_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "taker_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", + "updated_at": "2022-03-07T07:20:50.52Z" + } + } + }, + "ListTradeResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/Page" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Trade" + }, + "minItems": 0, + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ], + "example": { + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + }, + "result": [ + { + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", + "buyer_fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "seller_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "maker_address": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D", + "taker_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", + "updated_at": "2022-03-07T07:20:50.52Z" + }, + { + "buy": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "buyer_address": "0x017406f3F27d507a1491976B7835CE5CD0fA647a", + "buyer_fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "created_at": "2022-03-07T07:20:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534A", + "sell": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "seller_address": "0xC73349c545C1D757eb650cDc463A2f6dF1Ec41cb", + "maker_address": "0xC73349c545C1D757eb650cDc463A2f6dF1Ec41cb", + "taker_address": "0x017406f3F27d507a1491976B7835CE5CD0fA647a", + "updated_at": "2022-03-07T07:20:50.52Z" + } + ] + } + }, + "OrderStatus": { + "description": "The Order status", + "oneOf": [ + { + "$ref": "#/components/schemas/CancelledOrderStatus" + }, + { + "$ref": "#/components/schemas/PendingOrderStatus" + }, + { + "$ref": "#/components/schemas/ActiveOrderStatus" + }, + { + "$ref": "#/components/schemas/InactiveOrderStatus" + }, + { + "$ref": "#/components/schemas/FilledOrderStatus" + }, + { + "$ref": "#/components/schemas/ExpiredOrderStatus" + } + ], + "discriminator": { + "propertyName": "name", + "mapping": { + "CANCELLED": "#/components/schemas/CancelledOrderStatus", + "PENDING": "#/components/schemas/PendingOrderStatus", + "ACTIVE": "#/components/schemas/ActiveOrderStatus", + "INACTIVE": "#/components/schemas/InactiveOrderStatus", + "FILLED": "#/components/schemas/FilledOrderStatus", + "EXPIRED": "#/components/schemas/ExpiredOrderStatus" + } + } + }, + "CancelledOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The order status indicating a order is has been cancelled or about to be cancelled.", + "enum": [ + "CANCELLED" + ] + }, + "pending": { + "type": "boolean", + "description": "Whether the cancellation of the order is pending", + "example": false + }, + "cancellation_type": { + "type": "string", + "description": "Whether the cancellation was done on-chain or off-chain or as a result of an underfunded account", + "enum": [ + "ON_CHAIN", + "OFF_CHAIN", + "UNDERFUNDED" + ], + "example": "ON_CHAIN" + } + }, + "required": [ + "name", + "pending", + "cancellation_type" + ] + }, + "PendingOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The order status that indicates the order is yet to be active due to various reasons.", + "enum": [ + "PENDING" + ] + }, + "evaluated": { + "type": "boolean", + "description": "Whether the order has been evaluated after its creation", + "example": false + }, + "started": { + "type": "boolean", + "description": "Whether the order has reached its specified start time", + "example": false + } + }, + "required": [ + "name", + "evaluated", + "started" + ] + }, + "ActiveOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The order status that indicates an order can be fulfilled.", + "enum": [ + "ACTIVE" + ] + } + }, + "required": [ + "name" + ] + }, + "InactiveOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The order status that indicates an order cannot be fulfilled.", + "enum": [ + "INACTIVE" + ] + }, + "sufficient_approvals": { + "type": "boolean", + "description": "Whether the order offerer has sufficient approvals", + "example": false + }, + "sufficient_balances": { + "type": "boolean", + "description": "Whether the order offerer still has sufficient balance to complete the order", + "example": false + } + }, + "required": [ + "name", + "sufficient_approvals", + "sufficient_balances" + ] + }, + "ExpiredOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A terminal order status indicating that an order cannot be fulfilled due to expiry.", + "enum": [ + "EXPIRED" + ] + } + }, + "required": [ + "name" + ] + }, + "FilledOrderStatus": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A terminal order status indicating that an order has been fulfilled.", + "enum": [ + "FILLED" + ] + } + }, + "required": [ + "name" + ] + }, + "OrderStatusName": { + "type": "string", + "description": "The Order status", + "enum": [ + "PENDING", + "ACTIVE", + "INACTIVE", + "FILLED", + "EXPIRED", + "CANCELLED" + ] + }, + "ProtocolData": { + "type": "object", + "properties": { + "order_type": { + "type": "string", + "description": "Seaport order type. Orders containing ERC721 tokens will need to pass in the order type as FULL_RESTRICTED while orders with ERC1155 tokens will need to pass in the order_type as PARTIAL_RESTRICTED", + "example": "FULL_RESTRICTED", + "enum": [ + "FULL_RESTRICTED", + "PARTIAL_RESTRICTED" + ] + }, + "counter": { + "type": "string", + "description": "big.Int or uint256 string for order counter", + "example": "92315562" + }, + "zone_address": { + "type": "string", + "description": "Immutable zone address", + "example": "0x12" + }, + "seaport_address": { + "type": "string", + "description": "Immutable Seaport contract address", + "example": "0x12" + }, + "seaport_version": { + "type": "string", + "description": "Immutable Seaport contract version", + "example": "1.5" + } + }, + "example": { + "order_type": "FULL_RESTRICTED", + "counter": "92315562", + "zone_address": "0x12", + "seaport_address": "0x12", + "seaport_version": "1.5" + }, + "required": [ + "order_type", + "counter", + "zone_address", + "seaport_address", + "seaport_version" + ] + }, + "TradeBlockchainMetadata": { + "description": "The metadata related to the transaction in which the activity occurred", + "nullable": true, + "type": "object", + "properties": { + "transaction_hash": { + "type": "string", + "description": "The transaction hash of the trade", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + }, + "block_number": { + "description": "EVM block number (uint64 as string)", + "type": "string", + "example": "1" + }, + "transaction_index": { + "description": "Transaction index in a block (uint32 as string)", + "type": "string", + "example": "1" + }, + "log_index": { + "description": "The log index of the fulfillment event in a block (uint32 as string)", + "type": "string", + "example": "1" + } + }, + "required": [ + "transaction_hash", + "block_number", + "transaction_index", + "log_index" + ] + }, + "FillStatus": { + "description": "The ratio of the order that has been filled, an order that has been fully filled will have the same numerator and denominator values.", + "type": "object", + "properties": { + "numerator": { + "type": "string", + "description": "The numerator of the fill status", + "example": "1" + }, + "denominator": { + "type": "string", + "description": "The denominator of the fill status", + "example": "2" + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "APIError501": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "NOT_IMPLEMENTED_ERROR" + ], + "example": "NOT_IMPLEMENTED_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "GetLinkedAddressesRes": { + "type": "object", + "required": [ + "linked_addresses" + ], + "properties": { + "linked_addresses": { + "type": "array", + "minItems": 0, + "description": "The user's list of linked addresses", + "items": { + "description": "The user's linked address", + "type": "string", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 + } + } + } + }, + "EthAddress": { + "description": "Ethereum address", + "type": "string", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + "CreatedAt": { + "description": "Created at", + "type": "string", + "format": "date-time", + "example": "2021-08-31T00:00:00Z" + }, + "Name": { + "description": "Name", + "type": "string", + "example": "Test" + }, + "WalletType": { + "description": "Wallet type", + "type": "string", + "example": "MetaMask" + }, + "Wallet": { + "description": "Linked wallet", + "type": "object", + "required": [ + "address", + "type", + "created_at", + "updated_at", + "clientName" + ], + "properties": { + "address": { + "$ref": "#/components/schemas/EthAddress" + }, + "type": { + "$ref": "#/components/schemas/WalletType" + }, + "created_at": { + "$ref": "#/components/schemas/CreatedAt" + }, + "updated_at": { + "$ref": "#/components/schemas/CreatedAt" + }, + "name": { + "$ref": "#/components/schemas/Name" + }, + "clientName": { + "type": "string", + "description": "Name of client that linked the wallet", + "example": "Passport Dashboard" + } + } + }, + "PhoneNumberOTPRequest": { + "description": "Phone number OTP request", + "type": "object", + "required": [ + "phone_number" + ], + "properties": { + "phone_number": { + "$ref": "#/components/schemas/PhoneNumber" + }, + "channel": { + "enum": [ + "sms", + "whatsapp" + ], + "type": "string", + "example": "sms" + } + } + }, + "PhoneNumberOTPResponse": { + "description": "Phone number OTP request", + "type": "object", + "required": [ + "phone_number" + ], + "properties": { + "phone_number": { + "$ref": "#/components/schemas/PhoneNumber" + } + } + }, + "PhoneNumberOTPVerificationRequest": { + "description": "Phone number OTP verification request", + "type": "object", + "required": [ + "phone_number", + "code" + ], + "properties": { + "phone_number": { + "$ref": "#/components/schemas/PhoneNumber" + }, + "code": { + "$ref": "#/components/schemas/PhoneNumberOTP" + } + } + }, + "PhoneNumber": { + "description": "Phone number", + "type": "string", + "example": "+61412345678", + "minLength": 3, + "maxLength": 50 + }, + "PhoneNumberOTP": { + "description": "Phone number verification OTP", + "type": "string", + "example": "123456", + "maxLength": 6, + "minLength": 6 + }, + "LinkWalletV2Request": { + "description": "Link wallet V2 request", + "type": "object", + "required": [ + "type", + "wallet_address", + "signature", + "nonce" + ], + "properties": { + "type": { + "type": "string", + "description": "This should be the EIP-6963 rdns value, if you're unable to get the rdns value you can provide \"External\". If using WalletConnect then provide \"WalletConnect\".", + "example": "io.metamask", + "maxLength": 32, + "not": { + "enum": [ + "Passport", + "com.immutable.passport" + ] + } + }, + "wallet_address": { + "description": "The address of the external wallet being linked to Passport", + "type": "string", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "signature": { + "description": "The EIP-712 signature", + "type": "string" + }, + "nonce": { + "description": "A unique identifier for the signature", + "type": "string" + } + } + }, + "UserInfo": { + "type": "object", + "required": [ + "sub", + "linked_addresses" + ], + "properties": { + "sub": { + "type": "string", + "description": "The user's id" + }, + "email": { + "type": "string", + "description": "The user's email address" + }, + "passport_address": { + "type": "string", + "description": "The user's Passport address if it has been registered", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 + }, + "linked_addresses": { + "type": "array", + "minItems": 0, + "description": "The user's list of linked addresses", + "items": { + "description": "The user's linked address", + "type": "string", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 + } + } + } + }, + "FeedItemBase": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Feed item ID" + }, + "name": { + "type": "string", + "description": "Feed item name" + }, + "quest_id": { + "type": "string", + "description": "Quest ID", + "minLength": 1, + "maxLength": 100, + "pattern": "^[a-z0-9-]+$" + }, + "priority": { + "type": "integer", + "description": "Feed item priority" + }, + "gems_earnable": { + "type": "integer", + "description": "Amount of gems earnable when user completes the quest" + }, + "bypass": { + "type": "boolean", + "description": "If the quest is bypassed, the user will not be able to see it on the feed" + }, + "day_zero": { + "type": "boolean", + "description": "If the quest is a day0 quest" + }, + "game_id": { + "type": "string", + "description": "Game ID", + "format": "uuid" + }, + "game_name": { + "type": "string", + "description": "Game name" + }, + "quest_completed_popup_text": { + "type": "string", + "description": "Text to display when the quest is completed in an onboarding experience" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags for the feed item" + }, + "control_tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Some specific tags for controlling feed items" + }, + "categories": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The categories for the feed item" + }, + "onboarding_experience": { + "type": "string", + "description": "The onboarding experience for the feed item" + } + }, + "required": [ + "id", + "name", + "quest_id", + "priority", + "type", + "gems_earnable" + ] + }, + "FeedItemVideo": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "video" + ] + }, + "title": { + "type": "string", + "description": "Title of the video" + }, + "url": { + "type": "string", + "description": "URL of the video", + "format": "uri" + } + }, + "required": [ + "type", + "title", + "url" + ] + } + ] + }, + "FeedItemFollowGame": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "followgame" + ] + }, + "image": { + "type": "string", + "description": "URL of the CTA image", + "format": "uri" + }, + "label": { + "type": "string", + "description": "Label of the CTA button" + }, + "description": { + "type": "string", + "description": "Description of the CTA button" + }, + "logo": { + "type": "string", + "description": "URL of the quiz logo", + "format": "uri" + }, + "title": { + "type": "string", + "description": "Title of the video" + }, + "similar_games": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Similar games to display" + } + }, + "required": [ + "type", + "image", + "label", + "description", + "logo", + "title" + ] + } + ] + }, + "FeedItemQuiz": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "quiz" + ] + }, + "header_video_url": { + "type": "string", + "description": "URL of the quiz header video", + "format": "uri" + }, + "logo": { + "type": "string", + "description": "URL of the quiz logo", + "format": "uri" + }, + "question": { + "type": "string", + "description": "The quiz question" + }, + "answers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Quiz answers to display" + }, + "correct_answers": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Quiz correct answers" + }, + "correct_answer_text": { + "type": "string", + "description": "The text to display when the user answers the quiz correctly" + }, + "header_initial_image": { + "type": "string", + "description": "The initial image for the quiz header", + "format": "uri" + }, + "header_answered_image": { + "type": "string", + "description": "The image to display when the user answers the quiz correctly", + "format": "uri" + } + }, + "required": [ + "type", + "question", + "answers", + "correct_answers" + ] + } + ] + }, + "FeedItemCTA": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "cta" + ] + }, + "label": { + "type": "string", + "description": "The label for the CTA button" + }, + "description": { + "type": "string", + "description": "The description for the CTA button" + }, + "url": { + "type": "string", + "description": "The URL for the CTA button" + }, + "image": { + "type": "string", + "description": "The image for the CTA background", + "format": "uri" + } + }, + "required": [ + "type", + "label", + "description", + "url", + "image" + ] + } + ] + }, + "FeedItemSignIn": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemCTA" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "signin" + ] + }, + "redirect_url": { + "type": "string", + "description": "The URL to redirect to when the user completes the sign in quest", + "format": "uri" + }, + "background": { + "type": "string", + "description": "The background for the sign in quest", + "format": "uri" + } + }, + "required": [ + "type", + "redirect_url", + "background" + ] + } + ] + }, + "FeedItemReward": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemSignIn" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "reward" + ] + } + } + } + ] + }, + "FeedItemLanding": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "landing" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "FeedItemPinToHome": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "pintohome" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "FeedItemDailyGems": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "dailygems" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "FeedItemBonusGems": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "bonusgems" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "FeedItemReferral": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "referral" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "FeedItemSocialQuest": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "socialquest" + ] + }, + "title": { + "type": "string", + "description": "Title of the social quest" + }, + "subtitle": { + "type": "string", + "description": "Title of the social quest" + }, + "label": { + "type": "string", + "description": "The label for the CTA button" + }, + "description": { + "type": "string", + "description": "The description for the CTA button" + }, + "url": { + "type": "string", + "description": "The URL for the CTA button" + }, + "logo": { + "type": "string", + "description": "URL of the logo", + "format": "uri" + }, + "platform_name": { + "type": "string", + "description": "The name of the platform social quest belongs to" + } + }, + "required": [ + "type", + "title", + "subtitle", + "label", + "description", + "url", + "logo", + "platform_name" + ] + } + ] + }, + "ProfileResponse": { + "description": "Get profile by wallet response", + "type": "object", + "properties": { + "username": { + "type": "string" + } + }, + "required": [ + "username" + ] + }, + "UsernameUpdateRequest": { + "description": "Request to update username", + "type": "object", + "required": [ + "username" + ], + "properties": { + "username": { + "type": "string", + "description": "The new username", + "minLength": 3, + "maxLength": 18, + "pattern": "^[a-zA-Z0-9]+$" + } + } + }, + "UsernameUpdateResponse": { + "description": "Username update response", + "type": "object", + "properties": { + "username": { + "type": "string" + } + }, + "required": [ + "username" + ] + }, + "SessionActivityContractResponse": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionActivityContract" + }, + { + "type": "object" + }, + { + "required": [ + "id", + "name", + "client_id", + "contract_address", + "chain_id", + "organisation_id", + "enabled", + "created_at" + ] + } + ] + }, + "UpsertSessionActivityContractReq": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionActivityContract" + }, + { + "type": "object" + }, + { + "required": [ + "name", + "contract_address", + "client_id", + "chain_id", + "organisation_id", + "enabled" + ] + } + ] + }, + "UpsertSessionActivityContractResp": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionActivityContract" + }, + { + "type": "object" + } + ] + }, + "SessionActivityContract": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the session activity contract", + "example": 1 + }, + "name": { + "type": "string", + "description": "The name of the session activity contract", + "example": "Session Activity Contract 1" + }, + "contract_address": { + "type": "string", + "description": "The smart contract address", + "pattern": "^0x[0-9a-fA-F]{40}$", + "minLength": 42, + "maxLength": 42, + "example": "0x1234567890abcdef1234567890abcdef12345678" + }, + "client_id": { + "type": "string", + "description": "The client ID associated with the session activity contract", + "pattern": "^[a-zA-Z0-9]{32}$", + "minLength": 32, + "maxLength": 32, + "example": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE" + }, + "chain_id": { + "type": "string", + "description": "The chain ID for the session activity contract", + "example": "eip155:13371" + }, + "organisation_id": { + "type": "string", + "format": "uuid", + "description": "The organisation ID that owns this session activity contract (UUID format)", + "example": "550e8400-e29b-41d4-a716-446655440000" + }, + "enabled": { + "type": "boolean", + "description": "Whether the session activity contract is enabled", + "example": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The timestamp when the session activity contract was created", + "example": "2023-12-07T10:30:00Z" + } + } + }, + "FilterValue": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "nft_count": { + "type": "string", + "description": "Number of NFTs that have this trait. Uint256 as string" + } + }, + "example": [ + { + "value": "Common", + "nft_count": "42" + }, + { + "value": "Rare", + "nft_count": "17" + } + ], + "required": [ + "value", + "nft_count" + ] + }, + "Filter": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of trait", + "example": "Rarity" + }, + "values": { + "description": "List of 100 most common values for this trait sorted by number of associated NFTs", + "type": "array", + "items": { + "$ref": "#/components/schemas/FilterValue" + } + }, + "omitted_values_count": { + "type": "integer", + "description": "Indicated how many more distinct values exist", + "example": 0 + } + }, + "required": [ + "name", + "values", + "omitted_values_count" + ] + }, + "FilterResult": { + "type": "object", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "filters": { + "description": "List of all filters and the most common values", + "type": "array", + "items": { + "$ref": "#/components/schemas/Filter" + } + } + }, + "required": [ + "chain", + "contract_address", + "filters" + ] + }, + "ListFiltersResult": { + "type": "object", + "description": "List filters result", + "properties": { + "result": { + "$ref": "#/components/schemas/FilterResult" + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "MarketplaceContractType": { + "description": "The contract type for a collection", + "type": "string", + "enum": [ + "ERC721", + "ERC1155" + ] + }, + "NFTWithStack": { + "type": "object", + "description": "Stack", + "properties": { + "token_id": { + "description": "Token id of NFT (uint256 as string)", + "type": "string" + }, + "stack_id": { + "type": "string", + "format": "uuid", + "description": "Stack ID" + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "Contract address" + }, + "contract_type": { + "$ref": "#/components/schemas/MarketplaceContractType" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the metadata was created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" + }, + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" + }, + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" + }, + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" + }, + "external_url": { + "type": "string", + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" + }, + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + }, + "balance": { + "type": "integer", + "description": "Balance of NFT", + "minimum": 1, + "nullable": true + } + }, + "required": [ + "token_id", + "stack_id", + "chain", + "contract_address", + "contract_type", + "updated_at", + "created_at", + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes", + "balance" + ] + }, + "MarketPriceNativeToken": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is the native IMX token", + "example": "NATIVE", + "enum": [ + "NATIVE" + ] + }, + "symbol": { + "nullable": true, + "type": "string", + "description": "The symbol of token", + "example": "IMX" + } + }, + "required": [ + "type", + "symbol" + ] + }, + "MarketPriceERC20Token": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC20", + "example": "ERC20", + "enum": [ + "ERC20" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC20 token", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "symbol": { + "nullable": true, + "type": "string", + "description": "The symbol of token", + "example": "ETH" + }, + "decimals": { + "nullable": true, + "type": "integer", + "description": "The decimals of token", + "example": 18 + } + }, + "required": [ + "type", + "contract_address", + "symbol", + "decimals" + ] + }, + "PaymentAmount": { + "type": "string", + "description": "The token amount value. This value is provided in the smallest unit of the token (e.g. wei for ETH)", + "example": "9750000000000000000", + "pattern": "\\d+" + }, + "MarketPriceFees": { + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "Fee in the payment currency", + "example": "1000000000000000000" + }, + "type": { + "type": "string", + "description": "Fee type", + "example": "ROYALTY", + "enum": [ + "ROYALTY", + "MAKER_ECOSYSTEM", + "TAKER_ECOSYSTEM", + "PROTOCOL" + ] + }, + "recipient_address": { + "type": "string", + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "pattern": "^0x[a-fA-F0-9]{40}$" + } + }, + "example": { + "amount": "1000000000000000000", + "type": "ROYALTY", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + }, + "required": [ + "type", + "amount", + "recipient_address" + ] + }, + "ConvertedPrices": { + "type": "object", + "description": "A mapping of converted prices for major currencies such as ETH, USD. All converted prices are fee-inclusive.", + "nullable": true, + "additionalProperties": { + "type": "string" + }, + "example": { + "ETH": "0.0058079775", + "USD": "15.89" + } + }, + "MarketPriceDetails": { + "type": "object", + "description": "Market Price details", + "properties": { + "token": { + "description": "Token details", + "oneOf": [ + { + "$ref": "#/components/schemas/MarketPriceNativeToken" + }, + { + "$ref": "#/components/schemas/MarketPriceERC20Token" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "NATIVE": "#/components/schemas/MarketPriceNativeToken", + "ERC20": "#/components/schemas/MarketPriceERC20Token" + } + } + }, + "amount": { + "$ref": "#/components/schemas/PaymentAmount" + }, + "fee_inclusive_amount": { + "$ref": "#/components/schemas/PaymentAmount" + }, + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketPriceFees" + }, + "example": [ + { + "type": "TAKER_ECOSYSTEM", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "amount": "1000000000000000000" + } + ] + }, + "converted_prices": { + "$ref": "#/components/schemas/ConvertedPrices" + } + }, + "required": [ + "token", + "amount", + "fee_inclusive_amount", + "fees", + "converted_prices" + ] + }, + "Listing": { + "type": "object", + "properties": { + "listing_id": { + "type": "string", + "description": "Global Order identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + }, + "price_details": { + "$ref": "#/components/schemas/MarketPriceDetails" + }, + "token_id": { + "type": "string", + "description": "Token ID", + "example": "1" + }, + "contract_address": { + "type": "string", + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "creator": { + "type": "string", + "description": "ETH Address of listing creator", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "amount": { + "type": "string", + "description": "Amount of token included in the listing", + "example": "1" + } + }, + "required": [ + "listing_id", + "price_details", + "creator", + "token_id", + "contract_address", + "amount" + ] + }, + "Bid": { + "type": "object", + "properties": { + "bid_id": { + "type": "string", + "description": "Global Order identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + }, + "price_details": { + "$ref": "#/components/schemas/MarketPriceDetails" + }, + "token_id": { + "type": "string", + "nullable": true, + "description": "Token ID. Null for collection bids that can be fulfilled by any asset in the collection", + "example": "1" + }, + "contract_address": { + "type": "string", + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "creator": { + "type": "string", + "description": "ETH Address of listing creator", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "amount": { + "type": "string", + "description": "Amount of token included in the listing", + "example": "1" + } + }, + "required": [ + "bid_id", + "price_details", + "creator", + "token_id", + "contract_address", + "amount" + ] + }, + "LastTrade": { + "type": "object", + "nullable": true, + "description": "Most recent trade", + "properties": { + "trade_id": { + "type": "string", + "description": "Trade ID", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" + }, + "contract_address": { + "type": "string", + "description": "ETH Address of collection that the asset belongs to", + "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + }, + "token_id": { + "type": "string", + "description": "Token id of the traded asset (uint256 as string)", + "example": "1" + }, + "price_details": { + "type": "array", + "description": "Price details, list of payments involved in this trade", + "items": { + "$ref": "#/components/schemas/MarketPriceDetails" + } + }, + "amount": { + "type": "string", + "description": "Amount of the trade (uint256 as string)", + "example": "1" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "When the trade was created", + "example": "2022-08-16T17:43:26.991388Z" + } + }, + "required": [ + "trade_id", + "token_id", + "contract_address", + "price_details", + "amount", + "created_at" + ] + }, + "Market": { + "type": "object", + "description": "Market data", + "properties": { + "floor_listing": { + "description": "Cheapest active listing", + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Listing" + } + ] + }, + "top_bid": { + "description": "Highest active big", + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Bid" + } + ] + }, + "last_trade": { + "$ref": "#/components/schemas/LastTrade" + } + }, + "required": [ + "top_bid", + "floor_listing", + "last_trade" + ] + }, + "NFTBundle": { + "type": "object", + "description": "NFT bundle includes NFT with stack, markets and listings", + "properties": { + "nft_with_stack": { + "$ref": "#/components/schemas/NFTWithStack" + }, + "market": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Market" + } + ] + }, + "listings": { + "type": "array", + "description": "List of open listings for the NFT.", + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/Listing" + } + }, + "bids": { + "type": "array", + "description": "List of open bids for the NFT.", + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/Bid" + } + } + }, + "required": [ + "nft_with_stack", + "market", + "listings", + "bids" + ] + }, + "SearchNFTsResult": { + "type": "object", + "description": "Search NFTs result", + "properties": { + "result": { + "type": "array", + "description": "List of nft bundles", + "items": { + "$ref": "#/components/schemas/NFTBundle" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "Stack": { + "type": "object", + "description": "Stack", + "properties": { + "stack_id": { + "type": "string", + "format": "uuid", + "description": "Stack ID" + }, + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { + "type": "string", + "description": "Contract address" + }, + "contract_type": { + "$ref": "#/components/schemas/MarketplaceContractType" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the metadata was created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" + }, + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" + }, + "description": { + "type": "string", + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" + }, + "image": { + "type": "string", + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" + }, + "external_url": { + "type": "string", + "nullable": true, + "description": "The external website link of NFT", + "example": "https://some-url" + }, + "animation_url": { + "type": "string", + "nullable": true, + "description": "The animation url of the NFT", + "example": "https://some-url" + }, + "youtube_url": { + "type": "string", + "nullable": true, + "description": "The youtube URL of NFT", + "example": "https://some-url" + }, + "attributes": { + "type": "array", + "description": "List of Metadata attributes", + "nullable": true, + "items": { + "$ref": "#/components/schemas/NFTMetadataAttribute" + } + } + }, + "required": [ + "stack_id", + "chain", + "contract_address", + "contract_type", + "updated_at", + "created_at", + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes" + ] + }, + "StackBundle": { + "type": "object", + "description": "Stack bundle includes stacks, markets and listings", + "properties": { + "stack": { + "$ref": "#/components/schemas/Stack" + }, + "stack_count": { + "type": "integer", + "description": "Total count of NFTs in the stack matching the filter params", + "example": 1 + }, + "market": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Market" + } + ] + }, + "listings": { + "type": "array", + "description": "List of open listings for the stack.", + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/Listing" + } + }, + "bids": { + "type": "array", + "description": "List of open bids for the stack.", + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/Bid" + } + } + }, + "required": [ + "stack", + "stack_count", + "market", + "listings", + "bids" + ] + }, + "SearchStacksResult": { + "type": "object", + "description": "Search stacks result", + "properties": { + "result": { + "type": "array", + "description": "List of stack bundles", + "items": { + "$ref": "#/components/schemas/StackBundle" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "StackQuoteResult": { + "type": "object", + "description": "Stack quote result", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "stack_id": { + "format": "uuid", + "type": "string" + }, + "market_stack": { + "$ref": "#/components/schemas/Market" + }, + "market_collection": { + "$ref": "#/components/schemas/Market" + } + }, + "required": [ + "stack_id", + "market_stack", + "market_collection", + "chain" + ] + }, + "QuotesForStacksResult": { + "type": "object", + "description": "Quotes for stacks result", + "properties": { + "result": { + "type": "array", + "description": "List of quotes", + "items": { + "$ref": "#/components/schemas/StackQuoteResult" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "MarketNft": { + "type": "object", + "description": "NFT market data", + "properties": { + "last_trade": { + "$ref": "#/components/schemas/LastTrade" + } + }, + "required": [ + "last_trade" + ] + }, + "NFTQuoteResult": { + "type": "object", + "description": "NFT quote result", + "properties": { + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "token_id": { + "description": "Token id of NFT (uint256 as string)", + "type": "string" + }, + "market_stack": { + "$ref": "#/components/schemas/Market" + }, + "market_nft": { + "$ref": "#/components/schemas/MarketNft" + }, + "market_collection": { + "$ref": "#/components/schemas/Market" + } + }, + "required": [ + "token_id", + "market_stack", + "market_nft", + "market_collection", + "chain" + ] + }, + "QuotesForNFTsResult": { + "type": "object", + "description": "Quotes for NFTs result", + "properties": { + "result": { + "type": "array", + "description": "List of quotes", + "items": { + "$ref": "#/components/schemas/NFTQuoteResult" + } + }, + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + } + } + } +}