(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Wolfram 15.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       154,          7]
NotebookDataLength[     51932,       1355]
NotebookOptionsPosition[     41396,       1161]
NotebookOutlinePosition[     43570,       1212]
CellTagsIndexPosition[     43492,       1207]
WindowTitle->ElectrumV2Seed
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[GridBox[{
   {GridBox[{
      {
       ItemBox[Cell[BoxData[
         RowBox[{
          TemplateBox[{12},
           "Spacer1"], Cell[
          "WOLFRAM INSTITUTE/ PUZZLES SYMBOL", "PacletNameCell",
           TextAlignment->Center,ExpressionUUID->
           "441485a7-b935-4ac9-9b7c-09f301686ae2"], 
          TemplateBox[{8},
           "Spacer1"]}]],
         TextAlignment->Center,ExpressionUUID->
         "fd93b047-ac1e-468b-9fb3-bcf6cf7ecee3"],
        Background->LightDarkSwitched[
          RGBColor[0.490196, 0.576471, 0.690196]],
        ItemSize->Full], ""}
     },
     GridBoxAlignment->{"Rows" -> {{Center}}},
     GridBoxItemSize->{"Columns" -> {Full, 
         Scaled[0.02]}, "Rows" -> {{2.5}}}], Cell[TextData[{
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "See Also",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "7b6edd79-a0f3-4603-b577-4a5c266fd490"]
         }],ExpressionUUID->"d81f6c80-06b1-469b-8314-9abdf160a749"],
         StripOnInput->False],{
        StyleBox[
          "\"ElectrumSeedVersion\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/ElectrumSeedVersion"], 
         StyleBox["\"BIP39Seed\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/BIP39Seed"], 
         StyleBox["\"PBKDF2Key\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/PBKDF2Key"], 
         StyleBox[
          "\"ElectrumV1MasterPrivateKey\"", "SeeAlsoRelated", StripOnInput -> 
           False] :> Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/ElectrumV1MasterPrivateKey"], 
         StyleBox["\"HMACHash\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/HMACHash"]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"SeeAlso"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "8a80b983-bcfd-42be-821c-5f5c961f5ddb"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "Related Guides",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "daddb5f8-290b-4293-8abe-bb06f8f4dc19"]
         }],ExpressionUUID->"065e871d-f8e4-454b-aa8b-7ad3be13d1c6"],
         StripOnInput->False],{
        "\"Seeds\"" :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/guide/Seeds"]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"MoreAbout"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "ece119e5-4cf1-4dd8-b4fe-9765baa13f1a"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "URL",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "38765076-c40a-4e60-81c6-495fda17115d"]
         }],ExpressionUUID->"5d025060-4ee1-4b93-8f0e-945b15981b12"],
         StripOnInput->False],{
        "\"WolframInstitute/Puzzles/ref/ElectrumV2Seed\"" :> None, 
         "\"Copy Wolfram Documentation Center URL\"" :> 
         CopyToClipboard["WolframInstitute/Puzzles/ref/ElectrumV2Seed"], 
         Delimiter, "\"Copy web URL\"" :> 
         Module[{DocumentationSearch`Private`nb$}, 
           DocumentationSearch`Private`nb$ = 
            NotebookPut[
             Notebook[{
               Cell[BoxData[
                 MakeBoxes[
                  Hyperlink[
                   "http://reference.wolfram.com/language/WolframInstitute/\
Puzzles/ref/ElectrumV2Seed.html"], StandardForm]], "Input", TextClipboardType -> 
                 "PlainText"]}, Visible -> False]]; 
           SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
           FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
           NotebookClose[DocumentationSearch`Private`nb$]; Null], 
         "\"Go to web URL\"" :> 
         FrontEndExecute[{
           NotebookLocate[{
             URL[If[TrueQ[False], 
                 "http://reference.wolfram.com/system-modeler/", 
                 "http://reference.wolfram.com/language/"] <> 
               "WolframInstitute/Puzzles/ref/ElectrumV2Seed" <> ".html"], 
              None}]}]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"URLMenu"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "b621fdb2-733e-4c96-bfb7-cfdf5ca5a995"]
    }], "AnchorBar",
     CacheGraphics->False,ExpressionUUID->
     "f4ba365c-0ef6-4b75-8904-ff24b4c02b0a"]}
  }]], "AnchorBarGrid",
 CellID->1,ExpressionUUID->"1f43bcdd-3bd3-4cc4-be5a-784ba522ffed"],

Cell["WolframInstitute`Puzzles`", "ContextNameCell",ExpressionUUID->"b95d3b29-8ddd-43d5-9654-a1eb8800c2a2"],

Cell[CellGroupData[{

Cell[BoxData[GridBox[{
   {Cell[TextData[{
     Cell[
     "ElectrumV2Seed", "ObjectName",ExpressionUUID->
      "960297c4-a2f7-46ac-895c-247da4b5472b"],
     Cell[BoxData[
      TemplateBox[{8},
       "Spacer1"]],ExpressionUUID->"9a9fecce-7742-4081-a9e2-5f18c788d3f2"],
     Cell[BoxData[
     ""], "ObjectNameTranslation",ExpressionUUID->
      "a1a28800-0127-4de2-b479-e8693d92fed3"]
    }],ExpressionUUID->"8501b9ef-3d12-401d-90c3-c5d1346e293b"], 
    "\[SpanFromLeft]"}
  }]], "ObjectNameGrid",ExpressionUUID->"e11a41b5-ebba-41c3-836a-\
318065f3ea6d"],

Cell[BoxData[GridBox[{
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{
       TemplateBox[{
         Cell[
          TextData["ElectrumV2Seed"]], 
         "paclet:WolframInstitute/Puzzles/ref/ElectrumV2Seed", 
         "WolframInstitute/Puzzles Package Symbol"},
        "PackageLink",
        BaseStyle->"InlineFormula"], "[", 
       StyleBox["mnemonic", "TI"], "]"}]], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "e94f9df3-d594-448d-bd1d-dc559bb7fc31"],
     "\[LineSeparator]",
     "gives the 64-byte seed of an Electrum version 2 ",
     StyleBox["mnemonic", "TI"],
     " as a ",
     Cell[BoxData[
      TemplateBox[{
        Cell[
         TextData["ByteArray"]], "paclet:ref/ByteArray"},
       "RefLink",
       BaseStyle->"InlineFormula"]], "InlineFormula",
      FontFamily->"Source Sans Pro",ExpressionUUID->
      "eda51cc3-ff9e-47cb-97d0-66931d5b8fd6"],
     "."
    }],ExpressionUUID->"cbd74162-5a95-4a8e-bf00-bd3694e4974a"]},
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{
       TemplateBox[{
         Cell[
          TextData["ElectrumV2Seed"]], 
         "paclet:WolframInstitute/Puzzles/ref/ElectrumV2Seed", 
         "WolframInstitute/Puzzles Package Symbol"},
        "PackageLink",
        BaseStyle->"InlineFormula"], "[", 
       RowBox[{
        StyleBox["mnemonic", "TI"], ",", " ", 
        StyleBox["passphrase", "TI"]}], "]"}]], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "2f023214-0618-4f15-8ebe-842b443bd6ed"],
     "\[LineSeparator]",
     "applies the optional Electrum passphrase."
    }],ExpressionUUID->"6817b1a0-6630-4013-aa0e-e7ef10d3fe3f"]}
  }]], "Usage",ExpressionUUID->"4055daed-2bad-4d64-804e-8afc653c1fa2"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[Cell[BoxData[Cell[TextData[{
  Cell[BoxData[
   DynamicBox[ToBoxes[
     If[CurrentValue[
        EvaluationCell[], "CellGroupOpen"] =!= Closed, 
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], 
      Rotate[
       Style[
        Graphics[{
          Thickness[0.18], 
          RGBColor[0.8509803921568627, 0.396078431372549, 0], 
          Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
         PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
        0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]],
    ImageSizeCache->{
     13.600000000000001`, {-0.1685058593749993, 13.768505859375}}]],
   ExpressionUUID->"267bdb54-b3a0-41c6-bf0a-456cb43e0132"],
  Cell[BoxData[
   TemplateBox[{1},
    "Spacer1"]],ExpressionUUID->"c9ee2ef9-479d-4eac-931d-29d576c27437"],
  "Details and Options"
 }], "NotesFrameText",ExpressionUUID->
  "8243aae2-5a07-4f9f-a625-2888fc69217e"]],ExpressionUUID->"f6ff2aaa-e80f-\
430f-8a2c-2eb8d061f9a2"]], "NotesSection",
 ShowGroupOpener->"Thumbnail",
 WholeCellGroupOpener->True,
 CellGroupingRules->{"SectionGrouping", 50},
 CacheGraphics->False,
 CellID->1671489738,ExpressionUUID->"f3442566-7ed9-46be-9526-d891af67a759"],

Cell[TextData[{
 "The seed is PBKDF2 with HMAC-SHA512, 2048 iterations and a 512-bit output, \
taking the normalized sentence as password and ",
 Cell[BoxData["\<\"electrum\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "3a4106a4-44dd-416b-a93a-0d2a8b3e776b"],
 " followed by the normalized passphrase as salt."
}], "Notes",ExpressionUUID->"f48d70b7-2569-4add-a9d0-2cebbac8ce52"],

Cell["\<\
That is BIP39's derivation with a different salt prefix, so the same words \
give a different seed under the two schemes.\
\>", "Notes",ExpressionUUID->"317225af-5afd-49d4-af25-cfc3193aa445"],

Cell["\<\
Both the sentence and the passphrase are normalized the way Electrum \
normalizes them: NFKD, lowercase, characters of nonzero Unicode combining \
class dropped, whitespace collapsed, and spaces between CJK characters \
removed. BIP39 applies NFKD and nothing else, which is why the two disagree \
on a phrase in capitals.\
\>", "Notes",ExpressionUUID->"bac5dde6-9666-47e8-b0c4-a81c59bec0b7"],

Cell[TextData[{
 "The version prefix is not required to be valid. Like BIP39, the derivation \
is defined for any sentence, and a phrase ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["ElectrumSeedVersion"]], 
    "paclet:WolframInstitute/Puzzles/ref/ElectrumSeedVersion", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "bf6da306-a42c-4b6d-99fb-f900fe58d1c3"],
 " calls ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["None"]], "paclet:ref/None"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "0f772586-c9eb-410d-9e53-93e598e482b4"],
 " still has a seed."
}], "Notes",ExpressionUUID->"39fc53e8-f031-4be4-ab1f-4baf19f4efd4"],

Cell[TextData[{
 StyleBox["mnemonic", "TI"],
 " may be a string or a list of words. Passing no passphrase is the same as \
passing ",
 Cell[BoxData["\<\"\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "25693f3c-7de9-4b8c-8fbe-498868da701e"],
 "."
}], "Notes",ExpressionUUID->"bb9c8a76-b1f5-454c-b289-59bdc631adf2"],

Cell["\<\
The result is the BIP32 seed Electrum feeds to its master key derivation.\
\>", "Notes",ExpressionUUID->"e3ec0c9b-72ff-4673-9182-140665a2ac72"]
}, Closed]],

Cell["", "PageDelimiter",ExpressionUUID->"fdf998e3-30ef-4cbf-b0de-a22c50fe01f2"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[
     MatchQ[
      CurrentValue[
       EvaluationNotebook[], {
       TaggingRules, "Openers", "PrimaryExamplesSection"}, Open], 
      Alternatives[True, Open]], 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]],
   ImageSizeCache->{
    13.600000000000001`, {4.251494140625001, 9.348505859375}}]],
  ExpressionUUID->"cc0489f2-5c50-44ad-bc8b-fdcc9a59e2c6"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"47612fc0-80cf-49a1-b7f8-03228d492289"],
 "Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(14)", "ExampleCount",ExpressionUUID->
  "9a2948db-39ce-4927-add0-77ff9a0916ce"]
}], "PrimaryExamplesSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1494440159,ExpressionUUID->"626e8d7a-2ac7-449b-9f1a-99e999d6f39e"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<WolframInstitute`Puzzles`\>\"", "]"}]], "Input", \
"ExampleInitialization",
 CellLabel->"In[1]:=",
 CellID->1969679695,ExpressionUUID->"ee77b296-9a00-47bc-9c9a-e19606767cc5"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "979bb4ab-7719-4357-8032-6177e14052cc"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"73895422-05b3-4ed6-934d-ccf0663775aa"],
 "Basic Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(3)", "ExampleCount",ExpressionUUID->
  "b4bca41f-c3b4-4995-b566-b687d7f06a41"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->87017001,ExpressionUUID->"a8261f6c-a886-4697-951e-5d14fd44df9c"],

Cell["The Electrum test suite's English version 2 seed:", "ExampleText",
 CellTags->
  "TextAnnotation",ExpressionUUID->"09021fc2-c652-40ff-847d-88e2e3babe92"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ByteListToHexString", "[", 
  RowBox[{
  "ElectrumV2Seed", 
   "[", "\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"d3cc432c-5164-4f17-ae8c-53d253eb9454"],

Cell[BoxData["\<\"\
aac2a6302e48577ab4b46f23dbae0774e2e62c796f797d0a1b5faeb528301e3064342dafb79069\
e7c4c6b8c38ae11d7a973bec0d4f70626f8cc5184a8d0b0756\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"2d3fc8af-b199-46e3-8933-a9ca87eecd1d"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "715b1907-7165-48bb-b3e2-e2961b5bc656"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"24eb7c86-95f6-458a-\
851c-2cb3ce6d604c"],

Cell["\<\
The same words under the test suite's passphrase give a different wallet:\
\>", "ExampleText",ExpressionUUID->"4e94bd00-1f19-4e5c-8dd4-1063c202ee6a"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ByteListToHexString", "[", 
  RowBox[{"ElectrumV2Seed", "[", 
   RowBox[{"\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", ",", 
    " ", "\"\<Did you ever hear the tragedy of Darth Plagueis the \
Wise?\>\""}], "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"583a1424-7393-45f0-8289-63a4b4bc332c"],

Cell[BoxData["\<\"\
4aa29f2aeb0127efb55138ab9e7be83b36750358751906f86c662b21a1ea1370f949e6d1a12fa5\
6d3d93cadda93038c76ac8118597364e46f5156fde6183c82f\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"269d6ef0-39cc-4646-bdf0-db32ba8a0808"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "4dbdc654-0504-4fbc-9d1a-44395d6bfb67"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"673967aa-ed1e-4d88-\
a463-5cab75b483ec"],

Cell["The seed is always 64 bytes:", "ExampleText",ExpressionUUID->"62232163-b205-4a74-946f-cda329e49bb3"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Length", "[", 
  RowBox[{
  "ElectrumV2Seed", 
   "[", "\"\<cram swing cover prefer miss modify ritual silly deliver chunk \
behind inform able\>\"", "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"a7eed82f-723a-4b2d-8efa-ec6a00208a21"],

Cell[BoxData["64"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"1b3e5c9f-f1a8-463b-9b8b-7ed69b09f423"]
}, Open  ]]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "db1d08d5-f0c5-4db5-91c9-cf48965e923f"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"76deaf8c-d704-4714-8a6c-9bca297716f3"],
 "Scope",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(4)", "ExampleCount",ExpressionUUID->
  "3c6eb3f7-c84f-45f1-b619-fff941ef4f58"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1293636265,ExpressionUUID->"af952499-5e5e-4439-a07b-1cac56e5cc59"],

Cell[TextData[{
 "A sentence that is not a version 2 seed still has a seed, which is the \
Electrum test suite's own ",
 Cell[BoxData["\<\"foobar\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "1658bced-b3f2-44a5-9192-028cc65faf82"],
 " case:"
}], "ExampleText",ExpressionUUID->"798dadbd-a570-447d-80fe-958b76d0c106"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ByteListToHexString", "[", 
  RowBox[{"ElectrumV2Seed", "[", 
   RowBox[{"\"\<foobar\>\"", ",", " ", "\"\<none\>\""}], "]"}], 
  "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"71306aae-99f5-482c-8a8c-53edf517a247"],

Cell[BoxData["\<\"\
741b72fd15effece6bfe5a26a52184f66811bd2be363190e07a42cca442b1a5bb22b3ad0eb3381\
97287e6d314866c7fba863ac65d3f156087a5052ebc7157fce\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"98fa50fc-9d2d-4263-ac1f-72603386bc2a"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "9d9c4b7d-ea19-4aa5-a32e-f05149e91180"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"f05c5971-cf16-4f88-\
a49f-dc95e6017f7f"],

Cell["The mnemonic may be given as a list of words:", "ExampleText",ExpressionUUID->"d26a3a63-cbb2-445f-b3d0-889b0481fdd0"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"ElectrumV2Seed", "[", 
   RowBox[{"{", 
    RowBox[{"\"\<wild\>\"", ",", " ", "\"\<father\>\"", ",", 
     " ", "\"\<tree\>\"", ",", " ", "\"\<among\>\"", ",", 
     " ", "\"\<universe\>\"", ",", " ", "\"\<such\>\"", ",", 
     " ", "\"\<mobile\>\"", ",", " ", "\"\<favorite\>\"", ",", 
     " ", "\"\<target\>\"", ",", " ", "\"\<dynamic\>\"", ",", 
     " ", "\"\<credit\>\"", ",", " ", "\"\<identify\>\""}], "}"}], "]"}], " ",
   "===", " ", 
  RowBox[{
  "ElectrumV2Seed", 
   "[", "\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", "]"}]}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"a8d52fcf-a8e1-41c4-a1f6-45a27c55c869"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"7ecac9ec-1c7c-4765-a4a0-79a6912a9db5"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "3a5e0191-e60b-4e16-b3c7-5356e885df6d"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"e22d088e-0227-4faa-\
a450-60f948978dfd"],

Cell["\<\
A Chinese seed derives correctly, because the spaces between the CJK \
characters are removed before hashing:\
\>", "ExampleText",ExpressionUUID->"7da37a8d-1134-4b0f-a148-ceed84fc4ce0"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ByteListToHexString", "[", 
  RowBox[{"ElectrumV2Seed", "[", 
   RowBox[{"StringRiffle", "[", 
    RowBox[{"Map", "[", 
     RowBox[{"FromCharacterCode", ",", " ", 
      RowBox[{"{", 
       RowBox[{
        RowBox[{"{", "30524", "}"}], ",", " ", 
        RowBox[{"{", "24754", "}"}], ",", " ", 
        RowBox[{"{", "21467", "}"}], ",", " ", 
        RowBox[{"{", "25913", "}"}], ",", " ", 
        RowBox[{"{", "33410", "}"}], ",", " ", 
        RowBox[{"{", "36291", "}"}], ",", " ", 
        RowBox[{"{", "34913", "}"}], ",", " ", 
        RowBox[{"{", "21709", "}"}], ",", " ", 
        RowBox[{"{", "30086", "}"}], ",", " ", 
        RowBox[{"{", "32929", "}"}], ",", " ", 
        RowBox[{"{", "36930", "}"}], ",", " ", 
        RowBox[{"{", "20908", "}"}]}], "}"}]}], "]"}], "]"}], "]"}], 
  "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"62d09f40-78ae-4551-abb7-1f9384943807"],

Cell[BoxData["\<\"\
0b9077db7b5a50dbb6f61821e2d35e255068a5847e221138048a20e12d80b673ce306b6fe7ac17\
4ebc6751e11b7037be6ee9f17db8040bb44f8466d519ce2abf\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"a31c3005-1a9a-45c3-8843-3da3a41aa4c9"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "a18e4e41-e66a-4860-849c-633b875021e3"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"dc995303-4cc6-41c1-\
bf31-ea1681cc9939"],

Cell["\<\
Normalization folds case, so a phrase transcribed in capitals gives the same \
seed:\
\>", "ExampleText",ExpressionUUID->"7c158ff7-8c36-45ca-bb76-440d6ffc2875"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{
  "ElectrumV2Seed", 
   "[", "\"\<WILD FATHER TREE AMONG UNIVERSE SUCH MOBILE FAVORITE TARGET \
DYNAMIC CREDIT IDENTIFY\>\"", "]"}], " ", "===", " ", 
  RowBox[{
  "ElectrumV2Seed", 
   "[", "\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", "]"}]}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"f101a9bc-b9e6-4d94-a228-a935f1bcf118"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"30a6e37f-e044-40a6-8ff5-8f861c98a6d6"]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "beb53cb7-30fa-420d-82b9-8e24680ce970"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"7773f7a3-225b-4e24-8497-36c091d04f84"],
 "Applications",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(2)", "ExampleCount",ExpressionUUID->
  "9acc2895-3d12-4804-bba3-fe5b5f5643cc"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->258228157,ExpressionUUID->"83e87d8f-3ebf-4094-88bb-c4390f1d4ac3"],

Cell["\<\
Deriving under a list of candidate passphrases is a map over the second \
argument:\
\>", "ExampleText",ExpressionUUID->"95cc35d4-4cd5-4ac3-ae82-f0a2db9d222d"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Column", "[", 
  RowBox[{"Map", "[", 
   RowBox[{
    RowBox[{"Function", "[", 
     RowBox[{"p", ",", " ", 
      RowBox[{"p", " ", "->", " ", 
       RowBox[{"StringTake", "[", 
        RowBox[{
         RowBox[{"ByteListToHexString", "[", 
          RowBox[{"ElectrumV2Seed", "[", 
           
           RowBox[{"\"\<wild father tree among universe such mobile favorite \
target dynamic credit identify\>\"", ",", " ", "p"}], "]"}], "]"}], ",", " ", 
         "16"}], "]"}]}]}], "]"}], ",", " ", 
    RowBox[{"{", 
     RowBox[{"\"\<\>\"", ",", " ", "\"\<electrum\>\"", ",", 
      " ", "\"\<satoshi\>\""}], "}"}]}], "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"6251af99-ae25-4617-b99a-89815a5fd3c5"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"\<\"\"\>", "\[Rule]", "\<\"aac2a6302e48577a\"\>"}]},
    {
     RowBox[{"\<\"electrum\"\>", "\[Rule]", "\<\"c5c97d6e819ac2ec\"\>"}]},
    {
     RowBox[{"\<\"satoshi\"\>", "\[Rule]", "\<\"7ee7090609473dc6\"\>"}]}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"0a4c5b27-b05c-4a9a-8367-ad8c9ab742a0"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "6091b82d-4ffe-4ccb-91f8-4d93a2fdc0c4"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"3ef03698-a6c4-48bc-\
b3cd-4fc32bbd387e"],

Cell["\<\
Classifying and then deriving is the usual pair of steps on a recovered \
phrase:\
\>", "ExampleText",ExpressionUUID->"a24696ff-7d1f-4106-afa9-fea40250ceb6"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{
   "ElectrumSeedVersion", 
    "[", "\"\<frost pig brisk excite novel report camera enlist axis nation \
novel desert\>\"", "]"}], ",", " ", 
   RowBox[{"StringTake", "[", 
    RowBox[{
     RowBox[{"ByteListToHexString", "[", 
      RowBox[{
      "ElectrumV2Seed", 
       "[", "\"\<frost pig brisk excite novel report camera enlist axis \
nation novel desert\>\"", "]"}], "]"}], ",", " ", "16"}], "]"}]}], 
  "}"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"96605147-87a3-4a5f-b8e2-7786bc9e1016"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"Segwit\"\>", ",", "\<\"f2d62e978d46e0e5\"\>"}], 
  "}"}]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"45110bb3-d8c9-46c8-ac32-18260c25a5fb"]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "36b29886-44e2-4d4c-bc43-eb518c7f2d4b"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"85c4f612-4945-48a7-a0a2-4a51f482580d"],
 "Properties & Relations",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(3)", "ExampleCount",ExpressionUUID->
  "5e059c9e-8505-4dbe-b878-de6d9c14cec8"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->2123667759,ExpressionUUID->"076054e1-8275-4f1b-8767-4d24fadf4f8d"],

Cell[TextData[{
 "The derivation is ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["PBKDF2Key"]], "paclet:WolframInstitute/Puzzles/ref/PBKDF2Key", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "2630d974-1eca-4e34-8cb9-2a37543a9e31"],
 " with the Electrum parameters filled in:"
}], "ExampleText",ExpressionUUID->"53f0098c-3616-4fa1-8460-8c57e98d34b1"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{
  "ElectrumV2Seed", 
   "[", "\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", "]"}], " ", "===", " ", 
  RowBox[{"PBKDF2Key", "[", 
   RowBox[{"\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", ",", " ", "\"\<electrum\>\"", ",", " ", "2048", 
    ",", " ", "64"}], "]"}]}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"1fbe6057-523f-4d13-bb08-ecb28d9f6a44"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"e5340d33-ae16-41f5-874a-b00f42e5a598"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "4cd61340-5817-4267-9cb1-3f6d1286b875"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"03403788-4e16-4876-\
8df2-061d25bc1baa"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP39Seed"]], "paclet:WolframInstitute/Puzzles/ref/BIP39Seed", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "8a1ca548-4e7f-47bf-9408-b24d28680c76"],
 " is the same derivation salted with ",
 Cell[BoxData["\<\"mnemonic\"\>"], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "23074e0b-0e24-4306-8eaa-f83cec8b0284"],
 ", so the same words give unrelated seeds:"
}], "ExampleText",ExpressionUUID->"d4e7ffde-c560-4249-8164-b6ea8e0f714a"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"StringTake", "[", 
    RowBox[{
     RowBox[{"ByteListToHexString", "[", 
      RowBox[{
      "ElectrumV2Seed", 
       "[", "\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", "]"}], "]"}], ",", " ", "16"}], "]"}], ",", " ", 
   RowBox[{"StringTake", "[", 
    RowBox[{
     RowBox[{"ByteListToHexString", "[", 
      RowBox[{
      "BIP39Seed", 
       "[", "\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", "]"}], "]"}], ",", " ", "16"}], "]"}]}], 
  "}"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"2dbf16d0-ed68-4181-8992-37d1378570f8"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"aac2a6302e48577a\"\>", ",", "\<\"3c1cf008881e5419\"\>"}], 
  "}"}]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"d81ca216-4b4e-4104-8d41-b211cf0de263"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "93e23502-12be-4c6c-80b9-d540c988752f"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"e6caea8f-37ab-4958-\
9ead-88e3e66ab6b5"],

Cell["\<\
BIP39 does not fold case, so the two schemes differ on a capitalized phrase \
in normalization as well as in salt:\
\>", "ExampleText",ExpressionUUID->"d30b13fb-4512-4ec3-8270-067ffa15dab5"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{
  "BIP39Seed", 
   "[", "\"\<WILD FATHER TREE AMONG UNIVERSE SUCH MOBILE FAVORITE TARGET \
DYNAMIC CREDIT IDENTIFY\>\"", "]"}], " ", "===", " ", 
  RowBox[{
  "BIP39Seed", 
   "[", "\"\<wild father tree among universe such mobile favorite target \
dynamic credit identify\>\"", "]"}]}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"089eaf10-d217-4c19-bee5-c543e591af66"],

Cell[BoxData["False"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"2006f172-0899-4bcb-bca5-8b34082f52d7"]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "2fea91f3-a921-48df-a3d3-037ef38a7b6a"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"bedeaaa1-25ff-404b-8737-25f3b57d7daa"],
 "Possible Issues",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(2)", "ExampleCount",ExpressionUUID->
  "ef0004ce-d508-4c76-a41b-84a6df4e1792"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1305812373,ExpressionUUID->"20abb2db-f253-46de-b617-e502fe00d9ba"],

Cell["\<\
Deriving a seed from a phrase that is not a version 2 seed produces bytes \
that look exactly like a real seed:\
\>", "ExampleText",ExpressionUUID->"5363de34-703b-4fc4-9619-4f489bd6a6d1"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"ElectrumSeedVersion", "[", "\"\<hello world\>\"", "]"}], ",", " ", 
   RowBox[{"StringTake", "[", 
    RowBox[{
     RowBox[{"ByteListToHexString", "[", 
      RowBox[{"ElectrumV2Seed", "[", "\"\<hello world\>\"", "]"}], "]"}], ",",
      " ", "16"}], "]"}]}], "}"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"21ceb588-e99d-4c8f-b6c2-8eef1d8c6571"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"None", ",", "\<\"79f4ea58af525382\"\>"}], "}"}]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"aeb7f793-bb70-4bdf-a728-82ba8542f4dd"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "0dd9e0b6-c9b5-4bb4-8748-8d712ce8c326"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"8ec6d548-c32f-4437-\
9423-4b933a1e3df9"],

Cell["\<\
An argument that is not a string or a list of words matches no definition:\
\>", "ExampleText",ExpressionUUID->"14006fb8-cae4-4360-8ad5-f8bf09a871e3"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ElectrumV2Seed", "[", "42", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"967fc909-6399-48fd-bad8-010d82a2d98e"],

Cell[BoxData[
 RowBox[{"ElectrumV2Seed", "[", "42", "]"}]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"21422dcc-c4d4-4c89-b422-4c1fedfdf5e7"]
}, Open  ]]
}, Open  ]]
}, Closed]]
}, Open  ]],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, 
       "RelatedFunction.png"]],
     ImageSizeCache->{50., {26.47265625, 33.52734375}}], GridBox[{
      {
       StyleBox[
        RowBox[{"See", " ", "Also"}], "SeeAlsoSection"]},
      {Cell[TextData[{
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["ElectrumSeedVersion"]], 
           "paclet:WolframInstitute/Puzzles/ref/ElectrumSeedVersion", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "5552ffcd-5aea-43ea-893e-027ce55f498a"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["BIP39Seed"]], 
           "paclet:WolframInstitute/Puzzles/ref/BIP39Seed", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "f9c57e90-4eaa-4419-b198-4f5abcd967c0"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["PBKDF2Key"]], 
           "paclet:WolframInstitute/Puzzles/ref/PBKDF2Key", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "f5c52989-4d93-4a58-8b36-c544f45c7cfe"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["ElectrumV1MasterPrivateKey"]], 
           "paclet:WolframInstitute/Puzzles/ref/ElectrumV1MasterPrivateKey", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "6c6c8cfa-b499-485f-9a9d-482f7558cd62"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["HMACHash"]], 
           "paclet:WolframInstitute/Puzzles/ref/HMACHash", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "55e8e30a-5f29-4eab-b2c4-4105c2ae67a6"]
       }], "SeeAlso",ExpressionUUID->"fff3e48f-d956-4bb8-8e0c-58319c3d101c"]}
     }]}
  }]], "SeeAlsoSection",ExpressionUUID->"c295f808-9cd3-474f-93a1-\
aa8487084f8e"],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, "RelatedGuide.png"]],
     ImageSizeCache->{50., {26.47265625, 33.52734375}}], GridBox[{
      {
       StyleBox[
        RowBox[{"Related", " ", "Guides"}], "MoreAboutSection"]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Seeds"]], "paclet:WolframInstitute/Puzzles/guide/Seeds"},
          "RefLinkPlain",
          BaseStyle->{"MoreAbout"}]], "MoreAbout",ExpressionUUID->
         "e553bf41-7681-4451-bac4-113c7fa8bbce"]}]}
     }]}
  }]], "MoreAboutSection",ExpressionUUID->"616df4a6-3ad7-4526-b0d7-\
90079041a7a3"],

Cell[" ", "FooterCell",ExpressionUUID->"a752c175-e1bf-4ba0-ad85-93646a8f65f3"]
},
Saveable->False,
ScreenStyleEnvironment->"Working",
WindowSize->{900, 830},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
WindowTitle->"ElectrumV2Seed",
TaggingRules->{
 "ModificationHighlight" -> False, "ColorType" -> "", "LinkTrails" -> "", 
  "ExampleCounter" -> 1, 
  "Openers" -> {
   "PrimaryExamplesSection" -> Open, "ExampleSection" -> {"0" -> Open}, 
    "AllOptsTable" -> Closed}, "NewStyles" -> True, 
  "CitationPopupData" -> $Failed, "ShowCitation" -> False, "HasOptions" -> 
  True, "RootCaptions" -> "", "HeaderCoreAreaLink" -> {}, 
  "Metadata" -> {
   "built" -> "{2026, 8, 27, 0, 11, 52.151617}", 
    "history" -> {"XX", "", "", ""}, "context" -> "WolframInstitute`Puzzles`",
     "keywords" -> {}, "specialkeywords" -> {}, 
    "tutorialcollectionlinks" -> {}, "index" -> True, "label" -> 
    "Wolfram Institute/ Puzzles Symbol", "language" -> "en", "paclet" -> 
    "WolframInstitute/Puzzles", "status" -> "None", "summary" -> 
    "PackageLink[ElectrumV2Seed,paclet : \
WolframInstitute/Puzzles/ref/ElectrumV2Seed, WolframInstitute/Puzzles Package \
Symbol][mnemonic] gives the 64-byte seed of an Electrum version 2 mnemonic as \
a ByteArray. PackageLink[ElectrumV2Seed,paclet : \
WolframInstitute/Puzzles/ref/ElectrumV2Seed, WolframInstitute/Puzzles Package \
Symbol][mnemonic, passphrase] applies the optional Electrum passphrase.", 
    "synonyms" -> {}, "tabletags" -> {}, "title" -> "ElectrumV2Seed", 
    "titlemodifier" -> "", "metadescription" -> "", "windowtitle" -> 
    "ElectrumV2Seed", "type" -> "Symbol", "uri" -> 
    "WolframInstitute/Puzzles/ref/ElectrumV2Seed"}},
CellContext->CellGroup,
FrontEndVersion->"15.0 for Mac OS X ARM (64-bit) (May 19, 2026)",
StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "Reference.nb"],
ExpressionUUID->"e95da55e-1ea1-42bd-9e77-eed605c1ad0d"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{
 "TextAnnotation"->{
  Cell[15783, 421, 159, 2, 70, "ExampleText",ExpressionUUID->"09021fc2-c652-40ff-847d-88e2e3babe92",
   CellTags->"TextAnnotation"]}
 }
*)
(*CellTagsIndex
CellTagsIndex->{
 {"TextAnnotation", 43335, 1201}
 }
*)
(*NotebookFileOutline
Notebook[{
Cell[582, 21, 5781, 140, 70, "AnchorBarGrid",ExpressionUUID->"1f43bcdd-3bd3-4cc4-be5a-784ba522ffed",
 CellID->1],
Cell[6366, 163, 107, 0, 70, "ContextNameCell",ExpressionUUID->"b95d3b29-8ddd-43d5-9654-a1eb8800c2a2"],
Cell[CellGroupData[{
Cell[6498, 167, 557, 14, 70, "ObjectNameGrid",ExpressionUUID->"e11a41b5-ebba-41c3-836a-318065f3ea6d"],
Cell[7058, 183, 1802, 48, 70, "Usage",ExpressionUUID->"4055daed-2bad-4d64-804e-8afc653c1fa2"]
}, Open  ]],
Cell[CellGroupData[{
Cell[8897, 236, 1444, 34, 70, "NotesSection",ExpressionUUID->"f3442566-7ed9-46be-9526-d891af67a759",
 CellGroupingRules->{"SectionGrouping", 50},
 CellID->1671489738],
Cell[10344, 272, 434, 8, 70, "Notes",ExpressionUUID->"f48d70b7-2569-4add-a9d0-2cebbac8ce52"],
Cell[10781, 282, 201, 3, 70, "Notes",ExpressionUUID->"317225af-5afd-49d4-af25-cfc3193aa445"],
Cell[10985, 287, 402, 6, 70, "Notes",ExpressionUUID->"bac5dde6-9666-47e8-b0c4-a81c59bec0b7"],
Cell[11390, 295, 862, 24, 70, "Notes",ExpressionUUID->"39fc53e8-f031-4be4-ab1f-4baf19f4efd4"],
Cell[12255, 321, 369, 9, 70, "Notes",ExpressionUUID->"bb9c8a76-b1f5-454c-b289-59bdc631adf2"],
Cell[12627, 332, 153, 2, 70, "Notes",ExpressionUUID->"e3ec0c9b-72ff-4673-9182-140665a2ac72"]
}, Closed]],
Cell[12795, 337, 80, 0, 70, "PageDelimiter",ExpressionUUID->"fdf998e3-30ef-4cbf-b0de-a22c50fe01f2"],
Cell[CellGroupData[{
Cell[12900, 341, 1402, 37, 70, "PrimaryExamplesSection",ExpressionUUID->"626e8d7a-2ac7-449b-9f1a-99e999d6f39e",
 CellID->1494440159],
Cell[14305, 380, 216, 4, 70, "Input",ExpressionUUID->"ee77b296-9a00-47bc-9c9a-e19606767cc5",
 CellID->1969679695],
Cell[CellGroupData[{
Cell[14546, 388, 1234, 31, 70, "ExampleSection",ExpressionUUID->"a8261f6c-a886-4697-951e-5d14fd44df9c",
 CellID->87017001],
Cell[15783, 421, 159, 2, 70, "ExampleText",ExpressionUUID->"09021fc2-c652-40ff-847d-88e2e3babe92",
 CellTags->"TextAnnotation"],
Cell[CellGroupData[{
Cell[15967, 427, 339, 7, 70, "Input",ExpressionUUID->"d3cc432c-5164-4f17-ae8c-53d253eb9454"],
Cell[16309, 436, 246, 3, 70, "Output",ExpressionUUID->"2d3fc8af-b199-46e3-8933-a9ca87eecd1d"]
}, Open  ]],
Cell[CellGroupData[{
Cell[16592, 444, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"24eb7c86-95f6-458a-851c-2cb3ce6d604c"],
Cell[16819, 451, 159, 2, 70, "ExampleText",ExpressionUUID->"4e94bd00-1f19-4e5c-8dd4-1063c202ee6a"],
Cell[CellGroupData[{
Cell[17003, 457, 432, 8, 70, "Input",ExpressionUUID->"583a1424-7393-45f0-8289-63a4b4bc332c"],
Cell[17438, 467, 246, 3, 70, "Output",ExpressionUUID->"269d6ef0-39cc-4646-bdf0-db32ba8a0808"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[17733, 476, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"673967aa-ed1e-4d88-a463-5cab75b483ec"],
Cell[17960, 483, 106, 0, 70, "ExampleText",ExpressionUUID->"62232163-b205-4a74-946f-cda329e49bb3"],
Cell[CellGroupData[{
Cell[18091, 487, 324, 7, 70, "Input",ExpressionUUID->"a7eed82f-723a-4b2d-8efa-ec6a00208a21"],
Cell[18418, 496, 108, 1, 70, "Output",ExpressionUUID->"1b3e5c9f-f1a8-463b-9b8b-7ed69b09f423"]
}, Open  ]]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[18587, 504, 1227, 31, 70, "ExampleSection",ExpressionUUID->"af952499-5e5e-4439-a07b-1cac56e5cc59",
 CellID->1293636265],
Cell[19817, 537, 372, 8, 70, "ExampleText",ExpressionUUID->"798dadbd-a570-447d-80fe-958b76d0c106"],
Cell[CellGroupData[{
Cell[20214, 549, 296, 6, 70, "Input",ExpressionUUID->"71306aae-99f5-482c-8a8c-53edf517a247"],
Cell[20513, 557, 246, 3, 70, "Output",ExpressionUUID->"98fa50fc-9d2d-4263-ac1f-72603386bc2a"]
}, Open  ]],
Cell[CellGroupData[{
Cell[20796, 565, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"f05c5971-cf16-4f88-a49f-dc95e6017f7f"],
Cell[21023, 572, 123, 0, 70, "ExampleText",ExpressionUUID->"d26a3a63-cbb2-445f-b3d0-889b0481fdd0"],
Cell[CellGroupData[{
Cell[21171, 576, 762, 16, 70, "Input",ExpressionUUID->"a8d52fcf-a8e1-41c4-a1f6-45a27c55c869"],
Cell[21936, 594, 110, 1, 70, "Output",ExpressionUUID->"7ecac9ec-1c7c-4765-a4a0-79a6912a9db5"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[22095, 601, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"e22d088e-0227-4faa-a450-60f948978dfd"],
Cell[22322, 608, 195, 3, 70, "ExampleText",ExpressionUUID->"7da37a8d-1134-4b0f-a148-ceed84fc4ce0"],
Cell[CellGroupData[{
Cell[22542, 615, 968, 22, 70, "Input",ExpressionUUID->"62d09f40-78ae-4551-abb7-1f9384943807"],
Cell[23513, 639, 246, 3, 70, "Output",ExpressionUUID->"a31c3005-1a9a-45c3-8843-3da3a41aa4c9"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[23808, 648, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"dc995303-4cc6-41c1-bf31-ea1681cc9939"],
Cell[24035, 655, 170, 3, 70, "ExampleText",ExpressionUUID->"7c158ff7-8c36-45ca-bb76-440d6ffc2875"],
Cell[CellGroupData[{
Cell[24230, 662, 468, 11, 70, "Input",ExpressionUUID->"f101a9bc-b9e6-4d94-a228-a935f1bcf118"],
Cell[24701, 675, 110, 1, 70, "Output",ExpressionUUID->"30a6e37f-e044-40a6-8ff5-8f861c98a6d6"]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[24872, 683, 1233, 31, 70, "ExampleSection",ExpressionUUID->"83e87d8f-3ebf-4094-88bb-c4390f1d4ac3",
 CellID->258228157],
Cell[26108, 716, 169, 3, 70, "ExampleText",ExpressionUUID->"95cc35d4-4cd5-4ac3-ae82-f0a2db9d222d"],
Cell[CellGroupData[{
Cell[26302, 723, 795, 19, 70, "Input",ExpressionUUID->"6251af99-ae25-4617-b99a-89815a5fd3c5"],
Cell[27100, 744, 526, 13, 70, "Output",ExpressionUUID->"0a4c5b27-b05c-4a9a-8367-ad8c9ab742a0"]
}, Open  ]],
Cell[CellGroupData[{
Cell[27663, 762, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"3ef03698-a6c4-48bc-b3cd-4fc32bbd387e"],
Cell[27890, 769, 167, 3, 70, "ExampleText",ExpressionUUID->"a24696ff-7d1f-4106-afa9-fea40250ceb6"],
Cell[CellGroupData[{
Cell[28082, 776, 607, 16, 70, "Input",ExpressionUUID->"96605147-87a3-4a5f-b8e2-7786bc9e1016"],
Cell[28692, 794, 191, 4, 70, "Output",ExpressionUUID->"45110bb3-d8c9-46c8-ac32-18260c25a5fb"]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[28944, 805, 1244, 31, 70, "ExampleSection",ExpressionUUID->"076054e1-8275-4f1b-8767-4d24fadf4f8d",
 CellID->2123667759],
Cell[30191, 838, 511, 13, 70, "ExampleText",ExpressionUUID->"53f0098c-3616-4fa1-8460-8c57e98d34b1"],
Cell[CellGroupData[{
Cell[30727, 855, 539, 11, 70, "Input",ExpressionUUID->"1fbe6057-523f-4d13-bb08-ecb28d9f6a44"],
Cell[31269, 868, 110, 1, 70, "Output",ExpressionUUID->"e5340d33-ae16-41f5-874a-b00f42e5a598"]
}, Open  ]],
Cell[CellGroupData[{
Cell[31416, 874, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"03403788-4e16-4876-8df2-061d25bc1baa"],
Cell[31643, 881, 701, 17, 70, "ExampleText",ExpressionUUID->"d4e7ffde-c560-4249-8164-b6ea8e0f714a"],
Cell[CellGroupData[{
Cell[32369, 902, 742, 19, 70, "Input",ExpressionUUID->"2dbf16d0-ed68-4181-8992-37d1378570f8"],
Cell[33114, 923, 201, 4, 70, "Output",ExpressionUUID->"d81ca216-4b4e-4104-8d41-b211cf0de263"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[33364, 933, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"e6caea8f-37ab-4958-9ead-88e3e66ab6b5"],
Cell[33591, 940, 200, 3, 70, "ExampleText",ExpressionUUID->"d30b13fb-4512-4ec3-8270-067ffa15dab5"],
Cell[CellGroupData[{
Cell[33816, 947, 458, 11, 70, "Input",ExpressionUUID->"089eaf10-d217-4c19-bee5-c543e591af66"],
Cell[34277, 960, 111, 1, 70, "Output",ExpressionUUID->"2006f172-0899-4bcb-bca5-8b34082f52d7"]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[34449, 968, 1237, 31, 70, "ExampleSection",ExpressionUUID->"20abb2db-f253-46de-b617-e502fe00d9ba",
 CellID->1305812373],
Cell[35689, 1001, 197, 3, 70, "ExampleText",ExpressionUUID->"5363de34-703b-4fc4-9619-4f489bd6a6d1"],
Cell[CellGroupData[{
Cell[35911, 1008, 456, 10, 70, "Input",ExpressionUUID->"21ceb588-e99d-4c8f-b6c2-8eef1d8c6571"],
Cell[36370, 1020, 178, 3, 70, "Output",ExpressionUUID->"aeb7f793-bb70-4bdf-a728-82ba8542f4dd"]
}, Open  ]],
Cell[CellGroupData[{
Cell[36585, 1028, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"8ec6d548-c32f-4437-9423-4b933a1e3df9"],
Cell[36812, 1035, 160, 2, 70, "ExampleText",ExpressionUUID->"14006fb8-cae4-4360-8ad5-f8bf09a871e3"],
Cell[CellGroupData[{
Cell[36997, 1041, 195, 3, 70, "Input",ExpressionUUID->"967fc909-6399-48fd-bad8-010d82a2d98e"],
Cell[37195, 1046, 148, 2, 70, "Output",ExpressionUUID->"21422dcc-c4d4-4c89-b422-4c1fedfdf5e7"]
}, Open  ]]
}, Open  ]]
}, Closed]]
}, Open  ]],
Cell[37394, 1054, 3188, 83, 70, "SeeAlsoSection",ExpressionUUID->"c295f808-9cd3-474f-93a1-aa8487084f8e"],
Cell[40585, 1139, 726, 18, 70, "MoreAboutSection",ExpressionUUID->"616df4a6-3ad7-4526-b0d7-90079041a7a3"],
Cell[41314, 1159, 78, 0, 70, "FooterCell",ExpressionUUID->"a752c175-e1bf-4ba0-ad85-93646a8f65f3"]
}
]
*)

(* End of internal cache information *)

