> ## Documentation Index > Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt > Use this file to discover all available pages before exploring further. # RTDS Comments Official RTDS TypeScript client (`real-time-data-client`). ## Overview The comments subscription provides real-time updates for comment-related events on the Polymarket platform. This includes new comments being created, as well as other comment interactions like reactions and replies. ## Subscription Details * **Topic**: `comments` * **Type**: `comment_created` (and potentially other comment event types like `reaction_created`) * **Authentication**: May require Gamma authentication for user-specific data * **Filters**: Optional (can filter by specific comment IDs, users, or events) ## Subscription Message ```json theme={null} { "action": "subscribe", "subscriptions": [ { "topic": "comments", "type": "comment_created" } ] } ``` ## Message Format When subscribed to comments, you'll receive messages with the following structure: ```json theme={null} { "topic": "comments", "type": "comment_created", "timestamp": 1753454975808, "payload": { "body": "do you know what the term encircle means? it means to surround from all sides, Russia has present on only 1 side, that's the opposite of an encirclement", "createdAt": "2025-07-25T14:49:35.801298Z", "id": "1763355", "parentCommentID": "1763325", "parentEntityID": 18396, "parentEntityType": "Event", "profile": { "baseAddress": "0xce533188d53a16ed580fd5121dedf166d3482677", "displayUsernamePublic": true, "name": "salted.caramel", "proxyWallet": "0x4ca749dcfa93c87e5ee23e2d21ff4422c7a4c1ee", "pseudonym": "Adored-Disparity" }, "reactionCount": 0, "replyAddress": "0x0bda5d16f76cd1d3485bcc7a44bc6fa7db004cdd", "reportCount": 0, "userAddress": "0xce533188d53a16ed580fd5121dedf166d3482677" } } ``` ## Message Types ### comment\_created Triggered when a user creates a new comment on an event or in reply to another comment. ### comment\_removed Triggered when a comment is removed or deleted. ### reaction\_created Triggered when a user adds a reaction to an existing comment. ### reaction\_removed Triggered when a reaction is removed from a comment. ## Payload Fields | Field | Type | Description | | ------------------ | ------ | ------------------------------------------------------------------------- | | `body` | string | The text content of the comment | | `createdAt` | string | ISO 8601 timestamp when the comment was created | | `id` | string | Unique identifier for this comment | | `parentCommentID` | string | ID of the parent comment if this is a reply (null for top-level comments) | | `parentEntityID` | number | ID of the parent entity (event, market, etc.) | | `parentEntityType` | string | Type of parent entity (e.g., "Event", "Market") | | `profile` | object | Profile information of the user who created the comment | | `reactionCount` | number | Current number of reactions on this comment | | `replyAddress` | string | Polygon address for replies (may be different from userAddress) | | `reportCount` | number | Current number of reports on this comment | | `userAddress` | string | Polygon address of the user who created the comment | ### Profile Object Fields | Field | Type | Description | | ----------------------- | ------- | ------------------------------------------------- | | `baseAddress` | string | User profile address | | `displayUsernamePublic` | boolean | Whether the username should be displayed publicly | | `name` | string | User's display name | | `proxyWallet` | string | Proxy wallet address used for transactions | | `pseudonym` | string | Generated pseudonym for the user | ## Parent Entity Types The following parent entity types are supported: * `Event` - Comments on prediction events * `Market` - Comments on specific markets * Additional entity types may be available ## Example Messages ### New Comment Created ```json theme={null} { "topic": "comments", "type": "comment_created", "timestamp": 1753454975808, "payload": { "body": "do you know what the term encircle means? it means to surround from all sides, Russia has present on only 1 side, that's the opposite of an encirclement", "createdAt": "2025-07-25T14:49:35.801298Z", "id": "1763355", "parentCommentID": "1763325", "parentEntityID": 18396, "parentEntityType": "Event", "profile": { "baseAddress": "0xce533188d53a16ed580fd5121dedf166d3482677", "displayUsernamePublic": true, "name": "salted.caramel", "proxyWallet": "0x4ca749dcfa93c87e5ee23e2d21ff4422c7a4c1ee", "pseudonym": "Adored-Disparity" }, "reactionCount": 0, "replyAddress": "0x0bda5d16f76cd1d3485bcc7a44bc6fa7db004cdd", "reportCount": 0, "userAddress": "0xce533188d53a16ed580fd5121dedf166d3482677" } } ``` ### Reply to Existing Comment ```json theme={null} { "topic": "comments", "type": "comment_created", "timestamp": 1753454985123, "payload": { "body": "That's a good point about the definition of encirclement.", "createdAt": "2025-07-25T14:49:45.120000Z", "id": "1763356", "parentCommentID": "1763355", "parentEntityID": 18396, "parentEntityType": "Event", "profile": { "baseAddress": "0x1234567890abcdef1234567890abcdef12345678", "displayUsernamePublic": true, "name": "trader", "proxyWallet": "0x9876543210fedcba9876543210fedcba98765432", "pseudonym": "Bright-Analysis" }, "reactionCount": 0, "replyAddress": "0x0bda5d16f76cd1d3485bcc7a44bc6fa7db004cdd", "reportCount": 0, "userAddress": "0x1234567890abcdef1234567890abcdef12345678" } } ``` ## Comment Hierarchy Comments support nested threading: * **Top-level comments**: `parentCommentID` is null or empty * **Reply comments**: `parentCommentID` contains the ID of the parent comment * All comments are associated with a `parentEntityID` and `parentEntityType` ## Use Cases * Real-time comment feed displays * Discussion thread monitoring * Community sentiment analysis ## Content * Comments include `reactionCount` and `reportCount` * Comment body contains the full text content ## Notes * The `createdAt` timestamp uses ISO 8601 format with timezone information * The outer `timestamp` field represents when the WebSocket message was sent * User profiles include both primary addresses and proxy wallet addresses