Move言語によるスマートコントラクト開発を始めるには、適切な開発環境の構築が必要です。SuiとAptosはそれぞれ独自のCLIツールとSDKを提供しており、初期セットアップには一定の手順があります。
本記事では、MacOS/Linux環境を前提に、AptosとSuiそれぞれの開発環境構築手順と、最初のシンプルなスマートコントラクト(カウンターアプリ)の作成・デプロイまでの流れを解説します。
なお、ブロックチェーン技術は更新が速く、CLIのバージョンや手順は変更される場合があります。本記事の情報は2026年時点のものであり、最新の公式ドキュメントも併せて参照することをお勧めします。
1. Move開発の前提知識
1-1. 必要なプログラミングスキル
Moveの学習には、以下の基礎知識があると理解が早まります。
- Rustの基礎(所有権・借用の概念があると有利)
- オブジェクト指向プログラミングの基礎
- コマンドライン操作の基本
- ブロックチェーン・スマートコントラクトの基本概念
ただし、プログラミング経験があれば、これらがなくても学習を始めることは可能です。Move Book(公式ドキュメント)は丁寧に書かれており、独学のリソースとして活用できます。
1-2. 開発に必要なツール
共通して必要なツールは以下の通りです。
- Rust(cargo):Move CLIのビルドに必要
- Git:パッケージ管理に必要
- テキストエディタ(VSCode推奨、Move拡張あり)
Rustのインストールはrustupを使います。公式サイト(https://rustup.rs)のコマンドを実行することでインストールできます。
2. Aptos Move環境構築
2-1. Aptos CLIのインストール
Aptos CLIは、Aptos公式のGitHubリリースページからバイナリをダウンロードするか、cargoでビルドして導入します。MacOSではHomebrewを使った方法も利用できます。
インストール後、aptos --versionでバージョン確認ができれば成功です。Aptos CLIには以下の主要コマンドが含まれています。
aptos init:新しいプロジェクトの設定とアカウント作成aptos move compile:Moveコードのコンパイルaptos move test:テストの実行aptos move publish:コントラクトのデプロイ
2-2. テストネットへの接続
Aptosにはdevnet・testnet・mainnetの3つのネットワークがあります。開発初期はdevnetかtestnetを使用します。aptos init実行時にネットワークを選択でき、テスト用のAPTトークン(Faucet)をリクエストできます。
設定ファイルは~/.aptos/config.yamlに保存されます。複数プロジェクトで異なるアカウントを使う場合は、プロジェクトごとに--profileオプションを指定できます。
3. Sui Move環境構築
3-1. Sui CLIのインストール
Sui CLIのインストールは、公式ドキュメントのインストールガイドに従います。Homebrewを使ったインストールや、cargoによるソースビルドが利用できます。
インストール後はsui --versionで確認できます。Sui CLIの主要コマンドは以下の通りです。
sui client:クライアント設定とアカウント管理sui move build:Moveプロジェクトのビルドsui move test:テストの実行sui client publish:パッケージのデプロイ
3-2. Suiのテストネット設定
SuiにはDevnet・Testnet・Mainnetがあります。sui client switch --env testnetでネットワークを切り替えられます。テストSUIはDiscordのFaucetチャンネルやsui client faucetコマンドで取得できます。
Suiのネットワーク設定は~/.sui/sui_config/ディレクトリに保存されます。複数ウォレットの管理も同ディレクトリ内で行えます。
4. 最初のMoveプロジェクト(Aptos版)
4-1. プロジェクトの作成と構造
Aptosではaptos move init --name my_counterでプロジェクトを作成します。生成されるディレクトリ構造は以下の通りです。
Move.toml:パッケージの設定ファイル(名前・バージョン・依存関係)sources/:Moveソースコードディレクトリtests/:テストコードディレクトリ
Move.tomlにはAptosのフレームワークへの依存関係を記載します。Aptosの標準ライブラリであるaptos-frameworkはgit URLで参照します。
4-2. シンプルなカウンターコントラクト
Aptos Moveでシンプルなカウンター構造体を定義するには、アカウントにカウンターリソースを登録し、インクリメント関数を定義します。move_toでリソースを登録し、borrow_global_mutで可変参照を取得してカウンターを更新するパターンが基本です。
テストは#[test]アノテーションを使ってソースファイル内に記述できます。aptos move testコマンドで実行し、結果を確認します。
5. 最初のMoveプロジェクト(Sui版)
5-1. Suiのプロジェクト作成
Suiではsui move new my_counterでプロジェクトを作成します。構造はAptosと似ていますが、Move.tomlの依存関係にはSui Framework(git URL)を指定します。
Sui Moveのモジュールにはsui::objectやsui::transfer、sui::tx_contextなどのSui専用ライブラリを利用します。これらはAptosの標準ライブラリとは互換性がありません。
5-2. Sui Moveのカウンターオブジェクト
Sui Moveでは、カウンターを「オブジェクト」として定義します。構造体にkey + storeを付与し、id: UIDフィールドを持たせます。オブジェクトの作成時はUIDを生成し、transfer::transferで所有者に転送します。
インクリメント関数は&mut Counterの可変参照を受け取ってカウンターを更新します。Suiでは関数がオブジェクトへの参照を引数として受け取る設計が一般的です。
6. デプロイと動作確認
6-1. Aptosへのデプロイ手順
aptos move publish --named-addresses my_counter=<your_address>でデプロイできます。デプロイ前にaptos move compileでコンパイルエラーがないことを確認してください。
デプロイ成功後はAptosエクスプローラーでトランザクションを確認できます。デプロイされたモジュールのアドレスをメモしておくと、後の動作確認や他のモジュールからの参照に便利です。
6-2. Suiへのデプロイ手順
sui client publish --gas-budget 10000000でデプロイします。Suiではパッケージとして一連のモジュールが一度にデプロイされます。デプロイ成功時にはパッケージIDが返され、以降の操作はこのIDを使って行います。
Suiエクスプローラーでトランザクションを確認すると、作成されたオブジェクトの一覧が表示されます。カウンターオブジェクトのIDを確認し、sui client callコマンドで関数を呼び出してテストできます。
7. 開発時のトラブルシューティング
7-1. よくあるコンパイルエラーと対処法
Move開発でよく遭遇するエラーには以下のものがあります。
- 「unused value without drop」:リソースを消費せずにスコープを抜けている。転送か削除を行う。
- 「cannot copy resource」:copy能力のない型をコピーしようとしている。参照を使う。
- 「acquires annotation required」:グローバルリソースにアクセスする関数に
acquiresアノテーションが必要。
7-2. ガス代のチューニング
デプロイや関数呼び出し時にガス不足エラーが出た場合は、--gas-budgetの値を増やします。テストネットではFaucetで十分なトークンを取得してから作業することをお勧めします。
また、ループや大きなデータ構造を扱う関数はガス消費が多くなる傾向があります。パフォーマンスが重要な場合は、プロファイリングツールを使ってガス消費量を最適化することを検討してください。
まとめ
AptosとSuiの開発環境構築は、それぞれのCLIをインストールしてテストネットに接続することで始められます。最初のスマートコントラクトとしてカウンターアプリを作成・デプロイする流れを通じて、Move開発の基本的なサイクルを体験できます。
両チェーンで記法や設計思想に差異があるため、どちらかをメインターゲットに決めて深く学ぶことをお勧めします。SuiはオブジェクトモデルとUID設計の理解が鍵であり、AptosはアカウントリソースとBlock-STMの理解が重要です。公式ドキュメントと実際のサンプルコードを参照しながら、段階的に理解を深めていきましょう。
よくある質問(FAQ)
- Move開発に向いているエディタはありますか?
- VSCode(Visual Studio Code)に公式のMove拡張機能があり、シンタックスハイライトや型チェックのフィードバックが得られます。Sui向けにはsui-moveanalyzer拡張、Aptos向けにはaptos-move拡張がそれぞれ提供されています。JetBrains系のIDEにも対応した拡張が開発中と報告されています。
- テストネットで開発中に使うトークンはどこで入手できますか?
- AptosはFaucetページやCLIコマンドでテストAPTを取得できます。SuiはDiscordのFaucetチャンネルや
sui client faucetコマンドを利用します。いずれも無料で取得でき、本物の価値はありません。メインネットへのデプロイ前に十分なテストを行うことをお勧めします。 - Move言語の学習にお勧めのリソースはありますか?
- 「Move Book」(公式ドキュメント)がMoveの基礎から応用まで網羅しており、最初に読むべき資料として最適です。SuiはMove by Example、AptosはAptos Move Tutorialsという公式チュートリアルも提供しています。加えて、GitHubの公式サンプルリポジトリを読み解くことが実践的な学習に繋がります。
※本記事は情報提供を目的としており、投資を推奨するものではありません。暗号資産への投資は元本割れのリスクがあります。投資判断はご自身の責任で行ってください。