04 · 完全なビジネスプロセス
本章では、RWA 資産の発行から退出までのライフサイクルを接続します。
4.1 ライフサイクル概要
| プロセス | 主な責任者 | オンチェーン結果 |
|---|---|---|
| 資産発行 | プラットフォーム + 資産発行者 | 新しい資産 Suite |
| 投資家オンボーディング | 投資家 + 適格性機関 + 発行者 | isVerified == true |
| Mint | Token Agent | 投資家残高が増加 |
| Transfer | Token 保有者 | 適格ウォレット間で残高移動 |
| Burn | Token Agent | 投資家残高と総供給量が減少 |
4.2 第 1 段階:資産を発行
発行者は資産、適格性、ルール、ロールを定義し、プラットフォーム審査入口から Suite を作成します。
| 分類 | 内容 |
|---|---|
| 資産 | 名称、シンボル、decimals、現実の権利 |
| 適格性 | 投資家に必要な Claim Topics |
| 発行機関 | 各 Topic の認定 ClaimIssuers |
| ルール | 国、保有、供給、ロックアップなどの上限 |
| ロール | Owner、Token Agent、IR Agent |
| 環境 | Testnet または BOT Mainnet |
発行後は Token と Suite のプロキシアドレス、Chain ID、RPC、Explorer、適格要件、取引ルール、コントラクトバージョン、ソース検証状態、pause 状態、有効開始時刻を公開します。
新しい Token は初期状態で pause されています。pause 中も mint と burn は可能ですが、通常の投資家 transfer は失敗します。ローンチ検査後に Token Agent が unpause() を呼び出します。
4.3 第 2 段階:投資家オンボーディング
各段階の実行者
| 段階 | 実行者 | オンチェーン | gas 支払者 | 完了シグナル |
|---|---|---|---|---|
| 資料提出・審査 | 投資家、適格性機関 | いいえ | なし | 審査結果 |
| ONCHAINID 作成 | 投資家 | はい | 投資家 | wallet と ID の紐付け |
| Claim 署名生成 | 適格性機関 | いいえ | なし | 署名と Claim フィールド |
| Claim 書き込み | 投資家 | はい | 投資家 | ClaimAdded |
| 対象資産へ登録 | IR Agent | はい | 資産発行者 | IdentityRegistered |
| 最終適格性照会 | 任意のアプリ | read-only | トランザクション gas なし | isVerified == true |
ClaimSigner が addClaim を直接呼び出さない理由
ClaimSigner がオフチェーン署名
↓
投資家が署名を受領
↓
投資家が ONCHAINID.addClaim を呼び出す
ClaimSigner は適格性判断を証明し、投資家は自分の ONCHAINID を管理します。適格性機関が全投資家の gas を支払ったり ID を制御したりしません。
オンボーディング完了の判定
IdFactory.getIdentity(wallet)が有効な ID を返す。- ONCHAINID に対象 Topic の Claim がある。
IdentityRegistry.contains(wallet) == true。IdentityRegistry.isVerified(wallet) == true。
対象 Token に紐づく IdentityRegistry が最終判断元です。
4.4 第 3 段階:Mint
申込・発行条件、受取人適格性、decimals による金額変換を確認し、Token Agent が送信します。レシートと Transfer を待ってから業務注文を最終更新します。ブロードキャストだけでは着金完了を意味しません。
4.5 第 4 段階:投資家 transfer
推奨順序:
Chain ID と Token アドレスを検証
→ decimals を読み取り
→ paused と freeze 状態を確認
→ 受取人 isVerified を照会
→ 必要に応じて canTransfer
→ 保有者が署名・送信
→ レシートを待機
canTransfer は事前検査です。確定前に状態が変わり得るため、最終結果は実トランザクションで判断します。
4.6 第 5 段階:償還と burn
オンチェーン burn とオフチェーン決済は別の状態として記録します。burn 成功は現実資金の受領を証明しません。
4.7 Transfer イベントの解釈
from | to | 意味 |
|---|---|---|
| ゼロアドレス | 投資家 | Mint |
| 投資家 | ゼロアドレス | Burn |
| 非ゼロアドレス | 非ゼロアドレス | 通常 transfer または強制移転 |
通常 transfer と Agent の強制移転は、呼び出しメソッドと管理イベントも確認して区別します。
4.8 よくある失敗
| 症状 | 主な原因 | 対応 |
|---|---|---|
isVerified == false | 未登録、Claim 不足・期限切れ、未承認 Issuer | 失敗したオンボーディング段階を特定 |
Identity is not verified. | mint 受取人が不適格 | 適格性フローを完了 |
Compliance not followed | 資産ルールに抵触 | ルール照会後、発行者へ確認 |
Pausable: paused | transfer 未有効化 | 送信停止、pause 状態を表示 |
| ウォレット freeze | 発行者がアドレスを freeze | 発行者へ連絡 |
| 残高不足 | 金額変換誤り、利用可能残高不足 | decimals と freeze 数量を再読込 |
| 権限エラー | 呼出者が必要な Agent/Owner ではない | 正しいロールへルーティング |
| pending 継続 | RPC、gas、ネットワーク問題 | tx hash で照会し業務指示を重複させない |