Summary
The Bitmark Electrum stack now works end-to-end (experimental): an ElectrumX server that indexes the chain off bitmarkd, and the Electrum-Bitmark 4.7.2 light wallet that connects to it over TLS and shows BTMK balances/history. This issue is a guide to running your own — so anyone can host light-wallet infrastructure for Bitmark, no central server required.
What it is
electrumx-bitmark (server) — reads blocks from a synced bitmarkd via RPC, builds an address index, speaks the Electrum protocol.
electrum-bitmark (wallet) — a light SPV-style client; users run only this and point it at any server.
Run your own server
Prereqs: a synced bitmarkd with txindex=1, server=1, RPC enabled (rpcuser/rpcpassword, rpcallowip=127.0.0.1); plus build-essential + libleveldb-dev.
git clone https://github.com/project-bitmark/electrumx-bitmark
cd electrumx-bitmark
python3 -m venv venv && ./venv/bin/pip install -e . plyvel python-rapidjson
Config (env file):
export COIN=Bitmark
export NET=mainnet
export DB_DIRECTORY=/path/to/electrumx-db
export DAEMON_URL=http://rpcuser:rpcpass@127.0.0.1:9266/
export SERVICES=tcp://127.0.0.1:50001,rpc://127.0.0.1:8001
export DB_ENGINE=leveldb
Run it (first start indexes the whole chain — give it time):
source your.env && ./venv/bin/python ./electrumx_server
For remote/SSL access (optional, recommended): terminate TLS in front with haproxy/nginx on port 50002 to backend 127.0.0.1:50001, using a Let's Encrypt cert. (haproxy must be mode tcp with long timeouts so wallet subscriptions don't drop.)
Connect the wallet
- Build/run Electrum-Bitmark — https://github.com/project-bitmark/electrum-bitmark
- Tools -> Network -> your server, port
50001 (TCP) or 50002 (SSL)
- It syncs and shows your BTMK balance.
Status: experimental — important
- This is early/testbed software — run it, test it, report issues.
- Use legacy
b... addresses only. Bitmark is pre-SegWit — do not use btm1... (SegWit) addresses; they are unsafe on a non-SegWit chain. (Known wallet issue: it should not offer SegWit — legacy-only fix planned.)
What's next
- Wallet: disable SegWit (legacy-only), peer discovery.
- Server: packaged setup, a fast-bootstrap (signed chainstate snapshot) so you don't index from genesis.
- A community server list (so wallets can auto-discover independently-run servers).
Related
Summary
The Bitmark Electrum stack now works end-to-end (experimental): an ElectrumX server that indexes the chain off
bitmarkd, and the Electrum-Bitmark 4.7.2 light wallet that connects to it over TLS and shows BTMK balances/history. This issue is a guide to running your own — so anyone can host light-wallet infrastructure for Bitmark, no central server required.What it is
electrumx-bitmark(server) — reads blocks from a syncedbitmarkdvia RPC, builds an address index, speaks the Electrum protocol.electrum-bitmark(wallet) — a light SPV-style client; users run only this and point it at any server.Run your own server
Prereqs: a synced
bitmarkdwithtxindex=1,server=1, RPC enabled (rpcuser/rpcpassword,rpcallowip=127.0.0.1); plusbuild-essential+libleveldb-dev.Config (env file):
Run it (first start indexes the whole chain — give it time):
For remote/SSL access (optional, recommended): terminate TLS in front with haproxy/nginx on port
50002to backend127.0.0.1:50001, using a Let's Encrypt cert. (haproxy must bemode tcpwith long timeouts so wallet subscriptions don't drop.)Connect the wallet
50001(TCP) or50002(SSL)Status: experimental — important
b...addresses only. Bitmark is pre-SegWit — do not usebtm1...(SegWit) addresses; they are unsafe on a non-SegWit chain. (Known wallet issue: it should not offer SegWit — legacy-only fix planned.)What's next
Related