Wallet

From Bisq Wiki
Jump to navigation Jump to search

As many other apps in the Bitcoin space, Bisq has a wallet embedded in it. It is not required in order to use Bisq, but it makes trading easier. This article explains the differences between the Bisq wallet and a generic wallet and answers a few common wallet-related questions.

See backing up your wallet seed if you haven't already backed up your Bisq wallet.

What is a wallet?

In simple words a wallet is a piece of software that helps you manage private keys, public keys, and thus generate addresses, generate and sign transactions and keep track of the funds that belong to the private keys mentioned above by scanning the blockchain.

Most wallets do just that and have a few advanced options on how to generate a transaction as, for example, a SegWit transaction does not have the exact same structure as a non-segwit transaction, a segwit-compatibility transaction and a multsig transaction, for example.

The Bisq Wallet

The Bisq wallet is particularly different than others because it allows you to interact with yet another type of transaction: a Bisq trading protocol transaction.

Bisq's trading protocol happens (today) all on-chain, which means it uses the Bitcoin blockchain to perform it's logic (which is very thin and simply logic).

Just to have an idea, the transactions that are markedly different because they originate from a Bisq trade are:

  • The Maker fee transaction
  • The Taker fee transaction
  • The multisig transaction (which happens when an offer is taken from the Bisq order book)

The purpose here is not to detail how these transactions work or are structured, if you want to go deeper in this topic, look at this article about the anatomy of a bisq trade.

Understanding the Bisq Wallet

If you navigate to the tab called Funds in the Bisq wallet you will notice that you have 3 states for your balance:

  • Available - normal balance that you can use to send BTC to any other address at will
  • Reserved - balance that is under your full control, but that was marked as not spendable by the wallet (for your convenience, so for example, you don't start a sell trade and transfer all the funds out, which would cause you to pay more mining fees to fulfill what you initially intended)
  • Locked - This is outside of your full control. It can relate to balance that you have locked in a trade either because you're selling that BTC or because it is related to the security deposit (which in most cases will simply go back to your wallet after the trade is done)

Bisq’s built-in bitcoin wallet is based on BIP-44. BTC wallets have a m/44'/0'/0' derivation path and BSQ wallets have a m/44'/142'/0' derivation path.

The same seed phrase is used for BTC and BSQ wallets.

Please do not try to send BSQ to a non-Bisq wallet, or to otherwise create your own BSQ transactions. The rules to form a valid BSQ transaction are rather complex, and even the slightest error can result in invalid BSQ. Bisq will NOT provide support for any such cases.

Supported BTC addresses

Bisq doesn't support native segwit addresses due to the technical challenges involved when dealing with bitcoinj library. Because of this, Bisq wallet cannot send funds to native segwit (bech32) addresses, those starting by bc1. If your external wallet only generates bech32 addresses, you'll have to go through an intermediate step, sending your funds to a wallet that supports legacy (P2PKH, which start by 1) or segwit (P2SH, which start by 3) addresses, like Samourai or Electrum.

SPV file

Most mobile wallets and in-application wallets are what is called a SPV wallet (Simple Payment Verification). Bisq is no different, for most cases.

If you have a full node in the local network, Bisq will try to connect through it to scan the blockchain and to validate and broadcast that Bisq related transactions. The downside here is that you need to always be connected and on the tip of the blockchain for Bisq to work properly.

For all other cases, where there is no full node in the machine, Bisq will run in SPV mode. That means it will ping other Full nodes in the network to derive its state and store it in this SPV file that we mention so often.

Because Bisq uses the Bitcoin Timechain/blockchain to determine the state of trades this file is especially important for your local instance of Bisq to run smoothly. See more here

Important

Avoid using Bisq’s seeds in other Bitcoin wallets. Not all wallets support the handling of Bisq’s multisig as well as the BSQ token itself, which is based on Bitcoin UTXOs. By using your seed in other wallets you risk:

  • Messing with your own trades in Bisq - Exactly because bisq labels transactions internally (not something a lot of wallets do) it can get your open offers/trades into unexpected states.
  • Burning your BSQ balance - BSQ is colored Bitcoin, which means the token uses Bitcoin UTXOs to “move” around. If you spend these UTXOs for their Satoshi nominal values, you may encounter problems with your BSQ.