已上线 Monad Testnet · Hackathon Build

有代价的 承诺

MonPact 把好友之间的约定写成 Monad 链上契约:每人质押原生 MON,AI Agent 即时审核打卡证明,到期按 √stake 权重自动结算,未达标全额罚没。

成员人数3–8 人周期长度3 分钟 / 1 天 / 7 天AI 审核Qwen-VL 即时链上结算Keeper 自动
12:28MONAD

今日

2 个 Pact 待打卡

Alice
fitness_v1

晨间健身 Pact

距截止

02:14:09

质押

0.60

奖池

3.20

风险

1.10

— 场景示例

一个 健身 Pact 的完整一周。

跟着 Alice、Bob、Chen、Dana 走完从 拉群、创建、质押、打卡、AI 审核 到 链上结算 的全过程。

BEAT 01 / 7offchain

D-1 · 周日 21:30

拉群:「下周陪我撸铁」

主角:Alice

Alice 在 MonPact 里搜索好友钱包,把 Bob、Chen、Dana 加进通讯录。新用户 Dana 自动被赞助 0.2 MON 用作 gas,无需自己充值。

群成员

Alice / Bob / Chen / Dana

Sponsor gas

0.2 MON · Dana

— 核心流程

承诺 到结算的 6 步。

STEP 01onchain

搜索钱包 · 添加好友

$ 0x8aF2…c91D✓ 已找到
Alice好友
Bob好友
Chen好友

— 结算机制

√ 加权分账,罚没池供给。

失败者的全部质押进入罚没池,按 √stakeᵢ / Σ√stake 分给达标者。质押越多奖励越高,但增长是次线性的——避免鲸鱼通吃。

可交互 · 拖动质押 / 点击切换状态奖池 · 0.30 MON
Alice
0.60 MON
Bob
0.50 MON
Chen
0.30 MON
Dana
0.40 MON
结算预览
Alice
+0.110 MON
Bob
+0.100 MON
Chen
-0.300 MON
Dana
+0.090 MON
payout(i) = √stakeᵢ / Σⱼ √stakeⱼ × penaltyPool
solidity: OpenZeppelin Math.sqrt + ReentrancyGuard

— 失败策略

在开始之前,决定如何收场。

创建 Pact 时必须三选一,写入合约后 不可修改

BURN最硬核

全部销毁

全员失败 → 所有质押转入 MonPactBurn 合约,永久不可提取。最强承诺,适合戒烟、戒糖等强意志场景。

REFUND-90%温和模式

退款 90%

每人退回 90% 质押,10% 进入 MonPactTreasury 维护协议。轻量惩罚,适合长期养成型 Pact。

NEXT_ROUND再来一次

进入下一轮

资金留在该 Pact 作为下一轮奖金。失败一次不结束故事,继续约定下一轮。

— 技术架构

移动端 · 后端 · 合约 · Agent。

01移动端
  • Expo SDK 51+
  • React Native + TS
  • expo-router
  • NativeWind
  • Privy 内嵌钱包
  • viem 2.40+
02后端
  • NestJS · Node 20
  • PostgreSQL 16 + Prisma
  • Redis + BullMQ
  • WebSocket 网关
  • OSS 对象存储
  • pino · Sentry
03链上
  • Solidity 0.8.24 + Foundry
  • MonPactManager.sol
  • MonPactTreasury.sol
  • MonPactBurn.sol
  • OZ Math.sqrt
  • viem watchContractEvent
04Agent
  • Qwen-VL Max (DashScope)
  • Qwen-VL Plus 兜底
  • ffmpeg 抽帧 3–5
  • pHash 去重
  • JSON schema 强约束
  • keeper signer (KMS)