Who knows.. Connectivity to Trezor/Ledger is welcomed but is this SPV client or the wallet that relies on specialized servers just as Electrum does? If it connects to its own servers how many of them are available online at once?
It appears to leverage several libraries like bitcoinjs-lib and one called
"unchained-bitcoin".
As near as I can tell, it's using the broadcast API from unchained-bitcoin to send transactions out... and also using the same "block explorer" to get your balances etc:
Broadcast Transaction:
const broadcastTransaction = async () => {
if (signedPsbts.length === signThreshold) {
try {
if (signThreshold > 1) {
const combinedPsbt = combinePsbts(finalPsbt, signedPsbts)
combinedPsbt.finalizeAllInputs();
const { data } = await axios.get(blockExplorerAPIURL(`/broadcast?tx=${combinedPsbt.extractTransaction().toHex()}`, currentBitcoinNetwork));
setBroadcastedTxId(data);
setModalIsOpen(true);
setModalContent(<TransactionSuccess broadcastedTxId={data} />);
} else {
const { data } = await axios.get(blockExplorerAPIURL(`/broadcast?tx=${signedPsbts[0].extractTransaction().toHex()}`, currentBitcoinNetwork));
setBroadcastedTxId(data);
setModalIsOpen(true);
setModalContent(<TransactionSuccess broadcastedTxId={data} />);
}
} catch (e) {
setTxError(e.response.data);
}
}
}
blockExplorerAPIURL is imported here:
import {
blockExplorerAPIURL,
satoshisToBitcoins,
estimateMultisigP2WSHTransactionVSize
} from "unchained-bitcoin";
Retrieve address details etc:
const getTransactionsFromAddress = async (address, currentBitcoinNetwork) => {
return await (await axios.get(blockExplorerAPIURL(`/address/${address}/txs`, getUnchainedNetworkFromBjslibNetwork(currentBitcoinNetwork)))).data
}
The blockexplorer being used by unchained-bitcoin is defined here:
https://github.com/unchained-capital/unchained-bitcoin/blob/master/src/block_explorer.jsWhich is essentially:
const BASE_URL_MAINNET = 'https://blockstream.info';
So, I'm guessing the answer to your "number of servers" question is: "however many they have 'loadbalanced' on the blockstream.info domain"
It might be fixed on next release since i saw someone already make issues about it on GitHub.
Yeah... that "someone" was me