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へ直接渡せないため、アプリの保存形式も定めます。
コントラクトの状態変更と銀行入出金、現物引渡し、契約上の権利変動は別の処理です。業務システムとの照合手順を用意します。