bitshares-vanilla-ui

BitShares Vanilla UI

BitShares Vanilla UI — vanilla flower and pods

bitshares-vanilla-ui — a plug-and-play replacement for the BitShares reference wallet (wallet.bitshares.org), written in plain HTML + JavaScript + CSS with zero runtime dependencies.

motto

No React, no bundler, no npm install to run it — serve the vanilla/ folder with any static server (or even open the file), point it at a BitShares API node, and use the wallet. Keys never leave your machine; transactions are signed locally in the browser, same security model as the old wallet.

Screenshots (Classic theme, live chain data)

Exchange desk — market picker, ticker stats, price chart with indicators:

exchange desk

Order book, trade history, fill-size tape, unlock-to-trade panel:

exchange order book

Chain explorer — live blocks, object search, per-tab deep links:

explorer blockchain

The 9 guiding principles

  1. Never re-create #3583. Every dependency, abstraction, and build step is a future #3583 (upstream’s thousand-hour React-uplift trap). Default answer to all three is no.
  2. Look like the old UI. Same layout, styling, flows — a returning user feels at home instantly.
  3. Carry every astro-ui feature. Everything the old wallet does, plus the long tail from the modern dialog-based UI (pools, HTLC, credit, tickets, proposals, on-chain chat…).
  4. Retro look, modern glow. Same retro styling, but reactive, intuitive, with solid search and menus.
  5. Three themes. Classic BitShares (default), Vanilla light, DEX dark — one themes.css, data-theme switch, persisted.
  6. Human terms, never raw integers. 1.23456 BTS, not 123456; 20%, not 2000. One formatting module, integer math throughout.
  7. Phone-first, not laptop-only. 360px phones to 4K trading desks, touch targets, no hover-dependent UI.
  8. Built to be read. One purpose per file, module headers, honest comments — a stranger maintains it with no prior context.
  9. Browse as anyone, sign as yourself. Every page renders any account’s data with no login; the password is asked ONLY at signing.

Features

Hosting it

Any static host works. No env vars, no .env, no build step:

python3 -m http.server 8080 --directory vanilla
# → http://localhost:8080/

Node list is data (editable in Settings, mainnet + testnet defaults with latency sort and chain-id check). No blank screen if a node is down — status + retry instead.

Security model

Status

Slices 1–17 built + testnet-verified; see SLICES.md (binding build order) and vanilla/notes/op-coverage-matrix.md (zero unjustified gaps). docs/tester-manual.md is the human-gate checklist. Footer stamp v1.0.0.

For developers

git clone --branch develop https://github.com/bitshares/bitshares-ui.git reference/bitshares-ui
git clone --branch main https://github.com/BTS-CM/astro-ui.git reference/astro-ui
git clone --branch master https://github.com/pi314x/bitshares-wallet-browser-extension.git reference/wallet-extension
git clone --branch develop --filter=blob:none --sparse https://github.com/bitshares/bitshares-core.git reference/bitshares-core
git -C reference/bitshares-core sparse-checkout set libraries/app/include libraries/protocol libraries/chain/include libraries/wallet/include
git clone --branch main https://github.com/squidKid-deluxe/bitshares-dex-ux.git reference/bitshares-dex-ux