Gero Wallet が 9 月 16 日(日本時間)、バージョン 2.7.1 で、Midnight の送金手数料を「自分が持っている別のウォレットの DUST」で支払えるようにしたと公式 X で告知しました。DUST を持たないウォレットでも、同じ Gero に入れてある別の Midnight ウォレットに DUST があれば、そちらに手数料を肩代わりさせて送金を通せます。
Midnight では手数料を NIGHT ではなく DUST で払い、その DUST は人に渡すことができません。トークンだけを受け取ったウォレットは、これまで自力では一歩も動けませんでした。今回の変更は、その行き止まりをウォレット側の工夫でほどいたものです。公開されているソースコードまで読むと、何ができて何ができないのかがかなりはっきり見えてきます。
■ 「動けないウォレット」が、実際に起きていた
Gero の公式投稿は短く、「バッテリーが空でも送れる。3 タップで」という一文です。背景は、Gero が公開している GitHub のプルリクエスト(#1028・9 月 8 日マージ)に具体的に書かれています。9 月 7 日、メインネットで 10 USDM を持ち NIGHT が 0 のアドレスから送金しようとすると、「トランザクションに署名」の画面で処理が回り続け、いつまでも終わらない現象が確認されました。
原因は仕組みそのものにあります。Midnight の公式ドキュメントは、DUST を「ガス専用の資源」と位置づけ、ユーザー間で送ることはできないと明記しています。DUST は NIGHT を保有していることで生まれるので、NIGHT を持たずトークンだけを受け取ったウォレットには、手数料を払う手段がそもそもありません。取引所から引き出した USDM だけが入っている、という状態は十分に起こりえます。
Gero はまずこの行き止まりを見えるようにしました。同じ #1028 で、送金前に DUST の状態を確認して手数料を払えない場合は理由を示して止める事前チェックと、処理が 60 秒を超えたら原因を示してエラーにする上限が入っています。そのうえで、「止める」だけでなく「通す」方法として用意されたのが、今回の肩代わり機能です。
■ 肩代わりは、手数料の鍵だけを借りる
なぜ別のウォレットが手数料だけを払えるのか。Gero のソースコードの説明によると、Midnight の送金では、送る資産への署名と、手数料となる DUST の支払いが別々の鍵で扱われます。そこで、資産への署名は送る側のウォレットの鍵で行い、DUST の支払いだけを別のウォレットの鍵で行う、という組み合わせにしています。
安全面の線引きも、コードの中で細かく決められています。
- 手数料を払う側(スポンサー)は、同じ Gero に入っている Midnight のウォレットで、送金と同じネットワーク(メインネットならメインネット)のものに限られます。送る側と同じウォレットは選べません
- スポンサーを使うたびに、そのウォレット自身のパスワードまたは PassKey での解錠が求められます。送る側のパスワードを流用する経路や、保存済みの秘密情報を使い回す経路はありません
- 解錠したスポンサーから取り出すのは DUST の支払いに使う鍵だけで、復元フレーズはすぐに破棄されます。コードの言葉を借りれば、スポンサーが承認するのは「手数料であって、送金ではない」という設計です
もう一つ大事なのが、外部サイトとの境界です。#1028 の説明には、dApp との接続経路にはスポンサーの指定を意図的に渡さず、肩代わりは Gero 自身の送金画面からしか使えないと書かれています。どこかのサイトが、ユーザーの別のウォレットの DUST を勝手に使うことはできない、という線をあらかじめ引いているわけです。
9 月 9 日にマージされたプルリクエスト(#1031)では、ダッシュボードとサイドパネルの送金画面にスポンサーの選択と準備状況の表示が加わり、取引の詳細画面で「どのウォレットが手数料を払ったか」も確認できるようになっています。この一連の変更は、公開リポジトリの v2.7.1 タグに含まれています。
■ 「DUST がどこに溜まっているか」は、見た目どおりとは限らない
使う側にとって一番つまずきやすいのは、どのウォレットがスポンサーになれるのか、という点かもしれません。Gero のコードには、この判定を「DUST の残高表示を読む」方法でやらない理由が、開発中に実際に誤判定した経験として書き残されています。
Midnight の DUST は、NIGHT の鍵と DUST の受け取り先を結びつける登録にもとづいて生まれます。Cardano 側で cNIGHT を持っている場合、その DUST はあらかじめ指定した一つの Midnight の DUST アドレスに溜まり、そのアドレスは画面上で DUST を表示しているウォレットと一致しないことがよくある、とコードは説明しています。そのため Gero は、登録の記録をたどって「どのウォレットの DUST アドレスに支払われているか」でスポンサーの可否を決め、状態を三つに分けて表示します。
- 準備完了:有効な登録がこのウォレットに向いていて、いま使える DUST がある
- 反映待ち:Cardano 側に登録はあるが、Midnight 側への反映がまだ(コード上の目安は約 2.5 時間)。DUST が無いという意味ではありません
- 不明:このプロファイル内の登録には見当たらない。登録が Gero の外にある Cardano ウォレットにある可能性もあり、「DUST が無い」とは表示しない
NIGHT を受け取って DUST の生成を登録した方は、自分の DUST がどのアドレスに向いているかを一度確認しておくと、この機能を使う場面で迷いにくくなります。NIGHT の受け取りと登録の流れは、NIGHT 受け取りマニュアル 2026 年版でも整理しています。
■ 次に見るもの
一つ目は、Gero の公式サイトの変更履歴ページです。この記事の執筆時点では v2.7.0(8 月 19 日)までの記載で、v2.7.1 の正式なリリースノートはまだ載っていません。肩代わり機能がどう説明され、対象のウォレットの種類(パスワード型・PassKey 型のほかに、ハードウェアウォレットを含むか)がどう書かれるかが、使い始める前の確認点になります。
二つ目は、ウォレットの外に同じ考え方が広がるかどうかです。今回の肩代わりは、あくまで「同じ人が持つウォレットどうし」に閉じています。Midnight の手数料を誰が負担するかという問題は、アプリ側が利用者の分を持つ形も含めて、使い始めのハードルを左右する論点です。9 月 16 日の Daily Intel でも一行で触れましたが、ウォレット単体の改善として始まったこの動きが、他のウォレットや dApp の設計にどう波及するかを追っていきます。
■ ことば
- DUST — Midnight で手数料の支払いに使う資源です。NIGHT を持っていると時間とともに溜まり、使うと減ってまた回復するため「バッテリー」にたとえられます。人に送れないので、今回のように「持っている別のウォレットに払わせる」工夫が必要になりました。
- cNIGHT — Cardano 上にある NIGHT のことです。Cardano 側で保有したまま、登録によって Midnight 側の DUST アドレスへ DUST を生み出せます。受け取り先のアドレスが表示中のウォレットと違うことがあり、スポンサー判定が複雑になる理由でもあります。
- スポンサー — Gero 2.7.1 で、送金の手数料だけを肩代わりするウォレットを指す呼び名です。承認するのは手数料の支払いだけで、送る資産そのものには触れません。使うたびにそのウォレット自身の解錠が求められます。
一次ソース / 関連リンク
- Gero Wallet による告知(2026 年 9 月 16 日・日本時間)
https://x.com/GeroWallet/status/2099917284823146916 - Gero Wallet ソースコード v2.7.1 タグ(GitHub)
https://github.com/Gero-Labs/gerowallet/tree/v2.7.1 - プルリクエスト #1031「sponsored Midnight DUST」(9 月 9 日マージ)
https://github.com/Gero-Labs/gerowallet/pull/1031 - プルリクエスト #1028「手数料を払えない送金を事前に止める」(9 月 8 日マージ)
https://github.com/Gero-Labs/gerowallet/pull/1028 - Gero Wallet 変更履歴(v2.7.0 まで)
https://gerowallet.io/download/release-notes/ - Midnight Docs「DUST architecture」
https://docs.midnight.network/concepts/dust-architecture
