-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal to increase liquidity on Bisq by allowing each offer to have multiple payment methods and currencies associated with it. #288
Comments
Thanks for expanding my original proposal. As your mockups illustrate, this is a big project for Bisq, and likely requires changes to the P2P messages for offers, so implementing it will probably depend mostly on what @chimp1984 thinks :) |
I think that's a great start. The maker side seems straight forward. How does the taker then select which of these is the one that will actually be in the contract? I see it in multiple possible ways (also, please elaborate if I'm getting it wrong):
Between 1 and 2, 1 might be easier to implement but terrible from a user perspective. On 2 we also need to take into account the taker side of the trade and how the protocol itself will handle that |
I like the idea of allowing more than one account per offer. As @Bisq-knight mentions, the only real method to do this would be to modify the offer protocol. The mock ups are not simple but would work for power users. For casual users I suspect it would lead to more confusion with so many options to deal with while creating an offer. Some thoughts I have on how this could be done:
|
I also like this idea, but I think this will be a power user interface, as it will cause even more confusion as Bisq does for new users already. But for newbies I think we'll need a "simple" mode anyways that probably will be a complete different interface as we see it now. This is one of the tasks I'll start to work beginning of next year. |
I envisaged this being no different for takers. They see the offer they like and take it.
This was not what I had in mind. The multiple offer would require only one trade amount to be funded and one security deposit, plus maker and miner fees.
Yes, this is more what I had in mind. I do not understand why the user experience of taking has to be any different?
Yes, I did not consider the protocol as I do not understand the architecture of it. I was designing from a user experience perspective. |
The mockups show how multiple offers would work. If a trader wanted to use only one payment method with one market it would be as simple as it is now. Payment methods would be loaded one at a time at under the users control at all times.
Yes, I like this idea. I was thinking off a 'add offer portfolio' or 'add favorites' button or similar but wanted to keep things simple.
Yes, my idea was when you select currencies the payment methods available for selection would filter depending on currencies selected. This is already in place per currency market.
Yes, this is what I was going for.
Yes, this would be required.
Thanks, this goes beyond my understanding but, I am happy it might be possible. |
Thanks, as the payment methods would be loaded one at a time by the user. A simple trade one payment method / one currency should be no more complex than what is shown now. In fact I think it would be easier due to how I have design the switch for fixed / variable amount reducing the variables shown on screen. |
Thanks @pazza83 for taking the time to putting a UI mock together and for bringing up the proposal! The effort for that on the UI side should not be underestimated. The "create offer" screen is probably the most complex in the app and a bigger change here would require basically a rewrite of that code. The complexity lies in all the calculations and validations and dealing with a lot of different options... On the data side it also comes with a profound change and I dont see any easy/good way how it could be added to the existing model.
Unfortunately no change of the existing fields is possible as the offers' hash is signed and it would fail validation by not updated peers on the p2p network layer, so they would not relay even those offers. The only flexibility is in the extraDataMap which is a hashmap for arbitrary new data. This was added to allow extensions but the required changes for that proposal would excceed the scope that field was designed for. Technically that could be hacked in (I guess) but with high costs on technical dept and added complexity, loss of type safety and readibility,.... Here are some options which come to my mind:
From dev POV I would prefer option 4, but would require more thought and investigation.... There are also some features for improving privacy in the pipeline:
|
Thanks for the feedback. A few people have mentioned a simpler option. I tried designing it so it could be simple. Here is a screenshot showing a user that would place one offer to sell BTC on one market. I think it is as simple as the current version. The 'fixed / variable' toggle at the top also helps to reduce the options someone sees from what they currently see on Bisq. |
I actually like that as when I set a fix price i can see the % immediately, making it easier to define the price. |
Yes, I think the variable amount setting can be confusing. Having an option to toggle it on and off would be good. |
Hell yes! This would help spread liquidity to lower frequented markets that appear to have no liquidity when first being investigated by newcomers... a lot leave as a result as well. I think this is vital proposal. At the moment, I am putting and getting more offers in EUR market and I'm not based there. I suspect this will continue to grow as various payment methods like TW increase... but I feel torn, as I want to support my local market as well and have had an offer in there for some time, only to then change it to EUR and get one much quicker. Would be fantastic to have multiple methods selected at once, and then where ever the trade was accepted gets locked in. Definitely for this version: Adapt the actual offer model and possibly the trade protocol itself to support this more open ended offer schema (or at least this multi-offer-one-deposit scheme). This may also require us to change the taker side and expand the acceptance configuration (at the moment the only thing you can configure when taking an offer is the account to use and the amount in case of a min max offer) In terms of too complicated, maybe current appearance is default - and advanced setting allows for complicated? Reporting wise - you'd want to make sure the only in the market it was eventually accepted that it counts towards, not all others it was subsequently offered in. |
Question - does the 'options' get saved at all? I imagine for myself, making multiple buy BTC offers - I'd be putting them in the same markets e.g. Transferwise everywhere, local market etc. etc. Would have to re-do every time? Or last one is default for next time? |
Yes, if this where to be implemented I would recommend having the ability to save payment payment method profiles. It would then make it easy to add the same overs multiple times. |
Fantastic. Can't support this enough. Liquidity wise - makes life a lot easier for traders / those selling BTC. I am not in EUR, but I sought out EUR offers - because of liquidity. I know sellers not in EUR, but sought out EUR because became known as having liquidity. I know locals who join a small market, and lament NO offers etc. This solves all of these problems, and more folks sticking around - spruiking Bisq. |
May need to redo with the offer protection? |
what is the offer protection? |
It’s great so see this discussed as I have been hoping for this option for quite a while. I am no developer, just a user who is greatly thankful for this network and all it has to offer. So I’d like to share some thoughts: Regarding complexity of user experience: I think it is important to have a simple “default layout” similar to the current one but an additional toggle to expand to “advanced options”. This does increase complexity but I still see it as a win over the complexity, risk and cost of having to create multiple offers to tap into multiple markets. I also really like the toggle to choose between fixed an variable amount. Regarding privacy: correct me if I am wrong but currently each payment account is treated by the network as an individual, not one user with multiple accounts. So if Alice completes multiple trades with Bob using a different payment method for each trade, It is not marked as the same user, right? I’d love to see this proposal pushed forward and want to thank you all for your work! |
Hi @angubite thanks for all the feedback.
Each payment account is treated as a separate payment account. The payment accounts of a particular Bisq instance are in turn linked to an onion address. The onion address is not permanent however and can be changed by the user. However if they change the onion address all the payment accounts for that particular instance of Bisq would be linked by the new onion address. Likewise a user could have multiple instances of Bisq, multiple accounts and multiple onion addresses for each Bisq instance. For example a user could have one instance for their fiat payment accounts and one instance for their altcoin accounts. You should not however run multiple instances on the same computer. If you do you should be aware of the risks of wallet corruption in doing so.
Yes there are privacy concerns to be considered. But currently if Bob makes multiple offers they would have the same privacy concerns. You can currently have as many payment methods set up in Bisq as you like and if you have live offers on Bisq these would be linked to you onion address. It is not ideal but the proposal above does not affect this. |
Closing as stalled. Maybe implementation would be less of a problem when offers are moved to a new protocol such as Misq |
I believe the privacy concerns are mostly moot... recent launch of auto-deleting trade info, which can be set by user.
IMO, Bisq 2 is WAY too far off. This change is so vital to continued growth of Bisq brand in general, I really do think it needs to be done before ANY work on Misq / Bisq 2. |
Kudos to @apemithrandir for out of the blue coming up with a solution that simplifies the UI issue. I prefer the way you originally described it in Matrix growth room chat with your "One Cancels Other (OCO)" option - it is the simplest and most effective solution in my opinion. If the advanced user enables that feature, when creating subsequent offers that match the fee & reserve requirements of an existing offer, it will share those reserves. This can be repeated for more offers. When one of those shared offers is taken, all offers in the shared group will be automatically removed. Does not require any change to offer entry UI (perhaps an indicator to show if it is OCO eligible), and as it is an advanced feature, the user would be educated enough to understand the effects of shared offers disappearing when one is taken. |
Yes, cool idea, and the way @jmacxx describes it also allows for different offers in the same group to share just the BTC amount, while premium and disable price can be customized differently; basically, no improvement is needed over this model, and as a non-java-programmer I still think this could be feasible in Bisq1 without waiting for the next big version, am I wrong? |
Hi @apemithrandir thanks for sharing your idea. Might be worth creating a new proposal to get maximum visibility for your suggestion. See here for general info about creating a proposal: https://bisq.wiki/Proposals Increasing liquidity by allowing multiple offers to share the maker's security deposit / allocated trade amount would be a good move forwards. |
Status: Closed? |
How to get this into Bisq 1... |
This proposal builds on top of @wiz's proposal #201
Description
For Fiat/BTC trades Bisq currently requires each offer to be associated with one payment method and one fiat. This is a limiting factor to liquidity. A trader whishing to place multiple buy / sell offers of the same amount needs to create multiple offers.
Liquidity would be increased in an offer for a specific amount of BTC could be offered using multiple markets / payment methods by placing only one offer.
Current trade protocol limitations
Currently the trade amount of BTC and the security deposit need to allocated at the time of offer. This means that any proposal needs to work within this restraint.
This proposal is in keeping with those restraints.
Opportunities of increasing perceived liquidity
Allowing each offer to have multiple ways for trader to take the offer would increase perceived liquidity.
Currently in Bisq Alice can make an offer to sell 0.01 BTC with a 0.006 BTC security deposit on ONE market using ONE payment method. This add 0.01 BTC to the liquidity on ONE market.
This proposal would allow Alice to make an offer to sell 0.01 BTC with a 0.006 BTC security deposit on MULTIPLE markets with MULTIPLE payment methods. This would add a perceived liquidity of 0.01 BTC to MULTIPLE payment methods on MULTIPLE markets. As each offer can still only be taken the once the actual liquidity (BTC available for trade) would remain unchanged.
The limit to the above would only be the number of available payment methods and the number of compatible markets.
This would have a dramatic increase in the perceived liquidity of Bisq. Ie less traders complaining their where no offers in their markets or on their preferred payment methods.
My Liquidity Definitions
I am using these terms in a descriptive terms, therefore, I thought it would be good to define what they mean to myself.
Actual liquidly - amount of BTC reserved in makers offers. Currently on the platform as I type this there is ~30 BTC reserved.
Perceived liquidly - The sum of the amount of BTC shown to be available on each market. Should this proposal be implemented, perceived liquidly would increase by a multiple of a minimum of 10. Giving a perceived liquidity of ~300 BTC show as being available.
How can this be achieved
This can be achieved though allowing traders making an offer to specify multiple payment method and markets for each trade. They will also still be able to control deviation from market price for each offer, and choose whether or not to sell a variable amount of BTC as they can now.
I have designed this from a front-end users perspective. I do not have knowledge of the code to know if this is possible on the back end.
Proposed offer screen designs
Please see proposed designs for the new offer screens as they will do a better job of explaining how this can be achieved than my words.
Sell BTC (Fixed trade amount)
Sell BTC (Variable trade amount)
Buy BTC (Fixed trade amount)
Buy BTC (Variable trade amount)
Notes on usability
The above examples are all shown with multiple offers / currencies. This adds complexity to this screen.
Please note however that when you load up the screen you will see pretty much what you already see now. You will then select your currency, and then select your payment type. The result will be a more simpler user experience that allows for additional complexities.
This would both meet the needs of trades still wanting to make just one offer and also traders that would like to make multiple offers at once.
Notes on altcoins (XMR / BSQ)
I did not consider altcoins for addition.
The text was updated successfully, but these errors were encountered: