walrus-storage-costs について
walrus-storage-costsは、Walrusユーザー向けの費用解説スキルです。WALのストレージ料金、SUIのガス代、エポック単位の価格、小さなファイルのメタデータ負担を説明します。費用の見積もり方法と予算計画のための最適化策を紹介します。
主な機能
- 01WALとSUIの費用構成の説明
- 02エンコード後サイズとblobごとのメタデータ負担
- 03保存期間に応じた費用見積もり
- 04dry-runと価格情報の確認方法
- 05quiltなどの費用最適化策
活用シーン
- 01アップロード前のストレージ費用の見積もり
- 02WALとSUIの予算計画
- 03個別保存とquiltでの一括保存の費用比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mystenlabs/ walrus-skills --skill walrus-storage-costsインストール後、Claude Code で/walrus-storage-costsを入力して読み込まれたか確認します。
同梱ファイルevals/evals.json
詳細
Walrus ストレージコスト
情報源の制約: このスキルの情報はすべて、 Walrus のストレージコストに関するドキュメント と Walrus のコスト計算ツールを情報源としています。 このスキルを拡張する場合は、これらの情報源のみを参照してください。
ストレージ料金は、Walrus について最もよく尋ねられる質問です。コストモデルには 2 種類のトークン(WAL と SUI)、小さなファイルではコストの大部分を占める blob ごとのメタデータのオーバーヘッド、エポック単位の保存期間に応じた料金が含まれます。このスキルでは、コストの仕組みと見積もり方法を説明します。
このスキルのパターンはすべて、次の情報源に基づいています。
- https://docs.wal.app/docs/system-overview/storage-costs
- https://docs.wal.app/docs/walrus-client/storing-blobs
- https://docs.wal.app/docs/large-uploads
現在の料金が不明な場合は、walrus info を実行するか、コスト計算ツールを確認してください。
関連スキル
| トピック | スキル | 読み込むタイミング |
|---|---|---|
| blob の保存 | walrus-cli | CLI の保存コマンド |
| HTTP API | walrus-http-api | REST 経由での保存 |
| TypeScript SDK | walrus-ts-sdk | プログラムによるコスト見積もり |
| Quilts | walrus-quilts | 多数の小さな blob のコスト最適化 |
| blob のライフサイクル | walrus-blob-lifecycle | ストレージ期間の延長、削除による回収 |
| 概要 | walrus-overview | Walrus のアーキテクチャ全般 |
スキルの内容
2 種類のトークンによるコストモデル
blob の保存操作には、次の 2 つのコスト要素があります。
| トークン | 支払いの対象 | 課金のタイミング |
|---|---|---|
| WAL | Walrus ストレージ:エンコードされた blob 用のストレージノード上の領域の確保 | 保存および延長の操作ごと |
| SUI | Sui ブロックチェーンのガス代:オンチェーンでの blob オブジェクトの登録、証明、管理 | トランザクションごと(保存 1 回につき最大 3 件) |
blob を保存するには、ウォレットに WAL と SUI の両方が必要です。テストネットでは、sui client faucet から SUI を、Walrus テストネットのファウセットから WAL を入手してください。
WAL コストの内訳
blob の保存にかかる WAL コストは、次の 2 つで構成されます。
-
ストレージコスト =
encoded_size × price_per_unit × epochsencoded_size= 消失訂正符号化後の blob の生サイズ(約 4.5 倍)に、blob ごとの固定メタデータ約 64 MB を加えたサイズprice_per_unit= エポックごとのエンコード済みストレージ単位あたりの料金(walrus infoで確認してください)epochs= ストレージを確保するエポック数
-
書き込み手数料 = アップロードごとに一度だけ発生する定額料金。blob のサイズやエポック数には依存しません
現在の値を確認するには、walrus info を実行してください。
walrus info
# Shows: price per encoded storage unit, write fee, current epoch, epoch duration
blob ごとのメタデータのオーバーヘッド
blob の実際のサイズにかかわらず、blob ごとに約 64 MB のメタデータのオーバーヘッドが発生します。このメタデータはエンコード済みストレージの一部であり、コスト計算に含まれます。
| blob のサイズ | エンコード後のサイズ(概算) | コストに占めるメタデータの割合 |
|---|---|---|
| 1 KB | ~64 MB | ~99.99% |
| 1 MB | ~68.5 MB | ~93% |
| 10 MB | ~109 MB | ~59% |
| 100 MB | ~514 MB | ~12% |
| 1 GB | ~4.6 GB | ~1.4% |
そのため、小さな blob は個別に保存すると割高になります。 1 KB の JSON ドキュメントは、64 MB のファイルとほぼ同じコストがかかります。小さなファイルが多数ある場合は、quilts を使って 1 つのストレージ単位にまとめると、すべてのファイルにわたってメタデータのオーバーヘッドを分散できます。
SUI のガス代
各保存操作では、最大 3 件の Sui オンチェーントランザクションが発生します。
reserve_space— ストレージリソースを取得します- blob を登録します
- blob を証明します(可用性証明書を送信します)
各トランザクションには SUI のガス代がかかります。また、blob の Sui オブジェクトは SUI を Sui ストレージファンドに預け入れます。この預け入れ額の大部分は、blob オブジェクトを削除すると(walrus delete または walrus burn-blobs を使用して)返金されます。
エポックの期間
| ネットワーク | エポックの期間 |
|---|---|
| Mainnet | 14 日 |
| Testnet | 変動(Mainnet より短い) |
ストレージ期間の上限は 53 エポックです(Mainnet で約 2 年)。エポック数を月数に換算するには、months = epochs × 14 / 30 を使用します(Mainnet)。ストレージ予算を計画する際は、エポック数ではなく、必ず月数で計算してください。
コストの見積もり
コスト計算ツール(ウェブ)
インタラクティブに見積もるには、Walrus Cost Calculator を使用してください。ファイルサイズと期間を入力すると、WAL のコストを確認できます。
手動で計算する
ドキュメントでは、USD で 2 段階の見積もりを行っています(ストレージ料金は固定の USD レートで設定され、WAL で支払うため、必要な WAL の量は WAL の価格に応じて変わります)。
encoded_size_GB = 4.5 * original_size_GB + 0.064
monthly_cost_USD = encoded_size_GB * 0.023
10 KiB のファイルを 600 個、それぞれ個別に保存する場合、各ファイルで約 0.064 GB のオーバーヘッドが発生し、合計で 38.4 GB となります。6 MB のデータに対して月額約 0.88 ドルです。1 つの quilt として保存すると、4.5 × 0.006 + 0.064 ≈ 0.09 GB となり、月額約 0.002 ドルです。ドキュメントに記録された実測比較では、このケースで 409 倍、ファイルあたり 1 MiB の場合で 13 倍の節約が確認されています。ファイルあたり約 1 MiB を超えると、ストレージの節約効果は急速に小さくなります。
CLI のドライラン#### CLI のドライラン
# Estimate cost without actually uploading
walrus store --dry-run myfile.dat --epochs 10
トランザクションを送信したりトークンを消費したりせずに、エンコード後のサイズと推定コストを返します。
CLI の情報
# Show current pricing parameters
walrus info --json
エンコード後のストレージ単位あたりの価格、書き込み手数料、現在のエポック、先行できるエポックの最大数を返します。
TypeScript SDK
WalrusClient は storageCost メソッドを公開しています。使用する前に、TypeDocs でシグネチャを確認してください。
コストを最適化する戦略
| 戦略 | 節約額 | 使用するタイミング |
|---|---|---|
| 小さなファイルには quilt を使用する | 多数の小さな blob で最大 99% | 1 ファイルあたり <10 MB のファイルを多数保存する場合 |
| ストレージリソースを再利用する | 新しいストレージの購入を回避 | ウォレットに適切なリソースがある場合、CLI が自動的に実行します |
| 期限切れの blob オブジェクトを削除する | SUI ストレージファンドへの預け入れを回収 | blob の期限が切れた後、walrus burn-blobs --all-expired でバーンします |
| 再アップロードではなく期間を延長する | 書き込み手数料とエンコードコストを回避 | blob をより長く保持する必要がある場合 |
| 変動する書き込み向けにストレージプールを使用する(プレビュー) | 保存のたびに書き込み手数料のみを支払います | Rust SDK / Move のみ。安定した使用量で書き込みと削除を継続し、有効期限を共有する場合 |
| 必要な場合にのみ永続 blob を使用する | 削除可能な blob ならストレージを回収できます | デフォルトは削除可能で、ストレージリソースを回収できます |
ルール
- 大量にアップロードする前に、必ず
walrus infoを確認してください。 価格はエポック間で変わる場合があります。 - 小さなファイルをまとめて保存する場合は quilt を使用してください。 blob ごとに 64 MB のオーバーヘッドがあるため、小さな blob を個別に保存するのは非常に非効率です。
- WAL と SUI の両方を予算に含めてください。 WAL はストレージ料金の支払いに、SUI はガス代の支払いに使います。どちらかが不足すると操作できなくなります。
- エポック数ではなく月単位で見積もってください。 エポックの期間は変わることがあります。現在の期間は
walrus infoで確認してください。 burn-blobs --all-expiredで SUI を回収してください。 期限切れの blob オブジェクトにも、ストレージファンドの SUI が残っています。バーンすると、預け入れた SUI を回収できます。- 本番環境にアップロードする前に
--dry-runを実行してください。 トークンを使う前にコストを確認してください。特に大規模なデータセットでは必ず確認してください。
よくある間違い
- 小さな JSON blob の料金が 64 MB のファイルと同じくらいになる理由が分からない。 小さな blob では、約 64 MB の blob ごとのメタデータオーバーヘッドが支配的になります。代わりに quilt を使用してください。
- 書き込み手数料を忘れる。 サイズやエポック数に関係なく、アップロードのたびに書き込み手数料がかかります。単位あたりのストレージコストとは別料金です。
- WAL と SUI のコストを混同する。 WAL は Walrus ノード上のストレージ用です。SUI は Sui トランザクションのガス代用です。用途の異なる別々のトークンです。
- イレイジャーコーディングのオーバーヘッドを考慮しない。 エンコード後のサイズは、元の blob のサイズの約 4.5 倍に固定のメタデータを加えたものです。コストは元のサイズではなく、エンコード後のサイズに基づきます。
- ストレージが無期限だと思い込む。 最大 53 エポック(約 2 年)です。データをそれ以上保持する必要がある場合は、
walrus extendによる延長を計画してください。 - コスト見積もりに
--dry-runを使わない。 このフラグを使うと、トークンを消費せずにコストを確認できます。大量にアップロードする前には必ず使用してください。 - 同じコンテンツを二重に保存するために支払う。 同一のコンテンツで、十分な有効期間を持つ永続 blob がすでに存在する場合、CLI は再アップロードを自動的にスキップし(
alreadyCertifiedを返します)。これは想定された動作で、コストの節約になります。