I’ve been trying to understand how all the fees are calculated.
From my understanding, currently there is the trading fee that goes directly to the arbitrators, the security deposit and the on-chain transaction fees.
Trading fees
I understand that these are to avoid spam. From what I’ve read on the FAQ, it is 0.1% of the trade amount for the offer makers and 0.3% for the offer takers and with a minimum value of 0.00005btc. And to that is added a percentage correlated to the distance from the market the order is set at. So if I’m putting a offer selling bitcoin at 10% higher than the market rate I’ll be paying a higher value than if I’d put up an offer of 5% higher than the market rate. Right?
Security deposit
Unlike the trading fees, this value will be returned to the traders and it’s just a collateral to counter risks. The value for makers is set in stone at 0.005btc and for traders it is decided by the maker by setting a percentage of the trading amount (minimum = 0.05%, default = 2%, maximum = 10%). And am I correct in also assuming a minimum value of 0.00005btc?
On-chain transaction fees
In buying btc, the maker pays the fees for 1) depositing the funds on their Bisq wallet, 2) locking the security deposit and pay the trading fee, 3) eventually withdrawing their security deposit to an external wallet.
The taker pays the fees for 1) depositing the funds on their Bisq wallet, 2) locking the security deposit and pay the trading fee, 3) sending both security deposits + trade amount to escrow, 4) paying out the trade amount and security deposit to respective traders, 5) eventually withdrawing the funds to an external wallet.
Only the fees for the first and last transactions are under control of the traders. The rest are calculated by their Bisq client, using an api from https://bitcoinfees.earn.com/.
How are fee models enforced through different versions of the Bisq application? Let’s say that a new update would make trade less profitable for offer-takers. It would be in their interest to not update. Wouldn’t the user with version 0.n be paying less fees than the user with versio 0.n+1?
In Bisq’s future version, the traders public details may mention their Bisq used version.
And like for many P2P networks, users are advised not to deal with nodes which are not up-to-date.
Maybe this could even be automatic or a general option in the appli.
Offer-maker buyer of btc
Recapitulating, I’ve been testing different values on the Bisq software as an offer-maker and buyer using SEPA and in the current state of the software, offer-makers setup the security deposit for buyers of btc,
even when they are themselves the buyers of btc. On the Bisq software, when setting the security deposit for the buyer, the minimum percentage allowed to be set is 0.05%, the recommended is 2% and the maximum is 10% of the trade amount. However, independant of how low the percentage of the trade amount is set at when making the offer, the lowest value of security alowed for both buyers and sellers is 0.001btc, which is way higher than 0.05% for any trade amount under 2btc.
Secondly. Being that when a offer maker is creating a buying offer they set the security deposit for themselves, how is the security deposit for the taker of that offer set?
Offer-maker seller of btc
On this side all remains the same but surprisingly the minimum amount of security deposit seems to be 0.005btc. Which is five times higher the minimum I get as an offer-maker buyer of btc.
Yes you are right the min. value of 0.001 is 0.05% at a 2 BTC trade so that was chosen probably not in the best way. But anyway we might increase trade limits and then the min % value will have more effect.
The motivation behind the min of 0.001 BTC is because even for small trades the loss of time and possible costs for arbitration need to be covered. To make a small trade with 20 USD would still cause lots of time effort for the other peer and arbitrator if the buyer is bailing out. So I think a min. loss of 4 USD (@ a 4000 USD/BTC price) is justified to create a min. level of costs to the wrongdoer.
The sellers deposit (independent if maker or taker) is always 0.005% or min. 0.005 BTC.
The seller has no way to “cancel” the trade. If the buyer has paid and can proof that and the seller does not cooperate he will lose the deposit but he cannot avoid that the trade got executed (e.g. trade amount was transferred).
The reasons for the deposits are following:
Giving incentive that both are not lazy and confirm sending and receipt of funds (e.g. humans playing the API to the banks as banks don’t offer 21st century IT infrastructure).
Giving incentive for buyer that he follows the trade even if the price has moved against him so that it would be economically more rational to not transfer the fiat/altcoin but to take another new trade with the better price. If loss of buyers security deposit is higher as loss from price change it is not rational to do that. So the amount of the buyer deposit need to reflect volatility risk.
The reason why the min amount of seller is higher as that of buyer is because the sellers deposit is same for all, the buyers can be defined by maker. To make an offer more attractive to users who have very little BTC a min. buyer deposit might make sense, the maker defines the risk he wants to get exposed to (if he is seller). The min. seller deposit of 0.005 BTC is about 20 USD @ 4000 USD/BTC and should hurt enough to the seller not not forget to click the “payment received” button. A dispute can last easily 2 days or longer so 20 USD as reimbursement to the buyer in case the seller was lazy should be more reasonable.
Of course those numbers are just educated guesses…