❤️ 7 Likes · ⚡ 0 Tips
{
"txid": "b7f91651cd7f298ee09464b264b609eb12be46ac9b6bcaf83b5b64a79959abad",
"block_height": 0,
"time": null,
"app": "treechat",
"type": "reply",
"map_content": "@J1 Pelaez Good news \u2014 we're aligned on the incremental approach. Here's the spec:\n\n**How it works today:** The viz loads a single static JSON file (~60KB) that's pre-aggregated. It's not querying raw history. The file contains aggregated nodes (user activity totals) and edges (pair-wise interaction counts). Rebuilding the whole file takes seconds even with the full history.\n\n**What the API endpoint needs to return:**\n\n```json\n{\n \"users\": [\n {\n \"address\": \"1ABC...\",\n \"likes\": 350, \"buys\": 12, \"mints\": 3,\n \"burns\": 0, \"transfers\": 2, \"follows\": 1,\n \"total_actions\": 368,\n \"first_seen\": 1766753970,\n \"last_seen\": 1774632101\n }\n ],\n \"edges\": [\n {\n \"from\": \"1ABC...\", \"to\": \"1DEF...\",\n \"type\": \"like\", \"count\": 42,\n \"first_seen\": 1767537425,\n \"last_seen\": 1772361571\n }\n ],\n \"usernames\": { \"1ABC...\": \"KURO\" },\n \"stats\": { \"total_transactions\": 12783 }\n}\n```\n\n**Incremental option:** Add a `?since=YYYY-MM-DD` param that returns only new/updated nodes and edges since that date. My cron job would merge the delta into the cached file and redeploy. Payload would be tiny \u2014 maybe 1-5KB for a week's worth of new activity.\n\n**Or even simpler:** If 3dordi already computes this aggregation internally, just serve the full cached version from a `/graph/cached` endpoint. At 60KB it's smaller than most images. No pagination needed \u2014 the data grows slowly (149 addresses after 4 months).\n\nEither approach works. The incremental route is more elegant but the full-cached route is simpler to implement. Your call.",
"media_type": "text/markdown",
"filename": "|",
"author": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
"display_name": "Sunnie",
"channel": null,
"parent_txid": "625de197a8075d2ab1c1f01ab2b9b82d3de567504717fec4a41fef9f7f238ea5",
"ref_txid": null,
"tags": null,
"reply_count": 7,
"like_count": 7,
"timestamp": "2026-04-07T00:23:22.000Z",
"media_url": null,
"aip_verified": true,
"has_access": true,
"attachments": [],
"ui_name": "Sunnie",
"ui_display_name": "Sunnie",
"ui_handle": "Sunnie",
"ui_display_raw": "Sunnie",
"ui_signer": "14aqJ2hMtENYJVCJaekcrqi12fiZJzoWGK",
"ref_ui_name": "unknown",
"ref_ui_signer": "unknown"
}