Generator/Loader
Private key
JavaScript safe generation with NIST randomness tests.
Gift paper wallet
Gift paper wallet
Recommendations for the safe use of Gift paper wallets.
- Generate a Bitcoin address and keys while the Internet is off, after printing the wallet, close the browser before connecting to the Internet.
- Use only a personal printer with a wired connection for printing, after printing, clear the printer cache.
- Use it as one time temporally wallet. Transfer Bitcoins to your secure wallet as soon as possible.
- Remember that if the paper is damaged, Bitcoins will be lost.
- Use scratch stickers to protect your private key
Remember that bitcoins should be stored in cold wallets as well as using backups in the form of mnemonic phrases, storage on paper carries risks of loss.
BTC
gf-btc4
BTC yellow
gf-btc3
BTC coins
gf-btc2
BTC dark
gf-btc
Cats
gf-cats
Ameba
gf-ameba
Santa
gf-christmas3
Сookies
gf-christmas2
Crypto
gf-crypto
Digits
gf-digits
Donats
gf-donats
Christmas
gf-christmas
Red hearts
gf-hearts2
Hearts
gf-hearts
Valentine
gf-valentine
Halloween
gf-halloween
Address
Private key
Cut using the front side, the back side is larger than the front side, which will allow leveling if your front and back sides are slightly offset.
\")"; var printI = document.createElement('iframe'); printI.name = "printIframe"; printI.id = strFrameName; printI.className = "MSIE"; document.body.appendChild(printI); printI.src = iframeSrc; } else { // other browsers inherit document.domain, and IE works if document.domain is not explicitly set var $frame = $(""); $frame.appendTo("body"); } var $iframe = $("#" + strFrameName); // show frame if in debug mode if (!opt.debug) $iframe.css({ position: "absolute", width: "0px", height: "0px", left: "-600px", top: "-600px" }); // before print callback if (typeof opt.beforePrint === "function") { opt.beforePrint(); } // $iframe.ready() and $iframe.load were inconsistent between browsers setTimeout(function () { // Add doctype to fix the style difference between printing and render function setDocType($iframe, doctype) { var win, doc; win = $iframe.get(0); win = win.contentWindow || win.contentDocument || win; doc = win.document || win.contentDocument || win; document.body.style.backgroundColor = "transparent!important"; doc.open(); doc.write(doctype); doc.close(); } if (opt.doctypeString) { setDocType($iframe, opt.doctypeString); } var $doc = $iframe.contents(), $head = $doc.find("head"), $body = $doc.find("body"), $base = $('base'), baseURL; // add base tag to ensure elements use the parent domain if (opt.base === true && $base.length > 0) { // take the base tag from the original page baseURL = $base.attr('href'); } else if (typeof opt.base === 'string') { // An exact base string is provided baseURL = opt.base; } else { // Use the page URL as the base baseURL = document.location.protocol + '//' + document.location.host; } $head.append('
"); // import additional stylesheet(s) if (opt.loadCSS) { if ($.isArray(opt.loadCSS)) { jQuery.each(opt.loadCSS, function (index, value) { $head.append(""); }); } else { $head.append(""); } } var pageHtml = $('html')[0]; // CSS VAR in html tag when dynamic apply e.g. document.documentElement.style.setProperty("--foo", bar); $doc.find('html').prop('style', pageHtml.style.cssText); // copy 'root' tag classes var tag = opt.copyTagClasses; if (tag) { tag = tag === true ? 'bh' : tag; if (tag.indexOf('b') !== -1) { $body.addClass($('body')[0].className); } if (tag.indexOf('h') !== -1) { $doc.find('html').addClass(pageHtml.className); } } // print header appendContent($body, opt.header); if (opt.canvas) { // add canvas data-ids for easy access after cloning. var canvasId = 0; // .addBack('canvas') adds the top-level element if it is a canvas. $element.find('canvas').addBack('canvas').each(function () { $(this).attr('data-printthis', canvasId++); }); } appendBody($body, $element, opt); if (opt.canvas) { // Re-draw new canvases by referencing the originals $body.find('canvas').each(function () { var cid = $(this).data('printthis'), $src = $('[data-printthis="' + cid + '"]'); this.getContext('2d').drawImage($src[0], 0, 0); // Remove the markup from the original if ($.isFunction($.fn.removeAttr)) { $src.removeAttr('data-printthis'); } else { $.each($src, function (i, el) { el.removeAttribute('data-printthis'); }); } }); } // remove inline styles if (opt.removeInline) { // Ensure there is a selector, even if it's been mistakenly removed var selector = opt.removeInlineSelector || '*'; // $.removeAttr available jQuery 1.7+ if ($.isFunction($.removeAttr)) { $body.find(selector).removeAttr("style"); } else { $body.find(selector).attr("style", ""); } } // print "footer" appendContent($body, opt.footer); // attach event handler function to beforePrint event function attachOnBeforePrintEvent($iframe, beforePrintHandler) { var win = $iframe.get(0); win = win.contentWindow || win.contentDocument || win; if (typeof beforePrintHandler === "function") { if ('matchMedia' in win) { win.matchMedia('print').addListener(function (mql) { if (mql.matches) beforePrintHandler(); }); } else { win.onbeforeprint = beforePrintHandler; } } } attachOnBeforePrintEvent($iframe, opt.beforePrintEvent); setTimeout(function () { if ($iframe.hasClass("MSIE")) { // check if the iframe was created with the ugly hack // and perform another ugly hack out of neccessity window.frames["printIframe"].focus(); $head.append("