跳到主要内容

04 · 完整业务流程

前面章节已经介绍核心对象、系统结构和参与角色。本章把它们串成一项 RWA 资产从发行到退出的完整生命周期。

4.1 生命周期总览

流程主要责任方链上结果
资产发行平台 + 资产发行方新资产 Suite
投资者准入投资者 + 资格机构 + 发行方isVerified == true
增发Token Agent投资者余额增加
转账Token 持有人合格钱包之间余额转移
销毁Token Agent投资者余额和总量减少

4.2 第一步:发行资产

资产发行方先确定资产、资格、规则和角色,再通过平台准入入口创建 Suite。

发行前需要确定:

类别内容
资产名称、代号、decimals、现实权益
资格投资者必须持有哪些 Claim Topic
签发机构哪些 ClaimIssuer 可签发对应 Topic
规则国家、持仓、发行量、锁定期等限制
角色Owner、Token Agent、IR Agent
环境测试网或 BOT 主网

发行后需要公开:

  • Token 和 Suite 的代理地址;
  • Chain ID、RPC 和浏览器;
  • 资格要求与交易规则;
  • 合约版本和源码验证状态;
  • Token 是否暂停;
  • 资产生效时间。

新 Token 默认处于暂停状态。暂停期间可以增发和销毁,但普通投资者转账会失败。开放流转前应完成上线检查并由 Token Agent 调用 unpause()

4.3 第二步:投资者准入

投资者准入不是一次调用,而是三方共同完成的流程:

每一步由谁完成

步骤发起方是否上链gas 支付方完成标志
提交和审核材料投资者、资格机构审核结论
创建 ONCHAINID投资者投资者钱包关联身份
生成 Claim 签名资格机构签名和 Claim 字段
写入 Claim投资者投资者ClaimAdded
登记到目标资产IR Agent资产发行方IdentityRegistered
查询最终资格任意应用只读无交易 gasisVerified == true

为什么 ClaimSigner 不直接调用 addClaim

ClaimSigner 的职责是证明资格结论,投资者的职责是控制自己的 ONCHAINID。

因此通常采用:

ClaimSigner 链下签名

投资者取得签名

投资者调用自己的 ONCHAINID.addClaim

这样资格机构无需为每位投资者支付链上 gas,也不需要控制投资者身份。

应用如何判断准入完成

不要只检查某一笔交易是否成功,应按顺序确认:

  1. IdFactory.getIdentity(wallet) 返回有效身份;
  2. ONCHAINID 中存在目标 Topic 的 Claim;
  3. IdentityRegistry.contains(wallet) == true
  4. IdentityRegistry.isVerified(wallet) == true

最终以目标 Token 绑定的 IdentityRegistry 为准。

4.4 第三步:增发

投资者准入完成并满足线下业务条件后,由 Token Agent 增发份额。

应用应:

  1. 先确认申购或发行条件已经满足;
  2. 再次查询接收方资格;
  3. decimals 换算金额;
  4. 由 Token Agent 发起交易;
  5. 等待交易回执和 Transfer 事件;
  6. 最后更新业务订单状态。

交易仅广播时,不应把资产标记为已到账。

4.5 第四步:投资者转账

Token 已开放转让后,持有人可以向另一名合格投资者转账。

提交前建议:

校验 Chain ID 和 Token 地址
→ 读取 decimals
→ 检查 paused 和冻结状态
→ 查询接收方 isVerified
→ 可选调用 canTransfer 预检查
→ 持有人签名发送
→ 等待回执

canTransfer 只是预检查。交易确认前链上状态可能变化,最终结果仍以实际交易为准。

授权转账使用标准 ERC-20 流程:

4.6 第五步:赎回与销毁

销毁通常对应赎回或份额注销:

链上销毁和链下兑付是两个不同状态。应用应分别记录,不应仅凭 burn 成功推断现实资金已经到账。

4.7 Transfer 事件如何解释

fromto含义
零地址投资者增发
投资者零地址销毁
非零地址非零地址普通转账或强制转移

如果需要区分普通转账和 Agent 强制转移,还应结合交易调用方法及管理事件。

4.8 常见失败

现象常见原因处理方式
isVerified == false未登记、Claim 缺失/失效、Issuer 不受认可定位准入步骤,不要直接重试增发
Identity is not verified.mint 接收方资格不通过完成资格流程
Compliance not followed触发资产规则查询规则并联系发行方
Pausable: pausedToken 尚未开放转让停止提交并展示暂停状态
钱包被冻结发行方冻结该地址联系发行方
余额不足金额换算错误或可用余额不足重新读取 decimals 和冻结数量
权限错误调用方不是 Agent/Owner交由对应角色处理
交易长时间 pendingRPC、gas 或网络问题按交易哈希查询,避免重复业务指令

4.9 接下来阅读什么

现在已经理解完整业务流程。进入编码阶段后,可按调用方和用途查询接口与事件:

继续阅读:05 · 合约接口与事件