本文へ移動
    hazBasehazBaseDocs
    IMPLEMENTATION GUIDE

    発行・移転・運用

    トークンを発行する前に、表す権利、参加者、移転条件、運用時の記録を決めます。その設計に対応するコントラクトを組み合わせます。

    権利の設計から始める

    同じ「物理資産」でも、現物に対応する権利、利用資格、収益受取権では必要なデータと制約が異なります。原本の契約・資産ID・トークンIDの対応関係を定めます。

    用途別の組み合わせを見る

    共通する実装の流れ

    01定義・配置
    02発行・割当
    03移転・利用
    04運用・記録

    APIの準備と実行を分ける

    prepareTransferは送信対象、金額、実行ポリシーなどを確認するための準備です。submitTransferが実行を要求します。準備の成功だけで移転は完了していません。

    typescript
    import { createHazbaseWalletClient,
      type PrepareTransferInput } from "@hazbase/kit/wallet";
    
    const wallet = createHazbaseWalletClient();
    export async function previewTransfer(input: PrepareTransferInput) {
      const prepared = await wallet.prepareTransfer(input);
      return { display: prepared.display, policy: prepared.policy };
    }

    UIで内容を確認し、必要な認証・承認後に実行します。userOpHashとtransactionHashを保存し、状態取得APIとチェーンの実行結果を照合します。

    単位と実行結果を確認する

    金額はAPIやHelperごとに単位が異なります。JavaScriptの浮動小数点で最小単位を計算せず、型とメソッド仕様を確認してください。BigIntはJSONへ直接渡せないため、アプリの保存形式も定めます。

    コントラクトの状態変更と銀行入出金、現物引渡し、契約上の権利変動は別の処理です。業務システムとの照合手順を用意します。