<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinosv3.git/README.md, branch fdroid-v1.7</title>
<subtitle>coinos v3 — bitcoin, Ark, Lightning and nostr wallet (web + Android)</subtitle>
<id>https://git.coinos.io/coinosv3.git/atom?h=fdroid-v1.7</id>
<link rel='self' href='https://git.coinos.io/coinosv3.git/atom?h=fdroid-v1.7'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/'/>
<updated>2026-09-15T00:39:56Z</updated>
<entry>
<title>MIT.</title>
<updated>2026-09-15T00:39:56Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-15T00:39:56Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=7a1a628366d7ef8888b49217ae04cc9bcb97799e'/>
<id>urn:sha1:7a1a628366d7ef8888b49217ae04cc9bcb97799e</id>
<content type='text'>
The licence file, the package field, a line in the README, and the
Zapstore listing's license tag — so the store says what the repo says.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01QYJfZ4A1TDCEY4Foq3CApR
</content>
</entry>
<entry>
<title>Scrub silent payments from everything user-facing — the receive feature is gone (no sp in the feature registry) but its mentions lingered: the zapstore description now says plain "full BIP84 bitcoin wallet" (fresh kind 32267 republished, verified clean on the relay), the README loses the sp feature section and its mentions in the E2E-suite and dev-proxy lists, the dead receiveSpTab i18n key is removed, and two stale comments (app.js seams, build.js HAL_FEATURES list) stop naming it. Deliberately KEPT: silentPaymentNote — the send review still labels an output paying someone else's sp1 address, which remains supported</title>
<updated>2026-09-05T07:02:44Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-05T07:02:44Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=d44e036409ad8e1056ba3108a20b1e6fe44c055a'/>
<id>urn:sha1:d44e036409ad8e1056ba3108a20b1e6fe44c055a</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01MGzU12QrAA4G6BYGzGVdXz
</content>
</entry>
<entry>
<title>Remove the Hal Finney tribute</title>
<updated>2026-08-02T19:57:32Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-02T19:57:32Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=6416bd5dd79c3bdde5dfa7e7ec95fc811fbcdb28'/>
<id>urn:sha1:6416bd5dd79c3bdde5dfa7e7ec95fc811fbcdb28</id>
<content type='text'>
Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
</content>
</entry>
<entry>
<title>Rebrand: hal → coinos v3</title>
<updated>2026-08-02T19:32:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-08-02T19:32:14Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=1fdaa920d7530ac2073ca50280d9531935446c7a'/>
<id>urn:sha1:1fdaa920d7530ac2073ca50280d9531935446c7a</id>
<content type='text'>
The app already presents as Coinos; this finishes the job in the repo:
package name, README, GitHub link, code comments, and the stale locale
lines that still explained the old "Hal Wallet" name (they fall back to
the English tribute line). Kept: the hal-nwc-pouch IndexedDB name (an
upgrade-compat identifier), the halwallet.app domain in the BIP-353
names feature (live infrastructure), and the Hal Finney tribute itself.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
</content>
</entry>
<entry>
<title>Docs: How-it-works covers Lightning/Ark/SP/gifts; README rewrite</title>
<updated>2026-07-06T06:27:12Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-07-06T06:27:12Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=a3783d7e7f53709a8f8352494b9e89583e46f85b'/>
<id>urn:sha1:a3783d7e7f53709a8f8352494b9e89583e46f85b</id>
<content type='text'>
The in-app page grows plain-language cards for Lightning swaps, Ark
(instant off-chain, the unilateral escape hatch, expiry housekeeping,
fees), silent payments, and gift links. The README catches up with
reality: the native-JS Ark client headlines the feature list, and the
modular HAL_FEATURES build system gets its own section — every feature
is a plugin behind a build seam, and excluded code never ships.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Update README for Hal Wallet; fill in all translations</title>
<updated>2026-06-24T15:46:57Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-06-24T15:46:57Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=f59cca61111f38963099190bdbbce9a76bc3fafe'/>
<id>urn:sha1:f59cca61111f38963099190bdbbce9a76bc3fafe</id>
<content type='text'>
- Rewrite README: Hal Wallet name, halwallet.app, configurable explorer,
  QR scanner, optional/configurable Nostr sync, PWA, updated layout and
  reconcile/security notes.
- Translate the ~31 UI keys added this cycle (explorer, device sync, QR
  scanner, How it works, install, etc.) into all 19 languages. Brand and
  technical tokens (Hal Wallet, Hal Finney, mempool.space, BIP39/BIP84,
  Sparrow/Electrum, Nostr, URLs) kept literal so linkify still matches;
  appTitle stays "Hal Wallet" via English fallback.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Persist payment-received ack across reloads; footer + README</title>
<updated>2026-06-16T07:20:52Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-06-16T07:20:52Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=fc054510669f1e1017f985df11f603f0efe47b9b'/>
<id>urn:sha1:fc054510669f1e1017f985df11f603f0efe47b9b</id>
<content type='text'>
- The "Payment received!" celebration now persists: the acknowledged fresh
  index is stored (per seed) in localStorage, so a received payment keeps
  showing the dialog until you tap past it, even after a refresh.
- Footer: only "GitHub" is the link now.
- README rewritten for the current state (mainnet-only, realtime, Nostr sync,
  multi-recipient, sats default, explorer resilience, etc.).

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Defeat scan 429s with multi-backend rotation + cooldown</title>
<updated>2026-06-15T06:26:14Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-06-15T06:26:14Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=c40df841881dced8079f25a419d737064eaacabd'/>
<id>urn:sha1:c40df841881dced8079f25a419d737064eaacabd</id>
<content type='text'>
The "CORS" errors were 429 Too Many Requests (a 429 has no CORS headers, so
the browser reports it as a CORS failure). SSL/hosting is irrelevant.

Per-request retries made it worse by multiplying load on an already
rate-limited host. Replace with:
- round-robin across two Esplora-compatible backends (mempool.space +
  Blockstream), halving per-host load
- park a host on an 8s cooldown when it 429s instead of retrying it
- keep the global throttle (2 concurrent, 200ms gap)
- map Blockstream's /fee-estimates to the named fee tiers

Unit-tested rotation/cooldown; live scan of 40 addresses now completes in
~8s with no failures.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Rebuild as single-file offline BIP84 wallet</title>
<updated>2026-06-15T06:01:03Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-06-15T06:01:03Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=c5443946031ec32a7b3008fa751eb7916654a9f6'/>
<id>urn:sha1:c5443946031ec32a7b3008fa751eb7916654a9f6</id>
<content type='text'>
Replace the SvelteKit/daisyUI prototype with a vanilla JS + hand-rolled CSS
app that Bun bundles (code + scure/noble crypto + QR + CSS) into one
self-contained dist/index.html runnable offline from file://.

Wallet core (src/wallet.js):
- BIP84 native-segwit HD wallet from BIP39 seed (+optional passphrase)
- gap-limit scan of receive/change chains, aggregate balance, tx history
- fresh receive/change addresses; signs with witnessUtxo only (enables
  offline signing with no prev-tx fetch)
- coin selection + fee estimation via btc-signer selectUTXO; send-max;
  manual coin control
- offline JSON snapshot export/import (keyless) + signed-tx hex/QR export
- realtime mempool.space WebSocket: track-addresses -&gt; debounced auto
  refresh of balances/history (no polling); live status badge

UI (src/app.js): clean light paper-wallet; create (with optional, skippable
backup verification) / import flow; receive (QR) / send / history / coins /
tools tabs; clickable logo returns home.

API (src/api.js): mempool.space wrapper with retry/backoff for scan-burst
rate limiting; single network choke-point for offline enforcement.

Verified: BIP84 spec vectors, build/sign/parse for auto/max/manual flows,
snapshot roundtrip, live scan + WebSocket, headless-Chrome UI smoke tests.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>initial</title>
<updated>2025-07-15T04:03:45Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-07-15T04:03:45Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinosv3.git/commit/?id=f8c0b581084a7d7dd1a3664331cccf797c922661'/>
<id>urn:sha1:f8c0b581084a7d7dd1a3664331cccf797c922661</id>
<content type='text'>
</content>
</entry>
</feed>
