Skip to content

interchained/elara

Repository files navigation


⬡ ELARA WALLET

Your keys. Your coins. Your sovereignty — carved in gold.

A premium, open-source mobile wallet for Bitcoin (BTC) and Interchained (ITC). Real cryptography. Zero custody. A gold honeycomb interface that treats your money like it matters.


License: GPL v3 Platform Self-Custody PRs Welcome

Capacitor Svelte Vite TypeScript Bitcoin


Most wallets ask you to trust them. Elara asks you to trust math.

Every key is generated on your device, encrypted on your device, and signed on your device. No server holds your seed. No company holds your coins. No one can freeze, seize, or read what is yours. This is what self-custody was supposed to feel like — and now the source is open, so you never have to take our word for it.

📖 Read the manifesto → LORE.md — why Elara exists, and why you should build on it.

Warning

Non-custodial software. You alone are responsible for your keys, seed phrases, and funds. Read the code. Test with small amounts first. There is no "forgot password."


📑 Table of Contents


✨ Features

🪙 Multi-Coin Native Bitcoin (BTC) and Interchained (ITC) support
🔐 Real Cryptography BIP39 seed phrases, BIP32 HD derivation, on-device signing
Lightning Mode Simplified WIF-only wallets — one address per coin, zero rotation
🌳 Full HD Wallets BIP84 / BIP49 / BIP44 / P2PKH multi-path import & scanning
👁️ Watch-Only Monitor any address without exposing private keys
📲 Send & Receive QR scan & generate, live fee estimation, VWAP pricing, fee breakdowns
🔔 Smart Notifications Price alerts + incoming/confirmed transaction pushes
📈 Live Prices HTTPS polling with offline caching via service worker
🗂️ Multi-Wallet Create, import, switch & delete wallets with isolated caches
🛡️ Layered Security 6-digit PIN, biometric unlock, encrypted local storage
🐝 Gold Honeycomb UI Banking-grade clarity, 4D depth, fluid motion, WCAG 2.1 AA
🤖 Android Aceternity Skin GPU-friendly animated borders, spotlight & meteor effects, foldable-safe

🛡️ Security Model

Elara is built on a single principle: the app should never be able to betray you.

  • On-device key generation. Seeds and private keys are created using the device's secure crypto APIs — never on a server.
  • Encrypted at rest. Keys are encrypted locally; the PIN and biometrics gate every unlock.
  • No custody, no backdoor. Elara cannot freeze, seize, read, or recover your funds. There is no admin key.
  • Auditable by design. Every line that touches your keys lives in this repository. No black boxes.
  • No telemetry on your secrets. Your seed phrase never leaves your device. Network calls are limited to ElectrumX nodes and public price feeds.

Important

Back up your seed phrase offline. It is the only way to recover your wallet. Write it down, store it somewhere safe, and never share it with anyone — including anyone claiming to be support.


🏗️ Architecture

        ┌─────────────────────────────────────────────┐
        │              Svelte + TypeScript UI          │
        │   Screens · Components · Stores · Gold Skin   │
        └───────────────────────┬─────────────────────┘
                                 │
        ┌───────────────────────┴─────────────────────┐
        │                  Service Layer                │
        │  Crypto · Balance · Price · Indexer · Notify  │
        └───────────────────────┬─────────────────────┘
                                 │
   ┌─────────────────────────────┴────────────────────────────┐
   │  bitcoinjs-lib · interchainedjs-lib · BIP32/39 · secp256k1 │
   └─────────────────────────────┬────────────────────────────┘
                                 │
        ┌───────────────────────┴─────────────────────┐
        │      Capacitor Native Bridge (iOS/Android)    │
        │   ElectrumX TCP/TLS · Biometrics · Storage    │
        └───────────────────────────────────────────────┘

Highlights

  • Three-phase Send pipeline (PREPARE → FILTER → FINALIZE) for fast, reliable UTXO selection.
  • Optimized transaction indexer with rate-limited batch fetching, smart caching, and resume-on-interruption.
  • Direct ElectrumX over TCP/TLS via a custom Capacitor plugin (@elara/capacitor-electrum-tcp) — no centralized backend.
  • Blue Wallet-compatible 20+20 gap-limit scanning across all BTC derivation paths.

🧰 Tech Stack

Layer Technology
Native shell Capacitor (iOS + Android)
UI framework Svelte 4 + TypeScript
Build tool Vite 5
Bitcoin bitcoinjs-lib, bip32, bip39, ecpair, tiny-secp256k1
Interchained interchainedjs-lib
Networking ElectrumX (TCP/TLS) via custom Capacitor plugin
QR html5-qrcode (scan) · qrcode (generate)

🚀 Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Android Studio + JDK 17 (for Android builds)
  • Xcode (for iOS builds, macOS only)

Run it in 60 seconds

# 1. Install dependencies
npm install

# 2. Set up your environment
cp .env.example .env      # then add your API keys (all optional)

# 3. Launch the dev server
npm run dev               # open the printed local URL

💡 The browser dev server is the fastest way to iterate on the UI. Native features (biometrics, TCP sockets) require a device build.

Production web build:

npm run build

📱 Building for Mobile

The web app is built with Vite, then synced into the native shell with Capacitor.

npm run cap:vite      # build web assets → dist/
npm run cap:sync      # sync into the Android project
npm run android:open  # open in Android Studio to run / build

Android release signing

Release builds require your own signing keystore:

keytool -genkeypair -v -keystore my-release-key.jks \
  -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias

Provide the signing details via environment variables (see .env.example) before a release build.

Caution

Never commit your keystore, passwords, or .env file. They are git-ignored by default — keep it that way.


📂 Project Structure

elara_shipping/
├── src/
│   ├── components/            # Reusable UI components
│   ├── screens/              # Page-level screens (Dashboard, Send, Receive, …)
│   ├── services/             # Crypto, balance, price, indexer, notifications
│   ├── stores/               # Svelte writable stores (state management)
│   ├── styles/               # Design system, themes, android-skin.css
│   └── utils/                # Helpers (device detection, formatting, …)
├── public/                   # Static assets + service worker
├── android/                  # Capacitor Android project (no signing keys)
├── capacitor-electrum-tcp/   # Custom Capacitor plugin — ElectrumX TCP/TLS
├── webpack/                  # Browser shims/polyfills for crypto libs
├── patches/                  # patch-package patches
├── capacitor.config.ts
├── vite.config.mts
├── .env.example
└── LICENSE

⚙️ Configuration

All runtime credentials are supplied via environment variables — copy .env.example to .env and fill in what you need. Every key is optional; features that depend on a missing key simply disable themselves.

Variable Powers Required?
VITE_AIASSIST_API_KEY / VITE_AIASSIST_SALT Malachi AI concierge Optional
VITE_CHANGENOW_API_KEY In-app crypto swaps Optional
VITE_REVENUECAT_ANDROID_KEY / VITE_REVENUECAT_IOS_KEY Premium subscriptions Optional

🗺️ Roadmap

  • Additional chain modules (fork-friendly coin adapters)
  • Hardware wallet signing support
  • In-app multi-language (i18n)
  • Lightning Network channels
  • Reproducible builds

Have an idea? Open an issue — the comb has an empty cell with your name on it.


🤝 Contributing

Pull requests are welcome. By contributing you agree your work is licensed under the project's GPL-3.0-or-later license.

# Fork → branch → build → PR
git checkout -b feat/your-idea
npm install && npm run dev
# make it better, then open a PR

Guidelines

  1. Keep changes focused and well-described.
  2. Match the existing code style and the gold-honeycomb design language.
  3. Never commit secrets, keys, or .env files.
  4. For anything that touches signing or key handling, explain your reasoning in the PR — security is reviewed carefully.

📜 License

Elara Wallet is dual-licensed.

Open Source — GPL-3.0-or-later

Free to use, study, modify, and distribute under the GNU General Public License v3. If you distribute Elara or a derivative, your work must also be open under the GPL.

SPDX-License-Identifier: GPL-3.0-or-later

Commercial License

Want to use Elara (or any part of its codebase) in a closed-source, proprietary, white-label, or embedded product without GPL obligations? A separate commercial license is available from Interchained LLC.

📧 dev@interchained.org

Disclaimer

Elara Wallet is provided without warranty. Cryptocurrency software carries risk — always review, test, and secure your own use before relying on it for real funds.


⬡ Hold your keys. Build the comb. Keep it open.

Made with 🐝 and gold by Interchained LLC dev@interchained.org

About

⬡ Your keys. Your coins. Your sovereignty — carved in gold. A premium open-source, non-custodial BTC + ITC mobile wallet built with Capacitor + Svelte.

Topics

Resources

License

GPL-3.0, Unknown licenses found

Licenses found

GPL-3.0
LICENSE
Unknown
LICENSE-NOTICE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors