BIP-39ニーモニックエンコーダー
ゼロが16バイト並ぶエントロピーは、abandonが11回続いたあとaboutで終わります。BIP-39は128から256ビットをSHA-256のチェックサム付きで12から24語の英単語にし、チェックサムが合うときだけエントロピーに戻します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- 00000000000000000000000000000000
- 計算モード
- Encode
- 入力
- 00000000000000000000000000000000
- エントロピー (16進)
- 00000000000000000000000000000000
- 単語数
- 12
- エントロピー(ビット)
- 128
BIP-39は、ウォレットのバイナリエントロピーを12語から24語の英語ニーモニックに変換し、埋め込まれたSHA-256チェックサムビットが一致する場合にのみ同じエントロピーを復元する業界標準です。ウォレット用フィクスチャを書く開発者、シードフレーズを示すセキュリティ教育者、誤入力の単語で安全に失敗すべき自動化スクリプトは、乱数エントロピーを生成せずネットワークにも接続しない決定論的な変換器を必要とします。このBIP-39ニーモニックエンコーダーは、エントロピーを16・20・24・28・32バイトの十六進数として受け取り、公式英語単語リストのフレーズを返します。検証失敗は課金されず、成功呼び出しは公開の基本価格が項目ごとにかかります。
BIP-39がエントロピーと単語をどう対応付けるか
BIP-39は、128・160・192・224・256ビットの生エントロピーから始まります。仕様では、そのエントロピーバイトのSHA-256ダイジェストの先頭ENT÷32ビットをチェックサムとして付け、長さが常に11の倍数になるビット列を作ります。各11ビット群は、abandonからzooまでアルファベット順に並ぶ2048語の固定英語リストへの索引です。
12語は128ビットのエントロピーに4ビットのチェックサム、15・18・21・24語は同様に最大256ビット+8ビットのチェックサムまで拡張します。したがって符号化はエントロピーバイトと単語リストだけで決まり、塩も、この能力内での英語以外の言語選択も、秘密鍵導出ステップもありません。
復号は逆で、空白で分割し各語を引き、ビット列を再構築し末尾のチェックサム窓を外し、それが復元エントロピーのSHA-256の先頭ビットと等しいか検証します。未知語、合法でない5種以外の語数、チェックサム不一致のいずれかで処理は失敗します。このフェイルクローズ設計のため、人手バックアップではウォレットが生hexよりニーモニックを好みます。
1語の誤りは別ウォレットを開くよりチェックサム失敗になることが多いからです。本ランディングはBIP-39ニーモニックエンコーダー、エントロピーからシードフレーズへの変換、ニーモニックチェックサム検証を探す方を対象とし、PBKDF2によるシード導出、乱数エントロピー生成、非英語単語リストは扱いません。
実用ベクトル・テストの要点・シード導出との違い
固定のテストエントロピーがありウォレット用フィクスチャや文書用のニーモニックが必要なときはencodeを、人が貼ったフレーズからチェックサムが正しいときだけエントロピーを戻すときはdecodeを選んでください。古典的な16バイト全ゼロはabandonが11回にabout、全ビット1の16バイトはzooが11回にwrongになります。
CIでは往復し、encodeでフレーズを、decodeで元のhexを検証してください。ニーモニックと任意パスフレーズから64バイトシードが必要な場合は別のBIP-32またはPBKDF2ツールを使い、このSEOランディングはチェックサム検証付きの符号化・復号に集中します。失敗タスクは前払い残高を消費しないため、悪いフレーズの探索コストを抑えられます。
教育では1語違いのニーモニックがほぼ同じチェックサムを共有しないことを示し、手書きバックアップが生hexより安全な理由を伝えてください。シード導出後にアドレスや秘密鍵も整形するなら、Base58Checkやhexユーティリティと組み合わせてください。
活用例
チェックサム付きシードフレーズの教材
全ゼロと全1の古典ベクトルを示し、1語を入れ替えてBIP-39が別ウォレットを開かずフェイルクローズになる理由を学習者に見せます。
よくある質問
エントロピーhexをBIP-39ニーモニックに変換するには?
mode encode(既定)でtextに32・40・48・56・64桁のhex(16–32バイト)を送ってください。
ニーモニックをエントロピーに戻すには?
mode decodeでtextに12・15・18・21・24語の英語BIP-39フレーズを送ってください。
チェックサムが誤っているとどうなりますか?
誤りや誤入力のフレーズは課金されず、偽のエントロピーも返しません。
対応する単語リストと長さは?
公式の英語BIP-39リスト2048語のみです。エントロピーは128・160・192・224・256ビット(語数12・15・18・21・24)である必要があります。
このツールはランダムなエントロピーやウォレットのシードを作りますか?
作りません。入力したエントロピーと単語をチェックサムを確かめながら相互に変換するだけです。ランダムなエントロピーの生成や、フレーズと任意のパスフレーズからのシードの導出は行わず、英語の単語リストだけに対応します。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/bip39 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"00000000000000000000000000000000"}'const res = await fetch("https://api.kit.forhosting.com/enc/bip39", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "00000000000000000000000000000000"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/bip39",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "00000000000000000000000000000000"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/bip39", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"00000000000000000000000000000000"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"00000000000000000000000000000000"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/bip39", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "00000000000000000000000000000000"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.bip39",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
デコードでは各語を11ビットの索引に写し、エントロピーとチェックサムを分け、エントロピーのSHA-256を再計算し、ビットが一致しなければinvalid_inputを返します。
入力契約・応答フィールド・エラー動作
encodeではtextは十六進エントロピーで、空白・コロン・アンダースコア・ハイフンを除いた後、偶数長で16・20・24・28・32バイトのいずれかになる必要があります。decodeではtextはニーモニックで、語は小文字化し空白・カンマ・セミコロンで分割し、各語は公式英語リストにあり、語数は12・15・18・21・24のいずれかである必要があります。必須の文字列フィールドtext(別名input・value・data・entropy・mnemonic)と、任意のmode encodeまたはdecode(既定はencode)を含むJSON本体をPOSTしてください。奇数長・非hex・他のバイト数は問題を示すinvalid_inputを返します。成功時は正規化した小文字hexをinputとentropy_hexに返し、resultとmnemonicに同一の空白区切り英語フレーズを置き、word_count・entropy_bits・checksum_bits・wordlist english・standard BIP-39と短い英語メッセージを報告します。成功時はresultとentropy_hexに復元した小文字hex、mnemonicに正規化フレーズ、checksum_validにtrue、同じサイズ欄を含めます。text欠落・未知のmode・空のニーモニック・語数不正・未知語もinvalid_inputで、課金されません。公開価格は成功項目あたり$0.002です。
実用ベクトル・テストの要点・シード導出との違い
有効な12語の末尾をabandonに変えてチェックサム不一致のinvalid_inputを断言するのも有用です。実ウォレットではエントロピー源をオフラインで高品質に保ち、本APIは乱数を採取せずバイトも保存しません。
連携の活用例
ウォレット用フィクスチャとCI検証
既知のエントロピーhexをBIP-39フレーズに符号化しゴールデンテストに使い、復号後にchecksum_validを確認してウォレットライブラリがBIPから静かに逸脱しないようにします。
貼り付けニーモニックの安全な検証
ユーザーが渡したシードフレーズを復号し、誤字や壊れたチェックサムをinvalid_inputで拒否してから、シード導出のどの段階にも進みません。
技術的な質問
BIP-39ニーモニックエンコーダーの料金は?
ブラウザツールは無料です。APIは成功呼び出しごとに前払いKIT残高から$0.002です。無効な入力は課金されません。