From d95fa66f0dc447b374a7f2111e60e795d290f2bd Mon Sep 17 00:00:00 2001 From: Naveen <116692862+naveen-imtb@users.noreply.github.com> Date: Mon, 25 May 2026 14:20:36 +1000 Subject: [PATCH 1/2] chore(generated-clients): refresh mr-openapi.json from S3 post-BSB-6 cleanup --- .../generated-clients/src/mr-openapi.json | 17915 ++++++++++------ 1 file changed, 11844 insertions(+), 6071 deletions(-) diff --git a/packages/internal/generated-clients/src/mr-openapi.json b/packages/internal/generated-clients/src/mr-openapi.json index 3e6161e76a..91c37acdf4 100644 --- a/packages/internal/generated-clients/src/mr-openapi.json +++ b/packages/internal/generated-clients/src/mr-openapi.json @@ -82,11 +82,28 @@ "description": "Passport operations", "x-displayName": "passport" }, + { + "name": "gamefi", + "description": "team gamefi", + "x-displayName": "gamefi" + }, + { + "name": "health", + "x-displayName": "health" + }, { "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", @@ -559,14 +576,10 @@ ] }, { - "BearerAuthWithClient": [ - "refresh:metadata" - ] + "BearerAuthWithClient": [] }, { - "BearerAuth": [ - "refresh:metadata" - ] + "BearerAuth": [] } ], "parameters": [ @@ -2265,6 +2278,95 @@ } } }, + "/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": [ @@ -2550,6 +2652,12 @@ }, "500": { "$ref": "#/components/responses/InternalServerError" + }, + "503": { + "$ref": "#/components/responses/ServiceUnavailable" + }, + "504": { + "$ref": "#/components/responses/GatewayTimeout" } } } @@ -2768,6 +2876,12 @@ }, "501": { "$ref": "#/components/responses/NotImplementedError" + }, + "503": { + "$ref": "#/components/responses/ServiceUnavailable" + }, + "504": { + "$ref": "#/components/responses/GatewayTimeout" } } } @@ -2964,18 +3078,24 @@ }, "501": { "$ref": "#/components/responses/NotImplementedError" + }, + "503": { + "$ref": "#/components/responses/ServiceUnavailable" + }, + "504": { + "$ref": "#/components/responses/GatewayTimeout" } } } }, - "/v1/chains/{chain_name}/orders/listings/{listing_id}": { + "/v1/chains/{chain_name}/orders/trait-bids": { "get": { "tags": [ "orders" ], - "summary": "Get a single listing by ID", - "description": "Get a single listing by ID", - "operationId": "GetListing", + "summary": "List all trait bids", + "description": "List all trait bids", + "operationId": "ListTraitBids", "parameters": [ { "name": "chain_name", @@ -2986,15 +3106,106 @@ } }, { - "name": "listing_id", - "in": "path", - "description": "Global Order identifier", - "required": true, + "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", - "format": "uuid", - "description": "Global Order identifier", - "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + "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" } } ], @@ -3004,7 +3215,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ListingResult" + "$ref": "#/components/schemas/ListTraitBidsResult" } } } @@ -3019,16 +3230,14 @@ "$ref": "#/components/responses/InternalServerError" } } - } - }, - "/v1/chains/{chain_name}/orders/bids/{bid_id}": { - "get": { + }, + "post": { "tags": [ "orders" ], - "summary": "Get a single bid by ID", - "description": "Get a single bid by ID", - "operationId": "GetBid", + "summary": "Create a trait bid", + "description": "Create a trait bid on NFTs matching specific trait criteria within a collection", + "operationId": "CreateTraitBid", "parameters": [ { "name": "chain_name", @@ -3037,27 +3246,25 @@ "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" - } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTraitBidRequestBody" + } + } + } + }, "responses": { - "200": { - "description": "OK response.", + "201": { + "description": "Created response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BidResult" + "$ref": "#/components/schemas/TraitBidResult" } } } @@ -3070,18 +3277,27 @@ }, "500": { "$ref": "#/components/responses/InternalServerError" + }, + "501": { + "$ref": "#/components/responses/NotImplementedError" + }, + "503": { + "$ref": "#/components/responses/ServiceUnavailable" + }, + "504": { + "$ref": "#/components/responses/GatewayTimeout" } } } }, - "/v1/chains/{chain_name}/orders/collection-bids/{collection_bid_id}": { + "/v1/chains/{chain_name}/orders/metadata-bids": { "get": { "tags": [ "orders" ], - "summary": "Get a single collection bid by ID", - "description": "Get a single collection bid by ID", - "operationId": "GetCollectionBid", + "summary": "List all metadata bids", + "description": "List all metadata bids", + "operationId": "ListMetadataBids", "parameters": [ { "name": "chain_name", @@ -3092,164 +3308,51 @@ } }, { - "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, + "name": "status", + "in": "query", + "description": "Order status to filter by", + "required": false, "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" - ] - } - } + "$ref": "#/components/schemas/OrderStatusName" } }, - "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, + "name": "buy_item_contract_address", + "in": "query", + "description": "Buy item contract address to filter by", + "required": false, "schema": { - "$ref": "#/components/schemas/ChainName" + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" } }, { - "name": "account_address", + "name": "sell_item_contract_address", "in": "query", + "description": "Sell item contract address to filter by", "required": false, "schema": { "type": "string", - "description": "Account address to filter trades by (includes buy and sell wallet address)", - "example": "0x784578949A4A50DeA641Fb15dd2B11C72E76919a", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "pattern": "^0x[a-fA-F0-9]{40}$" } }, { - "name": "sell_item_contract_address", + "name": "account_address", "in": "query", + "description": "The account address of the user who created the bid", "required": false, "schema": { "type": "string", - "description": "Sell item contract address to filter by", - "example": "0x784578949A4A50DeA641Fb15dd2B11C72E76919a", + "example": "0xc49Fd6e51aad88F6F4ce6aB8827279cffFb92266", "pattern": "^0x[a-fA-F0-9]{40}$" } }, { - "name": "from_indexed_at", + "name": "from_updated_at", "in": "query", - "description": "From indexed at including given date", + "description": "From updated at including given date", "required": false, "schema": { "type": "string", @@ -3260,7 +3363,7 @@ { "name": "page_size", "in": "query", - "description": "Maximum number of trades to return per page", + "description": "Maximum number of orders to return per page", "schema": { "$ref": "#/components/schemas/PageSize" } @@ -3268,17 +3371,19 @@ { "name": "sort_by", "in": "query", - "description": "Trade field to sort by", + "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": [ - "indexed_at" + "created_at", + "updated_at", + "sell_item_amount" ], - "description": "Trade field to sort by", - "example": "indexed_at" + "description": "Order field to sort by", + "example": "created_at" }, - "example": "indexed_at" + "example": "created_at" }, { "name": "sort_direction", @@ -3312,7 +3417,56 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ListTradeResult" + "$ref": "#/components/schemas/ListMetadataBidsResult" + } + } + } + }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + }, + "post": { + "tags": [ + "orders" + ], + "summary": "Create a metadata bid", + "description": "Create a metadata bid on NFTs matching a specific metadata identifier within a collection", + "operationId": "CreateMetadataBid", + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateMetadataBidRequestBody" + } + } + } + }, + "responses": { + "201": { + "description": "Created response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataBidResult" } } } @@ -3325,18 +3479,27 @@ }, "500": { "$ref": "#/components/responses/InternalServerError" + }, + "501": { + "$ref": "#/components/responses/NotImplementedError" + }, + "503": { + "$ref": "#/components/responses/ServiceUnavailable" + }, + "504": { + "$ref": "#/components/responses/GatewayTimeout" } } } }, - "/v1/chains/{chain_name}/trades/{trade_id}": { + "/v1/chains/{chain_name}/orders/trait-bids/{trait_bid_id}": { "get": { "tags": [ "orders" ], - "summary": "Get a single trade by ID", - "description": "Get a single trade by ID", - "operationId": "GetTrade", + "summary": "Get a single trait bid by ID", + "description": "Get a single trait bid by ID", + "operationId": "GetTraitBid", "parameters": [ { "name": "chain_name", @@ -3347,14 +3510,14 @@ } }, { - "name": "trade_id", + "name": "trait_bid_id", "in": "path", - "description": "Global Trade identifier", + "description": "Global Trait Bid identifier", "required": true, "schema": { "type": "string", "format": "uuid", - "description": "Global Trade identifier", + "description": "Global Trait Bid identifier", "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" } } @@ -3365,7 +3528,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TradeResult" + "$ref": "#/components/schemas/TraitBidResult" } } } @@ -3382,225 +3545,226 @@ } } }, - "/passport-mr/v1/users/{userId}/linked-addresses": { + "/v1/chains/{chain_name}/orders/metadata-bids/{metadata_bid_id}": { "get": { - "x-internal": true, - "deprecated": true, - "summary": "Deprecated Get Ethereum linked addresses for a user", - "description": "Get all the Ethereum linked addresses for a user based on its userId", "tags": [ - "passport" + "orders" ], + "summary": "Get a single metadata bid by ID", + "description": "Get a single metadata bid by ID", + "operationId": "GetMetadataBid", "parameters": [ { - "name": "userId", + "name": "chain_name", "in": "path", - "description": "The user's userId", "required": true, "schema": { - "type": "string" + "$ref": "#/components/schemas/ChainName" } - } - ], - "operationId": "getLinkedAddressesDeprecated", - "security": [ + }, { - "BearerAuth": [ - "openid" - ] + "name": "metadata_bid_id", + "in": "path", + "description": "Global Metadata Bid identifier", + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "description": "Global Metadata Bid identifier", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + } } ], "responses": { "200": { - "description": "User's list of linked addresses response", + "description": "OK response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetLinkedAddressesResDeprecated" + "$ref": "#/components/schemas/MetadataBidResult" } } } }, "400": { - "description": "BadRequestError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError400" - } - } - } + "$ref": "#/components/responses/BadRequest" }, - "401": { - "description": "UnauthorizedError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError401" - } - } - } + "404": { + "$ref": "#/components/responses/NotFound" }, - "403": { - "description": "ForbiddenError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError403" - } - } + "500": { + "$ref": "#/components/responses/InternalServerError" + } + } + } + }, + "/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" } }, - "429": { - "description": "TooManyRequestsError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError429" - } - } + { + "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" } - }, - "500": { - "description": "InternalServerError", + } + ], + "responses": { + "200": { + "description": "OK response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError500" + "$ref": "#/components/schemas/ListingResult" } } } }, - "default": { - "description": "unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BasicAPIError" - } - } - } + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" } } } }, - "/passport-mr/v1/users/{user_id}/metadata": { + "/v1/chains/{chain_name}/orders/bids/{bid_id}": { "get": { - "x-internal": true, - "summary": "Get passport metadata related to a user", - "description": "Get passport metadata related to a user", "tags": [ - "passport" + "orders" ], + "summary": "Get a single bid by ID", + "description": "Get a single bid by ID", + "operationId": "GetBid", "parameters": [ { - "name": "user_id", + "name": "chain_name", "in": "path", - "description": "The user's userId", "required": true, "schema": { - "type": "string" + "$ref": "#/components/schemas/ChainName" } - } - ], - "operationId": "getUserMetadata", - "security": [ + }, { - "ImmutableApiKey": [ - "read:passport-metadata" - ] + "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": "User's passport metadata response", + "description": "OK response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetPassportMetadataRes" + "$ref": "#/components/schemas/BidResult" } } } }, "400": { - "description": "BadRequestError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError400" - } - } - } + "$ref": "#/components/responses/BadRequest" }, - "401": { - "description": "UnauthorizedError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError401" - } - } - } + "404": { + "$ref": "#/components/responses/NotFound" }, - "403": { - "description": "ForbiddenError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError403" - } - } + "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" } }, - "429": { - "description": "TooManyRequestsError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError429" - } - } + { + "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" } - }, - "500": { - "description": "InternalServerError", + } + ], + "responses": { + "200": { + "description": "OK response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError500" + "$ref": "#/components/schemas/CollectionBidResult" } } } }, - "default": { - "description": "unexpected error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BasicAPIError" - } - } - } + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" } } } }, - "/v2/chains/{chain_name}/passport/counterfactual-address": { + "/v1/chains/{chain_name}/orders/fulfillment-data": { "post": { - "x-internal": true, - "summary": "Create a counterfactual address v2", - "description": "Create a counterfactual address for a user based on their Ethereum address", "tags": [ - "passport" - ], - "operationId": "createCounterfactualAddressV2", - "security": [ - { - "BearerAuth": [ - "transact" - ] - } + "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", @@ -3616,113 +3780,265 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateCounterfactualAddressRequest" + "type": "array", + "items": { + "$ref": "#/components/schemas/FulfillmentDataRequest" + } } } } }, "responses": { - "201": { - "description": "Counterfactual address created response", + "200": { + "description": "Successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateCounterfactualAddressRes" - } - } - } - }, - "400": { - "description": "BadRequestError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError400" + "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" + ] } } } }, - "401": { - "description": "UnauthorizedError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError401" - } - } + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + }, + "503": { + "$ref": "#/components/responses/ServiceUnavailable" + }, + "504": { + "$ref": "#/components/responses/GatewayTimeout" + } + } + } + }, + "/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" } }, - "403": { - "description": "ForbiddenError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError403" - } - } + { + "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}$" } }, - "429": { - "description": "TooManyRequestsError", + { + "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/APIError429" + "$ref": "#/components/schemas/ListTradeResult" } } } }, + "400": { + "$ref": "#/components/responses/BadRequest" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, "500": { - "description": "InternalServerError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError500" - } - } + "$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" } }, - "default": { - "description": "unexpected error", + { + "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/BasicAPIError" + "$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": { + "/passport-mr/v1/users/{userId}/linked-addresses": { "get": { + "x-internal": true, "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.", + "summary": "Deprecated Get Ethereum linked addresses for a user", + "description": "Get all the Ethereum linked addresses for a user based on its userId", "tags": [ "passport" ], "parameters": [ { - "name": "user_id", + "name": "userId", "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", + "operationId": "getLinkedAddressesDeprecated", "security": [ { "BearerAuth": [ @@ -3736,7 +4052,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetLinkedAddressesRes" + "$ref": "#/components/schemas/GetLinkedAddressesResDeprecated" } } } @@ -3804,49 +4120,40 @@ } } }, - "/v1/chains/{chain_name}/passport/transaction-metadata": { - "post": { + "/passport-mr/v1/users/{user_id}/metadata": { + "get": { "x-internal": true, - "summary": "Get transaction metadata", - "description": "Get transaction metadata for a given encoded transaction", + "summary": "Get passport metadata related to a user", + "description": "Get passport metadata related to a user", "tags": [ "passport" ], - "operationId": "getTransactionMetadata", - "security": [ - { - "BearerAuth": [ - "transact" - ] - } - ], "parameters": [ { - "name": "chain_name", + "name": "user_id", "in": "path", + "description": "The user's userId", "required": true, "schema": { - "$ref": "#/components/schemas/ChainName" + "type": "string" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTransactionMetadataRequest" - } - } + "operationId": "getUserMetadata", + "security": [ + { + "ImmutableApiKey": [ + "read:passport-metadata" + ] } - }, + ], "responses": { "200": { - "description": "Get transaction metadata response", + "description": "User's passport metadata response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetTransactionMetadataRes" + "$ref": "#/components/schemas/GetPassportMetadataRes" } } } @@ -3881,16 +4188,6 @@ } } }, - "404": { - "description": "NotFoundError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError404" - } - } - } - }, "429": { "description": "TooManyRequestsError", "content": { @@ -3924,49 +4221,36 @@ } } }, - "/v1/chains/{chain_name}/passport/typeddata-metadata": { - "post": { + "/passport-mr/v1/wallets/{wallet_address}/user": { + "get": { "x-internal": true, - "summary": "Get typeddata metadata", - "description": "Get typeddata metadata for a given encoded typeddata", + "summary": "Get user for a wallet", + "description": "Get the user associated with a wallet address", "tags": [ "passport" ], - "operationId": "getTypedDataMetadata", - "security": [ - { - "BearerAuth": [ - "transact" - ] - } - ], "parameters": [ { - "name": "chain_name", + "name": "wallet_address", "in": "path", + "description": "The wallet address", "required": true, "schema": { - "$ref": "#/components/schemas/ChainName" + "type": "string", + "pattern": "^0x[0-9a-fA-F]{40}$", + "maxLength": 42 } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetTypedDataMetadataRequest" - } - } - } - }, + "operationId": "getUserForWallet", + "security": [], "responses": { "200": { - "description": "Get typeddata metadata response", + "description": "Wallet user response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetTypedDataMetadataRes" + "$ref": "#/components/schemas/GetWalletUserRes" } } } @@ -4044,37 +4328,35 @@ } } }, - "/passport-profile/v2/linked-wallets": { - "post": { - "security": [ - { - "BearerAuth": [ - "openid" - ] - } - ], + "/passport-mr/v1/users/{email_address}/wallet": { + "get": { + "x-internal": true, + "summary": "Get wallet for a user", + "description": "Get the wallet address associated with a user's email", "tags": [ - "passport profile" + "passport" ], - "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" - } + "parameters": [ + { + "name": "email_address", + "in": "path", + "description": "The user's email address", + "required": true, + "schema": { + "type": "string", + "format": "email" } } - }, + ], + "operationId": "getWalletForUser", + "security": [], "responses": { "200": { - "description": "OK", + "description": "User wallet response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Wallet" + "$ref": "#/components/schemas/GetUserWalletRes" } } } @@ -4109,51 +4391,22 @@ } } }, - "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", + "404": { + "description": "NotFoundError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UserInfo" + "$ref": "#/components/schemas/APIError404" } } } }, - "401": { - "description": "UnauthorizedError", + "429": { + "description": "TooManyRequestsError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError401" + "$ref": "#/components/schemas/APIError429" } } } @@ -4181,45 +4434,40 @@ } } }, - "/guardian/v1/transactions/{id}/evaluate": { + "/passport-mr/v1/users/delete": { "post": { "x-internal": true, - "security": [ - { - "BearerAuth": [ - "transact" - ] - } - ], + "summary": "Delete user's Passport account", + "description": "Delete user's Passport account", "tags": [ - "guardian" + "passport" ], - "summary": "Evaluate a transaction", - "description": "Check if the transaction is valid by transaction ID for both StarkEx and EVM", - "operationId": "evaluateTransaction", - "parameters": [ + "operationId": "deleteUser", + "security": [ { - "$ref": "#/components/parameters/TransactionId" + "OktaBearerAuth": [ + "retool_role_passportAccountDeletions" + ] } ], "requestBody": { + "description": "The request body to delete a user's Passport account", "required": true, - "description": "Specifies the kind of transaction", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TransactionEvaluationRequest" + "$ref": "#/components/schemas/DeleteUserRequest" } } } }, "responses": { - "200": { - "description": "Expected response to a valid request", + "201": { + "description": "User deleted response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TransactionEvaluationResponse" + "$ref": "#/components/schemas/DeleteUserRes" } } } @@ -4234,6 +4482,16 @@ } } }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, "403": { "description": "ForbiddenError", "content": { @@ -4264,6 +4522,16 @@ } } }, + "429": { + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } + }, "500": { "description": "InternalServerError", "content": { @@ -4273,44 +4541,53 @@ } } } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } } } } }, - "/guardian/v1/messages/evaluate": { - "post": { + "/passport-mr/v1/users/email": { + "patch": { "x-internal": true, + "summary": "Update user email (sandbox only)", + "description": "Updates the email_address for a user in the users table, identified by wallet address.\nOnly available in sandbox.\n", + "tags": [ + "passport" + ], + "operationId": "updateUserEmail", "security": [ { - "BearerAuth": [ - "transact" + "OktaBearerAuth": [ + "retool_role_editor" ] } ], - "tags": [ - "guardian" - ], - "summary": "Evaluate an evm message to sign", - "description": "Check if a given message is valid for EVM", - "operationId": "evaluateMessage", "requestBody": { "required": true, - "description": "Specifies the kind of transaction", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MessageEvaluationRequest" + "$ref": "#/components/schemas/UpdateUserEmailRequest" } } } }, "responses": { "200": { - "description": "Expected response to a valid request", + "description": "User email updated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MessageEvaluationResponse" + "$ref": "#/components/schemas/UpdateUserEmailRes" } } } @@ -4325,8 +4602,18 @@ } } }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, "403": { - "description": "ForbiddenError", + "description": "ForbiddenError (e.g. not sandbox)", "content": { "application/json": { "schema": { @@ -4335,6 +4622,26 @@ } } }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "429": { + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } + }, "500": { "description": "InternalServerError", "content": { @@ -4344,13 +4651,29 @@ } } } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } } } } }, - "/guardian/v1/erc191-messages/evaluate": { + "/v2/chains/{chain_name}/passport/counterfactual-address": { "post": { "x-internal": true, + "summary": "Create a counterfactual address v2", + "description": "Create a counterfactual address for a user based on their Ethereum address", + "tags": [ + "passport" + ], + "operationId": "createCounterfactualAddressV2", "security": [ { "BearerAuth": [ @@ -4358,30 +4681,33 @@ ] } ], - "tags": [ - "guardian" + "parameters": [ + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" + } + } ], - "summary": "Evaluate an erc191 message to sign", - "description": "Check if a given erc191 message is valid", - "operationId": "evaluateErc191Message", "requestBody": { "required": true, - "description": "Specifies the kind of transaction", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ERC191MessageEvaluationRequest" + "$ref": "#/components/schemas/CreateCounterfactualAddressRequest" } } } }, "responses": { - "200": { - "description": "Expected response to a valid request", + "201": { + "description": "Counterfactual address created response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MessageEvaluationResponse" + "$ref": "#/components/schemas/CreateCounterfactualAddressRes" } } } @@ -4396,109 +4722,62 @@ } } }, - "403": { - "description": "ForbiddenError", + "401": { + "description": "UnauthorizedError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError403" + "$ref": "#/components/schemas/APIError401" } } } }, - "500": { - "description": "InternalServerError", + "403": { + "description": "ForbiddenError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError500" + "$ref": "#/components/schemas/APIError403" } } } - } - } - } - }, - "/guardian/v1/transactions/{payloadHash}/approve": { - "post": { - "x-internal": true, - "security": [ - { - "BearerAuthWithClient": [ - "approve:transactions", - "transact" - ] - } - ], - "tags": [ - "guardian" - ], - "summary": "Approve a pending transaction given chain", - "description": "Approve a pending transaction", - "operationId": "approvePendingTransaction", - "parameters": [ - { - "name": "payloadHash", - "in": "path", - "description": "Hash for the payload", - "required": true, - "schema": { - "type": "string", - "description": "Hash for the payload" - } - } - ], - "requestBody": { - "required": true, - "description": "request body for approving a pending transaction", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TransactionApprovalRequest" - } - } - } - }, - "responses": { - "204": { - "description": "successfully approved a pending transaction" }, - "400": { - "description": "BadRequestError", + "409": { + "description": "ConflictError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError400" + "$ref": "#/components/schemas/APIError409" } } } }, - "403": { - "description": "ForbiddenError", + "429": { + "description": "TooManyRequestsError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError403" + "$ref": "#/components/schemas/APIError429" } } } }, - "404": { - "description": "NotFoundError", + "500": { + "description": "InternalServerError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError404" + "$ref": "#/components/schemas/APIError500" } } } }, - "500": { - "description": "InternalServerError", + "default": { + "description": "unexpected error", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError500" + "$ref": "#/components/schemas/BasicAPIError" } } } @@ -4506,38 +4785,51 @@ } } }, - "/guardian/v1/messages/{messageID}/approve": { - "post": { - "x-internal": true, - "security": [ - { - "BearerAuthWithClient": [ - "approve:transactions", - "transact" - ] - } - ], + "/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": [ - "guardian" + "passport" ], - "summary": "Approve a pending evm message", - "description": "Approve a pending evm message", - "operationId": "approvePendingMessage", "parameters": [ { - "name": "messageID", + "name": "user_id", "in": "path", - "description": "id for the message", + "description": "The user's userId", "required": true, "schema": { - "type": "string", - "description": "Hash for the payload" + "type": "string" + } + }, + { + "name": "chain_name", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/ChainName" } } ], + "operationId": "getLinkedAddresses", + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], "responses": { - "204": { - "description": "successfully approved a pending evm message" + "200": { + "description": "User's list of linked addresses response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetLinkedAddressesRes" + } + } + } }, "400": { "description": "BadRequestError", @@ -4549,6 +4841,16 @@ } } }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, "403": { "description": "ForbiddenError", "content": { @@ -4559,12 +4861,12 @@ } } }, - "404": { - "description": "NotFoundError", + "429": { + "description": "TooManyRequestsError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError404" + "$ref": "#/components/schemas/APIError429" } } } @@ -4578,42 +4880,66 @@ } } } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } } } } }, - "/guardian/v1/erc191-messages/{messageID}/approve": { + "/v1/chains/{chain_name}/passport/transaction-metadata": { "post": { "x-internal": true, + "summary": "Get transaction metadata", + "description": "Get transaction metadata for a given encoded transaction", + "tags": [ + "passport" + ], + "operationId": "getTransactionMetadata", "security": [ { - "BearerAuthWithClient": [ - "approve:transactions", + "BearerAuth": [ "transact" ] } ], - "tags": [ - "guardian" - ], - "summary": "Approve a pending erc191 message", - "description": "Approve a pending erc191 message", - "operationId": "approvePendingERC191Message", "parameters": [ { - "name": "messageID", + "name": "chain_name", "in": "path", - "description": "id for the message", "required": true, "schema": { - "type": "string", - "description": "Hash for the payload" + "$ref": "#/components/schemas/ChainName" } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTransactionMetadataRequest" + } + } + } + }, "responses": { - "204": { - "description": "successfully approved a pending erc191 message" + "200": { + "description": "Get transaction metadata response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTransactionMetadataRes" + } + } + } }, "400": { "description": "BadRequestError", @@ -4625,6 +4951,16 @@ } } }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, "403": { "description": "ForbiddenError", "content": { @@ -4645,25 +4981,48 @@ } } }, - "500": { - "description": "InternalServerError", + "429": { + "description": "TooManyRequestsError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError500" + "$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" + } + } + } + } + } } }, - "/guardian/v1/transactions/{transactionID}": { - "get": { + "/v1/chains/{chain_name}/passport/typeddata-metadata": { + "post": { "x-internal": true, - "summary": "Info for a specific transaction", - "description": "Get a transaction by payload hash", - "operationId": "getTransactionByID", + "summary": "Get typeddata metadata", + "description": "Get typeddata metadata for a given encoded typeddata", + "tags": [ + "passport" + ], + "operationId": "getTypedDataMetadata", "security": [ { "BearerAuth": [ @@ -4671,48 +5030,33 @@ ] } ], - "tags": [ - "guardian" - ], "parameters": [ { - "name": "transactionID", + "name": "chain_name", "in": "path", "required": true, - "description": "The id of the starkex transaction to retrieve", "schema": { - "type": "string" + "$ref": "#/components/schemas/ChainName" } - }, - { - "in": "query", - "name": "chainType", - "schema": { - "type": "string", - "enum": [ - "starkex", - "evm" - ] - }, - "required": true, - "description": "roll up type" - }, - { - "in": "query", - "name": "chainID", - "schema": { - "type": "string" - }, - "description": "ID of evm chain" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTypedDataMetadataRequest" + } + } + } + }, "responses": { "200": { - "description": "Expected response to a valid request", + "description": "Get typeddata metadata response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Transaction" + "$ref": "#/components/schemas/GetTypedDataMetadataRes" } } } @@ -4727,6 +5071,16 @@ } } }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, "403": { "description": "ForbiddenError", "content": { @@ -4747,6 +5101,16 @@ } } }, + "429": { + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } + }, "500": { "description": "InternalServerError", "content": { @@ -4770,40 +5134,29 @@ } } }, - "/guardian/v1/messages/{messageID}": { + "/passport-mr/v1/session-activity-contracts": { "get": { "x-internal": true, - "summary": "Info for a specific evm message", - "description": "Get an evm message by id", - "operationId": "getMessageByID", - "security": [ - { - "BearerAuth": [ - "transact" - ] - } - ], + "summary": "Get session activity contracts", + "description": "Retrieve session activity contracts with optional filtering", "tags": [ - "guardian" + "passport" ], - "parameters": [ + "operationId": "getPreOnboardingCheckInSessionActivityContracts", + "security": [ { - "name": "messageID", - "in": "path", - "required": true, - "description": "The id of the evm message", - "schema": { - "type": "string" - } + "OktaBearerAuth": [ + "retool_role_editor" + ] } ], "responses": { "200": { - "description": "Expected response to a valid request", + "description": "Session activity contracts retrieved successfully", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/EVMMessage" + "$ref": "#/components/schemas/GetPreOnboardingCheckInSessionActivityContractsRes" } } } @@ -4818,6 +5171,16 @@ } } }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, "403": { "description": "ForbiddenError", "content": { @@ -4828,12 +5191,12 @@ } } }, - "404": { - "description": "NotFoundError", + "429": { + "description": "TooManyRequestsError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError404" + "$ref": "#/components/schemas/APIError429" } } } @@ -4859,42 +5222,40 @@ } } } - } - }, - "/guardian/v1/erc191-messages/{messageID}": { - "get": { + }, + "post": { "x-internal": true, - "summary": "Info for a specific erc191 message", - "description": "Get an erc191 message by id", - "operationId": "getErc191MessageByID", + "summary": "Create session activity contract", + "description": "Create a new session activity contract for tracking user interactions", + "tags": [ + "passport" + ], + "operationId": "createPreOnboardingCheckInSessionActivityContract", "security": [ { - "BearerAuth": [ - "transact" + "OktaBearerAuth": [ + "retool_role_editor" ] } ], - "tags": [ - "guardian" - ], - "parameters": [ - { - "name": "messageID", - "in": "path", - "required": true, - "description": "The id of the erc191 message", - "schema": { - "type": "string" + "requestBody": { + "description": "The request body to create a session activity contract", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePreOnboardingCheckInSessionActivityContractRequest" + } } } - ], + }, "responses": { - "200": { - "description": "Expected response to a valid request", + "201": { + "description": "Session activity contract created response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Erc191MessageResponse" + "$ref": "#/components/schemas/CreatePreOnboardingCheckInSessionActivityContractRes" } } } @@ -4909,6 +5270,16 @@ } } }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, "403": { "description": "ForbiddenError", "content": { @@ -4919,12 +5290,22 @@ } } }, - "404": { - "description": "NotFoundError", + "409": { + "description": "ConflictError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError404" + "$ref": "#/components/schemas/APIError409" + } + } + } + }, + "429": { + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" } } } @@ -4952,1427 +5333,5844 @@ } } }, - "/v1/chains/{chain_name}/search/filters/{contract_address}": { + "/v1/heartbeat": { "get": { "tags": [ - "metadata-search" + "health" + ], + "summary": "Health check endpoint", + "operationId": "heartbeat", + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/v1/staking/programs/{program_name}/epochs/{epoch_id}": { + "get": { + "x-public": true, + "x-internal": true, + "summary": "Get epoch", + "description": "Get epoch by ID", + "operationId": "GetEpoch", + "tags": [ + "gamefi" ], - "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", + "name": "program_name", "required": true, - "examples": { - "testnet": { - "value": "imtbl-zkevm-testnet", - "summary": "Immutable zkEVM Public Testnet" - } + "schema": { + "$ref": "#/components/schemas/ProgramName" } }, { - "name": "contract_address", "in": "path", + "name": "epoch_id", "required": true, - "description": "Contract addresses for collection", "schema": { - "type": "string", - "pattern": "^0x[a-fA-F0-9]{40}$", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + "$ref": "#/components/schemas/EpochID" } } ], "responses": { "200": { - "description": "200 response", + "description": "Epoch details", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ListFiltersResult" + "$ref": "#/components/schemas/GetEpochResponseBody" } } } }, "400": { - "$ref": "#/components/responses/BadRequest" - }, - "401": { - "$ref": "#/components/responses/UnauthorisedRequest" - }, - "403": { - "$ref": "#/components/responses/ForbiddenRequest" + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } }, "404": { - "$ref": "#/components/responses/NotFound" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests" + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } }, "500": { - "$ref": "#/components/responses/InternalServerError" + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } } } } }, - "/v1/chains/{chain_name}/search/nfts": { + "/v1/staking/programs/{program_name}/wallets/{wallet_address}": { "get": { + "x-public": true, + "x-internal": true, + "summary": "Get wallet staking info", + "description": "Get wallet staking info", + "operationId": "GetWalletStakingInfo", "tags": [ - "metadata-search" + "gamefi" ], - "operationId": "SearchNFTs", - "summary": "Search NFTs", - "description": "Search NFTs", "parameters": [ { - "name": "chain_name", - "description": "The name of chain", - "schema": { - "$ref": "#/components/schemas/ChainName" - }, "in": "path", + "name": "program_name", "required": true, - "examples": { - "testnet": { - "value": "imtbl-zkevm-testnet", - "summary": "Immutable zkEVM Public Testnet" - } + "schema": { + "$ref": "#/components/schemas/ProgramName" } }, { - "name": "contract_address", - "in": "query", + "in": "path", + "name": "wallet_address", "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 + "$ref": "#/components/schemas/EthereumAddress" } - }, - { - "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" + } + ], + "responses": { + "200": { + "description": "Wallet staking info", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetWalletStakingInfoResponseBody" + } + } } }, - { - "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 + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } } }, - { - "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 + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } } }, - { - "name": "page_size", - "in": "query", - "required": false, - "description": "Number of results to return per page", - "schema": { - "$ref": "#/components/schemas/PageSize" + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } } - }, + } + } + } + }, + "/passport-profile/v1/phone-otp/verify": { + "post": { + "security": [ { - "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" - } + "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": "200 response", + "description": "OK" + }, + "400": { + "description": "BadRequestError", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchNFTsResult" + "$ref": "#/components/schemas/APIError400" } } } }, - "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" + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } }, "500": { - "$ref": "#/components/responses/InternalServerError" + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } } } } }, - "/v1/chains/{chain_name}/search/stacks": { + "/passport-profile/v1/profile": { "get": { + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], "tags": [ - "metadata-search" + "passport profile" ], - "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" + "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" + } } } }, - { - "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 + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } } }, - { - "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" + "429": { + "description": "TooManyRequestsError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } } }, - { - "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" + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } } - }, + } + } + } + }, + "/passport-profile/v1/username": { + "post": { + "security": [ { - "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" - } + "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": "200 response", + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SearchStacksResult" + "$ref": "#/components/schemas/UsernameUpdateResponse" } } } }, "400": { - "$ref": "#/components/responses/BadRequest" + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } }, "401": { - "$ref": "#/components/responses/UnauthorisedRequest" + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } }, "403": { - "$ref": "#/components/responses/ForbiddenRequest" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests" + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } }, "500": { - "$ref": "#/components/responses/InternalServerError" + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } } } } }, - "/v1/chains/{chain_name}/stacks": { - "get": { + "/passport-profile/v1/phone-otp": { + "post": { + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], "tags": [ - "metadata" + "passport profile" ], - "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" + "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" } } - }, - { - "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", + "description": "OK", "content": { "application/json": { "schema": { - "type": "array", - "description": "List of stack bundles", - "items": { - "$ref": "#/components/schemas/StackBundle" - } + "$ref": "#/components/schemas/PhoneNumberOTPResponse" } } } }, "400": { - "$ref": "#/components/responses/BadRequest" + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } }, "401": { - "$ref": "#/components/responses/UnauthorisedRequest" + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } }, "403": { - "$ref": "#/components/responses/ForbiddenRequest" - }, - "404": { - "$ref": "#/components/responses/NotFound" + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } }, "429": { - "$ref": "#/components/responses/TooManyRequests" + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError429" + } + } + } }, "500": { - "$ref": "#/components/responses/InternalServerError" + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } } } } }, - "/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": [ + "/passport-profile/v2/linked-wallets": { + "post": { + "security": [ { - "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" + "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" + } } } }, - { - "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" + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } } }, - { - "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 + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } } }, - { - "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" + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } } }, - { - "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" + "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": "200 response", + "description": "Passport user's info", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/QuotesForStacksResult" + "$ref": "#/components/schemas/UserInfo" } } } }, - "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" + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } }, "500": { - "$ref": "#/components/responses/InternalServerError" + "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}/quotes/{contract_address}/nfts": { + "/passport-profile/v1/feed-items": { "get": { + "x-internal": true, "tags": [ - "pricing" + "feed-items" ], - "operationId": "QuotesForNFTs", - "summary": "Get pricing data for a list of token ids", - "description": "pricing data for a list of token ids", + "summary": "Get feed items", + "description": "Get feed items", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "get-feed-items", "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" - } - } + "$ref": "#/components/parameters/Offset" }, { - "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}$" - } + "$ref": "#/components/parameters/PageSizeParam" }, { - "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 - } + "$ref": "#/components/parameters/SortField" }, { - "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" - } + "$ref": "#/components/parameters/SortDirection" }, { - "name": "page_cursor", + "name": "status", "in": "query", - "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", + "description": "Filter by status", "required": false, "schema": { - "$ref": "#/components/schemas/PageCursor" + "type": "string", + "enum": [ + "published", + "draft", + "scheduled", + "archived" + ] } } ], "responses": { "200": { - "description": "200 response", + "description": "Successfully get feed items", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/QuotesForNFTsResult" + "$ref": "#/components/schemas/FeedItemsResponse" } } } }, "400": { - "$ref": "#/components/responses/BadRequest" + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } }, "401": { - "$ref": "#/components/responses/UnauthorisedRequest" + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } }, "403": { - "$ref": "#/components/responses/ForbiddenRequest" - }, - "404": { - "$ref": "#/components/responses/NotFound" - }, - "429": { - "$ref": "#/components/responses/TooManyRequests" + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } }, "500": { - "$ref": "#/components/responses/InternalServerError" + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } } } - } - } - }, - "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" - } - }, - "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" + "post": { + "x-internal": true, + "tags": [ + "feed-items" + ], + "summary": "Create a feed item", + "description": "Create a feed item", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] } - } - }, - "ContractAddress": { - "name": "contract_address", - "in": "path", - "required": true, - "description": "Contract address", - "schema": { - "$ref": "#/components/schemas/Address" - } - }, - "TransactionId": { - "name": "id", - "in": "path", - "description": "Transaction identifier: payloadHash on StarkEx or EVM ID", - "required": true, - "schema": { - "type": "string", - "description": "Hash of the transaction" - } - } - }, - "responses": { - "NotFound": { - "description": "The specified resource was not found (404)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError404" + ], + "operationId": "create-feed-item", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUpdateFeedItemRequest" + } } } - } - }, - "BadRequest": { - "description": "Bad Request (400)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError400" + }, + "responses": { + "201": { + "description": "Successfully created feed item", + "headers": { + "Location": { + "description": "Location of the created feed item", + "required": true, + "schema": { + "type": "string", + "format": "uri" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/FeedItemResponse" + } + }, + "required": [ + "result" + ] + } + } } - } - } - }, - "UnauthorisedRequest": { - "description": "Unauthorised Request (401)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError401" + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } } - } - } - }, - "ForbiddenRequest": { - "description": "Forbidden Request (403)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError403" + }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } } - } - } - }, - "Conflict": { - "description": "Conflict (409)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError409" + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } } - } - } - }, - "TooManyRequests": { - "description": "Too Many Requests (429)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError429" + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } } } - }, - "headers": { - "Retry-After": { - "$ref": "#/components/headers/RetryAfter" - } } - }, - "TooManyMetadataRefreshes": { - "description": "Too Many Metadata refreshes (429)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError429" + } + }, + "/passport-profile/v1/feed-items/actions/update-status": { + "post": { + "x-internal": true, + "tags": [ + "feed-items" + ], + "summary": "Update feed items status", + "description": "Apply a new value in feed items status", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "update-feed-items-status", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FeedItemsStatusRequest" + } } } }, - "headers": { - "imx-refreshes-limit": { - "$ref": "#/components/headers/MetadataRefreshLimit" - }, - "imx-refresh-limit-reset": { - "$ref": "#/components/headers/MetadataRefreshLimitReset" + "responses": { + "200": { + "description": "Successfully update feed items status", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FeedItemsStatusResponse" + } + } + } }, - "imx-remaining-refreshes": { - "$ref": "#/components/headers/MetadataRefreshLimitRemaining" + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } }, - "Retry-After": { - "$ref": "#/components/headers/MetadataRefreshRetryAfter" - } - } - }, - "TooManyMintRequests": { - "description": "Too Many mint requests (429)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError429" + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } } } - }, - "headers": { - "imx-mint-requests-limit": { - "$ref": "#/components/headers/MintRequestsLimit" + } + } + }, + "/passport-profile/v1/feed-items/{feed_item_id}": { + "get": { + "x-internal": true, + "tags": [ + "feed-items" + ], + "summary": "Get a feed item", + "description": "Get a feed item", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "get-feed-item", + "parameters": [ + { + "$ref": "#/components/parameters/FeedItemIdParam" + } + ], + "responses": { + "200": { + "description": "Successfully get feed item", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FeedItemResult" + } + } + } }, - "imx-mint-requests-limit-reset": { - "$ref": "#/components/headers/MintRequestsLimitReset" + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } }, - "imx-remaining-mint-requests": { - "$ref": "#/components/headers/MintRequestsLimitRemaining" + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } }, - "imx-mint-requests-retry-after": { - "$ref": "#/components/headers/MintRequestsRetryAfter" + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } }, - "Retry-After": { - "$ref": "#/components/headers/MintRequestsRetryAfter" + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } } } }, - "InternalServerError": { - "description": "Internal Server Error (500)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError500" + "put": { + "x-internal": true, + "tags": [ + "feed-items" + ], + "summary": "Update a feed item", + "description": "Update a feed item", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "update-feed-item", + "parameters": [ + { + "$ref": "#/components/parameters/FeedItemIdParam" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUpdateFeedItemRequest" + } } } - } - }, - "NotImplementedError": { - "description": "Not Implemented Error (501)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError501" + }, + "responses": { + "200": { + "description": "Successfully updated feed item", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/FeedItemResponse" + } + }, + "required": [ + "result" + ] + } + } + } + }, + "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" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } } } } } }, - "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" + "/passport-profile/v1/feed-items/assets": { + "get": { + "x-internal": true, + "tags": [ + "feed-items", + "assets" + ], + "summary": "Get list of feed items assets", + "description": "Get list of feed items assets", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "get-feed-items-assets", + "parameters": [ + { + "$ref": "#/components/parameters/PageCursorParam" + }, + { + "$ref": "#/components/parameters/PageSizeParam" + }, + { + "$ref": "#/components/parameters/FeedItemAssetTypeParam" + } + ], + "responses": { + "200": { + "description": "Successfully get list of feed items assets", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FeedItemsAssetsResponse" + } + } + } + }, + "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" + } + } + } + } } - }, - "MintRequestsLimitRemaining": { - "description": "The number of mint requests remaining in the current window.", - "schema": { - "type": "string" + } + }, + "/passport-profile/v1/feed-items/assets/bulk": { + "post": { + "x-internal": true, + "tags": [ + "feed-items", + "assets" + ], + "summary": "Create a bunch of feed items assets", + "description": "Create a bunch of feed items assets", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "create-feed-items-assets", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateFeedItemsAssetsRequest" + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Successfully created feed items assets", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "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" + } + } + } + } } - }, - "MintRequestsRetryAfter": { - "description": "The number of seconds until the next refresh request can be made.", - "schema": { - "type": "string" + } + }, + "/passport-profile/v1/{game_id}/assets": { + "get": { + "x-internal": true, + "tags": [ + "passport profile" + ], + "summary": "Get list of assets for a game", + "description": "Get list of assets for a game", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "get-game-assets", + "parameters": [ + { + "name": "game_id", + "in": "path", + "description": "The UUID of the game the file belongs to", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "$ref": "#/components/parameters/PageCursorParam" + }, + { + "$ref": "#/components/parameters/PageSizeParam" + } + ], + "responses": { + "200": { + "description": "Successfully get list of assets for a game", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FeedItemsAssetsResponse" + } + } + } + }, + "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" + } + } + } + } } } }, - "schemas": { - "PageSize": { - "type": "integer", - "format": "int32", - "description": "Maximum number of items to return", - "minimum": 1, - "default": 100, - "maximum": 200, - "example": 10 + "/passport-profile/v1/{game_id}/assets/presign-upload": { + "get": { + "x-internal": true, + "tags": [ + "passport profile" + ], + "summary": "Get url to where the asset should be uploaded", + "description": "Get url to where the asset should be uploaded", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "get-game-presign-upload", + "parameters": [ + { + "name": "file_name", + "in": "query", + "description": "The name of the file to be uploaded to the returned url", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "game_id", + "in": "path", + "description": "The UUID of the game the file belongs to", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Successfully get url to where the asset should be uploaded", + "content": { + "application/json": { + "schema": { + "description": "Presigned upload response", + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "required": [ + "url" + ] + } + } + } + }, + "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/m2m/{game_id}/assets/presign-upload": { + "get": { + "x-internal": true, + "tags": [ + "passport profile" + ], + "summary": "Get url to where the asset should be uploaded (M2M)", + "description": "Get url to where the asset should be uploaded via M2M authentication", + "security": [], + "operationId": "m2m-get-game-presign-upload", + "parameters": [ + { + "name": "file_name", + "in": "query", + "description": "The name of the file to be uploaded to the returned url", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "game_id", + "in": "path", + "description": "The UUID of the game the file belongs to", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Successfully get url to where the asset should be uploaded", + "content": { + "application/json": { + "schema": { + "description": "Presigned upload response", + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "required": [ + "url" + ] + } + } + } + }, + "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/feed-items/assets/presign-upload": { + "get": { + "x-internal": true, + "tags": [ + "feed-items", + "assets" + ], + "summary": "Get url to where the asset should be uploaded", + "description": "Get url to where the asset should be uploaded", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "operationId": "get-feed-items-presign-upload", + "parameters": [ + { + "name": "file_name", + "in": "query", + "description": "The name of the file to be uploaded to the returned url", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully get url to where the asset should be uploaded", + "content": { + "application/json": { + "schema": { + "description": "Presigned upload response", + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "required": [ + "url" + ] + } + } + } + }, + "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/internal/assets/{game_id}/{path}": { + "get": { + "x-internal": true, + "tags": [ + "passport profile" + ], + "summary": "Get list of assets for a game at a specific path", + "description": "Lists assets under {game_id}/{path}/ prefix in S3.\nReturns asset metadata including CDN URL, with cursor-based pagination.\nUse page_cursor from the previous response to fetch the next page.\nNo more results when next_cursor is null.\n", + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "operationId": "get-internal-assets", + "parameters": [ + { + "name": "game_id", + "in": "path", + "description": "The UUID of the game", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "path", + "in": "path", + "description": "The asset path within the game", + "required": true, + "schema": { + "type": "string", + "enum": [ + "email", + "game-page" + ] + } + }, + { + "$ref": "#/components/parameters/PageCursorParam" + }, + { + "$ref": "#/components/parameters/PageSizeParam" + }, + { + "name": "search_term", + "in": "query", + "description": "Optional prefix search term. Matching is case-sensitive.\n", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved list of internal assets", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalAssetsResponse" + } + } + } + }, + "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 - User does not own this game", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/passport-profile/v1/internal/assets/{game_id}/{path}/presign-upload": { + "get": { + "x-internal": true, + "tags": [ + "passport profile" + ], + "summary": "Get presigned URL to upload an asset for a game", + "description": "Generates a presigned PUT URL for uploading an asset to S3.\nValidates file extension (.png, .jpg, .jpeg, .webp, .gif) and content type.\nValidates content_length is <= 5MB (5,242,880 bytes).\nChecks current asset count; rejects if at limit (20 assets max per game/path).\nURL expires in 5 minutes.\nS3 enforces Content-Type and Content-Length conditions on upload.\n", + "security": [ + { + "BearerAuth": [ + "openid" + ] + } + ], + "operationId": "get-internal-presign-upload", + "parameters": [ + { + "name": "game_id", + "in": "path", + "description": "The UUID of the game", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "path", + "in": "path", + "description": "The asset path within the game", + "required": true, + "schema": { + "type": "string", + "enum": [ + "email", + "game-page" + ] + } + }, + { + "name": "file_name", + "in": "query", + "description": "Name of the file to be uploaded (must have valid extension)", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 255 + } + }, + { + "name": "content_type", + "in": "query", + "description": "Content type of the file (image/png, image/jpeg, image/webp, image/gif)", + "required": true, + "schema": { + "type": "string", + "enum": [ + "image/png", + "image/jpeg", + "image/webp", + "image/gif" + ] + } + }, + { + "name": "content_length", + "in": "query", + "description": "Size of the file in bytes (max 5MB = 5242880 bytes)", + "required": true, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 5242880 + } + } + ], + "responses": { + "200": { + "description": "Successfully generated presigned upload URL", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalPresignUploadResponse" + } + } + } + }, + "400": { + "description": "BadRequestError - Invalid file extension, content type, or size", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "401": { + "description": "UnauthorizedError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError401" + } + } + } + }, + "403": { + "description": "ForbiddenError - User does not own this game", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "409": { + "description": "ConflictError - Asset limit reached (max 20 assets per game/path)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError409" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/guardian/v1/transactions/{id}/evaluate": { + "post": { + "x-internal": true, + "security": [ + { + "BearerAuth": [ + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "summary": "Evaluate a transaction", + "description": "Check if the transaction is valid by transaction ID for EVM", + "operationId": "evaluateTransaction", + "parameters": [ + { + "$ref": "#/components/parameters/TransactionId" + } + ], + "requestBody": { + "required": true, + "description": "Specifies the kind of transaction", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionEvaluationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionEvaluationResponse" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "409": { + "description": "ConflictError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError409" + } + } + } + }, + "422": { + "description": "UnprocessableEntityError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError422" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/guardian/v1/messages/evaluate": { + "post": { + "x-internal": true, + "security": [ + { + "BearerAuth": [ + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "summary": "Evaluate an evm message to sign", + "description": "Check if a given message is valid for EVM", + "operationId": "evaluateMessage", + "requestBody": { + "required": true, + "description": "Specifies the kind of transaction", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageEvaluationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageEvaluationResponse" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/guardian/v1/erc191-messages/evaluate": { + "post": { + "x-internal": true, + "security": [ + { + "BearerAuth": [ + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "summary": "Evaluate an erc191 message to sign", + "description": "Check if a given erc191 message is valid", + "operationId": "evaluateErc191Message", + "requestBody": { + "required": true, + "description": "Specifies the kind of transaction", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ERC191MessageEvaluationRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageEvaluationResponse" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/guardian/v1/transactions/{payloadHash}/approve": { + "post": { + "x-internal": true, + "security": [ + { + "BearerAuthWithClient": [ + "approve:transactions", + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "summary": "Approve a pending transaction given chain", + "description": "Approve a pending transaction", + "operationId": "approvePendingTransaction", + "parameters": [ + { + "name": "payloadHash", + "in": "path", + "description": "Hash for the payload", + "required": true, + "schema": { + "type": "string", + "description": "Hash for the payload" + } + } + ], + "requestBody": { + "required": true, + "description": "request body for approving a pending transaction", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionApprovalRequest" + } + } + } + }, + "responses": { + "204": { + "description": "successfully approved a pending transaction" + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/guardian/v1/messages/{messageID}/approve": { + "post": { + "x-internal": true, + "security": [ + { + "BearerAuthWithClient": [ + "approve:transactions", + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "summary": "Approve a pending evm message", + "description": "Approve a pending evm message", + "operationId": "approvePendingMessage", + "parameters": [ + { + "name": "messageID", + "in": "path", + "description": "id for the message", + "required": true, + "schema": { + "type": "string", + "description": "Hash for the payload" + } + } + ], + "responses": { + "204": { + "description": "successfully approved a pending evm message" + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/guardian/v1/erc191-messages/{messageID}/approve": { + "post": { + "x-internal": true, + "security": [ + { + "BearerAuthWithClient": [ + "approve:transactions", + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "summary": "Approve a pending erc191 message", + "description": "Approve a pending erc191 message", + "operationId": "approvePendingERC191Message", + "parameters": [ + { + "name": "messageID", + "in": "path", + "description": "id for the message", + "required": true, + "schema": { + "type": "string", + "description": "Hash for the payload" + } + } + ], + "responses": { + "204": { + "description": "successfully approved a pending erc191 message" + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + } + } + } + }, + "/guardian/v1/transactions/{transactionID}": { + "get": { + "x-internal": true, + "summary": "Info for a specific transaction", + "description": "Get a transaction by payload hash", + "operationId": "getTransactionByID", + "security": [ + { + "BearerAuth": [ + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "parameters": [ + { + "name": "transactionID", + "in": "path", + "required": true, + "description": "The id of the transaction to retrieve", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "chainType", + "schema": { + "type": "string", + "enum": [ + "evm" + ] + }, + "required": true, + "description": "roll up type" + }, + { + "in": "query", + "name": "chainID", + "schema": { + "type": "string" + }, + "description": "ID of evm chain" + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Transaction" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } + } + } + } + }, + "/guardian/v1/messages/{messageID}": { + "get": { + "x-internal": true, + "summary": "Info for a specific evm message", + "description": "Get an evm message by id", + "operationId": "getMessageByID", + "security": [ + { + "BearerAuth": [ + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "parameters": [ + { + "name": "messageID", + "in": "path", + "required": true, + "description": "The id of the evm message", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EVMMessage" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } + } + } + } + }, + "/guardian/v1/erc191-messages/{messageID}": { + "get": { + "x-internal": true, + "summary": "Info for a specific erc191 message", + "description": "Get an erc191 message by id", + "operationId": "getErc191MessageByID", + "security": [ + { + "BearerAuth": [ + "transact" + ] + } + ], + "tags": [ + "guardian" + ], + "parameters": [ + { + "name": "messageID", + "in": "path", + "required": true, + "description": "The id of the erc191 message", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Erc191MessageResponse" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } + } + } + } + }, + "/guardian/v1/session-activity-contracts": { + "get": { + "x-internal": true, + "summary": "Get session activity contracts", + "description": "Retrieve session activity contracts with optional filtering", + "tags": [ + "passport", + "guardian" + ], + "operationId": "getSessionActivityContracts", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "parameters": [ + { + "name": "clientId", + "in": "query", + "required": false, + "description": "Filter by Passport client ID", + "schema": { + "type": "string" + } + }, + { + "name": "enabled", + "in": "query", + "required": false, + "description": "Filter by enabled status (true or false). If not provided, returns ALL records (enabled and disabled) - matching S3 behavior.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Session activity contracts retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionActivityContractsResponse" + } + } + } + }, + "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" + } + } + } + } + } + }, + "post": { + "x-internal": true, + "summary": "Create session activity contract", + "description": "Create a new session activity contract for tracking user interactions", + "tags": [ + "passport", + "guardian" + ], + "operationId": "createSessionActivityContract", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "requestBody": { + "description": "The request body to create a session activity contract", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertSessionActivityContractReq" + } + } + } + }, + "responses": { + "201": { + "description": "Session activity contract created response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertSessionActivityContractResp" + } + } + } + }, + "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" + } + } + } + }, + "409": { + "description": "ConflictError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError409" + } + } + } + }, + "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" + } + } + } + } + } + } + }, + "/guardian/v1/session-activity-contracts/{id}": { + "get": { + "get": null, + "x-internal": true, + "summary": "Get session activity contract by id", + "description": "Get session activity contract by id", + "operationId": "getSessionActivityContract", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "The id of the session activity contract", + "schema": { + "type": "string" + } + } + ], + "tags": [ + "passport", + "guardian" + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionActivityContractResponse" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } + } + } + }, + "put": { + "x-internal": true, + "summary": "Update session activity contract", + "description": "Update a session activity contract", + "tags": [ + "passport", + "guardian" + ], + "operationId": "updateSessionActivityContract", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "The id of the session activity contract", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The request body to create a session activity contract", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertSessionActivityContractReq" + } + } + } + }, + "responses": { + "200": { + "description": "Session activity contract updated response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertSessionActivityContractResp" + } + } + } + }, + "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" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "409": { + "description": "ConflictError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError409" + } + } + } + }, + "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" + } + } + } + } + } + }, + "delete": { + "tags": [ + "passport", + "guardian" + ], + "summary": "deletes session activities", + "x-internal": true, + "operationId": "deleteSessionActivityContract", + "security": [ + { + "OktaBearerAuth": [ + "retool_role_editor" + ] + } + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The id of the session activity contract to be deleted", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "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" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "500": { + "description": "InternalServerError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError500" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BasicAPIError" + } + } + } + } + } + } + }, + "/guardian/v1/private/session-activity-contracts": { + "get": { + "x-internal": true, + "summary": "Get session activity contracts for private service to service communication", + "description": "Get session activity contracts mappings for private service to service communication", + "operationId": "getPrivateSessionActivityContracts", + "security": [], + "tags": [ + "passport", + "guardian" + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionActivityContractsResponse" + } + } + } + }, + "400": { + "description": "BadRequestError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError400" + } + } + } + }, + "403": { + "description": "ForbiddenError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError403" + } + } + } + }, + "404": { + "description": "NotFoundError", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError404" + } + } + } + }, + "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" + } + }, + "FeedItemIdParam": { + "name": "feed_item_id", + "in": "path", + "description": "Feed item ID", + "required": true, + "schema": { + "type": "string" + } + }, + "FeedItemAssetTypeParam": { + "name": "type", + "in": "query", + "description": "Asset type to be sent as a query param", + "required": true, + "schema": { + "type": "string", + "enum": [ + "image", + "video" + ] + } + }, + "PageCursorParam": { + "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" + } + }, + "Offset": { + "name": "offset", + "in": "query", + "description": "Offset for pagination", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "minimum": 0, + "default": 0, + "example": 10 + } + }, + "PageSizeParam": { + "name": "page_size", + "description": "Maximum number of items to return", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "minimum": 1, + "default": 100, + "maximum": 100, + "example": 10 + } + }, + "SortDirection": { + "name": "sort_direction", + "in": "query", + "description": "Ascending or descending direction for sort", + "required": false, + "schema": { + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + "SortField": { + "name": "sort_field", + "in": "query", + "description": "Field to sort by", + "required": false, + "schema": { + "enum": [ + "name", + "slug", + "lastPublished" + ], + "type": "string" + } + }, + "TransactionId": { + "name": "id", + "in": "path", + "description": "Transaction identifier: EVM transaction ID", + "required": true, + "schema": { + "type": "string", + "description": "Hash of the transaction" + } + } + }, + "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" + } + } + } + }, + "ServiceUnavailable": { + "description": "Service Unavailable (503) - RPC or upstream service temporarily unavailable", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError503" + } + } + } + }, + "GatewayTimeout": { + "description": "Gateway Timeout (504) - Upstream validation request timed out", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError504" + } + } + } + } + }, + "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" + ] }, - "PageCursor": { - "type": "string", - "description": "Encoded page cursor to retrieve previous or next page. Use the value returned in the response.", - "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" + "GetMetadataResult": { + "type": "object", + "description": "Single metadata", + "properties": { + "result": { + "$ref": "#/components/schemas/Metadata" + } + }, + "required": [ + "result" + ] }, - "Page": { + "ListMetadataResult": { "type": "object", - "description": "Pagination properties", "properties": { - "previous_cursor": { + "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": "First item as an encoded string", - "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" + "description": "When the metadata was last updated", + "example": "2022-08-16T17:43:26.991388Z" }, - "next_cursor": { + "name": { "type": "string", "nullable": true, - "description": "Last item as an encoded string", - "example": "ewogICJ0eXBlIjogInByZXYiLAogICJpdGVtIjogewogICAgImlkIjogNjI3NTEzMCwKICAgICJjcmVhdGVkX2F0IjogIjIwMjItMDktMTNUMTc6MDQ6MTIuMDI0MTI2WiIKICB9Cn0=" + "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": [ - "previous_cursor", - "next_cursor" + "id", + "chain", + "contract_address", + "created_at", + "updated_at", + "name", + "description", + "image", + "external_link", + "animation_url", + "youtube_url", + "attributes" ] }, - "ActivityType": { - "description": "The activity type", - "example": "mint", - "type": "string", - "enum": [ - "mint", - "burn", - "transfer", - "sale", - "deposit", - "withdrawal" + "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" ] }, - "ActivityNFT": { + "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" }, - "contract_address": { - "description": "The token contract address", + "indexed_at": { "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT was first indexed" }, - "token_id": { - "description": "An `uint256` token id as string", + "updated_at": { "type": "string", - "example": "1" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the NFT owner was last updated" }, - "amount": { - "description": "(deprecated - will never be filled, use amount on Activity instead) The amount of tokens exchanged", + "metadata_synced_at": { "type": "string", - "example": "1", - "deprecated": true + "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": [ - "contract_type", - "contract_address", + "chain", "token_id", - "amount" + "contract_address", + "indexed_at", + "updated_at", + "metadata_synced_at", + "name", + "description", + "image", + "external_link", + "animation_url", + "youtube_url", + "balance", + "contract_type", + "attributes" ] }, - "ActivityToken": { + "NFTMetadataAttribute": { "type": "object", "properties": { - "contract_type": { - "$ref": "#/components/schemas/TokenContractType" + "display_type": { + "description": "Display type for this attribute", + "type": "string", + "nullable": true, + "enum": [ + "number", + "boost_percentage", + "boost_number", + "date" + ], + "example": "number" }, - "contract_address": { - "description": "The contract address", + "trait_type": { + "description": "The metadata trait type", "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "example": "Aqua Power" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + } + ], + "description": "The metadata trait value", + "example": "Happy" } }, "required": [ - "contract_type", - "contract_address" + "trait_type", + "value" ] }, - "ActivityAsset": { - "description": "The contract and asset details for this activity", - "oneOf": [ - { - "$ref": "#/components/schemas/ActivityNFT" - }, - { - "$ref": "#/components/schemas/ActivityToken" - } - ], - "discriminator": { - "propertyName": "contract_type" - } + "ChainName": { + "type": "string", + "description": "The name of chain", + "example": "imtbl-zkevm-testnet" }, - "Address": { - "x-go-type": "common.Address", - "x-go-type-import": { - "path": "github.com/ethereum/go-ethereum/common", - "name": "common" - }, - "description": "An Ethereum address", + "ActivityID": { + "description": "Activity id in UUIDv4 format", "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3", - "pattern": "^0x[a-fA-F0-9]{40}$" + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" }, - "Mint": { + "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": "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" + "description": "Single NFT", + "properties": { + "result": { + "$ref": "#/components/schemas/NFT" } }, "required": [ - "to", - "amount", - "asset" + "result" ] }, - "Deposit": { + "ListNFTsResult": { "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" + "result": { + "description": "List of NFTs", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFT" + } }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "to", - "amount", - "asset" + "result", + "page" ] }, - "Burn": { - "description": "The burn activity details", + "ListNFTsByOwnerResult": { "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" + "result": { + "description": "List of NFTs by owner", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTWithBalance" + } }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "from", - "amount", - "asset" + "result", + "page" ] }, - "Withdrawal": { - "description": "The withdrawal activity details", + "NFTOwner": { "type": "object", "properties": { - "from": { - "description": "The account address the asset was withdrawn from", + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + "description": "The address of NFT contract", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" }, - "amount": { - "description": "The amount of assets withdrawn", + "token_id": { "type": "string", + "description": "An `uint256` token id as string", "example": "1" }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" + "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": [ - "from", - "amount", - "asset" + "chain", + "contract_address", + "token_id", + "account_address", + "balance" ] }, - "Transfer": { + "NFTWithOwner": { "type": "object", - "description": "The transfer activity details", "properties": { - "from": { - "description": "The account address the asset was transferred from", + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "contract_address": { "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + "description": "The address of NFT contract", + "example": "0x5a019874f4fae314b0eaa4606be746366e661306" }, - "to": { - "description": "The account address the asset was transferred to", + "token_id": { "type": "string", - "example": "0xe9b00a87700f660e46b6f5deaa1232836bcc07d3" + "description": "An `uint256` token id as string", + "example": "1" }, - "amount": { - "description": "The amount of assets transferred", + "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" }, - "asset": { - "$ref": "#/components/schemas/ActivityAsset" + "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": [ - "activity_type", - "from", - "to", - "amount", - "asset" + "chain", + "contract_address", + "token_id", + "account_address", + "balance", + "updated_at" ] }, - "ActivityNativeToken": { + "GetTokenResult": { "type": "object", + "description": "Single Token", "properties": { - "symbol": { - "description": "The token symbol", - "type": "string", - "example": "ETH" + "result": { + "$ref": "#/components/schemas/Token" } }, "required": [ - "symbol" + "result" ] }, - "SalePayment": { + "ListNFTOwnersResult": { "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" + "result": { + "description": "List of nft owners", + "type": "array", + "items": { + "$ref": "#/components/schemas/NFTOwner" + } }, - "fees": { - "description": "The fees associated with this sale", + "page": { + "$ref": "#/components/schemas/Page" + } + }, + "required": [ + "result", + "page" + ] + }, + "ListCollectionOwnersResult": { + "type": "object", + "properties": { + "result": { + "description": "List of NFT owners", "type": "array", "items": { - "$ref": "#/components/schemas/SaleFee" - }, - "example": [ - { - "address": "0xB0F3749458169B7Ad51B5503CC3649DE55c2D0D2", - "amount": "20", - "type": "ROYALTY" - } - ], - "minItems": 0 + "$ref": "#/components/schemas/NFTWithOwner" + } + }, + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "token", - "price_excluding_fees", - "price_including_fees", - "fees" + "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" + ] + } ] }, - "SaleFee": { + "Chain": { "type": "object", + "description": "The chain details", "properties": { - "amount": { - "type": "string", - "description": "Fee payable to recipient upon settlement", - "example": "200" - }, - "type": { + "id": { "type": "string", - "description": "Fee type", - "example": "ROYALTY", - "enum": [ - "ROYALTY" - ] + "description": "The id of chain", + "example": "eip155:13372" }, - "recipient": { + "name": { "type": "string", - "description": "Wallet address of fee recipient", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + "description": "The name of chain", + "example": "imtbl-zkevm-testnet" } - } + }, + "required": [ + "id", + "name" + ] }, - "NFTSale": { - "description": "The NFT Sale activity details", + "ListChainsResult": { "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": { + "result": { "type": "array", + "description": "List of chains", "items": { - "$ref": "#/components/schemas/ActivityNFT" + "$ref": "#/components/schemas/ChainWithDetails" } }, - "payment": { - "$ref": "#/components/schemas/SalePayment" + "page": { + "$ref": "#/components/schemas/Page" } }, "required": [ - "order_id", - "to", - "from", - "asset", - "payment" + "result", + "page" ] }, - "ActivityDetails": { - "description": "The activity details", - "oneOf": [ - { - "$ref": "#/components/schemas/Mint" + "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/Burn" + "$ref": "#/components/schemas/RefreshableNFTAttributes" }, { - "$ref": "#/components/schemas/Transfer" - }, + "type": "object", + "properties": { + "metadata_id": { + "$ref": "#/components/schemas/MetadataID" + } + }, + "required": [ + "metadata_id" + ] + } + ] + }, + "RefreshMetadataByTokenID": { + "allOf": [ { - "$ref": "#/components/schemas/NFTSale" + "$ref": "#/components/schemas/RefreshableNFTAttributes" }, { - "$ref": "#/components/schemas/Deposit" - }, + "type": "object", + "properties": { + "token_id": { + "type": "string", + "description": "An `uint256` token id as string", + "example": "1" + } + }, + "required": [ + "token_id" + ] + } + ] + }, + "RefreshableNFTAttributes": { + "allOf": [ { - "$ref": "#/components/schemas/Withdrawal" + "$ref": "#/components/schemas/NFTMetadataRequest" } + ], + "required": [ + "name", + "description", + "image", + "external_url", + "animation_url", + "youtube_url", + "attributes" ] }, - "BlockchainMetadata": { - "description": "The metadata related to blockchain transaction", - "nullable": true, + "NFTMetadataRequest": { "type": "object", + "description": "The NFT metadata. Total size of this object should not exceed 16 KiB", "properties": { - "transaction_hash": { + "name": { "type": "string", - "description": "The transaction hash of the activity", - "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" }, - "block_number": { - "description": "EVM block number (uint64 as string)", + "description": { "type": "string", - "example": "1" + "nullable": true, + "example": "2022-08-16T17:43:26.991388Z", + "description": "The description of the NFT" }, - "transaction_index": { - "description": "Transaction index in a block (uint32 as string)", + "image": { "type": "string", - "example": "1" + "nullable": true, + "description": "The image url of the NFT", + "example": "https://some-url" }, - "log_index": { - "description": "The log index of activity in a block (uint32 as string)", + "external_url": { "type": "string", "nullable": true, - "example": "1" + "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": [ - "transaction_hash", - "block_number", - "transaction_index", - "log_index" + "nft_metadata" ] }, - "Activity": { + "Token": { "type": "object", "properties": { - "id": { - "$ref": "#/components/schemas/ActivityID" - }, "chain": { "$ref": "#/components/schemas/Chain" }, - "type": { - "$ref": "#/components/schemas/ActivityType" + "contract_address": { + "type": "string", + "description": "The address of token contract", + "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" }, - "details": { - "$ref": "#/components/schemas/ActivityDetails" + "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 }, - "updated_at": { + "name": { "type": "string", - "description": "The time activity was updated at", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z" + "description": "The name of token", + "example": "Token A", + "nullable": true }, - "indexed_at": { + "verification_status": { + "$ref": "#/components/schemas/AssetVerificationStatus" + }, + "updated_at": { "type": "string", - "description": "The time activity was indexed", "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z" + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the collection was last updated" }, - "blockchain_metadata": { - "$ref": "#/components/schemas/BlockchainMetadata" + "is_canonical": { + "type": "boolean", + "example": true, + "description": "Indicates whether the token is canonical or not" } }, "required": [ - "id", "chain", - "type", - "details", - "indexed_at", + "contract_address", + "root_contract_address", + "symbol", + "decimals", + "image_url", + "name", "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" + "verification_status", + "is_canonical" ] }, - "Collection": { + "CollectionMetadata": { "type": "object", "properties": { - "chain": { - "$ref": "#/components/schemas/Chain" - }, "name": { "type": "string", "nullable": true, "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "example": "Gigantic Lizards" }, "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" + "example": "GLZ" }, "description": { "type": "string", "nullable": true, "description": "The description of collection", - "example": "Some description" + "example": "This is the Gigantic Lizards collection" }, "image": { "type": "string", @@ -6397,597 +11195,461 @@ "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", + "image", "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" + "external_link", + "contract_uri" ] }, - "GetMetadataResult": { + "RefreshCollectionMetadataRequest": { "type": "object", - "description": "Single metadata", "properties": { - "result": { - "$ref": "#/components/schemas/Metadata" + "collection_metadata": { + "$ref": "#/components/schemas/CollectionMetadata" } }, "required": [ - "result" + "collection_metadata" ] }, - "ListMetadataResult": { + "RefreshCollectionMetadataResult": { "type": "object", "properties": { - "result": { - "description": "List of metadata", - "type": "array", - "items": { - "$ref": "#/components/schemas/Metadata" - } + "contract_address": { + "type": "string" }, - "page": { - "$ref": "#/components/schemas/Page" + "chain": { + "$ref": "#/components/schemas/Chain" + }, + "collection_metadata": { + "$ref": "#/components/schemas/CollectionMetadata" } }, "required": [ - "result", - "page" + "contract_address", + "chain", + "collection_metadata" ] }, - "Metadata": { + "MetadataRefreshRateLimitResult": { "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" + "imx_refreshes_limit": { + "type": "string" }, - "youtube_url": { - "type": "string", - "nullable": true, - "description": "The youtube URL of NFT", - "example": "https://some-url" + "imx_refresh_limit_reset": { + "type": "string" }, - "attributes": { - "type": "array", - "description": "List of Metadata attributes", - "nullable": true, - "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + "imx_remaining_refreshes": { + "type": "string" + }, + "retry_after": { + "type": "string" } }, "required": [ - "id", - "chain", - "contract_address", - "created_at", - "updated_at", - "name", - "description", - "image", - "external_link", - "animation_url", - "youtube_url", - "attributes" + "imx_refreshes_limit", + "imx_refresh_limit_reset", + "imx_remaining_refreshes", + "retry_after" ] }, - "RefreshMetadataByIDRequest": { + "CreateMintRequestRequest": { "type": "object", - "description": "Request body for refreshing metadata by id. Total size of this list should not exceed 228 KiB", "properties": { - "metadata": { + "assets": { "type": "array", - "maxItems": 10, + "maxItems": 100, "minItems": 1, + "description": "List of nft to be minted", "items": { - "$ref": "#/components/schemas/RefreshMetadataByID" + "$ref": "#/components/schemas/MintAsset" } } }, "required": [ - "metadata" + "assets" ] }, - "NFT": { + "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" }, - "token_id": { - "type": "string", - "example": "1", - "description": "An `uint256` token id as string" - }, "contract_address": { + "description": "The 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" + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "updated_at": { + "org_name": { + "description": "The name of the organisation associated with this contract", + "nullable": true, "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT owner was last updated" + "example": "Immutable" }, - "metadata_synced_at": { + "name": { "type": "string", - "format": "date-time", "nullable": true, - "description": "When NFT metadata was last synced", - "example": "2022-08-16T17:43:26.991388Z" + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "metadata_id": { + "symbol": { "type": "string", - "format": "uuid", "nullable": true, - "description": "The id of the metadata of this NFT", - "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" + "description": "The symbol of contract", + "example": "BASP" }, - "name": { + "description": { "type": "string", "nullable": true, - "example": "Sword", - "description": "The name of the NFT" + "description": "The description of collection", + "example": "Some description" }, - "description": { + "org_id": { "type": "string", "nullable": true, - "example": "2022-08-16T17:43:26.991388Z", - "description": "The description of the NFT" + "description": "The id of the organisation associated with this contract", + "example": "753da67a-5d3b-42c7-b87a-eba3d17a6362" }, - "image": { + "requester_email": { "type": "string", "nullable": true, - "description": "The image url of the NFT", - "example": "https://some-url" + "description": "The email address of the user who requested the contract to be verified", + "example": "user@immutable.com" }, - "external_link": { - "deprecated": true, + "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", - "nullable": true, - "description": "(deprecated - use external_url instead) The external website link of NFT", - "example": "https://some-url" + "description": "The id of this asset in the system that originates the mint request", + "example": "67f7d464-b8f0-4f6a-9a3b-8d3cb4a21af0" }, - "external_url": { + "owner_address": { "type": "string", - "nullable": true, - "description": "The external website link of NFT", - "example": "https://some-url" + "description": "The address of the receiver", + "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" }, - "animation_url": { + "token_id": { "type": "string", - "nullable": true, - "description": "The animation url of the NFT", - "example": "https://some-url" + "description": "An optional `uint256` token id as string. Required for ERC1155 collections.", + "example": "1", + "nullable": true }, - "youtube_url": { + "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, - "description": "The youtube URL of NFT", - "example": "https://some-url" + "minLength": 1 }, - "attributes": { - "type": "array", - "description": "List of NFT Metadata attributes", - "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + "metadata": { + "$ref": "#/components/schemas/NFTMetadataRequest" + } + }, + "required": [ + "reference_id", + "owner_address" + ] + }, + "CreateMintRequestResult": { + "type": "object", + "properties": { + "imx_mint_requests_limit": { + "type": "string" }, - "total_supply": { - "type": "string", - "nullable": true, - "description": "The total supply of NFT", - "example": "100" + "imx_mint_requests_limit_reset": { + "type": "string" + }, + "imx_remaining_mint_requests": { + "type": "string" + }, + "imx_mint_requests_retry_after": { + "type": "string" } }, "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" + "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" ] }, - "NFTWithBalance": { + "GetMintRequestResult": { "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": { + "collection_address": { "type": "string", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT owner was last updated" + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "metadata_synced_at": { + "reference_id": { "type": "string", - "format": "date-time", - "nullable": true, - "description": "When NFT metadata was last synced", - "example": "2022-08-16T17:43:26.991388Z" + "description": "The reference id of this mint request" }, - "metadata_id": { + "owner_address": { "type": "string", - "format": "uuid", - "nullable": true, - "description": "The id of the metadata of this NFT", - "example": "ae83bc80-4dd5-11ee-be56-0242ac120002" + "description": "The address of the owner of the NFT" }, - "name": { + "token_id": { "type": "string", + "example": "1", "nullable": true, - "description": "The name of the NFT", - "example": "Sword" + "description": "An `uint256` token id as string. Only available when the mint request succeeds" }, - "description": { + "amount": { "type": "string", + "example": "1", "nullable": true, - "description": "The description of the NFT", - "example": "This is a super awesome sword" + "description": "An `uint256` amount as string. Only relevant for mint requests on ERC1155 contracts" }, - "image": { + "activity_id": { "type": "string", + "format": "uuid", + "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b", "nullable": true, - "description": "The image url of the NFT", - "example": "https://some-url" + "description": "The id of the mint activity associated with this mint request" }, - "external_link": { + "transaction_hash": { "type": "string", "nullable": true, - "description": "The external website link of NFT", - "example": "https://some-url" + "description": "The transaction hash of the activity", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" }, - "animation_url": { + "created_at": { "type": "string", - "nullable": true, - "description": "The animation url of the NFT", - "example": "https://some-url" + "format": "date-time", + "example": "2022-08-16T17:43:26.991388Z", + "description": "When the mint request was created" }, - "youtube_url": { + "updated_at": { "type": "string", - "nullable": true, - "description": "The youtube URL of NFT", - "example": "https://some-url" + "format": "date-time", + "description": "When the mint request was last updated", + "example": "2022-08-16T17:43:26.991388Z" }, - "attributes": { - "type": "array", - "description": "List of Metadata attributes", - "nullable": false, - "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + "error": { + "$ref": "#/components/schemas/MintRequestErrorMessage" }, - "balance": { - "type": "string", - "nullable": false, - "description": "The amount of this NFT this account owns", - "example": "11" + "status": { + "$ref": "#/components/schemas/MintRequestStatus" } }, "required": [ "chain", + "collection_address", + "reference_id", + "owner_address", + "status", "token_id", - "contract_address", - "indexed_at", - "updated_at", - "metadata_synced_at", - "name", - "description", - "image", - "external_link", - "animation_url", - "youtube_url", - "balance", - "contract_type", - "attributes" + "transaction_hash", + "error", + "created_at", + "updated_at" ] }, - "NFTMetadataAttribute": { + "MintRequestErrorMessage": { "type": "object", + "description": "The error details in case the mint request fails", + "nullable": true, "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" + "message": { + "description": "An error message in case the mint request fails", + "type": "string" } - }, - "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", + "MintRequestStatus": { + "description": "The status of the mint request", + "example": "pending", "type": "string", "enum": [ - "ERC20" + "pending", + "succeeded", + "failed" ] }, - "AssetVerificationStatus": { - "description": "The verification status for a given contract", + "OperatorAllowlistStatus": { + "description": "The status of a contract on the operator allowlist", + "example": "requested", "type": "string", "enum": [ - "verified", - "unverified", - "spam", - "inactive" + "requested", + "approved", + "rejected", + "removed", + "added" ] }, - "VerificationRequestStatus": { - "description": "The status of the verification request", - "type": "string", - "enum": [ - "completed", - "pending" + "OperatorAllowlistStatusDetails": { + "description": "The operator allowlist status details", + "oneOf": [ + { + "$ref": "#/components/schemas/OperatorAllowlistStatusRequested" + }, + { + "$ref": "#/components/schemas/OperatorAllowlistStatusUpdated" + } ] }, - "GetNFTResult": { + "OperatorAllowlistStatusRequested": { "type": "object", - "description": "Single NFT", + "description": "The request details", "properties": { - "result": { - "$ref": "#/components/schemas/NFT" + "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": [ - "result" + "purpose", + "is_settlement_contract" ] }, - "ListNFTsResult": { + "OperatorAllowlistStatusUpdated": { "type": "object", + "description": "The update details", "properties": { - "result": { - "description": "List of NFTs", - "type": "array", - "items": { - "$ref": "#/components/schemas/NFT" - } - }, - "page": { - "$ref": "#/components/schemas/Page" + "reason": { + "description": "Why this action was performed", + "type": "string", + "example": "Contract meets expectations" } }, "required": [ - "result", - "page" + "reason" ] }, - "ListNFTsByOwnerResult": { - "type": "object", - "properties": { - "result": { - "description": "List of NFTs by owner", - "type": "array", - "items": { - "$ref": "#/components/schemas/NFTWithBalance" - } + "OperatorAllowlistContractStatusInternal": { + "allOf": [ + { + "$ref": "#/components/schemas/OperatorAllowlistContractStatus" }, - "page": { - "$ref": "#/components/schemas/Page" + { + "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" + ] } - }, - "required": [ - "result", - "page" ] }, - "NFTOwner": { + "OperatorAllowlistContractStatus": { "type": "object", "properties": { "chain": { @@ -6995,4801 +11657,5913 @@ }, "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" + "description": "The address of the contract", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" }, - "account_address": { - "type": "string", - "description": "The account address of the owner of the NFT", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "status": { + "$ref": "#/components/schemas/OperatorAllowlistStatus" }, - "balance": { - "type": "string", - "description": "The amount of owned tokens (uint256 as string)", - "example": "1" + "details": { + "$ref": "#/components/schemas/OperatorAllowlistStatusDetails" }, - "updated_at": { + "created_at": { "type": "string", "format": "date-time", "example": "2022-08-16T17:43:26.991388Z", - "description": "When the NFT owner was last updated" + "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", - "token_id", - "account_address", - "balance" + "status", + "details", + "created_at", + "created_by" ] }, - "NFTWithOwner": { + "Call": { "type": "object", "properties": { - "chain": { - "$ref": "#/components/schemas/Chain" + "target_address": { + "$ref": "#/components/schemas/Address" }, - "contract_address": { + "function_signature": { "type": "string", - "description": "The address of NFT contract", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "description": "The function signature", + "example": "mint(address,uint256)" }, - "token_id": { - "type": "string", - "description": "An `uint256` token id as string", - "example": "1" + "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" + ] }, - "account_address": { + "reference_id": { "type": "string", - "description": "The account address of the owner of the NFT", - "example": "0x5a019874f4fae314b0eaa4606be746366e661306" + "description": "The id of this request in the system that originates the crafting request, specified as a 32 byte hex string", + "example": "67f7d464b8f04f6a9a3b8d3cb4a21af0" }, - "balance": { - "type": "string", - "description": "The amount of owned tokens (uint256 as string)", - "example": "1" + "calls": { + "type": "array", + "description": "The calls to be signed", + "items": { + "$ref": "#/components/schemas/Call" + }, + "minLength": 1, + "maxLength": 100 }, - "updated_at": { + "expires_at": { "type": "string", "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the owner last changed for the given NFT" + "description": "The expiration time of the request", + "example": "2022-08-16T17:43:26.991388Z" } }, "required": [ - "chain", - "contract_address", - "token_id", - "account_address", - "balance", - "updated_at" + "multi_caller", + "reference_id", + "calls", + "expires_at" ] }, - "GetTokenResult": { + "SignCraftingResult": { "type": "object", - "description": "Single Token", "properties": { - "result": { - "$ref": "#/components/schemas/Token" + "signer_address": { + "$ref": "#/components/schemas/Address" + }, + "signature": { + "type": "string", + "description": "The signature of the request", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" } }, "required": [ - "result" + "signer_address", + "signature" ] }, - "ListNFTOwnersResult": { + "BasicAPIError": { "type": "object", "properties": { - "result": { - "description": "List of nft owners", - "type": "array", - "items": { - "$ref": "#/components/schemas/NFTOwner" - } + "message": { + "type": "string", + "description": "Error Message", + "example": "all fields must be provided" }, - "page": { - "$ref": "#/components/schemas/Page" + "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": [ - "result", - "page" + "message", + "link", + "trace_id" ] }, - "ListCollectionOwnersResult": { - "type": "object", - "properties": { - "result": { - "description": "List of NFT owners", - "type": "array", - "items": { - "$ref": "#/components/schemas/NFTWithOwner" - } + "APIError400": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "page": { - "$ref": "#/components/schemas/Page" + { + "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" + ] } - }, - "required": [ - "result", - "page" ] }, - "ChainWithDetails": { + "APIError404": { "allOf": [ { - "$ref": "#/components/schemas/Chain" + "$ref": "#/components/schemas/BasicAPIError" }, { "type": "object", "properties": { - "rpc_url": { - "type": "string", - "nullable": true, - "description": "URL for RPC node" - }, - "operator_allowlist_address": { + "code": { "type": "string", - "nullable": true, - "description": "The address of the Operator Allowlist - https://docs.immutable.com/products/zkevm/minting/royalties/allowlist-spec/" + "description": "Error Code", + "enum": [ + "RESOURCE_NOT_FOUND" + ], + "example": "RESOURCE_NOT_FOUND" }, - "minter_address": { - "type": "string", + "details": { + "type": "object", "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" + "description": "Additional details to help resolve the error" } }, "required": [ - "rpc_url", - "operator_allowlist_address", - "minter_address" + "code", + "details" ] } ] }, - "Chain": { - "type": "object", - "description": "The chain details", - "properties": { - "id": { - "type": "string", - "description": "The id of chain", - "example": "eip155:13372" + "APIError500": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "name": { - "type": "string", - "description": "The name of chain", - "example": "imtbl-zkevm-testnet" + { + "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" + ] } - }, - "required": [ - "id", - "name" ] }, - "ListChainsResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "description": "List of chains", - "items": { - "$ref": "#/components/schemas/ChainWithDetails" - } + "APIError401": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "page": { - "$ref": "#/components/schemas/Page" + { + "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" + ] } - }, - "required": [ - "result", - "page" ] }, - "ListTokensResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "description": "List of tokens", - "items": { - "$ref": "#/components/schemas/Token" - } + "APIError403": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "page": { - "$ref": "#/components/schemas/Page" + { + "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" + ] } - }, - "required": [ - "result", - "page" ] }, - "RefreshMetadataByID": { + "APIError429": { "allOf": [ { - "$ref": "#/components/schemas/RefreshableNFTAttributes" + "$ref": "#/components/schemas/BasicAPIError" }, { "type": "object", "properties": { - "metadata_id": { - "$ref": "#/components/schemas/MetadataID" + "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": [ - "metadata_id" + "code", + "details" ] } ] }, - "RefreshMetadataByTokenID": { + "APIError409": { "allOf": [ { - "$ref": "#/components/schemas/RefreshableNFTAttributes" + "$ref": "#/components/schemas/BasicAPIError" }, { "type": "object", "properties": { - "token_id": { + "code": { "type": "string", - "description": "An `uint256` token id as string", - "example": "1" + "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": [ - "token_id" + "code", + "details" ] } ] }, - "RefreshableNFTAttributes": { - "allOf": [ + "Item": { + "oneOf": [ { - "$ref": "#/components/schemas/NFTMetadataRequest" + "$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" } ], - "required": [ - "name", - "description", - "image", - "external_url", - "animation_url", - "youtube_url", - "attributes" - ] + "discriminator": { + "propertyName": "type", + "mapping": { + "ERC721_COLLECTION": "#/components/schemas/ERC721CollectionItem", + "ERC1155_COLLECTION": "#/components/schemas/ERC1155CollectionItem" + } + } }, - "NFTMetadataRequest": { + "FulfillmentDataRequest": { "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": { + "order_id": { "type": "string", - "nullable": true, - "description": "The animation url of the NFT", - "example": "https://some-url" + "format": "uuid" }, - "youtube_url": { + "taker_address": { "type": "string", - "nullable": true, - "description": "The youtube link of the NFT", - "example": "https://some-url" + "description": "Address of the intended account fulfilling the order", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "attributes": { + "fees": { "type": "array", - "description": "List of Metadata attributes", - "nullable": true, "items": { - "$ref": "#/components/schemas/NFTMetadataAttribute" - } + "$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" + ] }, - "RefreshNFTMetadataByTokenIDRequest": { + "FulfillableOrder": { "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" - } + "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": [ - "nft_metadata" + "extra_data", + "order" ] }, - "Token": { + "UnfulfillableOrder": { "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": { + "order_id": { "type": "string", - "description": "The image url of token", - "example": "https://some-url", - "nullable": true + "description": "OrderID for the requested but unfulfillable order", + "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" }, - "name": { + "token_id": { "type": "string", - "description": "The name of token", - "example": "Token A", - "nullable": true - }, - "verification_status": { - "$ref": "#/components/schemas/AssetVerificationStatus" + "description": "Token ID for the ERC721 or ERC1155 token when fulfilling a collection order", + "example": "123", + "pattern": "\\d+" }, - "updated_at": { + "reason": { "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" + "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": [ - "chain", - "contract_address", - "root_contract_address", - "symbol", - "decimals", - "image_url", - "name", - "updated_at", - "verification_status", - "is_canonical" + "reason", + "order_id" ] }, - "CollectionMetadata": { + "NativeItem": { "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": { "type": "string", - "nullable": true, - "description": "The description of collection", - "example": "This is the Gigantic Lizards collection" + "description": "Token type user is offering, which in this case is the native IMX token", + "example": "NATIVE", + "enum": [ + "NATIVE" + ] }, - "image": { + "amount": { "type": "string", - "description": "The url of the collection image", - "example": "https://some-url", - "nullable": true - }, - "external_link": { + "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": "The url of external link", - "example": "https://some-url", - "nullable": true + "description": "Token type user is offering, which in this case is ERC20", + "example": "ERC20", + "enum": [ + "ERC20" + ] }, - "contract_uri": { + "contract_address": { "type": "string", - "description": "The uri for the metadata of the collection", - "example": "https://some-url", - "nullable": true + "description": "Address of ERC20 token", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "base_uri": { + "amount": { "type": "string", - "nullable": true, - "description": "The metadata uri for nft", - "example": "https://some-url" + "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": [ - "name", - "image", - "symbol", - "description", - "base_uri", - "external_link", - "contract_uri" + "type", + "contract_address", + "amount" ] }, - "RefreshCollectionMetadataRequest": { + "ERC721Item": { "type": "object", "properties": { - "collection_metadata": { - "$ref": "#/components/schemas/CollectionMetadata" + "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": [ - "collection_metadata" + "type", + "contract_address", + "token_id" ] }, - "RefreshCollectionMetadataResult": { + "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" + "type": "string", + "description": "Address of ERC1155 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "chain": { - "$ref": "#/components/schemas/Chain" + "token_id": { + "type": "string", + "description": "ID of ERC1155 token", + "example": "1", + "pattern": "\\d+" }, - "collection_metadata": { - "$ref": "#/components/schemas/CollectionMetadata" + "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", - "chain", - "collection_metadata" + "token_id", + "amount" ] }, - "MetadataRefreshRateLimitResult": { + "ERC721CollectionItem": { "type": "object", "properties": { - "imx_refreshes_limit": { - "type": "string" - }, - "imx_refresh_limit_reset": { - "type": "string" + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC721", + "example": "ERC721_COLLECTION", + "enum": [ + "ERC721_COLLECTION" + ] }, - "imx_remaining_refreshes": { - "type": "string" + "contract_address": { + "type": "string", + "description": "Address of ERC721 collection", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "retry_after": { - "type": "string" + "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": [ - "imx_refreshes_limit", - "imx_refresh_limit_reset", - "imx_remaining_refreshes", - "retry_after" + "type", + "contract_address", + "amount" ] }, - "CreateMintRequestRequest": { + "ERC1155CollectionItem": { "type": "object", "properties": { - "assets": { - "type": "array", - "maxItems": 100, - "minItems": 1, - "description": "List of nft to be minted", - "items": { - "$ref": "#/components/schemas/MintAsset" - } + "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": [ - "assets" + "type", + "contract_address", + "amount" ] }, - "VerificationRequestInternal": { - "description": "The verification request (internal)", - "allOf": [ - { - "$ref": "#/components/schemas/VerificationRequest" + "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}$" }, - { - "type": "object", - "properties": { - "org_tier": { - "$ref": "#/components/schemas/OrganisationTier" - } + "orders": { + "type": "array", + "description": "List of order ids proposed for cancellation", + "items": { + "type": "string", + "format": "uuid" }, - "required": [ - "org_tier" - ] + "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 + } }, - "VerificationRequest": { - "description": "The verification request", + "CreateListingRequestBody": { "type": "object", "properties": { - "id": { - "description": "The id of the verification request", + "account_address": { "type": "string", - "format": "uuid", - "example": "4e28df8d-f65c-4c11-ba04-6a9dd47b179b" - }, - "chain": { - "$ref": "#/components/schemas/Chain" + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "contract_address": { - "description": "The contract address", + "order_hash": { "type": "string", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" }, - "org_name": { - "description": "The name of the organisation associated with this contract", - "nullable": true, - "type": "string", - "example": "Immutable" + "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 }, - "name": { + "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", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "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" }, - "symbol": { + "salt": { "type": "string", - "nullable": true, - "description": "The symbol of contract", - "example": "BASP" + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" }, - "description": { - "type": "string", - "nullable": true, - "description": "The description of collection", - "example": "Some description" + "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 }, - "org_id": { + "signature": { "type": "string", - "nullable": true, - "description": "The id of the organisation associated with this contract", - "example": "753da67a-5d3b-42c7-b87a-eba3d17a6362" + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" }, - "requester_email": { + "start_at": { "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" + "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": [ - "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" + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" ] }, - "MintAsset": { + "CreateBidRequestBody": { "type": "object", "properties": { - "reference_id": { + "account_address": { "type": "string", - "description": "The id of this asset in the system that originates the mint request", - "example": "67f7d464-b8f0-4f6a-9a3b-8d3cb4a21af0" + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "owner_address": { + "order_hash": { "type": "string", - "description": "The address of the receiver", - "example": "0xc344c05eef8876e517072f879dae8905aa2b956b" + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" }, - "token_id": { - "type": "string", - "description": "An optional `uint256` token id as string. Required for ERC1155 collections.", - "example": "1", - "nullable": true + "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 }, - "amount": { + "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": "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 + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" }, - "metadata": { - "$ref": "#/components/schemas/NFTMetadataRequest" - } - }, - "required": [ - "reference_id", - "owner_address" - ] - }, - "CreateMintRequestResult": { - "type": "object", - "properties": { - "imx_mint_requests_limit": { - "type": "string" + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" }, - "imx_mint_requests_limit_reset": { - "type": "string" + "salt": { + "type": "string", + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" }, - "imx_remaining_mint_requests": { - "type": "string" + "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 }, - "imx_mint_requests_retry_after": { - "type": "string" + "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" } }, - "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" + "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" }, - "page": { - "$ref": "#/components/schemas/Page" - } + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "token_id": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z" }, "required": [ - "result", - "page" + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" ] }, - "GetMintRequestResult": { + "CreateCollectionBidRequestBody": { "type": "object", "properties": { - "chain": { - "$ref": "#/components/schemas/Chain" - }, - "collection_address": { + "account_address": { "type": "string", - "description": "The address of the contract", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "reference_id": { + "order_hash": { "type": "string", - "description": "The reference id of this mint request" + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" }, - "owner_address": { - "type": "string", - "description": "The address of the owner of the NFT" + "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 }, - "token_id": { - "type": "string", - "example": "1", - "nullable": true, - "description": "An `uint256` token id as string. Only available when the mint request succeeds" + "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 }, - "amount": { + "end_at": { "type": "string", - "example": "1", - "nullable": true, - "description": "An `uint256` amount as string. Only relevant for mint requests on ERC1155 contracts" + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" }, - "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" + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" }, - "transaction_hash": { + "salt": { "type": "string", - "nullable": true, - "description": "The transaction hash of the activity", - "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" }, - "created_at": { + "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", - "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the mint request was created" + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" }, - "updated_at": { + "start_at": { "type": "string", + "description": "Time after which Order is considered active", "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" + "example": "2022-03-09T05:00:50.52Z" } }, - "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" + "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" }, - "is_settlement_contract": { - "description": "Attestation of whether this contract is a settlement contract", - "type": "boolean", - "example": false - } + "salt": "12686911856931635052326433555881236148", + "buy": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z" }, "required": [ - "purpose", - "is_settlement_contract" + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" ] }, - "OperatorAllowlistStatusUpdated": { + "Fee": { "type": "object", - "description": "The update details", "properties": { - "reason": { - "description": "Why this action was performed", + "amount": { "type": "string", - "example": "Contract meets expectations" + "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": [ - "reason" + "type", + "amount", + "recipient_address" ] }, - "OperatorAllowlistContractStatusInternal": { - "allOf": [ - { - "$ref": "#/components/schemas/OperatorAllowlistContractStatus" + "Order": { + "type": "object", + "properties": { + "account_address": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" }, - { - "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" + "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" }, - "required": [ - "org_name", - "org_tier" - ] - } - ] - }, - "OperatorAllowlistContractStatus": { - "type": "object", - "properties": { + "example": [], + "minItems": 0 + }, "chain": { "$ref": "#/components/schemas/Chain" }, - "contract_address": { + "created_at": { "type": "string", - "description": "The address of the contract", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "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/OperatorAllowlistStatus" + "$ref": "#/components/schemas/OrderStatus" }, - "details": { - "$ref": "#/components/schemas/OperatorAllowlistStatusDetails" + "type": { + "type": "string", + "description": "Order type", + "example": "LISTING", + "enum": [ + "LISTING", + "BID", + "COLLECTION_BID", + "TRAIT_BID", + "METADATA_BID" + ] }, - "created_at": { + "updated_at": { "type": "string", + "description": "Time the Order is last updated", "format": "date-time", - "example": "2022-08-16T17:43:26.991388Z", - "description": "When the contract status was created" + "example": "2022-03-07T07:20:50.52Z" }, - "created_by": { + "fill_status": { + "$ref": "#/components/schemas/FillStatus" + }, + "trait_criteria": { + "type": "array", + "description": "Trait filters for TRAIT_BID orders; omitted for other order types.", + "items": { + "$ref": "#/components/schemas/TraitFilter" + }, + "minItems": 1, + "example": [ + { + "trait_type": "Background", + "values": [ + "Blue", + "Red" + ] + } + ] + }, + "metadata_id": { "type": "string", - "format": "email", - "description": "Who created the status", - "example": "user@immutable.com" + "format": "uuid", + "description": "Metadata identifier for METADATA_BID orders created with a single metadata stack. Omitted for other order types and for metadata bids created with `metadata_criteria`.", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534B" + }, + "metadata_criteria": { + "type": "array", + "description": "Field-level metadata filters for METADATA_BID orders created with criteria instead of a `metadata_id`. Omitted for other order types and for metadata bids created with a `metadata_id`.", + "items": { + "$ref": "#/components/schemas/MetadataFieldFilter" + }, + "minItems": 1, + "example": [ + { + "field_name": "name", + "values": [ + "Cool Dragon" + ] + }, + { + "field_name": "attribute:Background", + "values": [ + "Blue", + "Red" + ] + } + ] } }, + "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", - "contract_address", - "status", - "details", "created_at", - "created_by" + "end_at", + "start_at", + "updated_at", + "order_hash", + "protocol_data", + "salt", + "signature", + "status", + "fill_status" ] }, - "Call": { + "Trade": { "type": "object", "properties": { - "target_address": { - "$ref": "#/components/schemas/Address" - }, - "function_signature": { - "type": "string", - "description": "The function signature", - "example": "mint(address,uint256)" - }, - "function_args": { + "buy": { + "description": "Buy items are transferred from the taker to the maker.", "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/Item" }, - "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" + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" } - }, - "required": [ - "address", - "name", - "version" - ] + ], + "minItems": 1, + "maxItems": 1 }, - "reference_id": { + "buyer_address": { + "description": "Deprecated. Use maker and taker addresses instead of buyer and seller addresses.", "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" + "example": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40" }, - "calls": { + "buyer_fees": { + "description": "Deprecated. Use fees instead. The taker always pays the fees.", "type": "array", - "description": "The calls to be signed", "items": { - "$ref": "#/components/schemas/Call" + "$ref": "#/components/schemas/Fee" }, - "minLength": 1, - "maxLength": 100 + "example": [], + "minItems": 0, + "maxItems": 1 }, - "expires_at": { + "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", - "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" + "example": "2022-03-07T07:20:50.52Z" }, - "signature": { + "id": { "type": "string", - "description": "The signature of the request", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" - } - }, - "required": [ - "signer_address", - "signature" - ] - }, - "BasicAPIError": { - "type": "object", - "properties": { - "message": { + "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", - "description": "Error Message", - "example": "all fields must be provided" + "example": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D" }, - "link": { + "maker_address": { "type": "string", - "description": "Link to IMX documentation that can help resolve this error", - "example": "https://docs.x.immutable.com/reference/#/" + "example": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D" }, - "trace_id": { + "taker_address": { "type": "string", - "description": "Trace ID of the initial request", - "example": "e47634b79a5cd6894ddc9639ec4aad26" + "example": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40" } }, - "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" + "example": { + "buy": [ + { + "type": "NATIVE", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", + "buyer_fees": [], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" }, - { - "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" - ] - } + "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" ] }, - "APIError500": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" - }, - { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Error Code", - "enum": [ - "INTERNAL_SERVER_ERROR" - ], - "example": "INTERNAL_SERVER_ERROR" + "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" }, - "details": { - "type": "object", - "nullable": true, - "description": "Additional details to help resolve the error" + { + "order": "338a8c71-d7e4-e303-a2ef-318871ef7342", + "reason_code": "FILLED" } - }, - "required": [ - "code", - "details" ] } - ] + } }, - "APIError401": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "CancelOrdersResultData": { + "type": "object", + "properties": { + "successful_cancellations": { + "type": "array", + "description": "Orders which were successfully cancelled", + "items": { + "type": "string" + }, + "minItems": 0, + "maxItems": 10 }, - { - "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" - } + "pending_cancellations": { + "type": "array", + "description": "Orders which are marked for cancellation but the cancellation cannot be guaranteed", + "items": { + "type": "string" }, - "required": [ - "code", - "details" - ] - } - ] - }, - "APIError403": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "minItems": 0, + "maxItems": 10 }, - { - "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" - } + "failed_cancellations": { + "type": "array", + "description": "Orders which failed to be cancelled", + "items": { + "$ref": "#/components/schemas/FailedOrderCancellation" }, - "required": [ - "code", - "details" - ] + "minItems": 0, + "maxItems": 10 } + }, + "required": [ + "successful_cancellations", + "pending_cancellations", + "failed_cancellations" ] }, - "APIError429": { - "allOf": [ - { - "$ref": "#/components/schemas/BasicAPIError" + "FailedOrderCancellation": { + "type": "object", + "properties": { + "order": { + "type": "string", + "description": "ID of the order which failed to be cancelled", + "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" }, - { - "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" - ] + "reason_code": { + "type": "string", + "enum": [ + "FILLED" + ], + "description": "Reason code indicating why the order failed to be cancelled", + "example": "FILLED" } + }, + "required": [ + "order", + "reason_code" ] }, - "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 + "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" }, - "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" + "type": { + "name": "LISTING" + }, + "updated_at": "2022-03-07T07:20:50.52Z" } } }, - "AssetCollectionItem": { - "oneOf": [ - { - "$ref": "#/components/schemas/ERC721CollectionItem" - }, - { - "$ref": "#/components/schemas/ERC1155CollectionItem" + "BidResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Order" } + }, + "required": [ + "result" ], - "discriminator": { - "propertyName": "type", - "mapping": { - "ERC721_COLLECTION": "#/components/schemas/ERC721CollectionItem", - "ERC1155_COLLECTION": "#/components/schemas/ERC1155CollectionItem" + "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" } } }, - "FulfillmentDataRequest": { + "CollectionBidResult": { "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" + "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" }, - "example": [ + "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": "TAKER_ECOSYSTEM", - "amount": "2250000000000000000", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" } ], - "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+" + "signature": "0x", + "start_at": "2022-03-09T05:00:50.52Z", + "status": { + "name": "EXPIRED" + }, + "type": "COLLECTION_BID", + "updated_at": "2022-03-07T07:20:50.52Z" } - }, - "required": [ - "order_id", - "fees", - "taker_address" - ] + } }, - "FulfillableOrder": { + "MetadataBidResult": { "type": "object", "properties": { - "order": { + "result": { "$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" + "result" + ], + "example": { + "result": { + "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "sell": [ + { + "type": "ERC20", + "amount": "9750000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ], + "fees": [], + "chain": { + "id": "eip155:11155111", + "name": "sepolia" + }, + "metadata_id": "018792C9-4AD7-8EC4-4038-9E05C598534B", + "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": "METADATA_BID", + "updated_at": "2022-03-07T07:20:50.52Z" } - }, - "required": [ - "reason", - "order_id" - ] + } }, - "NativeItem": { + "TraitFilter": { "type": "object", + "description": "A trait filter used to match NFTs by metadata attribute", "properties": { - "type": { + "trait_type": { "type": "string", - "description": "Token type user is offering, which in this case is the native IMX token", - "example": "NATIVE", - "enum": [ - "NATIVE" - ] + "description": "The trait type (attribute name)", + "example": "Background" }, - "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+" + "values": { + "type": "array", + "description": "The trait values to match against", + "items": { + "type": "string" + }, + "minItems": 1, + "example": [ + "Blue", + "Red" + ] } }, "required": [ - "type", - "amount" + "trait_type", + "values" ] }, - "ERC20Item": { + "MetadataFieldFilter": { "type": "object", + "description": "A field-level filter used to match NFTs for a metadata bid. The\n`field_name` is either a top-level metadata field (`name`, `image`,\n`description`, `animation_url`, `external_url`, `youtube_url`) or an\nattribute identified by the `attribute:` prefix (e.g.\n`attribute:Background`). Values match case-insensitively; multiple\nvalues are OR'd, multiple filters on a bid are AND'd.\n", "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC20", - "example": "ERC20", - "enum": [ - "ERC20" - ] - }, - "contract_address": { + "field_name": { "type": "string", - "description": "Address of ERC20 token", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", - "pattern": "^0x[a-fA-F0-9]{40}$" + "description": "The metadata field name (top-level field or `attribute:`)", + "example": "attribute:Background" }, - "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+" + "values": { + "type": "array", + "description": "The metadata field values to match against (OR semantics)", + "items": { + "type": "string" + }, + "minItems": 1, + "example": [ + "Blue", + "Red" + ] } }, "required": [ - "type", - "contract_address", - "amount" + "field_name", + "values" ] }, - "ERC721Item": { + "CreateMetadataBidRequestBody": { "type": "object", + "description": "Request body for creating a metadata bid. Exactly one of `metadata_id`\nor `metadata_criteria` must be provided.\n", "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC721", - "example": "ERC721", - "enum": [ - "ERC721" - ] - }, - "contract_address": { + "account_address": { "type": "string", - "description": "Address of ERC721 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "pattern": "^0x[a-fA-F0-9]{40}$" }, - "token_id": { + "order_hash": { "type": "string", - "description": "ID of ERC721 token", - "example": "1", - "pattern": "\\d+" - } - }, - "required": [ - "type", - "contract_address", - "token_id" - ] - }, - "ERC1155Item": { - "type": "object", - "properties": { - "type": { + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "metadata_id": { "type": "string", - "description": "Token type user is offering, which in this case is ERC1155", - "example": "ERC1155", - "enum": [ - "ERC1155" + "format": "uuid", + "description": "Metadata identifier that matching NFTs must have to fulfill this bid. Mutually exclusive with `metadata_criteria`.", + "example": "018792C9-4AD7-8EC4-4038-9E05C598534B" + }, + "metadata_criteria": { + "type": "array", + "description": "Field-level metadata filters that matching NFTs must satisfy to fulfill this bid. Mutually exclusive with `metadata_id`.", + "items": { + "$ref": "#/components/schemas/MetadataFieldFilter" + }, + "minItems": 1, + "example": [ + { + "field_name": "name", + "values": [ + "Cool Dragon" + ] + }, + { + "field_name": "attribute:Background", + "values": [ + "Blue", + "Red" + ] + } ] }, - "contract_address": { - "type": "string", - "description": "Address of ERC1155 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "buy": { + "type": "array", + "description": "Buy item for metadata 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 }, - "token_id": { - "type": "string", - "description": "ID of ERC1155 token", - "example": "1", - "pattern": "\\d+" + "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 }, - "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": { + "end_at": { "type": "string", - "description": "Token type user is offering, which in this case is ERC721", - "example": "ERC721_COLLECTION", - "enum": [ - "ERC721_COLLECTION" - ] + "description": "Time after which the Order is considered expired", + "format": "date-time", + "example": "2022-03-09T05:00:50.52Z" }, - "contract_address": { - "type": "string", - "description": "Address of ERC721 collection", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "protocol_data": { + "$ref": "#/components/schemas/ProtocolData" }, - "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": { + "salt": { "type": "string", - "description": "Token type user is offering, which in this case is ERC1155", - "example": "ERC1155_COLLECTION", - "enum": [ - "ERC1155_COLLECTION" - ] + "description": "A random value added to the create Order request", + "example": "12686911856931635052326433555881236148" }, - "contract_address": { + "sell": { + "type": "array", + "description": "Sell item for metadata 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": "Address of ERC1155 collection", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "description": "Digital signature generated by the user for the specific Order", + "example": "0x" }, - "amount": { + "start_at": { "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+" + "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", + "metadata_id": "018792C9-4AD7-8EC4-4038-9E05C598534B", + "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": [ - "type", - "contract_address", - "amount" + "account_address", + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature" ] }, - "CancelOrdersRequestBody": { + "CreateTraitBidRequestBody": { "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": { + "order_hash": { + "type": "string", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "buy": { "type": "array", - "description": "List of order ids proposed for cancellation", + "description": "Buy item for trait bid should either be ERC721 or ERC1155 collection item", "items": { - "type": "string", - "format": "uuid" + "$ref": "#/components/schemas/AssetCollectionItem" }, - "uniqueItems": true, + "example": [ + { + "type": "ERC721_COLLECTION", + "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "amount": "1" + } + ], "minItems": 1, - "maxItems": 20 + "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 trait 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": "Signature generated by the user for the specific cancellation request", - "example": "0x12345" + "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" + }, + "trait_criteria": { + "type": "array", + "description": "Trait criteria to match NFTs against", + "items": { + "$ref": "#/components/schemas/TraitFilter" + }, + "minItems": 1, + "example": [ + { + "trait_type": "Background", + "values": [ + "Blue", + "Red" + ] + } + ] } }, + "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", + "trait_criteria": [ + { + "trait_type": "Background", + "values": [ + "Blue", + "Red" + ] + } + ] + }, "required": [ "account_address", - "orders", - "signature" + "order_hash", + "buy", + "sell", + "fees", + "end_at", + "start_at", + "protocol_data", + "salt", + "signature", + "trait_criteria" + ] + }, + "TraitBidResult": { + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/Order" + } + }, + "required": [ + "result" ], "example": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "ids": [ - "018a8c71-d7e4-e303-a2ef-318871ef7756", - "238a8c71-d7e4-e303-a2ef-318871ef7778", - "458a8c71-d7e4-e303-a2ef-318871ef7790" - ], - "signature": 291 + "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": "TRAIT_BID", + "updated_at": "2022-03-07T07:20:50.52Z" + } } }, - "CreateListingRequestBody": { + "ListTraitBidsResult": { "type": "object", "properties": { - "account_address": { - "type": "string", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "pattern": "^0x[a-fA-F0-9]{40}$" - }, - "order_hash": { - "type": "string", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + "page": { + "$ref": "#/components/schemas/Page" }, - "buy": { + "result": { "type": "array", - "description": "Buy item for listing should either be NATIVE or ERC20 item", "items": { - "$ref": "#/components/schemas/Item" + "$ref": "#/components/schemas/Order" }, - "example": [ - { - "type": "NATIVE", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "minItems": 1, - "maxItems": 1 + "minItems": 0, + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ] + }, + "ListMetadataBidsResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/Page" }, - "fees": { + "result": { "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" + "$ref": "#/components/schemas/Order" }, - "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" + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ] + }, + "ListListingsResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/Page" }, - "sell": { + "result": { "type": "array", - "description": "Sell item for listing should be an ERC721 item", "items": { - "$ref": "#/components/schemas/Item" + "$ref": "#/components/schemas/Order" }, - "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" + "minItems": 0, + "maxItems": 200 } }, + "required": [ + "page", + "result" + ], "example": { - "account_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "order_hash": "0x0821933d9391bc9bf11a6010fe84776c84b203abff0c1ad781fb4881409c8770", - "buy": [ + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + }, + "result": [ { - "type": "NATIVE", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "fees": [ + "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" + }, { - "type": "MAKER_ECOSYSTEM", - "amount": "2250000000000000000", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233" + "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" } - ], - "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" + ] + } + }, + "ListBidsResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/Page" }, - "salt": "12686911856931635052326433555881236148", - "sell": [ + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + }, + "minItems": 0, + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ], + "example": { + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + }, + "result": [ { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" + "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" } - ], - "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": { + "ListCollectionBidsResult": { "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 + "page": { + "$ref": "#/components/schemas/Page" }, - "fees": { + "result": { "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" + "$ref": "#/components/schemas/Order" }, - "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" + "maxItems": 200 } }, + "required": [ + "page", + "result" + ], "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" + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" }, - "salt": "12686911856931635052326433555881236148", - "buy": [ + "result": [ { - "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" + "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" }, - "example": [ + "created_at": "2022-03-07T07:20:50.52Z", + "id": "018792C9-4AD7-8EC4-4038-9E05C598534B", + "sell": [ { - "type": "ERC721_COLLECTION", + "type": "ERC721", "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "1" + "token_id": "1" } ], - "minItems": 1, - "maxItems": 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" }, - "fees": { + "result": { "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" + "$ref": "#/components/schemas/Trade" }, - "example": [], "minItems": 0, - "maxItems": 2 + "maxItems": 200 + } + }, + "required": [ + "page", + "result" + ], + "example": { + "page": { + "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", + "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" }, - "end_at": { - "type": "string", - "description": "Time after which the Order is considered expired", - "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" + "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" }, - "protocol_data": { - "$ref": "#/components/schemas/ProtocolData" + { + "$ref": "#/components/schemas/PendingOrderStatus" }, - "salt": { - "type": "string", - "description": "A random value added to the create Order request", - "example": "12686911856931635052326433555881236148" + { + "$ref": "#/components/schemas/ActiveOrderStatus" }, - "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 + { + "$ref": "#/components/schemas/InactiveOrderStatus" }, - "signature": { + { + "$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": "Digital signature generated by the user for the specific Order", - "example": "0x" + "description": "The order status indicating a order is has been cancelled or about to be cancelled.", + "enum": [ + "CANCELLED" + ] }, - "start_at": { + "pending": { + "type": "boolean", + "description": "Whether the cancellation of the order is pending", + "example": false + }, + "cancellation_type": { "type": "string", - "description": "Time after which Order is considered active", - "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" + "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" } }, - "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" + "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" + ] }, - "salt": "12686911856931635052326433555881236148", - "buy": [ - { - "type": "ERC721_COLLECTION", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "amount": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z" + "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": [ - "account_address", - "order_hash", - "buy", - "sell", - "fees", - "end_at", - "start_at", - "protocol_data", - "salt", - "signature" + "name", + "evaluated", + "started" ] }, - "Fee": { + "ActiveOrderStatus": { "type": "object", "properties": { - "amount": { - "type": "string", - "description": "Fee payable to recipient upon settlement", - "example": "2250000000000000000", - "pattern": "\\d+" - }, - "type": { + "name": { "type": "string", - "description": "Fee type", - "example": "ROYALTY", + "description": "The order status that indicates an order can be fulfilled.", "enum": [ - "ROYALTY", - "MAKER_ECOSYSTEM", - "TAKER_ECOSYSTEM", - "PROTOCOL" + "ACTIVE" ] - }, - "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" + "name" ] }, - "Order": { + "InactiveOrderStatus": { "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": { + "name": { "type": "string", - "description": "Time after which Order is considered active", - "format": "date-time", - "example": "2022-03-09T05:00:50.52Z" + "description": "The order status that indicates an order cannot be fulfilled.", + "enum": [ + "INACTIVE" + ] }, - "status": { - "$ref": "#/components/schemas/OrderStatus" + "sufficient_approvals": { + "type": "boolean", + "description": "Whether the order offerer has sufficient approvals", + "example": false }, - "type": { + "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": "Order type", - "example": "LISTING", + "description": "A terminal order status indicating that an order cannot be fulfilled due to expiry.", "enum": [ - "LISTING", - "BID", - "COLLECTION_BID" + "EXPIRED" ] - }, - "updated_at": { + } + }, + "required": [ + "name" + ] + }, + "FilledOrderStatus": { + "type": "object", + "properties": { + "name": { "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" + "description": "A terminal order status indicating that an order has been fulfilled.", + "enum": [ + "FILLED" + ] } }, - "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" + "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" + ] }, - "salt": "12686911856931635052326433555881236148", - "sell": [ - { - "type": "ERC721", - "contract_address": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "token_id": "1" - } - ], - "signature": "0x", - "start_at": "2022-03-09T05:00:50.52Z", - "status": { - "name": "ACTIVE" + "counter": { + "type": "string", + "description": "big.Int or uint256 string for order counter", + "example": "92315562" }, - "fill_status": { - "numerator": 1, - "denominator": 2 + "zone_address": { + "type": "string", + "description": "Immutable zone address", + "example": "0x12" }, - "type": "LISTING", - "updated_at": "2022-03-07T07:20:50.52Z" + "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": [ - "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" + "order_type", + "counter", + "zone_address", + "seaport_address", + "seaport_version" ] }, - "Trade": { + "TradeBlockchainMetadata": { + "description": "The metadata related to the transaction in which the activity occurred", + "nullable": true, "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.", + "transaction_hash": { "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" + "description": "The transaction hash of the trade", + "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" }, - "order_id": { + "block_number": { + "description": "EVM block number (uint64 as string)", "type": "string", - "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + "example": "1" }, - "blockchain_metadata": { - "$ref": "#/components/schemas/TradeBlockchainMetadata" + "transaction_index": { + "description": "Transaction index in a block (uint32 as string)", + "type": "string", + "example": "1" }, - "indexed_at": { + "log_index": { + "description": "The log index of the fulfillment event in a block (uint32 as string)", "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" + "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" }, - "id": { + "denominator": { "type": "string", - "description": "Global Trade identifier", - "example": "018792C9-4AD7-8EC4-4038-9E05C598534A" + "description": "The denominator of the fill status", + "example": "2" + } + }, + "required": [ + "numerator", + "denominator" + ] + }, + "APIError501": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "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" + { + "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" } - ], - "minItems": 1, - "maxItems": 1 + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError503": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "seller_address": { - "description": "Deprecated. Use maker and taker addresses instead of buyer and seller addresses.", - "type": "string", - "example": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D" + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "SERVICE_UNAVAILABLE" + ], + "example": "SERVICE_UNAVAILABLE" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "APIError504": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" }, - "maker_address": { + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "GATEWAY_TIMEOUT" + ], + "example": "GATEWAY_TIMEOUT" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } + ] + }, + "CreateCounterfactualAddressRequest": { + "type": "object", + "required": [ + "ethereum_address", + "ethereum_signature" + ], + "properties": { + "ethereum_address": { + "description": "The user's UAK address", "type": "string", - "example": "0x002b9B1cbf464782Df5d48870358FA6c09f1b19D" + "maxLength": 42 }, - "taker_address": { + "ethereum_signature": { + "description": "The signature generated with the UAK", "type": "string", - "example": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40" + "maxLength": 132 } }, - "example": { - "buy": [ - { - "type": "NATIVE", - "amount": "9750000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - } - ], - "buyer_address": "0xFC99a706C0D05B8C71E1fAAC91b3E1343aC34D40", - "buyer_fees": [], - "fees": [], - "chain": { - "id": "eip155:11155111", - "name": "sepolia" + "additionalProperties": false + }, + "GetTransactionMetadataRequest": { + "type": "object", + "required": [ + "contract_address", + "method_id", + "transaction_id", + "transaction_data" + ], + "properties": { + "contract_address": { + "description": "The address of the contract intended for interaction with this transaction", + "type": "string", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 }, - "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" + "method_id": { + "description": "The method ID of the contract intended for interaction with this transaction", + "type": "string", + "maxLength": 132 + }, + "transaction_id": { + "description": "ID of the given transaction to be decoded", + "type": "string" + }, + "transaction_data": { + "description": "Encoded transaction data", + "pattern": "^0x[0-9a-fA-F]*$", + "type": "string" + } }, + "additionalProperties": false + }, + "CreateCounterfactualAddressRes": { + "type": "object", "required": [ - "id", - "order_id", - "buy", - "buyer_address", - "sell", - "seller_address", - "buyer_fees", - "fees", - "chain", - "maker_address", - "taker_address", - "indexed_at", - "blockchain_metadata" - ] + "counterfactual_address" + ], + "properties": { + "counterfactual_address": { + "description": "The user's counterfactual address", + "type": "string", + "maxLength": 42 + } + } }, - "CancelOrdersResult": { + "GetLinkedAddressesResDeprecated": { "type": "object", + "required": [ + "linkedAddresses" + ], "properties": { - "result": { - "$ref": "#/components/schemas/CancelOrdersResultData" + "linkedAddresses": { + "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 + } } - }, + } + }, + "GetPassportMetadataRes": { + "type": "object", "required": [ - "result" + "passport_metadata" ], - "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" + "properties": { + "passport_metadata": { + "type": "array", + "minItems": 0, + "description": "The user's passport metadata", + "items": { + "description": "The user's passport metadata", + "type": "object", + "properties": { + "chain_id": { + "type": "string", + "description": "The chain id (eg: eip155:1)" + }, + "chain_key": { + "type": "string", + "description": "The chain key" + }, + "user_admin_key": { + "type": "string", + "description": "The user admin key" + }, + "counterfactual_address": { + "type": "string", + "description": "The counterfactual address" + } } - ] + } } } }, - "CancelOrdersResultData": { + "GetLinkedAddressesRes": { "type": "object", + "required": [ + "linked_addresses" + ], "properties": { - "successful_cancellations": { + "linked_addresses": { "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", + "description": "The user's list of linked addresses", "items": { - "type": "string" - }, - "minItems": 0, - "maxItems": 10 + "description": "The user's linked address", + "type": "string", + "pattern": "^0x[0-9a-fA-F]*$", + "maxLength": 42 + } + } + } + }, + "ImmutableVerificationStatusEnum": { + "type": "string", + "enum": [ + "verified", + "unverified", + "spam", + "inactive" + ] + }, + "ERC721ApproveMetadata": { + "type": "object", + "required": [ + "transaction_type", + "collection_name", + "collection_image", + "asset_image", + "asset_name", + "is_smart_contract", + "is_contract_verified", + "contract_name", + "token_id", + "immutable_verification_status" + ], + "properties": { + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "ERC721_APPROVE" + ] + }, + "collection_name": { + "type": "string", + "description": "NFT Collection name" + }, + "collection_image": { + "type": "string", + "description": "NFT Collection image" + }, + "asset_image": { + "type": "string", + "description": "NFT Asset name" + }, + "asset_name": { + "type": "string", + "description": "NFT Asset image" + }, + "is_smart_contract": { + "type": "boolean", + "description": "Indicate if it is a Smart Contract or EOA" + }, + "is_contract_verified": { + "type": "boolean", + "description": "Is Contract Verified" + }, + "contract_name": { + "type": "string", + "description": "Smart Contract Name" }, - "failed_cancellations": { - "type": "array", - "description": "Orders which failed to be cancelled", - "items": { - "$ref": "#/components/schemas/FailedOrderCancellation" - }, - "minItems": 0, - "maxItems": 10 + "token_id": { + "type": "string", + "description": "ID of the ERC721", + "example": "1" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } - }, - "required": [ - "successful_cancellations", - "pending_cancellations", - "failed_cancellations" - ] + } }, - "FailedOrderCancellation": { + "ERC20TransferMetadata": { "type": "object", + "required": [ + "transaction_type", + "to_address", + "amount", + "decimals", + "symbol", + "immutable_verification_status", + "image_url" + ], "properties": { - "order": { + "transaction_type": { "type": "string", - "description": "ID of the order which failed to be cancelled", - "example": "7df3e99e-f7b3-459c-bef6-ffb66a18bb59" + "description": "Transaction type", + "enum": [ + "ERC20_TRANSFER" + ] }, - "reason_code": { + "to_address": { "type": "string", - "enum": [ - "FILLED" - ], - "description": "Reason code indicating why the order failed to be cancelled", - "example": "FILLED" + "description": "The address to transfer the token to", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "amount": { + "type": "string", + "description": "A string representing the amount of tokens to transfer", + "example": "10000000000000000" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + }, + "decimals": { + "type": "integer", + "description": "The token decimals", + "example": 18 + }, + "symbol": { + "type": "string", + "description": "The symbol of the token being transferred", + "example": "AAA" + }, + "image_url": { + "type": "string", + "description": "The image of the token being transferred", + "example": "https://some-url" } - }, - "required": [ - "order", - "reason_code" - ] + } }, - "ListingResult": { + "ERC20TransferFromMetadata": { "type": "object", - "properties": { - "result": { - "$ref": "#/components/schemas/Order" - } - }, "required": [ - "result" + "transaction_type", + "immutable_verification_status", + "from_address", + "to_address", + "amount", + "decimals", + "symbol", + "image_url" ], - "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" + "properties": { + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "ERC20_TRANSFER_FROM" + ] + }, + "from_address": { + "type": "string", + "description": "The address to transfer the token from", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "to_address": { + "type": "string", + "description": "The address to transfer the token to", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "amount": { + "type": "string", + "description": "A string representing the amount of tokens to transfer", + "example": "10000000000000000" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + }, + "decimals": { + "type": "integer", + "description": "The token decimals", + "example": 18 + }, + "symbol": { + "type": "string", + "description": "The symbol of the token being transferred", + "example": "AAA" + }, + "image_url": { + "type": "string", + "description": "The image of the token being transferred", + "example": "https://some-url" } } }, - "BidResult": { + "ERC20ApproveMetadata": { "type": "object", - "properties": { - "result": { - "$ref": "#/components/schemas/Order" - } - }, "required": [ - "result" + "transaction_type", + "amount", + "token_symbol", + "spender", + "is_smart_contract", + "is_contract_verified", + "immutable_verification_status", + "contract_name", + "image_url" ], - "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" + "properties": { + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "ERC20_APPROVE" + ] + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + }, + "amount": { + "type": "string", + "description": "Requested approval amount" + }, + "token_symbol": { + "type": "string", + "description": "Requested token symbol" + }, + "spender": { + "type": "string", + "description": "Spender address" + }, + "is_smart_contract": { + "type": "boolean", + "description": "Indicate if it is a Smart Contract or EOA" + }, + "is_contract_verified": { + "type": "boolean", + "description": "Is Contract Verified" + }, + "contract_name": { + "type": "string", + "description": "Smart Contract Name" + }, + "image_url": { + "type": "string", + "example": "https://example.com/erc20.jpg" } } }, - "CollectionBidResult": { + "NFTSetApprovalForAllMetadata": { "type": "object", - "properties": { - "result": { - "$ref": "#/components/schemas/Order" - } - }, "required": [ - "result" + "transaction_type", + "collection_name", + "collection_image", + "is_smart_contract", + "is_contract_verified", + "contract_name", + "immutable_verification_status" ], - "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" + "properties": { + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "ERC721_SET_APPROVAL_FOR_ALL", + "ERC1155_SET_APPROVAL_FOR_ALL" + ] + }, + "collection_name": { + "type": "string", + "description": "NFT Collection name" + }, + "collection_image": { + "type": "string", + "description": "NFT Collection image" + }, + "is_smart_contract": { + "type": "boolean", + "description": "Indicate if it is a Smart Contract or EOA" + }, + "is_contract_verified": { + "type": "boolean", + "description": "Is Contract Verified" + }, + "contract_name": { + "type": "string", + "description": "Smart Contract Name" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } } }, - "ListListingsResult": { + "ERC721TransferFromMetadata": { "type": "object", - "properties": { - "page": { - "$ref": "#/components/schemas/Page" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - }, - "minItems": 0, - "maxItems": 200 - } - }, "required": [ - "page", - "result" + "transaction_type", + "from_address", + "to_address", + "collection_name", + "token_id", + "asset_name", + "asset_image", + "immutable_verification_status" ], - "example": { - "page": { - "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", - "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + "properties": { + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "ERC721_TRANSFER_FROM" + ] }, - "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" - } - ] + "from_address": { + "type": "string", + "description": "The address to transfer the token from", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "to_address": { + "type": "string", + "description": "The address to transfer the token to", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "collection_name": { + "type": "string", + "description": "The collection name the ERC721 belongs to" + }, + "token_id": { + "type": "string", + "description": "ID of the ERC721", + "example": "1" + }, + "asset_name": { + "type": "string", + "description": "The name of the ERC721", + "example": "Sword" + }, + "asset_image": { + "type": "string", + "description": "The image of the ERC721", + "example": "https://some-url" + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + } } }, - "ListBidsResult": { + "ERC721SafeTransferFromBatchMetadata": { "type": "object", + "required": [ + "transaction_type", + "from_address", + "collection_name", + "items", + "immutable_verification_status" + ], "properties": { - "page": { - "$ref": "#/components/schemas/Page" + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "ERC721_SAFE_TRANSFER_FROM_BATCH" + ] }, - "result": { + "from_address": { + "type": "string", + "description": "The address to transfer the token from", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + }, + "collection_name": { + "type": "string", + "description": "The collection name the ERC721 belongs to", + "example": "Guild of Guardians Heroes" + }, + "items": { "type": "array", + "description": "The ERC721s to transfer and where to transfer them to", "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" + "$ref": "#/components/schemas/ERC721SafeTransferFromBatchItem" } - ] + }, + "immutable_verification_status": { + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + } } }, - "ListCollectionBidsResult": { + "ERC721SafeTransferFromBatchItem": { "type": "object", - "properties": { - "page": { - "$ref": "#/components/schemas/Page" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - }, - "minItems": 0, - "maxItems": 200 - } - }, "required": [ - "page", - "result" + "to_address", + "token_id", + "asset_name", + "asset_image" ], - "example": { - "page": { - "previous_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA", - "next_cursor": "MjAyMy0wMS0yM1QwMTo1NToyNy4zNTM2MzA" + "properties": { + "to_address": { + "type": "string", + "description": "The address to transfer the token to", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" }, - "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" - } - ] + "token_id": { + "type": "string", + "description": "ID of the ERC721", + "example": "1" + }, + "asset_name": { + "type": "string", + "description": "The name of the ERC721", + "example": "Sword" + }, + "asset_image": { + "type": "string", + "description": "The image of the ERC721", + "example": "https://some-url" + } } }, - "TradeResult": { + "UnknownMetadata": { "type": "object", + "required": [ + "transaction_type", + "is_smart_contract", + "is_contract_verified", + "contract_name" + ], "properties": { - "result": { - "$ref": "#/components/schemas/Trade" + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "UNKNOWN" + ] + }, + "is_smart_contract": { + "type": "boolean", + "description": "Indicate if it is a Smart Contract or EOA" + }, + "is_contract_verified": { + "type": "boolean", + "description": "Is Contract Verified" + }, + "contract_name": { + "type": "string", + "description": "Smart Contract Name" } - }, + } + }, + "UnknownTypedDataMetadata": { + "type": "object", "required": [ - "result" + "typed_data_type" ], - "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" + "properties": { + "typed_data_type": { + "type": "string", + "description": "Unknown typed data type", + "enum": [ + "UNKNOWN" + ] } } }, - "ListTradeResult": { + "SeaportFulfillAvailableAdvancedOrdersMetadata": { "type": "object", + "required": [ + "transaction_type", + "is_smart_contract", + "is_contract_verified", + "contract_name", + "buy", + "sell", + "fees" + ], "properties": { - "page": { - "$ref": "#/components/schemas/Page" + "transaction_type": { + "type": "string", + "description": "Transaction type", + "enum": [ + "SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS" + ] }, - "result": { + "is_smart_contract": { + "type": "boolean", + "description": "Indicate if it is a Smart Contract or EOA" + }, + "is_contract_verified": { + "type": "boolean", + "description": "Is Contract Verified" + }, + "contract_name": { + "type": "string", + "description": "Smart Contract Name" + }, + "orders": { "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" + "$ref": "#/components/schemas/SeaportAdvancedOrder" } - ] + } } }, - "OrderStatus": { - "description": "The Order status", - "oneOf": [ - { - "$ref": "#/components/schemas/CancelledOrderStatus" - }, - { - "$ref": "#/components/schemas/PendingOrderStatus" - }, - { - "$ref": "#/components/schemas/ActiveOrderStatus" - }, - { - "$ref": "#/components/schemas/InactiveOrderStatus" + "SeaportAdvancedOrder": { + "type": "object", + "properties": { + "buy": { + "oneOf": [ + { + "$ref": "#/components/schemas/SeaportNativeItem" + }, + { + "$ref": "#/components/schemas/SeaportERC20Item" + }, + { + "$ref": "#/components/schemas/SeaportERC1155Item" + }, + { + "$ref": "#/components/schemas/SeaportERC1155CollectionItem" + }, + { + "$ref": "#/components/schemas/SeaportERC721Item" + }, + { + "$ref": "#/components/schemas/SeaportERC721CollectionItem" + } + ], + "example": [ + { + "type": "NATIVE", + "amount": "10000000000000000", + "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + } + ] }, - { - "$ref": "#/components/schemas/FilledOrderStatus" + "sell": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SeaportERC1155Item" + }, + { + "$ref": "#/components/schemas/SeaportERC721Item" + }, + { + "$ref": "#/components/schemas/SeaportNativeItem" + }, + { + "$ref": "#/components/schemas/SeaportERC20Item" + } + ] }, - { - "$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" + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeaportFee" + }, + "example": [], + "minItems": 0 } - } + }, + "required": [ + "buy", + "sell", + "fees" + ] }, - "CancelledOrderStatus": { + "SeaportNativeItem": { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "description": "The order status indicating a order is has been cancelled or about to be cancelled.", + "description": "Token type user is offering, which in this case is the native IMX token", + "example": "NATIVE", "enum": [ - "CANCELLED" + "NATIVE" ] }, - "pending": { - "type": "boolean", - "description": "Whether the cancellation of the order is pending", - "example": false - }, - "cancellation_type": { + "amount": { "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" + "description": "A string representing the price at which the user is willing to sell the token", + "example": "10000000000000000" + }, + "decimals": { + "type": "integer", + "description": "The decimal of this item", + "example": 18 } }, "required": [ - "name", - "pending", - "cancellation_type" + "type", + "amount", + "decimals" ] }, - "PendingOrderStatus": { + "SeaportERC20Item": { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "description": "The order status that indicates the order is yet to be active due to various reasons.", + "description": "Token type user is offering, which in this case is ERC20", + "example": "ERC20", "enum": [ - "PENDING" + "ERC20" ] }, - "evaluated": { - "type": "boolean", - "description": "Whether the order has been evaluated after its creation", - "example": false + "contract_address": { + "type": "string", + "description": "Address of ERC20 token", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "started": { - "type": "boolean", - "description": "Whether the order has reached its specified start time", - "example": false + "symbol": { + "type": "string", + "description": "The symbol of token", + "example": "AAA", + "nullable": true + }, + "image_url": { + "type": "string", + "description": "The image url of token", + "example": "https://some-url", + "nullable": true + }, + "amount": { + "type": "string", + "description": "A string representing the price at which the user is willing to sell the token", + "example": "10000000000000000" + }, + "decimals": { + "type": "integer", + "description": "The decimal of this erc20 item", + "example": 18 + }, + "immutable_verification_status": { + "type": "string", + "description": "The Immutable verification status of this collection", + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } }, "required": [ - "name", - "evaluated", - "started" + "type", + "contract_address", + "amount", + "decimals", + "immutable_verification_status" ] }, - "ActiveOrderStatus": { + "SeaportERC721Item": { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "description": "The order status that indicates an order can be fulfilled.", + "description": "Token type user is offering, which in this case is ERC721", + "example": "ERC721", "enum": [ - "ACTIVE" + "ERC721" ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC721 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "contract_name": { + "type": "string", + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "image_url": { + "type": "string", + "description": "The URL of the NFT", + "example": "https://example.com/nft.jpeg" + }, + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the NFT" + }, + "token_id": { + "type": "string", + "description": "ID of ERC721 token", + "example": "1", + "pattern": "\\d+" + }, + "immutable_verification_status": { + "type": "string", + "description": "The Immutable verification status of this collection", + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } }, + "example": [ + { + "type": "ERC721", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "contract_name": "Guild of Guardians Heroes", + "name": "Bestowing Saint", + "token_id": "1", + "immutable_verification_status": "verified" + } + ], "required": [ - "name" + "type", + "contract_address", + "token_id", + "immutable_verification_status" ] }, - "InactiveOrderStatus": { + "SeaportERC1155Item": { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "description": "The order status that indicates an order cannot be fulfilled.", + "description": "Token type user is offering, which in this case is ERC1155", + "example": "ERC1155", "enum": [ - "INACTIVE" + "ERC1155" ] }, - "sufficient_approvals": { - "type": "boolean", - "description": "Whether the order offerer has sufficient approvals", - "example": false + "contract_address": { + "type": "string", + "description": "Address of ERC1155 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "sufficient_balances": { - "type": "boolean", - "description": "Whether the order offerer still has sufficient balance to complete the order", - "example": false + "contract_name": { + "type": "string", + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "image_url": { + "type": "string", + "description": "The URL of the asset", + "example": "https://example.com/nft.jpeg" + }, + "name": { + "type": "string", + "nullable": true, + "example": "Sword", + "description": "The name of the asset" + }, + "token_id": { + "type": "string", + "description": "ID of ERC1155 token", + "example": "1", + "pattern": "\\d+" + }, + "amount": { + "type": "string", + "description": "A string representing the total units of an ERC1155 token which the user is buying/selling", + "example": "100" + }, + "immutable_verification_status": { + "type": "string", + "description": "The Immutable verification status of this collection", + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } }, + "example": [ + { + "type": "ERC1155", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "contract_name": "Guild of Guardians Heroes", + "name": "Bestowing Saint", + "token_id": "1", + "amount": "100", + "immutable_verification_status": "verified" + } + ], "required": [ - "name", - "sufficient_approvals", - "sufficient_balances" + "type", + "contract_address", + "token_id", + "amount", + "immutable_verification_status" ] }, - "ExpiredOrderStatus": { + "SeaportERC721CollectionItem": { "type": "object", "properties": { - "name": { + "type": { + "type": "string", + "description": "Token type user is offering, which in this case is ERC721Collection", + "example": "ERC721Collection", + "enum": [ + "ERC721Collection" + ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC721 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "contract_name": { + "type": "string", + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "image_url": { "type": "string", - "description": "A terminal order status indicating that an order cannot be fulfilled due to expiry.", - "enum": [ - "EXPIRED" - ] + "description": "The URL of the collection image", + "example": "https://example.com/nft.jpeg" + }, + "amount": { + "type": "string", + "description": "A string representing the total units of an ERC721 token which the user is buying", + "example": "10" + }, + "immutable_verification_status": { + "type": "string", + "description": "The Immutable verification status of this collection", + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } }, + "example": [ + { + "type": "ERC721Collection", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "amount": "10", + "immutable_verification_status": "verified" + } + ], "required": [ - "name" + "type", + "contract_address", + "image_url", + "amount", + "immutable_verification_status" ] }, - "FilledOrderStatus": { + "SeaportERC1155CollectionItem": { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "description": "A terminal order status indicating that an order has been fulfilled.", + "description": "Token type user is offering, which in this case is ERC1155Collection", + "example": "ERC1155Collection", "enum": [ - "FILLED" + "ERC1155Collection" ] + }, + "contract_address": { + "type": "string", + "description": "Address of ERC1155 token", + "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", + "pattern": "^0x[a-fA-F0-9]{40}$" + }, + "image_url": { + "type": "string", + "description": "The URL of the collection image", + "example": "https://example.com/nft.jpeg" + }, + "contract_name": { + "type": "string", + "nullable": true, + "description": "The name of the collection", + "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + }, + "amount": { + "type": "string", + "description": "A string representing the total units of an ERC1155 token which the user is buying", + "example": "100" + }, + "immutable_verification_status": { + "type": "string", + "description": "The Immutable verification status of this collection", + "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" } }, + "example": [ + { + "type": "ERC1155", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "contract_name": "Guild of Guardians Heroes", + "amount": "100", + "immutable_verification_status": "verified" + } + ], "required": [ - "name" - ] - }, - "OrderStatusName": { - "type": "string", - "description": "The Order status", - "enum": [ - "PENDING", - "ACTIVE", - "INACTIVE", - "FILLED", - "EXPIRED", - "CANCELLED" + "type", + "image_url", + "contract_address", + "amount", + "immutable_verification_status" ] }, - "ProtocolData": { + "SeaportFee": { "type": "object", "properties": { - "order_type": { + "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", + "description": "Token type of the Fee", + "example": "ERC20", "enum": [ - "FULL_RESTRICTED", - "PARTIAL_RESTRICTED" + "ERC20", + "NATIVE" ] }, - "counter": { + "amount": { "type": "string", - "description": "big.Int or uint256 string for order counter", - "example": "92315562" + "description": "Fee payable to recipient upon settlement", + "example": "10000000000000000" }, - "zone_address": { + "recipient_address": { "type": "string", - "description": "Immutable zone address", - "example": "0x12" + "description": "Wallet address of fee recipient", + "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "seaport_address": { + "contract_address": { "type": "string", - "description": "Immutable Seaport contract address", - "example": "0x12" + "description": "Address of the ERC20 token for the fee", + "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "seaport_version": { + "symbol": { "type": "string", - "description": "Immutable Seaport contract version", - "example": "1.5" + "description": "The symbol of token for the fee", + "example": "AAA", + "nullable": true + }, + "decimals": { + "type": "integer", + "description": "The decimal of this item", + "example": 18 } }, "example": { - "order_type": "FULL_RESTRICTED", - "counter": "92315562", - "zone_address": "0x12", - "seaport_address": "0x12", - "seaport_version": "1.5" + "amount": "10000000000000000", + "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", + "type": "NATIVE" }, "required": [ - "order_type", - "counter", - "zone_address", - "seaport_address", - "seaport_version" + "amount", + "type", + "recipient_address", + "decimals" ] }, - "TradeBlockchainMetadata": { - "description": "The metadata related to the transaction in which the activity occurred", - "nullable": true, + "SeaportCreateListingMetadata": { "type": "object", + "required": [ + "typed_data_type", + "buy", + "sell", + "fees" + ], "properties": { - "transaction_hash": { + "typed_data_type": { "type": "string", - "description": "The transaction hash of the trade", - "example": "0x68d9eac5e3b3c3580404989a4030c948a78e1b07b2b5ea5688d8c38a6c61c93e" + "description": "Typed data type", + "enum": [ + "SEAPORT_CREATE_LISTING_METADATA" + ] }, - "block_number": { - "description": "EVM block number (uint64 as string)", - "type": "string", - "example": "1" + "buy": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SeaportNativeItem" + }, + { + "$ref": "#/components/schemas/SeaportERC20Item" + }, + { + "$ref": "#/components/schemas/SeaportERC721Item" + }, + { + "$ref": "#/components/schemas/SeaportERC721CollectionItem" + }, + { + "$ref": "#/components/schemas/SeaportERC1155Item" + }, + { + "$ref": "#/components/schemas/SeaportERC1155CollectionItem" + } + ], + "example": [ + { + "type": "ERC721", + "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", + "contract_name": "Guild of Guardians Heroes", + "name": "Bestowing Saint", + "token_id": 1 + } + ] + }, + "sell": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SeaportNativeItem" + }, + { + "$ref": "#/components/schemas/SeaportERC20Item" + }, + { + "$ref": "#/components/schemas/SeaportERC721Item" + }, + { + "$ref": "#/components/schemas/SeaportERC1155Item" + } + ] + }, + "fees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeaportFee" + } + } + } + }, + "GetTransactionMetadataRes": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ERC20ApproveMetadata" + }, + { + "$ref": "#/components/schemas/ERC20TransferMetadata" + }, + { + "$ref": "#/components/schemas/ERC20TransferFromMetadata" + }, + { + "$ref": "#/components/schemas/ERC721ApproveMetadata" + }, + { + "$ref": "#/components/schemas/NFTSetApprovalForAllMetadata" + }, + { + "$ref": "#/components/schemas/ERC721TransferFromMetadata" }, - "transaction_index": { - "description": "Transaction index in a block (uint32 as string)", - "type": "string", - "example": "1" + { + "$ref": "#/components/schemas/ERC721SafeTransferFromBatchMetadata" }, - "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" + { + "$ref": "#/components/schemas/SeaportFulfillAvailableAdvancedOrdersMetadata" }, - "denominator": { - "type": "string", - "description": "The denominator of the fill status", - "example": "2" + { + "$ref": "#/components/schemas/UnknownMetadata" } - }, - "required": [ - "numerator", - "denominator" ] }, - "APIError501": { - "allOf": [ + "GetTypedDataMetadataRes": { + "type": "object", + "oneOf": [ { - "$ref": "#/components/schemas/BasicAPIError" + "$ref": "#/components/schemas/SeaportCreateListingMetadata" }, { - "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" - ] + "$ref": "#/components/schemas/UnknownTypedDataMetadata" } ] }, - "CreateCounterfactualAddressRequest": { + "GetTypedDataMetadataRequest": { "type": "object", "required": [ - "ethereum_address", - "ethereum_signature" + "payload" ], "properties": { - "ethereum_address": { - "description": "The user's UAK address", - "type": "string", - "maxLength": 42 - }, - "ethereum_signature": { - "description": "The signature generated with the UAK", - "type": "string", - "maxLength": 132 + "payload": { + "$ref": "#/components/schemas/EIP712Message" } - }, - "additionalProperties": false + } }, - "GetTransactionMetadataRequest": { + "GetWalletUserRes": { "type": "object", "required": [ - "contract_address", - "method_id", - "transaction_id", - "transaction_data" + "email", + "user_id" ], "properties": { - "contract_address": { - "description": "The address of the contract intended for interaction with this transaction", + "user_id": { "type": "string", - "pattern": "^0x[0-9a-fA-F]*$", - "maxLength": 42 + "description": "The user id associated with the wallet address", + "example": "google|1234" }, - "method_id": { - "description": "The method ID of the contract intended for interaction with this transaction", + "email": { "type": "string", - "maxLength": 132 - }, - "transaction_id": { - "description": "ID of the given transaction to be decoded", - "type": "string" - }, - "transaction_data": { - "description": "Encoded transaction data", - "pattern": "^0x[0-9a-fA-F]*$", - "type": "string" + "description": "The email address associated with the wallet address", + "example": "user@example.com" } - }, - "additionalProperties": false + } }, - "CreateCounterfactualAddressRes": { + "GetUserWalletRes": { "type": "object", "required": [ - "counterfactual_address" + "wallet_address" ], "properties": { - "counterfactual_address": { - "description": "The user's counterfactual address", + "wallet_address": { "type": "string", - "maxLength": 42 + "description": "The wallet address associated with the user", + "pattern": "^0x[0-9a-fA-F]{40}$", + "example": "0x1234567890abcdef1234567890abcdef12345678" } } }, - "GetLinkedAddressesResDeprecated": { + "DeleteUserRequest": { "type": "object", + "properties": { + "email_address": { + "type": "string", + "format": "email", + "description": "The email address of the user to delete", + "example": "user@example.com" + }, + "reason": { + "type": "string", + "description": "The reason for deleting the user", + "example": "JIRA-123: User requested deletion" + } + }, "required": [ - "linkedAddresses" + "email_address", + "reason" ], + "example": [ + { + "email_address": "user@example.com", + "reason": "JIRA-123: User requested deletion" + } + ] + }, + "DeleteUserRes": { + "type": "object", "properties": { - "linkedAddresses": { - "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 - } + "email_address": { + "type": "string", + "description": "The email address of the user", + "example": "user@example.com" + }, + "user_id": { + "type": "string", + "description": "The user id of the user", + "example": "google|1234" } + }, + "required": [ + "email_address", + "user_id" + ], + "example": { + "email_address": "user@example.com", + "user_id": "google|1234" } }, - "GetPassportMetadataRes": { + "UpdateUserEmailRequest": { "type": "object", "required": [ - "passport_metadata" + "wallet_address", + "email_address" ], "properties": { - "passport_metadata": { - "type": "array", - "minItems": 0, - "description": "The user's passport metadata", - "items": { - "description": "The user's passport metadata", - "type": "object", - "properties": { - "chain_id": { - "type": "string", - "description": "The chain id (eg: eip155:1)" - }, - "chain_key": { - "type": "string", - "description": "The chain key" - }, - "user_admin_key": { - "type": "string", - "description": "The user admin key" - }, - "counterfactual_address": { - "type": "string", - "description": "The counterfactual address" - } - } - } + "wallet_address": { + "type": "string", + "description": "The user's wallet (eth) address to identify the user", + "pattern": "^0x[0-9a-fA-F]{40}$", + "maxLength": 42, + "example": "0x1234567890abcdef1234567890abcdef12345678" + }, + "email_address": { + "type": "string", + "format": "email", + "description": "The email address to set for the user", + "example": "user@example.com", + "maxLength": 256 } - } + }, + "additionalProperties": false }, - "GetLinkedAddressesRes": { + "UpdateUserEmailRes": { "type": "object", "required": [ - "linked_addresses" + "wallet_address" ], "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 - } + "wallet_address": { + "type": "string", + "description": "The wallet address that was updated", + "pattern": "^0x[0-9a-fA-F]{40}$", + "example": "0x1234567890abcdef1234567890abcdef12345678" } } }, - "ImmutableVerificationStatusEnum": { - "type": "string", - "enum": [ - "verified", - "unverified", - "spam", - "inactive" - ] - }, - "ERC721ApproveMetadata": { + "CreatePreOnboardingCheckInSessionActivityContractRequest": { "type": "object", "required": [ - "transaction_type", - "collection_name", - "collection_image", - "asset_image", - "asset_name", - "is_smart_contract", - "is_contract_verified", - "contract_name", - "token_id", - "immutable_verification_status" + "contract_address", + "client_id", + "organisation_id" ], "properties": { - "transaction_type": { - "type": "string", - "description": "Transaction type", - "enum": [ - "ERC721_APPROVE" - ] - }, - "collection_name": { - "type": "string", - "description": "NFT Collection name" - }, - "collection_image": { - "type": "string", - "description": "NFT Collection image" - }, - "asset_image": { - "type": "string", - "description": "NFT Asset name" - }, - "asset_name": { - "type": "string", - "description": "NFT Asset image" - }, - "is_smart_contract": { - "type": "boolean", - "description": "Indicate if it is a Smart Contract or EOA" - }, - "is_contract_verified": { - "type": "boolean", - "description": "Is Contract Verified" - }, - "contract_name": { + "contract_address": { "type": "string", - "description": "Smart Contract Name" + "description": "The smart contract address to track session activity for", + "pattern": "^0x[0-9a-fA-F]{40}$", + "maxLength": 42, + "example": "0x1234567890abcdef1234567890abcdef12345678" }, - "token_id": { + "client_id": { "type": "string", - "description": "ID of the ERC721", - "example": "1" + "description": "The client ID associated with the session activity contract", + "pattern": "^[a-zA-Z0-9]{32}$", + "minLength": 32, + "maxLength": 32, + "example": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE" }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "organisation_id": { + "type": "string", + "format": "uuid", + "description": "The organisation ID that owns this session activity contract (UUID format)", + "example": "550e8400-e29b-41d4-a716-446655440000" } + }, + "additionalProperties": false, + "example": { + "contract_address": "0x1234567890abcdef1234567890abcdef12345678", + "client_id": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE", + "organisation_id": "550e8400-e29b-41d4-a716-446655440000" } }, - "ERC20TransferMetadata": { + "CreatePreOnboardingCheckInSessionActivityContractRes": { "type": "object", "required": [ - "transaction_type", - "to_address", - "amount", - "decimals", - "symbol", - "immutable_verification_status", - "image_url" + "id", + "contract_address", + "client_id", + "organisation_id", + "created_at" ], "properties": { - "transaction_type": { - "type": "string", - "description": "Transaction type", - "enum": [ - "ERC20_TRANSFER" - ] + "id": { + "type": "integer", + "description": "The unique identifier of the created session activity contract", + "example": 1 }, - "to_address": { + "contract_address": { "type": "string", - "description": "The address to transfer the token to", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "description": "The smart contract address", + "pattern": "^0x[0-9a-fA-F]{40}$", + "minLength": 42, + "maxLength": 42, + "example": "0x1234567890abcdef1234567890abcdef12345678" }, - "amount": { + "client_id": { "type": "string", - "description": "A string representing the amount of tokens to transfer", - "example": "10000000000000000" - }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - }, - "decimals": { - "type": "integer", - "description": "The token decimals", - "example": 18 + "description": "The client ID associated with the session activity contract", + "pattern": "^[a-zA-Z0-9]{32}$", + "minLength": 32, + "maxLength": 32, + "example": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE" }, - "symbol": { + "organisation_id": { "type": "string", - "description": "The symbol of the token being transferred", - "example": "AAA" + "format": "uuid", + "description": "The organisation ID that owns this session activity contract (UUID format)", + "example": "550e8400-e29b-41d4-a716-446655440000" }, - "image_url": { + "created_at": { "type": "string", - "description": "The image of the token being transferred", - "example": "https://some-url" + "format": "date-time", + "description": "The timestamp when the session activity contract was created", + "example": "2023-12-07T10:30:00Z" } + }, + "example": { + "id": 1, + "contract_address": "0x1234567890abcdef1234567890abcdef12345678", + "client_id": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE", + "organisation_id": "550e8400-e29b-41d4-a716-446655440000", + "created_at": "2023-12-07T10:30:00Z" } }, - "ERC20TransferFromMetadata": { + "GetPreOnboardingCheckInSessionActivityContractsRes": { "type": "object", "required": [ - "transaction_type", - "immutable_verification_status", - "from_address", - "to_address", - "amount", - "decimals", - "symbol", - "image_url" + "session_activity_contracts" ], "properties": { - "transaction_type": { + "session_activity_contracts": { + "type": "array", + "description": "List of session activity contracts", + "items": { + "$ref": "#/components/schemas/PreOnboardingCheckInSessionActivityContract" + } + } + }, + "example": { + "session_activity_contracts": [ + { + "id": 1, + "contract_address": "0x1234567890abcdef1234567890abcdef12345678", + "client_id": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE", + "organisation_id": "550e8400-e29b-41d4-a716-446655440000", + "created_at": "2023-12-07T10:30:00Z" + }, + { + "id": 2, + "contract_address": "0xabcdef1234567890abcdef1234567890abcdef12", + "client_id": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE", + "organisation_id": "550e8400-e29b-41d4-a716-446655440000", + "created_at": "2023-12-07T11:00:00Z" + } + ] + } + }, + "PreOnboardingCheckInSessionActivityContract": { + "type": "object", + "required": [ + "id", + "contract_address", + "client_id", + "organisation_id", + "created_at" + ], + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the session activity contract", + "example": 1 + }, + "contract_address": { "type": "string", - "description": "Transaction type", - "enum": [ - "ERC20_TRANSFER_FROM" - ] + "description": "The smart contract address", + "pattern": "^0x[0-9a-fA-F]{40}$", + "minLength": 42, + "maxLength": 42, + "example": "0x1234567890abcdef1234567890abcdef12345678" }, - "from_address": { + "client_id": { "type": "string", - "description": "The address to transfer the token from", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "description": "The client ID associated with the session activity contract", + "pattern": "^[a-zA-Z0-9]{32}$", + "minLength": 32, + "maxLength": 32, + "example": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE" }, - "to_address": { + "organisation_id": { "type": "string", - "description": "The address to transfer the token to", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "format": "uuid", + "description": "The organisation ID that owns this session activity contract (UUID format)", + "example": "550e8400-e29b-41d4-a716-446655440000" }, - "amount": { + "created_at": { "type": "string", - "description": "A string representing the amount of tokens to transfer", - "example": "10000000000000000" + "format": "date-time", + "description": "The timestamp when the session activity contract was created", + "example": "2023-12-07T10:30:00Z" + } + } + }, + "DomainType": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "version": { + "type": "string" }, - "decimals": { - "type": "integer", - "description": "The token decimals", - "example": 18 + "chainId": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] }, - "symbol": { - "type": "string", - "description": "The symbol of the token being transferred", - "example": "AAA" + "verifyingContract": { + "type": "string" }, - "image_url": { - "type": "string", - "description": "The image of the token being transferred", - "example": "https://some-url" + "salt": { + "type": "string" } } }, - "ERC20ApproveMetadata": { + "EIP712Message": { "type": "object", - "required": [ - "transaction_type", - "amount", - "token_symbol", - "spender", - "is_smart_contract", - "is_contract_verified", - "immutable_verification_status", - "contract_name", - "image_url" - ], "properties": { - "transaction_type": { - "type": "string", - "description": "Transaction type", - "enum": [ - "ERC20_APPROVE" + "types": { + "type": "object", + "properties": { + "EIP712Domain": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ] + } + } + }, + "additionalProperties": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ] + } + }, + "required": [ + "EIP712Domain" ] }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "primaryType": { + "type": "string" }, - "amount": { - "type": "string", - "description": "Requested approval amount" + "domain": { + "$ref": "#/components/schemas/DomainType" }, - "token_symbol": { - "type": "string", - "description": "Requested token symbol" + "message": { + "type": "object" + } + }, + "required": [ + "types", + "primaryType", + "domain", + "message" + ] + }, + "ProgramName": { + "type": "string", + "description": "Program ID", + "maxLength": 36 + }, + "EpochID": { + "type": "string", + "description": "Latest Epoch", + "enum": [ + "current" + ] + }, + "EthereumAddress": { + "type": "string", + "description": "Ethereum address", + "pattern": "^0x[a-fA-F0-9]{40}$", + "minLength": 42, + "maxLength": 42 + }, + "GetEpochResponseBody": { + "required": [ + "result" + ], + "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/GetEpochResponseBodyResult" + } + } + }, + "GetEpochResponseBodyResult": { + "required": [ + "epoch", + "started_at", + "ended_at", + "contract_address", + "rewards_lifetime" + ], + "type": "object", + "properties": { + "epoch": { + "type": "integer", + "format": "int32", + "description": "Epoch number" }, - "spender": { + "started_at": { "type": "string", - "description": "Spender address" + "format": "date-time", + "description": "Epoch start date" }, - "is_smart_contract": { - "type": "boolean", - "description": "Indicate if it is a Smart Contract or EOA" + "ended_at": { + "type": "string", + "format": "date-time", + "description": "Epoch end date" }, - "is_contract_verified": { - "type": "boolean", - "description": "Is Contract Verified" + "rewards_rate_last_cycle": { + "type": "number", + "description": "Rewards rate last cycle", + "format": "float" }, - "contract_name": { + "finalised_at_last_cycle": { "type": "string", - "description": "Smart Contract Name" + "format": "date-time", + "description": "Finalised at for the previous epoch" }, - "image_url": { + "contract_address": { + "$ref": "#/components/schemas/EthereumAddress" + }, + "rewards_lifetime": { "type": "string", - "example": "https://example.com/erc20.jpg" + "description": "Total amount of rewards earned globally", + "pattern": "^\\d+$" + }, + "average_rewards_rate": { + "type": "number", + "description": "Average rewards rate historically", + "format": "float" } } }, - "NFTSetApprovalForAllMetadata": { + "GetWalletStakingInfoResponseBody": { + "required": [ + "result" + ], "type": "object", + "properties": { + "result": { + "$ref": "#/components/schemas/GetWalletStakingInfoResponseBodyResult" + } + } + }, + "GetWalletStakingInfoResponseBodyResult": { "required": [ - "transaction_type", - "collection_name", - "collection_image", - "is_smart_contract", - "is_contract_verified", - "contract_name", - "immutable_verification_status" + "rewards_lifetime", + "did_trade_this_cycle" ], + "type": "object", "properties": { - "transaction_type": { - "type": "string", - "description": "Transaction type", - "enum": [ - "ERC721_SET_APPROVAL_FOR_ALL", - "ERC1155_SET_APPROVAL_FOR_ALL" - ] - }, - "collection_name": { + "rewards_lifetime": { "type": "string", - "description": "NFT Collection name" + "description": "Total amount of rewards earned by this wallet", + "pattern": "^\\d+$" }, - "collection_image": { + "rewards_last_cycle": { "type": "string", - "description": "NFT Collection image" - }, - "is_smart_contract": { - "type": "boolean", - "description": "Indicate if it is a Smart Contract or EOA" + "description": "Amount of rewards earned last cycle by this wallet", + "pattern": "^\\d+$" }, - "is_contract_verified": { + "did_trade_this_cycle": { "type": "boolean", - "description": "Is Contract Verified" - }, - "contract_name": { - "type": "string", - "description": "Smart Contract Name" - }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "description": "Whether this wallet traded this cycle" } } }, - "ERC721TransferFromMetadata": { + "EthAddress": { + "description": "Ethereum address", + "type": "string", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" + }, + "CreatedAt": { + "description": "Created at", + "type": "string", + "format": "date-time", + "example": "2021-08-31T00:00:00Z" + }, + "UpdatedAt": { + "description": "Updated 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": [ - "transaction_type", - "from_address", - "to_address", - "collection_name", - "token_id", - "asset_name", - "asset_image", - "immutable_verification_status" + "address", + "type", + "created_at", + "updated_at", + "clientName" ], "properties": { - "transaction_type": { - "type": "string", - "description": "Transaction type", - "enum": [ - "ERC721_TRANSFER_FROM" - ] - }, - "from_address": { - "type": "string", - "description": "The address to transfer the token from", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "address": { + "$ref": "#/components/schemas/EthAddress" }, - "to_address": { - "type": "string", - "description": "The address to transfer the token to", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "type": { + "$ref": "#/components/schemas/WalletType" }, - "collection_name": { - "type": "string", - "description": "The collection name the ERC721 belongs to" + "created_at": { + "$ref": "#/components/schemas/CreatedAt" }, - "token_id": { - "type": "string", - "description": "ID of the ERC721", - "example": "1" + "updated_at": { + "$ref": "#/components/schemas/CreatedAt" }, - "asset_name": { - "type": "string", - "description": "The name of the ERC721", - "example": "Sword" + "name": { + "$ref": "#/components/schemas/Name" }, - "asset_image": { + "clientName": { "type": "string", - "description": "The image of the ERC721", - "example": "https://some-url" - }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "description": "Name of client that linked the wallet", + "example": "Passport Dashboard" } } }, - "ERC721SafeTransferFromBatchMetadata": { + "PhoneNumberOTPRequest": { + "description": "Phone number OTP request", "type": "object", "required": [ - "transaction_type", - "from_address", - "collection_name", - "items", - "immutable_verification_status" + "phone_number" ], "properties": { - "transaction_type": { - "type": "string", - "description": "Transaction type", - "enum": [ - "ERC721_SAFE_TRANSFER_FROM_BATCH" - ] - }, - "from_address": { - "type": "string", - "description": "The address to transfer the token from", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "phone_number": { + "$ref": "#/components/schemas/PhoneNumber" }, - "collection_name": { + "channel": { + "enum": [ + "sms", + "whatsapp" + ], "type": "string", - "description": "The collection name the ERC721 belongs to", - "example": "Guild of Guardians Heroes" - }, - "items": { - "type": "array", - "description": "The ERC721s to transfer and where to transfer them to", - "items": { - "$ref": "#/components/schemas/ERC721SafeTransferFromBatchItem" - } - }, - "immutable_verification_status": { - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + "example": "sms" } } }, - "ERC721SafeTransferFromBatchItem": { + "PhoneNumberOTPResponse": { + "description": "Phone number OTP request", "type": "object", "required": [ - "to_address", - "token_id", - "asset_name", - "asset_image" + "phone_number" ], "properties": { - "to_address": { - "type": "string", - "description": "The address to transfer the token to", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F" - }, - "token_id": { - "type": "string", - "description": "ID of the ERC721", - "example": "1" - }, - "asset_name": { - "type": "string", - "description": "The name of the ERC721", - "example": "Sword" + "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" }, - "asset_image": { - "type": "string", - "description": "The image of the ERC721", - "example": "https://some-url" + "code": { + "$ref": "#/components/schemas/PhoneNumberOTP" } } }, - "UnknownMetadata": { + "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": [ - "transaction_type", - "is_smart_contract", - "is_contract_verified", - "contract_name" + "type", + "wallet_address", + "signature", + "nonce" ], "properties": { - "transaction_type": { + "type": { "type": "string", - "description": "Transaction type", - "enum": [ - "UNKNOWN" - ] + "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" + ] + } }, - "is_smart_contract": { - "type": "boolean", - "description": "Indicate if it is a Smart Contract or EOA" + "wallet_address": { + "description": "The address of the external wallet being linked to Passport", + "type": "string", + "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", + "pattern": "^0x[a-fA-F0-9]{40}$" }, - "is_contract_verified": { - "type": "boolean", - "description": "Is Contract Verified" + "signature": { + "description": "The EIP-712 signature", + "type": "string" }, - "contract_name": { - "type": "string", - "description": "Smart Contract Name" + "nonce": { + "description": "A unique identifier for the signature", + "type": "string" } } }, - "UnknownTypedDataMetadata": { + "UserInfo": { "type": "object", "required": [ - "typed_data_type" + "sub", + "linked_addresses" ], "properties": { - "typed_data_type": { + "sub": { "type": "string", - "description": "Unknown typed data type", - "enum": [ - "UNKNOWN" - ] + "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 + } } } }, - "SeaportFulfillAvailableAdvancedOrdersMetadata": { + "FeedItemBase": { "type": "object", - "required": [ - "transaction_type", - "is_smart_contract", - "is_contract_verified", - "contract_name", - "buy", - "sell", - "fees" - ], "properties": { - "transaction_type": { + "id": { "type": "string", - "description": "Transaction type", - "enum": [ - "SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS" - ] + "description": "Feed item ID" }, - "is_smart_contract": { + "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": "Indicate if it is a Smart Contract or EOA" + "description": "If the quest is bypassed, the user will not be able to see it on the feed" }, - "is_contract_verified": { + "day_zero": { "type": "boolean", - "description": "Is Contract Verified" + "description": "If the quest is a day0 quest" }, - "contract_name": { + "game_id": { "type": "string", - "description": "Smart Contract Name" + "description": "Game ID", + "format": "uuid" }, - "orders": { + "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": { - "$ref": "#/components/schemas/SeaportAdvancedOrder" - } + "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" + ] }, - "SeaportAdvancedOrder": { - "type": "object", - "properties": { - "buy": { - "oneOf": [ - { - "$ref": "#/components/schemas/SeaportNativeItem" + "FeedItemVideo": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" + }, + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "video" + ] }, - { - "$ref": "#/components/schemas/SeaportERC20Item" + "title": { + "type": "string", + "description": "Title of the video" }, - { - "$ref": "#/components/schemas/SeaportERC1155Item" + "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" + ] }, - { - "$ref": "#/components/schemas/SeaportERC1155CollectionItem" + "image": { + "type": "string", + "description": "URL of the CTA image", + "format": "uri" }, - { - "$ref": "#/components/schemas/SeaportERC721Item" + "label": { + "type": "string", + "description": "Label of the CTA button" }, - { - "$ref": "#/components/schemas/SeaportERC721CollectionItem" - } - ], - "example": [ - { - "type": "NATIVE", - "amount": "10000000000000000", - "contract_address": "0x0165878A594ca255338adfa4d48449f69242Eb8F" + "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" }, - "sell": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SeaportERC1155Item" + { + "type": "object" + }, + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "quiz" + ] }, - { - "$ref": "#/components/schemas/SeaportERC721Item" + "header_video_url": { + "type": "string", + "description": "URL of the quiz header video", + "format": "uri" }, - { - "$ref": "#/components/schemas/SeaportNativeItem" + "logo": { + "type": "string", + "description": "URL of the quiz logo", + "format": "uri" }, - { - "$ref": "#/components/schemas/SeaportERC20Item" + "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" } - ] - }, - "fees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeaportFee" }, - "example": [], - "minItems": 0 + "required": [ + "type", + "question", + "answers", + "correct_answers" + ] } - }, - "required": [ - "buy", - "sell", - "fees" ] }, - "SeaportNativeItem": { - "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" - ] + "FeedItemCTA": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" }, - "amount": { - "type": "string", - "description": "A string representing the price at which the user is willing to sell the token", - "example": "10000000000000000" + { + "type": "object" }, - "decimals": { - "type": "integer", - "description": "The decimal of this item", - "example": 18 + { + "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" + ] } - }, - "required": [ - "type", - "amount", - "decimals" ] }, - "SeaportERC20Item": { - "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": { - "type": "string", - "description": "The symbol of token", - "example": "AAA", - "nullable": true - }, - "image_url": { - "type": "string", - "description": "The image url of token", - "example": "https://some-url", - "nullable": true - }, - "amount": { - "type": "string", - "description": "A string representing the price at which the user is willing to sell the token", - "example": "10000000000000000" + "FeedItemSignIn": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemCTA" }, - "decimals": { - "type": "integer", - "description": "The decimal of this erc20 item", - "example": 18 + { + "type": "object" }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + { + "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" + ] } - }, - "required": [ - "type", - "contract_address", - "amount", - "decimals", - "immutable_verification_status" ] }, - "SeaportERC721Item": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC721", - "example": "ERC721", - "enum": [ - "ERC721" - ] + "FeedItemReward": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemSignIn" }, - "contract_address": { - "type": "string", - "description": "Address of ERC721 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + { + "type": "object" }, - "contract_name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "reward" + ] + } + } + } + ] + }, + "FeedItemLanding": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" }, - "image_url": { - "type": "string", - "description": "The URL of the NFT", - "example": "https://example.com/nft.jpeg" + { + "type": "object" }, - "name": { - "type": "string", - "nullable": true, - "example": "Sword", - "description": "The name of the NFT" + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "landing" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "FeedItemPinToHome": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" }, - "token_id": { - "type": "string", - "description": "ID of ERC721 token", - "example": "1", - "pattern": "\\d+" + { + "type": "object" }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - } - }, - "example": [ { - "type": "ERC721", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "contract_name": "Guild of Guardians Heroes", - "name": "Bestowing Saint", - "token_id": "1", - "immutable_verification_status": "verified" + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "pintohome" + ] + } + }, + "required": [ + "type" + ] } - ], - "required": [ - "type", - "contract_address", - "token_id", - "immutable_verification_status" ] }, - "SeaportERC1155Item": { - "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}$" + "FeedItemDailyGems": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" }, - "contract_name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + { + "type": "object" }, - "image_url": { - "type": "string", - "description": "The URL of the asset", - "example": "https://example.com/nft.jpeg" + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "dailygems" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "FeedItemBonusGems": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" }, - "name": { - "type": "string", - "nullable": true, - "example": "Sword", - "description": "The name of the asset" + { + "type": "object" }, - "token_id": { - "type": "string", - "description": "ID of ERC1155 token", - "example": "1", - "pattern": "\\d+" + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "bonusgems" + ] + } + }, + "required": [ + "type" + ] + } + ] + }, + "FeedItemReferral": { + "allOf": [ + { + "$ref": "#/components/schemas/FeedItemBase" }, - "amount": { - "type": "string", - "description": "A string representing the total units of an ERC1155 token which the user is buying/selling", - "example": "100" + { + "type": "object" }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" + { + "properties": { + "type": { + "type": "string", + "description": "Feed item type", + "enum": [ + "referral" + ] + } + }, + "required": [ + "type" + ] } - }, - "example": [ + ] + }, + "FeedItemSocialQuest": { + "allOf": [ { - "type": "ERC1155", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "contract_name": "Guild of Guardians Heroes", - "name": "Bestowing Saint", - "token_id": "1", - "amount": "100", - "immutable_verification_status": "verified" + "$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" + ] } - ], - "required": [ - "type", - "contract_address", - "token_id", - "amount", - "immutable_verification_status" ] }, - "SeaportERC721CollectionItem": { + "FeedItemResponse": { "type": "object", "properties": { - "type": { + "status": { "type": "string", - "description": "Token type user is offering, which in this case is ERC721Collection", - "example": "ERC721Collection", - "enum": [ - "ERC721Collection" - ] + "description": "Feed item status, e.g., enabled, disabled, archived, deleted" }, - "contract_address": { - "type": "string", - "description": "Address of ERC721 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + "created_at": { + "$ref": "#/components/schemas/CreatedAt" }, - "contract_name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + "updated_at": { + "$ref": "#/components/schemas/UpdatedAt" + } + }, + "oneOf": [ + { + "$ref": "#/components/schemas/FeedItemVideo" }, - "image_url": { - "type": "string", - "description": "The URL of the collection image", - "example": "https://example.com/nft.jpeg" + { + "$ref": "#/components/schemas/FeedItemQuiz" }, - "amount": { - "type": "string", - "description": "A string representing the total units of an ERC721 token which the user is buying", - "example": "10" + { + "$ref": "#/components/schemas/FeedItemCTA" }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - } - }, - "example": [ { - "type": "ERC721Collection", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "amount": "10", - "immutable_verification_status": "verified" - } - ], - "required": [ - "type", - "contract_address", - "image_url", - "amount", - "immutable_verification_status" - ] - }, - "SeaportERC1155CollectionItem": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Token type user is offering, which in this case is ERC1155Collection", - "example": "ERC1155Collection", - "enum": [ - "ERC1155Collection" - ] + "$ref": "#/components/schemas/FeedItemSignIn" }, - "contract_address": { - "type": "string", - "description": "Address of ERC1155 token", - "example": "0x692edAd005237c7E737bB2c0F3D8ccCc10D3479E", - "pattern": "^0x[a-fA-F0-9]{40}$" + { + "$ref": "#/components/schemas/FeedItemReward" }, - "image_url": { - "type": "string", - "description": "The URL of the collection image", - "example": "https://example.com/nft.jpeg" + { + "$ref": "#/components/schemas/FeedItemLanding" }, - "contract_name": { - "type": "string", - "nullable": true, - "description": "The name of the collection", - "example": "0x8a90cab2b38dba80c64b7734e58ee1db38b8992e" + { + "$ref": "#/components/schemas/FeedItemPinToHome" }, - "amount": { - "type": "string", - "description": "A string representing the total units of an ERC1155 token which the user is buying", - "example": "100" + { + "$ref": "#/components/schemas/FeedItemDailyGems" }, - "immutable_verification_status": { - "type": "string", - "description": "The Immutable verification status of this collection", - "$ref": "#/components/schemas/ImmutableVerificationStatusEnum" - } - }, - "example": [ { - "type": "ERC1155", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "contract_name": "Guild of Guardians Heroes", - "amount": "100", - "immutable_verification_status": "verified" + "$ref": "#/components/schemas/FeedItemBonusGems" + }, + { + "$ref": "#/components/schemas/FeedItemReferral" + }, + { + "$ref": "#/components/schemas/FeedItemFollowGame" + }, + { + "$ref": "#/components/schemas/FeedItemSocialQuest" } - ], - "required": [ - "type", - "image_url", - "contract_address", - "amount", - "immutable_verification_status" ] }, - "SeaportFee": { + "FeedItemResult": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Token type of the Fee", - "example": "ERC20", - "enum": [ - "ERC20", - "NATIVE" - ] - }, - "amount": { - "type": "string", - "description": "Fee payable to recipient upon settlement", - "example": "10000000000000000" - }, - "recipient_address": { - "type": "string", - "description": "Wallet address of fee recipient", - "example": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", - "pattern": "^0x[a-fA-F0-9]{40}$" - }, - "contract_address": { - "type": "string", - "description": "Address of the ERC20 token for the fee", - "example": "0x0165878A594ca255338adfa4d48449f69242Eb8F", - "pattern": "^0x[a-fA-F0-9]{40}$" - }, - "symbol": { - "type": "string", - "description": "The symbol of token for the fee", - "example": "AAA", - "nullable": true - }, - "decimals": { - "type": "integer", - "description": "The decimal of this item", - "example": 18 + "result": { + "$ref": "#/components/schemas/FeedItemResponse" } }, - "example": { - "amount": "10000000000000000", - "recipient_address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92233", - "type": "NATIVE" - }, "required": [ - "amount", - "type", - "recipient_address", - "decimals" + "result" ] }, - "SeaportCreateListingMetadata": { + "FeedItemsResponsePage": { "type": "object", - "required": [ - "typed_data_type", - "buy", - "sell", - "fees" - ], "properties": { - "typed_data_type": { - "type": "string", - "description": "Typed data type", - "enum": [ - "SEAPORT_CREATE_LISTING_METADATA" - ] + "offset": { + "type": "integer", + "description": "Offset for pagination" }, - "buy": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SeaportNativeItem" - }, - { - "$ref": "#/components/schemas/SeaportERC20Item" - }, - { - "$ref": "#/components/schemas/SeaportERC721Item" - }, - { - "$ref": "#/components/schemas/SeaportERC721CollectionItem" - }, - { - "$ref": "#/components/schemas/SeaportERC1155Item" - }, - { - "$ref": "#/components/schemas/SeaportERC1155CollectionItem" - } - ], - "example": [ - { - "type": "ERC721", - "contract_address": "0x87c07c927eba711cbc55ec628a670acd48d0b525", - "contract_name": "Guild of Guardians Heroes", - "name": "Bestowing Saint", - "token_id": 1 - } - ] + "limit": { + "type": "integer" + }, + "total": { + "type": "integer", + "description": "Total number of items" + } + } + }, + "FeedItemsAssetsResponsePage": { + "type": "object", + "properties": { + "previous_cursor": { + "type": "string", + "nullable": true, + "description": "Previous page cursor" }, - "sell": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SeaportNativeItem" - }, - { - "$ref": "#/components/schemas/SeaportERC20Item" - }, - { - "$ref": "#/components/schemas/SeaportERC721Item" - }, - { - "$ref": "#/components/schemas/SeaportERC1155Item" - } - ] + "next_cursor": { + "type": "string", + "nullable": true, + "description": "Next page cursor" + } + }, + "required": [ + "previous_cursor", + "next_cursor" + ] + }, + "FeedItemsResponse": { + "description": "Feed item response page", + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/FeedItemsResponsePage" }, - "fees": { + "result": { "type": "array", "items": { - "$ref": "#/components/schemas/SeaportFee" - } + "$ref": "#/components/schemas/FeedItemResponse" + }, + "minItems": 0, + "maxItems": 100 } - } + }, + "required": [ + "page", + "result" + ] }, - "GetTransactionMetadataRes": { + "CreateUpdateFeedItemRequest": { "type": "object", "oneOf": [ { - "$ref": "#/components/schemas/ERC20ApproveMetadata" + "$ref": "#/components/schemas/FeedItemVideo" }, { - "$ref": "#/components/schemas/ERC20TransferMetadata" + "$ref": "#/components/schemas/FeedItemQuiz" }, { - "$ref": "#/components/schemas/ERC20TransferFromMetadata" + "$ref": "#/components/schemas/FeedItemCTA" }, { - "$ref": "#/components/schemas/ERC721ApproveMetadata" + "$ref": "#/components/schemas/FeedItemSignIn" }, { - "$ref": "#/components/schemas/NFTSetApprovalForAllMetadata" + "$ref": "#/components/schemas/FeedItemReward" }, { - "$ref": "#/components/schemas/ERC721TransferFromMetadata" + "$ref": "#/components/schemas/FeedItemLanding" }, { - "$ref": "#/components/schemas/ERC721SafeTransferFromBatchMetadata" + "$ref": "#/components/schemas/FeedItemPinToHome" }, { - "$ref": "#/components/schemas/SeaportFulfillAvailableAdvancedOrdersMetadata" + "$ref": "#/components/schemas/FeedItemDailyGems" }, { - "$ref": "#/components/schemas/UnknownMetadata" + "$ref": "#/components/schemas/FeedItemBonusGems" + }, + { + "$ref": "#/components/schemas/FeedItemReferral" + }, + { + "$ref": "#/components/schemas/FeedItemFollowGame" + }, + { + "$ref": "#/components/schemas/FeedItemSocialQuest" } - ] + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "video": "#/components/schemas/FeedItemVideo", + "quiz": "#/components/schemas/FeedItemQuiz", + "cta": "#/components/schemas/FeedItemCTA", + "signin": "#/components/schemas/FeedItemSignIn", + "reward": "#/components/schemas/FeedItemReward", + "landing": "#/components/schemas/FeedItemLanding", + "pintohome": "#/components/schemas/FeedItemPinToHome", + "dailygems": "#/components/schemas/FeedItemDailyGems", + "bonusgems": "#/components/schemas/FeedItemBonusGems", + "referral": "#/components/schemas/FeedItemReferral", + "followgame": "#/components/schemas/FeedItemFollowGame", + "socialquest": "#/components/schemas/FeedItemSocialQuest" + } + } }, - "GetTypedDataMetadataRes": { + "FeedItemsStatusRequest": { "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SeaportCreateListingMetadata" + "properties": { + "ids": { + "type": "array", + "description": "Feed item ids to have status updated", + "items": { + "type": "string" + } }, - { - "$ref": "#/components/schemas/UnknownTypedDataMetadata" + "action": { + "type": "string", + "description": "The action to be applied in feed item status", + "enum": [ + "publish", + "unpublish", + "archive", + "unarchive", + "delete" + ] } - ] + } }, - "GetTypedDataMetadataRequest": { + "FeedItemsStatusResponse": { "type": "object", - "required": [ - "payload" - ], "properties": { - "payload": { - "$ref": "#/components/schemas/EIP712Message" + "success": { + "type": "array", + "description": "Successfully updated feed items ids", + "items": { + "type": "string" + } + }, + "errors": { + "type": "array", + "description": "Failed to update status feed items ids", + "items": { + "type": "string" + } } } }, - "DomainType": { + "FeedItemAssetResponse": { + "description": "Feed item response page", "type": "object", "properties": { "name": { - "type": "string" - }, - "version": { - "type": "string" + "type": "string", + "description": "Asset name" }, - "chainId": { - "oneOf": [ - { - "type": "integer" - }, - { - "type": "string" - } - ] + "type": { + "type": "string", + "description": "Asset type" }, - "verifyingContract": { - "type": "string" + "last_modified": { + "description": "Last Modified", + "type": "string", + "format": "date-time", + "example": "2021-08-31T00:00:00Z" }, - "salt": { - "type": "string" + "size": { + "type": "integer", + "description": "Asset size" } } }, - "EIP712Message": { + "CreateFeedItemsAssetsRequest": { + "description": "Feed item asset response for creation", "type": "object", "properties": { - "types": { - "type": "object", - "properties": { - "EIP712Domain": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ] - } - } - }, - "additionalProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "name", - "type" - ] - } - }, - "required": [ - "EIP712Domain" - ] + "name": { + "type": "string" }, - "primaryType": { + "type": { "type": "string" }, - "domain": { - "$ref": "#/components/schemas/DomainType" + "base64Data": { + "type": "string" }, - "message": { - "type": "object" + "sizeBytes": { + "type": "integer" + } + } + }, + "FeedItemsAssetsResponse": { + "description": "Feed item response page", + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/FeedItemsAssetsResponsePage" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FeedItemAssetResponse" + }, + "minItems": 0, + "maxItems": 100 } }, "required": [ - "types", - "primaryType", - "domain", - "message" + "page", + "result" ] }, - "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", + "InternalAssetResponse": { + "description": "Internal asset response with CDN URL", "type": "object", - "required": [ - "address", - "type", - "created_at", - "updated_at", - "clientName" - ], "properties": { - "address": { - "$ref": "#/components/schemas/EthAddress" - }, - "type": { - "$ref": "#/components/schemas/WalletType" + "name": { + "type": "string", + "description": "Asset filename" }, - "created_at": { - "$ref": "#/components/schemas/CreatedAt" + "size": { + "type": "integer", + "description": "Asset size in bytes" }, - "updated_at": { - "$ref": "#/components/schemas/CreatedAt" + "last_modified": { + "type": "string", + "format": "date-time", + "description": "Last modified timestamp" }, - "name": { - "$ref": "#/components/schemas/Name" + "cdn_url": { + "type": "string", + "description": "CDN URL to access the asset" + } + }, + "required": [ + "name", + "size", + "last_modified", + "cdn_url" + ] + }, + "InternalAssetsPage": { + "type": "object", + "properties": { + "previous_cursor": { + "type": "string", + "nullable": true, + "description": "Previous page cursor" }, - "clientName": { + "next_cursor": { "type": "string", - "description": "Name of client that linked the wallet", - "example": "Passport Dashboard" + "nullable": true, + "description": "Next page cursor" } - } + }, + "required": [ + "previous_cursor", + "next_cursor" + ] }, - "LinkWalletV2Request": { - "description": "Link wallet V2 request", + "InternalAssetsResponse": { + "description": "Internal assets list response", "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/InternalAssetsPage" + }, + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InternalAssetResponse" + }, + "minItems": 0, + "maxItems": 100 + } + }, "required": [ - "type", - "wallet_address", - "signature", - "nonce" - ], + "page", + "result" + ] + }, + "InternalPresignUploadResponse": { + "description": "Presigned upload URL response for internal assets", + "type": "object", "properties": { - "type": { + "url": { "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" - ] - } + "description": "Presigned PUT URL for uploading the asset (valid for 15 minutes)" }, - "wallet_address": { - "description": "The address of the external wallet being linked to Passport", + "cdn_url": { "type": "string", - "example": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", - "pattern": "^0x[a-fA-F0-9]{40}$" - }, - "signature": { - "description": "The EIP-712 signature", - "type": "string" + "description": "CDN URL where the asset will be accessible after upload" }, - "nonce": { - "description": "A unique identifier for the signature", + "content_type": { + "type": "string", + "description": "Content-Type that must be used when uploading" + } + }, + "required": [ + "url", + "cdn_url", + "content_type" + ] + }, + "ProfileResponse": { + "description": "Get profile by wallet response", + "type": "object", + "properties": { + "username": { "type": "string" } - } + }, + "required": [ + "username" + ] }, - "UserInfo": { + "UsernameUpdateRequest": { + "description": "Request to update username", "type": "object", "required": [ - "sub", - "linked_addresses" + "username" ], "properties": { - "sub": { - "type": "string", - "description": "The user's id" - }, - "email": { - "type": "string", - "description": "The user's email address" - }, - "passport_address": { + "username": { "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 - } + "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" + ] + }, "Transaction": { "type": "object", "required": [ @@ -11810,7 +17584,7 @@ "type": "string" }, "status": { - "description": "Status of the starkex transactions", + "description": "Status of the transaction", "type": "string" }, "transaction_type": { @@ -11829,11 +17603,6 @@ "client_name": { "description": "Name of request client", "type": "string" - }, - "validation": { - "description": "Validation results", - "$ref": "#/components/schemas/ValidationResult", - "nullable": true } } }, @@ -11851,7 +17620,6 @@ "description": "chain type", "type": "string", "enum": [ - "starkex", "evm" ] }, @@ -11864,33 +17632,11 @@ "TransactionEvaluationRequest": { "type": "object", "oneOf": [ - { - "$ref": "#/components/schemas/StarkExTransactionEvaluationRequest" - }, { "$ref": "#/components/schemas/ZkEvmTransactionEvaluationRequest" } ] }, - "StarkExTransactionEvaluationRequest": { - "required": [ - "chainType" - ], - "type": "object", - "properties": { - "chainId": { - "type": "string", - "description": "The ID of the chain" - }, - "chainType": { - "type": "string", - "enum": [ - "starkex" - ], - "description": "The type of the chain" - } - } - }, "ZkEvmTransactionEvaluationRequest": { "required": [ "transactionData", @@ -12097,11 +17843,6 @@ "data": { "description": "evm message data", "$ref": "#/components/schemas/EIP712Message" - }, - "validation": { - "description": "Validation results", - "$ref": "#/components/schemas/ValidationResult", - "nullable": true } } }, @@ -12137,139 +17878,171 @@ } } }, - "ValidationResult": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/ValidationSuccessResults" - }, - { - "$ref": "#/components/schemas/ValidationErrorResults" - }, - { - "$ref": "#/components/schemas/ValidationSimulationFailedResults" - } - ], - "discriminator": { - "propertyName": "status", - "mapping": { - "error": "#/components/schemas/ValidationErrorResults", - "success": "#/components/schemas/ValidationSuccessResults", - "simulation_failed": "#/components/schemas/ValidationSimulationFailedResults" - } - } - }, - "ValidationSuccessResults": { + "SessionActivityContractsResponse": { "type": "object", "required": [ - "status", - "analysis", - "highestSeverity" + "session_activity_contracts" ], "properties": { - "status": { - "$ref": "#/components/schemas/ValidationStatus" - }, - "highestSeverity": { - "$ref": "#/components/schemas/HighestSeverity" - }, - "analysis": { + "session_activity_contracts": { "type": "array", + "description": "List of session activity contracts", "items": { - "$ref": "#/components/schemas/Analysis" - }, - "minItems": 0, - "description": "Contains a recommended action and warnings pertaining to the simulated transaction, such as interactions with known malicious addresses" + "$ref": "#/components/schemas/SessionActivityContractResponse" + } } + }, + "example": { + "session_activity_contracts": [ + { + "id": 1, + "contract_address": "0x1234567890abcdef1234567890abcdef12345678", + "client_id": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE", + "organisation_id": "550e8400-e29b-41d4-a716-446655440000", + "created_at": "2023-12-07T10:30:00Z" + }, + { + "id": 2, + "contract_address": "0xabcdef1234567890abcdef1234567890abcdef12", + "client_id": "ZabAMafQRA9bWE1XatAtBYNe6DRamgqE", + "organisation_id": "550e8400-e29b-41d4-a716-446655440000", + "created_at": "2023-12-07T11:00:00Z" + } + ] } }, - "ValidationSimulationFailedResults": { - "type": "object", - "required": [ - "status", - "error" - ], - "properties": { - "status": { - "$ref": "#/components/schemas/ValidationStatus" + "SessionActivityContractResponse": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionActivityContract" }, - "error": { - "description": "human-readable error message representing a failure to simulate the transaction", - "type": "string" - } - } - }, - "ValidationErrorResults": { - "type": "object", - "required": [ - "status", - "error" - ], - "properties": { - "status": { - "$ref": "#/components/schemas/ValidationStatus" + { + "type": "object" }, - "error": { - "description": "human-readable error message representing a failure with the simulated transaction, such as a reversion", - "type": "string" + { + "required": [ + "id", + "name", + "client_id", + "contract_address", + "chain_id", + "organisation_id", + "enabled", + "created_at" + ] } - } + ] }, - "Analysis": { - "description": "Contains a recommended action and warnings pertaining to the simulated transaction, such as interactions with known malicious addresses", - "type": "object", - "required": [ - "severity", - "description" - ], - "properties": { - "severity": { - "$ref": "#/components/schemas/Severity" + "UpsertSessionActivityContractReq": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionActivityContract" }, - "description": { - "description": "description of the analysis", - "type": "string" + { + "type": "object" }, - "address": { - "description": "address of related analysis", - "type": "string" + { + "required": [ + "name", + "contract_address", + "client_id", + "chain_id", + "organisation_id", + "enabled" + ] } - } + ] }, - "Severity": { - "type": "string", - "description": "Analysis severity level", - "enum": [ - "malicious", - "benign", - "warning", - "unknown", - "info" + "UpsertSessionActivityContractResp": { + "allOf": [ + { + "$ref": "#/components/schemas/SessionActivityContract" + }, + { + "type": "object" + } ] }, - "HighestSeverity": { + "SessionActivityContract": { "type": "object", - "required": [ - "severity", - "description" - ], - "description": "Top level severity analysis", "properties": { - "severity": { - "$ref": "#/components/schemas/Severity" + "id": { + "type": "integer", + "description": "The unique identifier of the session activity contract", + "example": 1 }, - "description": { - "type": "string" + "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" } } }, - "ValidationStatus": { - "type": "string", - "description": "Status of the validation", - "enum": [ - "success", - "error", - "simulation_failed" + "APIError422": { + "allOf": [ + { + "$ref": "#/components/schemas/BasicAPIError" + }, + { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error Code", + "enum": [ + "UNPROCESSABLE_ENTITY_ERROR" + ], + "example": "UNPROCESSABLE_ENTITY_ERROR" + }, + "details": { + "type": "object", + "nullable": true, + "description": "Additional details to help resolve the error" + } + }, + "required": [ + "code", + "details" + ] + } ] }, "ERC191Message": { From 6c075a6e274f2e65071d58734f6b810445148494 Mon Sep 17 00:00:00 2001 From: Naveen <116692862+naveen-imtb@users.noreply.github.com> Date: Mon, 25 May 2026 14:22:04 +1000 Subject: [PATCH 2/2] chore(generated-clients): remove StarkExTransactionEvaluationRequest from MR generated client --- .../src/multi-rollup/models/index.ts | 1 - ...stark-ex-transaction-evaluation-request.ts | 43 ------------------- .../models/transaction-evaluation-request.ts | 7 +-- 3 files changed, 1 insertion(+), 50 deletions(-) delete mode 100644 packages/internal/generated-clients/src/multi-rollup/models/stark-ex-transaction-evaluation-request.ts diff --git a/packages/internal/generated-clients/src/multi-rollup/models/index.ts b/packages/internal/generated-clients/src/multi-rollup/models/index.ts index 9530d716f8..0c6d68b1fa 100644 --- a/packages/internal/generated-clients/src/multi-rollup/models/index.ts +++ b/packages/internal/generated-clients/src/multi-rollup/models/index.ts @@ -204,7 +204,6 @@ export * from './sign-crafting-result'; export * from './stack'; export * from './stack-bundle'; export * from './stack-quote-result'; -export * from './stark-ex-transaction-evaluation-request'; export * from './token'; export * from './token-contract-type'; export * from './trade'; diff --git a/packages/internal/generated-clients/src/multi-rollup/models/stark-ex-transaction-evaluation-request.ts b/packages/internal/generated-clients/src/multi-rollup/models/stark-ex-transaction-evaluation-request.ts deleted file mode 100644 index 3447694f2e..0000000000 --- a/packages/internal/generated-clients/src/multi-rollup/models/stark-ex-transaction-evaluation-request.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Immutable zkEVM API - * Immutable Multi Rollup API - * - * The version of the OpenAPI document: 1.0.0 - * Contact: support@immutable.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - - -/** - * - * @export - * @interface StarkExTransactionEvaluationRequest - */ -export interface StarkExTransactionEvaluationRequest { - /** - * The ID of the chain - * @type {string} - * @memberof StarkExTransactionEvaluationRequest - */ - 'chainId'?: string; - /** - * The type of the chain - * @type {string} - * @memberof StarkExTransactionEvaluationRequest - */ - 'chainType': StarkExTransactionEvaluationRequestChainTypeEnum; -} - -export const StarkExTransactionEvaluationRequestChainTypeEnum = { - Starkex: 'starkex' -} as const; - -export type StarkExTransactionEvaluationRequestChainTypeEnum = typeof StarkExTransactionEvaluationRequestChainTypeEnum[keyof typeof StarkExTransactionEvaluationRequestChainTypeEnum]; - - diff --git a/packages/internal/generated-clients/src/multi-rollup/models/transaction-evaluation-request.ts b/packages/internal/generated-clients/src/multi-rollup/models/transaction-evaluation-request.ts index ed129482f2..6c3380d60e 100644 --- a/packages/internal/generated-clients/src/multi-rollup/models/transaction-evaluation-request.ts +++ b/packages/internal/generated-clients/src/multi-rollup/models/transaction-evaluation-request.ts @@ -13,9 +13,6 @@ */ -// May contain unused imports in some cases -// @ts-ignore -import { StarkExTransactionEvaluationRequest } from './stark-ex-transaction-evaluation-request'; // May contain unused imports in some cases // @ts-ignore import { ZkEvmTransactionData } from './zk-evm-transaction-data'; @@ -27,6 +24,4 @@ import { ZkEvmTransactionEvaluationRequest } from './zk-evm-transaction-evaluati * @type TransactionEvaluationRequest * @export */ -export type TransactionEvaluationRequest = StarkExTransactionEvaluationRequest | ZkEvmTransactionEvaluationRequest; - - +export type TransactionEvaluationRequest = ZkEvmTransactionEvaluationRequest;