diff --git a/LNbits/templates/base.html b/LNbits/templates/base.html
new file mode 100644
index 000000000..87d34d050
--- /dev/null
+++ b/LNbits/templates/base.html
@@ -0,0 +1,244 @@
+<!-- @format -->
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8" />
+    <title>LNBits Wallet</title>
+    <meta
+      content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
+      name="viewport"
+    />
+    <!-- Bootstrap 3.3.2 -->
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}"
+    />
+    <!-- FontAwesome 4.3.0 -->
+    <link
+      href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"
+      rel="stylesheet"
+      type="text/css"
+    />
+    <!-- Ionicons 2.0.0 -->
+    <link
+      href="http://code.ionicframework.com/ionicons/2.0.0/css/ionicons.min.css"
+      rel="stylesheet"
+      type="text/css"
+    />
+
+    <!-- Theme style -->
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='dist/css/AdminLTE.min.css') }}"
+    />
+    <!-- AdminLTE Skins. Choose a skin from the css/skins 
+         folder instead of downloading all of them to reduce the load. -->
+
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='dist/css/skins/_all-skins.min.css') }}"
+    />
+
+    <!-- iCheck -->
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='plugins/iCheck/flat/blue.css') }}"
+    />
+
+    <!-- Morris chart -->
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='plugins/morris/morris.css') }}"
+    />
+
+    <!-- jvectormap -->
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.css') }}"
+    />
+
+    <!-- Date Picker -->
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='plugins/datepicker/datepicker3.css') }}"
+    />
+
+    <!-- Daterange picker -->
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='plugins/daterangepicker/daterangepicker-bs3.css') }}"
+    />
+
+    <!-- bootstrap wysihtml5 - text editor -->
+    <link
+      rel="stylesheet"
+      media="screen"
+      href="{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}"
+    />
+
+    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+      <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
+    <![endif]-->
+
+    <style>
+      .small-box > .small-box-footer {
+        text-align: left;
+        padding-left: 10px;
+      }
+
+      #loadingMessage {
+        text-align: center;
+        padding: 40px;
+        background-color: #eee;
+      }
+
+      #canvas {
+        width: 100%;
+      }
+
+      #output {
+        margin-top: 20px;
+        background: #eee;
+        padding: 10px;
+        padding-bottom: 0;
+      }
+
+      #output div {
+        padding-bottom: 10px;
+        word-wrap: break-word;
+      }
+
+      #noQRFound {
+        text-align: center;
+      }
+    </style>
+
+    <!-- jQuery 2.1.3 -->
+    <script src="{{ url_for('static', filename='plugins/jQuery/jQuery-2.1.3.min.js') }}"></script>
+    <!-- jQuery UI 1.11.2 -->
+    <script
+      src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js"
+      type="text/javascript"
+    ></script>
+    <!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
+    <script>
+      $.widget.bridge('uibutton', $.ui.button)
+    </script>
+    <!-- Bootstrap 3.3.2 JS -->
+    <script
+      src="{{ url_for('static', filename='bootstrap/js/bootstrap.min.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- Morris.js charts -->
+    <script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
+    <script
+      src="{{ url_for('static', filename='plugins/morris/morris.min.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- Sparkline -->
+    <script
+      src="{{ url_for('static', filename='plugins/sparkline/jquery.sparkline.min.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- jvectormap -->
+    <script
+      src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.min.js') }}"
+      type="text/javascript"
+    ></script>
+    <script
+      src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-world-mill-en.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- jQuery Knob Chart -->
+    <script
+      src="{{ url_for('static', filename='plugins/knob/jquery.knob.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- daterangepicker -->
+    <script
+      src="{{ url_for('static', filename='plugins/daterangepicker/daterangepicker.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- datepicker -->
+    <script
+      src="{{ url_for('static', filename='plugins/datepicker/bootstrap-datepicker.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- Bootstrap WYSIHTML5 -->
+    <script
+      src="{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- iCheck -->
+    <script
+      src="{{ url_for('static', filename='plugins/iCheck/icheck.min.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- Slimscroll -->
+    <script
+      src="{{ url_for('static', filename='plugins/slimScroll/jquery.slimscroll.min.js') }}"
+      type="text/javascript"
+    ></script>
+    <!-- FastClick -->
+    <script src="{{ url_for('static', filename='plugins/fastclick/fastclick.min.js') }}"></script>
+    <!-- AdminLTE App -->
+    <script
+      src="{{ url_for('static', filename='dist/js/app.min.js') }}"
+      type="text/javascript"
+    ></script>
+
+    <!-- AdminLTE dashboard demo (This is only for demo purposes) -->
+    <script
+      src="{{ url_for('static', filename='dist/js/pages/dashboard.js') }}"
+      type="text/javascript"
+    ></script>
+
+    <!-- AdminLTE for demo purposes -->
+    <script
+      src="{{ url_for('static', filename='dist/js/demo.js') }}"
+      type="text/javascript"
+    ></script>
+
+    <script
+      src="{{ url_for('static', filename='plugins/datatables/jquery.dataTables.js') }}"
+      type="text/javascript"
+    ></script>
+    <link
+      rel="stylesheet"
+      href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css"
+    />
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
+    <script
+      src="{{ url_for('static', filename='plugins/jscam/JS.js') }}"
+      type="text/javascript"
+    ></script>
+    <script
+      src="{{ url_for('static', filename='plugins/jscam/qrcode.min.js') }}"
+      type="text/javascript"
+    ></script>
+    <script
+      src="{{ url_for('static', filename='plugins/bolt11/decoder.js') }}"
+      type="text/javascript"
+    ></script>
+    <script
+      src="{{ url_for('static', filename='plugins/bolt11/utils.js') }}"
+      type="text/javascript"
+    ></script>
+  </head>
+  <body class="skin-blue">
+    {% block body %}{% endblock %}
+  </body>
+</html>
diff --git a/LNbits/templates/deletewallet.html b/LNbits/templates/deletewallet.html
deleted file mode 100644
index 058ef540d..000000000
--- a/LNbits/templates/deletewallet.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8">
-    <title>LNBits Wallet</title>
-    <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
-    <!-- Bootstrap 3.3.2 -->
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}">  
-    <!-- FontAwesome 4.3.0 -->
-    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
-    <!-- Ionicons 2.0.0 -->
-    <link href="http://code.ionicframework.com/ionicons/2.0.0/css/ionicons.min.css" rel="stylesheet" type="text/css" />    
-
-    <!-- Theme style -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='dist/css/AdminLTE.min.css') }}">  
-    <!-- AdminLTE Skins. Choose a skin from the css/skins 
-         folder instead of downloading all of them to reduce the load. -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='dist/css/skins/_all-skins.min.css') }}">  
-    <!-- iCheck -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/iCheck/flat/blue.css') }}">  
-    <!-- Morris chart -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/morris/morris.css') }}">  
-    <!-- jvectormap -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.css') }}">  
-    <!-- Date Picker -->
-   
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/datepicker/datepicker3.css') }}">  
-    <!-- Daterange picker -->
-   
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/daterangepicker/daterangepicker-bs3.css') }}">  
-    <!-- bootstrap wysihtml5 - text editor -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">  
-
-    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
-    <!--[if lt IE 9]>
-        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-        <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
-    <![endif]-->
-
-    <style>
-    .small-box>.small-box-footer {
-    text-align: left;
-    padding-left: 10px;
-    }	
- 
-    </style>
-
-
-     
- 
-  </head>
-  <body class="skin-blue">
-    <div class="wrapper">
-      
-      <header class="main-header">
-        <!-- Logo -->
-        <a href="index2.html" class="logo"><b>LN</b>bits</a></a>
-        <!-- Header Navbar: style can be found in header.less -->
-        <nav class="navbar navbar-static-top" role="navigation">
-          <!-- Sidebar toggle button-->
-          <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
-            <span class="sr-only">Toggle navigation</span>
-          </a>
-          <div class="navbar-custom-menu">
-            <ul class="nav navbar-nav">
-              <!-- Messages: style can be found in dropdown.less-->
-              <li class="dropdown messages-menu">
-       
-
-       
-              </li>
-            </ul>
-          </div>
-        </nav>
-      </header>
-      <!-- Left side column. contains the logo and sidebar -->
-      <aside class="main-sidebar">
-        <!-- sidebar: style can be found in sidebar.less -->
-        <section class="sidebar">
-          <!-- Sidebar user panel -->
- 
-  
-          <!-- /.search form -->
-          <!-- sidebar menu: : style can be found in sidebar.less -->
-          <ul class="sidebar-menu">
-            <li class="header">MAIN NAVIGATION</li>
-            <li class="active treeview">
-              <a href="#">
-                 <i class="fa fa-th"></i> <span>Wallets</span> 
-                 <i class="fa fa-angle-left pull-right"></i>
-              </a>
-              <ul class="treeview-menu">
-                <li class="active"><a  href="wallet?wal={{thewal}}" >
-                  <i class="fa fa-circle-o"></i> {{ walnme }}</a></li>
- 
-              </ul>
-            </li>
-            
-            
-        </section>
-        <!-- /.sidebar -->
-      </aside>
-
-      <!-- Right side column. Contains the navbar and content of the page -->
-      <div class="content-wrapper">
-        <!-- Content Header (Page header) -->
-        <section class="content-header">
-          <h1>
-            Wallet
-            <small>Control panel</small>
-          </h1>
-          <ol class="breadcrumb">
-            <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
-            <li class="active">Wallets</li>
-             <li href="wallet?wal={{thewal}}" class="active">{{ walnme }}</li>
-          </ol>
-        </section>
-
-        <!-- Main content -->
-        <section class="content">
-            <h1>Wallet Deleted!
-
-          
-          </section>
-
-      </div><!-- /.content-wrapper -->
-      <footer class="main-footer">
-        <div class="pull-right hidden-xs">
-          <b>BETA</b>
-        </div>
-        <strong>Learn more about FOSSAW <a href="https://github.com/arcbtc/FOSSAW">https://github.com/arcbtc/FOSSAW</a>.</strong> 
-      </footer>
-    </div><!-- ./wrapper -->
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">  
-
-    <!-- jQuery 2.1.3 -->
-    <script src="{{ url_for('static', filename='plugins/jQuery/jQuery-2.1.3.min.js') }}"></script>
-    <!-- jQuery UI 1.11.2 -->
-    <script src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js" type="text/javascript"></script>
-    <!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
-    <script>
-      $.widget.bridge('uibutton', $.ui.button);
-    </script>
-    <!-- Bootstrap 3.3.2 JS -->
-    <script src="{{ url_for('static', filename='bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>    
-    <!-- Morris.js charts -->
-    <script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
-    <script src="{{ url_for('static', filename='plugins/morris/morris.min.js') }}" type="text/javascript"></script>
-    <!-- Sparkline -->
-    <script src="{{ url_for('static', filename='plugins/sparkline/jquery.sparkline.min.js') }}" type="text/javascript"></script>
-    <!-- jvectormap -->
-    <script src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.min.js') }}" type="text/javascript"></script>
-    <script src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-world-mill-en.js') }}" type="text/javascript"></script>
-    <!-- jQuery Knob Chart -->
-    <script src="{{ url_for('static', filename='plugins/knob/jquery.knob.js') }}" type="text/javascript"></script>
-    <!-- daterangepicker -->
-    <script src="{{ url_for('static', filename='plugins/daterangepicker/daterangepicker.js') }}" type="text/javascript"></script>
-    <!-- datepicker -->
-    <script src="{{ url_for('static', filename='plugins/datepicker/bootstrap-datepicker.js') }}" type="text/javascript"></script>
-    <!-- Bootstrap WYSIHTML5 -->
-    <script src="{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js') }}" type="text/javascript"></script>
-    <!-- iCheck -->
-    <script src="{{ url_for('static', filename='plugins/iCheck/icheck.min.js') }}" type="text/javascript"></script>
-    <!-- Slimscroll -->
-    <script src="{{ url_for('static', filename='plugins/slimScroll/jquery.slimscroll.min.js') }}" type="text/javascript"></script>
-    <!-- FastClick -->
-    <script src="{{ url_for('static', filename='plugins/fastclick/fastclick.min.js') }}"></script>
-    <!-- AdminLTE App -->
-    <script src="{{ url_for('static', filename='dist/js/app.min.js') }}" type="text/javascript"></script>
-
-    <!-- AdminLTE dashboard demo (This is only for demo purposes) -->
-    <script src="{{ url_for('static', filename='dist/js/pages/dashboard.js') }}" type="text/javascript"></script>
-
-    <!-- AdminLTE for demo purposes -->
-    <script src="{{ url_for('static', filename='dist/js/demo.js') }}" type="text/javascript"></script>
-
-   <script>
-
-   
-         
-             window.location.href = "wallet?usr={{ theid }}&wal={{ thewal }}"; //will redirect to your blog page (an ex: blog.html)
-     
-
-
-
-    </script>
-
-
-  
-   
-  </body>
-</html>
\ No newline at end of file
diff --git a/LNbits/templates/index.html b/LNbits/templates/index.html
index 5867cbfed..591e2b272 100644
--- a/LNbits/templates/index.html
+++ b/LNbits/templates/index.html
@@ -1,249 +1,163 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8">
-    <title>LNBits Wallet</title>
-    <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
-    <!-- Bootstrap 3.3.2 -->
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}">  
-    <!-- FontAwesome 4.3.0 -->
-    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
-    <!-- Ionicons 2.0.0 -->
-    <link href="http://code.ionicframework.com/ionicons/2.0.0/css/ionicons.min.css" rel="stylesheet" type="text/css" />    
+<!-- @format -->
 
-    <!-- Theme style -->
+{% extends "base.html" %} {% block body %}
+<div class="wrapper">
+  <header class="main-header">
+    <!-- Logo -->
+    <a href="index.html" class="logo"><b>LN</b>bits</a>
+    <!-- Header Navbar: style can be found in header.less -->
+    <nav class="navbar navbar-static-top" role="navigation">
+      <!-- Sidebar toggle button-->
+      <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
+        <span class="sr-only">Toggle navigation</span>
+      </a>
+      <div class="navbar-custom-menu">
+        <ul class="nav navbar-nav">
+          <!-- Messages: style can be found in dropdown.less-->
+          <li class="dropdown messages-menu"></li>
+        </ul>
+      </div>
+    </nav>
+  </header>
+  <!-- Left side column. contains the logo and sidebar -->
+  <aside class="main-sidebar">
+    <!-- sidebar: style can be found in sidebar.less -->
+    <section class="sidebar">
+      <!-- Sidebar user panel -->
 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='dist/css/AdminLTE.min.css') }}">  
-    <!-- AdminLTE Skins. Choose a skin from the css/skins 
-         folder instead of downloading all of them to reduce the load. -->
+      <!-- /.search form -->
+      <!-- sidebar menu: : style can be found in sidebar.less -->
+      <ul class="sidebar-menu">
+        <li class="header">MAIN NAVIGATION</li>
 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='dist/css/skins/_all-skins.min.css') }}">  
-    <!-- iCheck -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/iCheck/flat/blue.css') }}">  
-    <!-- Morris chart -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/morris/morris.css') }}">  
-    <!-- jvectormap -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.css') }}">  
-    <!-- Date Picker -->
-   
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/datepicker/datepicker3.css') }}">  
-    <!-- Daterange picker -->
-   
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/daterangepicker/daterangepicker-bs3.css') }}">  
-    <!-- bootstrap wysihtml5 - text editor -->
+        <li>
+          <a href="../documentation/index.html"
+            ><i class="fa fa-book"></i> Home</a
+          >
+        </li>
+      </ul>
+    </section>
+    <!-- /.sidebar -->
+  </aside>
 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">  
+  <!-- Right side column. Contains the navbar and content of the page -->
+  <div class="content-wrapper">
+    <!-- Content Header (Page header) -->
+    <section class="content-header">
+      <ol class="breadcrumb">
+        <li>
+          <a href="/index.html"><i class="fa fa-dashboard"></i> Home</a>
+        </li>
+      </ol>
+      <br /><br />
+      <div class="alert alert-danger alert-dismissable">
+        <h4>
+          Warning - Wallet is still in BETA and very, very #reckless, please be
+          careful with your funds!
+        </h4>
+      </div>
+    </section>
 
-    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
-    <!--[if lt IE 9]>
-        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-        <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
-    <![endif]-->
-
-    <style>
-    .small-box>.small-box-footer {
-    text-align: left;
-    padding-left: 10px;
-    } 
- 
-    </style>
- 
-  </head>
-  <body class="skin-blue">
-    <div class="wrapper">
-      
-      <header class="main-header">
-        <!-- Logo -->
-        <a href="index.html" class="logo"><b>LN</b>bits</a>
-        <!-- Header Navbar: style can be found in header.less -->
-        <nav class="navbar navbar-static-top" role="navigation">
-          <!-- Sidebar toggle button-->
-          <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
-            <span class="sr-only">Toggle navigation</span>
-          </a>
-          <div class="navbar-custom-menu">
-            <ul class="nav navbar-nav">
-              <!-- Messages: style can be found in dropdown.less-->
-              <li class="dropdown messages-menu">
-       
-
-           
-
-       
-              </li>
-            </ul>
-          </div>
-        </nav>
-      </header>
-      <!-- Left side column. contains the logo and sidebar -->
-      <aside class="main-sidebar">
-        <!-- sidebar: style can be found in sidebar.less -->
-        <section class="sidebar">
-          <!-- Sidebar user panel -->
- 
-  
-          <!-- /.search form -->
-          <!-- sidebar menu: : style can be found in sidebar.less -->
-          <ul class="sidebar-menu">
-            <li class="header">MAIN NAVIGATION</li>
-           
-             <li><a href="../documentation/index.html"><i class="fa fa-book"></i> Home</a></li>
- 
-              </ul>
-            
-            
-        </section>
-        <!-- /.sidebar -->
-      </aside>
-
-     <!-- Right side column. Contains the navbar and content of the page -->
-      <div class="content-wrapper">
-        <!-- Content Header (Page header) -->
-        <section class="content-header">
-
-
-          
-          <ol class="breadcrumb">
-            <li><a href="/index.html"><i class="fa fa-dashboard"></i> Home</a></li>
-          </ol><br/><br/>
-                              <div class="alert alert-danger alert-dismissable">
-
-            <h4>Warning - Wallet is still in BETA and very, very #reckless, please be careful with your funds!</h4>
-           
-          </div>
-        </section>
-
-        <!-- Main content -->
- <section class="content">
-
-           <div class="row">
+    <!-- Main content -->
+    <section class="content">
+      <div class="row">
         <div class="col-md-4">
-              <!-- Default box -->
-              <div class="box">
-                <div class="box-header">
+          <!-- Default box -->
+          <div class="box">
+            <div class="box-header">
               <h1>
-            <a href="index.html" class="logo"><b>LN</b>bits</a>
-            <small>free and open-source lightning wallet</small>
-          </h1>
-                  <p>
-                    LNbits is a simple, free and open-source lightning-network wallet for bits and bobs. You can run it on your own server, or use this one.
-<br/><br/>
-The wallet can be used in a variety of ways, an instant wallet for LN demonstrations, a fallback wallet for the LNURL scheme, an accounts system to mitigate the risk of exposing applications to your full balance. 
-<br/><br/>
-The wallet can run on top of LND, lntxbot, paywall, opennode   
-<br/><br/>
-Please note that although one of the aims of this wallet is to mitigate exposure of all your funds, it’s still very BETA and may in fact do the opposite!
-<br/> <a href="https://github.com/arcbtc/FOSSAW">https://github.com/arcbtc/lnbits</a>                </p>
-                </div><!-- /.box-body -->
-
-              </div><!-- /.box -->
-
-</div>
-
-
-
-        <div class="col-md-4">
-              <!-- Default box -->
-              <div class="box">
-                <div class="box-header">
-              <h1>
-      
-            <small>Make a wallet</small>
-          </h1>
-                                 <div class="form-group">
-                    <input type="text" class="form-control" id="walname" placeholder="Name your LNBits wallet" required>   
-                </div>
-                <button type="button" class="btn btn-primary" onclick="newwallet()">Submit</button>
-                </div><!-- /.box-body -->
-
-              </div><!-- /.box -->
-
-</div>
-
-
-
-</div>
-
-
-
-
-      
-
-        </section><!-- /.content -->
-
-      </div><!-- /.content-wrapper -->
-
-      <footer class="main-footer">
-        <div class="pull-right hidden-xs">
-          <b>BETA</b>
+                <a href="index.html" class="logo"><b>LN</b>bits</a>
+                <small>free and open-source lightning wallet</small>
+              </h1>
+              <p>
+                LNbits is a simple, free and open-source lightning-network
+                wallet for bits and bobs. You can run it on your own server, or
+                use this one.
+                <br /><br />
+                The wallet can be used in a variety of ways, an instant wallet
+                for LN demonstrations, a fallback wallet for the LNURL scheme,
+                an accounts system to mitigate the risk of exposing applications
+                to your full balance.
+                <br /><br />
+                The wallet can run on top of LND, lntxbot, paywall, opennode
+                <br /><br />
+                Please note that although one of the aims of this wallet is to
+                mitigate exposure of all your funds, it’s still very BETA and
+                may in fact do the opposite!
+                <br />
+                <a href="https://github.com/arcbtc/FOSSAW"
+                  >https://github.com/arcbtc/lnbits</a
+                >
+              </p>
+            </div>
+            <!-- /.box-body -->
+          </div>
+          <!-- /.box -->
         </div>
-        <strong>Learn more about LNbits <a href="https://github.com/arcbtc/FOSSAW">https://github.com/arcbtc/lnbits</a></strong> 
-      </footer>
-    </div><!-- ./wrapper -->
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">  
 
-    <!-- jQuery 2.1.3 -->
-    <script src="{{ url_for('static', filename='plugins/jQuery/jQuery-2.1.3.min.js') }}"></script>
-    <!-- jQuery UI 1.11.2 -->
-    <script src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js" type="text/javascript"></script>
-    <!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
-    <script>
-      $.widget.bridge('uibutton', $.ui.button);
-    </script>
-    <!-- Bootstrap 3.3.2 JS -->
-    <script src="{{ url_for('static', filename='bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>    
-    <!-- Morris.js charts -->
-    <script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
-    <script src="{{ url_for('static', filename='plugins/morris/morris.min.js') }}" type="text/javascript"></script>
-    <!-- Sparkline -->
-    <script src="{{ url_for('static', filename='plugins/sparkline/jquery.sparkline.min.js') }}" type="text/javascript"></script>
-    <!-- jvectormap -->
-    <script src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.min.js') }}" type="text/javascript"></script>
-    <script src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-world-mill-en.js') }}" type="text/javascript"></script>
-    <!-- jQuery Knob Chart -->
-    <script src="{{ url_for('static', filename='plugins/knob/jquery.knob.js') }}" type="text/javascript"></script>
-    <!-- daterangepicker -->
-    <script src="{{ url_for('static', filename='plugins/daterangepicker/daterangepicker.js') }}" type="text/javascript"></script>
-    <!-- datepicker -->
-    <script src="{{ url_for('static', filename='plugins/datepicker/bootstrap-datepicker.js') }}" type="text/javascript"></script>
-    <!-- Bootstrap WYSIHTML5 -->
-    <script src="{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js') }}" type="text/javascript"></script>
-    <!-- iCheck -->
-    <script src="{{ url_for('static', filename='plugins/iCheck/icheck.min.js') }}" type="text/javascript"></script>
-    <!-- Slimscroll -->
-    <script src="{{ url_for('static', filename='plugins/slimScroll/jquery.slimscroll.min.js') }}" type="text/javascript"></script>
-    <!-- FastClick -->
-    <script src="{{ url_for('static', filename='plugins/fastclick/fastclick.min.js') }}"></script>
-    <!-- AdminLTE App -->
-    <script src="{{ url_for('static', filename='dist/js/app.min.js') }}" type="text/javascript"></script>
+        <div class="col-md-4">
+          <!-- Default box -->
+          <div class="box">
+            <div class="box-header">
+              <h1>
+                <small>Make a wallet</small>
+              </h1>
+              <div class="form-group">
+                <input
+                  type="text"
+                  class="form-control"
+                  id="walname"
+                  placeholder="Name your LNBits wallet"
+                  required
+                />
+              </div>
+              <button
+                type="button"
+                class="btn btn-primary"
+                onclick="newwallet()"
+              >
+                Submit
+              </button>
+            </div>
+            <!-- /.box-body -->
+          </div>
+          <!-- /.box -->
+        </div>
+      </div>
+    </section>
+    <!-- /.content -->
+  </div>
+  <!-- /.content-wrapper -->
 
-    <!-- AdminLTE dashboard demo (This is only for demo purposes) -->
-    <script src="{{ url_for('static', filename='dist/js/pages/dashboard.js') }}" type="text/javascript"></script>
+  <footer class="main-footer">
+    <div class="pull-right hidden-xs">
+      <b>BETA</b>
+    </div>
+    <strong
+      >Learn more about LNbits
+      <a href="https://github.com/arcbtc/FOSSAW"
+        >https://github.com/arcbtc/lnbits</a
+      ></strong
+    >
+  </footer>
+</div>
 
-    <!-- AdminLTE for demo purposes -->
-    <script src="{{ url_for('static', filename='dist/js/demo.js') }}" type="text/javascript"></script>
-
-    <script>
-      function makeid(length) {
-   var result           = '';
-   var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
-   var charactersLength = characters.length;
-   for ( var i = 0; i < length; i++ ) {
-      result += characters.charAt(Math.floor(Math.random() * charactersLength));
-   }
-   return result;
+<script>
+  function makeid(length) {
+    var result = ''
+    var characters =
+      'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
+    var charactersLength = characters.length
+    for (var i = 0; i < length; i++) {
+      result += characters.charAt(Math.floor(Math.random() * charactersLength))
+    }
+    return result
   }
 
-    function newwallet() {
-       walname = document.getElementById("walname").value;
-       window.location.href = "wallet?usr=" + makeid(40) + "&wal=" + makeid(40) + "&nme=" + walname;
-    }
-
-    </script>
-   
-  </body>
-</html>
\ No newline at end of file
+  function newwallet() {
+    walname = document.getElementById('walname').value
+    window.location.href =
+      'wallet?usr=' + makeid(40) + '&wal=' + makeid(40) + '&nme=' + walname
+  }
+</script>
+{% endblock %}
diff --git a/LNbits/templates/lnurlwallet.html b/LNbits/templates/lnurlwallet.html
deleted file mode 100644
index 194f69644..000000000
--- a/LNbits/templates/lnurlwallet.html
+++ /dev/null
@@ -1,701 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8">
-    <title>LNBits Wallet</title>
-    <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
-    <!-- Bootstrap 3.3.2 -->
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}">  
-    <!-- FontAwesome 4.3.0 -->
-    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
-    <!-- Ionicons 2.0.0 -->
-    <link href="http://code.ionicframework.com/ionicons/2.0.0/css/ionicons.min.css" rel="stylesheet" type="text/css" />    
-
-    <!-- Theme style -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='dist/css/AdminLTE.min.css') }}">  
-    <!-- AdminLTE Skins. Choose a skin from the css/skins 
-         folder instead of downloading all of them to reduce the load. -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='dist/css/skins/_all-skins.min.css') }}">  
-    <!-- iCheck -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/iCheck/flat/blue.css') }}">  
-    <!-- Morris chart -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/morris/morris.css') }}">  
-    <!-- jvectormap -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.css') }}">  
-    <!-- Date Picker -->
-   
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/datepicker/datepicker3.css') }}">  
-    <!-- Daterange picker -->
-   
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/daterangepicker/daterangepicker-bs3.css') }}">  
-    <!-- bootstrap wysihtml5 - text editor -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">  
-
-    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
-    <!--[if lt IE 9]>
-        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-        <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
-    <![endif]-->
-
-      <style>
-    .small-box>.small-box-footer {
-    text-align: left;
-    padding-left: 10px;
-    } 
- 
-    </style>
-
-
-      <style>
-    #loadingMessage {
-      text-align: center;
-      padding: 40px;
-      background-color: #eee;
-    }
-
-    #canvas {
-      width: 100%;
-    }
-
-    #output {
-      margin-top: 20px;
-      background: #eee;
-      padding: 10px;
-      padding-bottom: 0;
-    }
-
-    #output div {
-      padding-bottom: 10px;
-      word-wrap: break-word;
-    }
-
-    #noQRFound {
-      text-align: center;
-    }
-  </style>
-
-
-
-
-
-     
- 
-  </head>
-  <body class="skin-blue">
-    <div class="wrapper">
-      
-      <header class="main-header">
-        <!-- Logo -->
-        <a href="/" class="logo"><b>LN</b>bits</a></a>
-        <!-- Header Navbar: style can be found in header.less -->
-        <nav class="navbar navbar-static-top" role="navigation">
-          <!-- Sidebar toggle button-->
-          <a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
-            <span class="sr-only">Toggle navigation</span>
-          </a>
-          <div class="navbar-custom-menu">
-            <ul class="nav navbar-nav">
-              <!-- Messages: style can be found in dropdown.less-->
-              <li class="dropdown messages-menu">
-       
-
-       
-              </li>
-            </ul>
-          </div>
-        </nav>
-      </header>
-      <!-- Left side column. contains the logo and sidebar -->
-      <aside class="main-sidebar">
-        <!-- sidebar: style can be found in sidebar.less -->
-        <section class="sidebar">
-          <!-- Sidebar user panel -->
- 
-  
-          <!-- /.search form -->
-          <!-- sidebar menu: : style can be found in sidebar.less -->
-          <ul class="sidebar-menu">
-            <li class="header">MAIN NAVIGATIONs</li>
-            <li class="active treeview">
-              <a href="#">
-                 <i class="fa fa-bitcoin"></i> <span>Wallets</span> 
-                 <i class="fa fa-angle-left pull-right"></i>
-              </a>
-              <ul class="treeview-menu">
-
-               
-              {% if len > 1 %}
-              {%for i in range(0, len)%} 
-               <li><a  href="wallet?wal={{ thearr[i][0] }}&usr={{ thearr[i][4] }}" ><i class="fa fa-bolt"></i> {{ thearr[i][3] }}</a></li>
-              {%endfor%} 
-              {% else %}
-               <li><a  href="wallet?wal={{ thewal }}&usr={{ theid }}" ><i class="fa fa-bolt"></i> {{ walnme }}</a></li> 
-              {% endif %}
-  
-                <li ><a   onclick="sidebarmake()">Add a wallet +</a></li>
-                <div id="sidebarmake"></div>
-
-              </ul>
-            </li>
-    
-                  <li class="treeview">
-              <a href="#">
-                <i class="fa fa-th"></i> <span>Extensions</span> <small class="label pull-right bg-green">coming soon</small>
-              </a>
-            </li>
-             </ul>
-            
-            
-        </section>
-        <!-- /.sidebar -->
-      </aside>
-
-      <!-- Right side column. Contains the navbar and content of the page -->
-      <div class="content-wrapper">
-        <!-- Content Header (Page header) -->
-        <section class="content-header">
-          <h1>
-            Wallet
-            <small>Control panel <div id="wonga"></div></small>
-          </h1>
-          <ol class="breadcrumb">
-            <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
-            <li class="active">Wallets</li>
-             <li href="wallet?wal={{thewal}}" class="active">{{ walnme }}</li>
-          </ol>
-        </section>
-
-        <!-- Main content -->
-        <section class="content">
-          <!-- Small boxes (Stat box) -->
-          <div class="row">
-            <div class="col-md-6">
-              <!-- small box -->
-              <a href="#" class="small-box-footer">
-              <div class="small-box bg-aqua">
-                <div class="inner">
-                  <h3><b>{{ walbal }} sats</b></h3>
-                  <h3>{{ walnme }}</h3>
-                </div>
-                <div class="icon">
-                  <i class="ion ion-flash"></i>
-                </div>
-                </a>
-              </div>
-            </div><!-- ./col -->
- 
- 
-
-
-
-
-          </div><!-- /.row -->
-          
-           <div class="row">
-        <div class="col-sm-3"> <button onclick="sendfundsinput()" class="btn btn-block btn-primary btn-lg">Send</button></div>
-        <div class="col-sm-3"> <button onclick="receive()" class="btn btn-block btn-primary btn-lg">Receive</button></div>
-      </div>
-
-     
-
-      <div id="receive"></div>
-      <div id="sendfunds"></div>
-
-        
-
-      
-      <div class="row">
-      <div class="col-md-6">
-              <div class="box">
-                <div class="box-header">
-                  <h3 class="box-title">Transactions <b id="demo"></b></h3>
-           
-                </div><!-- /.box-header -->
-                <div class="box-body no-padding">
-                  <table id="pagnation" class="table table-bordered table-striped">
-
-        <tr>
-        <th>Memo</th>
-        <th style='width: 20%'>date</th>
-        <th style='width: 20%'>amount</th>
-        </tr>
-                    <tbody id="transactions">
-
-                   
-
-                  </tbody></table>
-                </div><!-- /.box-body -->
-              </div><!-- /.box -->
-            </div>
-          </div>
-
-          <div id="satschart"></div>
-
-           
-
-         <div class="row">
-        <div class="col-md-6">
-              <div class="box box-solid">
-                <div class="box-header with-border">
-                 
-                </div><!-- /.box-header -->
-                <div class="box-body">
-                  <div class="box-group" id="accordion">
-                    <!-- we are adding the .panel class so bootstrap.js collapse plugin detects it -->
-                    <div class="panel box box-primary">
-                      <div class="box-header with-border">
-                        <h4 class="box-title">
-                          <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree" class="collapsed" aria-expanded="false">
-                           Wallet "{{ walnme }}" API info 
-                          </a>
-                        </h4>
-                      </div>
-                      <div id="collapseThree" class="panel-collapse collapse" aria-expanded="false">
-                        <div class="box-body"  style='word-wrap: break-word;'>
-                          <b>Admin key: </b><i>{{ adminkey }}</i><br/>
-                          <b>Invoice/Read key: </b><i>{{ inkey }}</i><br/>
-                          Generate an invoice:<br/><code>POST /v1/invoices</code><br/>Header <code>{"Grpc-Metadata-macaroon": "<i>{{ inkey }}</i>"}</code><br/>
-                          Body <code>{"value": "200","memo": "beer"} </code><br/>
-                           Returns <code>{"pay_req": string,"pay_id": string} </code><br/>
-                           *payment will not register in the wallet until the "check invoice" endpoint is used<br/><br/>
-
-                          Check invoice:<br/>
-                           Check an invoice:<br/><code>GET /v1/invoice/*payment_hash*</code><br/>Header <code>{"Grpc-Metadata-macaroon": "<i>{{ inkey }}</i>"}</code><br/>
-                      
-                           Returns <code>{"PAID": "TRUE"}/{"PAID": "FALSE"}  </code><br/>
-                           *if using LNTXBOT return will hang until paid<br/><br/>
-                        </div>
-                      </div>
-                    </div>
-
-
-                    <div class="panel box box-danger">
-                      <div class="box-header with-border">
-                        <h4 class="box-title">
-                          <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" class="collapsed" aria-expanded="false">
-                            Delete wallet
-                          </a>
-                        </h4>
-                      </div>
-                      <div id="collapseTwo" class="panel-collapse collapse" aria-expanded="false">
-                        <div class="box-body">
-
-                        This whole wallet will be deleted, the funds will be UNRECOVERABLE <br/><br/><button class="btn btn-danger" onclick="deletewallet()">Delete wallet</button>
-                        </div>
-                      </div>
-
-                    </div>
-
-                  </div>
-                </div><!-- /.box-body -->
-              </div><!-- /.box -->
-            </div>
-          </div>
-
-        </section><!-- /.content -->
-
-
-       
-
-
-      </div><!-- /.content-wrapper -->
-      <footer class="main-footer">
-        <div class="pull-right hidden-xs">
-          <b>BETA</b>
-        </div>
-        <strong>Learn more about LNbits <a href="https://github.com/arcbtc/FOSSAW">https://github.com/arcbtc/lnbits</a>.</strong> 
-      </footer>
-    </div><!-- ./wrapper -->
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">  
-
-    <!-- jQuery 2.1.3 -->
-    <script src="{{ url_for('static', filename='plugins/jQuery/jQuery-2.1.3.min.js') }}"></script>
-    <!-- jQuery UI 1.11.2 -->
-    <script src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js" type="text/javascript"></script>
-    <!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
-    <script>
-      $.widget.bridge('uibutton', $.ui.button);
-    </script>
-    <!-- Bootstrap 3.3.2 JS -->
-    <script src="{{ url_for('static', filename='bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>    
-    <!-- Morris.js charts -->
-    <script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
-    <script src="{{ url_for('static', filename='plugins/morris/morris.min.js') }}" type="text/javascript"></script>
-    <!-- Sparkline -->
-    <script src="{{ url_for('static', filename='plugins/sparkline/jquery.sparkline.min.js') }}" type="text/javascript"></script>
-    <!-- jvectormap -->
-    <script src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.min.js') }}" type="text/javascript"></script>
-    <script src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-world-mill-en.js') }}" type="text/javascript"></script>
-    <!-- jQuery Knob Chart -->
-    <script src="{{ url_for('static', filename='plugins/knob/jquery.knob.js') }}" type="text/javascript"></script>
-    <!-- daterangepicker -->
-    <script src="{{ url_for('static', filename='plugins/daterangepicker/daterangepicker.js') }}" type="text/javascript"></script>
-    <!-- datepicker -->
-    <script src="{{ url_for('static', filename='plugins/datepicker/bootstrap-datepicker.js') }}" type="text/javascript"></script>
-    <!-- Bootstrap WYSIHTML5 -->
-    <script src="{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js') }}" type="text/javascript"></script>
-    <!-- iCheck -->
-    <script src="{{ url_for('static', filename='plugins/iCheck/icheck.min.js') }}" type="text/javascript"></script>
-    <!-- Slimscroll -->
-    <script src="{{ url_for('static', filename='plugins/slimScroll/jquery.slimscroll.min.js') }}" type="text/javascript"></script>
-    <!-- FastClick -->
-    <script src="{{ url_for('static', filename='plugins/fastclick/fastclick.min.js') }}"></script>
-    <!-- AdminLTE App -->
-    <script src="{{ url_for('static', filename='dist/js/app.min.js') }}" type="text/javascript"></script>
-
-    <!-- AdminLTE dashboard demo (This is only for demo purposes) -->
-    <script src="{{ url_for('static', filename='dist/js/pages/dashboard.js') }}" type="text/javascript"></script>
-
-    <!-- AdminLTE for demo purposes -->
-    <script src="{{ url_for('static', filename='dist/js/demo.js') }}" type="text/javascript"></script>
-
-
-        <script src="{{ url_for('static', filename='plugins/datatables/jquery.dataTables.js') }}" type="text/javascript"></script>
-    <script src="{{ url_for('static', filename='plugins/datatables/dataTables.bootstrap.js') }}" type="text/javascript"></script>
-    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
-<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
-<script src="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
-<script src="{{ url_for('static', filename='plugins/jscam/JS.js') }}" type="text/javascript"></script>
-
-       <script src="{{ url_for('static', filename='plugins/jscam/qrcode.min.js') }}" type="text/javascript"></script>    
-
-       <script src="{{ url_for('static', filename='plugins/bolt11/decoder.js') }}" type="text/javascript"></script>    
-
-       <script src="{{ url_for('static', filename='plugins/bolt11/utils.js') }}" type="text/javascript"></script>   
-
-
-<script>
-
-
-  window.location.href = "wallet?wal=" + "{{thewal}}" + "&usr=" + "{{theid}}";
-
-
-  var inmacaroon = "{{ inkey }}";
-var adminmacaroon = "{{ inkey }}";
-var thehash = "";
-var theinvoice = "";
-var outamount = "";
-var outmemo = "";
-
-
-//API CALLS
-
-function postAjax(url, data, thekey, success) {
-  var params = typeof data == 'string' ? data : Object.keys(data).map(
-  function(k){ return encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) }).join('&');
-  var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
-  xhr.open('POST', url);
-  xhr.onreadystatechange = function() {
-  if (xhr.readyState>3 && xhr.status==200) { success(xhr.responseText); }
-  };
-  xhr.setRequestHeader('Grpc-Metadata-macaroon', thekey);
-  xhr.setRequestHeader('Content-Type', 'application/json');
-  xhr.send(params);
-  return xhr;
-}
-
-
-
-function getAjax(url, thekey,success) {
-  var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
-  xhr.open('GET', url, true);
-  xhr.onreadystatechange = function() {
-  if (xhr.readyState>3 && xhr.status==200) { success(xhr.responseText); }
-  };
-  xhr.setRequestHeader('Grpc-Metadata-macaroon', thekey);
-  xhr.setRequestHeader('Content-Type', 'application/json');
-  xhr.send();
-  return xhr;
-}
-
-function sendfundsinput(){
-  document.getElementById("sendfunds").innerHTML = "<br/><br/><div class='row'><div class='col-md-4'>" +
-           "<textarea id='pasteinvoice' class='form-control' rows='3' placeholder='Paste an invoice'></textarea></div></div>" +
-           "<br/><div class='row'><div class='col-md-4'><button type='submit' onclick='sendfundspaste()' class='btn btn-primary'>" +
-           "Submit</button><button style='margin-left:20px;' type='submit' class='btn btn-primary' onclick='scanQRsend()'>" +
-           "Use camera to scan an invoice</button></div></div><br/><br/>";
-  document.getElementById("receive").innerHTML = "";
-}
-
-function sendfundspaste(){
-  invoice = document.getElementById("pasteinvoice").value;
-  theinvoice =  decode(invoice);
-  outmemo = theinvoice.data.tags[1].value;
-       outamount = Number(theinvoice.human_readable_part.amount) /1000;
-        if (outamount > Number("{{ walbal }}")){
-          document.getElementById("sendfunds").innerHTML = "<div class='row'><div class='col-md-6'>"+
-                    "<h3><b style='color:red;'>Not enough funds!</b></h3>" +
-                    "<button style='margin-left:20px;' type='submit' class='btn btn-primary' onclick='cancelsend()'>Continue</button>"+
-                    "</br/></br/></div></div>";
-        }
-        else{
-  document.getElementById("sendfunds").innerHTML = "<div class='row'><div class='col-md-6'>"+
-                    "<h3><b>Invoice details</b></br/>Amount: " + outamount + "<br/>Memo: " + outmemo + "</h3>" +
-                    "<h4 style='word-wrap: break-word;'>" + invoice + "</h4>"+
-                    "<button type='submit' class='btn btn-primary' onclick='sendfunds(" + JSON.stringify(invoice) + ")'>Send funds</button>"+
-                    "<button style='margin-left:20px;' type='submit' class='btn btn-primary' onclick='cancelsend()'>Cancel payment</button>"+
-                    "</br/></br/></div></div>";
-                  }
-}
-
-
-
-function receive() {
-  document.getElementById("receive").innerHTML = "<br/><div class='row'><div id='QRCODE'>" +
-          "<div class='col-sm-2'><input type='number' class='form-control' id='amount' placeholder='Amount' max='1000000' required></div>" +   
-          "<div class='col-sm-2'><input type='text' class='form-control' id='memo' placeholder='Memo' required></div>" +  
-          "<div class='col-sm-2'><input type='button' id='getinvoice' onclick='received()' class='btn btn-primary' value='Send Ajax request' /></div>" +
-          "</div></div><br/>";
-  document.getElementById("sendfunds").innerHTML = "";
-}
-
-function received(){
-  memo = document.getElementById("memo").value;
-  amount = document.getElementById("amount").value;
-  postAjax('/v1/invoices', JSON.stringify({'value' : amount, 'memo' : memo}), '{{ inkey }}', function(data){ 
-    theinvoice = JSON.parse(data).pay_req; 
-    thehash = JSON.parse(data).payment_hash; 
-    document.getElementById("QRCODE").innerHTML = "<div class='col-md-4'><div class='box'><div class='box-header'>" +
-              "<center><a href='lightning:" + theinvoice + "'><div id='qrcode'></div></a>" +
-              "<p style='word-wrap: break-word;'>" + theinvoice + "</p></div></div></div></center>";
-
-    new QRCode(document.getElementById("qrcode"), {
-      text: theinvoice,
-      width: 300,
-      height: 300,
-      colorDark : "#000000",
-      colorLight : "#ffffff",
-      correctLevel : QRCode.CorrectLevel.M
-    });
-    getAjax('/v1/invoice/'+ thehash,  '{{ inkey }}', function(datab){ 
-      console.log(JSON.parse(datab).PAID);
-      if (JSON.parse(datab).PAID == 'TRUE'){
-        window.location.href = "wallet?wal=" + "{{thewal}}" + "&usr=" + "{{theid}}";
-      }
-
-    });
-  });
-}
-
-
-
-function cancelsend(){
-  window.location.href = "wallet?wal=" + "{{thewal}}" + "&usr=" + "{{theid}}";
-}
-
-function sendfunds(invoice){
-  var url = '/v1/channels/transactions';
-  postAjax(url, JSON.stringify({'payment_request' : invoice}), '{{ adminkey }}', function(data){ 
-    thehash = JSON.parse(data).payment_hash; 
-    console.log(JSON.parse(data));
-      if (JSON.parse(data).PAID == 'TRUE'){
-        window.location.href = "wallet?wal=" + "{{thewal}}" + "&usr=" + "{{theid}}";
-      }
-  });
-}
-
-function scanQRsend(){
-  document.getElementById("sendfunds").innerHTML = "<br/><br/><div class='row'><div class='col-md-4'>" +
-            "<div id='loadingMessage'>🎥 Unable to access video stream (please make sure you have a webcam enabled)</div>" +
-            "<canvas id='canvas' hidden></canvas><div id='output' hidden><div id='outputMessage'></div>" +
-            "<br/><span id='outputData'></span></div></div></div><button type='submit' class='btn btn-primary' onclick='cancelsend()'>Cancel</button><br/><br/>";
-  var video = document.createElement("video");
-  var canvasElement = document.getElementById("canvas");
-  var canvas = canvasElement.getContext("2d");
-  var loadingMessage = document.getElementById("loadingMessage");
-  var outputContainer = document.getElementById("output");
-  var outputMessage = document.getElementById("outputMessage");
-  var outputData = document.getElementById("outputData");
-  function drawLine(begin, end, color) {
-    canvas.beginPath();
-    canvas.moveTo(begin.x, begin.y);
-    canvas.lineTo(end.x, end.y);
-    canvas.lineWidth = 4;
-    canvas.strokeStyle = color;
-    canvas.stroke();
-  }
-  // Use facingMode: environment to attemt to get the front camera on phones
-  navigator.mediaDevices.getUserMedia({ video: { facingMode: "environment" } }).then(function(stream) {
-    video.srcObject = stream;
-    video.setAttribute("playsinline", true); // required to tell iOS safari we don't want fullscreen
-    video.play();
-    requestAnimationFrame(tick);
-  });
-  function tick() {
-    loadingMessage.innerText = "⌛ Loading video..."
-    if (video.readyState === video.HAVE_ENOUGH_DATA) {
-      loadingMessage.hidden = true;
-      canvasElement.hidden = false;
-      outputContainer.hidden = false;
-      canvasElement.height = video.videoHeight;
-      canvasElement.width = video.videoWidth;
-      canvas.drawImage(video, 0, 0, canvasElement.width, canvasElement.height);
-      var imageData = canvas.getImageData(0, 0, canvasElement.width, canvasElement.height);
-      var code = jsQR(imageData.data, imageData.width, imageData.height, {
-        inversionAttempts: "dontInvert",
-      });
-      if (code) {
-        drawLine(code.location.topLeftCorner, code.location.topRightCorner, "#FF3B58");
-        drawLine(code.location.topRightCorner, code.location.bottomRightCorner, "#FF3B58");
-        drawLine(code.location.bottomRightCorner, code.location.bottomLeftCorner, "#FF3B58");
-        drawLine(code.location.bottomLeftCorner, code.location.topLeftCorner, "#FF3B58");
-        outputMessage.hidden = true;
-        outputData.parentElement.hidden = false;
-        outputData.innerText = JSON.stringify(code.data);
-        theinvoice =  decode(code.data);
-        outmemo = theinvoice.data.tags[1].value;
-        outamount = Number(theinvoice.human_readable_part.amount) /1000;
-        if (outamount > Number("{{ walbal }}")){
-          document.getElementById("sendfunds").innerHTML = "<div class='row'><div class='col-md-6'>"+
-                    "<h3><b style='color:red;'>Not enough funds!</b></h3>" +
-                    "<button style='margin-left:20px;' type='submit' class='btn btn-primary' onclick='cancelsend()'>Continue</button>"+
-                    "</br/></br/></div></div>";
-        }
-        else{
-
-
-        document.getElementById("sendfunds").innerHTML = "<div class='row'><div class='col-md-6'>"+
-                    "<h3><b>Invoice details</b></br/>Amount: " + outamount + "<br/>Memo: " + outmemo + "</h3>" +
-                    "<h4 style='word-wrap: break-word;'>" + JSON.stringify(code.data) + "</h4>"+
-                    "<button type='submit' class='btn btn-primary' onclick='sendfunds(" + JSON.stringify(code.data) + ")'>Send funds</button>"+
-                    "<button style='margin-left:20px;' type='submit' class='btn btn-primary' onclick='cancelsend()'>Cancel payment</button>"+
-                    "</br/></br/></div></div>";
-                      }
-      } 
-      else {
-        outputMessage.hidden = false;
-        outputData.parentElement.hidden = true;
-      }
-    }
-    requestAnimationFrame(tick);
-  }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-function deletewallet(){
-  var urll = "deletewallet?wal={{ thewal }}&usr={{ theid }}";                     
-  window.location.href = urll;
-}
-
-
-function sidebarmake(){
-  document.getElementById("sidebarmake").innerHTML = "<li><div class='form-group'>"+
-    "<input  style='width:70%;float:left;' type='text' class='form-control' id='walname' placeholder='Name wallet' required>" +   
-    "<button style='width:30%;float:left;' type='button' class='btn btn-primary' onclick='newwallet()'>Submit</button>" +
-    "</div></li><br/><br/>";
-}
-
-function makeid(length) {
-  var result           = '';
-  var characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
-  var charactersLength = characters.length;
-  for ( var i = 0; i < length; i++ ) {
-    result += characters.charAt(Math.floor(Math.random() * charactersLength));
-  }
-  return result;
-}
-
-function newwallet() {
-  walname = document.getElementById("walname").value;
-  window.location.href = "wallet?usr=" + "{{ theid }}" + "&wal=" + makeid(40) + "&nme=" + walname;
-}
-
-
-
-
-
-
-
-
-
-var trans = "{{ transactions }}";
-var transac = trans.substr(1);
-
-
-//console.log(trans);
-
-if(transac != ""){
-  var transactions = "";
-  var linechart = [];
-  var tran = transac.split("!");
-  tran.shift();
-    console.log(tran);
-  for (var i = 0; i < tran.length; i++) {
-    rects = tran[i].split(",");
-    rectstime = String(rects[1]).split(".");
-    var datime = convertTimestamp(rectstime[0])
-
-    //Make the transactions table
-
-    transactions += "<tr><td  style='width: 50%'>" + rects[0] + "</td><td>" + datime + "</td><td>" + rects[2] + "</td></tr>"; 
-
-    //Make the line chart
-
-    if (i == 0){
-      linechart.push({y: datime, item1: rects[2]});
-    }
-    else{
-      linechart.push({y: datime, item1: rects[3]});
-    }
-  }
-  document.getElementById("transactions").innerHTML = transactions;
-  if(linechart[0] != ""){
-    document.getElementById("satschart").innerHTML =  "<div class='row'><div class='col-md-6'><div class='box box-info'><div class='box-header'>" +
-                "<h3 class='box-title'>Spending</h3></div><div class='box-body chart-responsive'>" +
-                "<div class='chart' id='line-chart' style='height: 300px;'></div></div></div></div></div>";
-  }
-}
-
-console.log(linechart);
-  var data = linechart
-  var line = new Morris.Line({
-  element: 'line-chart',
-  resize: true,
-  data,
-  xkey: 'y',
-  ykeys: ['item1'],
-  labels: ['Item 1'],
-  lineColors: ['#3c8dbc'],
-  hideHover: 'auto'
-});
-
-
-function convertTimestamp(timestamp) {
-  var d = new Date(timestamp * 1000), 
-  yyyy = d.getFullYear(),
-  mm = ('0' + (d.getMonth() + 1)).slice(-2), 
-  dd = ('0' + d.getDate()).slice(-2),        
-  hh = d.getHours(),
-  h = hh,
-  min = ('0' + d.getMinutes()).slice(-2),    
-  ampm = 'AM',
-  time;
-  time = yyyy + '-' + mm + '-' + dd + ' ' + h + ':' + min;
-  return time;
-}
-
- 
-
-
-</script>
-   
-  </body>
-</html>
\ No newline at end of file
diff --git a/LNbits/templates/wallet.html b/LNbits/templates/wallet.html
index bfb0b19af..8cfdd4251 100644
--- a/LNbits/templates/wallet.html
+++ b/LNbits/templates/wallet.html
@@ -1,94 +1,6 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8">
-    <title>LNBits Wallet</title>
-    <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
-    <!-- Bootstrap 3.3.2 -->
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}">  
-    <!-- FontAwesome 4.3.0 -->
-    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
-    <!-- Ionicons 2.0.0 -->
-    <link href="http://code.ionicframework.com/ionicons/2.0.0/css/ionicons.min.css" rel="stylesheet" type="text/css" />    
-
-    <!-- Theme style -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='dist/css/AdminLTE.min.css') }}">  
-    <!-- AdminLTE Skins. Choose a skin from the css/skins 
-         folder instead of downloading all of them to reduce the load. -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='dist/css/skins/_all-skins.min.css') }}">  
-    <!-- iCheck -->
+{% extends "base.html" %}
  
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/iCheck/flat/blue.css') }}">  
-    <!-- Morris chart -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/morris/morris.css') }}">  
-    <!-- jvectormap -->
- 
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.css') }}">  
-    <!-- Date Picker -->
-   
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/datepicker/datepicker3.css') }}">  
-    <!-- Daterange picker -->
-   
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/daterangepicker/daterangepicker-bs3.css') }}">  
-    <!-- bootstrap wysihtml5 - text editor -->
-
-    <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">  
-
-    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
-    <!--[if lt IE 9]>
-        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-        <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
-    <![endif]-->
-
-      <style>
-    .small-box>.small-box-footer {
-    text-align: left;
-    padding-left: 10px;
-    } 
- 
-    </style>
-
-
-      <style>
-    #loadingMessage {
-      text-align: center;
-      padding: 40px;
-      background-color: #eee;
-    }
-
-    #canvas {
-      width: 100%;
-    }
-
-    #output {
-      margin-top: 20px;
-      background: #eee;
-      padding: 10px;
-      padding-bottom: 0;
-    }
-
-    #output div {
-      padding-bottom: 10px;
-      word-wrap: break-word;
-    }
-
-    #noQRFound {
-      text-align: center;
-    }
-  </style>
-
-
-
-
-
-     
- 
-  </head>
-  <body class="skin-blue">
+{% block body %}
     <div class="wrapper">
       
       <header class="main-header">
@@ -333,67 +245,11 @@
         <div class="pull-right hidden-xs">
           <b>BETA</b>
         </div>
-        <strong><i style="color:red;">WARNING - LNbits is still in BETA! </i>Learn more about LNbits <a href="https://github.com/arcbtc/FOSSAW">https://github.com/arcbtc/lnbits</a>. </strong> 
+        <strong>Learn more about LNbits <a href="https://github.com/arcbtc/lnbits">https://github.com/arcbtc/lnbits</a>.</strong> 
       </footer>
     </div><!-- ./wrapper -->
     <link rel="stylesheet" media="screen" href = "{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') }}">  
 
-    <!-- jQuery 2.1.3 -->
-    <script src="{{ url_for('static', filename='plugins/jQuery/jQuery-2.1.3.min.js') }}"></script>
-    <!-- jQuery UI 1.11.2 -->
-    <script src="http://code.jquery.com/ui/1.11.2/jquery-ui.min.js" type="text/javascript"></script>
-    <!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
-    <script>
-      $.widget.bridge('uibutton', $.ui.button);
-    </script>
-    <!-- Bootstrap 3.3.2 JS -->
-    <script src="{{ url_for('static', filename='bootstrap/js/bootstrap.min.js') }}" type="text/javascript"></script>    
-    <!-- Morris.js charts -->
-    <script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
-    <script src="{{ url_for('static', filename='plugins/morris/morris.min.js') }}" type="text/javascript"></script>
-    <!-- Sparkline -->
-    <script src="{{ url_for('static', filename='plugins/sparkline/jquery.sparkline.min.js') }}" type="text/javascript"></script>
-    <!-- jvectormap -->
-    <script src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-1.2.2.min.js') }}" type="text/javascript"></script>
-    <script src="{{ url_for('static', filename='plugins/jvectormap/jquery-jvectormap-world-mill-en.js') }}" type="text/javascript"></script>
-    <!-- jQuery Knob Chart -->
-    <script src="{{ url_for('static', filename='plugins/knob/jquery.knob.js') }}" type="text/javascript"></script>
-    <!-- daterangepicker -->
-    <script src="{{ url_for('static', filename='plugins/daterangepicker/daterangepicker.js') }}" type="text/javascript"></script>
-    <!-- datepicker -->
-    <script src="{{ url_for('static', filename='plugins/datepicker/bootstrap-datepicker.js') }}" type="text/javascript"></script>
-    <!-- Bootstrap WYSIHTML5 -->
-    <script src="{{ url_for('static', filename='plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js') }}" type="text/javascript"></script>
-    <!-- iCheck -->
-    <script src="{{ url_for('static', filename='plugins/iCheck/icheck.min.js') }}" type="text/javascript"></script>
-    <!-- Slimscroll -->
-    <script src="{{ url_for('static', filename='plugins/slimScroll/jquery.slimscroll.min.js') }}" type="text/javascript"></script>
-    <!-- FastClick -->
-    <script src="{{ url_for('static', filename='plugins/fastclick/fastclick.min.js') }}"></script>
-    <!-- AdminLTE App -->
-    <script src="{{ url_for('static', filename='dist/js/app.min.js') }}" type="text/javascript"></script>
-
-    <!-- AdminLTE dashboard demo (This is only for demo purposes) -->
-    <script src="{{ url_for('static', filename='dist/js/pages/dashboard.js') }}" type="text/javascript"></script>
-
-    <!-- AdminLTE for demo purposes -->
-    <script src="{{ url_for('static', filename='dist/js/demo.js') }}" type="text/javascript"></script>
-
-
-        <script src="{{ url_for('static', filename='plugins/datatables/jquery.dataTables.js') }}" type="text/javascript"></script>
-    <script src="{{ url_for('static', filename='plugins/datatables/dataTables.bootstrap.js') }}" type="text/javascript"></script>
-    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
-<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
-<script src="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
-<script src="{{ url_for('static', filename='plugins/jscam/JS.js') }}" type="text/javascript"></script>
-
-       <script src="{{ url_for('static', filename='plugins/jscam/qrcode.min.js') }}" type="text/javascript"></script>    
-
-       <script src="{{ url_for('static', filename='plugins/bolt11/decoder.js') }}" type="text/javascript"></script>    
-
-       <script src="{{ url_for('static', filename='plugins/bolt11/utils.js') }}" type="text/javascript"></script>   
-
-
 <script>
 
   var inmacaroon = "{{ inkey }}";
@@ -711,7 +567,5 @@ function convertTimestamp(timestamp) {
   return time;
 }
 
-</script>
-   
-  </body>
-</html>
\ No newline at end of file
+    </script>
+{% endblock %}