-
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
Multi-Currency/Multi-Payment Offers in Bisq #402
Comments
On point. 💯👍 I have ranted endlessly about this — it removes opportunity cost for sellers, emphatically provides the ability for local markets to bootstrap long term. Will help go to market and spread the signal. |
Thanks for revisiting this proposal. It would be great to get this, or something like it, included in Bisq. Not sure if any of the @bisq-network/dev can comment on current feasibility? |
I fully understand and support the idea behind it, but I fear its code-wise quite a large and also risky change. I have not spent more time to look deeper into it, so maybe I am wrong, but thats my intuition about it. |
@HenrikJannsen thanks for the response. I would love if you were able to take some time to look closer at the proposal. Ideally what I would want is to know approximately how much work it might be and hopefully get it approved for DAO budgetting. Then take the DAO budgetting, approx. Workload and any bounties to Twitter and advertise the task to a broader community. I know as well even with this in place we are not guaranteed to progress but it would also have the added benefit of advertising Bisq to prospective developers at a time when tech companies are doing massive layoffs. |
I doubt that a new dev would be able to do that change, it touches many areas. Maybe @jmacxx could have a look for an estimation, he would be anyway probably the only dev who would be available and capable to do that. |
@HenrikJannsen I would trust your insights wrt to that. If @jmacxx could take a look it would be much appreciated. A DAO budget approval is my initial goal. Many community members would hopefully commit bounty Sats to supplement the DAO budget and entice implementation. |
Hi @apemithrandir, This is a 2-part estimate. Total for both: $20000.
|
My vote for this would be to implement both. I am certain once this was active it would lead to more offers being taken and would quickly result in more trade fees generated than the cost to implement. |
This would be very valuable to traders to implement. |
@jmacxx thanks very much for putting together that estimate. What does the procedure for getting DAO approval look like? Is this a task that would interest you to implement? |
The proposals maintainer will decide after some time whether enough support has been achieved here. @bisq-network/bisq-devs @bisq-network/dao could weigh in on whether this is a good idea for Bisq1, or too risky.
Yes, I like a good development challenge and this certainly would fit! Being able to scale Bisq over 1000 offers would be a huge win IMO. If it gets approval I hope @pazza83 can assist with project coordination (i.e. keeping it on track, providing feedback etc).
Your pledges send a strong signal for this feature. Perhaps pledges can be donated to the Bisq DAO at some point. |
Happy to help in whatever way it can. I think it would be a big improvement for Bisq |
Thanks @jmacxx for your estimation and summary. Here are my 5 cents... Create a new P2P network object called
|
Thanks @HenrikJannsen A limit for max offer would work well. No one needs to be creating thousands of offers at once. Not sure about number for a limit but initially I think around 20 would be sufficient. With regards a higher fee, whilst I am not against it on principle, I do not think the fee will be the barrier to spam. Most offers of around 0.01 BTC the amount most frequently traded on Bisq will have the largest proportion of the offer cost made from the miner rather than the trade fee. This would still be the case is doubling or trebling the maker cost. I also think the additional number trade revenue generated for Bisq with multi offers will increase the total amount of trades completed so fees for multi offers should only be higher if the network burden for handling them is higher (eg increased requirement for more nodes). Agree with the points regarding UI. Happy to work with @jmacxx to mock something up that will work for traders and keep complexity as low as possible for implementation. Agree about only allowing editing rather than individual offer enabling / disabling in the multi offers. Otherwise a user could just continue to add offers to the multi offer. Agree that any in included offer a selected account signing limit should limit the highest offer available to make.
Yes, but not for DDOS, more for if network costs are higher.
I think even 20 most pro traders will have less than 20 payment methods to choose from. If they have more it would be likely they are just creating multi trades using the same payment method but different accounts (more spammy). Maybe the limit could be max 1 payment accounts per payment method but up to 20 payment accounts in total. Eg ok to have; SEPA, SEPA Instant, Revolut, Wise, Faster Payments, National Bank
Yes, would the number of offers be proportional to the network costs of propagating them to the network?
I think reducing the max offers to 20 will limit this. But yes, it would be good to see failed trades not increase as a result. Maybe the estimated cost of this could also be included in any increased maker fee. |
I agree with @pazza83 on limiting to ~20 offers. If possible I would like to avoid a higher fee since once people become comfortable with the feature I could imagine even the casual user making a 2-4 offer type as default, eg EUR: Sepa+SepaInstant+Revolut+Wise. |
Yes, to put it mildly. 😄 Definitely appreciate the fine tooth combing and well thought out considerations in order to make this a reality (achieve said goals). @jmacxx 's proposal and doing both: 👌 . Am I right that then @HenrikJannsen's suggestion of multi-offer object, completely changes that/different route? Or just gives more detail?
Why? Is this just based on your proposal, or @jmacxx 's? Given this makes it sound like the above is a non-issue:
If the above Jmacxx is the approach, how can old mate ddos spam the network? What is the risk with all those offers providing possibly liquidity to the network? If it is the one same guy, could just block onion address - yes? If someone thought the offers were 'spam'?
Well is there a way to for instance you have X in security deposit, or certain amount secured in reserve and the marker seller has all their offers out there --- and say they have 1 Bitcoin to sell... their offers can keep getting accepted until that limit is reached? I don't know whether this is the ideal - but absolutely I think it'd be preferable to CAPPING the number of max currencies/payment methods. I don't think anyone is going to 'go select them all' but I certainly want the option e.g. SWIFT and don't care what currency, I should be able to offer that globally - and everyone sees in local market that option.
Local markets basically don't exist... I think this likelihood currently is very rare/non-existent. The offers taken would then disappear the others before being noticed/impacted. No liquidity and thus LEAVING BISQ FOREVER is a worse experience surely?! That omg, I tried to take an offer and someone got to it before I did... damn... I'll have to click this OTHER OFFER IN MY LOCAL MARKET BECAUSE IT ACTUALLY EXISTS NOW vs. not prior to this change. Benefits clearly outweigh the negatives. In general - lower fee's is important for additional benefits of using Bisq vs. CEX. Obviously single on chain transaction helps there (why supported previously). If as per Jmacxx's comment, no network increase - shouldn't be a reason for higher fees at all. I don't like the idea of a quota limits... the idea of capping it at 20... I think this neuters the point of removing opportunity cost, and impacts the ability to boot-strap local markets globally... so it'll be what, top 20 markets getting an idea, and the rest won't... Surely there are other ways to mitigate/remove ddos risk? Capping the limit of offers; if there isn't a burden on the network (Jmacxx comments) should be the last resort; certainly not the first. |
@Conza88 Some limit makes sense, since with a hacked API you couod code up a 1 million payment offer and god knows how that would propagate through the messaging system. |
@HenrikJannsen @jmacxx what are the next steps to seek DAO approval? |
Here is a link to to proposal process: https://bisq.wiki/Proposals I will announce this proposal in my proposal report later this month. After that will review the response to it. So far it is looking positive and likely to be approved. |
Understandable. Perhaps the limit is 180 then? 😆
It goes without saying anything is better than nothing, but I want to avoid needlessly artificially limiting the potential. E.g. SWIFT enables trading fiat globally. I want to see an offer in the Fiji local market/currency because there's no opportunity cost to not do so for sellers internationally. Bringing liquidity to these local markets helps them then organically bootstrap. Capping it at 20, in my mind is essentially: 🖕 to the other 160. It knee caps the real potential of the initiative. |
@Conza88 Good to see I have negotiated you from infinity to 180. |
😂 Conditioned upon the informed parameters above being fulfilled, sure. |
180 is a lot :) Just looking at the markets section on Bisq now. There are currently approximately 400 fiat offers. 180 for a single offer would be almost half this! If someone would make a few 180 offers it would quickly spam the network. Also not sure if anyone actually has access to 180 currencies with any payment apart from SWIFT, and the way SWIFT is implemented means that a user from almost any currency can take a SWFIT offer. @Conza88 what did you have in mind for a real world scenario of someone making 180 offers at once for all different currencies? |
Great! Make sure to link your proposal report when you get it done. WRT to this comment your latest comment: My hope would be that this feature would lead to 100s if not 1000s of more legitimate offers being created on Bisq (even with a "low" per offer limit). Do we know what the network limitations are like? Is there any way to benchmark it? Or is it a function of Tor (un)reliability? |
Here is the link to the report: bisq-network/roles#30 (comment) Would be great for those interested to give a thumbs up / thumbs down and any feedback. |
I think allowing 20 payment methods per trade will enable this. I assume pareto principle will be roughly true for Bisq. 80% of offers come from 20% of users. Allowing these 'power users' the tools to substantially increase the number of offers by 20 times without any increase in security deposit / trade amount requirements will see the number of offers increasing substantially. As far as goals, I would like to see Bisq hit 2,500 offers within 6 months of this being implemented. Currently it is around 600 offers at any one time. I also think that with the new offers comes more takers and hopefully this will be a self fulfilling increase in trade amounts.
This would be best answered by @jmacxx or @HenrikJannsen |
Marking this proposal as approved but will leave it open for the moment for any discussion to continue |
@jmacxx just gave myself and @pazza83 a demo of a beta version of the new OCO feature. |
Yes, the demo of the OCO feature was fantastic. Will be a great addition for both makers and takers. Makers get to use their security deposit for multiple offers and takers get the advantage of lots more offers to choose from. Really excited about how this will increase trade volume when implemented, |
Question - what's the situation with "sorry the offer is taken"?
E.g. I have no idea how quickly it gets updated currently, vs. any difference for this?
Now:
E.g. an offer might get taken and it takes 10seconds to sync and remove from being offered in payment methods/fiat currency area.
What happens when someone takes on the interim? Error message? Or takes it but failed trade?
How's that look with the new oco?
…________________________________
From: pazza ***@***.***>
Sent: Saturday, March 4, 2023 2:31:54 AM
To: bisq-network/proposals ***@***.***>
Cc: Conza ***@***.***>; Mention ***@***.***>
Subject: Re: [bisq-network/proposals] Multi-Currency/Multi-Payment Offers in Bisq (Issue #402)
Yes, the demo of the OCO feature was fantastic. Will be a great addition for both makers and takers.
Makers get to use their security deposit for multiple offers and takers get the advantage of lots more offers to choose from.
Really excited about how this will increase trade volume when implemented,
—
Reply to this email directly, view it on GitHub<#402 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AMMLWYUNWFLK6OD33GKUC3LW2IFGVANCNFSM6AAAAAAT26MAWI>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
These issues are hard to reveal in the basic tests shown thus far but @jmacxx might be able to comment from a code perspective. For the most part Bisq is unchanged and just sees extra offers and cancels cloned offers that share the maker tx id. I hope it doesn't result in more failed trades but I suspect there would always be a race condition there. The look is good if you like what Bisq looks like already. The UI is mostly unchanged aside from a right-click menu on the open offers page. |
Yes, I think what would happen is the same as when one trade tries to get taken by two people at once. I think one taker would get the trade, and the other would get the trade timing out with the message after a while saying the trade is no longer available. |
oco_demo1b.mp4 |
Sounds like this "race" is no different to the existing case where 2 takers could take an offer at about same time? One gets it, and the other can not - what happens for them? Does the same happen in this cloned offer case? This is great work by the way. This is going to be a huge multiplier of liquidity for Bisq, if it can be integrated. Thank you very much. |
Another option for implementing this feature would be to create a new payment method for wrapping multiple payment methods inside. That way its still one offer and there are no changes on the network layer required. The UI would take the sub-payment methods and apply the filtering and display. We support already multiple currencies for certain payment methods, so that part should not add much on the UI side. For showing the multiple payment methods we would need some new graphical representation in the offerbook table. When the user filters or searches it gets applied to all sub methods. Pro: Con: |
When you say it would not allow to use difference prices, does that mean you couldn't do multiple currencies? I think that the payment types that support multiple currencies are not that popular and the main idea for using this idea to expand usage is that people would pair an offer in a liquid fiat/BTC market with one in a less liquid fiat/BTC market. The likelihood of the payment types matching would be low. |
With % based price we can support multiple currencies. The fiat amount would be calculated just in time based on the %. Actually I just looked into the multi-currency accounts and they do not support multiple currencies in the offer only in the create offer screen the user can select one of the currencies, but the offer does not carry multiple currencies.
I did not mean to limit it so such payment methods, just mentioned it that we already support multiple currencies (but was wrong with that as its only at create offer time). Process from user perspective would be:
Technical:
Effort:
Limitation:
Risks:
To be sure that this concept would work, would require a deeper dive into the code base or a prototype implemention. But from my perspective I don't see any hurdle so far (which does not mean there are none). As mentioned above the downside is that the price cannot be changed and no fixed price can be used, which I understand might be a nice feature. But realistically we have to weight in the costs/risks and benefit. It is not only the cost for implementing the feature its also future costs by increasted complexity. Bisq is already highly complex, adding more complexity adds more burden for any future work. The offer domain is the core of the app and it goes to nearly all layers, so changes here have to be considered very well. I am actually not sure if the other approach to pack multiple offers into a new offertype would have less complexity/impact and gives more flexibility/feature support (e.g. diff. prices). Would require a test implementation of both variations to see whats easier and less risky. |
I think one of the downsides to this offer is not being able to adjust percentages per offer. For example if I was to place an offer for my 'home' currency I would be willing to change 1% less than if I place an offer with a foreign currency as I would incur forex fees. Also I would likely be willing to charge 1% less for offers that could be in payment methods completed in one day (eg Revolut) vs offers that could take up to 6 days (eg SEPA). The change of having different currencies and different trade windows is very likely with multiple offers. Therefore limiting the percentage would limit the number of offers one could offer in it.
Also altcoins are likely to lower offer markup percentages than fiat. Having all the offer groups above combined in one group would be achievable if the percentages per offer could be assigned to each payment method. Not sure what way this could be achieved but think a feature with multiple payment method AND multiple offer percentages is a lot more useful than a multiple payment method with only access to different payment methods with the same percentage. The other potential issues would be how signing / account age / payment limits work on the multiple payment methods. And likely it would be good to edit the multiple payment method to include / exclude a specific payment method. Editing payment methods is not something currently available, and creating a new payment method might impact the signing / account age / payment limits etc. |
Ok, I understand. Beside those concerns I think the previous model to wrap offers in a new offer type would be more clean anyway from code changes and offers more flexibility. |
That is slick. Big kudos. My question though - e.g. revolut, I can copy that e.g. AUD, and it makes 5 clones. I then edit them, and change the payment method/or currency to e.g. NZD, or EUR... fine. But is there anyway to save doing that every time? Or at least a longer term solution and this is phase 1? Currently - if I make 5 offers, manually updating them... and then one gets taken, and they all go... and I have to manually do those 5 once again from scratch... just indicating from a customer exp. perspective, it'll get old real quick... and this won't have the impact on liquidity we hope/expect it to. If I want to offer to buy Bitcoin in every fiat currency, every local market that exists... anyway to do that? In future? Perhaps adding to the drop down options of OCO * 1, or * 5 - is pre-defined offers that are saved? If so, 🌔 . |
You can copy an offer, but I don't know if it will work for this offers. |
So long as the offers are sharing the deposit transaction, any trade will require the offers to clear and new deposit transaction to be made. So there isn't a permanent way to keep the OCO offers that didn't trade live. I think having saved templates would help with easy of use in getting the offers back up there but you would always need another deposit transaction to get it going again (assuming that you had no other live offers you could clone). |
No, I think this would be implemented in phase 2. How it would be implemented would be influenced by how traders where using OCO and what their feedback was to improve the usability of it. |
Just giving this thread a gentle bump. Are we any closer to getting this into a Bisq version? |
I have completed the first round of code review changes @apemithrandir. |
@jmacxx great work getting part 1 implemented in v1.9.11. I will contact you for the 1m sat bounty |
Would be good to do a bit of promotion of this feature when the latest version is fully released. I will do a post on Reddit / Bisq Community site |
I boosted the latest RHR with You can now clone offers in the latest Bisq release 1.9.12. Cloning an offer allows offer makers to use the same security deposit for multiple offers. Here is a guide to cloning offers: https://bisq.wiki/Cloning_an_offer Hopefully I got it in before this weeks episode. |
Will close this as complete. Cloning an offer (OCO) now included in Bisq v1.9.12 This is the first part of this proposal implemented. Would be good to review in ~ 6-12 months to see how popular it is and if the second part of the proposal would be of benefit to be implemented as a tool for 'power' users. Many thanks for @apemithrandir, @HenrikJannsen, and @jmacxx for all the work on this. |
I am back again. There has been increased discussion on the Growth channel about this feature and I would like to propose it again. Here is my previous proposal:
#370
Here is @wiz's original proposal:
#201
Here is @pazza83's related proposal:
#288
Background
Short Version
If I am a maker on Bisq the biggest restriction to me posting multiple offers is the escrow requirement for each offer. Supposing I have access to 3 different currencies and 2 different payment methods for each currency. then if I wanted to create a buy offer for each of these I would have to escrow a minimum of 15% deposit + fees for each of the 6 offers. If I am a seller this is even more restrictive as I will have to escrow a minimum of 115% deposit + fees for each of the 6 offers.
I would like to re-propose @pazza83's solution to this problem whereby you would create a special multi-payment account offer.
See the other proposals for more background and discussion.
Description
@pazza83's proposal has the bulk of the details so I would refer people to: #288
I will make a few points of clarity in addition:
Technical
@chimp1984 was graceful enough to provide @pazza83's proposal with some useful technical feedback:
#288 (comment)
Neither myself or @pazza83 are qualified to implement this proposal, and this proposal will require more feedback from technically minded individuals.
Why Propose this Again?
I am proposing this again because most of the community agrees this would be an excellent feature to implement in Bisq in order to help bootstrap liquidity in smaller markets.
@wiz proposed this (or similar) idea over 1000 days ago, it was closed as approved but no project started. @pazza83 built on @wiz's proposal over 750 days ago, but this proposal was closed as stalled suggesting that Bisq 2.0 (or Misq as it was referred to then) might offer this improvement. Now we are close to getting a first beta version of Bisq 2.0 but this feature will not be available yet. It may be another 2 years until such features exist in Bisq 2.0, given our current developer resources.
I propose this for Bisq 1.0 again (rather than wait for Bisq 2.0) so that it can get approved and have a Development Budget allocation (as per here and here). If nobody within Bisq is willing to dedicate the time to this feature then I would like feedback from experienced contributors on how much work in Dev Days they might estimate this to take, possibly including the requirement of a new Dev to learn the codebase.
The community can then create a type of Job advertisement with the approximate DAO budget allocation plus our bounty Sats, together with details on approximate amount of work required. The community would go to market to advertise this and try and find a qualified developer(s) to join and take up the issue.
Even if this feature doesn't get implemented, I think having the budget allocation and bounty together with an advertisement will be useful to get eyes on Bisq and let qualified people know that there are paying jobs to be had working with the Bisq DAO.
The text was updated successfully, but these errors were encountered: