Backend endpoint verification

Nithilan-posted Perp Pairing — Live Local Endpoint Report

POST /share exercised on the PR branch against the exact @iseayou HYPE lifecycle Nithilan posted in #project-position-detail-view. The local adapter maps cluster-internal user routes to authenticated production routes. The unavailable local Eppo kill switch was pinned to its deployed default (false) only in the ignored build artifact; source and upstream responses were not mocked.

Generated 2026-09-01T18:36:33.705172+00:00

Local Service

shareService
http://127.0.0.1:4321Base URL
2Curl responses
7/7Checks passed
PORT=4321
DATABASE_URL=local CockroachDB (redacted)
REDIS_HOST=127.0.0.1:6379
PHANTOM_API_URL=https://api.phantom.app
USER_SERVICE_URL=local authenticated production-path adapter
Authorization=Bearer JWT (present in adapter, redacted)
Perp enrichment kill switch=false (local proof pin)

Verification

PASS Exact position ID request succeeds

POST /share returned 201 for the real closed HYPE lifecycle with its stable positionId.

PASS Legacy request succeeds

POST /share returned 201 for the same lifecycle without positionId.

PASS High-activity account history resolves

The market-filtered production history contains 77 HYPE fills and completed inside the new 4-second trade-history budget.

PASS Backend chart generated

Both paths replaced the 2-point client fallback with 40 backend candle points.

PASS Markers generated

Both responses generated open index 9 and close index 39 within the 40-point series.

PASS Position ID stored only when supplied

The exact response persisted the canonical positionId; the compatibility response omitted it.

PASS Posted position identified

Market, dates, size, entry, exit, and PnL match Nithilan's Slack screenshots; the profile is @iseayou, not Nithilan.

What the share-card graph could look like

Profitable lifecycleExit $44.733 is above entry $41.07, so the positive PnL is consistent.
Down from the local peakThe line falls near the end because HYPE peaked at $46.537 before the close. “Down lately” does not mean “down since entry.”
Correct marker windowOpen is index 9 and close is index 39. The first nine points intentionally show price context before entry.

Backend Responses

POST /share — with positionId

curl -sS -i --max-time 30 -X POST http://127.0.0.1:4321/share -H 'content-type: application/json' -H 'x-forwarded-user: [REDACTED]' --data '{"payload":{"kind":"closed_position","market":"perp","caip19":"hypercore:mainnet/address:HYPE","profileId":"e809551f-6346-487a-b372-57683475c8aa","positionId":"hypercore:mainnet/tx:0x4ba1...11cb1","...":"matching position values"}}'

HTTP/1.1 201 Created
{
  "shareId": "a3lvz4x6OQ",
  "v": 2,
  "payload": {
    "market": "perp",
    "caip19": "hypercore:mainnet/address:HYPE",
    "name": "Hyperliquid",
    "symbol": "HYPE",
    "logoUri": "https://app.hyperliquid.xyz/coins/HYPE_spot.svg",
    "profileId": "e809551f-6346-487a-b372-57683475c8aa",
    "positionId": "hypercore:mainnet/tx:0x4ba1f0de5c1a8e2ecd42042928f92602025f0054ceb23bdb245e9d0e96e11cb1",
    "side": "long",
    "size": "24.35",
    "entryPriceUsd": "41.07",
    "priceSeries": [
      "40.834",
      "41.467",
      "41.531",
      "40.608",
      "41.393",
      "40.681",
      "41.069",
      "40.996",
      "41.031",
      "40.972",
      "41.801",
      "42.672",
      "43.478",
      "43.329",
      "43.645",
      "43.635",
      "43.585",
      "43.89",
      "44.285",
      "43.684",
      "43.904",
      "44.267",
      "43.842",
      "43.189",
      "43.721",
      "43.746",
      "43.536",
      "45.07",
      "45.224",
      "45.376",
      "45.1",
      "45.305",
      "46.111",
      "45.969",
      "46.537",
      "46.11",
      "45.876",
      "44.838",
      "44.709",
      "44.733"
    ],
    "priceSeriesMarkers": [
      {
        "type": "open",
        "index": 9
      },
      {
        "type": "close",
        "index": 39
      }
    ],
    "kind": "closed_position",
    "closedAt": "2025-08-11T12:29:25.424Z",
    "performance": {
      "currentPriceUsd": "44.733",
      "pnlUsd": "87.25",
      "pnlPct": "8.72"
    }
  },
  "deepLinkPath": "v1/perps/hype-usd",
  "createdAt": "2026-09-01T18:36:13.992Z",
  "sharer": {
    "username": "iseayou",
    "avatarEmoji": "🌊"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Long",
      "colorHex": "#45E863"
    },
    "icon": {
      "url": "https://api.phantom.app/image-proxy/?image=https%3A%2F%2Fapp.hyperliquid.xyz%2Fcoins%2FHYPE_spot.svg",
      "caip19": "hypercore:mainnet/address:HYPE",
      "fallbackText": "H"
    },
    "headline": {
      "value": "+$87.25",
      "amountUsd": "87.25",
      "changePct": "+8.72%",
      "tone": "positive"
    },
    "byline": {
      "value": "$1,089.25"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$41.07",
        "amountUsd": "41.07"
      },
      {
        "label": "Exit",
        "value": "$44.733",
        "amountUsd": "44.733"
      }
    ],
    "sparklines": [
      {
        "data": [
          "40.834",
          "41.467",
          "41.531",
          "40.608",
          "41.393",
          "40.681",
          "41.069",
          "40.996",
          "41.031",
          "40.972",
          "41.801",
          "42.672",
          "43.478",
          "43.329",
          "43.645",
          "43.635",
          "43.585",
          "43.89",
          "44.285",
          "43.684",
          "43.904",
          "44.267",
          "43.842",
          "43.189",
          "43.721",
          "43.746",
          "43.536",
          "45.07",
          "45.224",
          "45.376",
          "45.1",
          "45.305",
          "46.111",
          "45.969",
          "46.537",
          "46.11",
          "45.876",
          "44.838",
          "44.709",
          "44.733"
        ],
        "color": "#45E863",
        "markers": [
          {
            "type": "open",
            "index": 9
          },
          {
            "type": "close",
            "index": 39
          }
        ]
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "HYPE",
      "subtitle": "Hyperliquid"
    },
    "titleVerified": true,
    "username": "iseayou",
    "avatar": {
      "emoji": "🌊",
      "fallbackText": "I"
    },
    "userVerified": false,
    "date": "2026-09-01T18:36:13.992Z",
    "dateLabel": "Closed on Aug 11, 2025"
  },
  "shareUrl": "https://phantom.com/share/a3lvz4x6OQ"
}

Exact (market, positionId) lifecycle pairing.

POST /share — without positionId

curl -sS -i --max-time 30 -X POST http://127.0.0.1:4321/share -H 'content-type: application/json' -H 'x-forwarded-user: [REDACTED]' --data '{"payload":{"kind":"closed_position","market":"perp","caip19":"hypercore:mainnet/address:HYPE","profileId":"e809551f-6346-487a-b372-57683475c8aa","...":"matching position values"}}'

HTTP/1.1 201 Created
{
  "shareId": "cippy1WbSR",
  "v": 2,
  "payload": {
    "market": "perp",
    "caip19": "hypercore:mainnet/address:HYPE",
    "name": "Hyperliquid",
    "symbol": "HYPE",
    "logoUri": "https://app.hyperliquid.xyz/coins/HYPE_spot.svg",
    "profileId": "e809551f-6346-487a-b372-57683475c8aa",
    "side": "long",
    "size": "24.35",
    "entryPriceUsd": "41.07",
    "priceSeries": [
      "40.834",
      "41.467",
      "41.531",
      "40.608",
      "41.393",
      "40.681",
      "41.069",
      "40.996",
      "41.031",
      "40.972",
      "41.801",
      "42.672",
      "43.478",
      "43.329",
      "43.645",
      "43.635",
      "43.585",
      "43.89",
      "44.285",
      "43.684",
      "43.904",
      "44.267",
      "43.842",
      "43.189",
      "43.721",
      "43.746",
      "43.536",
      "45.07",
      "45.224",
      "45.376",
      "45.1",
      "45.305",
      "46.111",
      "45.969",
      "46.537",
      "46.11",
      "45.876",
      "44.838",
      "44.709",
      "44.733"
    ],
    "priceSeriesMarkers": [
      {
        "type": "open",
        "index": 9
      },
      {
        "type": "close",
        "index": 39
      }
    ],
    "kind": "closed_position",
    "closedAt": "2025-08-11T12:29:25.424Z",
    "performance": {
      "currentPriceUsd": "44.733",
      "pnlUsd": "87.25",
      "pnlPct": "8.72"
    }
  },
  "deepLinkPath": "v1/perps/hype-usd",
  "createdAt": "2026-09-01T18:36:15.714Z",
  "sharer": {
    "username": "iseayou",
    "avatarEmoji": "🌊"
  },
  "display": {
    "headerTitle": "Share Position",
    "badge": {
      "text": "Long",
      "colorHex": "#45E863"
    },
    "icon": {
      "url": "https://api.phantom.app/image-proxy/?image=https%3A%2F%2Fapp.hyperliquid.xyz%2Fcoins%2FHYPE_spot.svg",
      "caip19": "hypercore:mainnet/address:HYPE",
      "fallbackText": "H"
    },
    "headline": {
      "value": "+$87.25",
      "amountUsd": "87.25",
      "changePct": "+8.72%",
      "tone": "positive"
    },
    "byline": {
      "value": "$1,089.25"
    },
    "stats": [
      {
        "label": "Entry",
        "value": "$41.07",
        "amountUsd": "41.07"
      },
      {
        "label": "Exit",
        "value": "$44.733",
        "amountUsd": "44.733"
      }
    ],
    "sparklines": [
      {
        "data": [
          "40.834",
          "41.467",
          "41.531",
          "40.608",
          "41.393",
          "40.681",
          "41.069",
          "40.996",
          "41.031",
          "40.972",
          "41.801",
          "42.672",
          "43.478",
          "43.329",
          "43.645",
          "43.635",
          "43.585",
          "43.89",
          "44.285",
          "43.684",
          "43.904",
          "44.267",
          "43.842",
          "43.189",
          "43.721",
          "43.746",
          "43.536",
          "45.07",
          "45.224",
          "45.376",
          "45.1",
          "45.305",
          "46.111",
          "45.969",
          "46.537",
          "46.11",
          "45.876",
          "44.838",
          "44.709",
          "44.733"
        ],
        "color": "#45E863",
        "markers": [
          {
            "type": "open",
            "index": 9
          },
          {
            "type": "close",
            "index": 39
          }
        ]
      }
    ],
    "heading": {
      "type": "title_subtitle",
      "title": "HYPE",
      "subtitle": "Hyperliquid"
    },
    "titleVerified": true,
    "username": "iseayou",
    "avatar": {
      "emoji": "🌊",
      "fallbackText": "I"
    },
    "userVerified": false,
    "date": "2026-09-01T18:36:15.714Z",
    "dateLabel": "Closed on Aug 11, 2025"
  },
  "shareUrl": "https://phantom.com/share/cippy1WbSR"
}

Legacy heuristic compatibility path for the same lifecycle.

Artifacts

.context/nithilan-perp-report-curls/

.context/nithilan-perp-report.html