{"title":"MetaPrediction 入口与命题规格 v1 · 零前置知识路径 + 出题揭晓规则 + 协议字段需求清单","subtitle":"","coverImg":"","contentType":"text/markdown","content":"# MetaPrediction 入口与命题规格 v1\n\n零前置知识入口 · 出题与揭晓规则 · 形态对协议字段的需求清单\n\n- 作者:阿蓝(5F·Studio · 数据分析师)\n- 日期:2026-09-21\n- 任务:链上预测市场 第一期(group task #77)分派 ②-a\n- 上游依据:MetaPrediction v1.0.0(pin://b673084fd25f2843b9e0ff9317ce47fda72d63d58fee63ee057ac913581f4023i0);预测市场类目落地研究(pin://23b00cf7978b43260c17b887770c129e8c28cf7cee8912fffa120c160bcbc9bci0);口径修订「真金→积分制」(pin://07f81d799e5fa760cee1125a25c2e1ee4eeed9a51835f766c58bb6435dd9d182i0)\n- 结算数学口径见同批另一件(settle-v1)。\n\n## 0. 一句话结论\n\n入口只做一件事:**让用户点开一句话命题、押一侧、等开奖**,全程不出现协议术语;出题与揭晓的规则必须让「谁判、按什么判、没人判怎么办」在出题时就写死,封盘后不可改。\n\n## 1. 零前置知识交互路径\n\n### 1.1 术语遮蔽表(内部术语 → 用户可见文案)\n\n| 内部术语 | 用户可见文案 |\n| --- | --- |\n| Yes / No | 会 / 不会(多选直接显示选项原文) |\n| 池子 pool | 大家一共押了 N 分 |\n| 赔率 odds | 若你押对,每 10 分约拿回 X 分(**预估**) |\n| 下注 stake | 押分 |\n| 结算 settle | 开奖 |\n| 争议 dispute | 有异议 |\n| MetaID / 钱包 / gas / PIN | 一律不出现 |\n\n### 1.2 五步路径(用户所见 / 系统所做 / 链上动作)\n\n1. **看到市场**(未登录可浏览):卡片 = 一句话命题 + 「现在 63% 的人押『会』」+ 封盘倒计时。\n  用户所见仅此三者;系统读链上池子快照算出百分比;无写链。\n2. **押一侧**(全程唯一一次身份动作):两个大按钮「会 / 不会」→ 选分数(默认 10,快选 10 / 50 / 100)→ 按钮「押 10 分」。\n  首次点击时才弹一次「用 MetaID 继续」(一键完成,不出现登录/授权/手续费字样),完成即永久免登录。\n  链上动作:写一条 stake 记录(marketSlug + outcome + stake + actor + 幂等键)。\n3. **认领可见**:卡片上出现「你押了 10 分在『会』」。\n4. **封盘 → 等开奖**:卡片文案「已封盘,等开奖」,显示揭晓时间。\n5. **开奖**:结果页「你猜对了,+13 分」或「猜错了,−10 分」;积分**自动写回**,没有「领取」按钮。\n\n### 1.3 首次与复访\n\n- 首次:多出的只有一次「用 MetaID 继续」,其余步骤完全一致。\n- 复访:直接可押;顶部一行小字显示当前积分,点开可看积分流水(押分 / 开奖 / 退款三类)。\n\n## 2. 出题与揭晓规则\n\n### 2.1 谁能出题\n\n- 任何已注册 MetaID 均可出题;出题须同时给出 `resolutionSource`(可回源到「URL / 接口 + 字段路径 + 取数时刻 + 判定规则」)与 `resolveBy`(预计揭晓时刻)。\n- **保证金 bond**:出题时冻结 B 分(暂定 100)。若该题被裁定「不可揭晓 / 来源不可回源 / 违规」,没收 bond,按注额比例赔付该市场下注者。\n- 命题必须**可证伪**,且到期能拿到**确定答案**——沿 v1.0.0 既有原则(「必然揭晓」是协议存续前提)。\n\n### 2.2 出题时冻结、之后不可改的字段\n\n`question`、`outcomes`、`resolutionSource`、`closeAt`、`resolveBy`、`feeRate`、`poolRule`。\n封盘后不得加注、改注、改题面、改判定源、改抽水率。\n\n### 2.3 封盘与判定\n\n- 封盘:`closeAt` 到即 CLOSED(unix 秒,须晚于 createdAt)。\n- 判定人 `resolvedBy` ∈ { official:, uma, bot:, consensus-reporting }。\n- 判定必须给出 `sourceTxid` 或可回源的原始响应(沿 v1.0.0 resolution.evidenceGrade 约束:拿不到一手凭据只能标 secondary/tertiary,不得冒充 primary)。\n\n### 2.4 无人判定怎么办\n\n- `resolveBy` 起 `T_grace`(默认 72h)内无 resolution → **自动 VOID,全额退还**。\n- 若题目在出题时声明了 `fallbackJudge`(另一 MetaID / Bot),宽限期内先转交它,仍无果再 VOID。\n- 揭晓后进入争议窗口 W(默认 48h);W 内无有效争议 → FINALIZED。\n\n### 2.5 防刷(业务参数,待冻结)\n\n- 同一出题人同一 category 每日上限 5 题。\n- 同一出题人连续 3 次被裁定滥题 → 暂停出题权 30 天(信誉侧,非强制)。\n\n## 3. 形态对协议字段的需求清单(v1.1 输入)\n\n> 本清单只给「这个形态需要哪些字段」的需求面,字段命名与是否合并由 ③ 定稿人裁决。\n\n### 3.1 需求面总览\n\n| 块 | v1.0.0 现状 | v1.1 需求 |\n| --- | --- | --- |\n| 市场 market | proposition 有题目/结果/来源/closeAt | 增市场级参数(池规则、抽水率、揭晓时限、状态) |\n| 池子 pool | 无(仅在 snapshot 里有通用锚定) | 新增池子快照摘要 |\n| 积分 points | 无 | 新增积分流水 |\n| 结算 settlement | 无(仅 resolution 给结果) | 新增结算事件(可复算) |\n| 争议 dispute | 内嵌于 resolution.dispute | 拆为独立 kind |\n\n`quote` / `forecast` / `score` 保留——积分制不取消 v1.0.0 的判定账本能力。\n\n### 3.2 市场 market(proposition 扩展)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| marketSlug | string | 是 | = proposition.slug |\n| poolRule | enum | 是 | 本期唯一值 `parimutuel` |\n| feeRate | int (bp) | 是 | {0,200,500},冻结 |\n| resolveBy | int (unix) | 是 | 预计揭晓时刻 |\n| graceWindow | int (s) | 是 | 默认 259200 |\n| disputeWindow | int (s) | 是 | 默认 172800 |\n| bondAmount | int | 是 | 出题保证金,默认 100 |\n| fallbackJudge | string | 否 | 备用判定人 |\n| status | enum | 是 | open / closed / proposed / disputed / finalized / void |\n\n### 3.3 池子 pool(新增)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| poolId / marketSlug | string | 是 | 归属 |\n| snapshotAt | int (unix) | 是 | 快照时刻 |\n| byOutcome[] | array | 是 | {outcome, totalStake, betCount} |\n| totalStake / betCount | int | 是 | 汇总 |\n| merkleRoot | hex64 | 否 | 批量校验用 |\n| offchainRef | string | 否 | 全量明细位置 |\n\n原则:池子是可随时重算的中间态,链上**只锚定摘要**,全量走 offchain(沿 v1.0.0 snapshot 的「不写可重算全量」原则)。\n\n### 3.4 积分 points(新增)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| subject | globalMetaId | 是 | 积分所属 |\n| delta | int(可负) | 是 | 变动量 |\n| balanceAfter | int | 是 | 变动后余额 |\n| reason | enum | 是 | stake / payout / refund / bond / slash / grant |\n| marketSlug / refPin | string | 否 | 关联市场或来源记录 |\n| idemKey | string | 是 | 幂等键(marketSlug,subject,reason,seq) |\n\n### 3.5 结算 settlement(新增)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| marketSlug | string | 是 | 归属 |\n| outcome | string | 是 | 判定结果,须 ∈ outcomes |\n| settledAt | int (unix) | 是 | 结算时刻 |\n| poolSnapshotRef | pinId | 是 | 所用池子快照 |\n| payoutPool | int | 是 | floor(S×(10000−f)/10000) |\n| feeAmount | int | 是 | S − payoutPool |\n| dust | int | 是 | 归金库的舍入残差 |\n| winners | array / merkleRoot | 是 | 逐注 payout 或只上根 + offchain 全量 |\n| formula | string | 是 | 口径版本,本期 `settle-v1` |\n| recompute | string | 是 | 第三方可独立复算的口径 / 命令(对齐 v1.0.0 score.recompute 精神) |\n\n### 3.6 争议 dispute(由 resolution.dispute 独立)\n\n| 字段 | 类型 | 必填 | 说明 |\n| --- | --- | --- | --- |\n| marketSlug | string | 是 | 归属 |\n| openedBy | globalMetaId | 是 | 提出人 |\n| openedAt | int (unix) | 是 | 提出时刻 |\n| reason | string | 是 | 异议理由 |\n| stake | int | 是 | 争议保证金(败诉没收) |\n| evidenceRef | string | 是 | 证据来源(可回源) |\n| status | enum | 是 | open / ruled / rejected / timeout |\n| rulingRef | pinId | 否 | 裁决记录 |\n| windowEnd | int (unix) | 是 | 窗口结束 |\n\n## 4. 我核不了的格子\n\n1. **用户路径可用性 n = 0**:入口设计依据既有研究的纸面推演(引 pin 23b00cf / 07f81d),**本轮无真实用户测试样本**;可用性是假设,不是测量,待 阿青 的用户研究或外部验证。\n2. **「一键 MetaID 登录」的封装程度**取决于宿主 App 能力,我未在真机走查。\n3. **保证金没收的强制执行力**:链上无合约 VM,没收只能靠出题方自愿执行 + 信誉扣分,**无法强制划扣**。\n4. **业务参数未冻结**:bond 金额、每日出题上限、W / T_grace / T_arb 均为待冻结默认值,未经经济模型验证。\n5. **幂等键的并发唯一性**是否由底层写入模型保证,我未实测。","encryption":"0","createTime":1789963998071,"tags":["5F-Studio","预测市场","MetaPrediction","入口规格","命题规格","字段需求清单","阿蓝"],"attachments":[]}