Skip to content

第三章:用户故事

定义完整的功能需求和验收标准


3.1 Epic 概览

BFM Pay 的功能需求组织为 10 个 Epic:

Epic名称核心用户故事
1拥有钱包创建、导入钱包
2查看资产余额查看、链切换
3转账发起转账、扫码
4收款展示收款码
5质押Mint/Burn
6安全设置应用锁、备份
7地址管理地址簿
8DWEB 交互授权、签名
9个性化语言、货币
10我的设置入口

Epic 1: 我想拥有一个自己的钱包

作为一个新用户,我想创建自己的数字钱包,以便开始管理我的数字资产。

Story 1.1: 首次启动引导

场景:用户首次打开 App

主线流程

  1. 展示产品价值介绍(3页轮播)
    • "便捷转账 - 随时随地管理资产"
    • "多链支持 - 无限可能"
    • "全面安全 - 资产更安全"
  2. 点击"开始使用"或"我有钱包"
  3. 进入创建/导入选择

验收标准

  • [ ] 轮播页最多 3 页,可跳过
  • [ ] 跳过后不再显示(记录到 localStorage)
  • [ ] 支持左右滑动切换

Story 1.2: 创建新钱包

场景:用户选择创建新钱包

主线流程

设置钱包锁 → 生成助记词 → 备份提示 → 验证助记词 → 创建成功

步骤详情

步骤用户操作系统响应
1绘制图案(至少4点)实时显示连接点数
2确认图案检查一致性
3点击下一步生成 12 词助记词
4点击"显示助记词"展示助记词(默认模糊)
5点击"我已备份"进入验证步骤
6填写 3 个随机位置的词验证正确性
7点击"完成创建"派生多链地址,跳转首页

支线流程

  • 用户点击"稍后备份" → 首页显示"未备份"警告

异常处理

异常提示处理
图案点数不足"请至少连接4个点"禁用下一步
两次图案不一致"两次图案不一致"禁用下一步
助记词验证错误"第X个单词不正确"允许重试

Story 1.3: 导入已有钱包

场景:用户已有助记词或私钥

助记词导入流程

选择词数 → 输入助记词 → 设置钱包锁 → 导入成功

私钥导入流程

选择链 → 输入私钥 → 设置钱包锁 → 导入成功

验收标准

  • [ ] 支持 12/24 词助记词
  • [ ] 支持助记词粘贴自动分词
  • [ ] 私钥导入仅导入单链地址
  • [ ] 导入后派生所有支持的链地址

Epic 2: 我想查看我的资产

作为钱包用户,我想随时查看我的资产情况,了解我有多少钱。

Story 2.1: 查看资产总览

场景:用户登录后进入首页

页面结构

┌─────────────────────────────────┐
│  [钱包名称 ▼]     [链名称 ▼]    │  ← 钱包/链切换
├─────────────────────────────────┤
│                                 │
│     ┌───────────────────┐      │
│     │   钱包卡片         │      │
│     │   地址: 0x71C...  │      │
│     │   [复制] [二维码]  │      │
│     └───────────────────┘      │
│                                 │
│  [转账]   [铸造]   [收款]       │  ← 快捷操作
│                                 │
├─────────────────────────────────┤
│  [资产]  [DP]                   │  ← Tab 切换
├─────────────────────────────────┤
│  ┌─────────────────────────┐   │
│  │ ETH        10.5 ETH     │   │
│  │ USDT       1,000 USDT   │   │
│  │ ...                     │   │
│  └─────────────────────────┘   │
└─────────────────────────────────┘

验收标准

  • [ ] 下拉刷新更新余额
  • [ ] 点击代币进入详情页
  • [ ] 支持切换资产/DP 视图
  • [ ] 离线时显示缓存数据

Story 2.2: 切换钱包/链

钱包切换

  1. 点击钱包名称
  2. 底部弹出钱包列表
  3. 选择目标钱包
  4. 刷新首页数据

链切换

  1. 点击链名称
  2. 底部弹出链列表
  3. 选择目标链
  4. 刷新首页数据

验收标准

  • [ ] 保持最近选择的钱包/链
  • [ ] 切换时显示加载状态
  • [ ] 切换后余额自动更新

Epic 3: 我想给别人转账

作为钱包用户,我想把代币转给别人,完成支付或转移。

Story 3.1: 发起转账

主线流程

输入地址 → 输入金额 → 确认详情 → 验证钱包锁 → 发送成功

页面结构

┌─────────────────────────────────┐
│  ←  发送                        │
├─────────────────────────────────┤
│                                 │
│  当前链: Ethereum               │
│                                 │
│  收款地址                        │
│  ┌─────────────────────────┐   │
│  │ 输入或粘贴地址      [扫] │   │
│  └─────────────────────────┘   │
│                                 │
│  金额                           │
│  ┌─────────────────────────┐   │
│  │ 0.00              [全部]│   │
│  └─────────────────────────┘   │
│  可用: 10.5 ETH                 │
│                                 │
│  网络费用: ~0.002 ETH           │
│                                 │
│  ┌─────────────────────────┐   │
│  │       确认发送           │   │
│  └─────────────────────────┘   │
└─────────────────────────────────┘

异常处理

异常提示处理
地址格式错误"地址格式不正确"禁用发送
余额不足"余额不足"禁用发送
手续费不足"ETH 余额不足以支付手续费"提示充值
收款地址是自己"收款地址不能与发送地址相同"禁用发送

Story 3.2: 扫码转账

主线流程

  1. 点击扫码按钮
  2. 相机扫描二维码
  3. 解析地址(可能包含金额)
  4. 自动填入表单
  5. 继续转账流程

验收标准

  • [ ] 支持从相册选择
  • [ ] 支持解析带金额的二维码
  • [ ] 扫描超时 60 秒提示

Epic 4: 我想收款

作为钱包用户,我想让别人给我转账。

Story 4.1: 展示收款码

页面结构

┌─────────────────────────────────┐
│  ←  收款                        │
├─────────────────────────────────┤
│                                 │
│     ┌───────────────────┐      │
│     │                   │      │
│     │   [二维码图片]     │      │
│     │                   │      │
│     └───────────────────┘      │
│                                 │
│  0x71C7656EC7ab88b098defB...   │
│                                 │
│        [复制地址]               │
│                                 │
│  当前链: Ethereum               │
│                                 │
└─────────────────────────────────┘

验收标准

  • [ ] 二维码包含完整地址
  • [ ] 支持复制地址
  • [ ] 支持保存二维码到相册
  • [ ] 可选设置收款金额

Epic 5: 我想进行跨链质押

作为进阶用户,我想通过质押外链代币获取内链代币。

Story 5.1: Mint 代币

场景:用户想用 USDT 铸造 USDM

主线流程

选择质押代币 → 选择获取代币 → 输入数量 → 确认 → 等待完成

前置条件

  • 钱包必须同时支持质押链和目标链

验收标准

  • [ ] 显示 1:1 兑换关系
  • [ ] 显示预估到账时间
  • [ ] 支持查看质押历史

Epic 6: 我想保护我的钱包安全

作为用户,我希望我的钱包是安全的,不会被他人使用。

Story 6.1: 设置应用锁

主线流程

  1. 进入设置 → 应用锁
  2. 开启钱包锁
  3. 绘制钱包锁图案验证
  4. 设置成功

验收标准

  • [ ] 支持钱包锁(九宫格图案锁)
  • [ ] 支持指纹锁(需先开启钱包锁)
  • [ ] 支持指纹支付

Story 6.2: 备份助记词

主线流程

  1. 进入钱包管理 → 备份
  2. 绘制钱包锁图案验证
  3. 显示安全提示
  4. 展示助记词
  5. 完成确认验证

验收标准

  • [ ] 验证图案后才能查看
  • [ ] 提醒用户确保周围无人
  • [ ] 完成后消除"未备份"警告

Epic 7: 我想管理常用地址

作为频繁转账的用户,我不想每次都手动输入地址。

Story 7.1: 地址簿管理

功能

  • 添加地址(名称 + 链 + 地址)
  • 编辑地址
  • 删除地址
  • 转账时选择地址

验收标准

  • [ ] 按链分类显示
  • [ ] 支持搜索
  • [ ] 转账成功后提示保存

Epic 8: 我想与 DApp 交互

作为 Web3 用户,我想用钱包连接和使用 DApp。

Story 8.1: 地址授权

场景:DApp 请求获取钱包地址

流程

  1. DApp 发起 getAddress 请求
  2. 钱包弹出授权页
  3. 显示 DApp 信息和请求内容
  4. 用户选择授权范围
  5. 验证钱包锁确认
  6. 返回地址信息

授权类型

  • 单钱包授权:当前钱包的所有链地址
  • 单链授权:指定链的所有钱包地址
  • 全部授权:所有钱包的所有地址

Story 8.2: 签名授权

签名类型

类型场景风险等级
消息签名登录验证
转账签名发起转账
合约签名智能合约交互

验收标准

  • [ ] 显示 DApp 来源信息
  • [ ] 转账签名显示完整交易详情
  • [ ] 高风险操作需验证钱包锁

Epic 9: 我想个性化我的钱包

作为用户,我想按自己的偏好使用钱包。

Story 9.1: 切换语言

支持语言

  • 简体中文 (zh-CN)
  • 繁体中文 (zh-TW)
  • English (en)
  • 日本語 (ja)
  • 한국어 (ko)
  • العربية (ar) - RTL

验收标准

  • [ ] 切换后立即生效
  • [ ] 记住用户选择
  • [ ] 首次自动检测系统语言

Story 9.2: 设置货币单位

支持货币: USD, CNY, EUR, JPY, KRW 等

验收标准

  • [ ] 首页显示换算后的法币价值
  • [ ] 汇率定期更新
  • [ ] 默认使用 USD

Epic 10: "我的"页面

作为用户,我需要一个统一的入口管理所有设置。

页面结构

┌─────────────────────────────────┐
│  👤 钱包名称                     │
│     0x71C7...976F               │
├─────────────────────────────────┤
│  📁 钱包管理                  >  │
│  📒 地址簿                    >  │
├─────────────────────────────────┤
│  🔒 应用锁                    >  │
│  🔑 修改密码                  >  │
│  📝 备份助记词              🔴 > │ ← 未备份红点
├─────────────────────────────────┤
│  🌐 语言              简体中文 > │
│  💰 货币单位              CNY > │
│  ⛓️ 链配置                    >  │
├─────────────────────────────────┤
│  ❓ 帮助与反馈                >  │
│  ℹ️ 关于                      >  │
└─────────────────────────────────┘

本章小结

  • 10 个 Epic 覆盖完整用户旅程
  • 每个 Story 包含主线流程、支线流程、异常处理
  • 用户心智考量贯穿每个设计决策
  • 验收标准明确,便于测试验证

下一篇

完成产品篇后,继续阅读 第二篇:设计篇,了解产品的交互和视觉设计。

Released under the MIT License.