{
  "openapi": "3.0.0",
  "info": {
    "title": "Doma Protocol API",
    "version": "1.0",
    "description": "Doma Protocol API (Poll API + Orderbook API) for D3's on-chain domain tokenization protocol. Aggregated by API Evangelist from the per-operation OpenAPI fragments published in the Doma docs (docs.doma.xyz). Authenticate with an Api-Key header; rate limited to 10 req/s."
  },
  "servers": [
    {
      "url": "https://api.doma.xyz",
      "description": "Mainnet"
    },
    {
      "url": "https://api-testnet.doma.xyz",
      "description": "Testnet"
    }
  ],
  "security": [
    {
      "Api-Key": []
    }
  ],
  "paths": {
    "/v1/poll": {
      "get": {
        "description": "Returns blockchain events that have occurred since the last acknowledged event.",
        "operationId": "PollApiController_events",
        "parameters": [
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Cursor identifier to use for tracking the polling state. Can be used to manage multiple independent polling states.",
            "schema": {
              "maxLength": 255
            }
          },
          {
            "name": "eventTypes",
            "required": false,
            "in": "query",
            "description": "Filter events by type. Can be provided multiple times to filter by multiple types.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NAME_TOKENIZATION_REQUESTED",
                  "NAME_TOKENIZATION_REJECTED",
                  "NAME_TOKENIZED",
                  "NAME_UPDATED",
                  "NAME_RENEWED",
                  "NAME_CLAIMED",
                  "NAME_CLAIM_REQUESTED",
                  "NAME_CLAIM_REJECTED",
                  "NAME_CLAIM_APPROVED",
                  "NAME_DETOKENIZED",
                  "NAME_TOKEN_MINTED",
                  "NAME_TOKEN_TRANSFERRED",
                  "NAME_TOKEN_RENEWED",
                  "NAME_TOKEN_BURNED",
                  "NAME_TOKEN_APPROVED_FOR_ALL",
                  "NAME_TOKEN_TRANSFER_APPROVED",
                  "NAME_TOKEN_TRANSFER_APPROVAL_REVOKED",
                  "NAME_TOKEN_LOCK_STATUS_CHANGED",
                  "NAME_TOKEN_BRIDGED",
                  "PAYMENT_FULFILLED",
                  "NAME_TOKEN_BOUGHT_OUT",
                  "NAME_NAMESERVERS_UPDATE_REQUESTED",
                  "NAME_DS_KEYS_UPDATE_REQUESTED",
                  "NAME_DNS_RR_SET_UPDATE_REQUESTED",
                  "SYNTHETIC_TOKEN_MINTED",
                  "NAME_TOKEN_LISTED",
                  "NAME_TOKEN_OFFER_RECEIVED",
                  "NAME_TOKEN_LISTING_CANCELLED",
                  "NAME_TOKEN_OFFER_CANCELLED",
                  "NAME_TOKEN_PURCHASED",
                  "NAME_TOKENS_BULK_LISTED",
                  "COMMAND_CREATED",
                  "COMMAND_SUCCEEDED",
                  "COMMAND_FAILED",
                  "COMMAND_UPDATED"
                ]
              }
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Maximum number of events to return in a single response page.",
            "schema": {
              "minimum": 1
            }
          },
          {
            "name": "includeSynthetics",
            "required": false,
            "in": "query",
            "description": "Whether to include synthetic token events.",
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "name": "finalizedOnly",
            "required": false,
            "in": "query",
            "description": "Whether to return only finalized events.",
            "schema": {
              "default": true,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventsPaginatedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid query parameters."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'EVENTS' permission."
          }
        },
        "summary": "Poll for new Doma Protocol events",
        "tags": [
          "Events Poll API"
        ]
      }
    },
    "/v1/poll/ack/{lastEventId}": {
      "post": {
        "description": "Updates the last acknowledged event id for the client.",
        "operationId": "PollApiController_acknowledgeEvent",
        "parameters": [
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Cursor identifier to use for tracking the polling state. Can be used to manage multiple independent polling states.",
            "schema": {
              "maxLength": 255
            }
          },
          {
            "name": "lastEventId",
            "required": false,
            "in": "path",
            "description": "Last event id that was processed by the client.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "Bad Request. Invalid event id."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'EVENTS' permission."
          }
        },
        "summary": "Acknowledge received events",
        "tags": [
          "Events Poll API"
        ]
      }
    },
    "/v1/poll/reset/{eventId}": {
      "post": {
        "description": "Updates the last acknowledged event id for the client. Can be used to reset the polling state to re-consume events.",
        "operationId": "PollApiController_resetLastAcknowledgedEventId",
        "parameters": [
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "description": "Cursor identifier to use for tracking the polling state. Can be used to manage multiple independent polling states.",
            "schema": {
              "maxLength": 255
            }
          },
          {
            "name": "eventId",
            "required": false,
            "in": "path",
            "description": "Event id to reset the last acknowledged event id to.",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "400": {
            "description": "Bad Request. Invalid event id."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'EVENTS' permission."
          }
        },
        "summary": "Reset last acknowledged event",
        "tags": [
          "Events Poll API"
        ]
      }
    },
    "/v1/orderbook/list": {
      "post": {
        "description": "Create a fixed priced listing on a supported orderbook (OpenSea, Doma).",
        "operationId": "OrderbookApiController_createListing",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid query parameters."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Create Listing",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/offer": {
      "post": {
        "description": "Create an offer on a supported orderbook (OpenSea, Doma).",
        "operationId": "OrderbookApiController_createOffer",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid query parameters."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Create Offer",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/fee/{orderbook}/{chainId}/{contractAddress}": {
      "get": {
        "description": "Get marketplace fees for a specific orderbook and chain.",
        "operationId": "OrderbookApiController_getOrderbookFee",
        "parameters": [
          {
            "name": "orderbook",
            "required": true,
            "in": "path",
            "description": "The orderbook type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chainId",
            "required": true,
            "in": "path",
            "description": "The chain ID in CAIP-2 format",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contractAddress",
            "required": true,
            "in": "path",
            "description": "The contract address of the token being listed or offered.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOrderbookFeeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid path parameters."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Get orderbook fees",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/listing/{orderId}/{buyer}": {
      "get": {
        "description": "Get listing fulfillment data by order id and buyer address.",
        "operationId": "OrderbookApiController_getListingById",
        "parameters": [
          {
            "name": "orderId",
            "required": true,
            "in": "path",
            "description": "The Order ID of the listing.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "buyer",
            "required": true,
            "in": "path",
            "description": "Buyer address, in native chain format.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOrderByIdResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid query parameters."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Get Listing fulfillment data",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/offer/{orderId}/{fulfiller}": {
      "get": {
        "description": "Get offer fulfillment data by order id and fulfiller (token owner) address.",
        "operationId": "OrderbookApiController_getOfferById",
        "parameters": [
          {
            "name": "orderId",
            "required": true,
            "in": "path",
            "description": "The Order ID of the offer.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fulfiller",
            "required": true,
            "in": "path",
            "description": "Fulfiller address, in native chain format. This is the address that owns the name token.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOrderByIdResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid query parameters."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Get Offer fulfillment data",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/listing/cancel": {
      "post": {
        "description": "Cancel a listing on a supported orderbook (OpenSea, Doma).",
        "operationId": "OrderbookApiController_cancelListing",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelOrderRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid signature or order not found."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Cancel Listing",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/offer/cancel": {
      "post": {
        "description": "Cancel an offer on a supported orderbook (OpenSea, Doma).",
        "operationId": "OrderbookApiController_cancelOffer",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelOrderRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid signature or order not found."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Cancel Offer",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/currencies/{chainId}/{contractAddress}/{orderbook}": {
      "get": {
        "description": "Get all supported currency tokens for orderbook operations on a specific chain.",
        "operationId": "OrderbookApiController_getSupportedCurrencies",
        "parameters": [
          {
            "name": "chainId",
            "required": true,
            "in": "path",
            "description": "The chain ID in CAIP-2 format",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contractAddress",
            "required": true,
            "in": "path",
            "description": "The contract address of the token.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderbook",
            "required": true,
            "in": "path",
            "description": "The name of the orderbook.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrenciesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid chain ID format."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Get supported currencies",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/list/bulk": {
      "post": {
        "description": "Create multiple fixed priced listings on a supported orderbook (Doma and OpenSea).",
        "operationId": "OrderbookApiController_createBulkListing",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBulkOrderRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBulkOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid query parameters."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Create Bulk Listings",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/offer/bulk": {
      "post": {
        "description": "Create multiple fixed priced offers on a supported orderbook (Doma and OpenSea).",
        "operationId": "OrderbookApiController_createBulkOffer",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBulkOrderRequestBody"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBulkOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Invalid query parameters."
          },
          "401": {
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Create Bulk Offers",
        "tags": [
          "Orderbook API"
        ]
      }
    },
    "/v1/orderbook/list/bulk/{id}/items": {
      "get": {
        "description": "Get paginated items for a bulk listing by bulk listing ID.",
        "operationId": "OrderbookApiController_getBulkListingItems",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "description": "Bulk listing ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Bulk listing items retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedBulkListingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request. Bulk listing not found or invalid parameters."
          },
          "403": {
            "description": "Forbidden. API Key is missing 'ORDERBOOK' permission."
          }
        },
        "summary": "Get bulk listing items",
        "tags": [
          "Orderbook API"
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "Api-Key": {
        "type": "apiKey",
        "in": "header",
        "name": "Api-Key"
      }
    },
    "schemas": {
      "EventsPaginatedResponse": {
        "type": "object",
        "properties": {
          "events": {
            "description": "List of events.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventResponse"
            }
          },
          "lastId": {
            "type": "number",
            "description": "Last returned event id. Should be used with `/poll/ack` API to acknowledge events receive."
          },
          "hasMoreEvents": {
            "type": "boolean",
            "description": "If true, more events might be available. They could be retrieved by acknowledging the last event id, or by increasing the `limit`."
          }
        },
        "required": [
          "events"
        ]
      },
      "EventResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Unique event id."
          },
          "name": {
            "type": "string",
            "description": "Associated name. Returned only for name-specific events."
          },
          "eoi": {
            "type": "boolean",
            "description": "Whether this is an Expression of Interest (EOI) name."
          },
          "tokenId": {
            "type": "string",
            "description": "Associated name token id. Returned only for token-specific events."
          },
          "type": {
            "description": "Event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PublicEventType"
              }
            ]
          },
          "uniqueId": {
            "type": "string",
            "description": "Globally unique event id. Generated from a public on-chain data. Could be used to track same events across different systems."
          },
          "relayId": {
            "type": "string",
            "description": "Relay ID that was used to submit a transaction that triggered this event. Will only be present for events triggered by the Relay API."
          },
          "eventData": {
            "description": "Event-specific data.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/NameTokenMintedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenBurnedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenTransferredEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenApprovedForAllEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenLockStatusChangeEventResponse"
              },
              {
                "$ref": "#/components/schemas/PaymentFulfilledEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenTransferApprovedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenTransferApprovalRevokedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenRenewedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenizedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameUpdatedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameRenewedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameClaimedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameDetokenizedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenizationRequestedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenizationRejectedEventResponse"
              },
              {
                "$ref": "#/components/schemas/CommandCreatedEventResponse"
              },
              {
                "$ref": "#/components/schemas/CommandSucceededEventResponse"
              },
              {
                "$ref": "#/components/schemas/CommandFailedEventResponse"
              },
              {
                "$ref": "#/components/schemas/CommandUpdatedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameClaimRequestedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameClaimApprovedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameClaimRejectedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameNameServersUpdateRequestedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameDsKeysUpdateRequestedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameDNSRRSetUpdateRequestedResponse"
              },
              {
                "$ref": "#/components/schemas/SyntheticTokenMintedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenListedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenOfferReceivedEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenListingCancelledEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenOfferCancelledEventResponse"
              },
              {
                "$ref": "#/components/schemas/NameTokenPurchasedEventResponse"
              }
            ]
          }
        },
        "required": [
          "id",
          "eoi",
          "type",
          "eventData"
        ]
      },
      "PublicEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKENIZATION_REQUESTED",
          "NAME_TOKENIZATION_REJECTED",
          "NAME_TOKENIZED",
          "NAME_UPDATED",
          "NAME_RENEWED",
          "NAME_CLAIMED",
          "NAME_CLAIM_REQUESTED",
          "NAME_CLAIM_REJECTED",
          "NAME_CLAIM_APPROVED",
          "NAME_DETOKENIZED",
          "NAME_TOKEN_MINTED",
          "NAME_TOKEN_TRANSFERRED",
          "NAME_TOKEN_RENEWED",
          "NAME_TOKEN_BURNED",
          "NAME_TOKEN_APPROVED_FOR_ALL",
          "NAME_TOKEN_TRANSFER_APPROVED",
          "NAME_TOKEN_TRANSFER_APPROVAL_REVOKED",
          "NAME_TOKEN_LOCK_STATUS_CHANGED",
          "NAME_TOKEN_BRIDGED",
          "PAYMENT_FULFILLED",
          "NAME_TOKEN_BOUGHT_OUT",
          "NAME_NAMESERVERS_UPDATE_REQUESTED",
          "NAME_DS_KEYS_UPDATE_REQUESTED",
          "NAME_DNS_RR_SET_UPDATE_REQUESTED",
          "SYNTHETIC_TOKEN_MINTED",
          "NAME_TOKEN_LISTED",
          "NAME_TOKEN_OFFER_RECEIVED",
          "NAME_TOKEN_LISTING_CANCELLED",
          "NAME_TOKEN_OFFER_CANCELLED",
          "NAME_TOKEN_PURCHASED",
          "NAME_TOKENS_BULK_LISTED",
          "COMMAND_CREATED",
          "COMMAND_SUCCEEDED",
          "COMMAND_FAILED",
          "COMMAND_UPDATED"
        ],
        "description": "Event type."
      },
      "NameTokenMintedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "type": {
            "description": "Blockchain event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenMintEventType"
              }
            ]
          },
          "registrarIanaId": {
            "type": "number",
            "description": "Registrar IANA ID."
          },
          "owner": {
            "type": "string",
            "description": "Token owner."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date. ISO8601 format.",
            "format": "date-time"
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "tokenId",
          "type",
          "registrarIanaId",
          "owner",
          "name",
          "expiresAt"
        ]
      },
      "NameTokenMintEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_MINTED"
        ],
        "description": "Blockchain event type"
      },
      "NameTokenBurnedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenBurnedEventType"
              }
            ]
          },
          "owner": {
            "type": "string",
            "description": "Owner."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "tokenId",
          "type",
          "owner"
        ]
      },
      "NameTokenBurnedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_BURNED"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenTransferredEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenTransferredEventType"
              }
            ]
          },
          "from": {
            "type": "string",
            "description": "Sender."
          },
          "to": {
            "type": "string",
            "description": "Recipient."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "tokenId",
          "type",
          "from",
          "to"
        ]
      },
      "NameTokenTransferredEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_TRANSFERRED"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenApprovedForAllEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenApprovedForAllEventType"
              }
            ]
          },
          "owner": {
            "type": "string",
            "description": "Token owner."
          },
          "operator": {
            "type": "string",
            "description": "Approved operator address."
          },
          "approved": {
            "type": "boolean",
            "description": "Approval status."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "type",
          "owner",
          "operator",
          "approved"
        ]
      },
      "NameTokenApprovedForAllEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_APPROVED_FOR_ALL"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenLockStatusChangeEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenLockStatusChangedEventType"
              }
            ]
          },
          "isTransferLocked": {
            "type": "boolean",
            "description": "Whether the transfer is locked for a given token."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "tokenId",
          "type",
          "isTransferLocked"
        ]
      },
      "NameTokenLockStatusChangedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_LOCK_STATUS_CHANGED"
        ],
        "description": "Blockchain event type."
      },
      "PaymentFulfilledEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentFulfilledEventType"
              }
            ]
          },
          "paymentContract": {
            "type": "string",
            "description": "Payment contract address."
          },
          "buyer": {
            "type": "string",
            "description": "Buyer."
          },
          "amount": {
            "type": "string",
            "description": "Amount paid."
          },
          "tokenAddress": {
            "type": "string",
            "description": "Address of the token used for payment."
          },
          "paymentId": {
            "type": "string",
            "description": "Payment ID."
          },
          "immediateMint": {
            "type": "boolean",
            "description": "True if it should be minted immediately."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "type",
          "paymentContract",
          "buyer",
          "amount"
        ]
      },
      "PaymentFulfilledEventType": {
        "type": "string",
        "enum": [
          "PAYMENT_FULFILLED"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenTransferApprovedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenTransferApprovedEventType"
              }
            ]
          },
          "operator": {
            "type": "string",
            "description": "Approved operator address."
          },
          "approvalId": {
            "type": "number",
            "description": "Approval ID."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "tokenId",
          "type",
          "operator",
          "approvalId"
        ]
      },
      "NameTokenTransferApprovedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_TRANSFER_APPROVED"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenTransferApprovalRevokedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenTransferApprovalRevokedEventType"
              }
            ]
          },
          "operator": {
            "type": "string",
            "description": "Approved operator address."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "tokenId",
          "type",
          "operator"
        ]
      },
      "NameTokenTransferApprovalRevokedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_TRANSFER_APPROVAL_REVOKED"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenRenewedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenRenewalEventType"
              }
            ]
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date. ISO8601 format.",
            "format": "date-time"
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "tokenId",
          "type",
          "expiresAt"
        ]
      },
      "NameTokenRenewalEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_RENEWED"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenizedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenizedEventType"
              }
            ]
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date. ISO8601 format.",
            "format": "date-time"
          },
          "nameservers": {
            "description": "List of nameserver.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dsKeys": {
            "description": "List of DS Keys.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DsKeyResponseData"
            }
          },
          "claimedBy": {
            "type": "string",
            "description": "Current wallet address that claimed the name. CAIP-10 format."
          },
          "ownershipTokenAddress": {
            "type": "string",
            "description": "NFT contract address",
            "nullable": true
          },
          "tokenId": {
            "type": "object",
            "description": "Token ID",
            "nullable": true
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "type",
          "expiresAt",
          "nameservers",
          "dsKeys",
          "claimedBy",
          "ownershipTokenAddress",
          "tokenId"
        ]
      },
      "NameTokenizedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKENIZED"
        ],
        "description": "Blockchain event type."
      },
      "DsKeyResponseData": {
        "type": "object",
        "properties": {
          "keyTag": {
            "type": "number",
            "description": "DS Key Tag."
          },
          "algorithm": {
            "type": "number",
            "description": "DS Key Algorithm."
          },
          "digestType": {
            "type": "number",
            "description": "DS Key Digest Type."
          },
          "digest": {
            "type": "string",
            "description": "DS Key Digest."
          }
        },
        "required": [
          "keyTag",
          "algorithm",
          "digestType",
          "digest"
        ]
      },
      "NameUpdatedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameUpdatedEventType"
              }
            ]
          },
          "nameservers": {
            "description": "List of nameservers.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dsKeys": {
            "description": "List of DS Keys.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DsKeyResponseData"
            }
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "type",
          "nameservers",
          "dsKeys"
        ]
      },
      "NameUpdatedEventType": {
        "type": "string",
        "enum": [
          "NAME_UPDATED"
        ],
        "description": "Blockchain event type."
      },
      "NameRenewedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameRenewedEventType"
              }
            ]
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date. ISO8601 format.",
            "format": "date-time"
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "type",
          "expiresAt"
        ]
      },
      "NameRenewedEventType": {
        "type": "string",
        "enum": [
          "NAME_RENEWED"
        ],
        "description": "Blockchain event type."
      },
      "NameClaimedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "claimedBy": {
            "type": "string",
            "description": "Wallet address that was used for claim. CAIP-10 format."
          },
          "proofSource": {
            "description": "Indicates the source of contacts information. \"registrantHandle\" is used as a unique identifier within this source. Following values are possible: \n0 - NONE. No contacts provided. Only used for EOIs. \n1 - REGISTRAR. Registrar has approved claim, and holds the contact information. \"registrantHandle\" holds internal registrar-supplied identifier. \n2 - DOMA. Doma has approved claim, and holds the contact information. \"registrantHandle\" holds contacts identifier in Doma API, that should be used with /registrant/{handle} API to obtain encrypted contact information.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ProofSource"
              }
            ]
          },
          "registrantHandle": {
            "type": "string",
            "description": "Unique identifier that can be used to obtain contact information."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameClaimedEventType"
              }
            ]
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "claimedBy",
          "proofSource",
          "registrantHandle",
          "type"
        ]
      },
      "ProofSource": {
        "type": "number",
        "enum": [
          0,
          1,
          2
        ],
        "description": "Indicates the source of contacts information. \"registrantHandle\" is used as a unique identifier within this source. Following values are possible: \n0 - NONE. No contacts provided. Only used for EOIs. \n1 - REGISTRAR. Registrar has approved claim, and holds the contact information. \"registrantHandle\" holds internal registrar-supplied identifier. \n2 - DOMA. Doma has approved claim, and holds the contact information. \"registrantHandle\" holds contacts identifier in Doma API, that should be used with /registrant/{handle} API to obtain encrypted contact information."
      },
      "NameClaimedEventType": {
        "type": "string",
        "enum": [
          "NAME_CLAIMED"
        ],
        "description": "Blockchain event type."
      },
      "NameDetokenizedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameDetokenizedEventType"
              }
            ]
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "type"
        ]
      },
      "NameDetokenizedEventType": {
        "type": "string",
        "enum": [
          "NAME_DETOKENIZED"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenizationRequestedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenizationRequestedEventType"
              }
            ]
          },
          "ownershipTokenChainId": {
            "type": "string",
            "description": "CAIP-2 chain Id on which tokenization was requested"
          },
          "ownershipTokenOwnerAddress": {
            "type": "string",
            "description": "Owner address on a target chain."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "type",
          "ownershipTokenChainId",
          "ownershipTokenOwnerAddress"
        ]
      },
      "NameTokenizationRequestedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKENIZATION_REQUESTED"
        ],
        "description": "Blockchain event type."
      },
      "NameTokenizationRejectedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenizationRejectedEventType"
              }
            ]
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "type"
        ]
      },
      "NameTokenizationRejectedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKENIZATION_REJECTED"
        ],
        "description": "Blockchain event type."
      },
      "CommandCreatedEventResponse": {
        "type": "object",
        "properties": {
          "relayId": {
            "type": "string",
            "description": "Associated relay id, that was used to crate this command."
          },
          "transactions": {
            "description": "List of transactions associated with the command event.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommandTransaction"
            }
          },
          "failureData": {
            "description": "Failure data for a failed command. Only present for failed commands. Contains information about the error that caused the command to fail.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CommandFailureData"
              }
            ]
          },
          "type": {
            "description": "Command event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/CommandCreatedEventType"
              }
            ]
          }
        },
        "required": [
          "relayId",
          "transactions",
          "failureData",
          "type"
        ]
      },
      "CommandTransaction": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the blockchain transaction command.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BlockchainTransactionCommandType"
              }
            ]
          },
          "status": {
            "description": "The current status of the blockchain transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BlockchainTransactionStatus"
              }
            ]
          },
          "chainId": {
            "type": "string",
            "description": "The identifier of the blockchain network where the transaction is executed."
          },
          "hash": {
            "type": "object",
            "description": "The hash of the blockchain transaction."
          },
          "signer": {
            "type": "object",
            "description": "The signer of the transaction, or null if no signer is present."
          },
          "gasPrice": {
            "type": "object",
            "description": "The gas price of the transaction, or null if not available."
          },
          "gasCost": {
            "type": "object",
            "description": "The gas cost of the transaction, or null if not available."
          }
        },
        "required": [
          "type",
          "status",
          "chainId"
        ]
      },
      "BlockchainTransactionCommandType": {
        "type": "string",
        "enum": [
          "RELAY",
          "CLAIM",
          "UPDATE_METADATA",
          "SET_REVERSE_MAPPING",
          "SUBMIT_CROSS_CHAIN_MESSAGE",
          "LAUNCHPAD_UNLOCK_FAIL_LAUNCH",
          "BULK_BURN_INACTIVE_SYNTHETIC"
        ],
        "description": "The type of the blockchain transaction command."
      },
      "BlockchainTransactionStatus": {
        "type": "string",
        "enum": [
          "SIGNED",
          "PENDING",
          "SUCCEEDED",
          "FAILED",
          "FAILED_OUT_OF_GAS",
          "FAILED_TO_SUBMIT",
          "TIMED_OUT"
        ],
        "description": "The current status of the blockchain transaction."
      },
      "CommandFailureData": {
        "type": "object",
        "properties": {
          "chainId": {
            "type": "string",
            "description": "Chain ID of the blockchain transaction (CAIP-2 format)."
          },
          "address": {
            "type": "object",
            "description": "Address of the contract that failed.",
            "nullable": true
          },
          "methodName": {
            "type": "object",
            "description": "Name of the method that failed.",
            "nullable": true
          },
          "methodArgs": {
            "type": "object",
            "description": "Arguments of the method that failed.",
            "nullable": true
          },
          "error": {
            "description": "Error that caused the command to fail.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BlockchainTransactionError"
              }
            ]
          },
          "rawError": {
            "type": "string",
            "description": "Raw error that caused the command to fail."
          }
        },
        "required": [
          "chainId",
          "address",
          "methodName",
          "methodArgs",
          "error",
          "rawError"
        ]
      },
      "BlockchainTransactionError": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Error name."
          },
          "args": {
            "type": "string",
            "description": "Error arguments."
          },
          "signature": {
            "type": "string",
            "description": "Error signature."
          },
          "selector": {
            "type": "string",
            "description": "Error selector."
          }
        },
        "required": [
          "name",
          "args",
          "signature",
          "selector"
        ]
      },
      "CommandCreatedEventType": {
        "type": "string",
        "enum": [
          "COMMAND_CREATED"
        ],
        "description": "Command event type"
      },
      "CommandSucceededEventResponse": {
        "type": "object",
        "properties": {
          "relayId": {
            "type": "string",
            "description": "Associated relay id, that was used to crate this command."
          },
          "transactions": {
            "description": "List of transactions associated with the command event.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommandTransaction"
            }
          },
          "failureData": {
            "description": "Failure data for a failed command. Only present for failed commands. Contains information about the error that caused the command to fail.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CommandFailureData"
              }
            ]
          },
          "type": {
            "description": "Command event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/CommandSucceededEventType"
              }
            ]
          }
        },
        "required": [
          "relayId",
          "transactions",
          "failureData",
          "type"
        ]
      },
      "CommandSucceededEventType": {
        "type": "string",
        "enum": [
          "COMMAND_SUCCEEDED"
        ],
        "description": "Command event type"
      },
      "CommandFailedEventResponse": {
        "type": "object",
        "properties": {
          "relayId": {
            "type": "string",
            "description": "Associated relay id, that was used to crate this command."
          },
          "transactions": {
            "description": "List of transactions associated with the command event.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommandTransaction"
            }
          },
          "failureData": {
            "description": "Failure data for a failed command. Only present for failed commands. Contains information about the error that caused the command to fail.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CommandFailureData"
              }
            ]
          },
          "type": {
            "description": "Command event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/CommandFailedEventType"
              }
            ]
          }
        },
        "required": [
          "relayId",
          "transactions",
          "failureData",
          "type"
        ]
      },
      "CommandFailedEventType": {
        "type": "string",
        "enum": [
          "COMMAND_FAILED"
        ],
        "description": "Command event type"
      },
      "CommandUpdatedEventResponse": {
        "type": "object",
        "properties": {
          "relayId": {
            "type": "string",
            "description": "Associated relay id, that was used to crate this command."
          },
          "transactions": {
            "description": "List of transactions associated with the command event.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommandTransaction"
            }
          },
          "failureData": {
            "description": "Failure data for a failed command. Only present for failed commands. Contains information about the error that caused the command to fail.",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CommandFailureData"
              }
            ]
          },
          "type": {
            "description": "Command event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/CommandUpdatedEventType"
              }
            ]
          }
        },
        "required": [
          "relayId",
          "transactions",
          "failureData",
          "type"
        ]
      },
      "CommandUpdatedEventType": {
        "type": "string",
        "enum": [
          "COMMAND_UPDATED"
        ],
        "description": "Command event type"
      },
      "NameClaimRequestedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "claimedBy": {
            "type": "string",
            "description": "Wallet address that was used for claim. CAIP-10 format."
          },
          "proofSource": {
            "description": "Indicates the source of contacts information. \"registrantHandle\" is used as a unique identifier within this source. Following values are possible: \n0 - NONE. No contacts provided. Only used for EOIs. \n1 - REGISTRAR. Registrar has approved claim, and holds the contact information. \"registrantHandle\" holds internal registrar-supplied identifier. \n2 - DOMA. Doma has approved claim, and holds the contact information. \"registrantHandle\" holds contacts identifier in Doma API, that should be used with /registrant/{handle} API to obtain encrypted contact information.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ProofSource"
              }
            ]
          },
          "registrantHandle": {
            "type": "string",
            "description": "Unique identifier that can be used to obtain contact information."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameClaimRequestedEventType"
              }
            ]
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "claimedBy",
          "proofSource",
          "registrantHandle",
          "type"
        ]
      },
      "NameClaimRequestedEventType": {
        "type": "string",
        "enum": [
          "NAME_CLAIM_REQUESTED"
        ],
        "description": "Blockchain event type."
      },
      "NameClaimApprovedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "claimedBy": {
            "type": "string",
            "description": "Wallet address that was used for claim. CAIP-10 format."
          },
          "proofSource": {
            "description": "Indicates the source of contacts information. \"registrantHandle\" is used as a unique identifier within this source. Following values are possible: \n0 - NONE. No contacts provided. Only used for EOIs. \n1 - REGISTRAR. Registrar has approved claim, and holds the contact information. \"registrantHandle\" holds internal registrar-supplied identifier. \n2 - DOMA. Doma has approved claim, and holds the contact information. \"registrantHandle\" holds contacts identifier in Doma API, that should be used with /registrant/{handle} API to obtain encrypted contact information.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ProofSource"
              }
            ]
          },
          "registrantHandle": {
            "type": "string",
            "description": "Unique identifier that can be used to obtain contact information."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameClaimApprovedEventType"
              }
            ]
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "claimedBy",
          "proofSource",
          "registrantHandle",
          "type"
        ]
      },
      "NameClaimApprovedEventType": {
        "type": "string",
        "enum": [
          "NAME_CLAIM_APPROVED"
        ],
        "description": "Blockchain event type."
      },
      "NameClaimRejectedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "domaRecordAddress": {
            "type": "string",
            "description": "Address of a Doma Record Smart Contract."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          },
          "claimedBy": {
            "type": "string",
            "description": "Wallet address that was used for claim. CAIP-10 format."
          },
          "proofSource": {
            "description": "Indicates the source of contacts information. \"registrantHandle\" is used as a unique identifier within this source. Following values are possible: \n0 - NONE. No contacts provided. Only used for EOIs. \n1 - REGISTRAR. Registrar has approved claim, and holds the contact information. \"registrantHandle\" holds internal registrar-supplied identifier. \n2 - DOMA. Doma has approved claim, and holds the contact information. \"registrantHandle\" holds contacts identifier in Doma API, that should be used with /registrant/{handle} API to obtain encrypted contact information.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ProofSource"
              }
            ]
          },
          "registrantHandle": {
            "type": "string",
            "description": "Unique identifier that can be used to obtain contact information."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameClaimRejectEventType"
              }
            ]
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "domaRecordAddress",
          "name",
          "claimedBy",
          "proofSource",
          "registrantHandle",
          "type"
        ]
      },
      "NameClaimRejectEventType": {
        "type": "string",
        "enum": [
          "NAME_CLAIM_REJECTED"
        ],
        "description": "Blockchain event type."
      },
      "NameNameServersUpdateRequestedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameNameserversUpdateRequestedEventType"
              }
            ]
          },
          "sld": {
            "type": "string",
            "description": "Second-level domain (SLD) of the name."
          },
          "tld": {
            "type": "string",
            "description": "Top-level domain (TLD) of the name."
          },
          "nameservers": {
            "description": "Nameservers to set for the name.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "type",
          "sld",
          "tld",
          "nameservers"
        ]
      },
      "NameNameserversUpdateRequestedEventType": {
        "type": "string",
        "enum": [
          "NAME_NAMESERVERS_UPDATE_REQUESTED"
        ],
        "description": "Blockchain event type."
      },
      "NameDsKeysUpdateRequestedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameDsKeysUpdateRequestedEventType"
              }
            ]
          },
          "sld": {
            "type": "string",
            "description": "Second-level domain (SLD) of the name."
          },
          "tld": {
            "type": "string",
            "description": "Top-level domain (TLD) of the name."
          },
          "dsKeys": {
            "description": "List of DS Keys.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DsKeyResponseData"
            }
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "type",
          "sld",
          "tld",
          "dsKeys"
        ]
      },
      "NameDsKeysUpdateRequestedEventType": {
        "type": "string",
        "enum": [
          "NAME_DS_KEYS_UPDATE_REQUESTED"
        ],
        "description": "Blockchain event type."
      },
      "NameDNSRRSetUpdateRequestedResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameDNSRRSetUpdateRequestedEventType"
              }
            ]
          },
          "sld": {
            "type": "string",
            "description": "Second-level domain (SLD) of the name."
          },
          "tld": {
            "type": "string",
            "description": "Top-level domain (TLD) of the name."
          },
          "host": {
            "type": "string",
            "description": "The host for the DNS record."
          },
          "recordType": {
            "type": "string",
            "description": "The type of the DNS record."
          },
          "ttl": {
            "type": "number",
            "description": "The time-to-live (TTL) value for the DNS record."
          },
          "records": {
            "description": "The list of DNS record values.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "useDomaNameservers": {
            "type": "boolean",
            "description": "Indicates whether to use Doma nameservers."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "type",
          "sld",
          "tld",
          "host",
          "recordType",
          "ttl",
          "records",
          "useDomaNameservers"
        ]
      },
      "NameDNSRRSetUpdateRequestedEventType": {
        "type": "string",
        "enum": [
          "NAME_DNS_RR_SET_UPDATE_REQUESTED"
        ],
        "description": "Blockchain event type."
      },
      "SyntheticTokenMintedEventResponse": {
        "type": "object",
        "properties": {
          "networkId": {
            "type": "string",
            "description": "CAIP2 Chain Id."
          },
          "finalized": {
            "type": "boolean",
            "description": "Whether this even is finalized on-chain."
          },
          "txHash": {
            "type": "string",
            "description": "Transaction hash."
          },
          "blockNumber": {
            "type": "string",
            "description": "Block height from which the event was indexed."
          },
          "logIndex": {
            "type": "number",
            "description": "Field specific for EVM chains. Index of a an even log in a block. Together with blockNumber and networkId it uniquely identifies an event."
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "type": {
            "description": "Blockchain event type.",
            "allOf": [
              {
                "$ref": "#/components/schemas/SyntheticTokenMintedEventType"
              }
            ]
          },
          "registrarIanaId": {
            "type": "number",
            "description": "Registrar IANA ID."
          },
          "owner": {
            "type": "string",
            "description": "Token owner address."
          },
          "ownership": {
            "type": "boolean",
            "description": "Whether the token has ownership."
          },
          "revocable": {
            "type": "boolean",
            "description": "Whether the token is revocable."
          },
          "name": {
            "type": "string",
            "description": "Associated name."
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date. ISO8601 format.",
            "format": "date-time"
          },
          "capabilities": {
            "type": "array",
            "description": "Array of capabilities granted to this synthetic token.",
            "items": {
              "$ref": "#/components/schemas/Capability"
            }
          },
          "host": {
            "type": "string",
            "description": "Host subdomain."
          },
          "groupId": {
            "type": "string",
            "description": "Group ID for related synthetic tokens."
          },
          "correlationId": {
            "type": "string",
            "description": "Correlation ID. Used to associate events with each other. Events that are part of the same operation will have the same correlation ID."
          }
        },
        "required": [
          "networkId",
          "finalized",
          "blockNumber",
          "tokenAddress",
          "tokenId",
          "type",
          "registrarIanaId",
          "owner",
          "ownership",
          "revocable",
          "name",
          "expiresAt",
          "capabilities",
          "host",
          "groupId"
        ]
      },
      "SyntheticTokenMintedEventType": {
        "type": "string",
        "enum": [
          "SYNTHETIC_TOKEN_MINTED"
        ],
        "description": "Blockchain event type."
      },
      "Capability": {
        "type": "string",
        "enum": [
          "REGISTRY_RECORDS_MANAGEMENT",
          "DNS_RECORDS_MANAGEMENT"
        ],
        "description": "Array of capabilities granted to this synthetic token."
      },
      "NameTokenListedEventResponse": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Marketplace event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenListedEventType"
              }
            ]
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "orderbook": {
            "description": "Orderbook type",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderbookType"
              }
            ]
          },
          "orderId": {
            "type": "string",
            "description": "Order ID"
          },
          "createdAt": {
            "type": "string",
            "description": "Event creation timestamp",
            "format": "date-time"
          },
          "startsAt": {
            "type": "string",
            "description": "Start date of the listing. ISO8601 format.",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date of the listing. ISO8601 format.",
            "format": "date-time"
          },
          "seller": {
            "type": "string",
            "description": "Seller address"
          },
          "buyer": {
            "type": "string",
            "description": "Buyer address if this is a private listing"
          },
          "payment": {
            "description": "Payment information",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInfoResponse"
              }
            ]
          }
        },
        "required": [
          "type",
          "orderbook",
          "createdAt",
          "startsAt",
          "expiresAt",
          "seller",
          "payment"
        ]
      },
      "NameTokenListedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_LISTED"
        ],
        "description": "Marketplace event type"
      },
      "OrderbookType": {
        "type": "string",
        "enum": [
          "DOMA",
          "OPENSEA"
        ],
        "description": "Orderbook type"
      },
      "PaymentInfoResponse": {
        "type": "object",
        "properties": {
          "price": {
            "type": "string",
            "description": "Price in the smallest unit of the currency"
          },
          "tokenAddress": {
            "type": "string",
            "description": "Token address used for payment"
          },
          "currencySymbol": {
            "type": "string",
            "description": "Currency symbol"
          }
        },
        "required": [
          "price",
          "tokenAddress",
          "currencySymbol"
        ]
      },
      "NameTokenOfferReceivedEventResponse": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Marketplace event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenOfferReceivedEventType"
              }
            ]
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "orderbook": {
            "description": "Orderbook type",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderbookType"
              }
            ]
          },
          "orderId": {
            "type": "string",
            "description": "Order ID"
          },
          "createdAt": {
            "type": "string",
            "description": "Event creation timestamp",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiration date of the offer. ISO8601 format.",
            "format": "date-time"
          },
          "buyer": {
            "type": "string",
            "description": "Buyer address"
          },
          "seller": {
            "type": "string",
            "description": "Seller address"
          },
          "payment": {
            "description": "Payment information",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInfoResponse"
              }
            ]
          }
        },
        "required": [
          "type",
          "orderbook",
          "createdAt",
          "expiresAt",
          "buyer",
          "seller",
          "payment"
        ]
      },
      "NameTokenOfferReceivedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_OFFER_RECEIVED"
        ],
        "description": "Marketplace event type"
      },
      "NameTokenListingCancelledEventResponse": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Marketplace event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenListingCancelledEventType"
              }
            ]
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "orderbook": {
            "description": "Orderbook type",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderbookType"
              }
            ]
          },
          "orderId": {
            "type": "string",
            "description": "Order ID"
          },
          "createdAt": {
            "type": "string",
            "description": "Event creation timestamp",
            "format": "date-time"
          },
          "seller": {
            "type": "string",
            "description": "Address that cancelled the listing"
          }
        },
        "required": [
          "type",
          "orderbook",
          "createdAt",
          "seller"
        ]
      },
      "NameTokenListingCancelledEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_LISTING_CANCELLED"
        ],
        "description": "Marketplace event type"
      },
      "NameTokenOfferCancelledEventResponse": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Marketplace event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenOfferCancelledEventType"
              }
            ]
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "orderbook": {
            "description": "Orderbook type",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderbookType"
              }
            ]
          },
          "orderId": {
            "type": "string",
            "description": "Order ID"
          },
          "createdAt": {
            "type": "string",
            "description": "Event creation timestamp",
            "format": "date-time"
          }
        },
        "required": [
          "type",
          "orderbook",
          "createdAt"
        ]
      },
      "NameTokenOfferCancelledEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_OFFER_CANCELLED"
        ],
        "description": "Marketplace event type"
      },
      "NameTokenPurchasedEventResponse": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Marketplace event type",
            "allOf": [
              {
                "$ref": "#/components/schemas/NameTokenPurchasedEventType"
              }
            ]
          },
          "tokenId": {
            "type": "string",
            "description": "Token ID"
          },
          "tokenAddress": {
            "type": "string",
            "description": "NFT contract address"
          },
          "orderbook": {
            "description": "Orderbook type",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderbookType"
              }
            ]
          },
          "orderId": {
            "type": "string",
            "description": "Order ID"
          },
          "createdAt": {
            "type": "string",
            "description": "Event creation timestamp",
            "format": "date-time"
          },
          "orderType": {
            "description": "Order type (listing vs offer)",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderType"
              }
            ]
          },
          "purchasedAt": {
            "type": "string",
            "description": "Purchase date. ISO8601 format.",
            "format": "date-time"
          },
          "seller": {
            "type": "string",
            "description": "Seller address"
          },
          "buyer": {
            "type": "string",
            "description": "Buyer address"
          },
          "payment": {
            "description": "Payment information",
            "allOf": [
              {
                "$ref": "#/components/schemas/PaymentInfoResponse"
              }
            ]
          },
          "txHash": {
            "type": "object",
            "description": "Transaction hash"
          }
        },
        "required": [
          "type",
          "orderbook",
          "createdAt",
          "orderType",
          "purchasedAt",
          "seller",
          "buyer",
          "payment"
        ]
      },
      "NameTokenPurchasedEventType": {
        "type": "string",
        "enum": [
          "NAME_TOKEN_PURCHASED"
        ],
        "description": "Marketplace event type"
      },
      "OrderType": {
        "type": "string",
        "enum": [
          "LISTING",
          "OFFER"
        ],
        "description": "Order type (listing vs offer)"
      },
      "CreateOrderRequestBody": {
        "type": "object",
        "properties": {
          "orderbook": {
            "type": "string",
            "description": "Orderbook identifier."
          },
          "chainId": {
            "type": "string",
            "description": "Chain ID in CAIP-2 format.",
            "pattern": "^[a-z0-9]+:[a-zA-Z0-9]+$"
          },
          "parameters": {
            "description": "Order parameters.",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderComponents"
              }
            ]
          },
          "signature": {
            "type": "string",
            "description": "Order signature."
          },
          "cancelExisting": {
            "type": "boolean",
            "description": "Cancel existing order if it exists."
          },
          "cancelSignatures": {
            "type": "object",
            "description": "Map of order IDs to cancellation signatures. Required for OpenSea orderbook when canceling existing orders.",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "orderbook",
          "chainId",
          "parameters",
          "signature",
          "cancelExisting"
        ]
      },
      "OrderComponents": {
        "type": "object",
        "properties": {
          "offerer": {
            "type": "string",
            "description": "Address of the offerer."
          },
          "zone": {
            "type": "string",
            "description": "Zone address."
          },
          "orderType": {
            "type": "number",
            "description": "Type of order.",
            "enum": [
              0,
              1,
              2,
              3
            ]
          },
          "startTime": {
            "type": "string",
            "description": "Start time of the order (Unix timestamp as string)."
          },
          "endTime": {
            "type": "string",
            "description": "End time of the order (Unix timestamp as string)."
          },
          "zoneHash": {
            "type": "string",
            "description": "Zone hash."
          },
          "salt": {
            "type": "string",
            "description": "Salt for the order."
          },
          "offer": {
            "description": "Array of offer items.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OfferItem"
            }
          },
          "consideration": {
            "description": "Array of consideration items. Considerations must include following fee items: Doma Marketplace fee, Name Token Royalties, OpenSea Fees (only for OpenSea Orderbook).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsiderationItem"
            }
          },
          "totalOriginalConsiderationItems": {
            "type": "number",
            "description": "Total number of original consideration items."
          },
          "conduitKey": {
            "type": "string",
            "description": "Conduit key."
          },
          "counter": {
            "type": "string",
            "description": "Counter for the order (as string)."
          }
        },
        "required": [
          "offerer",
          "zone",
          "orderType",
          "startTime",
          "endTime",
          "zoneHash",
          "salt",
          "offer",
          "consideration",
          "totalOriginalConsiderationItems",
          "conduitKey",
          "counter"
        ]
      },
      "OfferItem": {
        "type": "object",
        "properties": {
          "itemType": {
            "type": "number",
            "description": "The type of item being offered.",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ]
          },
          "token": {
            "type": "string",
            "description": "Token address of the item being offered."
          },
          "identifierOrCriteria": {
            "type": "string",
            "description": "Identifier or criteria for the item."
          },
          "startAmount": {
            "type": "string",
            "description": "Starting amount for the item."
          },
          "endAmount": {
            "type": "string",
            "description": "Ending amount for the item."
          }
        },
        "required": [
          "itemType",
          "token",
          "identifierOrCriteria",
          "startAmount",
          "endAmount"
        ]
      },
      "ConsiderationItem": {
        "type": "object",
        "properties": {
          "itemType": {
            "type": "number",
            "description": "The type of item being offered.",
            "enum": [
              0,
              1,
              2,
              3,
              4,
              5
            ]
          },
          "token": {
            "type": "string",
            "description": "Token address of the item being offered."
          },
          "identifierOrCriteria": {
            "type": "string",
            "description": "Identifier or criteria for the item."
          },
          "startAmount": {
            "type": "string",
            "description": "Starting amount for the item."
          },
          "endAmount": {
            "type": "string",
            "description": "Ending amount for the item."
          },
          "recipient": {
            "type": "string",
            "description": "Recipient address to receive the consideration item."
          }
        },
        "required": [
          "itemType",
          "token",
          "identifierOrCriteria",
          "startAmount",
          "endAmount",
          "recipient"
        ]
      },
      "CreateOrderResponse": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "The unique identifier for the created order."
          },
          "orderData": {
            "description": "Order data.",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderComponents"
              }
            ]
          },
          "signature": {
            "type": "string",
            "description": "Order signature."
          }
        },
        "required": [
          "orderId",
          "orderData",
          "signature"
        ]
      },
      "GetOrderbookFeeResponse": {
        "type": "object",
        "properties": {
          "marketplaceFees": {
            "description": "Array of marketplace fees.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderbookFee"
            }
          }
        },
        "required": [
          "marketplaceFees"
        ]
      },
      "OrderbookFee": {
        "type": "object",
        "properties": {
          "recipient": {
            "type": "string",
            "description": "Fee recipient address."
          },
          "basisPoints": {
            "type": "number",
            "description": "Fee amount in basis points (e.g., 250 = 2.5%)."
          },
          "feeType": {
            "type": "string",
            "description": "Fee type.",
            "enum": [
              "DOMA",
              "OPENSEA",
              "ROYALTY"
            ]
          }
        },
        "required": [
          "recipient",
          "basisPoints",
          "feeType"
        ]
      },
      "GetOrderByIdResponse": {
        "type": "object",
        "properties": {
          "order": {
            "description": "Order containing parameters and signature.",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderResponse"
              }
            ]
          },
          "extraData": {
            "type": "object",
            "description": "Extra data for seaport fulfilment."
          }
        },
        "required": [
          "order"
        ]
      },
      "OrderResponse": {
        "type": "object",
        "properties": {
          "parameters": {
            "description": "Order parameters.",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderComponents"
              }
            ]
          },
          "signature": {
            "type": "string",
            "description": "Order signature."
          }
        },
        "required": [
          "parameters",
          "signature"
        ]
      },
      "CancelOrderRequestBody": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "The Order ID to cancel."
          },
          "signature": {
            "type": "string",
            "description": "EIP-712 signature for cancel authorization."
          }
        },
        "required": [
          "orderId",
          "signature"
        ]
      },
      "CancelOrderResponse": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "The cancelled order ID."
          }
        },
        "required": [
          "orderId"
        ]
      },
      "CurrenciesResponse": {
        "type": "object",
        "properties": {
          "currencies": {
            "description": "List of supported currency tokens for orderbook operations.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyTokenResponse"
            }
          }
        },
        "required": [
          "currencies"
        ]
      },
      "CurrencyTokenResponse": {
        "type": "object",
        "properties": {
          "contractAddress": {
            "type": "object",
            "description": "Token contract address."
          },
          "name": {
            "type": "string",
            "description": "Token name."
          },
          "symbol": {
            "type": "string",
            "description": "Currency symbol."
          },
          "decimals": {
            "type": "number",
            "description": "Number of decimal places for the token."
          },
          "type": {
            "type": "string",
            "description": "Indicates what operations this currency supports.",
            "enum": [
              "LISTING_ONLY",
              "OFFER_ONLY",
              "ALL"
            ]
          },
          "nativeWrapper": {
            "type": "boolean",
            "description": "Indicates if this currency is a wrapper token (e.g., WETH)."
          },
          "usdExchangeRate": {
            "type": "number",
            "description": "USD exchange rate for the currency."
          }
        },
        "required": [
          "name",
          "symbol",
          "decimals",
          "type",
          "nativeWrapper",
          "usdExchangeRate"
        ]
      },
      "CreateBulkOrderRequestBody": {
        "type": "object",
        "properties": {
          "orderbook": {
            "type": "string",
            "description": "Orderbook identifier. Only DOMA is supported.",
            "enum": [
              "DOMA",
              "OPENSEA"
            ]
          },
          "chainId": {
            "type": "string",
            "description": "Chain ID in CAIP-2 format.",
            "pattern": "^[a-z0-9]+:[a-zA-Z0-9]+$"
          },
          "orders": {
            "description": "Array of orders to create. Maximum 50 orders allowed.",
            "maxItems": 50,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkListingOrder"
            }
          },
          "cancelExisting": {
            "type": "boolean",
            "description": "Cancel existing orders if they exist."
          },
          "cancelSignatures": {
            "type": "object",
            "description": "Map of order IDs to cancellation signatures. Required for OpenSea orderbook when canceling existing orders.",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "orderbook",
          "chainId",
          "orders",
          "cancelExisting"
        ]
      },
      "BulkListingOrder": {
        "type": "object",
        "properties": {
          "parameters": {
            "description": "Order parameters.",
            "allOf": [
              {
                "$ref": "#/components/schemas/OrderComponents"
              }
            ]
          },
          "signature": {
            "type": "string",
            "description": "Order signature."
          }
        },
        "required": [
          "parameters",
          "signature"
        ]
      },
      "CreateBulkOrderResponse": {
        "type": "object",
        "properties": {
          "orders": {
            "description": "Array of created listing responses.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateOrderResponse"
            }
          },
          "errors": {
            "description": "Array of error messages.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkOrderError"
            }
          }
        },
        "required": [
          "orders",
          "errors"
        ]
      },
      "BulkOrderError": {
        "type": "object",
        "properties": {
          "tokenId": {
            "type": "string",
            "description": "Token ID of name that failed"
          },
          "contract": {
            "type": "string",
            "description": "Contract address of name that failed"
          },
          "error": {
            "type": "string",
            "description": "Error message"
          }
        },
        "required": [
          "tokenId",
          "contract",
          "error"
        ]
      },
      "PaginatedBulkListingResponse": {
        "type": "object",
        "properties": {
          "items": {
            "description": "Response items",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "totalCount": {
            "type": "number",
            "description": "Total number of items"
          },
          "pageSize": {
            "type": "number",
            "description": "Number of items per page"
          },
          "currentPage": {
            "type": "number",
            "description": "Current page"
          },
          "totalPages": {
            "type": "number",
            "description": "Total of pages"
          },
          "hasPreviousPage": {
            "type": "boolean",
            "description": "Has previous page"
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "Has next page"
          }
        },
        "required": [
          "items",
          "totalCount",
          "pageSize",
          "currentPage",
          "totalPages",
          "hasPreviousPage",
          "hasNextPage"
        ]
      }
    }
  }
}