diff --git a/lnbits/extensions/hivemind/README.md b/lnbits/extensions/hivemind/README.md
new file mode 100644
index 000000000..1e9667ec9
--- /dev/null
+++ b/lnbits/extensions/hivemind/README.md
@@ -0,0 +1,3 @@
+
Hivemind
+
+Placeholder for a future Bitcoin Hivemind extension.
diff --git a/lnbits/extensions/hivemind/__init__.py b/lnbits/extensions/hivemind/__init__.py
new file mode 100644
index 000000000..cc2420d83
--- /dev/null
+++ b/lnbits/extensions/hivemind/__init__.py
@@ -0,0 +1,11 @@
+from quart import Blueprint
+from lnbits.db import Database
+
+db = Database("ext_hivemind")
+
+hivemind_ext: Blueprint = Blueprint(
+ "hivemind", __name__, static_folder="static", template_folder="templates"
+)
+
+
+from .views import * # noqa
diff --git a/lnbits/extensions/hivemind/config.json b/lnbits/extensions/hivemind/config.json
new file mode 100644
index 000000000..a5469b15f
--- /dev/null
+++ b/lnbits/extensions/hivemind/config.json
@@ -0,0 +1,6 @@
+{
+ "name": "Hivemind",
+ "short_description": "Make cheap talk expensive!",
+ "icon": "batch_prediction",
+ "contributors": ["fiatjaf"]
+}
diff --git a/lnbits/extensions/hivemind/migrations.py b/lnbits/extensions/hivemind/migrations.py
new file mode 100644
index 000000000..775a94548
--- /dev/null
+++ b/lnbits/extensions/hivemind/migrations.py
@@ -0,0 +1,10 @@
+# async def m001_initial(db):
+# await db.execute(
+# f"""
+# CREATE TABLE hivemind.hivemind (
+# id TEXT PRIMARY KEY,
+# wallet TEXT NOT NULL,
+# time TIMESTAMP NOT NULL DEFAULT {db.timestamp_now}
+# );
+# """
+# )
diff --git a/lnbits/extensions/hivemind/models.py b/lnbits/extensions/hivemind/models.py
new file mode 100644
index 000000000..be5232339
--- /dev/null
+++ b/lnbits/extensions/hivemind/models.py
@@ -0,0 +1,11 @@
+# from sqlite3 import Row
+# from typing import NamedTuple
+
+
+# class Example(NamedTuple):
+# id: str
+# wallet: str
+#
+# @classmethod
+# def from_row(cls, row: Row) -> "Example":
+# return cls(**dict(row))
diff --git a/lnbits/extensions/hivemind/templates/hivemind/index.html b/lnbits/extensions/hivemind/templates/hivemind/index.html
new file mode 100644
index 000000000..40a320f0b
--- /dev/null
+++ b/lnbits/extensions/hivemind/templates/hivemind/index.html
@@ -0,0 +1,35 @@
+{% extends "base.html" %} {% from "macros.jinja" import window_vars with context
+%} {% block page %}
+
+
+
+ This extension is just a placeholder for now.
+
+
+ Hivemind is a Bitcoin sidechain
+ project for a peer-to-peer oracle protocol that absorbs accurate data into
+ a blockchain so that Bitcoin users can speculate in prediction markets.
+
+
+ These markets have the potential to revolutionize the emergence of
+ diffusion of knowledge in society and fix all sorts of problems in the
+ world.
+
+
+ This extension will become fully operative when the
+ BIP300 soft-fork gets activated and
+ Bitcoin Hivemind is launched.
+
+
+
+{% endblock %} {% block scripts %} {{ window_vars(user) }}
+
+{% endblock %}
diff --git a/lnbits/extensions/hivemind/views.py b/lnbits/extensions/hivemind/views.py
new file mode 100644
index 000000000..21c4c2878
--- /dev/null
+++ b/lnbits/extensions/hivemind/views.py
@@ -0,0 +1,12 @@
+from quart import g, render_template
+
+from lnbits.decorators import check_user_exists, validate_uuids
+
+from . import hivemind_ext
+
+
+@hivemind_ext.route("/")
+@validate_uuids(["usr"], required=True)
+@check_user_exists()
+async def index():
+ return await render_template("hivemind/index.html", user=g.user)