feat(theseus/bchwallet): bundled Bitcoin Cash wallet add-on skeleton

Manifest declaring sidebar-panel, vault-derive, page-inject (https://*.x)
and approval-modal; registers the Wallet sidebar panel. Shows up in
Settings > Extensions and opens from the sidebar.
This commit is contained in:
Local Dev 2026-09-06 02:33:27 +02:00
parent ffeda26345
commit dcab5c10ec
4 changed files with 53 additions and 0 deletions

View file

@ -0,0 +1,14 @@
{
"id": "bchwallet",
"name": "Bitcoin Cash Wallet",
"version": "0.1.0",
"description": "Send, receive and sign with a BCH wallet derived from your Theseus vault. Dapps on .x sites can request payments through window.bitcoincash.",
"author": "Silent Mode",
"icon": "₿",
"main": "index.js",
"capabilities": ["sidebar-panel", "vault-derive", "page-inject", "approval-modal"],
"page-inject": {
"preload": "wallet-inject.js",
"origins": ["https://*.x/*"]
}
}

View file

@ -0,0 +1,9 @@
// Bitcoin Cash Wallet — bundled Theseus add-on. activate() runs in the main
// process; all key material lives here, in memory, and is re-derived from the
// password vault on every launch.
module.exports = {
activate(api) {
api.registerSidebarPanel({ id: "main", title: "Wallet", icon: "₿", page: "panel.html" });
api.log("wallet panel registered");
},
};

View file

@ -0,0 +1,29 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bitcoin Cash Wallet</title>
<style>
:root { color-scheme: light dark;
--bg:#0e131c; --panel:#141a24; --line:rgba(255,255,255,.09);
--ink:#e7eaf1; --mut:#8b98a9; --dim:#5e6678; --acid:#d6ff3d; }
@media (prefers-color-scheme: light) {
:root { --bg:#f8faff; --panel:#ffffff; --line:rgba(0,0,0,.10);
--ink:#1a1f2b; --mut:#5c6577; --dim:#8a93a5; }
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { background: var(--bg); color: var(--ink);
font: 14px/1.55 system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
display: flex; flex-direction: column; }
header { display: flex; align-items: center; justify-content: space-between;
padding: 10px 14px; border-bottom: 1px solid var(--line); background: var(--panel); }
header .t { font-weight: 600; display: flex; gap: 8px; align-items: center; }
main { flex: 1; padding: 14px 16px; color: var(--mut); }
</style>
</head>
<body>
<header><div class="t"><span>₿</span><span>Bitcoin Cash Wallet</span></div></header>
<main>Loading…</main>
</body>
</html>

View file

@ -0,0 +1 @@
// Placeholder — filled in by the dapp-bridge step.