<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>TraderX Labs Blog</title>
        <link>https://doc.traderx.fun/insights</link>
        <description>TraderX Labs Blog</description>
        <lastBuildDate>Mon, 28 Sep 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>zh-Hans</language>
        <item>
            <title><![CDATA[社群聊天模块设计方案（内部）]]></title>
            <link>https://doc.traderx.fun/insights/social-chat-design</link>
            <guid>https://doc.traderx.fun/insights/social-chat-design</guid>
            <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[草案 v0.1。不做通用 IM，只做 Telegram 给不了的两样东西。含开源参考选型（Buzz / Stoat / XMTP）、三条架构决策、14 个 crate 的分层、消息管线与数据模型。]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>状态：草案 v0.1 · 2026-09-28<br>
<!-- -->范围：TraderX 主推 App 的社交 / 社群聊天能力（客户端 React + React Native，服务端 Rust）<br>
<!-- -->所属仓库：<code>TraderX_BackEnd</code>（<code>crates/social-*</code>）</p>
<p>产品侧该做什么、不做什么，见《<a class="" href="https://doc.traderx.fun/insights/social-chat">社交聊天该做什么</a>》；本文只谈怎么实现。</p>
</blockquote>
<p>不做通用 IM。这个模块只解决两件 Telegram 做不到的事：让发言者身上带着可验证的仓位和战绩，让看到信号到下单之间没有跳转。下面是开源选型、三条架构决策、crate 分层、消息管线和数据模型。</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-背景与目标">1. 背景与目标<a href="https://doc.traderx.fun/insights/social-chat-design#1-%E8%83%8C%E6%99%AF%E4%B8%8E%E7%9B%AE%E6%A0%87" class="hash-link" aria-label="1. 背景与目标的直接链接" title="1. 背景与目标的直接链接" translate="no">​</a></h2>
<p>TraderX 的定位是基于<strong>事件</strong>和<strong>社交</strong>双驱动的 AI 交易平台，覆盖永续合约、预测市场和 Meme 币三条腿。社交机制中「发现」（看到别人买所以想买）为重，「执行」（跟单 / clan 自动跟）为辅；事件与社交的耦合中「社交信号因事件归因被打分」为重，「事件流因社交图谱排序」为辅。</p>
<p>社群聊天模块的目标不是再造一个通用 IM，而是做出 Telegram / Discord 天然给不了的两样东西：</p>
<ol>
<li class=""><strong>可信</strong>：发言者身上带着可验证的真实仓位和历史战绩。</li>
<li class=""><strong>可执行</strong>：从看到信号到下单之间零跳转。</li>
</ol>
<p>模块成败的核心指标是<strong>来自社交入口的成交占比</strong>，而不是聊天 DAU。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-功能优先级">2. 功能优先级<a href="https://doc.traderx.fun/insights/social-chat-design#2-%E5%8A%9F%E8%83%BD%E4%BC%98%E5%85%88%E7%BA%A7" class="hash-link" aria-label="2. 功能优先级的直接链接" title="2. 功能优先级的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="21-第一梯队首发必做构成差异化">2.1 第一梯队（首发必做，构成差异化）<a href="https://doc.traderx.fun/insights/social-chat-design#21-%E7%AC%AC%E4%B8%80%E6%A2%AF%E9%98%9F%E9%A6%96%E5%8F%91%E5%BF%85%E5%81%9A%E6%9E%84%E6%88%90%E5%B7%AE%E5%BC%82%E5%8C%96" class="hash-link" aria-label="2.1 第一梯队（首发必做，构成差异化）的直接链接" title="2.1 第一梯队（首发必做，构成差异化）的直接链接" translate="no">​</a></h3>
<table><thead><tr><th>功能</th><th>说明</th><th>依赖</th></tr></thead><tbody><tr><td>发言带持仓徽章</td><td>讨论某市场时，消息旁显示发言者在该市场的真实仓位（方向、规模区间、浮盈亏）。金额可隐藏，但「有无仓位、方向」默认公开。<strong>存发送时刻的快照</strong>，防止先喊单后平仓。</td><td>统一身份、统一账本</td></tr><tr><td>交易卡片 + 一键跟</td><td>消息中的 ticker、合约地址、Polymarket 链接、HyperLiquid 交易对自动渲染为带实时价格与一键下单的卡片，三条腿全覆盖。成交走 builder fee 等协议原生费用。</td><td>MarketMapping、三条腿交易通道</td></tr><tr><td>事件房间</td><td>每个事件（议息、选举、热点发币）自动生成房间，聚合相关永续、预测市场、meme 币。这是「事件 + 社交」定位最具体的形态。</td><td>Event 生命周期、MarketMapping</td></tr><tr><td>喊单打分（先采集）</td><td>每条带方向的发言是一次有时间戳的喊单，追踪 1h / 24h / 7d 表现，沉淀信誉分，群内排序按信誉而非活跃度。<strong>评分 UI 可晚上线，原始信号必须从第一天全量留存。</strong></td><td>Attribution、原始信号全量留存</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="22-第二梯队上线后迭代">2.2 第二梯队（上线后迭代）<a href="https://doc.traderx.fun/insights/social-chat-design#22-%E7%AC%AC%E4%BA%8C%E6%A2%AF%E9%98%9F%E4%B8%8A%E7%BA%BF%E5%90%8E%E8%BF%AD%E4%BB%A3" class="hash-link" aria-label="2.2 第二梯队（上线后迭代）的直接链接" title="2.2 第二梯队（上线后迭代）的直接链接" translate="no">​</a></h3>
<p>Clan 成交流（成员开启后成交自动推送到 clan 频道，配 clan 排行榜与 clan 自动跟）；AI 成员，定位为「事实核查员」而非「喊单员」，负责群聊摘要（「过去一小时谁有真实仓位在讨论什么」）以及贴出合约地址时的自动风险检查（貔貅盘、持币集中度、开发者钱包动向、流动性锁定）；仓位门槛群（按持币或 30 天已实现 PnL 准入）。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="23-早期不投入">2.3 早期不投入<a href="https://doc.traderx.fun/insights/social-chat-design#23-%E6%97%A9%E6%9C%9F%E4%B8%8D%E6%8A%95%E5%85%A5" class="hash-link" aria-label="2.3 早期不投入的直接链接" title="2.3 早期不投入的直接链接" translate="no">​</a></h3>
<p>语音房、画布、复杂话题串、表情包生态、文件分享等通用 IM 功能。付费带单群需谨慎：涉及代收费分账可能触及托管属性与投资建议合规问题，与极致非托管路线冲突。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="24-前提条件非功能但必须随首发上线">2.4 前提条件（非功能，但必须随首发上线）<a href="https://doc.traderx.fun/insights/social-chat-design#24-%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6%E9%9D%9E%E5%8A%9F%E8%83%BD%E4%BD%86%E5%BF%85%E9%A1%BB%E9%9A%8F%E9%A6%96%E5%8F%91%E4%B8%8A%E7%BA%BF" class="hash-link" aria-label="2.4 前提条件（非功能，但必须随首发上线）的直接链接" title="2.4 前提条件（非功能，但必须随首发上线）的直接链接" translate="no">​</a></h3>
<p>限流与反垃圾。公开交易社群上线第一天就会遭遇机器人刷假币与钓鱼链接。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="25-分发策略补充">2.5 分发策略补充<a href="https://doc.traderx.fun/insights/social-chat-design#25-%E5%88%86%E5%8F%91%E7%AD%96%E7%95%A5%E8%A1%A5%E5%85%85" class="hash-link" aria-label="2.5 分发策略补充的直接链接" title="2.5 分发策略补充的直接链接" translate="no">​</a></h3>
<p>用户的社群本来就在 TG 上。可同步做一个 <strong>TG Bot 桥接</strong>：在 TG 群贴出的地址与市场由 bot 渲染成带 TraderX 一键交易链接的卡片，并显示已绑定用户的仓位徽章。App 内的事件房间与 clan 承接迁移过来的高价值用户。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-开源参考项目">3. 开源参考项目<a href="https://doc.traderx.fun/insights/social-chat-design#3-%E5%BC%80%E6%BA%90%E5%8F%82%E8%80%83%E9%A1%B9%E7%9B%AE" class="hash-link" aria-label="3. 开源参考项目的直接链接" title="3. 开源参考项目的直接链接" translate="no">​</a></h2>
<p>没有单一开源项目能同时满足 React + React Native + Rust 且贴合交易社群场景，因此按层选取参考。</p>
<table><thead><tr><th>层</th><th>参考项目</th><th>许可证</th><th>借鉴重点</th></tr></thead><tbody><tr><td>Rust 服务端 · 实时内核</td><td><a href="https://github.com/block/buzz" target="_blank" rel="noopener noreferrer">block/buzz</a></td><td>Apache 2.0（可复制，保留版权声明）</td><td>连接生命周期、三级订阅扇出、事件管线、Redis 多节点扇出、哈希链审计</td></tr><tr><td>Rust 服务端 · 社群能力</td><td><a href="https://github.com/stoatchat/stoatchat" target="_blank" rel="noopener noreferrer">stoatchat/stoatchat</a>（原 Revolt）</td><td>AGPL-3.0（只读，参考重写）</td><td>角色权限模型、限流、推送守护进程、链接预览代理、定时清理</td></tr><tr><td>React Native 客户端</td><td><a href="https://github.com/mattermost/mattermost-mobile" target="_blank" rel="noopener noreferrer">mattermost/mattermost-mobile</a></td><td>Apache 2.0</td><td>离线存储、WebSocket 重连、推送、长消息列表性能</td></tr><tr><td>React Web 客户端</td><td>Buzz <code>desktop/</code>（React）＋ Mattermost webapp</td><td>Apache 2.0</td><td>订阅状态管理、消息渲染</td></tr><tr><td>RN 备选</td><td>Rocket.Chat React Native</td><td>MIT</td><td>第二参考</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="31-buzz-评估结论">3.1 Buzz 评估结论<a href="https://doc.traderx.fun/insights/social-chat-design#31-buzz-%E8%AF%84%E4%BC%B0%E7%BB%93%E8%AE%BA" class="hash-link" aria-label="3.1 Buzz 评估结论的直接链接" title="3.1 Buzz 评估结论的直接链接" translate="no">​</a></h3>
<p>适合作为<strong>参考实现</strong>，不适合直接 fork 作为社群后端。</p>
<p>契合点：Rust/Axum + Postgres + Redis 与 TraderX 栈完全同构；crate 分层干净（<code>buzz-core</code> 零 I/O，子系统互不调用，由 relay 统一编排）；幂等写入对应去重键；签名事件模型天然适合喊单存证；agent 作为频道成员的模式可直接用于 AI 分析员。</p>
<p>不匹配点：限流仅有测试桩，未实际生效；审核只停留在 VISION 文档；推送通知未实现；移动端（Flutter）仍在开发；面向几十到几百人的团队频道，历史查询单 filter 上限 500 条，在线状态只在单节点扇出；协议要求客户端对每条消息做 Schnorr 签名，与 Privy 托管的用户主密钥冲突；Postgres FTS 使用 <code>simple</code> 分词，中文不可用；git 托管、语音会议、画布等模块体量大且与需求无关，fork 后维护成本高。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="32-stoat-要点">3.2 Stoat 要点<a href="https://doc.traderx.fun/insights/social-chat-design#32-stoat-%E8%A6%81%E7%82%B9" class="hash-link" aria-label="3.2 Stoat 要点的直接链接" title="3.2 Stoat 要点的直接链接" translate="no">​</a></h3>
<p>后端纯 Rust，按服务拆分：<code>delta</code>（REST）、<code>bonfire</code>（WebSocket）、<code>services/autumn</code>（文件）、<code>services/january</code>（代理 / 链接预览）、<code>daemons/pushd</code>（推送）、<code>daemons/crond</code>（定时清理），core 层有 <code>config</code>、<code>database</code>、<code>files</code>、<code>models</code>、<code>permissions</code>、<code>presence</code>、<code>result</code>、<code>coalesced</code>。存储为 MongoDB + RabbitMQ，与 TraderX 的 Postgres 路线不同，数据层不照搬。</p>
<p>许可证注意：整体 AGPL-3.0，但个别 crate 可能自带许可证。依赖前逐个核实 <code>Cargo.toml</code> 的 <code>license</code> 字段，未确认前一律按 AGPL 处理。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="33-xmtp不采用为主干">3.3 XMTP（不采用为主干）<a href="https://doc.traderx.fun/insights/social-chat-design#33-xmtp%E4%B8%8D%E9%87%87%E7%94%A8%E4%B8%BA%E4%B8%BB%E5%B9%B2" class="hash-link" aria-label="3.3 XMTP（不采用为主干）的直接链接" title="3.3 XMTP（不采用为主干）的直接链接" translate="no">​</a></h3>
<p>LibXMTP 为 Rust 核心、有官方 React Native SDK、身份绑定钱包地址。但端到端加密使服务端无法做归因打分、反垃圾和持仓徽章校验，MLS 群组也不面向数千人公开房间。仅在未来做「按钱包地址私信交易员」时考虑。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-架构决策">4. 架构决策<a href="https://doc.traderx.fun/insights/social-chat-design#4-%E6%9E%B6%E6%9E%84%E5%86%B3%E7%AD%96" class="hash-link" aria-label="4. 架构决策的直接链接" title="4. 架构决策的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="决策一协议用nostr-形状不用nostr-身份">决策一：协议用「Nostr 形状」，不用「Nostr 身份」<a href="https://doc.traderx.fun/insights/social-chat-design#%E5%86%B3%E7%AD%96%E4%B8%80%E5%8D%8F%E8%AE%AE%E7%94%A8nostr-%E5%BD%A2%E7%8A%B6%E4%B8%8D%E7%94%A8nostr-%E8%BA%AB%E4%BB%BD" class="hash-link" aria-label="决策一：协议用「Nostr 形状」，不用「Nostr 身份」的直接链接" title="决策一：协议用「Nostr 形状」，不用「Nostr 身份」的直接链接" translate="no">​</a></h3>
<p>线协议沿用 Buzz 的帧结构与 <code>kind</code> 整数分发：</p>
<table><thead><tr><th>方向</th><th>帧</th><th>用途</th></tr></thead><tbody><tr><td>C → S</td><td><code>[「EVENT」, &lt;msg&gt;]</code></td><td>发送消息</td></tr><tr><td>C → S</td><td><code>[「REQ」, &lt;sub_id&gt;, &lt;filter&gt;...]</code></td><td>订阅</td></tr><tr><td>C → S</td><td><code>[「CLOSE」, &lt;sub_id&gt;]</code></td><td>取消订阅</td></tr><tr><td>S → C</td><td><code>[「EVENT」, &lt;sub_id&gt;, &lt;msg&gt;]</code></td><td>推送匹配消息</td></tr><tr><td>S → C</td><td><code>[「EOSE」, &lt;sub_id&gt;]</code></td><td>历史消息结束</td></tr><tr><td>S → C</td><td><code>[「OK」, &lt;msg_id&gt;, bool, reason]</code></td><td>发送结果</td></tr><tr><td>S → C</td><td><code>[「CLOSED」, &lt;sub_id&gt;, reason]</code></td><td>订阅被关闭</td></tr></tbody></table>
<p>认证改用 TraderX session，由服务端标记发送者，不要求客户端逐条签名。「喊单可验证」由服务端哈希链存证保证。新功能 = 新 kind，老客户端不受影响。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="决策二多-crate单进程部署">决策二：多 crate，单进程部署<a href="https://doc.traderx.fun/insights/social-chat-design#%E5%86%B3%E7%AD%96%E4%BA%8C%E5%A4%9A-crate%E5%8D%95%E8%BF%9B%E7%A8%8B%E9%83%A8%E7%BD%B2" class="hash-link" aria-label="决策二：多 crate，单进程部署的直接链接" title="决策二：多 crate，单进程部署的直接链接" translate="no">​</a></h3>
<p>代码按 crate 分层，编译为单一二进制部署。两人团队无法维护 Stoat 式微服务集群；待压力出现再将 <code>social-gateway</code> 单独拆出。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="决策三不引入额外中间件">决策三：不引入额外中间件<a href="https://doc.traderx.fun/insights/social-chat-design#%E5%86%B3%E7%AD%96%E4%B8%89%E4%B8%8D%E5%BC%95%E5%85%A5%E9%A2%9D%E5%A4%96%E4%B8%AD%E9%97%B4%E4%BB%B6" class="hash-link" aria-label="决策三：不引入额外中间件的直接链接" title="决策三：不引入额外中间件的直接链接" translate="no">​</a></h3>
<p>队列用 Redis Streams 替代 RabbitMQ，存储统一 Postgres，媒体用 S3。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-crate-结构">5. Crate 结构<a href="https://doc.traderx.fun/insights/social-chat-design#5-crate-%E7%BB%93%E6%9E%84" class="hash-link" aria-label="5. Crate 结构的直接链接" title="5. Crate 结构的直接链接" translate="no">​</a></h2>
<table><thead><tr><th>Crate</th><th>来源</th><th>方式</th><th>关键改动</th></tr></thead><tbody><tr><td><code>social-core</code></td><td>buzz-core</td><td>改造复用</td><td>保留零 I/O、kind 注册表、filter 匹配；去掉 Schnorr 验签；消息 ID 改 UUIDv7，另存内容哈希用于去重</td></tr><tr><td><code>social-gateway</code></td><td>buzz-relay 连接层，参考 Stoat bonfire</td><td>改造复用</td><td>保留连接信号量、30s 心跳、慢客户端背压、三级订阅索引、订阅前鉴权；auth 换 TraderX session</td></tr><tr><td><code>social-pipeline</code></td><td>buzz-relay 事件管线</td><td>改造复用</td><td>见第 6 节</td></tr><tr><td><code>social-db</code></td><td>buzz-db</td><td>改造复用</td><td>保留月分区、成员软删除、幂等写入；改用 <code>sqlx::query!</code> 编译期校验</td></tr><tr><td><code>social-pubsub</code></td><td>buzz-pubsub</td><td>改造复用</td><td>保留 Redis 扇出与 typing ZSET；补上在线状态跨节点扇出</td></tr><tr><td><code>social-audit</code></td><td>buzz-audit</td><td>直接复用</td><td>改为喊单存证链，按 clan 或全局维护链头</td></tr><tr><td><code>social-permissions</code></td><td>Stoat <code>core/permissions</code></td><td>参考重写</td><td>位掩码权限、角色等级、频道覆盖；新增持仓 / PnL 条件型门槛</td></tr><tr><td><code>social-ratelimit</code></td><td>Stoat 限流 crate</td><td>参考重写</td><td>Redis 令牌桶，按用户 / 频道 / IP 分档（新账号、认证交易员、clan 主、AI agent）</td></tr><tr><td><code>social-push</code></td><td>Stoat <code>daemons/pushd</code></td><td>参考重写</td><td>Redis Streams 消费；APNs / FCM；在线不推；按提及、私信、clan 警报分类</td></tr><tr><td><code>social-unfurl</code></td><td>Stoat <code>services/january</code> ＋ Buzz SSRF 校验</td><td>参考重写</td><td>核心是交易卡片解析器，通用链接预览为附带功能</td></tr><tr><td><code>social-media</code></td><td>buzz-media</td><td>改造复用（低优先级）</td><td>sha256 寻址 S3，首发仅图片</td></tr><tr><td><code>social-agent</code></td><td>buzz-acp 思路</td><td>参考重写（第二阶段）</td><td>每频道一个队列、同时只处理一个请求；群聊摘要、合约风险检查</td></tr><tr><td><code>social-cron</code></td><td>Stoat <code>daemons/crond</code></td><td>参考重写</td><td>分区创建、过期清理、信号表现回填（1h / 24h / 7d）</td></tr><tr><td><code>social-signal</code></td><td>—</td><td>完全自研</td><td>喊单提取、归因打分、信誉分</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="51-buzz-中值得原样保留的机制">5.1 Buzz 中值得原样保留的机制<a href="https://doc.traderx.fun/insights/social-chat-design#51-buzz-%E4%B8%AD%E5%80%BC%E5%BE%97%E5%8E%9F%E6%A0%B7%E4%BF%9D%E7%95%99%E7%9A%84%E6%9C%BA%E5%88%B6" class="hash-link" aria-label="5.1 Buzz 中值得原样保留的机制的直接链接" title="5.1 Buzz 中值得原样保留的机制的直接链接" translate="no">​</a></h3>
<p>三级订阅索引：DashMap 按 <code>(channel_id, kind)</code> O(1) 查找，其次频道通配索引，最后全局订阅线性扫描；频道消息<strong>不</strong>投递给全局订阅，这是安全边界。</p>
<p>订阅前鉴权：REQ 先校验频道权限再注册订阅，避免非成员在注册与校验之间收到私有频道消息。</p>
<p>先实时后历史：客户端重建频道状态时，必须先（或重叠地）打开实时订阅，再拉历史分页，否则中间空档会静默丢消息。服务端发送终止性 CLOSED 后，客户端必须同步释放本地订阅状态。</p>
<p>慢客户端背压：发送使用 <code>try_send</code>，缓冲区连续 3 次满即断开。</p>
<p>ephemeral 与持久化分离：在线状态 <code>SET EX</code> 带 TTL（心跳间隔的 3 倍），输入中提示用 ZSET 维护 5 秒窗口，二者均不入库。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-消息管线social-pipeline">6. 消息管线（<code>social-pipeline</code>）<a href="https://doc.traderx.fun/insights/social-chat-design#6-%E6%B6%88%E6%81%AF%E7%AE%A1%E7%BA%BFsocial-pipeline" class="hash-link" aria-label="6-消息管线social-pipeline的直接链接" title="6-消息管线social-pipeline的直接链接" translate="no">​</a></h2>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">同步段（决定是否接受）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 1. RATE LIMIT      令牌桶；新账号发地址 / 链接额外限额</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 2. AUTH            session 有效，服务端确定 sender_id</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 3. PERMISSION      频道权限位 + 条件门槛（持仓 / PnL）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 4. SPAM CHECK      钓鱼域名黑名单、重复内容指纹</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 5. ENRICH          ① 解析 ticker / 合约地址 / Polymarket 链接 → MarketMapping → cards</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">                    ② 读统一账本，为涉及市场打持仓快照 position_snapshot</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 6. DB INSERT       ON CONFLICT DO NOTHING</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 7. REDIS PUBLISH</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 8. FAN-OUT         → 返回 OK</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">异步段（fire-and-forget，失败不影响发送）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> 9. SIGNAL EXTRACT  带方向的发言写入 raw_signals，关联 event_id   ← 归因链入口</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">10. AUDIT CHAIN     喊单存证（含持仓快照）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">11. PUSH            提及 / 私信 / clan 警报</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">12. SEARCH INDEX    （第二阶段）</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">13. AGENT TRIGGER   （第二阶段）</span><br></div></code></pre></div></div>
<p>持仓快照在第 5 步生成并随消息入库，第 10 步进入哈希链，保证事后不可篡改。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-数据模型草案">7. 数据模型草案<a href="https://doc.traderx.fun/insights/social-chat-design#7-%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B%E8%8D%89%E6%A1%88" class="hash-link" aria-label="7. 数据模型草案的直接链接" title="7. 数据模型草案的直接链接" translate="no">​</a></h2>
<div class="language-sql codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sql codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">-- 频道：clan / 事件房间 / 私信 / 普通群统一建模</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> channels </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  id            uuid </span><span class="token keyword" style="color:#00009f">PRIMARY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">KEY</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  kind          </span><span class="token keyword" style="color:#00009f">smallint</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic">-- 1 clan / 2 event_room / 3 dm / 4 group</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  clan_id       uuid </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  event_id      uuid </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  visibility    </span><span class="token keyword" style="color:#00009f">smallint</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  gate_rule     jsonb </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">             </span><span class="token comment" style="color:#999988;font-style:italic">-- {"min_position_usd": ..., "min_30d_pnl": ...}</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  default_perms </span><span class="token keyword" style="color:#00009f">bigint</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  created_at    timestamptz </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">DEFAULT</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">now</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> channel_members </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  channel_id  uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  user_id     uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  role_id     uuid </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  joined_at   timestamptz </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  removed_at  timestamptz </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">         </span><span class="token comment" style="color:#999988;font-style:italic">-- 软删除</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  muted_until timestamptz </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">PRIMARY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">KEY</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">channel_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> user_id</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> roles </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">                    </span><span class="token comment" style="color:#999988;font-style:italic">-- 参考 Stoat</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  id       uuid </span><span class="token keyword" style="color:#00009f">PRIMARY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">KEY</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  scope_id uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">               </span><span class="token comment" style="color:#999988;font-style:italic">-- clan 或频道</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  name     </span><span class="token keyword" style="color:#00009f">text</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  perms    </span><span class="token keyword" style="color:#00009f">bigint</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  rank     </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> channel_role_overrides </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  channel_id uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  role_id    uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  allow      </span><span class="token keyword" style="color:#00009f">bigint</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">deny</span><span class="token plain">       </span><span class="token keyword" style="color:#00009f">bigint</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">PRIMARY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">KEY</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">channel_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> role_id</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">-- 消息：按月分区</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> messages </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  id                uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic">-- UUIDv7</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  channel_id        uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  sender_id         uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  kind              </span><span class="token keyword" style="color:#00009f">int</span><span class="token plain">  </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  content           </span><span class="token keyword" style="color:#00009f">text</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  tags              jsonb </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  reply_to          uuid </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  thread_root       uuid </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  cards             jsonb </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  position_snapshot jsonb </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  content_hash      bytea </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  created_at        timestamptz </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">PRIMARY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">KEY</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> created_at</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">PARTITION</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">BY</span><span class="token plain"> RANGE </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">created_at</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> reactions    </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">message_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> user_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> emoji </span><span class="token keyword" style="color:#00009f">text</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> created_at timestamptz</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> mentions     </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">message_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> user_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> created_at timestamptz</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">-- 索引 (user_id, created_at)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> read_markers </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">channel_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> user_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> last_read_id uuid</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain">       </span><span class="token comment" style="color:#999988;font-style:italic">-- 未读数</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">-- 与第一阶段模型对接</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> raw_signals </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  id            uuid </span><span class="token keyword" style="color:#00009f">PRIMARY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">KEY</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  message_id    uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  user_id       uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  market_id     uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">          </span><span class="token comment" style="color:#999988;font-style:italic">-- MarketMapping</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  event_id      uuid </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">              </span><span class="token comment" style="color:#999988;font-style:italic">-- Event</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  direction     </span><span class="token keyword" style="color:#00009f">smallint</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  price_at_call </span><span class="token keyword" style="color:#00009f">numeric</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  created_at    timestamptz </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  perf_1h       </span><span class="token keyword" style="color:#00009f">numeric</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">           </span><span class="token comment" style="color:#999988;font-style:italic">-- social-cron 回填</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  perf_24h      </span><span class="token keyword" style="color:#00009f">numeric</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  perf_7d       </span><span class="token keyword" style="color:#00009f">numeric</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> push_tokens           </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">user_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> platform </span><span class="token keyword" style="color:#00009f">smallint</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> token </span><span class="token keyword" style="color:#00009f">text</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> updated_at timestamptz</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> notification_settings </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">user_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> scope_id uuid</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">level</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">smallint</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">CREATE</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">TABLE</span><span class="token plain"> audit_chain </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  seq        </span><span class="token keyword" style="color:#00009f">bigint</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  scope_id   uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  message_id uuid </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  prev_hash  bytea </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">hash</span><span class="token plain">       bytea </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  created_at timestamptz </span><span class="token operator" style="color:#393A34">NOT</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">NULL</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token keyword" style="color:#00009f">PRIMARY</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">KEY</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">scope_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> seq</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
<p>事件房间无需单独建表：事件进入 active 状态时创建 <code>kind = 2</code> 的频道并关联 <code>event_id</code>。clan 频道挂在第一阶段已有的 follow + clan 关系表上。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="8-完全自研部分">8. 完全自研部分<a href="https://doc.traderx.fun/insights/social-chat-design#8-%E5%AE%8C%E5%85%A8%E8%87%AA%E7%A0%94%E9%83%A8%E5%88%86" class="hash-link" aria-label="8. 完全自研部分的直接链接" title="8. 完全自研部分的直接链接" translate="no">​</a></h2>
<p>以下四块没有任何开源参考，是 TraderX 的差异化所在，也是开发精力的重点：</p>
<ol>
<li class=""><code>social-signal</code>：喊单提取、信号表现追踪、归因打分与信誉分。</li>
<li class="">持仓徽章服务：读取统一账本，生成快照与实时徽章。</li>
<li class="">事件房间编排：订阅 Event 生命周期，自动创建、归档房间并关联市场。</li>
<li class="">卡片解析中的 MarketMapping 查询与跨三条腿的一键下单链路。</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="9-开发节奏4-周">9. 开发节奏（4 周）<a href="https://doc.traderx.fun/insights/social-chat-design#9-%E5%BC%80%E5%8F%91%E8%8A%82%E5%A5%8F4-%E5%91%A8" class="hash-link" aria-label="9. 开发节奏（4 周）的直接链接" title="9. 开发节奏（4 周）的直接链接" translate="no">​</a></h2>
<table><thead><tr><th>周</th><th>内容</th><th>说明</th></tr></thead><tbody><tr><td>第 1 周</td><td><code>social-core</code>、<code>social-gateway</code>、<code>social-db</code>、<code>social-pubsub</code></td><td>从 Buzz 改造，主要是删减与替换 auth，先打通收发</td></tr><tr><td>第 2 周</td><td><code>social-ratelimit</code>、<code>social-permissions</code>、管线反垃圾</td><td>上线前提，不可后推</td></tr><tr><td>第 3 周</td><td><code>social-unfurl</code> 交易卡片、持仓快照、<code>raw_signals</code> 写入、事件房间自动创建</td><td>差异化功能首发</td></tr><tr><td>第 4 周</td><td><code>social-push</code>、<code>social-audit</code></td><td>推送与存证</td></tr><tr><td>上线后</td><td>中文搜索、AI 成员、信号打分 UI、clan 成交流、仓位门槛群</td><td>第二阶段</td></tr></tbody></table>
<p>中文搜索建议直接采用 Tantivy + jieba 分词（纯 Rust），而非 Postgres 中文扩展。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="10-待决问题">10. 待决问题<a href="https://doc.traderx.fun/insights/social-chat-design#10-%E5%BE%85%E5%86%B3%E9%97%AE%E9%A2%98" class="hash-link" aria-label="10. 待决问题的直接链接" title="10. 待决问题的直接链接" translate="no">​</a></h2>
<ol>
<li class="">持仓徽章默认公开粒度：仅方向，还是方向 + 规模区间？</li>
<li class="">喊单识别规则：显式指令（如 <code>/long</code>）还是 NLP 自动识别，或两者并存？</li>
<li class="">存证链作用域：全局单链还是每个 clan 一条链？</li>
<li class="">TG Bot 桥接是否纳入首发范围？</li>
<li class="">私信是否需要端到端加密（影响反垃圾与合规审计能力）？</li>
</ol>]]></content:encoded>
            <category>工程</category>
            <category>产品</category>
            <category>内部</category>
        </item>
        <item>
            <title><![CDATA[社交聊天该做什么（内部）]]></title>
            <link>https://doc.traderx.fun/insights/social-chat</link>
            <guid>https://doc.traderx.fun/insights/social-chat</guid>
            <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[单纯的聊天对我们的用户没有价值，有价值的是 Telegram 给不了的两样东西——发言者可验证的真实仓位，和从看到信号到下单的零跳转。按两个里程碑列出该做的功能、取舍与前提。]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>内部讨论稿。产品定位见《<a class="" href="https://doc.traderx.fun/insights/what-is-traderx">TraderX 到底在做什么</a>》，第一阶段的落地细节见《<a class="" href="https://doc.traderx.fun/insights/traderx-phase-one">TraderX 第一阶段如何落地</a>》。</p>
</blockquote>
<p>单纯的聊天本身对我们 TraderX 的用户几乎没有价值，有价值的是聊天里那些 Telegram 做不到的东西。</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="定位">定位<a href="https://doc.traderx.fun/insights/social-chat#%E5%AE%9A%E4%BD%8D" class="hash-link" aria-label="定位的直接链接" title="定位的直接链接" translate="no">​</a></h2>
<p>我们的目标 Web3 用户早就泡在 TG 群、Discord 和 X 上，单纯再提供一个群聊，没有理由让他们迁移。</p>
<p>TraderX 能提供而 TG 天然给不了的只有两样：</p>
<ul>
<li class="">发言者身上可验证的真实仓位和战绩；</li>
<li class="">从看到信号到下单之间零跳转的执行。</li>
</ul>
<p>所以值得做的功能，都应该围绕<strong>让社交信号可信</strong>和<strong>让信号可执行</strong>来设计。</p>
<blockquote>
<p>即对应我们定下的<strong>发现为重、执行为辅</strong>和<strong>社交信号因事件归因被打分</strong>。</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="第一里程碑必须有的差异化">第一里程碑：必须有的差异化<a href="https://doc.traderx.fun/insights/social-chat#%E7%AC%AC%E4%B8%80%E9%87%8C%E7%A8%8B%E7%A2%91%E5%BF%85%E9%A1%BB%E6%9C%89%E7%9A%84%E5%B7%AE%E5%BC%82%E5%8C%96" class="hash-link" aria-label="第一里程碑：必须有的差异化的直接链接" title="第一里程碑：必须有的差异化的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-发言带持仓徽章">1. 发言带持仓徽章<a href="https://doc.traderx.fun/insights/social-chat#1-%E5%8F%91%E8%A8%80%E5%B8%A6%E6%8C%81%E4%BB%93%E5%BE%BD%E7%AB%A0" class="hash-link" aria-label="1. 发言带持仓徽章的直接链接" title="1. 发言带持仓徽章的直接链接" translate="no">​</a></h3>
<p>用户在讨论某个市场时，他的消息旁边实时显示他在这个市场的真实仓位：方向、大致规模区间、浮盈亏。</p>
<blockquote>
<p>统一身份和统一账本已经在第一阶段范围内，这个功能几乎是白送的。它直接打掉加密圈最大的痛点：喊单的人嘴上看多，自己却在空，或者根本没仓位。用户可以选择隐藏具体金额，但「有没有仓位、什么方向」最好默认公开，这是整个社区的信任底座。甚至持仓才能发言。</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-交易卡片--一键跟">2. 交易卡片 + 一键跟<a href="https://doc.traderx.fun/insights/social-chat#2-%E4%BA%A4%E6%98%93%E5%8D%A1%E7%89%87--%E4%B8%80%E9%94%AE%E8%B7%9F" class="hash-link" aria-label="2. 交易卡片 + 一键跟的直接链接" title="2. 交易卡片 + 一键跟的直接链接" translate="no">​</a></h3>
<p>消息里出现的 meme 代币、Polymarket 市场、HyperLiquid 交易对，自动渲染成卡片，带实时价格和一键下单，三条腿都覆盖。</p>
<blockquote>
<p>这是把「发现」转化成成交的关键漏斗，也是变现路径：跟单成交走 builder fee 这类协议原生费用，符合我们不自建扣费的原则。衡量社交模块成败的指标，应该是「来自社交入口的成交占比」，而不是聊天 DAU。</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-事件房间">3. 事件房间<a href="https://doc.traderx.fun/insights/social-chat#3-%E4%BA%8B%E4%BB%B6%E6%88%BF%E9%97%B4" class="hash-link" aria-label="3. 事件房间的直接链接" title="3. 事件房间的直接链接" translate="no">​</a></h3>
<p>每个事件（一次议息会议、一场选举、一个热点发币）自动生成一个房间（用户可以通过「信号流」中的「事件卡片」，直接进入房间），把相关的永续合约、预测市场和 meme 币通过 <code>MarketMapping</code> 聚在一起。</p>
<p>这是 TraderX「事件 + 社交」双驱动定位最具体的产品形态，也是三条腿融合最自然的场景：用户在同一个房间里看到有人在 Polymarket 押「降息」，同时有人在 HyperLiquid 开多 ETH。竞品大多是按单一资产组织讨论，我们按事件组织，这是结构性差异。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-可验证战绩与喊单打分">4. 可验证战绩与喊单打分<a href="https://doc.traderx.fun/insights/social-chat#4-%E5%8F%AF%E9%AA%8C%E8%AF%81%E6%88%98%E7%BB%A9%E4%B8%8E%E5%96%8A%E5%8D%95%E6%89%93%E5%88%86" class="hash-link" aria-label="4. 可验证战绩与喊单打分的直接链接" title="4. 可验证战绩与喊单打分的直接链接" translate="no">​</a></h3>
<p>每条带方向的发言都是一次有时间戳的「喊单」，系统追踪其后 1 小时、24 小时、7 天的表现，沉淀为发言者的信誉分。群内排序和推荐按信誉分而不是活跃度。这就是归因链的落地，也是长期护城河：战绩数据只能在我们的平台上积累，带不走。</p>
<blockquote>
<p>评分 UI 可以晚一点上，但原始信号从第一天就要全量留存（已经在我们第一阶段清单里），否则后面没有历史可算。</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="第二里程碑放大留存上线后迭代">第二里程碑：放大留存，上线后迭代<a href="https://doc.traderx.fun/insights/social-chat#%E7%AC%AC%E4%BA%8C%E9%87%8C%E7%A8%8B%E7%A2%91%E6%94%BE%E5%A4%A7%E7%95%99%E5%AD%98%E4%B8%8A%E7%BA%BF%E5%90%8E%E8%BF%AD%E4%BB%A3" class="hash-link" aria-label="第二里程碑：放大留存，上线后迭代的直接链接" title="第二里程碑：放大留存，上线后迭代的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-clan-成交流">5. Clan 成交流<a href="https://doc.traderx.fun/insights/social-chat#5-clan-%E6%88%90%E4%BA%A4%E6%B5%81" class="hash-link" aria-label="5. Clan 成交流的直接链接" title="5. Clan 成交流的直接链接" translate="no">​</a></h3>
<p>Clan 成员的成交（本人开启后）自动推送到 clan 频道，配上 clan 排行榜和 clan 自动跟单。</p>
<blockquote>
<p>这是「执行」那条腿，适合在发现链路跑通之后再加强。</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-ai-成员定位是事实核查员而非喊单员">6. AI 成员，定位是「事实核查员」而非「喊单员」<a href="https://doc.traderx.fun/insights/social-chat#6-ai-%E6%88%90%E5%91%98%E5%AE%9A%E4%BD%8D%E6%98%AF%E4%BA%8B%E5%AE%9E%E6%A0%B8%E6%9F%A5%E5%91%98%E8%80%8C%E9%9D%9E%E5%96%8A%E5%8D%95%E5%91%98" class="hash-link" aria-label="6. AI 成员，定位是「事实核查员」而非「喊单员」的直接链接" title="6. AI 成员，定位是「事实核查员」而非「喊单员」的直接链接" translate="no">​</a></h3>
<p>最有价值的两个用途：一是群消息摘要，比如「过去一小时在讨论什么，其中谁有真实仓位」；二是有人贴 meme 合约地址时自动做风险检查，包括貔貅盘、持币集中度、开发者钱包动向、流动性是否锁定。后者对 meme 玩家价值极高，而且能保护社区的信誉。</p>
<blockquote>
<p>让 AI 直接给交易建议，合规风险和翻车风险都大，不能作为卖点。</p>
</blockquote>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="7-仓位门槛群">7. 仓位门槛群<a href="https://doc.traderx.fun/insights/social-chat#7-%E4%BB%93%E4%BD%8D%E9%97%A8%E6%A7%9B%E7%BE%A4" class="hash-link" aria-label="7. 仓位门槛群的直接链接" title="7. 仓位门槛群的直接链接" translate="no">​</a></h3>
<p>只有持有某币，或者 30 天已实现盈亏为正的用户才能发言（群可以进，发言有门槛）。</p>
<blockquote>
<p>这是用可验证数据做质量过滤的手段，大户群、高手群都能自然长出来。</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="非功能但很重要的事">非功能但很重要的事<a href="https://doc.traderx.fun/insights/social-chat#%E9%9D%9E%E5%8A%9F%E8%83%BD%E4%BD%86%E5%BE%88%E9%87%8D%E8%A6%81%E7%9A%84%E4%BA%8B" class="hash-link" aria-label="非功能但很重要的事的直接链接" title="非功能但很重要的事的直接链接" translate="no">​</a></h2>
<p><strong>反垃圾和限流不是功能，而是前提。</strong></p>
<ul>
<li class="">只有注册账号（Apple / Google / Twitter 社媒注册）才能发言；</li>
<li class="">一律不允许发链接；</li>
<li class="">携带合约地址的消息，先验证合约安全性再放出；</li>
<li class="">发言必须有门槛并限流——既防垃圾信息，也防服务器被塞爆。</li>
</ul>
<blockquote>
<p>公开的交易社群上线第一天就会有机器人刷假币和钓鱼链接，这部分要和聊天一起上线。</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="妥协之计">妥协之计<a href="https://doc.traderx.fun/insights/social-chat#%E5%A6%A5%E5%8D%8F%E4%B9%8B%E8%AE%A1" class="hash-link" aria-label="妥协之计的直接链接" title="妥协之计的直接链接" translate="no">​</a></h2>
<p>既然用户的社群本来就在 TG 上，与其第一阶段就强求他们搬家，不如同时做一个 TG Bot 桥接：</p>
<p>在 TG 群里贴出的地址和市场，由 bot 渲染成带 TraderX 一键交易链接的卡片，并显示已绑定用户的真实仓位徽章。这样就把我们 TraderX 的核心差异（可信 + 可执行）注入用户已有的社群，App 内的事件房间和 clan 则承接迁移过来的高价值用户。</p>]]></content:encoded>
            <category>产品</category>
            <category>内部</category>
            <category>判断</category>
        </item>
        <item>
            <title><![CDATA[TraderX 第一阶段如何落地（内部）]]></title>
            <link>https://doc.traderx.fun/insights/traderx-phase-one</link>
            <guid>https://doc.traderx.fun/insights/traderx-phase-one</guid>
            <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[内部复盘草稿：第一阶段的架构、数据结构、钱包方案与取舍。配合《TraderX 到底在做什么》阅读。]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>本文是内部思维草稿 / 复盘思考，只给内部人看。定位与产品理念见《<a class="" href="https://doc.traderx.fun/insights/what-is-traderx">TraderX 到底在做什么</a>》，本文只谈落地。</p>
</blockquote>
<!-- -->
<blockquote>
<p>临时注释：定位里提到的是“事件”，而非之前的“新闻”（过于狭义）</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="社交侧的技术细节">社交侧的技术细节<a href="https://doc.traderx.fun/insights/traderx-phase-one#%E7%A4%BE%E4%BA%A4%E4%BE%A7%E7%9A%84%E6%8A%80%E6%9C%AF%E7%BB%86%E8%8A%82" class="hash-link" aria-label="社交侧的技术细节的直接链接" title="社交侧的技术细节的直接链接" translate="no">​</a></h2>
<p>传播“归因链”： 谁的动作 -&gt; 被谁看到 -&gt; 谁下了单</p>
<div class="language-rust codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-rust codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token class-name">Attribution</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  source_user_id      # 谁的动作</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  target_user_id      # 谁下的单</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  trade_id</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  channel             # link </span><span class="token operator" style="color:#393A34">|</span><span class="token plain"> in_app_click </span><span class="token operator" style="color:#393A34">|</span><span class="token plain"> follow_window</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  weight              # 不同渠道不同权重</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<p>有哪些归因路径？（参考fomo）</p>
<table><thead><tr><th>channel</th><th>机制</th><th>可靠度</th></tr></thead><tbody><tr><td><code>link</code></td><td>分享链接带 <code>?ref=user_id</code></td><td>最高，归因主体</td></tr><tr><td><code>in_app_click</code></td><td>从 feed 里某人的行为卡/观点卡点入下单</td><td>高 —— <strong>这就是"无需额外操作"的真正含义</strong></td></tr><tr><td><code>follow_window</code></td><td>A 关注 B，B 买入后 A 在 N 分钟内买同一标的</td><td>低，噪音大，需权重折扣（前期可以不要）</td></tr></tbody></table>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="ai-侧">AI 侧<a href="https://doc.traderx.fun/insights/traderx-phase-one#ai-%E4%BE%A7" class="hash-link" aria-label="AI 侧的直接链接" title="AI 侧的直接链接" translate="no">​</a></h2>
<blockquote>
<p>注：待深度思考</p>
</blockquote>
<p>新闻AI分析得出json结果，Meme的AI叙事识别（高潜力安全代币+自动发币），跨腿敞口提示、安全过滤、叙事归因，用户的AI Agent代理决策，突发事件的AI预置模板填充，事件的AI预筛（高置信度AI自动放行；低置信度人工放行：前期内部+后期谨慎开放；低置信度也可“只进信息流，不给下注入口”）</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="第一阶段如何落地">第一阶段如何落地<a href="https://doc.traderx.fun/insights/traderx-phase-one#%E7%AC%AC%E4%B8%80%E9%98%B6%E6%AE%B5%E5%A6%82%E4%BD%95%E8%90%BD%E5%9C%B0" class="hash-link" aria-label="第一阶段如何落地的直接链接" title="第一阶段如何落地的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="大致五层架构">大致五层架构<a href="https://doc.traderx.fun/insights/traderx-phase-one#%E5%A4%A7%E8%87%B4%E4%BA%94%E5%B1%82%E6%9E%B6%E6%9E%84" class="hash-link" aria-label="大致五层架构的直接链接" title="大致五层架构的直接链接" translate="no">​</a></h3>
<ol>
<li class="">统一信号层（Signal Layer）
三路输入合流：新闻 API + X/Telegram 社交 + 链上聪明钱（PolyEdge 已有的 wallet scoring、SeaShell 的 Pons 聪明钱分析）。AI 归一化成 Event 对象：叙事标签、置信度、时效窗口、受影响标的。</li>
</ol>
<p>这一层是现在最有积累但最分散的部分——PolyEdge 的 smart money scoring 和 SeaShell 的叙事分析本质是同一套东西，应该合并成一个服务。</p>
<ol start="2">
<li class="">表达路由层（Expression Router）
把 Event 映射成三类可执行头寸，并列出各自的赔率 / 资金费 / 滑点 / 预期回报 / 最大亏损。让用户看到"这个事件有三种下注方式，成本分别是多少"。</li>
</ol>
<p>这一层是整个平台不可替代性的来源。 Hyperliquid 做不了（不知道 Polymarket 的赔率），Polymarket 做不了（不碰 meme），pump.fun 更做不了。</p>
<ol start="3">
<li class="">统一资金层
一个账户、一份 USD 余额，跨 Polymarket / HyperLiquid / 链上自动路由。Swap 不该是一个功能 tab，应该沉到底层做静默路由——用户永远不该知道钱在哪条链上。</li>
</ol>
<p>无缝的第一层是"钱"，不是"UI"。 这一点最容易被低估。</p>
<ol start="4">
<li class="">
<p>统一执行层
现有的签名机 + session key 架构直接复用到三条腿。高频下单走 session key，高价值动作留给 Turnkey/Privy/AWS-KMS，这个设计对三条腿都成立。</p>
</li>
<li class="">
<p>统一持仓与归因
跨三类资产的统一 PnL，按事件/叙事归因，而不是按资产归因。"你在'降息'这个叙事上总共赚了多少、通过哪种工具赚的"——这个视图目前市面上没有任何一家能做。</p>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="必须做">必须做<a href="https://doc.traderx.fun/insights/traderx-phase-one#%E5%BF%85%E9%A1%BB%E5%81%9A" class="hash-link" aria-label="必须做的直接链接" title="必须做的直接链接" translate="no">​</a></h3>
<ol>
<li class="">
<p>统一身份与账户模型，统一入金路由，统一账本展示（目的：基于信息流卡片的“3合1”一键直达的前提。特别强调：不会做保证金的统一），贯穿三条腿（永续/预测/meme）</p>
<ul>
<li class="">统一账本: 展示总资产，拆分到各腿。纯读取聚合，不动资金</li>
<li class="">统一入金: 充一笔 USDC，自动路由到目标链和形态</li>
<li class="">EOA（前端不展示，防止误充） + 合约钱包 (交易前可直接充值，首笔交易随交易完成部署)<!-- -->
<blockquote>
<p>方案需定型，幸好工厂合约地址各链一致，这也是为何目前不做solana</p>
</blockquote>
</li>
<li class="">只需充值USDC到用户的“合约钱包”，基于USDC的高频路径借助CCTP资金划拨（既快且无损耗；这是个异步任务，必须给用户明确状态），其余路径靠LI.FI（已经实现）</li>
<li class="">免桥，手续费代付（Paymaster，从用户的USDC支付）<!-- -->
<blockquote>
<p>要求：一个 <code>user_id</code> 贯穿三条腿，各腿账户作为子账户。资金不用统一，身份必须统一。</p>
</blockquote>
</li>
</ul>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">总资产 $12</span><span class="token punctuation" style="color:#393A34">,</span><span class="token number" style="color:#36acaa">480</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">├ 永续（HyperLiquid）  $6</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">200   可用 $2</span><span class="token punctuation" style="color:#393A34">,</span><span class="token number" style="color:#36acaa">100</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">├ 预测（Polymarket）    $4</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">300   持仓 3 个市场</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">└ Meme（多链）          $1</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">980   最大持仓 $890</span><br></div></code></pre></div></div>
</li>
<li class="">
<p>事件Event的数据结构（目的：既需满足“事件驱动”，同时是第二阶段的预留扩展位）</p>
<ul>
<li class="">前期预先选择高质量事件</li>
</ul>
<blockquote>
<p>比如可以基于Polymarket反向生成Event -&gt; 观点卡？</p>
</blockquote>
<ul>
<li class="">比如仓位上的事件戳，visibility字段</li>
<li class="">Event 的规范化质量</li>
</ul>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">Event</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    id</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    canonical_key        </span><span class="token comment" style="color:#999988;font-style:italic"># 去重键</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    title                </span><span class="token comment" style="color:#999988;font-style:italic"># 命题化、可判真假 ← 唯一不能凑合的字段</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    entities</span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    status               </span><span class="token comment" style="color:#999988;font-style:italic"># scheduled | active | resolved | expired</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    trading_window</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    resolution_time</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    sources</span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    confidence           </span><span class="token comment" style="color:#999988;font-style:italic"># 第一阶段先合成一个</span><br></div></code></pre></div></div>
</li>
<li class="">
<p>传播归因链（目的：社交侧）</p>
<ul>
<li class="">传播归因链：谁的动作 → 被谁看到 → 谁下了单</li>
</ul>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">Attribution </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  source_user_id      </span><span class="token comment" style="color:#999988;font-style:italic"># 谁的动作</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  target_user_id      </span><span class="token comment" style="color:#999988;font-style:italic"># 谁下的单</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  trade_id</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  channel             </span><span class="token comment" style="color:#999988;font-style:italic"># link | in_app_click | follow_window</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  weight              </span><span class="token comment" style="color:#999988;font-style:italic"># 不同渠道不同权重</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<ul>
<li class="">三条归因路径（参考了fomo）</li>
</ul>
<table><thead><tr><th>channel</th><th>机制</th><th>可靠度</th></tr></thead><tbody><tr><td><code>link</code></td><td>分享链接带 <code>?ref=user_id</code></td><td>最高，归因主体</td></tr><tr><td><code>in_app_click</code></td><td>从 feed 里某人的行为卡点入下单</td><td>高 —— <strong>这就是"无需额外操作"的真正含义</strong></td></tr><tr><td><code>follow_window</code></td><td>A 关注 B，B 买入后 A 在 N 分钟内买同一标的</td><td>低，噪音大，需权重折扣</td></tr></tbody></table>
<blockquote>
<p><strong>这条链是以后所有分成、返佣、社区长激励的计算基础。</strong> 没有它，以后想给社区长分钱会发现算不出来。
它和 <code>src_event</code> 是同一套管道 —— <strong>一笔交易同时记录"因为什么事件"和"因为谁"。</strong></p>
</blockquote>
<ul>
<li class="">仓位(Position)的三字段落地并写入</li>
</ul>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockTitle_OeMC">仓位Position的数据结构</div><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">Position</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">	event_links</span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic"># { event_id, origin, confidence }</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">	visibility           </span><span class="token comment" style="color:#999988;font-style:italic"># public | clan | private</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">	market_ref</span><br></div></code></pre></div></div>
<p><strong><code>event_links</code> 的 origin 三档：</strong></p>
<table><thead><tr><th>origin</th><th>来源</th><th>用途</th></tr></thead><tbody><tr><td><code>click</code></td><td>从卡片点入，URL/session 带 <code>src_event</code></td><td><strong>敞口计算 + 行为卡 + 质量系数</strong></td></tr><tr><td><code>manual</code></td><td>用户手动关联</td><td>同上</td></tr><tr><td><code>inferred</code></td><td>后验推断（标的在映射表内 + 时间窗内）</td><td>仅内部分析</td></tr></tbody></table>
<blockquote>
<p>event_links = 用户实际的行为归因 → 敞口计算、行为卡、质量系数</p>
</blockquote>
<ul>
<li class="">社交关系表</li>
</ul>
</li>
<li class="">
<p>市场映射表 MarketMapping：系统认为的对应关系 -&gt; "这件事可以在哪下注"</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">MarketMapping</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    event_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> venue</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> market_ref</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> direction</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    mapping_type         </span><span class="token comment" style="color:#999988;font-style:italic"># direct | proxy | narrative</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    origin               </span><span class="token comment" style="color:#999988;font-style:italic"># exact | ai_inferred | user_submitted</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">    correlation_strength</span><br></div></code></pre></div></div>
</li>
<li class="">
<p>在<strong>已有的永续 / 预测 / Meme 基础交易功能之上（前提是统一身份，统一账户）</strong>，叠加一层“事件信号流”（目的：核心入口）。</p>
</li>
<li class="">
<p>原始事件信号的全量留存 + 价格快照</p>
<ul>
<li class="">前期信号可以不那么及时，但必须高质量+“事件降级形态”</li>
<li class="">全量事件信号，是为了后期回溯和AI学习以评估质量</li>
</ul>
</li>
<li class="">
<p>钱包的极致非托管</p>
<blockquote>
<p>老实说，我不信任我们自己的服务端，但也受限于TurnKey/Privy的高额费用。因此暂定优先 AWS-KMS。高价值/高风险动作调用签名，其余走session-key来快速且省成本的日常交易。</p>
</blockquote>
</li>
<li class="">
<p>最简的跨腿敞口提示（目的：表达核心且独特的跨端资产敞口风险）</p>
<ul>
<li class="">优先聚焦在永续上的BTC/ETH 和 预测上的BTC/ETH快速涨跌，即基于“信号卡”提示你在诸如“XXX CPI数据”事件上已经跨端投入8000U （80%的持仓）<!-- -->
<blockquote>
<p>意义大不大，暂时不是很明确：有可能是高质量的亮点，也有可能是毫无用处的自欺欺人。</p>
</blockquote>
</li>
</ul>
</li>
<li class="">
<p>关系表</p>
<ul>
<li class="">follow + clan membership。建表极便宜，但<strong>关系是慢变量</strong>，越早积累越好。即使第一阶段前端只有一个"关注"按钮、没有 feed，表也要先建、数据先攒。</li>
</ul>
</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="不做什么">不做什么<a href="https://doc.traderx.fun/insights/traderx-phase-one#%E4%B8%8D%E5%81%9A%E4%BB%80%E4%B9%88" class="hash-link" aria-label="不做什么的直接链接" title="不做什么的直接链接" translate="no">​</a></h3>
<p>不拼流动性、不拼撮合速度、不在 meme 侧和 fomo 拼社交密度、不做统一账户的极致体验（追平即可）、不给投资建议、不 pool 资金（虽然可能快速启动，且已有资源在手，但务必酌情考虑），暂时不做Solana（不是商业考虑，而是前期技术架构不能过于复杂的权衡），不卖信号排序位</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="产品形态">产品形态<a href="https://doc.traderx.fun/insights/traderx-phase-one#%E4%BA%A7%E5%93%81%E5%BD%A2%E6%80%81" class="hash-link" aria-label="产品形态的直接链接" title="产品形态的直接链接" translate="no">​</a></h3>
<ol>
<li class="">主推: App客户端</li>
<li class="">子产品: 网页
<a href="https://flowmax.club/" target="_blank" rel="noopener noreferrer">永续合约/链上美股</a>:
<a href="https://polyedge.space/" target="_blank" rel="noopener noreferrer">预测市场</a>:
<a href="https://seashell.meme/" target="_blank" rel="noopener noreferrer">Meme币</a>:</li>
</ol>
<blockquote>
<p>主推产品（重新思考，有机重构），是公司统一对外的拳头应用；子产品（保持现状），是公司面向各个合作方的各种合作。</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="如何赚钱">如何赚钱<a href="https://doc.traderx.fun/insights/traderx-phase-one#%E5%A6%82%E4%BD%95%E8%B5%9A%E9%92%B1" class="hash-link" aria-label="如何赚钱的直接链接" title="如何赚钱的直接链接" translate="no">​</a></h2>
<blockquote>
<p>暂不详聊，稍后更新</p>
</blockquote>
<p>原则: 三条腿全部用协议原生的 fee 机制，不自建记账扣费</p>
<blockquote>
<p>一旦开始"从用户余额里扣钱"，托管性质就更明确了。原生 fee 机制天然兼容非托管：<strong>费用在交易发生的那一刻就分走，我们从来没有持有过用户的钱。</strong> 这里肯定有人会不同意，但暂定如此。</p>
</blockquote>
<p>可能的来源：</p>
<table><thead><tr><th>腿</th><th>机制</th><th>现状</th><th>备注</th></tr></thead><tbody><tr><td>Meme swap</td><td>聚合器 fee 参数（<code>feeRecipient</code> + <code>feePercent</code>，编排进 calldata）</td><td>OKX+LI.FI 已有</td><td>OKX和LI.FI都会抽成但值得</td></tr><tr><td>永续</td><td>Hyperliquid builder code（下单带 builder 地址 + bps，需用户一次性授权）</td><td>FlowMax 5–8 bps</td><td>授权签名是新用户摩擦，可用智能账户batch掉</td></tr><tr><td>预测市场</td><td>Polymarket builder code</td><td>PolyEdge 已有</td><td>目前PolyEdge需重构</td></tr><tr><td>发币</td><td>SeaShell 发行费</td><td>已ok</td><td></td></tr><tr><td>平台币</td><td>平台币在交易的各个环节都有切入的空间，让其有价值场景</td><td>待</td><td></td></tr><tr><td>法币入金</td><td>利润最大，风险最高</td><td>暂不考虑</td><td></td></tr></tbody></table>]]></content:encoded>
            <category>产品</category>
            <category>内部</category>
            <category>工程</category>
        </item>
        <item>
            <title><![CDATA[TraderX 到底在做什么 🔥]]></title>
            <link>https://doc.traderx.fun/insights/what-is-traderx</link>
            <guid>https://doc.traderx.fun/insights/what-is-traderx</guid>
            <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[TraderX 的定位：基于事件与社交双驱动的一站式 AI 加密交易平台（永续合约，预测市场，Meme币等）]]></description>
            <content:encoded><![CDATA[<p>核心定位：<strong>TraderX</strong> 是一个提供永续合约，预测市场，Meme币等一站式，基于事件和社交双驱动的AI交易平台。</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="何为事件驱动">何为“事件”驱动？<a href="https://doc.traderx.fun/insights/what-is-traderx#%E4%BD%95%E4%B8%BA%E4%BA%8B%E4%BB%B6%E9%A9%B1%E5%8A%A8" class="hash-link" aria-label="何为“事件”驱动？的直接链接" title="何为“事件”驱动？的直接链接" translate="no">​</a></h2>
<p>大白话：在每一条值得下注的事件消息，和用户能下注的地方之间，把路“铺通”，高速公路！</p>
<p>支点一：事件是现实世界的一等公民，市场交易只是它的表达。</p>
<p>“铺通”的含义是该具有时效性和状态的“事件”：</p>
<ul>
<li class="">宏观/机构等事件，只映射那些高关联度的“永续合约加密代币/美股”（并提供“利好”/“利空”标签，提供同等历史事件所引起的时间范围和价格影响幅度）；</li>
<li class="">只映射高关联度的“预测市场盘口”（并提供“？”）；</li>
<li class="">网络热点事件（含梗/叙事）只映射高潜力&amp;安全的meme币（含平台自发币）（并提供“？”）；</li>
<li class="">Clan事件（下单，结算收益等），只汇流给那些位于同一Clan的成员；</li>
<li class="">其它“降级形态事件”</li>
</ul>
<p>竞品都是从"资产"出发的：Hyperliquid 有合约、Polymarket 有盘口、fomo 有代币。而 TraderX 从"事件Event"出发。 用户的真实心智是"我看到一条事件消息，该消息附带了相关的合约/盘口/meme币及可参与度，可立刻一键参与"：</p>
<ul>
<li class="">而不是"我今天要交易 BTC，然后去查找宏观新闻，机构动向，巨鲸动作，支撑阻力位，再评估看多/看空的概率和敞口"，</li>
<li class="">也不是“我今天要买某个盘口，然后去社媒查看资讯，赛事预告，然后挑选盘口”，</li>
<li class="">也不是“我今天要冲这个meme币，然后去查看该币的叙事，该币的起源，参考聪明钱入场密集程度，评估入场时机，再决定投入资金量”。</li>
</ul>
<p>TraderX 跳出纷繁复杂的“信息获取-&gt;信号评估-&gt;趋势进度-&gt;标的选择-&gt;风险敞口”的冗长决策链路，抹平用户心智成本，以最简心流的模式促成最值得的交易。</p>
<p>因此：前期“高质量事件”尤为重要，真正值得下注的高质量事件，一天可能就 3-8 条，深夜和周末可能一条都没有。也就是说用户大部分时间看到的是“降级形态”。降级形态不能是"没有信号"，应该是强度更低但不断流的内容：</p>
<ul>
<li class="">进行中的事件（未结算，赔率在动）</li>
<li class="">昨日结算回顾（谁看对了）</li>
<li class="">行为型信号（主体）</li>
<li class="">社区公告</li>
<li class="">你现有仓位关联事件的进展</li>
</ul>
<p>这样"信号流"就永远不空，只是强度有高有低。这一点会反过来影响我们的数据模型——Event（事件） 需要有生命周期状态，而不只是"出现/消失"。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="何为社交驱动">何为“社交”驱动？<a href="https://doc.traderx.fun/insights/what-is-traderx#%E4%BD%95%E4%B8%BA%E7%A4%BE%E4%BA%A4%E9%A9%B1%E5%8A%A8" class="hash-link" aria-label="何为“社交”驱动？的直接链接" title="何为“社交”驱动？的直接链接" translate="no">​</a></h2>
<p>“社交”驱动，准确的说是“观点”社交驱动。即社交的对象是“观点”，而不是代币。社交的结果会正/负反馈于“可结算的观点信誉”。</p>
<p>fomo 已经赢下了"围绕代币的社交"。但代币涨跌不构成对错，撑不起信誉体系。我们的差别只在一个字段上：</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">fomo：      @某某 买入了 $AAA</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">TraderX：   @某某 因为「美联储加息」做空了 BTC</span><br></div></code></pre></div></div>
<p>支点二: 社交对象是“带信誉分的观点”，不是代币。</p>
<p>如何体现社交：</p>
<ol>
<li class="">
<p>每个用户有公开身份和主页，有稳定的Handle，战绩统计口径。</p>
</li>
<li class="">
<p>传播“归因链”： 谁的动作 -&gt; 被谁看到 -&gt; 谁下了单</p>
</li>
<li class="">
<p>同一 Clan的用户可以看到 “社区长/公会长”的“观点卡”/“行为卡”，这些观点和行为会事后结算并统计入信誉分</p>
<blockquote>
<p>当然了，社区长/公会长，也会cc从这些卡片入口而促成的交易中获益，这是权利；表现不佳会降低信誉分，这是义务。</p>
</blockquote>
<blockquote>
<p>基于“观点社交”的唯一前提是“观点”必须是可验证对错的。当Title不能判断真假时，基于信誉分的观点，下游结算，校准全部崩盘。</p>
</blockquote>
</li>
</ol>
<p>即“行为卡”混在“信号流”里，不会单独做“社交”Tab，用户不需要学新东西。</p>
<blockquote>
<p>所谓“Clan（战队/公会）”：全站 feed 太吵，关注单个人又太窄。 Clan 是中间的粒度——一小群你信任的人，形成一个有归属感的小圈子。</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="何为ai交易平台">何为“AI”交易平台？<a href="https://doc.traderx.fun/insights/what-is-traderx#%E4%BD%95%E4%B8%BAai%E4%BA%A4%E6%98%93%E5%B9%B3%E5%8F%B0" class="hash-link" aria-label="何为“AI”交易平台？的直接链接" title="何为“AI”交易平台？的直接链接" translate="no">​</a></h2>
<p>支点三： AI 用来保护用户，不是催促用户。</p>
<p>新闻AI分析得出json结果，Meme的AI叙事识别（高潜力安全代币+自动发币），跨腿敞口提示、安全过滤、叙事归因，用户的AI Agent代理决策，突发事件的AI预置模板填充，事件的AI预筛（高置信度AI自动放行；低置信度人工放行：前期内部+后期谨慎开放；低置信度也可“只进信息流，不给下注入口”）</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="基于以上理论而暂定的一些零散草案">基于以上理论而暂定的一些零散草案<a href="https://doc.traderx.fun/insights/what-is-traderx#%E5%9F%BA%E4%BA%8E%E4%BB%A5%E4%B8%8A%E7%90%86%E8%AE%BA%E8%80%8C%E6%9A%82%E5%AE%9A%E7%9A%84%E4%B8%80%E4%BA%9B%E9%9B%B6%E6%95%A3%E8%8D%89%E6%A1%88" class="hash-link" aria-label="基于以上理论而暂定的一些零散草案的直接链接" title="基于以上理论而暂定的一些零散草案的直接链接" translate="no">​</a></h2>
<p>结合“事件/社交”双驱动和“永续/预测/meme”三腿，可以将统一的“信号流”分为三种渲染卡片：</p>
<ul>
<li class="">“观点卡/行为卡”————有对错-&gt;可结算而进信誉体系（核心是永续和预测）；</li>
<li class="">“热点卡”————无对错-&gt;只是情绪表达而不进信誉体系（核心是meme币）；</li>
<li class="">“行为卡/社区卡”————社交驱动的主要载体。</li>
</ul>
<table><thead><tr><th></th><th>事件型</th><th><strong>行为型</strong></th><th><strong>社区型</strong></th></tr></thead><tbody><tr><td>内容</td><td>加息、CPI、黑客攻击、KOL 言论</td><td>聪明钱进场、社区长开仓、你关注的人加仓</td><td>社区/项目方公告（对标 team tag）</td></tr><tr><td>有对错吗</td><td>有，可结算</td><td>没有，只有结果</td><td>无</td></tr><tr><td>供给量</td><td><strong>稀缺</strong>，一天 3–8 条</td><td><strong>永不断流</strong>，24 小时都有</td><td>中等，随社区数增长</td></tr><tr><td>谁能提供</td><td>人人都能抓新闻</td><td><strong>只有有用户的平台</strong></td><td><strong>只有有社区的平台</strong></td></tr></tbody></table>
<div class="language-title=&quot;观点卡&quot; codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-title=&quot;观点卡&quot; codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">┌────────────────────────────────────┐</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 美联储 9 月加息至少 25bp            │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 9 月 18 日结算 · 来源 3 条          │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 平台观点：加息 34% / 不加息 66%     │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ (共 128 人表态)                     │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ ─── 在这里下注 ───                 │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 预测市场  YES 0.34 / NO 0.66  [去]  │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 永续      做空 BTC（弱相关） [去]   │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ ⚠️ 你已有 8,000 U 押在这件事上      │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">└────────────────────────────────────┘</span><br></div></code></pre></div></div>
<div class="language-title=&quot;热点卡&quot; codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-title=&quot;热点卡&quot; codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">┌──────────────────────────────────────────┐</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 🔥 @某KOL 发推："..."                     │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 12 分钟前 · 2.4 万转发 · 热度↑↑           │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 叙事标签：XXX                             │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                          │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ ─── 相关代币 ───                          │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                          │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ $AAA   市值 $2.1M  4分钟前上线            │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│        🅣 TraderX 发行                    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│        流动性 $180K · LP已锁 · 无铸造权    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    [买入] │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                          │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ $BBB   市值 $890K  9分钟前上线            │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│        市场发行 · 持仓 Top10 占 62% ⚠️     │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│        流动性 $40K                        │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    [买入] │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                          │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ $CCC   市值 $310K  2分钟前上线            │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│        市场发行 · ⚠️ 合约保留铸造权        │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    [买入] │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                          │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ ─── 聪明钱 ───                            │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 6 个高分地址已进场，集中在 $AAA / $BBB     │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                          │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ ⓘ meme 与新闻无从属关系，价格由情绪驱动    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">└──────────────────────────────────────────┘</span><br></div></code></pre></div></div>
<p>建议的meme筛选逻辑，按优先级：</p>
<ol>
<li class="">安全性先做硬性过滤，不是排序因子。铸造权未放弃、LP 未锁、貔貅合约、持仓过度集中——直接不进候选，不管热度多高。宁可卡片是空的。</li>
<li class="">流动性下限。深度太浅的不进，因为用户进得去出不来，那不是机会是陷阱。</li>
<li class="">聪明钱信号。这是 PolyEdge 那套 wallet scoring 和 SeaShell 的 Pons 分析能直接复用的地方——高分地址进场的，权重高。</li>
<li class="">叙事匹配度。AI 判断这个币的名字/图/描述和 KOL 那条推的叙事契合度，防止蹭无关热点的。</li>
<li class="">最后才是热度和涨幅。</li>
</ol>
<div class="language-title=&quot;行为卡&quot; codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-title=&quot;行为卡&quot; codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">┌────────────────────────────────────┐</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 👤 @某某 · 高分用户 · 12 分钟前     │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 因为「美联储 9 月加息」            │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 做空 BTC · 3x · $8,000             │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ 该事件上：做空 8 人 / 做多 2 人     │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│ TA 近 30 天：14/19 应验             │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│                                    │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">│           [ 关注 ] [ 我也参与 ]     │</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">└────────────────────────────────────┘</span><br></div></code></pre></div></div>
<blockquote>
<p>社区卡：社区长/项目方自助推送（对表team tag），对社区长吸引力直接（能在平台内触达自己的群）。</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="不做什么">不做什么<a href="https://doc.traderx.fun/insights/what-is-traderx#%E4%B8%8D%E5%81%9A%E4%BB%80%E4%B9%88" class="hash-link" aria-label="不做什么的直接链接" title="不做什么的直接链接" translate="no">​</a></h2>
<p>不拼流动性、不拼撮合速度、不在 meme 侧和 fomo 拼社交密度、不做统一账户的极致体验（追平即可）、不给投资建议、不 pool 资金，暂时不做Solana（不是商业考虑，而是前期技术架构不能过于复杂的权衡），不卖信号排序位</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="产品形态">产品形态<a href="https://doc.traderx.fun/insights/what-is-traderx#%E4%BA%A7%E5%93%81%E5%BD%A2%E6%80%81" class="hash-link" aria-label="产品形态的直接链接" title="产品形态的直接链接" translate="no">​</a></h2>
<ol>
<li class="">主推: App客户端</li>
<li class="">子产品: 网页
<a href="https://flowmax.club/" target="_blank" rel="noopener noreferrer">永续合约/链上美股</a>:
<a href="https://polyedge.space/" target="_blank" rel="noopener noreferrer">预测市场</a>:
<a href="https://seashell.meme/" target="_blank" rel="noopener noreferrer">Meme币</a>:</li>
</ol>
<blockquote>
<p>主推产品（重新思考，有机重构），是公司统一对外的拳头应用；子产品（保持现状），是公司面向各个合作方的各种合作。</p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="如何赚钱">如何赚钱<a href="https://doc.traderx.fun/insights/what-is-traderx#%E5%A6%82%E4%BD%95%E8%B5%9A%E9%92%B1" class="hash-link" aria-label="如何赚钱的直接链接" title="如何赚钱的直接链接" translate="no">​</a></h2>
<blockquote>
<p>暂不详聊，稍后更新</p>
</blockquote>
<p>原则: 三条腿全部用协议原生的 fee 机制，不自建记账扣费</p>
<blockquote>
<p>一旦开始"从用户余额里扣钱"，托管性质就更明确了。原生 fee 机制天然兼容非托管：<strong>费用在交易发生的那一刻就分走，我们从来没有持有过用户的钱。</strong></p>
</blockquote>
<p>可能的来源：</p>
<table><thead><tr><th>腿</th><th>机制</th><th>现状</th><th>备注</th></tr></thead><tbody><tr><td>Meme swap</td><td>聚合器 fee 参数（<code>feeRecipient</code> + <code>feePercent</code>，编排进 calldata）</td><td>OKX+LI.FI 已有</td><td>OKX和LI.FI都会抽成但值得</td></tr><tr><td>永续</td><td>Hyperliquid builder code（下单带 builder 地址 + bps，需用户一次性授权）</td><td>FlowMax 5–8 bps</td><td>授权签名是新用户摩擦，可用智能账户batch掉</td></tr><tr><td>预测市场</td><td>Polymarket builder code</td><td>PolyEdge 已有</td><td></td></tr><tr><td>发币</td><td>SeaShell 发行费</td><td>已ok</td><td></td></tr><tr><td>平台币</td><td>平台币在交易的各个环节都有切入的空间，让其有价值场景</td><td>待</td><td></td></tr><tr><td>法币入金</td><td>利润最大，风险最高</td><td>暂不考虑</td><td></td></tr></tbody></table>]]></content:encoded>
            <category>产品</category>
        </item>
    </channel>
</rss>