Prove backend — PR #33033

feat(share): serve a content-agnostic displayV2 layout beside display

Commit proved
69cc17baab
Service
share
Package
packages/services/share
Base branch
main
Port
localhost:3000
Run (UTC)
2026-08-21T01:05:00Z
Node
v26.7.0 (repo .nvmrc pins v22; no v22 on this machine — build, typecheck and 911 unit tests all pass on v26)
How it ran
yarn dev (nest --watch) against local CockroachDB + DragonflyDB

Scoreboard

27cases
27pass
0fail
0skipped

What this run does not prove

Cases

CaseRequestExpActVerdictLatency displayV2
.version
heading
.type
body regionoverlay regiongroupsfooter
.caption
New spot position (minimal required fields) POST /share 201201 PASS47ms 2subtitledidentity + hero + stats absent1absent
Existing spot, market caps + chart (all optionals) POST /share 201201 PASS7ms 2subtitledchart identity + hero + stats1absent
New perp, 10x long POST /share 201201 PASS5ms 2subtitledchart identity + hero + stats1absent
Existing perp, short at a loss (negative tone) POST /share 201201 PASS5ms 2subtitledchart identity + hero + stats1absent
New prediction (no chart, multi_series heading) POST /share 201201 PASS5ms 2stackedrows + identity + hero + stats absent1absent
Existing prediction at a loss POST /share 201201 PASS4ms 2stackedrows + identity + hero + stats absent1absent
Profile share (follow chrome, no hero) POST /share 201201 PASS4ms 2markedidentity absent1absent
Chat share (text headline, inline stats) POST /share 201201 PASS4ms 2subtitledidentity + identity + stats absent1absent
Exactly flat P&L (neutral tone, no glow bias) POST /share 201201 PASS6ms 2subtitledidentity + hero + stats absent1absent
Emoji + RTL symbol and name (unicode monogram) POST /share 201201 PASS5ms 2subtitledidentity + hero + stats absent1absent
HTML-ish name (must be served verbatim, not escaped or executed) POST /share 201201 PASS4ms 2subtitledidentity + hero + stats absent1absent
Prediction with 4 labelled series (rows block, 4th drops 3rd) POST /share 201201 PASS9ms 2stackedrows + identity + hero + stats absent1absent
Unknown extra field in payload (stripped on create; only PATCH is strict) corrected POST /share 201201 PASS11ms 2subtitledidentity + hero + stats absent1absent
Unknown market enum value POST /share 400400 PASS1ms
Wrong type: amount as a number, not a decimal string POST /share 400400 PASS1ms
Name at exactly the 128-char max (boundary, accepted) POST /share 201201 PASS4ms 2subtitledidentity + hero + stats absent1absent
Name at 129 chars, one past max (rejected) POST /share 400400 PASS1ms
entryPriceUsd past the 40-digit decimal max (rejected) POST /share 400400 PASS1ms
Sub-cent price, high precision (formatting must not render $0.00) POST /share 201201 PASS4ms 2subtitledidentity + hero + stats absent1absent
POST with no x-forwarded-user header POST /share 401401 PASS1ms
POST with a malformed (non-UUID) user header POST /share 401401 PASS1ms
GET an unknown shareId GET /share/ZZZZZZZZZZ 404404 PASS2ms
GET is public — no auth header, and cache headers vary on app version GET /share/ppQymgLD9O 200200 PASS4ms 2subtitledidentity + hero + stats absent1absent
App-version gating (26.27.3 vs 26.28.0) flows through to displayV2 rows POST /share 201201 PASS5ms 2stackedrows + identity + hero + stats absent1absent
Same request twice — distinct shareIds, identical displayV2 POST /share 201201 PASS5ms 2subtitledidentity + hero + stats absent1absent
Downstream social-chat URL points at a closed port — card still renders POST /share 201201 PASS3ms
PATCH someone else's record PATCH /share/1CIgEVgV5B 404404 PASS2ms

The six displayV2 columns are read back from GET /share/:shareId — the persisted record — not echoed from the create request. Region columns list the block types in render order, applying the documented default that an absent region means body. means the case produced no record (a rejected or unauthenticated request). Every case that ran is listed; none were truncated.

Top-level properties

Which properties each object actually carried, read back from GET /share/:shareId across the 17 cases that produced a persisted record. is present, with a hint of the value (array length, object key count, or the scalar); is absent. Hover a cell for the raw value. Absent is meaningful here — nearly every property is optional by design, and a client must render without it.

1 · display — the existing object, unchanged by this PR

CaseheaderTitleheadingtitleVerifiedbadgeiconheadlinebylineusernameavatarsharerVerifiedsparklinesstatscaptionbackdropdate
New spot position (minimal required fields)
Share Position

type,title,subtitle

caip19,fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.8…
Existing spot, market caps + chart (all optionals)
Share Position

type,title,subtitle

url,caip19,fallbackText

4 keys

value

ghosty

url,fallbackText

true

1

2

2026-08-21T00:51:09.8…
New perp, 10x long
Share Position

type,title,subtitle

text,colorHex

caip19,fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

1

1

2026-08-21T00:51:09.8…
Existing perp, short at a loss (negative tone)
Share Position

type,title,subtitle

text,colorHex

caip19,fallbackText

4 keys

value

ghosty

url,fallbackText

true

1

2

2026-08-21T00:51:09.8…
New prediction (no chart, multi_series heading)
Share Position

type,title,series

text

fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.8…
Existing prediction at a loss
Share Position

type,title,series

text

fallbackText

4 keys

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.8…
Profile share (follow chrome, no hero)
Share Profile

type,title

url,fallbackText

value,tone

ghosty

url,fallbackText

true

2026-08-21T00:51:09.8…
Chat share (text headline, inline stats)
Share Chat

type,title

fallbackText

value,tone

ghosty

url,fallbackText

true

1

2026-08-21T00:51:09.8…
Exactly flat P&L (neutral tone, no glow bias)
Share Position

type,title,subtitle

caip19,fallbackText

4 keys

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.8…
Emoji + RTL symbol and name (unicode monogram)
Share Position

type,title,subtitle

caip19,fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.8…
HTML-ish name (must be served verbatim, not escaped or executed)
Share Position

type,title,subtitle

caip19,fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.9…
Prediction with 4 labelled series (rows block, 4th drops 3rd)
Share Position

type,title,series

text,colorHex

fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.9…
Unknown extra field in payload (stripped on create; only PATCH is strict)
Share Position

type,title,subtitle

caip19,fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.9…
Name at exactly the 128-char max (boundary, accepted)
Share Position

type,title,subtitle

caip19,fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.9…
Sub-cent price, high precision (formatting must not render $0.00)
Share Position

type,title,subtitle

caip19,fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.9…
App-version gating (26.27.3 vs 26.28.0) flows through to displayV2 rows
Share Position

type,title,series

text,colorHex

fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.9…
Same request twice — distinct shareIds, identical displayV2
Share Position

type,title,subtitle

caip19,fallbackText

value,amountUsd,tone

value

ghosty

url,fallbackText

true

2

2026-08-21T00:51:09.9…

Declared in schema order from share-display.types.ts. Only headerTitle is required. caption is absent everywhere because the referral flag fails closed locally, and backdrop because no case attached media.

2 · displayV2 — the object this PR adds

CaseversionheaderTitlethemeblocksgroupsfooterbackdrop
New spot position (minimal required fields)
2

Share Position

frame,accentHex,glow

3

1

date,brandLogo
Existing spot, market caps + chart (all optionals)
2

Share Position

frame,accentHex,glow

4

1

date,brandLogo
New perp, 10x long
2

Share Position

frame,accentHex,glow

4

1

date,brandLogo
Existing perp, short at a loss (negative tone)
2

Share Position

frame,accentHex,glow

4

1

date,brandLogo
New prediction (no chart, multi_series heading)
2

Share Position

frame,accentHex,glow

4

1

date,brandLogo
Existing prediction at a loss
2

Share Position

frame,accentHex,glow

4

1

date,brandLogo
Profile share (follow chrome, no hero)
2

Share Profile

frame,accentHex,glow

1

1

date,brandLogo
Chat share (text headline, inline stats)
2

Share Chat

frame,accentHex,glow

3

1

date,brandLogo
Exactly flat P&L (neutral tone, no glow bias)
2

Share Position

frame,accentHex,glow

3

1

date,brandLogo
Emoji + RTL symbol and name (unicode monogram)
2

Share Position

frame,accentHex,glow

3

1

date,brandLogo
HTML-ish name (must be served verbatim, not escaped or executed)
2

Share Position

frame,accentHex,glow

3

1

date,brandLogo
Prediction with 4 labelled series (rows block, 4th drops 3rd)
2

Share Position

frame,accentHex,glow

4

1

date,brandLogo
Unknown extra field in payload (stripped on create; only PATCH is strict)
2

Share Position

frame,accentHex,glow

3

1

date,brandLogo
Name at exactly the 128-char max (boundary, accepted)
2

Share Position

frame,accentHex,glow

3

1

date,brandLogo
Sub-cent price, high precision (formatting must not render $0.00)
2

Share Position

frame,accentHex,glow

3

1

date,brandLogo
App-version gating (26.27.3 vs 26.28.0) flows through to displayV2 rows
2

Share Position

frame,accentHex,glow

4

1

date,brandLogo
Same request twice — distinct shareIds, identical displayV2
2

Share Position

frame,accentHex,glow

3

1

date,brandLogo

Declared in schema order from share-display-v2.types.ts. version, headerTitle and blocks are the only required properties; groups appears only when some block is grouped.

3 · displayV2.blocks[] — the block components and their properties

Block typeCasesProperties carried
identity17type title layout size region group image titleVerified
hero15type eyebrow amount region group
stats16type stats orientation region group dividerAbove
chart3type series
rows4type rows

The property union each block component actually carried across this run — not the schema's full surface, which admits more (a chart may carry markers and thresholds, an identity may carry badges; no current payload snapshots those, so they never appear). region and group are the placement fields shared by every block type; a block omitting region is drawn in the body.

Per-case request and response

PASS New spot position (minimal required fields) new_spot
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty3
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleSOL
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "12.5",
    "entryPriceUsd": "150.00"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "ppQymgLD9O",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "12.5",
    "entryPriceUsd": "150.00",
    "kind": "new_position"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.802Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$1,875.00",
      "amountUsd": "1875",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1,875.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$150.00",
        "amountUsd": "150.00"
      },
      {
        "label": "Current",
        "value": "$150.00",
        "amountUsd": "150.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$150.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.802Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$150.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1,875.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1,875.00",
          "amountUsd": "1875",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$150.00",
            "amountUsd": "150.00"
          },
          {
            "label": "Current",
            "value": "$150.00",
            "amountUsd": "150.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.802Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/ppQymgLD9O"
}
Read back
GET http://localhost:3000/share/ppQymgLD9O
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "ppQymgLD9O",
  "v": 2,
  "payload": {
    "amount": "12.5",
    "caip19": "solana:101/nativeToken:501",
    "entryPriceUsd": "150.00",
    "kind": "new_position",
    "market": "spot"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.802Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$1,875.00",
      "amountUsd": "1875",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1,875.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$150.00",
        "amountUsd": "150.00"
      },
      {
        "label": "Current",
        "value": "$150.00",
        "amountUsd": "150.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$150.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.802Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$150.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1,875.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1,875.00",
          "amountUsd": "1875",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$150.00",
            "amountUsd": "150.00"
          },
          {
            "label": "Current",
            "value": "$150.00",
            "amountUsd": "150.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.802Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Existing spot, market caps + chart (all optionals) existing_spot_mc
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty4
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleUSDC
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "existing_position",
    "market": "spot",
    "caip19": "solana:101/address:EPjFWdd5",
    "name": "USD Coin",
    "symbol": "USDC",
    "logoUri": "https://cdn.phantom.app/usdc.png",
    "amount": "1000",
    "entryPriceUsd": "0.0000203418",
    "entryMarketCapUsd": "3800000",
    "priceSeries": [
      "0.0000203",
      "0.0000212",
      "0.0000245"
    ],
    "performance": {
      "currentPriceUsd": "0.0000245",
      "currentMarketCapUsd": "4655000",
      "pnlUsd": "20.55",
      "pnlPct": "20.44"
    }
  }
}
HTTP 201
vary: Origin

{
  "shareId": "4TR0wzBAU7",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/address:EPjFWdd5",
    "name": "USD Coin",
    "symbol": "USDC",
    "logoUri": "https://cdn.phantom.app/usdc.png",
    "amount": "1000",
    "entryPriceUsd": "0.0000203418",
    "entryMarketCapUsd": "3800000",
    "priceSeries": [
      "0.0000203",
      "0.0000212",
      "0.0000245"
    ],
    "kind": "existing_position",
    "performance": {
      "currentPriceUsd": "0.0000245",
      "currentMarketCapUsd": "4655000",
      "pnlUsd": "20.55",
      "pnlPct": "20.44"
    }
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.826Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "url": "https://api.phantom.app/image-proxy/?image=https%3A%2F%2Fcdn.phantom.app%2Fusdc.png",
      "caip19": "solana:101/address:EPjFWdd5",
      "fallbackText": "U"
    },
    "headline": {
      "value": "+$20.55",
      "amountUsd": "20.55",
      "changePct": "+20.44%",
      "tone": "positive"
    },
    "byline": {
      "value": "$0.025"
    },
    "stats": [
      {
        "label": "Entry MC",
        "value": "$3.80M",
        "amountUsd": "3800000"
      },
      {
        "label": "Current MC",
        "value": "$4.66M",
        "amountUsd": "4655000"
      }
    ],
    "sparklines": [
      {
        "data": [
          "0.0000203",
          "0.0000212",
          "0.0000245"
        ],
        "color": "#45E863"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "USDC",
      "subtitle": "USD Coin"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.826Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "positive",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "url": "https://api.phantom.app/image-proxy/?image=https%3A%2F%2Fcdn.phantom.app%2Fusdc.png",
        "caip19": "solana:101/address:EPjFWdd5",
        "fallbackText": "U",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "USDC"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "USD Coin",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "chart",
        "series": [
          {
            "data": [
              "0.0000203",
              "0.0000212",
              "0.0000245"
            ],
            "colorHex": "#45E863",
            "endpointMarker": true
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "overlay",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$0.025",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "+$20.55",
          "amountUsd": "20.55",
          "changePct": "+20.44%",
          "tone": "positive",
          "size": "hero"
        },
        "region": "overlay",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry MC",
            "value": "$3.80M",
            "amountUsd": "3800000"
          },
          {
            "label": "Current MC",
            "value": "$4.66M",
            "amountUsd": "4655000"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "overlay",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "positive",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.826Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/4TR0wzBAU7"
}
Read back
GET http://localhost:3000/share/4TR0wzBAU7
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "4TR0wzBAU7",
  "v": 2,
  "payload": {
    "amount": "1000",
    "caip19": "solana:101/address:EPjFWdd5",
    "entryMarketCapUsd": "3800000",
    "entryPriceUsd": "0.0000203418",
    "kind": "existing_position",
    "logoUri": "https://cdn.phantom.app/usdc.png",
    "market": "spot",
    "name": "USD Coin",
    "performance": {
      "currentMarketCapUsd": "4655000",
      "currentPriceUsd": "0.0000245",
      "pnlPct": "20.44",
      "pnlUsd": "20.55"
    },
    "priceSeries": [
      "0.0000203",
      "0.0000212",
      "0.0000245"
    ],
    "symbol": "USDC"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.826Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "url": "https://api.phantom.app/image-proxy/?image=https%3A%2F%2Fcdn.phantom.app%2Fusdc.png",
      "caip19": "solana:101/address:EPjFWdd5",
      "fallbackText": "U"
    },
    "headline": {
      "value": "+$20.55",
      "amountUsd": "20.55",
      "changePct": "+20.44%",
      "tone": "positive"
    },
    "byline": {
      "value": "$0.025"
    },
    "stats": [
      {
        "label": "Entry MC",
        "value": "$3.80M",
        "amountUsd": "3800000"
      },
      {
        "label": "Current MC",
        "value": "$4.66M",
        "amountUsd": "4655000"
      }
    ],
    "sparklines": [
      {
        "data": [
          "0.0000203",
          "0.0000212",
          "0.0000245"
        ],
        "color": "#45E863"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "USDC",
      "subtitle": "USD Coin"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.826Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "positive",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "url": "https://api.phantom.app/image-proxy/?image=https%3A%2F%2Fcdn.phantom.app%2Fusdc.png",
        "caip19": "solana:101/address:EPjFWdd5",
        "fallbackText": "U",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "USDC"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "USD Coin",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "chart",
        "series": [
          {
            "data": [
              "0.0000203",
              "0.0000212",
              "0.0000245"
            ],
            "colorHex": "#45E863",
            "endpointMarker": true
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "overlay",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$0.025",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "+$20.55",
          "amountUsd": "20.55",
          "changePct": "+20.44%",
          "tone": "positive",
          "size": "hero"
        },
        "region": "overlay",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry MC",
            "value": "$3.80M",
            "amountUsd": "3800000"
          },
          {
            "label": "Current MC",
            "value": "$4.66M",
            "amountUsd": "4655000"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "overlay",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "positive",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.826Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS New perp, 10x long new_perp
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty4
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleBTC
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "perp",
    "caip19": "hypercore:mainnet/perp:BTC",
    "name": "Bitcoin",
    "symbol": "BTC",
    "side": "long",
    "leverage": "10",
    "size": "0.25",
    "entryPriceUsd": "63810.25",
    "priceSeries": [
      "63000.00",
      "63500.10",
      "63810.25"
    ]
  }
}
HTTP 201
vary: Origin

{
  "shareId": "7eKJMQezPy",
  "v": 2,
  "payload": {
    "market": "perp",
    "caip19": "hypercore:mainnet/perp:BTC",
    "name": "Bitcoin",
    "symbol": "BTC",
    "side": "long",
    "leverage": "10",
    "size": "0.25",
    "entryPriceUsd": "63810.25",
    "priceSeries": [
      "63000.00",
      "63500.10",
      "63810.25"
    ],
    "kind": "new_position"
  },
  "deepLinkPath": "v1/perps/btc-usd",
  "createdAt": "2026-08-21T00:51:09.836Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "10x Long",
      "colorHex": "#45E863"
    },
    "icon": {
      "caip19": "hypercore:mainnet/perp:BTC",
      "fallbackText": "B"
    },
    "headline": {
      "value": "$15,952.56",
      "amountUsd": "15952.5625",
      "tone": "neutral"
    },
    "byline": {
      "value": "$15,952.56"
    },
    "stats": [
      {
        "label": "Price",
        "value": "$63,810.25",
        "amountUsd": "63810.25"
      }
    ],
    "sparklines": [
      {
        "data": [
          "63000.00",
          "63500.10",
          "63810.25"
        ],
        "color": "#45E863"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "BTC",
      "subtitle": "Bitcoin"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.836Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "hypercore:mainnet/perp:BTC",
        "fallbackText": "B",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "BTC"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "Bitcoin",
            "dim": true
          }
        ]
      },
      "chips": [
        {
          "text": "10x Long",
          "colorHex": "#45E863"
        }
      ]
    },
    "blocks": [
      {
        "type": "chart",
        "series": [
          {
            "data": [
              "63000.00",
              "63500.10",
              "63810.25"
            ],
            "colorHex": "#45E863",
            "endpointMarker": true
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "overlay",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$15,952.56",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$15,952.56",
          "amountUsd": "15952.5625",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "overlay",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Price",
            "value": "$63,810.25",
            "amountUsd": "63810.25"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "overlay",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.836Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/7eKJMQezPy"
}
Read back
GET http://localhost:3000/share/7eKJMQezPy
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "7eKJMQezPy",
  "v": 2,
  "payload": {
    "caip19": "hypercore:mainnet/perp:BTC",
    "entryPriceUsd": "63810.25",
    "kind": "new_position",
    "leverage": "10",
    "market": "perp",
    "name": "Bitcoin",
    "priceSeries": [
      "63000.00",
      "63500.10",
      "63810.25"
    ],
    "side": "long",
    "size": "0.25",
    "symbol": "BTC"
  },
  "deepLinkPath": "v1/perps/btc-usd",
  "createdAt": "2026-08-21T00:51:09.836Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "10x Long",
      "colorHex": "#45E863"
    },
    "icon": {
      "caip19": "hypercore:mainnet/perp:BTC",
      "fallbackText": "B"
    },
    "headline": {
      "value": "$15,952.56",
      "amountUsd": "15952.5625",
      "tone": "neutral"
    },
    "byline": {
      "value": "$15,952.56"
    },
    "stats": [
      {
        "label": "Price",
        "value": "$63,810.25",
        "amountUsd": "63810.25"
      }
    ],
    "sparklines": [
      {
        "data": [
          "63000.00",
          "63500.10",
          "63810.25"
        ],
        "color": "#45E863"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "BTC",
      "subtitle": "Bitcoin"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.836Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "hypercore:mainnet/perp:BTC",
        "fallbackText": "B",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "BTC"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "Bitcoin",
            "dim": true
          }
        ]
      },
      "chips": [
        {
          "text": "10x Long",
          "colorHex": "#45E863"
        }
      ]
    },
    "blocks": [
      {
        "type": "chart",
        "series": [
          {
            "data": [
              "63000.00",
              "63500.10",
              "63810.25"
            ],
            "colorHex": "#45E863",
            "endpointMarker": true
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "overlay",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$15,952.56",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$15,952.56",
          "amountUsd": "15952.5625",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "overlay",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Price",
            "value": "$63,810.25",
            "amountUsd": "63810.25"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "overlay",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.836Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Existing perp, short at a loss (negative tone) existing_perp_short
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty4
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleETH
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "existing_position",
    "market": "perp",
    "caip19": "hypercore:mainnet/perp:ETH",
    "name": "Ethereum",
    "symbol": "ETH",
    "side": "short",
    "leverage": "5",
    "size": "3",
    "entryPriceUsd": "3200.00",
    "priceSeries": [
      "3200.00",
      "3310.50",
      "3402.75"
    ],
    "performance": {
      "currentPriceUsd": "3402.75",
      "pnlUsd": "-608.25",
      "pnlPct": "-6.34"
    }
  }
}
HTTP 201
vary: Origin

{
  "shareId": "uZKjZ9zkH1",
  "v": 2,
  "payload": {
    "market": "perp",
    "caip19": "hypercore:mainnet/perp:ETH",
    "name": "Ethereum",
    "symbol": "ETH",
    "side": "short",
    "leverage": "5",
    "size": "3",
    "entryPriceUsd": "3200.00",
    "priceSeries": [
      "3200.00",
      "3310.50",
      "3402.75"
    ],
    "kind": "existing_position",
    "performance": {
      "currentPriceUsd": "3402.75",
      "pnlUsd": "-608.25",
      "pnlPct": "-6.34"
    }
  },
  "deepLinkPath": "v1/perps/eth-usd",
  "createdAt": "2026-08-21T00:51:09.845Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "5x Short",
      "colorHex": "#FF0037"
    },
    "icon": {
      "caip19": "hypercore:mainnet/perp:ETH",
      "fallbackText": "E"
    },
    "headline": {
      "value": "-$608.25",
      "amountUsd": "-608.25",
      "changePct": "-6.34%",
      "tone": "negative"
    },
    "byline": {
      "value": "$10,208.25"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$3,200.00",
        "amountUsd": "3200.00"
      },
      {
        "label": "Current",
        "value": "$3,402.75",
        "amountUsd": "3402.75"
      }
    ],
    "sparklines": [
      {
        "data": [
          "3200.00",
          "3310.50",
          "3402.75"
        ],
        "color": "#FF0037"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "ETH",
      "subtitle": "Ethereum"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.845Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "negative",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "hypercore:mainnet/perp:ETH",
        "fallbackText": "E",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "ETH"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "Ethereum",
            "dim": true
          }
        ]
      },
      "chips": [
        {
          "text": "5x Short",
          "colorHex": "#FF0037"
        }
      ]
    },
    "blocks": [
      {
        "type": "chart",
        "series": [
          {
            "data": [
              "3200.00",
              "3310.50",
              "3402.75"
            ],
            "colorHex": "#FF0037",
            "endpointMarker": true
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "overlay",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$10,208.25",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "-$608.25",
          "amountUsd": "-608.25",
          "changePct": "-6.34%",
          "tone": "negative",
          "size": "hero"
        },
        "region": "overlay",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$3,200.00",
            "amountUsd": "3200.00"
          },
          {
            "label": "Current",
            "value": "$3,402.75",
            "amountUsd": "3402.75"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "overlay",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "negative",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.845Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/uZKjZ9zkH1"
}
Read back
GET http://localhost:3000/share/uZKjZ9zkH1
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "uZKjZ9zkH1",
  "v": 2,
  "payload": {
    "caip19": "hypercore:mainnet/perp:ETH",
    "entryPriceUsd": "3200.00",
    "kind": "existing_position",
    "leverage": "5",
    "market": "perp",
    "name": "Ethereum",
    "performance": {
      "currentPriceUsd": "3402.75",
      "pnlPct": "-6.34",
      "pnlUsd": "-608.25"
    },
    "priceSeries": [
      "3200.00",
      "3310.50",
      "3402.75"
    ],
    "side": "short",
    "size": "3",
    "symbol": "ETH"
  },
  "deepLinkPath": "v1/perps/eth-usd",
  "createdAt": "2026-08-21T00:51:09.845Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "5x Short",
      "colorHex": "#FF0037"
    },
    "icon": {
      "caip19": "hypercore:mainnet/perp:ETH",
      "fallbackText": "E"
    },
    "headline": {
      "value": "-$608.25",
      "amountUsd": "-608.25",
      "changePct": "-6.34%",
      "tone": "negative"
    },
    "byline": {
      "value": "$10,208.25"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$3,200.00",
        "amountUsd": "3200.00"
      },
      {
        "label": "Current",
        "value": "$3,402.75",
        "amountUsd": "3402.75"
      }
    ],
    "sparklines": [
      {
        "data": [
          "3200.00",
          "3310.50",
          "3402.75"
        ],
        "color": "#FF0037"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "ETH",
      "subtitle": "Ethereum"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.845Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "negative",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "hypercore:mainnet/perp:ETH",
        "fallbackText": "E",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "ETH"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "Ethereum",
            "dim": true
          }
        ]
      },
      "chips": [
        {
          "text": "5x Short",
          "colorHex": "#FF0037"
        }
      ]
    },
    "blocks": [
      {
        "type": "chart",
        "series": [
          {
            "data": [
              "3200.00",
              "3310.50",
              "3402.75"
            ],
            "colorHex": "#FF0037",
            "endpointMarker": true
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "overlay",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$10,208.25",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "-$608.25",
          "amountUsd": "-608.25",
          "changePct": "-6.34%",
          "tone": "negative",
          "size": "hero"
        },
        "region": "overlay",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$3,200.00",
            "amountUsd": "3200.00"
          },
          {
            "label": "Current",
            "value": "$3,402.75",
            "amountUsd": "3402.75"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "overlay",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "negative",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.845Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS New prediction (no chart, multi_series heading) new_prediction
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty4
PASSheading is one of the three published shapes, or absentstacked
PASSheading, when served, names its subject with a titleElections
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "prediction",
    "ticker": "PRES-2028-DEM",
    "outcome": "Yes",
    "eventTitle": "Who wins the 2028 election?",
    "chanceMultiplier": "2.35",
    "valueUsd": "235.00",
    "payoutIfRightUsd": "552.25"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "oUaFdyfyR8",
  "v": 2,
  "payload": {
    "market": "prediction",
    "ticker": "PRES-2028-DEM",
    "outcome": "Yes",
    "eventTitle": "Who wins the 2028 election?",
    "chanceMultiplier": "2.35",
    "valueUsd": "235.00",
    "payoutIfRightUsd": "552.25",
    "kind": "new_position"
  },
  "deepLinkPath": "predictions/event/PRES-2028-DEM",
  "createdAt": "2026-08-21T00:51:09.853Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Yes"
    },
    "icon": {
      "fallbackText": "P"
    },
    "headline": {
      "value": "$235.00",
      "amountUsd": "235.00",
      "tone": "neutral"
    },
    "byline": {
      "value": "$235.00"
    },
    "stats": [
      {
        "label": "Payout if right",
        "value": "+$552.25",
        "amountUsd": "552.25",
        "tone": "positive"
      },
      {
        "label": "Chance",
        "value": "42.55%"
      }
    ],
    "heading": {
      "type": "multi_series",
      "title": "Elections",
      "series": [
        {
          "text": "Who wins the 2028 election?"
        }
      ]
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.853Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "stacked",
      "image": {
        "fallbackText": "P",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Elections"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "rows",
        "rows": [
          {
            "title": {
              "runs": [
                {
                  "text": "Who wins the 2028 election?"
                }
              ]
            },
            "size": "sm"
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$235.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$235.00",
          "amountUsd": "235.00",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Payout if right",
            "value": "+$552.25",
            "amountUsd": "552.25",
            "tone": "positive"
          },
          {
            "label": "Chance",
            "value": "42.55%"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.853Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/oUaFdyfyR8"
}
Read back
GET http://localhost:3000/share/oUaFdyfyR8
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "oUaFdyfyR8",
  "v": 2,
  "payload": {
    "chanceMultiplier": "2.35",
    "eventTitle": "Who wins the 2028 election?",
    "kind": "new_position",
    "market": "prediction",
    "outcome": "Yes",
    "payoutIfRightUsd": "552.25",
    "ticker": "PRES-2028-DEM",
    "valueUsd": "235.00"
  },
  "deepLinkPath": "predictions/event/PRES-2028-DEM",
  "createdAt": "2026-08-21T00:51:09.853Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Yes"
    },
    "icon": {
      "fallbackText": "P"
    },
    "headline": {
      "value": "$235.00",
      "amountUsd": "235.00",
      "tone": "neutral"
    },
    "byline": {
      "value": "$235.00"
    },
    "stats": [
      {
        "label": "Payout if right",
        "value": "+$552.25",
        "amountUsd": "552.25",
        "tone": "positive"
      },
      {
        "label": "Chance",
        "value": "42.55%"
      }
    ],
    "heading": {
      "type": "multi_series",
      "title": "Elections",
      "series": [
        {
          "text": "Who wins the 2028 election?"
        }
      ]
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.853Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "stacked",
      "image": {
        "fallbackText": "P",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Elections"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "rows",
        "rows": [
          {
            "title": {
              "runs": [
                {
                  "text": "Who wins the 2028 election?"
                }
              ]
            },
            "size": "sm"
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$235.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$235.00",
          "amountUsd": "235.00",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Payout if right",
            "value": "+$552.25",
            "amountUsd": "552.25",
            "tone": "positive"
          },
          {
            "label": "Chance",
            "value": "42.55%"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.853Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Existing prediction at a loss existing_prediction
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty4
PASSheading is one of the three published shapes, or absentstacked
PASSheading, when served, names its subject with a titleElections
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "existing_position",
    "market": "prediction",
    "ticker": "PRES-2028-DEM",
    "outcome": "Yes",
    "eventTitle": "Who wins the 2028 election?",
    "chanceMultiplier": "2.35",
    "chancePercent": "42.55",
    "valueUsd": "235.00",
    "performance": {
      "pnlUsd": "-40.50",
      "pnlPct": "-17.23"
    }
  }
}
HTTP 201
vary: Origin

{
  "shareId": "Rh8Q928qWo",
  "v": 2,
  "payload": {
    "market": "prediction",
    "ticker": "PRES-2028-DEM",
    "outcome": "Yes",
    "eventTitle": "Who wins the 2028 election?",
    "chanceMultiplier": "2.35",
    "chancePercent": "42.55",
    "valueUsd": "235.00",
    "kind": "existing_position",
    "performance": {
      "pnlUsd": "-40.50",
      "pnlPct": "-17.23"
    }
  },
  "deepLinkPath": "predictions/event/PRES-2028-DEM",
  "createdAt": "2026-08-21T00:51:09.862Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Yes"
    },
    "icon": {
      "fallbackText": "P"
    },
    "headline": {
      "value": "-$40.50",
      "amountUsd": "-40.50",
      "changePct": "-17.23%",
      "tone": "negative"
    },
    "byline": {
      "value": "$235.00"
    },
    "stats": [
      {
        "label": "Outcome",
        "value": "Yes"
      },
      {
        "label": "Chance",
        "value": "42.55%"
      }
    ],
    "heading": {
      "type": "multi_series",
      "title": "Elections",
      "series": [
        {
          "text": "Who wins the 2028 election?"
        }
      ]
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.862Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "negative",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "stacked",
      "image": {
        "fallbackText": "P",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Elections"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "rows",
        "rows": [
          {
            "title": {
              "runs": [
                {
                  "text": "Who wins the 2028 election?"
                }
              ]
            },
            "size": "sm"
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$235.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "-$40.50",
          "amountUsd": "-40.50",
          "changePct": "-17.23%",
          "tone": "negative",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Outcome",
            "value": "Yes"
          },
          {
            "label": "Chance",
            "value": "42.55%"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "negative",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.862Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/Rh8Q928qWo"
}
Read back
GET http://localhost:3000/share/Rh8Q928qWo
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "Rh8Q928qWo",
  "v": 2,
  "payload": {
    "chanceMultiplier": "2.35",
    "chancePercent": "42.55",
    "eventTitle": "Who wins the 2028 election?",
    "kind": "existing_position",
    "market": "prediction",
    "outcome": "Yes",
    "performance": {
      "pnlPct": "-17.23",
      "pnlUsd": "-40.50"
    },
    "ticker": "PRES-2028-DEM",
    "valueUsd": "235.00"
  },
  "deepLinkPath": "predictions/event/PRES-2028-DEM",
  "createdAt": "2026-08-21T00:51:09.862Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Yes"
    },
    "icon": {
      "fallbackText": "P"
    },
    "headline": {
      "value": "-$40.50",
      "amountUsd": "-40.50",
      "changePct": "-17.23%",
      "tone": "negative"
    },
    "byline": {
      "value": "$235.00"
    },
    "stats": [
      {
        "label": "Outcome",
        "value": "Yes"
      },
      {
        "label": "Chance",
        "value": "42.55%"
      }
    ],
    "heading": {
      "type": "multi_series",
      "title": "Elections",
      "series": [
        {
          "text": "Who wins the 2028 election?"
        }
      ]
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.862Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "negative",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "stacked",
      "image": {
        "fallbackText": "P",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Elections"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "rows",
        "rows": [
          {
            "title": {
              "runs": [
                {
                  "text": "Who wins the 2028 election?"
                }
              ]
            },
            "size": "sm"
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$235.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "-$40.50",
          "amountUsd": "-40.50",
          "changePct": "-17.23%",
          "tone": "negative",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Outcome",
            "value": "Yes"
          },
          {
            "label": "Chance",
            "value": "42.55%"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "negative",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.862Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Profile share (follow chrome, no hero) profile
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Profile
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty1
PASSheading is one of the three published shapes, or absentmarked
PASSheading, when served, names its subject with a title@moonshot_mike
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group1 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "profile",
    "username": "moonshot_mike"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "g9PTxGKwg1",
  "v": 2,
  "payload": {
    "kind": "profile",
    "username": "moonshot_mike"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.869Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Profile",
    "icon": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "M"
    },
    "headline": {
      "value": "@moonshot_mike",
      "tone": "neutral"
    },
    "heading": {
      "type": "title_subtitle",
      "title": "@moonshot_mike"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.869Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Profile",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "marked",
      "image": {
        "url": "https://cdn.phantom.app/avatars/ghosty.png",
        "fallbackText": "M",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "@moonshot_mike"
          }
        ]
      },
      "trailing": {
        "attribution": {
          "text": {
            "runs": [
              {
                "text": "Follow on"
              }
            ]
          },
          "brandLogo": true
        }
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.869Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/g9PTxGKwg1"
}
Read back
GET http://localhost:3000/share/g9PTxGKwg1
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "g9PTxGKwg1",
  "v": 2,
  "payload": {
    "kind": "profile",
    "username": "moonshot_mike"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.869Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Profile",
    "icon": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "M"
    },
    "headline": {
      "value": "@moonshot_mike",
      "tone": "neutral"
    },
    "heading": {
      "type": "title_subtitle",
      "title": "@moonshot_mike"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.869Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Profile",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "marked",
      "image": {
        "url": "https://cdn.phantom.app/avatars/ghosty.png",
        "fallbackText": "M",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "@moonshot_mike"
          }
        ]
      },
      "trailing": {
        "attribution": {
          "text": {
            "runs": [
              {
                "text": "Follow on"
              }
            ]
          },
          "brandLogo": true
        }
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.869Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Chat share (text headline, inline stats) chat
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Chat
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty3
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleGroup chat
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "chat",
    "chatId": "chat-9001"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "QdRBdazw7m",
  "v": 2,
  "payload": {
    "kind": "chat",
    "chatId": "chat-9001"
  },
  "deepLinkPath": "v1/chat/chat-9001",
  "createdAt": "2026-08-21T00:51:09.875Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Chat",
    "icon": {
      "fallbackText": "G"
    },
    "headline": {
      "value": "Join the conversation",
      "tone": "neutral"
    },
    "stats": [
      {
        "label": "Chat",
        "value": "chat-9001"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "Group chat"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.875Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Chat",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "fallbackText": "G",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Group chat"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "identity",
        "title": {
          "runs": [
            {
              "text": "Join the conversation"
            }
          ]
        },
        "layout": "row",
        "size": "lg",
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Chat",
            "value": "chat-9001"
          }
        ],
        "orientation": "inline",
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.875Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/QdRBdazw7m"
}
Read back
GET http://localhost:3000/share/QdRBdazw7m
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "QdRBdazw7m",
  "v": 2,
  "payload": {
    "chatId": "chat-9001",
    "kind": "chat"
  },
  "deepLinkPath": "v1/chat/chat-9001",
  "createdAt": "2026-08-21T00:51:09.875Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Chat",
    "icon": {
      "fallbackText": "G"
    },
    "headline": {
      "value": "Join the conversation",
      "tone": "neutral"
    },
    "stats": [
      {
        "label": "Chat",
        "value": "chat-9001"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "Group chat"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.875Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Chat",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "fallbackText": "G",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Group chat"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "identity",
        "title": {
          "runs": [
            {
              "text": "Join the conversation"
            }
          ]
        },
        "layout": "row",
        "size": "lg",
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Chat",
            "value": "chat-9001"
          }
        ],
        "orientation": "inline",
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.875Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Exactly flat P&L (neutral tone, no glow bias) flat_pnl
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty3
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleSOL
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "existing_position",
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "1",
    "entryPriceUsd": "100.00",
    "performance": {
      "currentPriceUsd": "100.00",
      "pnlUsd": "0",
      "pnlPct": "0"
    }
  }
}
HTTP 201
vary: Origin

{
  "shareId": "2p8ZYQ14lr",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "1",
    "entryPriceUsd": "100.00",
    "kind": "existing_position",
    "performance": {
      "currentPriceUsd": "100.00",
      "pnlUsd": "0",
      "pnlPct": "0"
    }
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.883Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$0.00",
      "amountUsd": "0",
      "changePct": "0%",
      "tone": "neutral"
    },
    "byline": {
      "value": "$100.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$100.00",
        "amountUsd": "100.00"
      },
      {
        "label": "Current",
        "value": "$100.00",
        "amountUsd": "100.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$100.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.883Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$100.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$100.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$0.00",
          "amountUsd": "0",
          "changePct": "0%",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$100.00",
            "amountUsd": "100.00"
          },
          {
            "label": "Current",
            "value": "$100.00",
            "amountUsd": "100.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.883Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/2p8ZYQ14lr"
}
Read back
GET http://localhost:3000/share/2p8ZYQ14lr
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "2p8ZYQ14lr",
  "v": 2,
  "payload": {
    "amount": "1",
    "caip19": "solana:101/nativeToken:501",
    "entryPriceUsd": "100.00",
    "kind": "existing_position",
    "market": "spot",
    "performance": {
      "currentPriceUsd": "100.00",
      "pnlPct": "0",
      "pnlUsd": "0"
    }
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.883Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$0.00",
      "amountUsd": "0",
      "changePct": "0%",
      "tone": "neutral"
    },
    "byline": {
      "value": "$100.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$100.00",
        "amountUsd": "100.00"
      },
      {
        "label": "Current",
        "value": "$100.00",
        "amountUsd": "100.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$100.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.883Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$100.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$100.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$0.00",
          "amountUsd": "0",
          "changePct": "0%",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$100.00",
            "amountUsd": "100.00"
          },
          {
            "label": "Current",
            "value": "$100.00",
            "amountUsd": "100.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.883Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Emoji + RTL symbol and name (unicode monogram) unicode
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty3
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a title🚀MOON
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/address:Emoji111",
    "symbol": "🚀MOON",
    "name": "عربية توكن",
    "amount": "5",
    "entryPriceUsd": "1.23"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "GjMlAfWHIM",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/address:Emoji111",
    "name": "عربية توكن",
    "symbol": "🚀MOON",
    "amount": "5",
    "entryPriceUsd": "1.23",
    "kind": "new_position"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.892Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/address:Emoji111",
      "fallbackText": "🚀"
    },
    "headline": {
      "value": "$6.15",
      "amountUsd": "6.15",
      "tone": "neutral"
    },
    "byline": {
      "value": "$6.15"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$1.23",
        "amountUsd": "1.23"
      },
      {
        "label": "Current",
        "value": "$1.23",
        "amountUsd": "1.23"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "🚀MOON",
      "subtitle": "عربية توكن"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.892Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/address:Emoji111",
        "fallbackText": "🚀",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "🚀MOON"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "عربية توكن",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$6.15",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$6.15",
          "amountUsd": "6.15",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$1.23",
            "amountUsd": "1.23"
          },
          {
            "label": "Current",
            "value": "$1.23",
            "amountUsd": "1.23"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.892Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/GjMlAfWHIM"
}
Read back
GET http://localhost:3000/share/GjMlAfWHIM
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "GjMlAfWHIM",
  "v": 2,
  "payload": {
    "amount": "5",
    "caip19": "solana:101/address:Emoji111",
    "entryPriceUsd": "1.23",
    "kind": "new_position",
    "market": "spot",
    "name": "عربية توكن",
    "symbol": "🚀MOON"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.892Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/address:Emoji111",
      "fallbackText": "🚀"
    },
    "headline": {
      "value": "$6.15",
      "amountUsd": "6.15",
      "tone": "neutral"
    },
    "byline": {
      "value": "$6.15"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$1.23",
        "amountUsd": "1.23"
      },
      {
        "label": "Current",
        "value": "$1.23",
        "amountUsd": "1.23"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "🚀MOON",
      "subtitle": "عربية توكن"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.892Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/address:Emoji111",
        "fallbackText": "🚀",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "🚀MOON"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "عربية توكن",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$6.15",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$6.15",
          "amountUsd": "6.15",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$1.23",
            "amountUsd": "1.23"
          },
          {
            "label": "Current",
            "value": "$1.23",
            "amountUsd": "1.23"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.892Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS HTML-ish name (must be served verbatim, not escaped or executed) html_injection
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty3
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleXSS
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/address:Xss1",
    "symbol": "XSS",
    "name": "<script>alert(1)</script>",
    "amount": "1",
    "entryPriceUsd": "1.00"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "TpBFF5TsQz",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/address:Xss1",
    "name": "<script>alert(1)</script>",
    "symbol": "XSS",
    "amount": "1",
    "entryPriceUsd": "1.00",
    "kind": "new_position"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.900Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/address:Xss1",
      "fallbackText": "X"
    },
    "headline": {
      "value": "$1.00",
      "amountUsd": "1",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$1.00",
        "amountUsd": "1.00"
      },
      {
        "label": "Current",
        "value": "$1.00",
        "amountUsd": "1.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "XSS",
      "subtitle": "<script>alert(1)</script>"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.900Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/address:Xss1",
        "fallbackText": "X",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "XSS"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "<script>alert(1)</script>",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1.00",
          "amountUsd": "1",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$1.00",
            "amountUsd": "1.00"
          },
          {
            "label": "Current",
            "value": "$1.00",
            "amountUsd": "1.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.900Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/TpBFF5TsQz"
}
Read back
GET http://localhost:3000/share/TpBFF5TsQz
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "TpBFF5TsQz",
  "v": 2,
  "payload": {
    "amount": "1",
    "caip19": "solana:101/address:Xss1",
    "entryPriceUsd": "1.00",
    "kind": "new_position",
    "market": "spot",
    "name": "<script>alert(1)</script>",
    "symbol": "XSS"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.900Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/address:Xss1",
      "fallbackText": "X"
    },
    "headline": {
      "value": "$1.00",
      "amountUsd": "1",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$1.00",
        "amountUsd": "1.00"
      },
      {
        "label": "Current",
        "value": "$1.00",
        "amountUsd": "1.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "XSS",
      "subtitle": "<script>alert(1)</script>"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.900Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/address:Xss1",
        "fallbackText": "X",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "XSS"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "<script>alert(1)</script>",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1.00",
          "amountUsd": "1",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$1.00",
            "amountUsd": "1.00"
          },
          {
            "label": "Current",
            "value": "$1.00",
            "amountUsd": "1.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.900Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Prediction with 4 labelled series (rows block, 4th drops 3rd) multi_series
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty4
PASSheading is one of the three published shapes, or absentstacked
PASSheading, when served, names its subject with a titleSports
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "prediction",
    "ticker": "F1-2028",
    "outcome": "Verstappen",
    "eventTitle": "Who wins the 2028 F1 title?",
    "chanceMultiplier": "1.8",
    "valueUsd": "90.00",
    "outcomeId": "o1",
    "priceSeriesSet": [
      {
        "outcomeId": "o1",
        "label": "Verstappen",
        "series": [
          "0.5",
          "0.55"
        ],
        "color": "#4A9EF7"
      },
      {
        "outcomeId": "o2",
        "label": "Norris",
        "series": [
          "0.3",
          "0.28"
        ]
      },
      {
        "outcomeId": "o3",
        "label": "Leclerc",
        "series": [
          "0.1",
          "0.09"
        ]
      },
      {
        "outcomeId": "o4",
        "label": "Hamilton",
        "series": [
          "0.1",
          "0.08"
        ]
      }
    ]
  }
}
HTTP 201
vary: Origin

{
  "shareId": "IQFG2VUB4T",
  "v": 2,
  "payload": {
    "market": "prediction",
    "ticker": "F1-2028",
    "outcome": "Verstappen",
    "outcomeId": "o1",
    "eventTitle": "Who wins the 2028 F1 title?",
    "chanceMultiplier": "1.8",
    "valueUsd": "90.00",
    "priceSeriesSet": [
      {
        "label": "Verstappen",
        "outcomeId": "o1",
        "color": "#4A9EF7",
        "series": [
          "0.5",
          "0.55"
        ]
      },
      {
        "label": "Norris",
        "outcomeId": "o2",
        "series": [
          "0.3",
          "0.28"
        ]
      },
      {
        "label": "Leclerc",
        "outcomeId": "o3",
        "series": [
          "0.1",
          "0.09"
        ]
      },
      {
        "label": "Hamilton",
        "outcomeId": "o4",
        "series": [
          "0.1",
          "0.08"
        ]
      }
    ],
    "kind": "new_position"
  },
  "deepLinkPath": "predictions/event/F1-2028",
  "createdAt": "2026-08-21T00:51:09.910Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Verstappen",
      "colorHex": "#4A9EF7"
    },
    "icon": {
      "fallbackText": "F"
    },
    "headline": {
      "value": "$90.00",
      "amountUsd": "90.00",
      "tone": "neutral"
    },
    "byline": {
      "value": "$90.00"
    },
    "stats": [
      {
        "label": "Outcome",
        "value": "Verstappen"
      },
      {
        "label": "Chance",
        "value": "55.56%"
      }
    ],
    "heading": {
      "type": "multi_series",
      "title": "Sports",
      "series": [
        {
          "text": "Who wins the 2028 F1 title?"
        }
      ]
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.910Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "stacked",
      "image": {
        "fallbackText": "F",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Sports"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "rows",
        "rows": [
          {
            "title": {
              "runs": [
                {
                  "text": "Who wins the 2028 F1 title?"
                }
              ]
            },
            "size": "sm"
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$90.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$90.00",
          "amountUsd": "90.00",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Outcome",
            "value": "Verstappen"
          },
          {
            "label": "Chance",
            "value": "55.56%"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.910Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/IQFG2VUB4T"
}
Read back
GET http://localhost:3000/share/IQFG2VUB4T
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "IQFG2VUB4T",
  "v": 2,
  "payload": {
    "chanceMultiplier": "1.8",
    "eventTitle": "Who wins the 2028 F1 title?",
    "kind": "new_position",
    "market": "prediction",
    "outcome": "Verstappen",
    "outcomeId": "o1",
    "priceSeriesSet": [
      {
        "color": "#4A9EF7",
        "label": "Verstappen",
        "outcomeId": "o1",
        "series": [
          "0.5",
          "0.55"
        ]
      },
      {
        "label": "Norris",
        "outcomeId": "o2",
        "series": [
          "0.3",
          "0.28"
        ]
      },
      {
        "label": "Leclerc",
        "outcomeId": "o3",
        "series": [
          "0.1",
          "0.09"
        ]
      },
      {
        "label": "Hamilton",
        "outcomeId": "o4",
        "series": [
          "0.1",
          "0.08"
        ]
      }
    ],
    "ticker": "F1-2028",
    "valueUsd": "90.00"
  },
  "deepLinkPath": "predictions/event/F1-2028",
  "createdAt": "2026-08-21T00:51:09.910Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Verstappen",
      "colorHex": "#4A9EF7"
    },
    "icon": {
      "fallbackText": "F"
    },
    "headline": {
      "value": "$90.00",
      "amountUsd": "90.00",
      "tone": "neutral"
    },
    "byline": {
      "value": "$90.00"
    },
    "stats": [
      {
        "label": "Outcome",
        "value": "Verstappen"
      },
      {
        "label": "Chance",
        "value": "55.56%"
      }
    ],
    "heading": {
      "type": "multi_series",
      "title": "Sports",
      "series": [
        {
          "text": "Who wins the 2028 F1 title?"
        }
      ]
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.910Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "stacked",
      "image": {
        "fallbackText": "F",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Sports"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "rows",
        "rows": [
          {
            "title": {
              "runs": [
                {
                  "text": "Who wins the 2028 F1 title?"
                }
              ]
            },
            "size": "sm"
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$90.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$90.00",
          "amountUsd": "90.00",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Outcome",
            "value": "Verstappen"
          },
          {
            "label": "Chance",
            "value": "55.56%"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.910Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Unknown extra field in payload (stripped on create; only PATCH is strict) unknown_field

Assertion corrected: Assertion corrected mid-run: originally expected 400. The create payload schema is a non-strict discriminated union that strips unknown keys — the DTO reserves strict rejection for PATCH. Verified stripped, not persisted.

PASSPOST status is 201201
PASSunknown key is stripped from the persisted payload, not echoedmarket,caip19,amount,entryPriceUsd,kind
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty3
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleSOL
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "1",
    "entryPriceUsd": "1.00",
    "totallyUnknownField": "x"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "SJNS1hPs45",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "1",
    "entryPriceUsd": "1.00",
    "kind": "new_position"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.925Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$1.00",
      "amountUsd": "1",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$1.00",
        "amountUsd": "1.00"
      },
      {
        "label": "Current",
        "value": "$1.00",
        "amountUsd": "1.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$1.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.925Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$1.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1.00",
          "amountUsd": "1",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$1.00",
            "amountUsd": "1.00"
          },
          {
            "label": "Current",
            "value": "$1.00",
            "amountUsd": "1.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.925Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/SJNS1hPs45"
}
Read back
GET http://localhost:3000/share/SJNS1hPs45
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "SJNS1hPs45",
  "v": 2,
  "payload": {
    "amount": "1",
    "caip19": "solana:101/nativeToken:501",
    "entryPriceUsd": "1.00",
    "kind": "new_position",
    "market": "spot"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.925Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$1.00",
      "amountUsd": "1",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$1.00",
        "amountUsd": "1.00"
      },
      {
        "label": "Current",
        "value": "$1.00",
        "amountUsd": "1.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$1.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.925Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$1.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1.00",
          "amountUsd": "1",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$1.00",
            "amountUsd": "1.00"
          },
          {
            "label": "Current",
            "value": "$1.00",
            "amountUsd": "1.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.925Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Unknown market enum value bad_enum
PASSPOST status is 400400
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "futures",
    "caip19": "solana:101/nativeToken:501",
    "amount": "1",
    "entryPriceUsd": "1.00"
  }
}
HTTP 400
vary: Origin

{
  "message": "[\n  {\n    \"code\": \"invalid_union\",\n    \"errors\": [],\n    \"note\": \"No matching discriminator\",\n    \"discriminator\": \"market\",\n    \"options\": [\n      \"spot\",\n      \"perp\",\n      \"prediction\"\n    ],\n    \"path\": [\n      \"payload\",\n      \"market\"\n    ],\n    \"message\": \"Invalid discriminator value. Expected 'spot' | 'perp' | 'prediction'\"\n  }\n]",
  "statusCode": 400
}
PASS Wrong type: amount as a number, not a decimal string wrong_type
PASSPOST status is 400400
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": 12.5,
    "entryPriceUsd": "1.00"
  }
}
HTTP 400
vary: Origin

{
  "message": "[\n  {\n    \"expected\": \"string\",\n    \"code\": \"invalid_type\",\n    \"path\": [\n      \"payload\",\n      \"amount\"\n    ],\n    \"message\": \"Invalid input: expected string, received number\"\n  }\n]",
  "statusCode": 400
}
PASS Name at exactly the 128-char max (boundary, accepted) name_at_max
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty3
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleMAXN
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/address:Boundary1",
    "amount": "1",
    "entryPriceUsd": "1.00",
    "symbol": "MAXN",
    "name": "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "953CtqRRDC",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/address:Boundary1",
    "name": "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
    "symbol": "MAXN",
    "amount": "1",
    "entryPriceUsd": "1.00",
    "kind": "new_position"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.937Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/address:Boundary1",
      "fallbackText": "M"
    },
    "headline": {
      "value": "$1.00",
      "amountUsd": "1",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$1.00",
        "amountUsd": "1.00"
      },
      {
        "label": "Current",
        "value": "$1.00",
        "amountUsd": "1.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "MAXN",
      "subtitle": "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.937Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/address:Boundary1",
        "fallbackText": "M",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "MAXN"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1.00",
          "amountUsd": "1",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$1.00",
            "amountUsd": "1.00"
          },
          {
            "label": "Current",
            "value": "$1.00",
            "amountUsd": "1.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.937Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/953CtqRRDC"
}
Read back
GET http://localhost:3000/share/953CtqRRDC
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "953CtqRRDC",
  "v": 2,
  "payload": {
    "amount": "1",
    "caip19": "solana:101/address:Boundary1",
    "entryPriceUsd": "1.00",
    "kind": "new_position",
    "market": "spot",
    "name": "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
    "symbol": "MAXN"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.937Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/address:Boundary1",
      "fallbackText": "M"
    },
    "headline": {
      "value": "$1.00",
      "amountUsd": "1",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$1.00",
        "amountUsd": "1.00"
      },
      {
        "label": "Current",
        "value": "$1.00",
        "amountUsd": "1.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "MAXN",
      "subtitle": "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.937Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/address:Boundary1",
        "fallbackText": "M",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "MAXN"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1.00",
          "amountUsd": "1",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$1.00",
            "amountUsd": "1.00"
          },
          {
            "label": "Current",
            "value": "$1.00",
            "amountUsd": "1.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.937Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS Name at 129 chars, one past max (rejected) name_over_max
PASSPOST status is 400400
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/address:Boundary1",
    "amount": "1",
    "entryPriceUsd": "1.00",
    "symbol": "MAXN",
    "name": "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"
  }
}
HTTP 400
vary: Origin

{
  "message": "[\n  {\n    \"origin\": \"string\",\n    \"code\": \"too_big\",\n    \"maximum\": 128,\n    \"inclusive\": true,\n    \"path\": [\n      \"payload\",\n      \"name\"\n    ],\n    \"message\": \"Too big: expected string to have <=128 characters\"\n  }\n]",
  "statusCode": 400
}
PASS entryPriceUsd past the 40-digit decimal max (rejected) decimal_over_max
PASSPOST status is 400400
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/address:Boundary1",
    "amount": "1",
    "entryPriceUsd": "99999999999999999999999999999999999999999"
  }
}
HTTP 400
vary: Origin

{
  "message": "[\n  {\n    \"origin\": \"string\",\n    \"code\": \"too_big\",\n    \"maximum\": 40,\n    \"inclusive\": true,\n    \"path\": [\n      \"payload\",\n      \"entryPriceUsd\"\n    ],\n    \"message\": \"Too big: expected string to have <=40 characters\"\n  }\n]",
  "statusCode": 400
}
PASS Sub-cent price, high precision (formatting must not render $0.00) high_precision
PASSPOST status is 201201
PASScreate response carries displayV2.version = 22
PASScreate response still carries display (v1 unchanged)Share Position
PASSGET returns 200200
PASSGET displayV2 deep-equals create displayV2match
PASSdisplayV2.blocks is non-empty3
PASSheading is one of the three published shapes, or absentsubtitled
PASSheading, when served, names its subject with a titleTINY
PASSno block competes with the heading for the slot above the bodychecked
PASSevery block.group indexes a served group3 grouped / 1 groups
PASSno block leaks v1 fallbackSymbolchecked
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/address:Boundary1",
    "amount": "1000000",
    "entryPriceUsd": "0.000000032741",
    "symbol": "TINY"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "YoOerjIEhJ",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/address:Boundary1",
    "symbol": "TINY",
    "amount": "1000000",
    "entryPriceUsd": "0.000000032741",
    "kind": "new_position"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.946Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/address:Boundary1",
      "fallbackText": "T"
    },
    "headline": {
      "value": "$0.033",
      "amountUsd": "0.032741",
      "tone": "neutral"
    },
    "byline": {
      "value": "$0.033"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$0.00000003",
        "amountUsd": "0.000000032741"
      },
      {
        "label": "Current",
        "value": "$0.00000003",
        "amountUsd": "0.000000032741"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "TINY",
      "subtitle": "$0.00000003"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.946Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/address:Boundary1",
        "fallbackText": "T",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "TINY"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$0.00000003",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$0.033",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$0.033",
          "amountUsd": "0.032741",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$0.00000003",
            "amountUsd": "0.000000032741"
          },
          {
            "label": "Current",
            "value": "$0.00000003",
            "amountUsd": "0.000000032741"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.946Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/YoOerjIEhJ"
}
Read back
GET http://localhost:3000/share/YoOerjIEhJ
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "YoOerjIEhJ",
  "v": 2,
  "payload": {
    "amount": "1000000",
    "caip19": "solana:101/address:Boundary1",
    "entryPriceUsd": "0.000000032741",
    "kind": "new_position",
    "market": "spot",
    "symbol": "TINY"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.946Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/address:Boundary1",
      "fallbackText": "T"
    },
    "headline": {
      "value": "$0.033",
      "amountUsd": "0.032741",
      "tone": "neutral"
    },
    "byline": {
      "value": "$0.033"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$0.00000003",
        "amountUsd": "0.000000032741"
      },
      {
        "label": "Current",
        "value": "$0.00000003",
        "amountUsd": "0.000000032741"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "TINY",
      "subtitle": "$0.00000003"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.946Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/address:Boundary1",
        "fallbackText": "T",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "TINY"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$0.00000003",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$0.033",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$0.033",
          "amountUsd": "0.032741",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$0.00000003",
            "amountUsd": "0.000000032741"
          },
          {
            "label": "Current",
            "value": "$0.00000003",
            "amountUsd": "0.000000032741"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.946Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS POST with no x-forwarded-user header auth_missing
PASSrejected as unauthorized401
Create
POST http://localhost:3000/share
content-type: application/json

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "12.5",
    "entryPriceUsd": "150.00"
  }
}
HTTP 401
vary: Origin

{
  "message": "Unauthorized",
  "statusCode": 401
}
PASS POST with a malformed (non-UUID) user header auth_malformed
PASSrejected as unauthorized401
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …uuid

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "12.5",
    "entryPriceUsd": "150.00"
  }
}
HTTP 401
vary: Origin

{
  "message": "Unauthorized",
  "statusCode": 401
}
PASS GET an unknown shareId read_missing
PASSreturns 404404
Create
GET http://localhost:3000/share/ZZZZZZZZZZ
content-type: application/json
HTTP 404
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "message": "Share not found",
  "error": "Not Found",
  "statusCode": 404
}
PASS GET is public — no auth header, and cache headers vary on app version read_anonymous
PASS200 without any auth header200
PASSVary includes x-phantom-versionx-client-locale, accept-language, x-phantom-version
PASScarries displayV22
Create
GET http://localhost:3000/share/ppQymgLD9O
content-type: application/json
HTTP 200
cache-control: public, max-age=60
vary: x-client-locale, accept-language, x-phantom-version

{
  "shareId": "ppQymgLD9O",
  "v": 2,
  "payload": {
    "amount": "12.5",
    "caip19": "solana:101/nativeToken:501",
    "entryPriceUsd": "150.00",
    "kind": "new_position",
    "market": "spot"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.802Z",
  "sharer": {
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png",
    "username": "ghosty"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$1,875.00",
      "amountUsd": "1875",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1,875.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$150.00",
        "amountUsd": "150.00"
      },
      {
        "label": "Current",
        "value": "$150.00",
        "amountUsd": "150.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$150.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.802Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$150.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1,875.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1,875.00",
          "amountUsd": "1875",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$150.00",
            "amountUsd": "150.00"
          },
          {
            "label": "Current",
            "value": "$150.00",
            "amountUsd": "150.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.802Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty"
}
PASS App-version gating (26.27.3 vs 26.28.0) flows through to displayV2 rows version_gated_rows
PASS26.27.3 gets per-outcome rows3
PASS26.28.0 gets the single text row1
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000
x-phantom-version: 26.27.3

{
  "payload": {
    "kind": "new_position",
    "market": "prediction",
    "ticker": "F1-2028",
    "outcome": "Verstappen",
    "eventTitle": "Who wins the 2028 F1 title?",
    "chanceMultiplier": "1.8",
    "valueUsd": "90.00",
    "outcomeId": "o1",
    "priceSeriesSet": [
      {
        "outcomeId": "o1",
        "label": "Verstappen",
        "series": [
          "0.5",
          "0.55"
        ],
        "color": "#4A9EF7"
      },
      {
        "outcomeId": "o2",
        "label": "Norris",
        "series": [
          "0.3",
          "0.28"
        ]
      },
      {
        "outcomeId": "o3",
        "label": "Leclerc",
        "series": [
          "0.1",
          "0.09"
        ]
      },
      {
        "outcomeId": "o4",
        "label": "Hamilton",
        "series": [
          "0.1",
          "0.08"
        ]
      }
    ]
  }
}
HTTP 201
vary: Origin

{
  "shareId": "J6NP9aCmbG",
  "v": 2,
  "payload": {
    "market": "prediction",
    "ticker": "F1-2028",
    "outcome": "Verstappen",
    "outcomeId": "o1",
    "eventTitle": "Who wins the 2028 F1 title?",
    "chanceMultiplier": "1.8",
    "valueUsd": "90.00",
    "priceSeriesSet": [
      {
        "label": "Verstappen",
        "outcomeId": "o1",
        "color": "#4A9EF7",
        "series": [
          "0.5",
          "0.55"
        ]
      },
      {
        "label": "Norris",
        "outcomeId": "o2",
        "series": [
          "0.3",
          "0.28"
        ]
      },
      {
        "label": "Leclerc",
        "outcomeId": "o3",
        "series": [
          "0.1",
          "0.09"
        ]
      },
      {
        "label": "Hamilton",
        "outcomeId": "o4",
        "series": [
          "0.1",
          "0.08"
        ]
      }
    ],
    "kind": "new_position"
  },
  "deepLinkPath": "predictions/event/F1-2028",
  "createdAt": "2026-08-21T00:51:09.962Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Verstappen",
      "colorHex": "#4A9EF7"
    },
    "icon": {
      "fallbackText": "F"
    },
    "headline": {
      "value": "$90.00",
      "amountUsd": "90.00",
      "tone": "neutral"
    },
    "byline": {
      "value": "$90.00"
    },
    "stats": [
      {
        "label": "Outcome",
        "value": "Verstappen"
      },
      {
        "label": "Chance",
        "value": "55.56%"
      }
    ],
    "heading": {
      "type": "multi_series",
      "title": "Who wins the 2028 F1 title?",
      "series": [
        {
          "text": "Verstappen"
        },
        {
          "text": "Norris"
        },
        {
          "text": "Hamilton"
        }
      ]
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.962Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "stacked",
      "image": {
        "fallbackText": "F",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Who wins the 2028 F1 title?"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "rows",
        "rows": [
          {
            "title": {
              "runs": [
                {
                  "text": "Verstappen"
                }
              ]
            },
            "size": "sm"
          },
          {
            "title": {
              "runs": [
                {
                  "text": "Norris"
                }
              ]
            },
            "size": "sm"
          },
          {
            "title": {
              "runs": [
                {
                  "text": "Hamilton"
                }
              ]
            },
            "size": "sm"
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$90.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$90.00",
          "amountUsd": "90.00",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Outcome",
            "value": "Verstappen"
          },
          {
            "label": "Chance",
            "value": "55.56%"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.962Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/J6NP9aCmbG"
}
Second request (26.28.0)
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000
x-phantom-version: 26.28.0

{
  "payload": {
    "kind": "new_position",
    "market": "prediction",
    "ticker": "F1-2028",
    "outcome": "Verstappen",
    "eventTitle": "Who wins the 2028 F1 title?",
    "chanceMultiplier": "1.8",
    "valueUsd": "90.00",
    "outcomeId": "o1",
    "priceSeriesSet": [
      {
        "outcomeId": "o1",
        "label": "Verstappen",
        "series": [
          "0.5",
          "0.55"
        ],
        "color": "#4A9EF7"
      },
      {
        "outcomeId": "o2",
        "label": "Norris",
        "series": [
          "0.3",
          "0.28"
        ]
      },
      {
        "outcomeId": "o3",
        "label": "Leclerc",
        "series": [
          "0.1",
          "0.09"
        ]
      },
      {
        "outcomeId": "o4",
        "label": "Hamilton",
        "series": [
          "0.1",
          "0.08"
        ]
      }
    ]
  }
}
HTTP 201
vary: Origin

{
  "shareId": "kRU1r2qNiV",
  "v": 2,
  "payload": {
    "market": "prediction",
    "ticker": "F1-2028",
    "outcome": "Verstappen",
    "outcomeId": "o1",
    "eventTitle": "Who wins the 2028 F1 title?",
    "chanceMultiplier": "1.8",
    "valueUsd": "90.00",
    "priceSeriesSet": [
      {
        "label": "Verstappen",
        "outcomeId": "o1",
        "color": "#4A9EF7",
        "series": [
          "0.5",
          "0.55"
        ]
      },
      {
        "label": "Norris",
        "outcomeId": "o2",
        "series": [
          "0.3",
          "0.28"
        ]
      },
      {
        "label": "Leclerc",
        "outcomeId": "o3",
        "series": [
          "0.1",
          "0.09"
        ]
      },
      {
        "label": "Hamilton",
        "outcomeId": "o4",
        "series": [
          "0.1",
          "0.08"
        ]
      }
    ],
    "kind": "new_position"
  },
  "deepLinkPath": "predictions/event/F1-2028",
  "createdAt": "2026-08-21T00:51:09.967Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Verstappen",
      "colorHex": "#4A9EF7"
    },
    "icon": {
      "fallbackText": "F"
    },
    "headline": {
      "value": "$90.00",
      "amountUsd": "90.00",
      "tone": "neutral"
    },
    "byline": {
      "value": "$90.00"
    },
    "stats": [
      {
        "label": "Outcome",
        "value": "Verstappen"
      },
      {
        "label": "Chance",
        "value": "55.56%"
      }
    ],
    "heading": {
      "type": "multi_series",
      "title": "Sports",
      "series": [
        {
          "text": "Who wins the 2028 F1 title?"
        }
      ]
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.967Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "stacked",
      "image": {
        "fallbackText": "F",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Sports"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "rows",
        "rows": [
          {
            "title": {
              "runs": [
                {
                  "text": "Who wins the 2028 F1 title?"
                }
              ]
            },
            "size": "sm"
          }
        ]
      },
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$90.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$90.00",
          "amountUsd": "90.00",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Outcome",
            "value": "Verstappen"
          },
          {
            "label": "Chance",
            "value": "55.56%"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.967Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/kRU1r2qNiV"
}
PASS Same request twice — distinct shareIds, identical displayV2 duplicate_create
PASStwo distinct shareIds1CIgEVgV5B / tEc8xBYgGi
PASSidentical displayV2 layout apart from each record's own footer.datelayout identical; footer.date differs by design
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "12.5",
    "entryPriceUsd": "150.00"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "1CIgEVgV5B",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "12.5",
    "entryPriceUsd": "150.00",
    "kind": "new_position"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.972Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$1,875.00",
      "amountUsd": "1875",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1,875.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$150.00",
        "amountUsd": "150.00"
      },
      {
        "label": "Current",
        "value": "$150.00",
        "amountUsd": "150.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$150.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.972Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$150.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1,875.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1,875.00",
          "amountUsd": "1875",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$150.00",
            "amountUsd": "150.00"
          },
          {
            "label": "Current",
            "value": "$150.00",
            "amountUsd": "150.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.972Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/1CIgEVgV5B"
}
Second identical request
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "new_position",
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "12.5",
    "entryPriceUsd": "150.00"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "tEc8xBYgGi",
  "v": 2,
  "payload": {
    "market": "spot",
    "caip19": "solana:101/nativeToken:501",
    "amount": "12.5",
    "entryPriceUsd": "150.00",
    "kind": "new_position"
  },
  "deepLinkPath": "portfolio",
  "createdAt": "2026-08-21T00:51:09.984Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Position",
    "icon": {
      "caip19": "solana:101/nativeToken:501",
      "fallbackText": "S"
    },
    "headline": {
      "value": "$1,875.00",
      "amountUsd": "1875",
      "tone": "neutral"
    },
    "byline": {
      "value": "$1,875.00"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$150.00",
        "amountUsd": "150.00"
      },
      {
        "label": "Current",
        "value": "$150.00",
        "amountUsd": "150.00"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "SOL",
      "subtitle": "$150.00"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.984Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Position",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "caip19": "solana:101/nativeToken:501",
        "fallbackText": "S",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "SOL"
          }
        ]
      },
      "subtitle": {
        "runs": [
          {
            "text": "$150.00",
            "dim": true
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "hero",
        "eyebrow": {
          "runs": [
            {
              "text": "$1,875.00",
              "dim": true
            }
          ]
        },
        "amount": {
          "value": "$1,875.00",
          "amountUsd": "1875",
          "tone": "neutral",
          "size": "hero"
        },
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Entry",
            "value": "$150.00",
            "amountUsd": "150.00"
          },
          {
            "label": "Current",
            "value": "$150.00",
            "amountUsd": "150.00"
          }
        ],
        "orientation": "stacked",
        "dividerAbove": true,
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.984Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/tEc8xBYgGi"
}
PASS Downstream social-chat URL points at a closed port — card still renders downstream_failsoft
PASSstill 201 with a closed downstream201
PASSdisplayV2 still served2
Create
POST http://localhost:3000/share
content-type: application/json
x-forwarded-user: …0000

{
  "payload": {
    "kind": "chat",
    "chatId": "chat-9001"
  }
}
HTTP 201
vary: Origin

{
  "shareId": "6qOtp82ewG",
  "v": 2,
  "payload": {
    "kind": "chat",
    "chatId": "chat-9001"
  },
  "deepLinkPath": "v1/chat/chat-9001",
  "createdAt": "2026-08-21T00:51:09.988Z",
  "sharer": {
    "username": "ghosty",
    "avatarUrl": "https://cdn.phantom.app/avatars/ghosty.png"
  },
  "display": {
    "headerTitle": "Share Chat",
    "icon": {
      "fallbackText": "G"
    },
    "headline": {
      "value": "Join the conversation",
      "tone": "neutral"
    },
    "stats": [
      {
        "label": "Chat",
        "value": "chat-9001"
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "Group chat"
    },
    "username": "ghosty",
    "avatar": {
      "url": "https://cdn.phantom.app/avatars/ghosty.png",
      "fallbackText": "G"
    },
    "sharerVerified": true,
    "date": "2026-08-21T00:51:09.988Z",
    "dateLabel": "Aug 21, 2026"
  },
  "displayV2": {
    "version": 2,
    "headerTitle": "Share Chat",
    "theme": {
      "frame": "bounded",
      "accentHex": "#AB9FF2",
      "glow": {
        "tone": "neutral",
        "anchor": "bottom_trailing"
      }
    },
    "heading": {
      "type": "subtitled",
      "image": {
        "fallbackText": "G",
        "shape": "circle"
      },
      "title": {
        "runs": [
          {
            "text": "Group chat"
          }
        ]
      }
    },
    "blocks": [
      {
        "type": "identity",
        "image": {
          "url": "https://cdn.phantom.app/avatars/ghosty.png",
          "fallbackText": "G",
          "shape": "circle"
        },
        "title": {
          "runs": [
            {
              "text": "ghosty"
            }
          ]
        },
        "titleVerified": true,
        "layout": "row",
        "size": "sm",
        "region": "body",
        "group": 0
      },
      {
        "type": "identity",
        "title": {
          "runs": [
            {
              "text": "Join the conversation"
            }
          ]
        },
        "layout": "row",
        "size": "lg",
        "region": "body",
        "group": 0
      },
      {
        "type": "stats",
        "stats": [
          {
            "label": "Chat",
            "value": "chat-9001"
          }
        ],
        "orientation": "inline",
        "region": "body",
        "group": 0
      }
    ],
    "groups": [
      {
        "inset": true,
        "glow": {
          "tone": "neutral",
          "anchor": "center"
        }
      }
    ],
    "footer": {
      "date": "2026-08-21T00:51:09.988Z",
      "brandLogo": true
    }
  },
  "referralCode": "ghosty",
  "shareUrl": "https://phantom.com/share/6qOtp82ewG"
}
PASS PATCH someone else's record patch_foreign
PASSnot found for a non-owner404
Create
PATCH http://localhost:3000/share/1CIgEVgV5B
content-type: application/json
x-forwarded-user: …0001

{}
HTTP 404
cache-control: no-store
vary: Origin

{
  "message": "Share not found",
  "error": "Not Found",
  "statusCode": 404
}

Environment

Docker containers
cockroachdb-blockchain, dragonflydb-blockchain, postgres-blockchain, valkey-cluster1/2/3-blockchain
Migrations
3 applied: create_shares_table, add_backdrop_to_shares, add_updated_at_to_shares
Env vars set (names only)
DATABASE_URL, REDIS_HOST, ENVIRONMENT, PHANTOM_API_URL, USER_SERVICE_URL, ACTIVATION_PROGRAM_SERVICE_URL, SOCIAL_CHAT_API_URL, BACKEND_RUDDERSTACK_WRITEKEY, EPPO_BACKEND_FEATURE_FLAG_ENVIRONMENT_AWARE_SDK_KEY (empty)
Stubbed upstreams
localhost:4600 stands in for the user service, the activation program, and the prediction event-detail endpoint; SOCIAL_CHAT_API_URL points at a closed port on purpose to prove fail-soft

SOCIAL_CHAT_API_URL is required by ShareBackdropResolver but missing from .env.example, so the service cannot boot from a plain copy of the example file — a pre-existing local-dev gap, unrelated to this PR. AWS Secrets Manager is unreachable without credentials; the service logs the failure and continues, so no AWS access was needed.