mirror of
https://github.com/OneKeyHQ/bip39.git
synced 2026-04-06 02:43:49 +00:00
1529 lines
87 KiB
HTML
1529 lines
87 KiB
HTML
<!DOCTYPE html>
|
||
<html class="antialiased">
|
||
<head lang="en">
|
||
<meta charset="utf-8" />
|
||
<title>OneKey BIP39 Recovery Phrase</title>
|
||
<meta
|
||
content="Recovery Phrase for generating deterministic keys"
|
||
name="description"
|
||
/>
|
||
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
|
||
<meta content="bitcoin mnemonic converter" name="description" />
|
||
<meta content="OneKey Team" name="author" />
|
||
<link
|
||
type="image/x-icon"
|
||
rel="icon"
|
||
href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII="
|
||
/>
|
||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||
<link rel="icon" href="/favicon.ico" />
|
||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||
<link rel="manifest" href="/site.webmanifest">
|
||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#00b812">
|
||
<meta name="msapplication-TileColor" content="#ffffff">
|
||
<meta name="theme-color" content="#ffffff">
|
||
<link rel="stylesheet" href="css/styles.css" />
|
||
</head>
|
||
<body>
|
||
<!-- Container -->
|
||
<div class="ok-container">
|
||
<!-- Header -->
|
||
<header class="ok-header">
|
||
<div>
|
||
<a
|
||
href="https://onekey.so/"
|
||
class="inline-flex md:ml-0.5"
|
||
>
|
||
<img
|
||
class="w-10 h-10"
|
||
src="/logo_green_vector.png"
|
||
alt="Logo"
|
||
>
|
||
</a>
|
||
</div>
|
||
<div>
|
||
<div class="dropdown js-dropdown">
|
||
<button id="languagePopoverBtn" class="inline-flex justify-center w-full px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-full shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-green-600" type="button" aria-expanded="false" aria-haspopup="true">
|
||
English
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 ml-2 -mr-1" aria-hidden="true"><path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg>
|
||
</button>
|
||
<div id="languagePopoverContent" class="dropdown__menu min-w-[120px]">
|
||
<a class="block p-2 text-sm text-left text-gray-700 transition rounded-md cursor-pointer hover:bg-gray-100 hover:text-gray-900" href="./index-zh.html">
|
||
中文
|
||
</a>
|
||
<a class="block p-2 text-sm text-left text-gray-700 transition rounded-md cursor-pointer hover:bg-gray-100 hover:text-gray-900">
|
||
English
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</header>
|
||
|
||
<!-- Title -->
|
||
<div class="pb-4 mb-2 border-b border-gray-200 md:pb-8 md:mb-8 md:flex md:items-baseline">
|
||
<h1 class="mb-2 text-3xl font-bold md:text-4xl md:mb-0">Recovery Phrase Converter</h1>
|
||
<label class="flex items-center flex-shrink-0 p-2 -ml-2 transition rounded-md cursor-pointer md:ml-auto md:-mr-2 hover:bg-gray-100">
|
||
<input type="checkbox" class="w-5 h-5 privacy-screen-toggle ok-checkbox" />
|
||
<span class="font-medium text-gray-700">Hide private info</span>
|
||
</label>
|
||
</div>
|
||
|
||
<!-- Content -->
|
||
<div class="-mx-4 md:grid md:gap-4 md:grid-cols-12 md:mx-0">
|
||
<!-- Navigation -->
|
||
<div class="sticky top-0 self-start px-1 py-2 overflow-auto bg-white bg-opacity-70 backdrop-filter backdrop-saturate-150 backdrop-blur-lg md:px-0 md:py-0 md:col-span-4 md:top-8 lg:col-span-3">
|
||
<nav class="md:max-w-[240px] mr-8 space-x-2 md:space-x-0 md:space-y-2 text-gray-600 flex md:flex-col" aria-label="Sidebar">
|
||
<!-- Current: "bg-gray-100 text-gray-900", Default: "text-gray-600 hover:bg-gray-50 hover:text-gray-900" -->
|
||
<a href="#section-1" class="flex items-center px-3 py-2 text-sm font-medium rounded-md js-anchor-link hover:bg-gray-50 hover:text-gray-900">
|
||
<svg viewBox="0 0 24 24" height="24" width="24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="hidden w-5 h-5 mr-3 text-gray-400 md:block">
|
||
<g transform="matrix(1,0,0,1,0,0)"><path d="M23.5,0h-1a.5.5,0,0,0-.431.247l-4.16,7.072a.5.5,0,0,0,.077.607l3.921,3.921a.5.5,0,0,0,.666.036l1.239-.992A.5.5,0,0,0,24,10.5V.5A.5.5,0,0,0,23.5,0Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M16.868,8.929a.5.5,0,0,0-.491-.127l-2.9.827a2.484,2.484,0,0,0-1.717,1.717L9.488,19.312a.069.069,0,0,0,.116.068l5.63-5.631A.75.75,0,1,1,16.3,14.81l-5.632,5.632a.062.062,0,0,0-.01.077.064.064,0,0,0,.072.028l7.965-2.276a2.488,2.488,0,0,0,1.72-1.726l.778-2.945a.5.5,0,0,0-.13-.481Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M8.3,21.283A3.464,3.464,0,0,1,6,22a3.175,3.175,0,0,1-2.644-1.045c-.636-.965-.441-2.714.564-5.059,2.017-4.709,4.134-8.436,2.8-11.62C5.969,2.5,4.264,1.156,1.351.065a1,1,0,1,0-.7,1.871C2.978,2.81,4.36,3.828,4.872,5.05c.955,2.277-.9,5.646-2.791,10.059-1.3,3.036-1.434,5.373-.4,6.947A5.057,5.057,0,0,0,6,24,5.3,5.3,0,0,0,9.7,22.707a.991.991,0,0,0,.006-1.395A1.009,1.009,0,0,0,8.3,21.283Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path></g>
|
||
</svg>
|
||
<span class="truncate">
|
||
Recovery Phrase
|
||
</span>
|
||
</a>
|
||
|
||
<a href="#section-2" class="flex items-center px-3 py-2 text-sm font-medium rounded-md js-anchor-link hover:bg-gray-50 hover:text-gray-900">
|
||
<svg viewBox="0 0 24 24" height="24" width="24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="hidden w-5 h-5 mr-3 text-gray-400 md:block"><g transform="matrix(1,0,0,1,0,0)"><path d="M10.5,23.02a.98.98,0,0,0-.98-.979H7.562a.98.98,0,1,0,0,1.959H9.521A.98.98,0,0,0,10.5,23.02Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M4.294,21.4a4.434,4.434,0,0,1-1.625-1.736.98.98,0,1,0-1.738.906,6.4,6.4,0,0,0,2.343,2.5.968.968,0,0,0,.509.143A.979.979,0,0,0,4.294,21.4Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M2.115,13.1A6.361,6.361,0,0,0,.408,16.072a.979.979,0,0,0,.711,1.189.945.945,0,0,0,.24.03.98.98,0,0,0,.949-.74A4.4,4.4,0,0,1,3.49,14.492a.98.98,0,1,0-1.375-1.4Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M17.358,13.224a.98.98,0,0,0,0-1.959h-1.47a.98.98,0,0,0,0,1.959Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M22.5,8.74a.979.979,0,0,0-1.342.347,4.383,4.383,0,0,1-1.171,1.307.98.98,0,1,0,1.173,1.57,6.387,6.387,0,0,0,1.688-1.883A.981.981,0,0,0,22.5,8.74Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M23.622,5.807a1.075,1.075,0,0,0-.018-.193,6.362,6.362,0,0,0-1.554-3.06.98.98,0,1,0-1.444,1.324,4.393,4.393,0,0,1,1.075,2.116.981.981,0,0,0,.96.79.9.9,0,0,0,.191-.019A.979.979,0,0,0,23.622,5.807Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M18.823,1.578A.978.978,0,0,0,17.935.516C17.744.5,17.553.49,17.358.49h-.98a.98.98,0,0,0,0,1.959h.98c.136,0,.27.007.4.018.03,0,.06,0,.088,0A.979.979,0,0,0,18.823,1.578Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M8.579,9a.487.487,0,0,0,.452.3h1.225a.245.245,0,0,1,.245.245v9.8a1.469,1.469,0,0,0,2.938,0v-9.8a.245.245,0,0,1,.245-.245h1.225a.49.49,0,0,0,.346-.836L12.316,5.531a.489.489,0,0,0-.692,0L8.685,8.47A.49.49,0,0,0,8.579,9Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M10.011 1.959 A1.959 1.959 0 1 0 13.929 1.959 A1.959 1.959 0 1 0 10.011 1.959 Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M6.582,11.265a.98.98,0,0,0,0,1.959h1.47a.98.98,0,0,0,0-1.959Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path></g></svg>
|
||
<span class="truncate">
|
||
Derivation Path
|
||
</span>
|
||
</a>
|
||
|
||
<a href="#section-3" class="flex items-center px-3 py-2 text-sm font-medium rounded-md js-anchor-link hover:bg-gray-50 hover:text-gray-900">
|
||
<svg viewBox="0 0 24 24" height="24" width="24" xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="hidden w-5 h-5 mr-3 text-gray-400 md:block"><g transform="matrix(1,0,0,1,0,0)"><path d="M21,0H3A3,3,0,0,0,0,3V18a3,3,0,0,0,3,3H9.5a1,1,0,0,0,0-2H3a1,1,0,0,1-1-1V7.5A.5.5,0,0,1,2.5,7h19a.5.5,0,0,1,.5.5V9a1,1,0,0,0,2,0V3A3,3,0,0,0,21,0ZM11,3.5a1,1,0,1,1-1-1A1,1,0,0,1,11,3.5Zm-3,0a1,1,0,1,1-1-1A1,1,0,0,1,8,3.5Zm-3,0a1,1,0,1,1-1-1A1,1,0,0,1,5,3.5Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M11.942,9.913a1,1,0,0,0-1.414.03L7.118,13.5a.25.25,0,0,1-.181.077.246.246,0,0,1-.18-.077l-.535-.558a1,1,0,0,0-1.444,1.384l1.438,1.5a1,1,0,0,0,1.443,0l4.313-4.5A1,1,0,0,0,11.942,9.913Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M17.382,16.118a.25.25,0,0,1-.25.063A3.853,3.853,0,0,0,16,16a4,4,0,1,0,4,4,3.841,3.841,0,0,0-.181-1.131.249.249,0,0,1,.063-.25l4.045-4.046A.248.248,0,0,0,24,14.4V12.25a.25.25,0,0,0-.25-.25H21.6a.249.249,0,0,0-.177.073ZM16,21.5A1.5,1.5,0,1,1,17.5,20,1.5,1.5,0,0,1,16,21.5Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path></g></svg>
|
||
<span class="truncate">
|
||
Derived Addresses
|
||
</span>
|
||
</a>
|
||
|
||
<a href="#section-4" class="flex items-center px-3 py-2 text-sm font-medium rounded-md js-anchor-link hover:bg-gray-50 hover:text-gray-900">
|
||
<svg viewBox="0 0 24 24" height="24" width="24" fill="currentColor" class="hidden w-5 h-5 mr-3 text-gray-400 md:block" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(1,0,0,1,0,0)"><path d="M24,3.517a2.018,2.018,0,0,0-.609-1.441,1.915,1.915,0,0,0-1.438-.56c-.29.008-.58.021-.87.037A.554.554,0,0,1,20.5,1a.5.5,0,0,0-.547-.5,25.167,25.167,0,0,0-4.081.7.5.5,0,0,0-.372.484V8a.5.5,0,0,0,.854.354l1.292-1.293a.5.5,0,0,1,.708,0l1.293,1.293A.5.5,0,0,0,20.5,8V4.065a.5.5,0,0,1,.467-.5c.168-.011.337-.02.51-.029a.5.5,0,0,1,.525.5l-.013,13.5a.5.5,0,0,1-.479.5A22.909,22.909,0,0,0,13.7,19.543a.5.5,0,0,1-.7-.458V6c0-.19.256-.46.753-.752A.5.5,0,0,0,14,4.816V3.688a.5.5,0,0,0-.722-.448,6.686,6.686,0,0,0-.982.585.5.5,0,0,1-.592,0C9.755,2.383,5.889,1.63,2.047,1.516a1.927,1.927,0,0,0-1.438.56A2.018,2.018,0,0,0,0,3.517v14.5a2,2,0,0,0,1.956,2C7.923,20.186,11,21.834,11,22.5a1,1,0,0,0,2,0c0-.666,3.077-2.314,9.044-2.486a2,2,0,0,0,1.956-2ZM2.478,18.033a.5.5,0,0,1-.478-.5l-.012-13.5a.5.5,0,0,1,.523-.5C8.113,3.789,11,5.357,11,6V19.086a.5.5,0,0,1-.7.457A22.937,22.937,0,0,0,2.478,18.033Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M9.257,7.443a24.06,24.06,0,0,0-5.184-1.02.75.75,0,1,0-.146,1.493,22.661,22.661,0,0,1,4.853.949.75.75,0,1,0,.477-1.422Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M9.257,11.616A24.036,24.036,0,0,0,4.073,10.6a.75.75,0,1,0-.146,1.493,22.635,22.635,0,0,1,4.853.949.75.75,0,0,0,.477-1.422Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M9.257,15.789a24.06,24.06,0,0,0-5.184-1.02.75.75,0,1,0-.146,1.493,22.538,22.538,0,0,1,4.853.949.75.75,0,0,0,.477-1.422Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M15.22,13.038a22.635,22.635,0,0,1,4.853-.949.75.75,0,1,0-.146-1.493,24.036,24.036,0,0,0-5.184,1.02.75.75,0,0,0,.477,1.422Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path><path d="M15.22,17.211a22.538,22.538,0,0,1,4.853-.949.75.75,0,1,0-.146-1.493,24.06,24.06,0,0,0-5.184,1.02.75.75,0,0,0,.477,1.422Z" stroke="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"></path></g></svg>
|
||
<span class="truncate">
|
||
More info
|
||
</span>
|
||
</a>
|
||
</nav>
|
||
</div>
|
||
<!-- Main -->
|
||
<div class="space-y-8 md:col-span-8 lg:col-span-9">
|
||
<!-- Card – Mnemonic -->
|
||
<div id="section-1" class="ok-card js-section">
|
||
<!-- Card / Header -->
|
||
<div class="ok-card__header">
|
||
<!-- Card / Header / Title & Descriptions -->
|
||
<div class="mr-4">
|
||
<h2 class="ok-card__header-title">Recovery Phrase</h2>
|
||
<p class="max-w-2xl mt-1 text-sm text-gray-500">
|
||
You can enter an existing BIP39 recovery phrase, or generate a new random one.
|
||
</p>
|
||
</div>
|
||
<!-- Card / Header / Controls -->
|
||
<div class="dropdown js-dropdown">
|
||
<button id="recoveryPhrasePopoverBtn" type="button" class="inline-flex items-center justify-center flex-shrink-0 w-8 h-8 text-gray-400 bg-white rounded-full hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500" aria-expanded="false" aria-haspopup="true">
|
||
<span class="sr-only">Open options</span>
|
||
<!-- Heroicon name: solid/dots-vertical -->
|
||
<svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
||
<path d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" />
|
||
</svg>
|
||
</button>
|
||
<div id="recoveryPhrasePopoverContent" class="dropdown__menu">
|
||
<label class="flex items-center p-2 transition rounded-md cursor-pointer hover:bg-gray-100">
|
||
<input type="checkbox" class="use-entropy ok-checkbox" />
|
||
<span class="text-sm text-gray-700 whitespace-nowrap">Show entropy details</span>
|
||
</label>
|
||
<label class="flex items-center p-2 transition rounded-md cursor-pointer hover:bg-gray-100">
|
||
<input type="checkbox" class="showSplitMnemonic ok-checkbox" />
|
||
<span class="text-sm text-gray-700 whitespace-nowrap">Show split recovery phrase cards</span>
|
||
</label>
|
||
<label class="flex items-center p-2 transition rounded-md cursor-pointer hover:bg-gray-100">
|
||
<input type="checkbox" class="showBip85 ok-checkbox" />
|
||
<span class="text-sm text-gray-700 whitespace-nowrap">Show BIP85</span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- Card / Body -->
|
||
<div class="ok-card__body">
|
||
<!-- Entropy Details -->
|
||
<div class="hidden entropy-container">
|
||
<div class="insert-card">
|
||
<!-- Warning -->
|
||
<p class="flex p-2 text-sm text-yellow-600 border border-yellow-200 rounded-md bg-yellow-50">
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="flex-shrink-0 w-5 h-5 mr-2 text-yellow-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
|
||
</svg>
|
||
<span>Entropy is an advanced feature. Your recovery phrase may be insecure if this feature is used incorrectly. <a class="underline" href="#entropy-notes">Read more</a></span>
|
||
</p>
|
||
<!-- Valid entropy values -->
|
||
<div>
|
||
<p class="mb-1 ok-label">Valid entropy values include:</p>
|
||
<ul class="flex flex-wrap -mx-2.5 -mb-1.5">
|
||
<li class="mx-1">
|
||
<label class="flex items-start p-1.5 transition rounded-md cursor-pointer hover:bg-gray-200">
|
||
<div class="flex items-center h-5">
|
||
<input class="ok-radio" type="radio" name="entropy-type" value="binary" />
|
||
</div>
|
||
<div class="ml-2 text-sm">
|
||
<p class="font-medium text-gray-700">Binary <span class="font-normal">[0-1]</span></p>
|
||
<p class="text-gray-500">101010011</p>
|
||
</div>
|
||
</label>
|
||
</li>
|
||
<li class="mx-1">
|
||
<label class="flex items-start p-1.5 transition rounded-md cursor-pointer hover:bg-gray-200">
|
||
<div class="flex items-center h-5">
|
||
<input class="ok-radio" type="radio" name="entropy-type" value="base 6" />
|
||
</div>
|
||
<div class="ml-2 text-sm">
|
||
<p class="font-medium text-gray-700">Base 6 <span class="font-normal">[0-5]</span></p>
|
||
<p class="text-gray-500">123434014</p>
|
||
</div>
|
||
</label>
|
||
</li>
|
||
<li class="mx-1">
|
||
<label class="flex items-start p-1.5 transition rounded-md cursor-pointer hover:bg-gray-200">
|
||
<div class="flex items-center h-5">
|
||
<input class="ok-radio" type="radio" name="entropy-type" value="dice" />
|
||
</div>
|
||
<div class="ml-2 text-sm">
|
||
<p class="font-medium text-gray-700">Dice <span class="font-normal">[1-6]</span></p>
|
||
<p class="text-gray-500">62535634</p>
|
||
</div>
|
||
</label>
|
||
</li>
|
||
<li class="mx-1">
|
||
<label class="flex items-start p-1.5 transition rounded-md cursor-pointer hover:bg-gray-200">
|
||
<div class="flex items-center h-5">
|
||
<input class="ok-radio" type="radio" name="entropy-type" value="base 10" />
|
||
</div>
|
||
<div class="ml-2 text-sm">
|
||
<p class="font-medium text-gray-700">Base 10 <span class="font-normal">[0-9]</span></p>
|
||
<p class="text-gray-500">90834528</p>
|
||
</div>
|
||
</label>
|
||
</li>
|
||
<li class="mx-1">
|
||
<label class="flex items-start p-1.5 transition rounded-md cursor-pointer hover:bg-gray-200">
|
||
<div class="flex items-center h-5">
|
||
<input class="ok-radio"
|
||
type="radio"
|
||
name="entropy-type"
|
||
value="hexadecimal"
|
||
checked
|
||
/>
|
||
</div>
|
||
<div class="ml-2 text-sm">
|
||
<p class="font-medium text-gray-700">Hex <span class="font-normal">[0-9A-F]</span></p>
|
||
<p class="text-gray-500">4187a8bfd9</p>
|
||
</div>
|
||
</label>
|
||
</li>
|
||
<li class="mx-1">
|
||
<label class="flex items-start p-1.5 transition rounded-md cursor-pointer hover:bg-gray-200">
|
||
<div class="flex items-center h-5">
|
||
<input class="ok-radio" type="radio" name="entropy-type" value="card" />
|
||
</div>
|
||
<div class="ml-2 text-sm">
|
||
<p class="font-medium text-gray-700">Card <span class="font-normal">[A2-9TJQK][CDHS]</span></p>
|
||
<p class="text-gray-500">ahqs9dtc</p>
|
||
</div>
|
||
</label>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<!-- Entropy -->
|
||
<div>
|
||
<label for="entropy" class="mb-1 ok-label">Entropy</label>
|
||
<textarea
|
||
id="entropy"
|
||
rows="2"
|
||
class="entropy private-data ok-textarea"
|
||
placeholder="Accepts either binary, base 6, 6-sided dice, base 10, hexadecimal or cards"
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
<div class="hidden row filter-warning">
|
||
<p class="mt-2 text-sm text-red-600">Some characters have been discarded.</p>
|
||
</div>
|
||
</div>
|
||
<!-- Description list -->
|
||
<div class="grid grid-cols-2 gap-6">
|
||
<div>
|
||
<p class="mb-1 ok-label cursor-help" title="Based on estimates from zxcvbn using Filtered Entropy">Time To Crack</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="crack-time"></span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<p class="mb-1 ok-label">Event Count</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="event-count"></span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<p class="mb-1 ok-label">Entropy Type</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="type"></span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<p class="mb-1 ok-label">Avg Bits Per Event</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="bits-per-event"></span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<p class="mb-1 ok-label">Raw Entropy Words</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="word-count"></span>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<p class="mb-1 ok-label">Total Bits</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="bits"></span>
|
||
</div>
|
||
</div>
|
||
<div class="col-span-full">
|
||
<p class="mb-1 ok-label">Filtered Entropy</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="filtered private-data"></span>
|
||
</div>
|
||
</div>
|
||
<div class="col-span-full">
|
||
<p class="mb-1 ok-label">Raw Binary</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="binary private-data"></span>
|
||
</div>
|
||
</div>
|
||
<div class="col-span-full md:col-span-1">
|
||
<p class="mb-1 ok-label">Recovery Phrase Length</p>
|
||
<select class="w-full mnemonic-length ok-select">
|
||
<option value="raw" selected>
|
||
Use Raw Entropy (3 words per 32 bits)
|
||
</option>
|
||
<option value="12">12 <span>Words</span></option>
|
||
<option value="15">15 <span>Words</span></option>
|
||
<option value="18">18 <span>Words</span></option>
|
||
<option value="21">21 <span>Words</span></option>
|
||
<option value="24">24 <span>Words</span></option>
|
||
</select>
|
||
<p class="hidden weak-entropy-override-warning">
|
||
<span class="ok-helper-text ok-helper-text--danger">
|
||
The recovery phrase will appear more secure than it really is.
|
||
</span>
|
||
</p>
|
||
</div>
|
||
<div class="col-span-full md:col-span-1">
|
||
<p class="mb-1 ok-label">Binary Checksum</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="checksum private-data"> </span>
|
||
</div>
|
||
</div>
|
||
<div class="col-span-full">
|
||
<p class="mb-1 ok-label">Word Indexes</p>
|
||
<div class="text-sm text-gray-900">
|
||
<span class="word-indexes private-data"> </span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- Generate Code -->
|
||
<div class="insert-card">
|
||
<div class="generate-container">
|
||
<div class="sm:flex sm:justify-between sm:space-x-2">
|
||
<!-- Mnemonic Language Selector -->
|
||
<select id="strength" class="w-full mb-2 sm:mb-0 strength ok-select sm:w-auto">
|
||
<option value="12" selected>12 words</option>
|
||
<option value="18">18 words</option>
|
||
<option value="24">24 words</option>
|
||
<option class="text-black" disabled>──────────</option>
|
||
<option value="3">3 words</option>
|
||
<option value="6">6 words</option>
|
||
<option value="9">9 words</option>
|
||
<option value="15">15 words</option>
|
||
<option value="21">21 words</option>
|
||
</select>
|
||
<!-- Generate Button -->
|
||
<button type="button" class="inline-flex items-center justify-center w-full px-4 py-2 text-sm font-medium text-white transition bg-green-600 border border-transparent rounded-md shadow-sm generate hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500 sm:w-auto">
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 mr-2 -ml-1" viewBox="0 0 20 20" fill="currentColor">
|
||
<path fill-rule="evenodd" d="M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z" clip-rule="evenodd" />
|
||
</svg>
|
||
GENERATE
|
||
</button>
|
||
</div>
|
||
<!-- Warning Text -->
|
||
<p class="flex hidden p-2 mt-4 text-sm text-yellow-600 border border-yellow-200 rounded-md warning help-block bg-yellow-50">
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 mr-2 text-yellow-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
|
||
</svg>
|
||
Recovery phrase with less than 12 words have low entropy and may be guessed by an attacker.
|
||
</p>
|
||
</div>
|
||
<!-- Recovery Code -->
|
||
<div>
|
||
<textarea
|
||
id="phrase"
|
||
class="w-full shadow phrase private-data ok-textarea sm:text-lg"
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
placeholder="Typing or generate Recovery Phrase"
|
||
rows="3"
|
||
></textarea>
|
||
<p class="ok-helper-text">Typing your own words will probably not work how you expect, since the words require a particular structure (the last word contains a checksum).</p>
|
||
</div>
|
||
<div class="flex flex-wrap -m-1 text-gray-600 languages">
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#english">English</a>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#japanese" title="Japanese">日本語</a>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#spanish" title="Spanish">Español</a>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#chinese_simplified" title="Chinese (Simplified)"
|
||
>中文(简体)</a
|
||
>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#chinese_traditional" title="Chinese (Traditional)"
|
||
>中文(繁體)</a
|
||
>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#french" title="French">Français</a>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#italian" title="Italian">Italiano</a>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#korean" title="Korean">한국어</a>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#czech" title="Czech">Čeština</a>
|
||
<a class="py-1 px-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-100 hover:text-gray-900 transition m-1" href="#portuguese" title="Portuguese">Português</a>
|
||
</div>
|
||
</div>
|
||
<!-- BIP39 Split Mnemonic -->
|
||
<div class="hidden splitMnemonic">
|
||
<div class="insert-card">
|
||
<div>
|
||
<label for="phrase" class="mb-1 ok-label"
|
||
>BIP39 Split Recovery Phrase</label
|
||
>
|
||
<div>
|
||
<textarea
|
||
id="phraseSplit"
|
||
class="phraseSplit private-data ok-textarea"
|
||
title="Only 2 of 3 cards needed to recover."
|
||
rows="4"
|
||
></textarea>
|
||
<p class="help-block ok-helper-text ok-helper-text--danger">
|
||
<span id="phraseSplitWarn" class="phraseSplitWarn"></span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- BIP39 Passphrase -->
|
||
<div>
|
||
<div class="flex justify-between mb-1">
|
||
<label for="passphrase" class="ok-label">BIP39 Passphrase</label>
|
||
<span class="text-sm text-gray-500" id="email-optional">Optional</span>
|
||
</div>
|
||
<textarea
|
||
id="passphrase"
|
||
class="passphrase private-data ok-textarea"
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
<!-- BIP39 Seed -->
|
||
<div>
|
||
<label for="seed" class="mb-1 ok-label">BIP39 Seed</label>
|
||
<textarea
|
||
id="seed"
|
||
class="seed private-data ok-textarea"
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
<!-- Coin -->
|
||
<div>
|
||
<label for="network-phrase" class="mb-1 ok-label">Coin</label>
|
||
<select id="network-phrase" class="max-w-full network ok-select">
|
||
<!-- populated by javascript -->
|
||
</select>
|
||
</div>
|
||
<!-- BIP32 Root Key -->
|
||
<div>
|
||
<label for="root-key" class="mb-1 ok-label">BIP32 Root Key</label>
|
||
<textarea
|
||
id="root-key"
|
||
class="root-key private-data ok-textarea"
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
<!-- BIP85 -->
|
||
<div class="hidden bip85">
|
||
<div class="space-y-4 md:space-y-6 insert-card">
|
||
<!-- Warning -->
|
||
<p class="flex p-2 text-sm text-yellow-600 border border-yellow-200 rounded-md bg-yellow-50">
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="flex-shrink-0 w-5 h-5 mr-2 text-yellow-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
|
||
</svg>
|
||
<span>This is an advanced feature and should only be used if you understand what it does. Please read the <a class="underline" href="https://github.com/bitcoin/bips/blob/master/bip-0085.mediawiki" target="_blank">BIP85 spec</a> for more information.</span>
|
||
</p>
|
||
<!-- Form -->
|
||
<div class="grid gap-6 md:grid-cols-2">
|
||
<!-- BIP85 Application -->
|
||
<div>
|
||
<label for="bip85-application" class="mb-1 ok-label">BIP85 Application</label>
|
||
<div>
|
||
<select id="bip85-application" class="w-full ok-select">
|
||
<option value="bip39" selected>BIP39</option>
|
||
<option value="wif">WIF</option>
|
||
<option value="xprv">Xprv</option>
|
||
<option value="hex">Hex</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<!-- BIP85 Mnemonic Language -->
|
||
<div class="bip85-mnemonic-language-input">
|
||
<label for="bip85-mnemonic-language" class="mb-1 ok-label">BIP85 Recovery Phrase Language</label>
|
||
<div class="col-sm-10 languages">
|
||
<select
|
||
id="bip85-mnemonic-language"
|
||
class="w-full strength ok-select"
|
||
>
|
||
<option value="0" selected>English</option>
|
||
<!--<option value="1">日本語</option>
|
||
<option value="2">한국어</option>
|
||
<option value="3">Español</option>
|
||
<option value="4">中文(简体)</option>
|
||
<option value="5">中文(繁體)</option>
|
||
<option value="6">Français</option>
|
||
<option value="7">Italiano</option>
|
||
<option value="8">Čeština</option>
|
||
<option value="9">Português</option>-->
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<!-- BIP85 Mnemonic Length -->
|
||
<div class="bip85-mnemonic-length-input">
|
||
<label for="bip85-mnemonic-length" class="mb-1 ok-label">BIP85 Recovery Phrase Length</label>
|
||
<select id="bip85-mnemonic-length" class="w-full strength ok-select">
|
||
<option value="12" selected>12</option>
|
||
<option value="18">18</option>
|
||
<option value="24">24</option>
|
||
</select>
|
||
</div>
|
||
<!-- BIP85 Bytes -->
|
||
<div class="bip85-bytes-input">
|
||
<label for="bip85-bytes" class="mb-1 ok-label">BIP85 Bytes</label>
|
||
<input
|
||
id="bip85-bytes"
|
||
type="text"
|
||
class="change ok-input"
|
||
value="64"
|
||
/>
|
||
</div>
|
||
<!-- BIP85 Index -->
|
||
<div class="bip85-index-input">
|
||
<label for="bip85-index" class="mb-1 ok-label">BIP85 Index</label>
|
||
<input
|
||
id="bip85-index"
|
||
type="text"
|
||
class="change ok-input"
|
||
value="0"
|
||
/>
|
||
</div>
|
||
<!-- BIP85 Child Key -->
|
||
<div class="col-span-full">
|
||
<label for="phrase" class="mb-1 ok-label">BIP85 Child Key</label>
|
||
<textarea
|
||
id="bip85Field"
|
||
data-show-qr
|
||
class="bip85Field private-data ok-textarea"
|
||
title="BIP85 Child Key"
|
||
rows="3"
|
||
></textarea>
|
||
<p class="ok-helper-text">
|
||
The value of this field is not used elsewhere on this page. It can be used as a new key. In case of the BIP39 application, you can paste it into the "BIP39 Recovery Phrase" field to use it as a new recovery phrase.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- Prefixes – show when Coin is LTC - Litecoin -->
|
||
<div class="hidden form-group litecoin-ltub-container">
|
||
<label for="litecoin-use-ltub" class="mb-1 col-sm-2 control-label ok-label"
|
||
>Prefixes</label
|
||
>
|
||
<div class="col-sm-10 checkbox">
|
||
<label class="flex items-center p-2 -ml-2 transition rounded-md cursor-pointer hover:bg-gray-100">
|
||
<input
|
||
type="checkbox"
|
||
id="litecoin-use-ltub"
|
||
class="litecoin-use-ltub ok-checkbox"
|
||
checked="checked"
|
||
/>
|
||
<div class="text-sm text-gray-700">
|
||
Use <code>Ltpv / Ltub</code> instead of
|
||
<code>xprv / xpub</code>
|
||
</div>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- Card – Derivation Path -->
|
||
<div id="section-2" class="ok-card js-section">
|
||
<div class="flex-col pb-0 ok-card__header">
|
||
<h2 class="ok-card__header-title">Derivation Path</h2>
|
||
<!-- Tabs -->
|
||
<ul class="flex mt-2 -mb-px -mr-4 space-x-8 overflow-auto derivation-type nav nav-tabs" role="tablist">
|
||
<li id="bip32-tab">
|
||
<a href="#bip32" role="tab" data-toggle="tab" class="ok-tab">BIP32</a>
|
||
</li>
|
||
<li id="bip44-tab" class="active">
|
||
<a href="#bip44" role="tab" data-toggle="tab" class="ok-tab">BIP44</a>
|
||
</li>
|
||
<li id="bip49-tab">
|
||
<a href="#bip49" role="tab" data-toggle="tab" class="ok-tab">BIP49</a>
|
||
</li>
|
||
<li id="bip84-tab">
|
||
<a href="#bip84" role="tab" data-toggle="tab" class="ok-tab">BIP84</a>
|
||
</li>
|
||
<li id="bip141-tab">
|
||
<a href="#bip141" role="tab" data-toggle="tab" class="ok-tab">BIP141</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="ok-card__body">
|
||
<div class="derivation-type tab-content">
|
||
<div id="bip44" class="tab-pane active">
|
||
<div class="grid grid-cols-2 gap-6">
|
||
<div class="form-group">
|
||
<label for="purpose-bip44" class="mb-1 col-sm-2 control-label ok-label">
|
||
<a
|
||
href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose"
|
||
target="_blank"
|
||
>Purpose</a
|
||
>
|
||
</label>
|
||
<input
|
||
id="purpose-bip44"
|
||
type="text"
|
||
class="purpose form-control ok-input"
|
||
value="44"
|
||
readonly
|
||
/>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="coin-bip44" class="mb-1 col-sm-2 control-label ok-label">
|
||
<a
|
||
href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types"
|
||
target="_blank"
|
||
>Coin</a
|
||
>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="coin-bip44"
|
||
type="text"
|
||
class="coin form-control ok-input"
|
||
value="0"
|
||
readonly
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-bip44" class="mb-1 col-sm-2 control-label ok-label">
|
||
<a
|
||
href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account"
|
||
target="_blank"
|
||
>Account</a
|
||
>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="account-bip44"
|
||
type="text"
|
||
class="account form-control ok-input"
|
||
value="0"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="change-bip44" class="mb-1 col-sm-2 control-label ok-label">
|
||
<a
|
||
href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change"
|
||
target="_blank"
|
||
>External / Internal</a
|
||
>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="change-bip44"
|
||
type="text"
|
||
class="change form-control ok-input"
|
||
value="0"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="insert-card col-span-full">
|
||
<div>
|
||
<h3 class="font-medium text-gray-900">Account extended keys</h3>
|
||
<p class="mt-1 text-sm text-gray-500">The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.</p>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-xprv" class="mb-1 col-sm-2 control-label ok-label">
|
||
<span>Private Key</span>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<textarea
|
||
id="account-xprv-bip44"
|
||
type="text"
|
||
class="account-xprv private-data form-control ok-textarea"
|
||
readonly
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-xpub" class="mb-1 col-sm-2 control-label ok-label">
|
||
<span>Public Key</span>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<textarea
|
||
id="account-xpub-bip44"
|
||
type="text"
|
||
class="account-xpub form-control ok-textarea"
|
||
readonly
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group col-span-full">
|
||
<label for="bip44-path" class="mb-1 col-sm-2 control-label ok-label"
|
||
>BIP32 Derivation Path</label
|
||
>
|
||
<input
|
||
id="bip44-path"
|
||
type="text"
|
||
class="path form-control ok-input"
|
||
value="m/44'/0'/0'/0"
|
||
readonly="readonly"
|
||
/>
|
||
<p class="ok-helper-text">
|
||
The BIP32 derivation path and extended keys are the basis for the derived addresses.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div id="bip32" class="tab-pane">
|
||
<div class="grid grid-cols-2 gap-6">
|
||
<div class="form-group">
|
||
<label for="bip32-client" class="mb-1 col-sm-2 control-label ok-label"
|
||
>Client</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<select id="bip32-client" class="w-full client form-control ok-select">
|
||
<option value="custom">Custom derivation path</option>
|
||
<!-- populated by javascript -->
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="form-group col-span-full">
|
||
<label for="bip32-path" class="mb-1 col-sm-2 control-label ok-label"
|
||
>BIP32 Derivation Path</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="bip32-path"
|
||
type="text"
|
||
class="path form-control ok-input"
|
||
value="m/0"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="core-path" class="mb-1 col-sm-2 control-label ok-label"
|
||
>Bitcoin Core</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<p class="text-sm text-gray-900 form-control no-border">
|
||
Use path <code>m/0'/0'</code> with hardened addresses.
|
||
</p>
|
||
<p class="form-control no-border ok-helper-text">
|
||
For more info see the
|
||
<a
|
||
href="https://github.com/bitcoin/bitcoin/pull/8035"
|
||
target="_blank" class="underline"
|
||
>Bitcoin Core BIP32 implementation</a
|
||
>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="core-path" class="mb-1 col-sm-2 control-label ok-label"
|
||
>Multibit</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<p class="text-sm text-gray-900 form-control no-border">
|
||
<span>Use path <code>m/0'/0</code>.</span>
|
||
<span
|
||
>For change addresses use path
|
||
<code>m/0'/1</code>.</span
|
||
>
|
||
</p>
|
||
<p class="form-control no-border ok-helper-text">
|
||
<span>For more info see</span>
|
||
<a href="https://multibit.org/" target="_blank" class="underline"
|
||
>MultiBit HD</a
|
||
>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div class="form-group col-span-full">
|
||
<label class="mb-1 col-sm-2 control-label ok-label">Block Explorers</label>
|
||
<div class="col-sm-10">
|
||
<p class="text-sm text-gray-900 form-control no-border">
|
||
<span>Use path <code>m/44'/0'/0'</code>.</span>
|
||
<span
|
||
>Only enter the <code>xpub</code> extended key into
|
||
block explorer search fields, never the
|
||
<code>xprv</code> key.</span
|
||
>
|
||
</p>
|
||
<p class="form-control no-border ok-helper-text">
|
||
<span>Can be used with</span>:
|
||
<a href="https://blockchain.info/" target="_blank" class="underline"
|
||
>blockchain.info</a
|
||
>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="bip49" class="tab-pane">
|
||
<div class="hidden unavailable">
|
||
<p>BIP49 is unavailable for this coin.</p>
|
||
</div>
|
||
<div class="available">
|
||
<div class="grid grid-cols-2 gap-6">
|
||
<div class="form-group">
|
||
<label for="purpose-bip49" class="mb-1 col-sm-2 control-label ok-label">
|
||
<a
|
||
href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose"
|
||
target="_blank"
|
||
>Purpose</a
|
||
>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="purpose-bip49"
|
||
type="text"
|
||
class="purpose form-control ok-input"
|
||
value="49"
|
||
readonly
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="coin-bip49" class="mb-1 col-sm-2 control-label ok-label">
|
||
<a
|
||
href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types"
|
||
target="_blank"
|
||
>Coin</a
|
||
>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="coin-bip49"
|
||
type="text"
|
||
class="coin form-control ok-input"
|
||
value="0"
|
||
readonly
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-bip49" class="mb-1 col-sm-2 control-label ok-label">
|
||
<a
|
||
href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account"
|
||
target="_blank"
|
||
>Account</a
|
||
>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="account-bip49"
|
||
type="text"
|
||
class="account form-control ok-input"
|
||
value="0"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="change-bip49" class="mb-1 col-sm-2 control-label ok-label">
|
||
<a
|
||
href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change"
|
||
target="_blank"
|
||
>External / Internal</a
|
||
>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="change-bip49"
|
||
type="text"
|
||
class="change form-control ok-input"
|
||
value="0"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="insert-card col-span-full">
|
||
<div>
|
||
<h3 class="font-medium text-gray-900">Account extended keys</h3>
|
||
<p class="mt-1 text-sm text-gray-500">The account extended keys can be used for importing to most BIP49 compatible wallets.</p>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-xprv" class="mb-1 col-sm-2 control-label ok-label">
|
||
<span>Private Key</span>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<textarea
|
||
id="account-xprv-bip49"
|
||
type="text"
|
||
class="account-xprv private-data form-control ok-textarea"
|
||
readonly
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-xpub" class="mb-1 col-sm-2 control-label ok-label">
|
||
<span>Public Key</span>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<textarea
|
||
id="account-xpub-bip49"
|
||
type="text"
|
||
class="account-xpub form-control ok-textarea"
|
||
readonly
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group col-span-full">
|
||
<label for="bip49-path" class="mb-1 col-sm-2 control-label ok-label"
|
||
>BIP32 Derivation Path</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="bip49-path"
|
||
type="text"
|
||
class="path form-control ok-input"
|
||
value="m/49'/0'/0'/0"
|
||
readonly="readonly"
|
||
/>
|
||
<p class="ok-helper-text">
|
||
The BIP32 derivation path and extended keys are the basis for the derived addresses.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div id="bip141" class="tab-pane">
|
||
<div class="hidden unavailable">
|
||
<p>BIP141 is unavailable for this coin.</p>
|
||
</div>
|
||
<div class="available">
|
||
<div class="grid grid-cols-2 gap-6">
|
||
<div class="form-group">
|
||
<label for="bip141-path" class="mb-1 col-sm-2 control-label ok-label"
|
||
>BIP32 Derivation Path</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="bip141-path"
|
||
type="text"
|
||
class="bip141-path form-control ok-input"
|
||
value="m/0"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="mb-1 col-sm-2 control-label ok-label"
|
||
>Script Semantics</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<select class="w-full form-control bip141-semantics ok-select">
|
||
<option value="p2wpkh">P2WPKH</option>
|
||
<option value="p2wpkh-p2sh" selected>
|
||
P2WPKH nested in P2SH
|
||
</option>
|
||
<option value="p2wsh">P2WSH (1-of-1 multisig)</option>
|
||
<option value="p2wsh-p2sh">
|
||
P2WSH nested in P2SH (1-of-1 multisig)
|
||
</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="bip84" class="tab-pane">
|
||
<div class="hidden unavailable">
|
||
<div class="form-group">
|
||
<div class="col-sm-2"></div>
|
||
<div class="col-sm-10">
|
||
<p>BIP84 is unavailable for this coin.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="available">
|
||
<div class="grid grid-cols-2 gap-6">
|
||
<div class="form-group">
|
||
<label for="purpose-bip84" class="mb-1 col-sm-2 control-label ok-label">
|
||
Purpose
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="purpose-bip84"
|
||
type="text"
|
||
class="purpose form-control ok-input"
|
||
value="84"
|
||
readonly
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="coin-bip84" class="mb-1 col-sm-2 control-label ok-label">
|
||
Coin
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="coin-bip84"
|
||
type="text"
|
||
class="coin form-control ok-input"
|
||
value="0"
|
||
readonly
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-bip84" class="mb-1 col-sm-2 control-label ok-label">
|
||
Account
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="account-bip84"
|
||
type="text"
|
||
class="account form-control ok-input"
|
||
value="0"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="change-bip84" class="mb-1 col-sm-2 control-label ok-label">
|
||
External / Internal
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="change-bip84"
|
||
type="text"
|
||
class="change form-control ok-input"
|
||
value="0"
|
||
/>
|
||
</div>
|
||
</div>
|
||
<div class="insert-card col-span-full">
|
||
<div>
|
||
<h3 class="font-medium text-gray-900">Account extended keys</h3>
|
||
<p class="mt-1 text-sm text-gray-500">The account extended keys can be used for importing to most BIP84 compatible wallets.</p>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-xprv" class="mb-1 col-sm-2 control-label ok-label">
|
||
<span>Private Key</span>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<textarea
|
||
id="account-xprv-bip84"
|
||
type="text"
|
||
class="account-xprv private-data form-control ok-textarea"
|
||
readonly
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="account-xpub" class="mb-1 col-sm-2 control-label ok-label">
|
||
<span>Public Key</span>
|
||
</label>
|
||
<div class="col-sm-10">
|
||
<textarea
|
||
id="account-xpub-bip84"
|
||
type="text"
|
||
class="account-xpub form-control ok-textarea"
|
||
readonly
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group col-span-full">
|
||
<label for="bip84-path" class="mb-1 col-sm-2 control-label ok-label"
|
||
>BIP32 Derivation Path</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<input
|
||
id="bip84-path"
|
||
type="text"
|
||
class="path form-control ok-textarea"
|
||
value="m/84'/0'/0'/0"
|
||
readonly="readonly"
|
||
/>
|
||
<p class="ok-helper-text">The BIP32 derivation path and extended keys are the basis for the derived addresses.</p>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="extended-priv-key" class="mb-1 col-sm-2 control-label ok-label"
|
||
>BIP32 Extended Private Key</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<textarea
|
||
id="extended-priv-key"
|
||
class="extended-priv-key private-data form-control ok-textarea"
|
||
readonly="readonly"
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="extended-pub-key" class="mb-1 col-sm-2 control-label ok-label"
|
||
>BIP32 Extended Public Key</label
|
||
>
|
||
<div class="col-sm-10">
|
||
<textarea
|
||
id="extended-pub-key"
|
||
class="extended-pub-key form-control ok-textarea"
|
||
readonly="readonly"
|
||
data-show-qr
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- Card – Derived Addresses -->
|
||
<div id="section-3" class="ok-card js-section">
|
||
<div class="pb-0 ok-card__header">
|
||
<div class="mr-6">
|
||
<div>
|
||
<div class="ok-card__header-title">Derived Addresses</div>
|
||
<p class="max-w-2xl mt-1 text-sm text-gray-500">Note these addresses are derived from the BIP32 Extended Key.</p>
|
||
</div>
|
||
<ul class="flex mt-2 -mb-px space-x-8 addresses-type nav nav-tabs" role="tablist">
|
||
<li id="table-tab" class="active">
|
||
<a href="#table" role="tab" data-toggle="tab" class="ok-tab">Table</a>
|
||
</li>
|
||
<li id="csv-tab">
|
||
<a href="#csv" role="tab" data-toggle="tab" class="ok-tab">CSV</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="dropdown js-dropdown">
|
||
<button id="derivedAddressesPopoverBtn" type="button" class="inline-flex items-center justify-center flex-shrink-0 w-8 h-8 text-gray-400 bg-white rounded-full hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500" aria-expanded="false" aria-haspopup="true">
|
||
<span class="sr-only">Open options</span>
|
||
<!-- Heroicon name: solid/dots-vertical -->
|
||
<svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
||
<path d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" />
|
||
</svg>
|
||
</button>
|
||
<div id="derivedAddressesPopoverContent" class="dropdown__menu w-72">
|
||
<div class="hidden col-md-12 bch-addr-type-container">
|
||
<div class="radio">
|
||
<label class="flex items-center p-2 transition rounded-md cursor-pointer hover:bg-gray-100">
|
||
<input
|
||
type="radio"
|
||
value="cashaddr"
|
||
name="bch-addr-type"
|
||
class="use-bch-cashaddr-addresses ok-radio"
|
||
checked="checked"
|
||
/>
|
||
<span class="text-sm text-gray-700"
|
||
>Use CashAddr addresses for Bitcoin Cash (ie starting with 'q'
|
||
instead of '1')</span
|
||
>
|
||
</label>
|
||
</div>
|
||
<div class="radio">
|
||
<label class="flex items-center p-2 transition rounded-md cursor-pointer hover:bg-gray-100">
|
||
<input
|
||
type="radio"
|
||
value="bitpay"
|
||
name="bch-addr-type"
|
||
class="use-bch-bitpay-addresses ok-radio"
|
||
/>
|
||
<span class="text-sm text-gray-700"
|
||
>Use BitPay-style addresses for Bitcoin Cash (ie starting with
|
||
'C' instead of '1')</span
|
||
>
|
||
</label>
|
||
</div>
|
||
<div class="radio">
|
||
<label class="flex items-center p-2 transition rounded-md cursor-pointer hover:bg-gray-100">
|
||
<input
|
||
type="radio"
|
||
value="legacy"
|
||
name="bch-addr-type"
|
||
class="use-bch-legacy-addresses ok-radio"
|
||
/>
|
||
<span class="text-sm text-gray-700"
|
||
>Use legacy addresses for Bitcoin Cash (ie starting with
|
||
'1')</span
|
||
>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
|
||
<div>
|
||
<div class="p-2 text-left">
|
||
<div>
|
||
<p class="mb-1 ok-label">Encrypt private keys using BIP38</p>
|
||
<div class="relative">
|
||
<input
|
||
type="text"
|
||
class="pl-[38px] bip38-password private-data ok-input"
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
placeholder="Password (Optional)"
|
||
/>
|
||
<input type="checkbox" class="absolute left-[11px] top-[11px] use-bip38 ok-checkbox" />
|
||
</div>
|
||
<p class="ok-helper-text">Enabling BIP38 means each key will take several minutes to generate.</p>
|
||
</div>
|
||
</div>
|
||
<div class="mt-2 checkbox">
|
||
<label class="flex items-center p-2 transition rounded-md cursor-pointer hover:bg-gray-100">
|
||
<input class="hardened-addresses ok-checkbox" type="checkbox" />
|
||
<span class="text-sm text-gray-700">Use hardened addresses</span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="p-0 ok-card__body">
|
||
<div class="addresses-type tab-content">
|
||
<div id="table" class="overflow-auto max-h-[520px] tab-pane active">
|
||
<table class="table min-w-full divide-y divide-gray-200 table-striped">
|
||
<thead class="bg-gray-50">
|
||
<th scope="col" class="px-6 py-3 text-xs font-medium tracking-wider text-left text-gray-500 uppercase">
|
||
<div class="flex items-center input-group">
|
||
<span class="whitespace-nowrap">Path</span>
|
||
<button class="px-1 text-gray-700 bg-white border border-gray-300 rounded shadow-sm index-toggle py-0.5 -my-0.5 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500">Show/Hide</button>
|
||
</div>
|
||
</th>
|
||
<th scope="col" class="px-6 py-3 text-xs font-medium tracking-wider text-left text-gray-500 uppercase">
|
||
<div class="flex items-center input-group">
|
||
<span class="whitespace-nowrap">Address</span>
|
||
<button class="px-1 text-gray-700 bg-white border border-gray-300 rounded shadow-sm address-toggle py-0.5 -my-0.5 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500">Show/Hide</button>
|
||
</div>
|
||
</th>
|
||
<th scope="col" class="px-6 py-3 text-xs font-medium tracking-wider text-left text-gray-500 uppercase">
|
||
<div class="flex items-center input-group">
|
||
<span class="whitespace-nowrap">Public Key</span>
|
||
<button class="px-1 text-gray-700 bg-white border border-gray-300 rounded shadow-sm public-key-toggle py-0.5 -my-0.5 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500">Show/Hide</button>
|
||
</div>
|
||
</th>
|
||
<th scope="col" class="px-6 py-3 text-xs font-medium tracking-wider text-left text-gray-500 uppercase">
|
||
<div class="flex items-center input-group">
|
||
<span class="whitespace-nowrap">Private Key</span>
|
||
<button class="px-1 text-gray-700 bg-white border border-gray-300 rounded shadow-sm private-key-toggle py-0.5 -my-0.5 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500">Show/Hide</button>
|
||
</div>
|
||
</th>
|
||
</thead>
|
||
<tbody class="addresses monospace">
|
||
<tr class="bg-white">
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
</tr>
|
||
<tr class="bg-white">
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
</tr>
|
||
<tr class="bg-white">
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
</tr>
|
||
<tr class="bg-white">
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
</tr>
|
||
<tr class="bg-white">
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
<td> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div id="csv" class="p-6 border-b border-gray-200 tab-pane">
|
||
<textarea
|
||
class="csv form-control ok-textarea"
|
||
rows="25"
|
||
readonly
|
||
autocomplete="off"
|
||
autocorrect="off"
|
||
autocapitalize="off"
|
||
spellcheck="false"
|
||
></textarea>
|
||
</div>
|
||
</div>
|
||
<div class="px-4 md:px-6 py-4 !mb-0 sm:flex sm:justify-between sm:items-center border-t border-gray-200 space-y-4 sm:space-y-0">
|
||
<div class="flex items-center space-x-2">
|
||
<input type="number" class="w-14 sm:w-20 rows-to-add ok-input" value="20" />
|
||
<span class="text-sm text-gray-700">more row starting from index</span>
|
||
<input type="number" class="w-14 sm:w-20 more-rows-start-index ok-input" />
|
||
</div>
|
||
<button type="button" class="inline-flex items-center justify-center w-full px-4 py-2 text-sm font-medium text-white bg-green-600 border border-transparent rounded-md shadow-sm more hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500 sm:w-auto">
|
||
Show More
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- More Info -->
|
||
<div id="section-4" class="px-4 pt-8 js-section md:px-0 md:pt-16">
|
||
<div class="prose">
|
||
<h2>More Info</h2>
|
||
<h3>BIP39</h3>
|
||
<p>Recovery phrase for generating deterministic keys. Read more at the <a href="https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec</a>.</p>
|
||
|
||
<h3>BIP32</h3>
|
||
<p>Hierarchical Deterministic Wallets. Read more at the <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">official BIP32 spec</a>. See the demo at <a href="http://bip32.org/" target="_blank">bip32.org</a>.</p>
|
||
|
||
<h3>BIP44</h3>
|
||
<p>Multi-Account Hierarchy for Deterministic Wallets. Read more at the <a href="https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target="_blank">official BIP44 spec</a>.</p>
|
||
|
||
<h3>BIP49</h3>
|
||
<p>Derivation scheme for P2WPKH-nested-in-P2SH based accounts. Read more at the <a href="https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target="_blank">official BIP49 spec</a>.</p>
|
||
|
||
<h3>BIP85</h3>
|
||
<p> Deterministic Entropy From BIP32 Keychains. Read more at the <a href="https://github.com/bitcoin/bips/blob/master/bip-0085.mediawiki" target="_blank">official BIP85 spec</a>.</p>
|
||
|
||
<h3 id="entropy-notes">Entropy</h3>
|
||
<p>Entropy values should not include the BIP39 checksum. This is automatically added by the tool.</p>
|
||
|
||
<p>Entropy values must be sourced from a <a href="https://en.wikipedia.org/wiki/Random_number_generation" target="_blank">strong source of randomness</a>. This means flipping a fair coin, rolling a fair dice, noise
|
||
measurements etc. Do <strong>NOT</strong> use phrases from books, lyrics from songs, your birthday or street address, keyboard mashing, or anything you <i>think</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.</p>
|
||
|
||
<p><strong><span>Do not store entropy.</span></strong></p>
|
||
|
||
<p>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a recovery phrase. Instead of storing entropy, store the recovery phrase generated from the entropy. <a href="https://en.wikipedia.org/wiki/Steganography#Physical" target="_blank">Steganography</a> may be beneficial when storing the recovery phrase.</p>
|
||
|
||
<p>The random recovery phrase generator on this page uses a <a href="https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target="_blank">cryptographically secure random number generator</a>. The built in random generator can generally be trusted more than your own intuition about randomness. If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work. In that case you might choose to use your own source of entropy.</p>
|
||
|
||
<p><a href="https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target="_blank">You are not a good source of entropy.</a></p>
|
||
|
||
<p>Card entropy has been implemented assuming cards are replaced, not drawn one after another. A full deck with replacement generates 232 bits of entropy (21 words). A full deck without replacement generates 225 bits of entropy (21 words).</p>
|
||
|
||
<h3>License</h3>
|
||
<p>
|
||
Please refer to <a href="https://github.com/OneKeyHQ/bip39/blob/master/LICENSE" target="_blank">the software license</a> for more detail.
|
||
</p>
|
||
<p>
|
||
The software is provided "as is", without warranty of any kind,
|
||
express or implied, including but not limited to the warranties of
|
||
merchantability, fitness for a particular purpose and
|
||
noninfringement. In no event shall the authors or copyright holders
|
||
be liable for any claim, damages or other liability, whether in an
|
||
action of contract, tort or otherwise, arising from, out of or in
|
||
connection with the software or the use or other dealings in the
|
||
software.
|
||
</p>
|
||
|
||
<h3>Alternative Tools</h3>
|
||
<p>This tool is interoperable with any BIP39 wallet. Some similar tools to this one (ie not consumer wallets) are <a href="https://bip32jp.github.io/english/">https://bip32jp.github.io/english/</a>.</p>
|
||
|
||
<h3>Offline Usage</h3>
|
||
<p>You can use this tool without having to be online.</p>
|
||
<ol>
|
||
<li>In your browser, select file save-as, and save this page as a file.</li>
|
||
<li>Double-click that file to open it in a browser on any offline computer.</li>
|
||
</ol>
|
||
<h3>This project is 100% open-source code</h3>
|
||
<p>Get the source code from the repository - <a href="https://github.com/OneKeyHQ/bip39" target="_blank">https://github.com/OneKeyHQ/bip39</a>
|
||
</p>
|
||
<h3>Libraries</h3>
|
||
<ul>
|
||
<li>BitcoinJS - <a href="https://github.com/bitcoinjs/bitcoinjs-lib" target="_blank"> https://github.com/bitcoinjs/bitcoinjs-lib</a></li>
|
||
<li>jsBIP39 - <a href="https://github.com/iancoleman/jsbip39" target="_blank">https://github.com/iancoleman/jsbip39</a></li>
|
||
<li>sjcl - <a href="https://github.com/bitwiseshiftleft/sjcl" target="_blank">https://github.com/bitwiseshiftleft/sjcl</a></li>
|
||
<li>jQuery - <a href="https://jquery.com/" target="_blank">https://jquery.com/</a></li>
|
||
<li>
|
||
Twitter Bootstrap - <a href="http://getbootstrap.com/" target="_blank">http://getbootstrap.com/</a>
|
||
</li>
|
||
<li>Tailwind CSS - <a href="https://tailwindcss.com/" target="_blank">https://tailwindcss.com/</a></li>
|
||
<li>Tippy.js - <a href="https://kabbouchi.github.io/tippyjs-v4-docs/" target="_blank">https://kabbouchi.github.io/tippyjs-v4-docs/</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- QR Code -->
|
||
<div class="fixed hidden qr-container top-4 right-4">
|
||
<div class="hidden qr-hint">
|
||
<div class="ok-notification">
|
||
<div class="flex items-center">
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 mr-4 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21" />
|
||
</svg>
|
||
<span>Click field to <span class="font-bold"> hide </span> QR</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="qr-hint">
|
||
<div class="ok-notification">
|
||
<div class="flex items-center">
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 mr-4 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z" />
|
||
</svg>
|
||
<span>Click field to <span class="font-bold"> show </span> QR</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="hidden mt-4 qr-hider">
|
||
<div class="flex flex-col items-center ok-notification">
|
||
<div class="qr-image"></div>
|
||
<div class="text-sm qr-warning">
|
||
<div class="flex items-center mt-2 text-yellow-600">
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 mr-2 text-yellow-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
|
||
</svg>
|
||
Scanner may keep history
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="feedback-container">
|
||
<div class="fixed max-w-full px-4 py-2 text-white -translate-x-1/2 bg-gray-800 rounded-md shadow-lg feedback left-1/2 bottom-4">Loading...</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div id="onekey-portal-footer">
|
||
</div>
|
||
|
||
<script src="js/footer.js"></script>
|
||
|
||
<script type="text/template" id="address-row-template">
|
||
<tr>
|
||
<td class="index"><span></span></td>
|
||
<td class="address"><span data-show-qr></span></td>
|
||
<td class="pubkey"><span data-show-qr></span></td>
|
||
<td class="privkey private-data"><span data-show-qr></span></td>
|
||
</tr>
|
||
</script>
|
||
|
||
<!-- Google Analytic -->
|
||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-187315652-1"></script>
|
||
<script>
|
||
window.dataLayer = window.dataLayer || [];
|
||
function gtag(){dataLayer.push(arguments);}
|
||
gtag('js', new Date());
|
||
gtag('config', 'UA-187315652-1');
|
||
</script>
|
||
|
||
<script src="js/jquery-3.2.1.js"></script>
|
||
<script src="js/bootstrap.js"></script>
|
||
<script src="js/bip39-libs.js"></script>
|
||
<script src="js/bitcoinjs-extensions.js"></script>
|
||
<script src="js/segwit-parameters.js"></script>
|
||
<script src="js/ripple-util.js"></script>
|
||
<script src="js/jingtum-util.js"></script>
|
||
<script src="js/casinocoin-util.js"></script>
|
||
<script src="js/cosmos-util.js"></script>
|
||
<script src="js/eos-util.js"></script>
|
||
<script src="js/fio-util.js"></script>
|
||
<script src="js/xwc-util.js"></script>
|
||
<script src="js/sjcl-bip39.js"></script>
|
||
<script src="js/wordlist_english.js"></script>
|
||
<script src="js/wordlist_japanese.js"></script>
|
||
<script src="js/wordlist_spanish.js"></script>
|
||
<script src="js/wordlist_chinese_simplified.js"></script>
|
||
<script src="js/wordlist_chinese_traditional.js"></script>
|
||
<script src="js/wordlist_french.js"></script>
|
||
<script src="js/wordlist_italian.js"></script>
|
||
<script src="js/wordlist_korean.js"></script>
|
||
<script src="js/wordlist_czech.js"></script>
|
||
<script src="js/wordlist_portuguese.js"></script>
|
||
<script src="js/jsbip39.js"></script>
|
||
<script src="js/entropy.js"></script>
|
||
<script src="js/index.js"></script>
|
||
<!-- Customizing JS -->
|
||
<script src="js/extend.js"></script>
|
||
</body>
|
||
</html>
|