Replies: 23 comments 20 replies
-
An additional idea to lower teh barrier of entry would be to add a special kind of offerbook which does not contain executable offers but offer intents with some very basic information the user provides and knows without learning about Bisq (e.g. I want 0.01 -0.02 BTC for a good price. I can pay in EUR). It is very similar to the keybase trade model but bringing the trade execution settlement to the Bisq app and onboard a new user so they feel more comfortable to go on trading with the regular model later. It would also emphasise the social aspect of Bisq (you are trading with a real person, can learn from them, interact with them) which is a very distinguishing aspect not found in DeFi platforms like Uniswap or CEX. |
Beta Was this translation helpful? Give feedback.
-
Having the Bisq-2 allow for new traders, with no BTC, begin buying BTC on Bisq directly in the app would be a positive step forwards. Currently the Keybase model relies upon reputation. I like the idea of Bisq-2 having multiple identities so that an established trader could use on identity linked to reputation and/or BSQ bond to facilitate a trade with a new user, whilst at the same time have a separate identity for say the BTC/EUR market or BTC/BSQ market that does not link to any reputation or BSQ bond. The current Keybase model could be improved in Bisq-2 by the following:
To be fair there might not be much difference between the market above and a market for those who choose to use a reputation or BSQ Bond security model to complete their trades. Maybe the market above could be limited to a specific BTC/Fiat amount and/or only include sellers that have had their reputation verified and/or have a required amount of bonded BSQ. I really like all the possibilities that would come with Bisq-2 but I do agree that it brings with it significant UX challenges. This is made even more complex by being able to run Bisq on multiple clients. Would the idea be for the design to be mobile first? Should you be able to do everything on a mobile you can do on a desktop? Also are is a users client's able to connect at the same time / used interchangeably, or, will it still be the case that only one instance of client can be used? |
Beta Was this translation helpful? Give feedback.
-
Yes some sort of reputation will be key, otherwise scammers will take over. Yes I agree it will be very similar to the reputation based trade protocol, the intent was to provide a more simple user interface and bring in more the social aspect.
We don't have a dedicated mobile developer, so that would be one reason why thats rather a NO. The other is conceptually it will ad more complexity (some sort of relay nodes will be likely needed). Also for the semi-full version, it will likely only work on Android as Tor on iOS is a challenge.
The basic use cases should work on mobile as well. But have not thought deeper about it...
Thats problematic with the onion address (or I2P address). If you run both apps its not clear which one will receive it (I think Tor would behave like a load balancer, so randomly one or the other hidden service would get the message). Also data synchronisation will be a challenge. The apps supporting such features are all based on centralized services where all your data is kept, with such a model that can be easier achieved. |
Beta Was this translation helpful? Give feedback.
-
Thanks for explaining. So the multiple clients should still be seen as stand-alone as most users will be using one Bisq instance on one type of client. I assume the mobile light client will allow users to connect to their Bisq desktop or headless application? Would the UI for this similar to the mobile (semi) full node client?
This will be the client that increases accessibility by allowing users with only access to an Android phone to connect to the Bisq network.
Do you see Bisq-2 being developed primarily for a desktop application that can also be accessed via a mobile running Android? Could therefore a mobile option be a later addition to Bisq-2? I guess I am asking how high up the priority list is Bisq-2 being able to be run from a mobile device? |
Beta Was this translation helpful? Give feedback.
-
I have not thought too much about the mobile app. But basically the light client might have only minimal use cases as a full node is anyway needed. Similar like currently the API does not support all Bisq use cases. Bisq-2 has lot of challenges and comes with a lot of work. My focus is on the desktop app, but I would love if we can develop in parallel the mobile app as well, but it depends on dev resources. Atm there is no mobile dev and it would be a bit too early anyway as too many things are still very open and not worked out in details. |
Beta Was this translation helpful? Give feedback.
-
I have tried to lay out a possible user journey for creating an offer. The idea is to have a process which is easy enough for newbies to follow. Pro traders can choose to get displayed all the steps in one screen to get a faster experience. An open question is if we should support multiple protocols to be selected for an offer. Power trader will probably like to have this feature but it increases UX complexity quite a bit. Maybe we prepare to support it technically but leave it in the UI with a singe protocol selection, which will likely be the default use case for most users anyway. Selection of the contract type (e.g. Swap trades, Loans,...) is done by choosing the relevant UI menu item. This only models a swap trade (asset spot exchange). Swap Trade1. Asset selection
2. Set amount and priceHere the previous screen expands to show also the input fields for the amounts and the price information, fields and toggle. A advanced option icon enables to enter an amount range as well.
3. Protocol selectionThe amount/price section gets now visually into the background but user can still edit and change it
Table with protocols show different properties. Only those which work with the selected assets are enabled for selection. Choose trade protocol(s):
4. Settlement optionsSettlement options if protocol selection supports it. If the chosen protocols do not have optional settlement this section is skipped.
5. Protocol specific optionsDepending on the selected protocols there can be more options be set. 6. FundingDepending on the selected protocols there might be requirement for reserving funds for potential takers as it is the case with the Bisq multisig protocol. 7. Choose identityThe user can choose to use a new identity for each new offer (default) or if they have decided against that they can select which identity to use for that offer. 8. Offer summaryShow a summary of all details about that offer and a publish button to publish it to the network. |
Beta Was this translation helpful? Give feedback.
-
Yes, still trying out whats the best term here... I just want to avoid the buy/sell terminology as it does not work well with currency pairs where its not clear what the base (dominant) currency is, like when exchanging BTC-L to WBTC or altcoin-altcoin or fiat-fiat.
As we will start anyway only with 1 or 2 protocols and slowly grow that over time, I think for the start we dont have that problem anyway. But later when the full spectrum is available I am not sure if we can really make the selection for the user.
I think that will not work well as its for instance the payment method selection. If the user has only one payment method for that asset pair then we can auto select it as in Bisq but otherwise we cannot make the decision for them. I started yesterday a bit with it but I tend to just implement the technical part probably as a one page contains all options version which might be the "expert version" later with full control about all options. |
Beta Was this translation helpful? Give feedback.
-
This is really helpful. @ripcurlx I’ve started on a user flow diagram and will post it soon for feedback on design considérations. @chimp1984 when possible, please could I have the following details for the diagram: Could I know which one or two protocols Bisq2 will be initially using? If there is not yet a confirmed decision on this, could you suggest two examples that can temporarily be used for the user flow. Once this is decided, I would need information based on the 1 or 2 chosen protocols: Protocol selection
Settlement Options
Protocol Specific Options
Funding
Thanks! |
Beta Was this translation helpful? Give feedback.
-
I think a reputation based protocol (similar like users trade in the keybase channel, security is based on some sort of reputation) is likely the easiest to implement. I plan to start with that first as it also does not require wallet integration. The next priorities from my side would be the current Bisq Multisig based but that will require also the DAO integration so that will come with higher effort.
Yes I think with those 2 mentioned we cover quite some space which is currently not served in Bisq. Current Bisq will probably also operate just in parallel until all the features are implemented in Bisq 2.
The reputation based protocol is totally open to asset selection. People can trade anything against anything also fiat-fiat. Though we should make clear a boundary that we do not want to support a OpenBazaar like marketplace as this comes with very different challenges, even there is quite some overlap technically. The Liquid swap will support all Liquid assets, main focus will be on BTC-L and USDT. I guess they started with NFTs as well and game tokens. I am not following (and not interested) in those, but as long they can be swapped as an asset on Liquid there should be no limitation. Contrary to Bisq there will not be a curated list of assets users can trade but will be open to anything users want to trade as long its technically supported.
For the reputation based protocol there will be also no limit. We will likely integrate the major settlement methods which we support in Bisq (SEPA, ZELLE, Revolut,...) but contrary to current Bisq there also will not be a curated list of settlement methods, but users can add their own in some flexible format (this will lack some validation features and counter-parties need to pay more attention to potentially insecure methods). For Liquid swaps both sides are settled on-chain on Liquid. A main challenge for that reputation based protocol will be how to make it sufficiently secure to keep scammers out. It might be that initially only DAO approved sellers can trade there. E.g. to limit it for users who want to buy their first Bitcoin from trusted Bisq contributors/market makers who have set up a BSQ bond and got support by DAO voting.
There will be some options which will be available for most protocols and mostly integrated into the relevant UI area.
Reputation based protocol:
Liquid swaps:
There might be options for the fee payment for any protocol.
The advanced options are those which are not required to be changed by the user and can be left to default values like security deposit in Bisq. On the other hand selecting a payment method can only be pre-selected in case the user has only one payment method for that currency but of there are multiple the user need to decide and we have to make the choice more prominent in the UI.
Regarding fees I wrote above already. It largely an open question.
I think thats as well only required for the Bisq Multisig protocol. Atomic swaps require to have funds in the wallet so that when a taker takes the offer it can be executed, but it will behave similar like BSQ swaps where the funds are not "reserved", instead we check the wallet balance if it can serve a potential trade. This allows multiple offers which would in sum exceed the wallet balance. To avoid lack of funds problems we update the visibility of offers each time the wallet balance changes, so if there is not enough balance for a certain offer this offer will get hidden from the network until the wallet has sufficient funds again (it will get automatically republished then). Hope that clarified things. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the detailed response, this most definitely clarifies a lot of points. The user diagram will hopefully help to identify some open areas and introduce new considerations. |
Beta Was this translation helpful? Give feedback.
-
I found out now whats the confusing issue in current Bisq for people with Buy/Sell direction. We use always BTC for the buy/sell perspective also for altcoins where the base currency is the altcoin. The concept of base curreny and quote currency carries already the information what is the part which one considers to buy or sell because the quote/price is the price for 1 unit of the base curreny, so the base currency is always what to buy or sell. For BTC-Fiat that is BTC and is also as it is used in Bisq. But for altcoins the altoin is the base and here the confusion happens as in Bisq we treat also BTC for the BUY/SELL perspective. I intended to drop the BUY/SELL concept/terms in favor of "want/ask" and "have/bid" but that does not match well with the market and quotes. There is some network effect which has led to a one sided market (e.g. There is only a BTC-USD market but not a USD-BTC market). For some Forex inverse markets exist (e.g. EUR-USD and USD-EUR) but that is expectional and we would not get market quotes for any crypto markets if we arbitrarily flip base and quote currencies. For new markets or niche markets there might be in fact that some exchanges list it the one way and others the opposite way and there might be 2 opposite quotes, but I guess we can ignore that and network effects will favor one as the winner over time. So my current plan it so move back to the BUY/SELL term, basically as used in the Fiat markets in Bisq. And I realised that the market selection is the first important step. So my updated concept is:
I had implemented most of that alreayd but after figuring out that the ask/bid concept does not work well I will redesign what I have and move on to the option selections... I also did check some of the CEX where I have an account and they basically all follow that concept as well. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
I have started a User Flow diagram of the reputable trader and new trader user journey demonstrating a way in which their paths could potentially cross to make a successful trade. This helps to identify user behaviour and pinpoint delays, successes and drop off points. When you go through this it is important to note how you feel during the journey. Feedback is very welcome as it helps with identifying and working on improving these touch points. The aim is to keep creating scenarios based on real life users to consider all aspects of the user journey. The diagram is based on the scenario below- a new trader wanting to purchase BTC using the Bisq 2 reputation protocol: Scenario'I am a new trader, I would like to trade Fiat to BTC to get started on Bisq. I’m not sure how much I would need as I am not too familiar with Bisq. I would prefer to trade with an experienced Bisq trader but I’m open to less experienced members of Bisq too.' Click here to view User Flow @chimp1984 I have just seen your posts, could you list any key options I may have missed out on? UX journey explainedWelcome page Tutorial Contract type
Trader types3 target markets have been identified for the reputation pathway.
Reputable traderProfile Create username Payment method
Custom option should always be a secondary option.
Publish Terms Notification of potential trade When the trade is over the new trader will click on the 'Successful Trade’ CTA, adding to the reputable traders track record. Leave a note after trade New traderExchange Fiat equivalent should be displayed, this is a user friendly feature to help users familiarise themselves with cryptocurrency amounts and also to continue the user journey without having to leave the UI for a conversion calculator. Short note List of reputable traders Trade Waiting for an available offer Trade was not successful? Open support Trade complete page New trade? Finish 'Offers' Tab
|
Beta Was this translation helpful? Give feedback.
-
Here an update of the create offer process: I combined the settlement method selection with the account selection. For Fiat the user has usually an account set up. On the crypto asset side they can choose to support alternative settlement methods next to mainnet. E.g. user accepts also BTC over LN if protocol permits that. If user has no account set up a create account button is shown. The UI is very preliminary here and would require much more refinement. E.g. if there is only one option we dont want to show it as a selection component but maybe if it makes sense as informational text (when there is only 1 matching fiat account its probably still good to show which account is used but user does not need to do anything). For the crypto side it does not make sense to show it. I leave it from here to go over to the offer book and take-offer screens. The settlement/account/options part will require more detail work and will likely see some iterations, but I think it becomes more clear when having the full process in place. Also as some others suggested, the protocol selection should likely be done initially. Maybe even by having a different menu item or some other graphically different approach rather than to treat it as a selection option among others. |
Beta Was this translation helpful? Give feedback.
-
Here is an update on UI prototype: |
Beta Was this translation helpful? Give feedback.
-
@ripcurlx |
Beta Was this translation helpful? Give feedback.
-
Got a Liquid swap protocol structure implemented (no wallet integration yet, so no real txs) as well as open offer view, pending trades and closed trades views. The views are very basic but are functional with the domain data. Trade protocol steps are not implemented yet as Liquid swaps behave like BSQ swaps without manual steps. Will implement it when doing protocols which have delays and human interactions. Will work next on the user name domain and burned BSQ based reputation protocol and chat. |
Beta Was this translation helpful? Give feedback.
-
It's all looking amazing! I think allowing the user-defined "Other (please specify)" field will yield very positive surprises and very welcome flexibility as new payment methods appear in the next few years. The multi-interface part will be important - there are large regions of the world where it is mobile or nothing. As for trade protocol selection... I think we should not hide it too much. At least at first we should allow some experimentation and maybe even an user-defined option for off-Bisq reputation "Other (please specify)". My guess is that:
So the same user could presumably want to use all three protocols on the same day without wanting to change settings every time... However that is only my guess. I could be absolutely wrong and maybe some completely new protocol will come to dominate. That is why I believe it is very important to keep options open for the future and allow user defined fields. I can imagine that a mobile app would be much more streamlined and maybe offer fewer options to keep UX simple. |
Beta Was this translation helpful? Give feedback.
-
I feel like this is way too complex. It will take a ton of time to code and also 98% of the people will just use the defaults and be too scared to change them. Plus, if we ask the user to make so many decisions/climb a big learning curve we'll just lose users. Can we do our research to see what small combination of these will hit 90% of of the mass-market use-cases with minimal risk and drop the rest? The pareto principle has been validated in my life time and time again. By not doing the research in the name of "future flexibility", we're really just pushing work on thousands of users that we should be doing ourselves. We should map out the best path or three through all of these parameters and just implement that - if we absolutely need to, we could have a setting that says "risk aversion level" that says "low, medium, or high", and that could motivate up to 3 possible combinations of all of the above parameters (right now there are 2764800 combinations). |
Beta Was this translation helpful? Give feedback.
-
I agree that we should do that @andyDoucette . We can map out the best path for each market and make it the default option. We can even hide the other choices behind an "advanced options" icon so that newbies don't even see it. But we should not close the door to those options or to adding new ones in the future. That is a big reason for the current modular architecture - Bisq1 was built differently and closed the door on many innovations that came out afterwards and are highly demanded (eg: lightning network, XMR atomic swaps, many payment methods, altcoins, etc..). Bisq1 also changed protocols more than once. The last one was from 2-of-3 multisig (arbitrators) to 2-of-2 multisig (DAO). The change broke backwards compatibility and forced all users onto a single path... with the modular architecture we could have just added the new protocol as a choice and users could have transitioned voluntarily and gradually.
Yes, but if you check out the history of P2P exchanges like Localbitcoins, Paxful, Hodlhodl you will discover that the pareto 80% solution that is most used now is not the same one as was used on launch or in the first year. It evolved with tech. It's also not the same for every market. What 80% of US users need is not what 80% of Nigerians want. A one size-fits-all solution, while optimizing for UX, will never work for 80+ markets. So again, I agree that when building Bisq2 we should make choices for users, especially as to which options are added first. But without losing the flexibility to add new options in the future. Future flexibility will be extremely important if we want Bisq2 to succeed in reaching China, Nigeria, Russia, Argentina, Mexico, India... and many other markets where Bisq1 has totally failed to take off. Or regarding a market which currently is almost 80% of Bisq volume: XMR/BTC. Haveno would not even exist if Bisq1 had been more flexible. If the XMR users and devs that are working on it could have just built an additional Bisq module, they would have never undertaken the huge task of building an alternative project from the ground up at massive cost. |
Beta Was this translation helpful? Give feedback.
-
Let me try to illustrate the importance of flexibility with 2 examples:
If we make a choice now and exclude these options forever, Bisq2 will be locked out of the best tech for P2P exchange. We might end up having to start again with Bisq3 or, more likely, Bisq will just fade away into irrelevance as dev and user interest moves on to other projects. However if Bisq2 is a flexible platform - any dev that wants to try out one of these new techs will save a lot of time by just working on a Bisq module for that. Instead of having to spend years building the entire platform, they can plug into the Bisq2 platform, liquidity and community. |
Beta Was this translation helpful? Give feedback.
-
I just had a conversation with @UX-P about Bisq-2. To summarize the information about the UX challenges and rough ideas I thought its best to post it here for further discussions.
Bisq-2 comes with multiple options on many different layers.
I give here an overview about different categories. Some are constrained by each other, but some have flexibility (e.g. Fiat settlement is a flexible option for current Bisq protocol but not BTC settlement as its integrated with the security aspect). I give examples of the options we intende to integrate. Initially it will be limited to the most important, but conceptually those options are open.
Options are roughly sorted from "best" to "worst" according to core values of Bisq (security, privacy, accessibility, convenience). I only add those where we have already experience or at least a good idea about it. There will be more like interesting options using Oracles, DLC based contracts,...
These options create a variety of trade-offs between different core values:
It would be good to show for each option the trade off (e.g. some graphical element indicating that the selected option is great for security but comes with some costs on convenience). This should help to build awareness that one cannot get the best of all -otherwise we would only implement that ;-).
To not overwhelm the user with the amount of functionalities and options we need to find a UX solution which radically simplifies all that.
I think it is possible to start with a default (recommended) path and guide the user through the various steps, offering options to dive deeper at each level and learn about the context of each option. It might have some aspects of a guided education experience where the user learns more iteratively and related to their goals (e.g. a hardcore BTC maximalist does not need to learn about XMR-BTC swaps).
It could start with a UniSwap like interface of what the user wants (I only sketch out an asset swap here).
Initially the user sees 2 sides for the assets with an amount text field and a combobox for currency selection.
In between the 2 fields is the price which is set to the market price by default. A next button moves to the next step.
I have:
[____]
[EUR]Price:
45 000
BTC/EUR
I want:
[____]
[BTC][>> Next]
Then in the next screen we move further down the options tree (select protocol,...). Maybe we can use an approach to derive information from the application data to select the recommended option. E.g. if the user has BTC in their wallet the protocols requiring BTC are in the recommended options list.
Beta Was this translation helpful? Give feedback.
All reactions