---
title: "GET /v2/social/assets/{chain_id}/{address}/history"
method: GET
path: "/v2/social/assets/{chain_id}/{address}/history"
tags: ["Social Community"]
---

# GET /v2/social/assets/{chain_id}/{address}/history

`GET /v2/social/assets/{chain_id}/{address}/history`

## Request

- Base URL: `https://api.arbital.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.arbital.xyz/v2/social/assets/{chain_id}/{address}/history`
- Auth: HTTP bearer

Returns one token's complete discussion history, newest first: native root comments (with deletion tombstones, blocks and moderation applied exactly as the comments list) merged with imported Fomo and Pump theses for this canonical asset. Results do not depend on Arbital Trending membership. Each item carries a stable id, its source and observation time; theses also carry the provider's original source_event_id. kind selects one source; source filters theses only. Cursors are opaque, exclusive and bound to kind and source. Optional period (5m/1h/4h/24h) anchors an exclusive upper cutoff for all pages and includes live roots AND replies by their own creation time, preserving ancestor visibility. Theses filter original publication time after latest-revision/retraction resolution. No-period behavior is unchanged. Period native totals count all viewer-visible stored posts and distinct authors. External totals count at most 100 examined stored publications; counts are null if scanning is incomplete and collection_complete is always false. History source totals count all stored publications, while recap applies additional text curation. Cursors also bind the token and period; period cursors expire after 24 hours.

## Path parameters

- `chain_id` 'solana:mainnet-beta' | 'eip155:1' | 'eip155:56' | 'eip155:143' | 'eip155:4663' | 'eip155:5042' | 'eip155:8453' | 'eip155:42161', required
- `address` string, required

## Query parameters

- `kind` 'all' | 'comment' | 'thesis'
- `source` 'fomo' | 'pump'
- `limit` integer
- `cursor` string
- `period` '5m' | '1h' | '4h' | '24h'

## Response `200`

A merged, newest-first page of native comments and imported theses for this token

- SocialAssetHistoryPage
  - `items` SocialAssetHistoryItem[], required
    - union: One discussion record for a token. kind and source identify the record's origin; the payload key matches kind.
      - SocialAssetHistoryComment
        - `asset` object, required: The exact canonical token this item belongs to.
          - `address` string, required
          - `chain_id` 'solana:mainnet-beta' | 'eip155:1' | 'eip155:56' | 'eip155:143' | 'eip155:4663' | 'eip155:5042' | 'eip155:8453' | 'eip155:42161', required
        - `comment` SocialAssetComment, required: Optional gif contains the saved external reference only for a visible, nondeleted native reply. It remains readable when GIF-reference writes are disabled and is omitted for deleted placeholders. It is distinct from approved uploaded media and is never returned with nonempty media.
          - `body` string, nullable, required: Null after parent deletion; empty for a media-only or external-GIF-only ordinary reply. Removing the last image preserves the empty body and deleted media slot.
          - `comment_id` string, uuid, required
          - `created_at` string, date-time, required
          - `deleted` boolean, required
          - `holding_display` string, nullable, required
          - `is_holder` true, required
          - `parent_comment_id` string, uuid, nullable, required: Exact direct parent comment in this token thread; null for a root comment.
          - `reply_count` integer, required: Nondeleted visible direct replies, excluding deeper descendants.
          - `thesis_event_id` string, uuid, nullable, required: Feed eventId of the imported thesis this comment directly replies to; null for ordinary comments and replies.
          - `user` SocialAssetCommentAuthor, required
            - `avatar_url` string, nullable, required: Approved profile image or stable CALLD default avatar URL.
            - `display_name` string, nullable, required
            - `user_id` string, uuid, required
            - `username` string, required
          - `viewer_can_delete` boolean, required: Whether the viewer owns this undeleted comment and may delete it.
          - `media` union: Ordered immutable slots, with unique IDs and zero-based ordinals matching array positions. Up to four still images, or exactly one GIF. Deletion preserves the slot and original ID. Replies, messages and recap comments omit this field when there are no slots; posts return an empty array.
            - union[]
              - …
            - SocialMediaGif[]
              - …
          - `gif` SocialExternalGifReference: A selected public KLIPY GIF reference, not an approved social-media upload. The backend validates syntax and stores only these identifiers; it does not call KLIPY or approve, cache or store its bytes. Resolve from the end-user client, verify both returned id and slug, apply receiver-side content restrictions and display provider attribution. Missing, filtered or mismatched items are unavailable. Never send an Arbital bearer token to the provider.
            - `provider` 'klipy', required
            - `id` string, required: Canonical positive decimal provider identifier. Keep as a string; never coerce to a JavaScript number. The absolute-end assertion rejects trailing newlines.
            - `slug` string, required: Exact provider lookup slug, including case. Do not derive a URL or accept arbitrary provider media URLs. The absolute-end assertion rejects trailing newlines.
          - `mentions` NativeReadMention[], required: Ordered historical entities with current viewer-scoped identity. Empty for legacy, imported or tombstoned content. A read failure is explicit, never a fabricated empty array.
            - `kind` 'early_user', required
            - `user_id` string, uuid, required
            - `offset` integer, required: Zero-based Unicode code-point offset, not UTF-16 units or graphemes.
            - `length` integer, required
            - `text` string, required: Immutable exact authored span, including @.
            - `availability` 'available' | 'unavailable', required
            - `current_profile` NativeMentionProfile, required
              - …
            - `profile_target` NativeMentionTarget, required
              - …
            - `notification_supported` true, required
        - `id` string, uuid, required: The comment_id.
        - `kind` 'comment', required
        - `observed_at_ms` string, required: Comment creation time in Unix milliseconds.
        - `posted_at_ms` string, required: Original comment creation time in Unix milliseconds; equals observed_at_ms for native comments.
        - `source` 'native', required
        - `source_event_id` unknown, required
      - SocialAssetHistoryThesis
        - `asset` object, required: The exact canonical token this item belongs to.
          - `address` string, required
          - `chain_id` 'solana:mainnet-beta' | 'eip155:1' | 'eip155:56' | 'eip155:143' | 'eip155:4663' | 'eip155:5042' | 'eip155:8453' | 'eip155:42161', required
        - `id` string, required: The durable social feed eventId.
        - `kind` 'thesis', required
        - `observed_at_ms` string, required: When Arbital observed the thesis at the provider, in Unix milliseconds.
        - `posted_at_ms` string, nullable, required: When the author published the thesis at the provider, in Unix milliseconds; null when the provider did not report it. Kept separate from observed_at_ms, which is when Arbital recorded it.
        - `source` 'fomo' | 'pump', required
        - `source_event_id` string, required: The provider's original event identifier.
        - `thesis` SocialActivityEventRevision, required
          - `event` union, required: The same normalized event delivered by Social Activity WebSocket v1. Trade prices describe the fill, independently of assetRef.priceUsd.
            - SocialActivityTradeEvent: Normalized observed trade, with request-time execution pricing on trade. Stored ingestion payloads remain unchanged.
              - …
            - object
              - …
          - `eventId` string, required
          - `providerObservation` SocialProviderObservation: Optional indexer-owned provider observations for external social thesis display. Null fields are missing, invalid, or unavailable; omission of the entire observation means unavailable or unsupported. Financial values are historical provider reports, never live holdings, verified P&L, portfolio/quote authority, or lifecycle results. No new provider acquisition or backend content storage is implied.
            - `kind` 'provider_reported', required
            - `provider` string, required
            - `observedAtMs` string, required: Indexer record last-seen time in Unix milliseconds. This does not establish freshness of economic values or of any individual field.
            - `fieldObservedAtMs` object, required: Original per-field observation clocks in Unix milliseconds, keyed by upstream snake_case field names (segments for structured content). Only populated fields with valid clocks no later than the record last-seen time are included. An absent clock means unknown field freshness; never substitute observedAtMs.
              - …
            - `authorName` string, nullable, required
            - `authorIsDev` boolean, nullable, required
            - `authorAvatarUrl` string, nullable, required
            - `tokenImageUrl` string, nullable, required
            - `segments` object[], nullable, required: Normalized provider segment objects, limited to 64 KiB of serialized JSON. Treat all values as untrusted text/data; never execute or render them as HTML.
              - …
            - `holdingsUsd` string, nullable, required
            - `authorTradeUsd` string, nullable, required
            - `tokenAmount` string, nullable, required
            - `pnlUsd` string, nullable, required
            - `realizedPnlUsd` string, nullable, required
            - `unrealizedPnlUsd` string, nullable, required
            - `percentageRealizedPnl` string, nullable, required
            - `percentageUnrealizedPnl` string, nullable, required
            - `closedAtMs` string, nullable, required
            - `authorWalletAddress` string, nullable, required: Provider-reported display text only. Does not establish author ownership, current wallet association, identity, or trading authority.
            - `authorXUsername` string, nullable, required
            - `authorIsVerified` boolean, nullable, required
            - `tokenName` string, nullable, required
          - `operation` 'upsert', required
          - `revision` integer, required
          - `sequence` string, required
  - `next_cursor` string, nullable, required: Opaque cursor for older items when any included source has more; null when the read exhausted every included source.
  - `period` SocialRecapPeriod
    - `key` '5m' | '1h' | '4h' | '24h', required
    - `from_ms` string, required
    - `to_ms` string, required
  - `totals` object
    - `native` SocialRecapNativeCount, required
      - `post_count` integer, required
      - `author_count` integer, required
      - `post_count_complete` true, required
      - `author_count_complete` true, required
      - `scope` 'viewer_visible_stored_posts', required
    - `fomo` SocialRecapStoredThesisCount, required
      - `post_count` integer, nullable, required
      - `author_count` integer, nullable, required
      - `post_count_complete` boolean, required
      - `author_count_complete` boolean, required
      - `scope` 'eligible_stored_publications' | 'stored_publications', required
      - `collection_complete` false, required
    - `pump` SocialRecapStoredThesisCount, required
      - `post_count` integer, nullable, required
      - `author_count` integer, nullable, required
      - `post_count_complete` boolean, required
      - `author_count_complete` boolean, required
      - `scope` 'eligible_stored_publications' | 'stored_publications', required
      - `collection_complete` false, required

## Other responses

- `400`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `401`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `429`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `503`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.

---

[API](https://skmtc.dev/arbital/apis/arbital-api.md) - [All operations](https://skmtc.dev/arbital/apis/arbital-api/llms.txt) - [OpenAPI document](https://skmtc.dev/arbital/apis/arbital-api/revisions/bb0185edf43a?raw)
