PTB Builder Handbook
Move とプログラマブルトランザクションブロックの入門ガイド
序文 (Foreword)
本書は、Move 言語と PTB を初めて学ぶ方のための短いガイドです。Move はブロックチェーン上の資産を安全に扱うために設計されたプログラミング言語です。このガイドを通じてコードを学び、実際に実行することで、トークン発行や PTB 構成を直接体験できます。わずか 2~3 時間の学習で、Move と PTB の力を実感できるでしょう。
目次 (Table of Contents)
- Move の紹介
- 環境構築
- Sui CLI のインストール (基本)
- VS Code - Sui Extension のインストール
- クイックスタート
- CLI クイックスタート
- VS Code - Sui Extension クイックスタート
- オブジェクトとリソース
- PTB 実習 🌟
- 参考資料 (Further Reading)
1. Move の紹介
💡 キー用語プレビュー
- Move: 資産中心のブロックチェーン用スマートコントラクト言語
- リソース (Resource): 複製や削除ができず、移動のみ可能な値
- モジュール (Module): Move コードの基本単位 (関数と型を含む)
Move とは?
- Move は ブロックチェーン資産を安全に扱うために設計されたプログラミング言語です。
- Facebook の Libra プロジェクト (2018) から始まり、現在は Sui, Aptos などのブロックチェーンで利用されています。
- 名前は 「値をコピーせずに移動(move)する」 動作に由来し、資産モデルの核心を表しています。
Move の特徴
- 安全性: 資産がコピー・削除されないことを言語レベルで保証
- 表現力: 資産ロジックを柔軟に記述可能
- 直感性: スマートコントラクトとアプリ開発の両方に容易に対応
Move の主な機能
- リソース型: 資産はコピー・削除不可、必ず移動が必要
- Ability システム: 値の生成・保存・移動方法を厳格に制御
- モジュールシステム: コードの再利用とカプセル化を支援
- PTB (Programmable Transaction Block): 複数の処理をまとめて実行可能
Sui における Move
- オブジェクト中心モデル: 資産をオブジェクト単位で管理
- ユニークな Object ID: すべてのオブジェクトはグローバルに一意
- 並列実行: 競合しないトランザクションは同時実行可能
- Entry 関数: 誰でも呼び出せる特別なエントリーポイント
2. 環境構築
💡 キー用語プレビュー
- Sui CLI: Move パッケージのビルド / テスト / デプロイに使う基本ツール
- VS Code Extension: GUI ベースの便利な開発拡張
- Workspace: Extension で管理するプロジェクト単位
- Explorer ビュー: プロジェクト作成や探索の UI
2.1 Sui CLI インストール (基本)
- macOS / Linux / WSL:
brew install sui
- Windows:
choco install sui
確認:
sui --version
⚠️ Sui CLI は Move コードのビルドと実行に必須です。必ず最初にセットアップしてください。
2.2 VS Code - Sui Extension インストール
Sui Extension は VS Code 上で Move コードを コンパイル・デプロイ・テストし、PTB を 視覚的に構築・実行できる拡張機能です。
主な機能
- コンパイル & デプロイ
- アップグレードサポート (
upgrade.toml
ベース) - オブジェクトエクスプローラー
- パッケージエクスプローラー
- PTB Builder 内蔵 (ドラッグ & ドロップ)
インストール方法
- VS Code → Extensions (⇧⌘X / Ctrl+Shift+X)
Sui Extension
を検索してインストール- 再起動
⚠️ 前提条件: Sui CLI がインストール済みであること
3. クイックスタート
💡 キー用語プレビュー
- Build: Move コードをコンパイル
- Test: 単体テストを実行
- Deploy: ネットワークにアップロード
- Package Explorer: デプロイ済みモジュールを確認・呼び出す UI
3.1 CLI クイックスタート
sui move new hello_move
cd hello_move
sui move build
sui move test
3.2 VS Code - Extension クイックスタート
- Explorer ビュー → フォルダ右クリック → New Move Project
- テンプレートから Hello World を選択
- Activity Bar → Sui Extension アイコンをクリック
- Workspace で
hello_move
を選び、Build / Test / Deploy 実行 - デプロイ成功後、Package Explorer に新しい パッケージカード が追加
💧 テストネットトークンを取得
実行には Testnet SUI が必要です。👉 公式 Faucet から入手してください。
4. オブジェクトとリソース体験
💡 キー用語プレビュー
- Coin: トークンを表すオブジェクト
- TreasuryCap: 発行・焼却権限を持つオブジェクト
- Entry 関数: 外部から直接呼び出せる関数
Move 基本文法を学んだ後、実際のコインと権限モデルを 体験します。VS Code Extension のテンプレート Sui Move Intro Course: Fungible Token (Managed) を利用して、発行 (mint) / 焼却 (burn) できるコインと TreasuryCap
モデルを理解します。
📌 テンプレート取得 (VS Code Sui Extension)
- Explorer → フォルダ右クリック → New Move Project
- Sui Move Intro Course: Fungible Token (Managed) を選択
- Workspace で選択し、Build/Test/Deploy 実行
5. PTB 実習 🌟
5.1 準備
- Build & Deploy
- Owner Objects Explorer で
TreasuryCap<...::MANAGED>
を確認
5.2 Extension で実行
- デプロイ後 → Package Explorer を開く
mint
を選択し、引数 (treasury_cap
, amount, recipient) を入力- 実行 → 新しい
Coin<MANAGED>
を生成
5.3 PTB Builder で実行
PTB Builder を開く
ノード追加: moveCall → managed::mint
引数入力:
object(treasuryCapId)
pure.u64(amount)
pure.address(recipient)
実行 → Transaction Digest を確認
⚡️ PTB Builder は構成を TypeScript コードへ変換できます。 Export/Copy メニューで開発コードに再利用可能。
5.4 ptb.wal.app 活用
- Web ベース PTB Builder: ptb.wal.app
- 主な機能:
- PTB を組み立て・実行
tx digest
→ 既存トランザクションを可視化- PTB を ファイルとしてエクスポート
- PTB を TypeScript コードへ変換