infrastructure (epic): Electrum-server for OFF — mobile/extension wallet enablement #36
Labels
No labels
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
SubGeniusFinance/Offerings-to-Cthulhu#36
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Stand up an Electrum-protocol server for OFF — the standard backend that mobile wallets, browser-extension wallets, and many exchange integrations expect. Without it, OFF can only be used through the desktop Qt wallet or a custodial intermediary.
This is a multi-PR epic, not a single change. Tracked here as the umbrella for future scoped sub-issues. No fork height needed — non-consensus infrastructure.
Flagged by @9019x on 2026-06-14 as a precondition for mobile/extension wallet adoption.
What "Electrum server" means here
A daemon that:
txindex=1Offeringsd via RPC.server.peers.subscribe,blockchain.address.subscribe,blockchain.address.get_history,blockchain.transaction.broadcast, etc.).Mainline implementations in 2026:
Default base for OFF: ElectrumX, for the altcoin precedent and ease of porting.
Current state
What exists:
txindex=1is already deployed and backs the public block explorer. The Electrum server can attach to that same daemon over RPC — no new index daemon required.What's missing:
src/zmq/directory and noENABLE_ZMQplumbing inconfigure.ac. ZMQ would deliver tip notifications to the Electrum server in <1s; without it the server polls RPC and tip latency is ~30s. Acceptable for v1; ZMQ becomes a follow-on.Why this is NOT in the v2.0.x consensus-fork bundle
Non-consensus. No fork height, no chain-split risk. Independent release cadence (decoupled from any
Offeringsdversion). Different test surface (protocol conformance + index correctness, not consensus regression vectors). Folding it into the BIP66 / BIP65 / COINBASE_MATURITY release would couple unrelated risks.Relation to #35 (HD wallets)
Two halves of the same user-facing story. Independently shippable but complementary:
End-state ("OFF on mobile, browser-extension, exchange") needs both. Neither is a blocking dependency on the other.
Scope breakdown (future sub-issues)
coins.pyplugin with chainparams (genesis hash, magic bytes, address prefix 58, P2P port 20000), Quark Hash9 header verification (reference: existing Quark-chain ElectrumX forks). Restoration-fork-aware reindex.electrum.23skidoo.info:50002(Electrum's standard SSL port).src/zmq/zmqnotificationinterface.{h,cpp}+src/zmq/zmqpublishnotifier.{h,cpp}patterns from Bitcoin Core 0.10.4. Addlibzmqtodepends/.configure.acdetect. ~400 LoC. Lets the Electrum server skip RPC polling.Design questions for later sub-issues
electrum.23skidoo.info) or its own zone?References
Community chat: https://23skidoo.info/discord