LIVE ADA-- MCAP-- TVL-- STAKE-- EPOCH-- Cardano & Midnight 総合情報ポータル
SIPO
速報 Midnight mainnetがLedger 9へのアップグレードを完了 7時間前 速報一覧 →
HOME › Signal › Midnight Wallet SDK 2.0.0、フォークをまたぐ同期に対応
Signal

Midnight Wallet SDK 2.0.0、フォークをまたぐ同期に対応

2026-11-07SIPO #Midnight

Midnight の開発チームは、ウォレットを作るためのライブラリ Wallet SDK の 2.0.0 を、15 のパッケージをまとめた正式版として GitHub で公開しました。リリース文書の日付は 11 月 5 日で、ウォレットが Ledger 8 から Ledger 9 への境界を、残高やコイン、取引履歴を引き継いだまままたげるようになりました。

メインネットはこの版の公開の翌朝、日本時間 11 月 7 日に Ledger 9 へ移っています。Midnight 上でウォレットや資金を動かす dApp を作っている開発者に向けて、境界で起きること、書き換える場所、1.x へ戻れない点を順に整理します。

境界で引き継がれるもの、捨てられるもの

2.x のウォレットは、チェーンの forks.v9 より前は Ledger 8 で、そこからは Ledger 9 で動き、チェーンの切り替わりに合わせて自分で乗り換えます。既定の切り替え点はプロトコルバージョン 2000000 です。引き継ぎの中身はウォレットの種類で違います。

  • 秘匿ウォレット — コインをコミットメントツリーの位置のまま引き継ぐ
  • 非秘匿ウォレット — すべての UTxO を引き継ぐ
  • Dust ウォレット — 状態をチェーンから作り直す

捨てられるのは、境界の時点で処理待ちだった取引です。これらは取り込まれることがなくなるので orphaned として記録され、コインは解放されます。自分の取引がないウォレットも、秘匿と Dust は 30 秒ごとにチェーンの先端を尋ねるので、切り替わりに気づきます。スナップショットから復元したウォレットも、同じように境界を越えられます。

画面を作る方が気をつけたいのは、秘匿ウォレットの見え方です。秘匿ウォレット 4.0.0 のリリースノートによると、境界を越えたあと最初の同期が終わるまで、残高と利用可能なコインは空として読まれます。利用者には残高がなくなったように映りうるので、同期中の表示を分けておくと安全です。

書き換えの中心は、鍵と取引の持ち方

リリース文書は破壊的変更を多数挙げています。影響が広いのは次の 4 つです。

  • 起動 — シードか、台帳のバージョンごとの鍵から始めます。WalletSeeds.fromMasterSeed で 3 つのウォレットのシードを導き、取引を作るメソッドは秘密鍵を受け取らなくなりました
  • 取引 — WalletTransaction という、作成時のプロトコルバージョンが刻まれた形で受け渡します。別のバージョンの取引は ProtocolVersionMismatchError で拒否されます
  • 署名 — 署名者は非同期になり、鍵と署名は { tag, value } の形を取ります
  • 取引の追跡 — 処理待ちの一覧の代わりに、取引ごとに 1 つのライフサイクルの記録を持ちます

移行の手順は、facade 5.0.0 のリリースノートに置かれています。Midnight.js 5.0.0 もこの 2.0.0 に依存先を更新しているので、dApp 側の移行 (11 月 6 日の Signal) とあわせて進めることになります。

保存状態は片道、1.x は Preprod 向けに

戻れない変更もあります。2.0.0 が保存した取引履歴とライフサイクルの記録は 1.x では開けず、Dust ウォレットを 1.x へ戻すにはシードからの復元が必要です。リリース文書は 1.x に残る場合の版として 1.2.0 を指定していて、公式の互換表でも Preprod の組み合わせは今も Wallet SDK 1.2.0 です。Mainnet と Preview は 2.0.0 なので、ネットワークごとに版が分かれる状態がしばらく続きます。

パッケージのスコープにも注意が必要です。ledger-v8 と zkir-v2 は @midnight-ntwrk から @midnightntwrk へ移りました。アプリが ledger-v8 を自分で読み込む場合は、SDK と同じコピーになるよう新しいスコープから読み込みます。

証明と手数料の前提も変わる

公開されている Proof Server は 1 つの台帳のバージョンしか扱えません。Ledger 8 の履歴を持つチェーンでは、バージョンごとに Proof Server を用意するか、両方を扱えるプロセス内の証明器を使います。ブラウザ向けのバンドルには、両方の台帳の WASM が入ります。

手数料の面では、Dust で払うときの残高計算が、ウォレットの持つ Dust のツリーの状態を待つようになりました。最大 2 分待って、間に合わなければ SyncWalletError で失敗します。初回の Dust 登録で、生成された分がまだ手数料に足りないときは InsufficientDustForFeeError が返り、不足額と、いつ足りるようになるかの見込みが付きます。送金ボタンの近くに出すエラー文を、このあたりで作り直すことになるはずです。

Ledger 9 の非秘匿ウォレットでは、Schnorr に加えて ECDSA の鍵も持てるようになりました。ECDSA の鍵は専用の役割から導くので、同じアカウントの Schnorr の役割と秘密を共有しません。

既知の不具合と、確かめる順番

既知の不具合は 5 件公開されています。回避策が示されているものを挙げます。

  • #742 — 長いインデクサーの停止のあと、秘匿ウォレットの同期の再試行間隔が伸び続ける。インデクサーの復旧後にウォレットを再起動する
  • #781 — イベント方式で同期した Dust のスナップショットが、インデクサーの番号振り直しのあと失敗し続ける。シードから復元するか、ブロック高で再開できるプロジェクション方式の同期を使う
  • #893 — Dust ウォレットの feeBlocksMargin の余裕が設定より少なくなる。大きめの値を設定する

もう 1 点、リリース文書の試験済みの表は Indexer 4.4.0-rc.6、Node 2.1.0-rc.4 で、公式の互換表の Indexer 4.4.101、Node 2.1.101 より前の版です。文書自身も、この表をビルド時の固定値で QA の確認ではないと断っています。開発者の方は、まず facade 5.0.0 のリリースノートと互換表を突き合わせ、Preview で境界後の同期と残高の表示を確かめるのが順当です。次に見るのは midnight-wallet の Issues の #742 と #781 で、ここが閉じれば長時間動かすサービスの運用はだいぶ楽になります。

ことば

  • Wallet SDK — Midnight のウォレットを作るためのライブラリ群。秘匿、非秘匿、Dust の 3 つの残高を扱い、2.0.0 からは台帳の切り替えも自分で追いかけます。
  • facade — 3 種類のウォレットを 1 つの API にまとめる窓口のパッケージ。今回はこの 5.0.0 のリリースノートが移行ガイドを兼ねています。
  • Proof Server — ゼロ知識証明を作るサーバー。台帳のバージョンごとに分かれるので、フォークをまたぐアプリは組み合わせの確認が要ります。

一次ソース / 関連リンク

Midnight Wallet SDK 2.0.0 リリース (GitHub)(GitHub)

wallet-sdk-facade 5.0.0 リリースノート (移行ガイド・GitHub)(GitHub)

wallet-sdk-shielded 4.0.0 リリースノート (GitHub)(GitHub)

midnight-js v5.0.0 リリース (GitHub)(GitHub)

Midnight 公式ドキュメント: 互換表(docs.midnight.network)

タグ: #Midnight
Delegate to SIPO · 委任ガイド

ADA を手元に置いたまま、
SIPO に委任する

SIPO は Cardano ステークプール 3 基 (SIPO / SIPO2 / SIPO3) を運用しています。Midnight のバリデータ運用は開始後に参加予定です。

  • 預けない・ロックなし
  • 約 5 日ごとに報酬
  • DRep も SIPO に
ステーキングをはじめる → はじめての方は、この 3 本を順に読むと迷いません。
  1. 1
    📘 Learning ステーキングとは、ADA を手元に置いたまま報酬を受け取る仕組み 仕組みを知る →
  2. 2
    📘 Learning DRep への委任とは、13.7 億 ADA の国庫の使い道に一票を託す仕組み ガバナンスに参加する →
  3. 3
    📘 Learning 委任マニュアル 2026 年版、Lace と Daedalus でプールと DRep を選ぶ手順 手順どおりに委任する →