本文へ移動
    hazBasehazBaseDocs
    TOKEN DESIGN

    トークンの設計思想

    hazBaseでは、お金だけでは捉えにくい支援・利用・実績・参加も、権利や記録として扱います。何に価値を見いだし、誰と共有し、どのように使い続けるか。その考え方を、トークンの種類と運用ルールへ落とし込むためのガイドです。

    価値と参加の関係から考える

    トークンは、それだけで新たな価値や収益を生むものではありません。保有すると何ができるか、誰がその約束を支えるか、利用や活動の結果をどう確かめるかを具体的にすることで、継続的な支援や参加につながります。hazBaseでは、次の四つを設計の出発点としています。

    応援

    支援したことを記録し、その後の活動報告や参加の機会につなげる。

    地域活動への支援を記録し、支援者向けの報告会への参加資格と結び付ける。

    構成例を見る

    利用

    使えるもの・回数・期間を明確にし、サービスの利用と権利の消費を対応づける。

    施設の利用券を5回分発行し、1回利用するごとに残りの回数を更新する。

    構成例を見る

    信用

    実績を誰が確認したかを明らかにし、参加条件や資格の確認に使う。

    設備の点検実績を、確認者・対象設備・確認日時と対応づける。

    構成例を見る

    参加

    意見を出す、投票する、実行を承認するなど、関われる範囲を定義する。

    地域施設の運営方針について、参加資格と投票の集計方法を決める。

    構成例を見る

    実装の前に整理する四つのこと

    業務側で決める条件と、システムで実行するルールをそろえます。最初は一つの権利・一つの処理を対象にすると、必要な機能を選びやすくなります。

    1. 何を1単位として表すか

      対象の資産や活動と、保有者が持つ権利を分けて定義します。同じ設備でも、設備の識別票、利用権、契約上の持分では必要な構成が異なります。

      例:設備そのものではなく、契約で定めた権利を1,000単位に分けて表す。

    2. 誰が受け取り、誰へ移せるか

      本人にひも付く資格と、他者に移せる権利を区別します。移転を認める場合も、相手の参加条件や承認が必要かを整理します。

      例:契約が成立した取引先を承認対象とし、許可済みの宛先間で移転できる構成を選ぶ。

    3. 数量と終了条件をどう扱うか

      発行上限、小数桁、追加発行の条件を決めます。利用による消費、期限切れ、償還、誤発行の訂正は、それぞれ別の処理として整理します。

      例:回数券は利用時に1回分を消費する。契約の終了時は、残高と業務上の精算結果を照合する。

    4. 誰が発行・変更・停止を行うか

      発行担当、設定の管理者、業務上の承認者を対応づけます。停止が必要な操作と、停止中も継続する業務を分けておくと、障害時の判断が明確になります。

      例:追加発行は業務承認後に実行し、停止・再開の判断者と履歴を残す。

    現実の権利と、チェーンの記録を結ぶ

    RWAでは、対象の資産・契約と、チェーン上の保有や移転を対応づけます。トークンの移転をどの権利の変更として扱うかは、業務上の取り決めと照合して確認します。

    業務システム

    約束と根拠を管理する

    資産台帳・契約原本・本人確認・承認・点検や稼働の記録。必要な人が参照できる権限で管理します。

    スマートコントラクト

    定めたルールで記録する

    発行数・保有者・残高・移転・利用による消費など。必要な操作と参照範囲に合わせて構成します。

    対応づける情報

    資産ID・契約ID ↔ chainId・コントラクトアドレス・必要に応じたtokenId。操作ID ↔ 取引ハッシュ・イベント。

    透明性は、すべての情報を公開することではありません。何を誰が検証できるかを決め、個人情報や契約原本はアクセス制御した保管先に置きます。記録が正しく送信されたことと、現実の資産や実績が正しいことを分け、確認者と証拠も残します。

    表したいものからトークンを選ぶ

    一つずつ識別するものと、同じ単位を数量で扱うものでは、適したコントラクトが異なります。次は構成を選ぶための目安です。名前から仕様ページへ進むと、主要な操作とSDK・ソースコードを確認できます。

    表したいもの構成の候補選ぶときの確認点
    同じ権利を数量・口数で扱うFlexibleToken発行上限、小数桁、追加発行、移転の条件。設備に関する権利やポイントなど。
    条件・発行単位の異なる債権BondToken条件をclass、発行単位をnonceで区別。利払い・償還はDebtManagerと組み合わせて設計。
    一つずつ識別する資産・資格PrivilegeNFTtokenIdごとの保有者と情報。設備の識別票や個別の会員資格など。
    種類ごとに複数ある利用券・特典PrivilegeEdition種類ごとの数量と利用時の消費。回数券やランク別の特典など。
    評価指標・資格情報MultiTrustCredential更新できる主体と証明の条件。評価の根拠は業務記録と対応づける。

    例えば、設備の識別票と、その設備に関する契約上の権利は別々に表せます。必要な役割を分けて組み合わせることで、利用券・評価・投票などを同じトークンに詰め込まずに設計できます。

    保有・承認・実行の権限を分ける

    トークンを持つ人、業務を承認する人、コントラクトを操作できる人は、必ずしも同じではありません。画面上の承認とチェーン上の権限を対応づけると、担当者が変わっても運用を引き継げます。

    参加と移転

    本人確認や審査の結果を、参加許可の更新へつなげます。Whitelistを使う場合は、参照するトークン側の設定と、許可の追加・解除が既存の保有や移転へ与える影響を確認します。

    Whitelist

    投票と実行

    投票できることと、可決された操作を実行できることを分けて設計します。議決条件、集計時点、実行までの待機期間、実行権限を確認します。

    ガバナンスの実装パターン

    停止と再開

    停止対象と権限を事前に設定します。停止要求後も各コントラクトの状態を確認し、業務台帳との照合を終えてから再開を判断します。停止は過去の取引を取り消す操作ではありません。

    EmergencyPauseManager

    具体例:設備の権利を1,000単位で表す

    配送ロボットROBOT-A-001に関する契約上の権利をFlexibleTokenで表し、取引先へ最初の10単位を割り当てる設計例です。以下は設計項目の整理で、APIの入力形式ではありません。

    対象と権利
    ROBOT-A-001/契約AGR-2027-001。1単位が表す権利と、その権利を履行する主体を契約で定める。
    数量
    上限1,000単位、小数桁0。初回は10単位を新規発行し、発行済み総数と相手の残高はいずれも10になる。
    受取先と承認
    契約成立を確認した宛先を対象とする。資産・契約・数量・宛先の承認後、発行権限を持つアカウントが実行する。
    完了と記録
    確定した発行結果と台帳の10単位を照合し、操作IDから契約・承認・取引ハッシュを追跡できる状態にする。
    数量と収益の計算は、別に定義するこの例では、10単位は発行上限1,000単位の1%ですが、それだけで設備収益の1%を受け取るとは決まりません。収益分配を設ける場合は、対象収益、費用、計算の基準日、対象残高、支払方法を別途定義し、発行処理と分配処理を対応づけます。

    設計を実装につなげる

    ここまでで整理した権利、数量、参加条件、権限、記録をもとに、必要な機能を組み合わせます。各実装パターンには、データモデル・処理手順・SDKのコード例を掲載しています。