RWA 代币
每项资产由一个独立的 RWAToken 表示——一种 ERC-3643 风格的 ERC-20 证券型代币。它承载资产的投资者规则、收益分配机制,以及受监管发行方所需的管理手段。
生命周期
- 创建。 获批发行方调用
RWATokenFactory.createToken(config)。代币以信标代理部署,发行方成为其admin;随后治理方把它登记为系统合约。 - 募资。 份额通过认购铸造给投资者,或由管理员用
mintFor直接铸造——只能铸给合格钱包。 - 运营。 发行方分配收益、为赎回资金池注资;持有人领取、赎回和交易。
- 到期。
maturityTime过后,任何人都可以调用checkMaturity()将代币切换为已到期。普通转账停止,份额仍可从场所转给合格持有人,赎回继续进行。
配置
| 配置项 | 含义 | 之后能否修改 |
|---|---|---|
name、symbol、decimals | ERC-20 元数据;符号在工厂内唯一 | 否 |
assetClass | 简短标签,如 solar、wind、storage | 否 |
settlementToken | 用于分红、赎回和认购的稳定币(须在白名单内) | 否 |
requireKyc | 所有参与方都必须持有有效 KYC | 否 |
requireAccredited | 接收方必须是合格投资者 | 是(管理员) |
allowedJurisdictions | 接收方可所在的辖区(空表示不限,包括未知) | 是 |
redemptionPrice | 每 10^decimals 个代币单位兑付的结算币数量(0 表示关闭赎回) | 是 |
redemptionDelaySeconds | 申请与执行之间的通知期(有上限) | 是 |
perHolderCap | 单个持有人最大余额(0 表示不限) | 是 |
maturityTime | 到期时间(0 表示永续) | 是 |
deviceIds | 为该资产产生收益的 AssetHub 设备 | 是 |
metadataURI | 发行文件与法律条款(IPFS 或 HTTPS) | 是 |
持有人请认真看"之后能否修改"这一列。 管理员可以随时通过 updateToken 调低赎回价格、推迟到期日、调整允许辖区和持有上限。合约也没有设定供应上限——管理员可以向合格钱包增发份额。每次修改都会发出事件,但都不需要持有人同意。
状态
| 状态 | 转账 | 铸造 | 赎回申请 | 分红 |
|---|---|---|---|---|
| 活跃 | 允许(受规则约束) | 允许 | 允许 | 允许 |
| 暂停 | 禁止 | 禁止 | 禁止 | 仍可领取 |
| 已到期 | 仅限从场所转给合格持有人 | 禁止 | 允许 | 允许 |
管理员可以随时设置任意状态,包括把已到期的代币改回活跃。checkMaturity() 是从活跃变为已到期的无需许可途径。
分红
收益通过每单位累加器分配,一次分配的成本与持有人数量无关。
- 发行方授权代币合约从发行方钱包划转结算币(保留常备授权额度,Keeper 就能代为触发分配)。
distributeDividend(amount)划入amount,并把amount × 10²⁷ / eligibleSupply累加到accDividendPerUnit。- 每位持有人的可领取金额为
余额 × (accDividendPerUnit − 持有人检查点) / 10²⁷,再加上已结算部分;余额每次变动时自动更新。 - 持有人随时通过
claimDividends()领取,领取时适用接收方合规校验。
可分红供应量 = 总供应量 − 赎回托管中的份额 − 不参与分红的场所余额。取整产生的零头留在 dividendResidual 中,可由管理员提走,绝不影响持有人应得部分。
分红没有保证,只有发行方分配时才会产生。链保证的是每次分配都按比例分摊且可以领取;它无法保证资产产生收入,也无法保证发行方把收入分出来。
赎回
- 持有人调用
requestRedemption(units)。份额进入代币托管,停止参与分红。兑付金额在申请时锁定:units × redemptionPrice / 10^decimals。 - 到达
executeAfter(申请时间 + 通知期)后,任何人都可以调用executeRedemption(id);管理员或治理方可以提前执行。 - 执行时从赎回资金池向持有人付款,并销毁托管份额。资金池不足时执行会回滚,直到发行方通过
fundRedemptionPool补足。执行还会对持有人适用接收方规则——此后失去资格(KYC、合格投资者、辖区、冻结)的持有人须先恢复资格才能收到兑付。 - 管理员可以附原因取消待处理申请,份额退回持有人。
每位持有人的待处理申请数有上限(默认 64)。代币暂停期间不接受赎回申请。
发行方权限
| 权限 | 函数 |
|---|---|
| 向合格钱包铸造 | mintFor |
| 从任何持有人处销毁(追回) | burn |
| 持有人之间强制转移 | forceTransfer |
| 在本代币上冻结 / 解冻持有人 | setFrozen |
| 暂停、恢复或设为到期 | setStatus |
| 修改条款(见上方配置表) | updateToken |
| 批准场所及其分红处理方式 | setVenue、setVenueDividends |
| 分配分红、提走零头 | distributeDividend、sweepDividendResidual |
| 为资金池注资、取消申请 | fundRedemptionPool、cancelRedemption |
治理方同样拥有全部管理员权限,此外还可以更换管理员(setAdmin)、修改单个代币参数,并通过信标一次升级所有代币。
设备绑定
代币会列出产生其收益的 AssetHub 设备。创建时,每台设备都必须存在、处于活跃状态,并由该代币的管理员运营;只有治理方可以绑定由他人运营的设备。见 AssetHub。
事件
Minted、Burned、ForceTransferred、FrozenSet、TokenStatusSet、TokenUpdated、VenueSet、VenueDividendsSet、DividendDistributed、DividendClaimed、PoolFunded、RedemptionRequested、RedemptionExecuted、RedemptionCancelled,以及标准 ERC-20 事件。