(* 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[     40330,       1046]
NotebookOptionsPosition[     32072,        924]
NotebookOutlinePosition[     35080,        982]
CellTagsIndexPosition[     35037,        979]
WindowTitle->Derivation
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[GridBox[{
   {GridBox[{
      {
       ItemBox[Cell[BoxData[
         RowBox[{
          TemplateBox[{12},
           "Spacer1"], Cell[
          "WOLFRAM INSTITUTE/ PUZZLES GUIDE", "PacletNameCell",
           TextAlignment->Center,ExpressionUUID->
           "36d361e4-7d1a-4ef3-a168-be65d7a78569"], 
          TemplateBox[{8},
           "Spacer1"]}]],
         TextAlignment->Center,ExpressionUUID->
         "cb5fa817-8065-4e20-aefb-b86ba39dda11"],
        Background->LightDarkSwitched[
          RGBColor[0.85098, 0.396078, 0]],
        ItemSize->Full], ""}
     },
     GridBoxAlignment->{"Rows" -> {{Center}}},
     GridBoxItemSize->{"Columns" -> {Full, 
         Scaled[0.02]}, "Rows" -> {{2.5}}}], Cell[TextData[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->
          "2943c748-cde9-43a1-968f-19300b5874fe"]
        }],ExpressionUUID->"03f9aad4-ef40-44ac-8995-76bf6f0b62af"],
        StripOnInput->False],{
       "\"WolframInstitute/Puzzles/guide/Derivation\"" :> None, 
        "\"Copy Wolfram Documentation Center URL\"" :> 
        CopyToClipboard["WolframInstitute/Puzzles/guide/Derivation"], 
        Delimiter, "\"Copy web URL\"" :> 
        Module[{DocumentationSearch`Private`nb$}, 
          DocumentationSearch`Private`nb$ = 
           NotebookPut[
            Notebook[{
              Cell[BoxData[
                MakeBoxes[
                 Hyperlink[
                  "http://reference.wolfram.com/language/WolframInstitute/\
Puzzles/guide/Derivation.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/guide/Derivation" <> ".html"], 
             None}]}]},
       Appearance->None,
       MenuAppearance->Automatic,
       MenuStyle->"URLMenu"],
      MouseAppearanceTag["LinkHand"]]],
     LineSpacing->{1.4, 0},ExpressionUUID->
     "4dda7a31-ffa9-4f18-92d7-c372a1a1f8a9"]], "AnchorBar",
     CacheGraphics->False,ExpressionUUID->
     "0aa46ea3-9696-4307-8867-2b706c8f3b5f"]}
  }]], "AnchorBarGrid",
 GridBoxOptions->{GridBoxItemSize->{"Columns" -> {
     Scaled[0.65], {
      Scaled[0.34]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, 
   "RowsIndexed" -> {}}},
 CellID->1,ExpressionUUID->"ebca5686-9ea5-4a97-9bf8-283a1f6cecdf"],

Cell[CellGroupData[{

Cell["Derivation", "GuideTitle",
 CellID->942062912,ExpressionUUID->"de84cb4a-3351-433a-a218-651d32bfdaad"],

Cell["\<\
Between a seed and an address stands a tree. BIP32 turns 64 bytes of entropy \
into a master key and a chain code, and then into an unbounded tree of child \
keys, each one an HMAC away from its parent; the path through that tree \
decides which key a wallet used, and a purpose number near the root records \
which address form it meant. The same public key becomes four different \
Bitcoin addresses and one Ethereum address depending only on how it is hashed \
and wrapped, so recovering a wallet means getting the path, the compression \
flag and the address form all right at once, and a single wrong choice \
produces a perfectly valid address that has never held anything. The \
functions here walk that tree, read and write the extended-key strings that \
name positions in it, and render a key as any of the address forms in use, \
with the curve arithmetic resting on the Wolfram Language elliptic-curve \
engine and a batch path for sweeps. Every step is pinned against the test \
vectors of the specification it implements: the five BIP32 vectors, the \
BIP49, BIP84 and BIP86 chains, the BIP173 and BIP350 segwit addresses, and \
the Ethereum key and address fixtures.\
\>", "GuideAbstract",
 CellID->2001916300,ExpressionUUID->"fd0e0972-98b3-4d9b-be60-a4f28293f947"],

Cell["\t", "GuideDelimiterSubsection",ExpressionUUID->"e605f9fc-8ff5-49ac-81d9-e686431850be"],

Cell[CellGroupData[{

Cell["The curve", "GuideFunctionsSubsection",ExpressionUUID->"7a82b75c-a68e-40fb-a3b8-3da7355c3376"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["$Secp256k1"]], 
    "paclet:WolframInstitute/Puzzles/ref/$Secp256k1", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "c961d8e0-e3ac-496a-914c-2159b7a84721"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the SEC 2 domain parameters of the curve Bitcoin and Ethereum keys live on"
}], "GuideText",ExpressionUUID->"4c656533-0fed-4bee-b83c-613ccec05702"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Secp256k1PublicKey"]], 
    "paclet:WolframInstitute/Puzzles/ref/Secp256k1PublicKey", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "15d435d9-614d-424a-a3dd-b0d0f0c4922d"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "compressed or uncompressed public key of a private key"
}], "GuideText",ExpressionUUID->"f2c40080-7033-45cb-9f6a-b16b7a5379d6"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Secp256k1PublicKeyList"]], 
    "paclet:WolframInstitute/Puzzles/ref/Secp256k1PublicKeyList", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "787d0831-97f5-4072-a114-5a5b3da3be0a"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the same for a whole list of private keys, on a batch path built for \
sweeps"
}], "GuideText",ExpressionUUID->"a725964b-89a2-40c0-b471-f9eed3702a60"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Secp256k1Point"]], 
    "paclet:WolframInstitute/Puzzles/ref/Secp256k1Point", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "5d9b3302-5bf5-4355-bfec-ca2145a321c5"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "curve point of a public key, decompressing the ",
 Cell[BoxData[
  StyleBox["y", "TI"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "d1e1bc79-03d6-4df0-b1ac-a9dbfd7832d4"],
 " coordinate when only its parity is stored"
}], "GuideText",ExpressionUUID->"7ca5115d-9604-4a1e-ba23-a8f18dff4953"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Secp256k1PointEncode"]], 
    "paclet:WolframInstitute/Puzzles/ref/Secp256k1PointEncode", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "33c32c02-6287-4a90-b3d6-df32cefb081b"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "SEC1 encoding of a curve point"
}], "GuideText",ExpressionUUID->"0e23264e-837b-435d-8c53-638f7c62a815"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Secp256k1PointAdd"]], 
    "paclet:WolframInstitute/Puzzles/ref/Secp256k1PointAdd", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "f1f712ca-7d70-49a1-b527-341fea07e5e4"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the group law, which BIP32 public derivation and the taproot tweak are \
built from"
}], "GuideText",ExpressionUUID->"0c3bbbf0-f874-434a-ad86-bea88149c760"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["PrivateKey", FontSlant -> "Italic"]]], 
    "paclet:ref/PrivateKey"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "d516ae97-6a49-4969-8e86-d86e86c261af"],
 " (WL)",
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the kernel elliptic-curve key object, whose engine does the scalar \
multiplication"
}], "GuideText",ExpressionUUID->"3a139428-d18a-4ddb-a200-47c3f3db4ea5"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Secp256k1PointQ"]], 
    "paclet:WolframInstitute/Puzzles/ref/Secp256k1PointQ", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "84d3b5b8-07f8-4e0c-8b5c-adb6df138d0c"],
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["PowerMod", FontSlant -> "Italic"]]], "paclet:ref/PowerMod"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "0f0ea108-c2b2-4105-aca8-6fbbcd8e59ff"],
 " (WL)",
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["Infinity", FontSlant -> "Italic"]]], "paclet:ref/Infinity"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "896abf7e-0a2d-4867-ab48-6eed04bd8e72"],
 " (WL)",
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["GenerateAsymmetricKeyPair", FontSlant -> "Italic"]]], 
    "paclet:ref/GenerateAsymmetricKeyPair"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "fa49f2f0-f31c-4cdb-97b9-524033025172"],
 " (WL)",
 "\[Ellipsis]"
}], "GuideText",ExpressionUUID->"1abc87e8-0c0b-4ffa-b25b-d782ff371fd9"]
}, Open  ]],

Cell[CellGroupData[{

Cell["Extended keys and the derivation tree", "GuideFunctionsSubsection",ExpressionUUID->"d15738ca-ba5e-44a1-9850-903c53f8278d"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32MasterKey"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32MasterKey", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "3babc951-4bab-4f0a-948b-9b1b87898536"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "master extended private key of a binary seed"
}], "GuideText",ExpressionUUID->"e187742a-c1fa-4c75-97d8-6e89cf4b264b"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32ChildKey"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32ChildKey", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "e8b9a05f-0372-40b1-947e-2c5b073e33b5"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "one step of CKDpriv or CKDpub, hardened or not"
}], "GuideText",ExpressionUUID->"953665b7-1fd4-479a-a8a4-3d3090541659"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32DeriveKey"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32DeriveKey", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "b785fdfb-74c0-4aa5-8aa6-3d42da64f872"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the key reached by following a whole derivation path"
}], "GuideText",ExpressionUUID->"78d6d338-025f-4295-8ac0-4302d90af204"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32PublicKey"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32PublicKey", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "91ed1d61-61b0-451d-9919-5936593ea344"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the neutering operator, turning an extended private key into an extended \
public key"
}], "GuideText",ExpressionUUID->"b5114f03-d7dc-4888-8019-51da0c09f98b"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32KeyFingerprint"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32KeyFingerprint", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "bf4260a9-cd83-4c7c-a81f-786e54cb4934"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the four-byte key identifier that children record as their parent"
}], "GuideText",ExpressionUUID->"0dd6836f-14e3-4335-a8c8-3f16054876d7"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["HMACHash"]], "paclet:WolframInstitute/Puzzles/ref/HMACHash", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "d7a7e792-edb4-4b0d-abb2-6560820078b0"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the HMAC-SHA512 that produces every child key and chain code"
}], "GuideText",ExpressionUUID->"9c155e2a-dfbe-4605-8be6-b6da254fdfda"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP39Seed"]], "paclet:WolframInstitute/Puzzles/ref/BIP39Seed", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "20e908b7-a580-42e1-887c-62f327ca2314"],
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["Fold", FontSlant -> "Italic"]]], "paclet:ref/Fold"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "7224e04d-dcc6-4775-aeb4-ef0e9ce89f28"],
 " (WL)",
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["NestList", FontSlant -> "Italic"]]], "paclet:ref/NestList"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "1d060a23-8eb7-479b-947d-a6ff36efcd62"],
 " (WL)",
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["Association", FontSlant -> "Italic"]]], 
    "paclet:ref/Association"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "ca76435e-7265-402d-8cac-2553808f294c"],
 " (WL)",
 "\[Ellipsis]"
}], "GuideText",ExpressionUUID->"330644fc-d5b4-4fb3-b6b2-b43e937f35a4"]
}, Open  ]],

Cell[CellGroupData[{

Cell["Extended-key strings", "GuideFunctionsSubsection",ExpressionUUID->"9b331a0e-8842-49ab-b8be-6cc0a5cc0290"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32ExtendedKey"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32ExtendedKey", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "915ec518-7526-4917-809d-8e908bf4cad5"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the key an xprv, xpub, zprv or zpub string encodes, with the BIP32 validity \
conditions enforced"
}], "GuideText",ExpressionUUID->"82a3b226-7e4c-48a8-b451-ccd04430fc5a"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32ExtendedKeyString"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32ExtendedKeyString", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "9c02e28f-34b6-4f0f-aa21-0f6094ff52fc"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the Base58Check serialisation, under any registered SLIP-132 version"
}], "GuideText",ExpressionUUID->"aef78207-8ce3-4831-a6db-d2ad10706e7e"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Base58CheckEncode"]], 
    "paclet:WolframInstitute/Puzzles/ref/Base58CheckEncode", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "29dc48e5-3158-441f-a31d-05ac4cab3c76"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the envelope those strings are written in"
}], "GuideText",ExpressionUUID->"3f8bb0f6-cd03-48ed-a41f-ce52014c6627"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Base58CheckDecode"]], 
    "paclet:WolframInstitute/Puzzles/ref/Base58CheckDecode", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "71493941-fe7a-4f77-b405-544b841c620e"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the envelope those strings are read from"
}], "GuideText",ExpressionUUID->"a83efe33-8f1d-432d-a237-46ab65e59ec4"]
}, Open  ]],

Cell[CellGroupData[{

Cell["Paths and the purpose conventions", "GuideFunctionsSubsection",ExpressionUUID->"42d9b691-2c16-4adb-834d-62c27b90b6b8"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32Path"]], "paclet:WolframInstitute/Puzzles/ref/BIP32Path", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "bc73d5b5-e8f3-4f91-95e0-127601ad1312"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "child indices a derivation-path string denotes, with hardening marked by h, \
H or an apostrophe"
}], "GuideText",ExpressionUUID->"25d46a88-a882-4770-bea2-4b228d286708"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32PathString"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32PathString", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "b7dcc159-d3fd-4406-9149-9a7f7e915483"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the canonical path string of a list of indices"
}], "GuideText",ExpressionUUID->"b232f489-62c9-4976-9fe3-c0eb22a63e73"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32StandardPath"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32StandardPath", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "294f1754-8647-4e73-9732-c558682b4d62"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the BIP44, BIP49, BIP84, BIP86 and Ethereum account paths"
}], "GuideText",ExpressionUUID->"f58c6fc1-840e-488a-ac17-ad1db8978afc"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP32PathAddressForm"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP32PathAddressForm", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "a2dc9bbe-5acf-476a-a0b0-21eda2236109"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the address form a path's purpose field implies"
}], "GuideText",ExpressionUUID->"c32a249a-c703-4e45-9119-2dcbc7fc2cb0"]
}, Open  ]],

Cell[CellGroupData[{

Cell["Addresses", "GuideFunctionsSubsection",ExpressionUUID->"19be79e1-f8b8-43b6-8e67-bab3ae99e1e6"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BitcoinAddress"]], 
    "paclet:WolframInstitute/Puzzles/ref/BitcoinAddress", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "c632cfd9-9ca3-400e-8f38-1b9026f0f81e"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the P2PKH, P2SH-P2WPKH, P2WPKH or P2TR address of a public key, on mainnet \
or testnet"
}], "GuideText",ExpressionUUID->"12d550a4-8c3a-4995-a134-da91a978ae55"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BitcoinAddressData"]], 
    "paclet:WolframInstitute/Puzzles/ref/BitcoinAddressData", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "6cac327f-c70e-41ee-b709-6ef720731535"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "form, network, commitment and scriptPubKey of an address"
}], "GuideText",ExpressionUUID->"4ec866b1-d3c3-416c-b885-825d1892b01c"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BitcoinPublicKeyHash"]], 
    "paclet:WolframInstitute/Puzzles/ref/BitcoinPublicKeyHash", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "9177018d-80f1-4905-a8e6-520e53631ddf"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the HASH160 that a legacy address and a witness program both commit to"
}], "GuideText",ExpressionUUID->"29a72153-e27a-44d5-b431-da7dc9c683cf"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["TaprootOutputKey"]], 
    "paclet:WolframInstitute/Puzzles/ref/TaprootOutputKey", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "7a616a59-e262-40e4-81fe-72ccbe9849da"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the BIP341 key-path tweak that BIP86 taproot addresses pay to"
}], "GuideText",ExpressionUUID->"958b3288-63c5-46d3-882b-a51dd0c72ea6"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["EthereumAddress"]], 
    "paclet:WolframInstitute/Puzzles/ref/EthereumAddress", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "26e735c2-0bf3-4ab8-b484-4d8372b31891"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the EIP-55 checksummed address of a public key, from the Keccak-256 of the \
uncompressed key"
}], "GuideText",ExpressionUUID->"c0042644-b1d5-4cbd-888b-196ecf19e606"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["SegWitAddressEncode"]], 
    "paclet:WolframInstitute/Puzzles/ref/SegWitAddressEncode", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "95fc52aa-77f0-4cd5-81dc-996b34c9cf1b"],
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the Bech32 and Bech32m encoding the segwit forms are written in"
}], "GuideText",ExpressionUUID->"80e569af-987d-4808-ba10-e0c9f396b5f6"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["Hash", FontSlant -> "Italic"]]], "paclet:ref/Hash"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "5369ed77-cef8-4f6f-b543-8fc2203e688f"],
 " (WL)",
 " ",
 StyleBox["\[LongDash]", "GuideEmDash"],
 " ",
 "the SHA-256, RIPEMD-160 and Keccak-256 every address form is built from"
}], "GuideText",ExpressionUUID->"b17c6e45-a3f1-4303-996c-2c50de6a04a3"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["SegWitAddressDecode"]], 
    "paclet:WolframInstitute/Puzzles/ref/SegWitAddressDecode", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "daee1f28-6bd6-40d2-9b99-ffb8aed53704"],
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Base58CheckQ"]], 
    "paclet:WolframInstitute/Puzzles/ref/Base58CheckQ", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "8d47b9ea-90d5-4c53-a822-3ecb4d483e18"],
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["ByteListToHexString"]], 
    "paclet:WolframInstitute/Puzzles/ref/ByteListToHexString", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "141a30d3-175b-452e-b7d7-02983acba421"],
 ", ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData[
      StyleBox["StringTake", FontSlant -> "Italic"]]], 
    "paclet:ref/StringTake"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFunctionSansUnlinked",ExpressionUUID->
  "54035ebd-94d6-41f5-ba4b-8267b4500741"],
 " (WL)",
 "\[Ellipsis]"
}], "GuideText",ExpressionUUID->"1d1221a0-4d4a-42c7-99ea-bb98ed677c22"]
}, Open  ]]
}, Open  ]],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, 
       "RelatedTutorial.png"]]], GridBox[{
      {
       StyleBox[
        RowBox[{"Tech", " ", "Notes"}], "GuideTutorialsSection"]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[TextData[Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["CrackingTheBitcoinMovieEnigma"]], 
           "paclet:WolframInstitute/Puzzles/tutorial/\
CrackingTheBitcoinMovieEnigma"},
          "RefLinkPlain",
          BaseStyle->{"InlineFormula"}]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "ca1a3cc0-671a-45e4-8a50-93909bc765d9"]], "GuideTutorial",
         ExpressionUUID->"52c0c17d-72fa-4206-b3af-79f9c5a479f5"]}]}
     }]}
  }]], "GuideTutorialsSection",ExpressionUUID->"e742e0f1-04c8-4dd9-b02d-\
27f361f00986"],

Cell[CellGroupData[{

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, 
       "RelatedGuide.png"]]], GridBox[{
      {
       StyleBox[
        RowBox[{"Related", " ", "Guides"}], "GuideMoreAboutSection"]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[TextData[Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Puzzles"]], 
           "paclet:WolframInstitute/Puzzles/guide/Puzzles"},
          "RefLinkPlain",
          BaseStyle->{"InlineFormula"}]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "dc594936-154c-46a4-a45e-e7febf3b7d89"]], "GuideMoreAbout",
         ExpressionUUID->"4182d6bc-d04a-4a4d-a35d-660c5db6874f"]}]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[TextData[Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Seeds"]], "paclet:WolframInstitute/Puzzles/guide/Seeds"},
          "RefLinkPlain",
          BaseStyle->{"InlineFormula"}]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "9262edc6-a092-4f2f-8158-b44e63e6d00b"]], "GuideMoreAbout",
         ExpressionUUID->"432d7e0c-cde2-417b-8656-534d2066e54f"]}]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[TextData[Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Encodings"]], 
           "paclet:WolframInstitute/Puzzles/guide/Encodings"},
          "RefLinkPlain",
          BaseStyle->{"InlineFormula"}]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "6a983ffd-c973-46d6-8fdb-bf29c9913563"]], "GuideMoreAbout",
         ExpressionUUID->"0e723061-b981-407b-8272-9e5d1590603c"]}]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[TextData[Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Oracles"]], 
           "paclet:WolframInstitute/Puzzles/guide/Oracles"},
          "RefLinkPlain",
          BaseStyle->{"InlineFormula"}]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "e1a2113b-cff1-4e81-a4d2-b9fcd3da0c3b"]], "GuideMoreAbout",
         ExpressionUUID->"80c0b131-deb4-4950-9c49-370025277ee9"]}]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[TextData[Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Chain"]], "paclet:WolframInstitute/Puzzles/guide/Chain"},
          "RefLinkPlain",
          BaseStyle->{"InlineFormula"}]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "ca18ae6c-02fe-4c8b-b473-419600e46755"]], "GuideMoreAbout",
         ExpressionUUID->"db9e1c0e-a75e-456e-8135-0bae69be14a1"]}]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[TextData[Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Search"]], 
           "paclet:WolframInstitute/Puzzles/guide/Search"},
          "RefLinkPlain",
          BaseStyle->{"InlineFormula"}]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "4c27a0ab-7454-4a11-a5cd-029c3a59cfc4"]], "GuideMoreAbout",
         ExpressionUUID->"03f0a3ca-749f-44c2-89bb-49abb0007f4d"]}]}
     }]}
  }]], "GuideMoreAboutSection",ExpressionUUID->"b1089319-7752-40bd-b2ea-\
cc921754164c"],

Cell[TextData[Cell[BoxData[
 TemplateBox[{
   Cell[
    TextData["BIP32: Hierarchical Deterministic Wallets"]], 
   "https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki"},
  "WebLink",
  BaseStyle->{
   "GuideRelatedLinks"}]],ExpressionUUID->"eb2d978d-89ea-4331-ab01-\
4af8c1c25144"]], "GuideRelatedLinks",ExpressionUUID->"bc66a8a5-aec6-4dd5-a695-\
3756931a0b3a"],

Cell[TextData[Cell[BoxData[
 TemplateBox[{
   Cell[
    TextData["BIP44: Multi-Account Hierarchy for Deterministic Wallets"]], 
   "https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki"},
  "WebLink",
  BaseStyle->{
   "GuideRelatedLinks"}]],ExpressionUUID->"278ccd8c-297a-435e-8533-\
dab4bdfdfe42"]], "GuideRelatedLinks",ExpressionUUID->"80e73392-9a37-48a1-a6d3-\
497e4dc62e13"],

Cell[TextData[Cell[BoxData[
 TemplateBox[{
   Cell[
    TextData["BIP84: Derivation scheme for P2WPKH based accounts"]], 
   "https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki"},
  "WebLink",
  BaseStyle->{
   "GuideRelatedLinks"}]],ExpressionUUID->"3dc7e4d9-6e0a-4484-9a1a-\
684114378bee"]], "GuideRelatedLinks",ExpressionUUID->"c5632394-5a70-4e4c-8232-\
9e19ce9901b8"],

Cell[TextData[Cell[BoxData[
 TemplateBox[{
   Cell[
    TextData["BIP86: Key Derivation for Single Key P2TR Outputs"]], 
   "https://github.com/bitcoin/bips/blob/master/bip-0086.mediawiki"},
  "WebLink",
  BaseStyle->{
   "GuideRelatedLinks"}]],ExpressionUUID->"d0feeaf5-80d7-4c18-a747-\
8502e5909026"]], "GuideRelatedLinks",ExpressionUUID->"b47b2424-680e-4b37-9ec4-\
8ee3ce85631b"],

Cell[TextData[Cell[BoxData[
 TemplateBox[{
   Cell[
    TextData["BIP341: Taproot, SegWit version 1 spending rules"]], 
   "https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki"},
  "WebLink",
  BaseStyle->{
   "GuideRelatedLinks"}]],ExpressionUUID->"f88995be-8959-4c00-b4d2-\
99f72a878114"]], "GuideRelatedLinks",ExpressionUUID->"ee553f2a-bce3-4a8d-9dc0-\
58680a422d2c"],

Cell[TextData[Cell[BoxData[
 TemplateBox[{
   Cell[
    TextData["SLIP-132: Registered HD version bytes"]], 
   "https://github.com/satoshilabs/slips/blob/master/slip-0132.md"},
  "WebLink",
  BaseStyle->{
   "GuideRelatedLinks"}]],ExpressionUUID->"a649e4f4-70f8-4b7a-b7cb-\
1faa9c3384ca"]], "GuideRelatedLinks",ExpressionUUID->"c5a709a9-cc7b-4f09-a706-\
8f40f56ce89d"],

Cell[TextData[Cell[BoxData[
 TemplateBox[{
   Cell[
    TextData["SEC 2: Recommended Elliptic Curve Domain Parameters"]], 
   "https://www.secg.org/sec2-v2.pdf"},
  "WebLink",
  BaseStyle->{
   "GuideRelatedLinks"}]],ExpressionUUID->"a358eb3e-1226-40df-b4b6-\
9622e1d51504"]], "GuideRelatedLinks",ExpressionUUID->"9f71cebb-5198-496c-ac1f-\
ad6a21d16e4c"]
}, Open  ]],

Cell[" ", "FooterCell",ExpressionUUID->"85df41cd-19c2-4e3d-ac22-d1b41a95ec08"]
},
Saveable->False,
ScreenStyleEnvironment->"Working",
WindowSize->{900, 830},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
WindowTitle->"Derivation",
TaggingRules->{
 "ModificationHighlight" -> False, "ColorType" -> "", "LinkTrails" -> "", 
  "ExampleCounter" -> 1, 
  "Openers" -> {
   "PrimaryExamplesSection" -> Open, "ExampleSection" -> {"0" -> Open}}, 
  "NewStyles" -> True, "CitationPopupData" -> {$Failed, ""}, "ShowCitation" -> 
  False, "RootCaptions" -> "", "HeaderCoreAreaLink" -> {}, 
  "Metadata" -> {
   "built" -> "{2026, 8, 27, 0, 11, 8.985605}", 
    "history" -> {"XX", "", "", ""}, "context" -> "WolframInstitute`Puzzles`",
     "keywords" -> {
     "BIP32", "BIP44", "BIP49", "BIP84", "BIP86", "SLIP-132", "secp256k1", 
      "extended key", "xpub", "zpub", "derivation path", "hardened", "P2PKH", 
      "P2SH", "P2WPKH", "P2TR", "taproot", "ethereum", "EIP-55", "address"}, 
    "specialkeywords" -> {}, "tutorialcollectionlinks" -> {}, "index" -> True,
     "label" -> "Wolfram Institute/ Puzzles Guide", "language" -> "en", 
    "paclet" -> "WolframInstitute/Puzzles", "status" -> "None", "summary" -> 
    "Between a seed and an address stands a tree. BIP32 turns 64 bytes of \
entropy into a master key and a chain code, and then into an unbounded tree \
of child keys, each one an HMAC away from its parent; the path through that \
tree decides which key a wallet used, and a purpose number near the root \
records which address form it meant. The same public key becomes four \
different Bitcoin addresses and one Ethereum address depending only on how it \
is hashed and wrapped, so recovering a wallet means getting the path, the \
compression flag and the address form all right at once, and a single wrong \
choice produces a perfectly valid address that has never held anything. The \
functions here walk that tree, read and write the extended-key strings that \
name positions in it, and render a key as any of the address forms in use, \
with the curve arithmetic resting on the Wolfram Language elliptic-curve \
engine and a batch path for sweeps. Every step is pinned against the test \
vectors of the specification it implements: the five BIP32 vectors, the \
BIP49, BIP84 and BIP86 chains, the BIP173 and BIP350 segwit addresses, and \
the Ethereum key and address fixtures.", "synonyms" -> {}, "tabletags" -> {}, 
    "title" -> "Derivation", "titlemodifier" -> "", "metadescription" -> "", 
    "windowtitle" -> "Derivation", "type" -> "Guide", "uri" -> 
    "WolframInstitute/Puzzles/guide/Derivation", "WorkflowDockedCell" -> ""}, 
  "SearchTextTranslated" -> ""},
CellContext->CellGroup,
CacheGraphics->False,
FrontEndVersion->"15.0 for Mac OS X ARM (64-bit) (May 19, 2026)",
StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "Reference.nb"],
ExpressionUUID->"d3b09725-2c6b-4acf-981e-65e7c9133c9e"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[578, 21, 3060, 74, 70, "AnchorBarGrid",ExpressionUUID->"ebca5686-9ea5-4a97-9bf8-283a1f6cecdf",
 CellID->1],
Cell[CellGroupData[{
Cell[3663, 99, 107, 1, 70, "GuideTitle",ExpressionUUID->"de84cb4a-3351-433a-a218-651d32bfdaad",
 CellID->942062912],
Cell[3773, 102, 1290, 18, 70, "GuideAbstract",ExpressionUUID->"fd0e0972-98b3-4d9b-be60-a4f28293f947",
 CellID->2001916300],
Cell[5066, 122, 93, 0, 70, "GuideDelimiterSubsection",ExpressionUUID->"e605f9fc-8ff5-49ac-81d9-e686431850be"],
Cell[CellGroupData[{
Cell[5184, 126, 100, 0, 70, "GuideFunctionsSubsection",ExpressionUUID->"7a82b75c-a68e-40fb-a3b8-3da7355c3376"],
Cell[5287, 128, 533, 14, 70, "GuideText",ExpressionUUID->"4c656533-0fed-4bee-b83c-613ccec05702"],
Cell[5823, 144, 529, 14, 70, "GuideText",ExpressionUUID->"f2c40080-7033-45cb-9f6a-b16b7a5379d6"],
Cell[6355, 160, 560, 15, 70, "GuideText",ExpressionUUID->"a725964b-89a2-40c0-b471-f9eed3702a60"],
Cell[6918, 177, 736, 20, 70, "GuideText",ExpressionUUID->"7ca5115d-9604-4a1e-ba23-a8f18dff4953"],
Cell[7657, 199, 509, 14, 70, "GuideText",ExpressionUUID->"0e23264e-837b-435d-8c53-638f7c62a815"],
Cell[8169, 215, 556, 15, 70, "GuideText",ExpressionUUID->"0c3bbbf0-f874-434a-ad86-bea88149c760"],
Cell[8728, 232, 515, 16, 70, "GuideText",ExpressionUUID->"3a139428-d18a-4ddb-a200-47c3f3db4ea5"],
Cell[9246, 250, 1324, 42, 70, "GuideText",ExpressionUUID->"1abc87e8-0c0b-4ffa-b25b-d782ff371fd9"]
}, Open  ]],
Cell[CellGroupData[{
Cell[10607, 297, 128, 0, 70, "GuideFunctionsSubsection",ExpressionUUID->"d15738ca-ba5e-44a1-9850-903c53f8278d"],
Cell[10738, 299, 511, 14, 70, "GuideText",ExpressionUUID->"e187742a-c1fa-4c75-97d8-6e89cf4b264b"],
Cell[11252, 315, 511, 14, 70, "GuideText",ExpressionUUID->"953665b7-1fd4-479a-a8a4-3d3090541659"],
Cell[11766, 331, 519, 14, 70, "GuideText",ExpressionUUID->"78d6d338-025f-4295-8ac0-4302d90af204"],
Cell[12288, 347, 552, 15, 70, "GuideText",ExpressionUUID->"b5114f03-d7dc-4888-8019-51da0c09f98b"],
Cell[12843, 364, 542, 14, 70, "GuideText",ExpressionUUID->"0dd6836f-14e3-4335-a8c8-3f16054876d7"],
Cell[13388, 380, 510, 13, 70, "GuideText",ExpressionUUID->"9c155e2a-dfbe-4605-8be6-b6da254fdfda"],
Cell[13901, 395, 1271, 41, 70, "GuideText",ExpressionUUID->"330644fc-d5b4-4fb3-b6b2-b43e937f35a4"]
}, Open  ]],
Cell[CellGroupData[{
Cell[15209, 441, 111, 0, 70, "GuideFunctionsSubsection",ExpressionUUID->"9b331a0e-8842-49ab-b8be-6cc0a5cc0290"],
Cell[15323, 443, 568, 15, 70, "GuideText",ExpressionUUID->"82a3b226-7e4c-48a8-b451-ccd04430fc5a"],
Cell[15894, 460, 551, 14, 70, "GuideText",ExpressionUUID->"aef78207-8ce3-4831-a6db-d2ad10706e7e"],
Cell[16448, 476, 514, 14, 70, "GuideText",ExpressionUUID->"3f8bb0f6-cd03-48ed-a41f-ce52014c6627"],
Cell[16965, 492, 513, 14, 70, "GuideText",ExpressionUUID->"a83efe33-8f1d-432d-a237-46ab65e59ec4"]
}, Open  ]],
Cell[CellGroupData[{
Cell[17515, 511, 124, 0, 70, "GuideFunctionsSubsection",ExpressionUUID->"42d9b691-2c16-4adb-834d-62c27b90b6b8"],
Cell[17642, 513, 548, 14, 70, "GuideText",ExpressionUUID->"25d46a88-a882-4770-bea2-4b228d286708"],
Cell[18193, 529, 515, 14, 70, "GuideText",ExpressionUUID->"b232f489-62c9-4976-9fe3-c0eb22a63e73"],
Cell[18711, 545, 530, 14, 70, "GuideText",ExpressionUUID->"f58c6fc1-840e-488a-ac17-ad1db8978afc"],
Cell[19244, 561, 526, 14, 70, "GuideText",ExpressionUUID->"c32a249a-c703-4e45-9119-2dcbc7fc2cb0"]
}, Open  ]],
Cell[CellGroupData[{
Cell[19807, 580, 100, 0, 70, "GuideFunctionsSubsection",ExpressionUUID->"19be79e1-f8b8-43b6-8e67-bab3ae99e1e6"],
Cell[19910, 582, 554, 15, 70, "GuideText",ExpressionUUID->"12d550a4-8c3a-4995-a134-da91a978ae55"],
Cell[20467, 599, 531, 14, 70, "GuideText",ExpressionUUID->"4ec866b1-d3c3-416c-b885-825d1892b01c"],
Cell[21001, 615, 549, 14, 70, "GuideText",ExpressionUUID->"29a72153-e27a-44d5-b431-da7dc9c683cf"],
Cell[21553, 631, 532, 14, 70, "GuideText",ExpressionUUID->"958b3288-63c5-46d3-882b-a51dd0c72ea6"],
Cell[22088, 647, 562, 15, 70, "GuideText",ExpressionUUID->"c0042644-b1d5-4cbd-888b-196ecf19e606"],
Cell[22653, 664, 540, 14, 70, "GuideText",ExpressionUUID->"80e569af-987d-4808-ba10-e0c9f396b5f6"],
Cell[23196, 680, 486, 14, 70, "GuideText",ExpressionUUID->"b17c6e45-a3f1-4303-996c-2c50de6a04a3"],
Cell[23685, 696, 1396, 42, 70, "GuideText",ExpressionUUID->"1d1221a0-4d4a-42c7-99ea-bb98ed677c22"]
}, Open  ]]
}, Open  ]],
Cell[25108, 742, 898, 22, 70, "GuideTutorialsSection",ExpressionUUID->"e742e0f1-04c8-4dd9-b02d-27f361f00986"],
Cell[CellGroupData[{
Cell[26031, 768, 3291, 74, 70, "GuideMoreAboutSection",ExpressionUUID->"b1089319-7752-40bd-b2ea-cc921754164c"],
Cell[29325, 844, 374, 9, 70, "GuideRelatedLinks",ExpressionUUID->"bc66a8a5-aec6-4dd5-a695-3756931a0b3a"],
Cell[29702, 855, 389, 9, 70, "GuideRelatedLinks",ExpressionUUID->"80e73392-9a37-48a1-a6d3-497e4dc62e13"],
Cell[30094, 866, 383, 9, 70, "GuideRelatedLinks",ExpressionUUID->"c5632394-5a70-4e4c-8232-9e19ce9901b8"],
Cell[30480, 877, 382, 9, 70, "GuideRelatedLinks",ExpressionUUID->"b47b2424-680e-4b37-9ec4-8ee3ce85631b"],
Cell[30865, 888, 381, 9, 70, "GuideRelatedLinks",ExpressionUUID->"ee553f2a-bce3-4a8d-9dc0-58680a422d2c"],
Cell[31249, 899, 369, 9, 70, "GuideRelatedLinks",ExpressionUUID->"c5a709a9-cc7b-4f09-a706-8f40f56ce89d"],
Cell[31621, 910, 354, 9, 70, "GuideRelatedLinks",ExpressionUUID->"9f71cebb-5198-496c-ac1f-ad6a21d16e4c"]
}, Open  ]],
Cell[31990, 922, 78, 0, 70, "FooterCell",ExpressionUUID->"85df41cd-19c2-4e3d-ac22-d1b41a95ec08"]
}
]
*)

(* End of internal cache information *)

