Skip to content
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

Have a clearly defined process for how Burning man trades BTC from donation and trade fee addresses for BSQ #367

Closed
pazza83 opened this issue Mar 3, 2022 · 34 comments
Assignees
Labels

Comments

@pazza83
Copy link

pazza83 commented Mar 3, 2022

This is a Bisq Network proposal. Please familiarize yourself with the submission and review process.

References:

Donation Address Owner - Bisq Wiki
Donation Address Owner - Role
Arbitration; Donation Address Owner - Bisq Wiki

Background

The Donation Address Owner, AKA Burning Man, provided an essential role for Bisq. One of their roles is to buy BSQ using the funds they have received in the following BTC wallets:

Traditionally Burning Man has been buying BSQ on Sundays. Recently they have proposed they will be limiting to their buys to BSQ Swap offers.

Therefore, if Bisq traders or contributors want to sell some BSQ Sunday is a good time to sell.

The BTC sent to the above addresses is usually 1-2 BTC a month so Burning Man trades make up a significant percentage of the BSQ/BTC market volume (eg February 2022 had a BSQ/BTC volume of 4 BTC).

Problem

About 12 months ago @refund-agent2 started to buy BTC from burningman with 30 day average, as opposed to buying it on the open market. At the same time Bisq also began to only partially reimburse high volume trades.

The two actions above slightly changed the dynamic of how Burning Man bought BSQ. The following is my assumption from reading the issues so would be good for @burningman3 to confirm the process.

Previously to the two proposals Burning Man bought BSQ with BTC from the Trade Fee and Donation Address on the open market
Since the two proposals Burning Man buys BSQ with BTC from the Trade Fee Address on the open market, and then trades with Refund Agent and partially reimbursed traders using funds from the Donation Address.

This change of dynamic has resulted in a build up of funds in the Donation Address. Funds build up in the donation address for a few reasons:

  • @refund-agent2 charges arbitration fee (effectively does not give traders a full refund, this leaves funds available in the donation address as he is asking for less in reimbursement)
  • Some traders that have been partially refunded might not contact Burning Man for a refund.

Currently funds in the Donation Address are just over 4 BTC. Whilst this is not an issue in itself, I think it would be good to put in place a process for how funds are spent to stop the build up of BTC in the donation address. This decreases the risk to the DAO.

Taking into account the above and commenting on the current situation I think the build up of BTC in the donation address has caused a decrease in BSQ volume. The current amount of BSQ in the donation address would purchase 148,754 BSQ at todays 30 day average price. To put that into perspective the total contributor requests since September 2021 have been 146,732 BSQ. The amount of BTC in the donation address therefore represents about 5 cycles worth of contributor compensation requests.

Anecdotally contributors have expressed concerns that they are finding it increasingly difficult to sell their BSQ. This is despite putting up their offers on a Sunday. I think the fact the Burning Man has been trading with the funds from Trade Fees and not the Donation Address is a significant contributor to this.

Outcome

Burning Man to use funds from both addresses to:

  • Trade directly with @refund-agent2 shortly following their reimbursement request
  • Trade directly with traders that have been partially reimbursed following their reimbursement request
  • Use all remaining (unallocated for the above) funds to buy BSQ on the open market

Considerations

Burning Man is providing a service for the DAO. Therefore, I think the DAO should have some input as to if they do or do not want to have some parameters of what prices Burning Man should trade BSQ for.

My thoughts are BSQ is should only be bought by Burning Man when they can achieve a BSQ/BTC price equal to or less than the 30 day weighted average. I have also considered if it would be appropriate for Burning Man to make offers to buy BSQ when they are unable to achieve Taking offers to buy BTC for the price above. I believe this would have a positive impact for the DAO, essentially ensuring the maximum amount of BSQ can be bought as possible.

The alternative would be for Burning Man to buy BSQ/BTC at price less than or equal to a given percentage over the 30 day weighted average. This would be less beneficial for the DAO, but more beneficial to users that wanted to sell BSQ for higher prices.

Of course another alternative would be a more Laissez-faire approach as just let Burning Man do as they see fit.

Solution

DAO to decide on a clear process for how Burning man trades BTC from donation and trade fee addresses for BSQ.

DAO to decide on it they do or do not want BTC building up in Donation Address.

Any process decided upon should be communicated in the wiki for buyers and sellers of BSQ or anyone with an interest in Bisq.

I think the wiki could do with an update and would be happy to update it and include the outcome of this proposal, and also the related recent proposal have a clearly defined process for how users with accepted DAO reimbursement requests can trade with Burningman.

@pazza83 pazza83 added a:proposal https://bisq.wiki/Proposals re:processes labels Mar 3, 2022
@pazza83 pazza83 self-assigned this Mar 3, 2022
@ghost
Copy link

ghost commented Mar 3, 2022

"BSQ should only be bought by Burning Man when they can achieve a BSQ/BTC price equal to or less than the 30 day weighted average"

Given that BM inventory grows at a quite steady pace 1 - 2 BTC each month, if BM only buys "cheap" / below average prices:

  • It can lead to a market stalemate, with BM accumulating a large inventory of BTC waiting for people willing to sell "low".
  • Market participants can see the BM inventory growing and refuse to sell "low".
  • BM's inventory grows, huge risk to the DAO.

The other proposal of "buy BSQ/BTC at price less than or equal to a given percentage over the 30 day weighted average". This seems like a good idea to avoid a huge spike in price when BM liquidates their inventory.

BM making several offers in addition to the Sunday buy event seems like a good idea to improve market liquidity.

@pazza83
Copy link
Author

pazza83 commented Mar 3, 2022

The other proposal of "buy BSQ/BTC at price less than or equal to a given percentage over the 30 day weighted average". This seems like a good idea to avoid a huge spike in price when BM liquidates their inventory.

What would you suggest the percentage over to be?

@w0000000t
Copy link

"up to N% over 30d avg" is an elegant solution to both having BM funds spent in BSQ, and also BSQ price go up.
Currently, 3000sats is a rough estimate, 5% over that would be 3150sats, not a whole lot, plus allows for some space in which makers can compete, and BM would still take the cheapest one which would be probably higher than 30d avg anyway.
Just wanted to chime in ;)

@MwithM
Copy link

MwithM commented Mar 3, 2022

I prefer the laissez-faire option, but with some more transparency.
AFAIK, now burningman just takes best sell BSQ offers.
I think that as long as burningman announces an estimate amount of BTC planned to sell, then the market will adjust to that: more BTC buyers will place offers if burningman announces having a lot of BTC to sell.
Usually there's a lot of sell BSQ offers so burningman buying at a huge price has never been a problem.
If burningman finds an anomaly like an unexpected lack of BSQ sellers, he could just wait for next week according to his own judgement. Another anomaly is the current situation, with 4BTC to sell: I don't expect him to sell everythingl in a single trade event as weekly total BSQ trading volumes don't usually exceed 1 BTC.

I would like to know if there's a min or max amount that burningman is willing to take per each trade. While there should be no issues with taking a huge offer, taking small offers generate extra costs.

@ghubstan
Copy link
Member

ghubstan commented Mar 9, 2022

BM making several offers in addition to the Sunday buy event seems like a good idea to improve market liquidity.

I like this idea, and I like the effort to make this process more transparent.

I do not have an informed opinion about BM buying N% below, at, or N% above the 30 day weighted average.

@clearwater-trust
Copy link
Member

I agree. This issue should be priority one, as it directly reflects the health of Bisq.

I don't understand why the address would have anything over a very minimum amount. What is preventing the address from being FULLY LIQUIDATED on a regular schedule?

We should prevent this address from becoming a LIABILITY.

by liquidating its contents on the regular.

@burningman3
Copy link

So far I have taken the offers at the best price, I think that is a reasonable strategy. I don't think there should be a minimum amount.

I agree that the amount that is building up in the burn address needs to be traded, but I have been told there are refunds that would trade with me. Since that has not happened for a couple of months it makes sense to assume there will be no refund trades. When this proposal has a conclusion I will know how to act.

I think it would be better if the burning man could just trade whenever they feel like with the open market, without announcing it. This would keep the supply of reasonably priced BSQ more balanced over the week. Maybe with a check that the traded price is not too far from the 30d average.

@pazza83
Copy link
Author

pazza83 commented Mar 12, 2022

Thanks for the input.

I think it would be better if the burning man could just trade whenever they feel like with the open market, without announcing it. This would keep the supply of reasonably priced BSQ more balanced over the week. Maybe with a check that the traded price is not too far from the 30d average.

I would be in favor of Burning Man trading throughout the week.

What percentage is 'not too far' from the average?

What are your thoughts on making offers at or around 30 day average if there are not enough trades to be taken?

@burningman3
Copy link

'Not too far' from average has to be within an expected range as seen historically. I would measure that vs BTC since that is the pair that is trading. I don't know that number, but it should be possible to find out.

Making offers means I would not continue the burning man role since you would have to be always online. I don't think it would make a big difference to the market if the burning man makes offers or takes them, but I could be wrong.

@pazza83
Copy link
Author

pazza83 commented Mar 12, 2022

Thanks, @burningman3.

Is it possible for you to be more specific with "Not too far' from average has to be within an expected range as seen historically."

Burning Man to take all offers below N% over any 30 day weighted average within the last X months?

I think the lack of liquidity, large spreads, and Burning Man only being a taker means it would be good for the above to be clearly defined. Also if participants knew what could be expected to be taken they would make their offers accordingly.

Here is the current BSQ market chart with rough over current market percentages shown.

BSQ

@MwithM
Copy link

MwithM commented Mar 14, 2022

If there are more regular trades and burningman addresses are close to 0 (except amounts reserved for reimbursements) then there is no need to announce how many BTC are going to be bought in advance.
I prefer more regular trades if burningman wants to do it. I thought burningman only bought on Sundays for availability.

I think the lack of liquidity, large spreads, and Burning Man only being a taker means it would be good for the above to be clearly defined. Also if participants knew what could be expected to be taken they would make their offers accordingly.

About pricing, I think it works ok as it is now, burningman taking best offers. Maybe not taking offers over 10-20% of 30 day average would be a good thing, but as burningman is already a trusted role, I think he should know what to do when something strange happens.
I'd like to know the min amount of the offers he will take though.

@w0000000t
Copy link

w0000000t commented Mar 14, 2022

I think it would be better if the burning man could just trade whenever they feel like with the open market, without announcing it. This would keep the supply of reasonably priced BSQ more balanced over the week. Maybe with a check that the traded price is not too far from the 30d average.

If by this, it is intended that rather than only buying on sundays, BM will buy whenever, but still regularly at a constant pace, then I'm all for it.

Also, we have discussed extensively this both in support meeting calls, and on other threads on GH... yet I don't have a strong opinion about making sure to buy BSQ only in a selected range of price which is lower than 30d avg for example; since the role of BM is to "buy BSQ and burn it" then the way I personally see it, is for BM to just buy whatever is cheaper, until there's BTC available to spend.
Maybe set a definite percentage to limit speculation, like "no more than 5/10/20% over 30d avg", yet this upper limit shouldn't be too strict IMO (i.e. no less than 5% over 30d avg).

@pazza83
Copy link
Author

pazza83 commented Mar 14, 2022

@MwithM

About pricing, I think it works ok as it is now, burningman taking best offers. Maybe not taking offers over 10-20% of 30 day average would be a good thing, but as burningman is already a trusted role, I think he should know what to do when something strange happens.

Yes, I think the burningman role is crucial for Bisq and involves lots of trust. That being said I think trust should be minimized as much as possible.

One of the issues I see with having no defined percentage is that a malicious burning man could take their own trades. With the spread being so large a malicious burning man could accumulate BSQ buy buying at a decent percent below average and selling it back to themselves at any price above the market rate. Setting a defined percentage would minimize the impact of this, or at least make it a less profitable endeavor.

A set percentage would also allow sellers of BSQ, whose offers where not taken, to check trades that have taken place by burningman and then confirm if their offer should or should not have been taken. This would remove the ambiguity around the current process.

I'd like to know the min amount of the offers he will take though.

I think they should take offers according to price low to high, regardless of size. There might be a slight increased cost of miner fees on the smaller trades to the percentage of BSQ burnt but this would be acceptable given the additional transparency provided.

@w0000000t
Copy link

to check trades that have taken place by burningman and then confirm if their offer should or should not have been taken

offers taken by BM are shown in relevant GH thread, correct?

@burningman3
Copy link

Each cycle there is a burning man report where the trades can be seen, like this bisq-network/roles#80 (comment)

I think all offer sizes should be taken, starting with the best price.

I suggest that the trading should not be announced ahead of time. The availability of BSQ should then be more even over time as BSQ sellers keep offers up longer. This is good for users that want to buy some BSQ. Less good for contributors. Probably better for the project as a whole.

Having a price limit of 20% from the 30d average sounds good, but it might result in the burning man not selling for a while as the average adjusts during big swings.

@ghubstan
Copy link
Member

I suggest that the trading should not be announced ahead of time. The availability of BSQ should then be more even over time as BSQ sellers keep offers up longer. This is good for users that want to buy some BSQ. Less good for contributors. Probably better for the project as a whole.
...
#367 (comment)
Making offers means I would not continue the burning man role since you would have to be always online

The situation is bad enough for contributors. Please do not change the process in a way that is more harmful to contributors.

@MwithM
Copy link

MwithM commented Mar 19, 2022

I don't think that burning man buying more frequently and then not needing to announce when or how many BTC is he buying is bad for contributors, as long as the BTC aren't kept into the DAO address without a justified reason (reimbursements).
I find this much better than the current weekly trading event.
Having a schedule (any day of the week from 20.00 to 21.00 UTC or similar) wouldn't hurt anyway.

Having a price limit of 20% from the 30d average sounds good, but it might result in the burning man not selling for a while as the average adjusts during big swings.

To clarify, I was thinking about not buying BSQ if the price was 20% over spread, not under. You should take any sell BSQ offer, no mater the price. Bad for current BSQ sellers as they sell for a lower price, good controlling BSQ inflation as more BSQ will be burnt.
In the rare event where there are no BSQ sellers, maybe you should be the one placing buy BSQ offers at 20%, but thinking a lot about this is not worth unfortunately.

@pazza83
Copy link
Author

pazza83 commented Mar 19, 2022

Proposed process

I have summarized the above, to see is a rough consensus:

Burning Man to use funds from both fee and donation addresses to:

  • Trade directly with the Refund Agent shortly following their reimbursement request
  • Trade directly with traders that have been partially reimbursed following their reimbursement request (limit of one cycle post reimbursement)
  • Use remaining (unallocated for the above) BTC to buy BSQ on the BSQ/BTC market
    • Buy BSQ with the lowest priced offers first
    • Take offers to sell BSQ regardless of size (small or large)
    • Not take any offer with a price 20% above the rolling weighted 30 day BSQ/BTC average

Other notes

  • Burning Man to never make offers to Buy BSQ. Only to take offers from others.
  • Burning Man to take offers at least 4 times per cycle
  • Burning Man to take offers with no announcement Burning Man to announce at least 50% of the time when they are taking offers, other times can be done with no announcement.
  • At least once per cycle, when taking offers, Burning Man should use all BTC funds up to the point where sell BSQ offers are 20% above the weighted 30 day BSQ/BTC average.
  • Burning Man to post trades taken, and proof of burn of their role issue, this is currently being done.

As Burning Man is not taking offers with a 20% above the weighted 30 day BSQ/BTC average there may be occasions that BTC funds build up in the fee or donation addresses. This will likely only be for a short period as it will resolve with normal market cycles.

I think the above would make the situation more preferable to contributors in that they know that there offers to sell BSQ will be taken as long as their is enough liquidity in the Burning Man addresses (publicly available) and they do not make their offer over 20% of 30 day BSQ average.

If people are happy with the above please can they give a thumbs up.

If people are not happy with the above please can they give a thumbs down, and if possible mention which parts they are in disagreement with, or think have been missed.

EDIT: 20.03.21
Updated above to include Burning Man announcement when they will take offer at least 50% of the time.

@w0000000t
Copy link

I approve of the above; re-reading and re-thinking this though, I wonder if we really want to "stop" BSQ to appreciate at over 20% per month while there is no such limit for depreciation... but maybe that won't really constitute a problem.

@ghubstan
Copy link
Member

Can there be some compromise here:

Burning Man to take offers with no announcement, should happen at least 4 times per cycle.

Can he announce 2x per cycle? Having to constantly stay online is onerous.

@pazza83
Copy link
Author

pazza83 commented Mar 19, 2022

Can he announce 2x per cycle? Having to constantly stay online is onerous.

Yes, I think this is a fair point,

@burningman3 would you to be happy to announce trades at least twice a month for users that do not want to have to stay online al the time?

@MwithM
Copy link

MwithM commented Mar 19, 2022

I agree with the proposal.

To me it's a question of how many times is burningman going to be trading per cycle. If it's only going to be 4 times per cycle, then announcing when and estimated BTC to buy is very important. If it's going to be more frequently (in a daily basis or at least twice per week) just knowing at which hour would be enough.
I would leave this decision entirely to burningman's availability.

@burningman3
Copy link

The main changes with this proposal should be to have a clear schedule when funds in the donation address can be spent by burning man. More clarity is needed. How long do users have to start requesting a reimbursement? What if the discussions around the reimbursement takes too long to get accepted in the next cycle but are then accepted in the one after?

I don't think there will be a big change in BSQ bought on market as a result of this. There is one big output that has not been claimed by a user which is the reason there is more than the usual amount of BTC in the donation address. That is the reason for this proposal I believe. I doubt there will be many such cases.

I suggest making the announce of burning man trading not strict but recommended.

@pazza83
Copy link
Author

pazza83 commented Mar 19, 2022

The main changes with this proposal should be to have a clear schedule when funds in the donation address can be spent by burning man. More clarity is needed. How long do users have to start requesting a reimbursement?

I agree, I opened another issue at the same time as this one:
Have a clearly defined process for how users with accepted DAO reimbursement requests can trade with Burning Man

It would be great to have your input on this proposal also :)

What if the discussions around the reimbursement takes too long to get accepted in the next cycle but are then accepted in the one after?

I think I proposed reimbursed users should have 1 cycle to trade with yourself following their reimbursement request being accepted. After that there would be no special privileges for them to trade directly with yourself.

I don't think there will be a big change in BSQ bought on market as a result of this. There is one big output that has not been claimed by a user which is the reason there is more than the usual amount of BTC in the donation address. That is the reason for this proposal I believe. I doubt there will be many such cases.

There is 3.39 BTC in the donation address now. Which user/s are waiting to trade with you?

I agree that there will not be a change in BSQ bought, just think it will give more clarity around when and how BSQ is bought by Burning Man.

I suggest making the announce of burning man trading not strict but recommended.

@ghubstan what are your thoughts on announcements being recommended but not strict?

@pazza83
Copy link
Author

pazza83 commented Mar 19, 2022

I wonder if we really want to "stop" BSQ to appreciate at over 20% per month while there is no such limit for depreciation... but maybe that won't really constitute a problem.

The 30 day weighted average is rolling so ,therefore, BSQ price can still increase by more than 20% each month.

@ghubstan
Copy link
Member

@ghubstan what are your thoughts on announcements being recommended but not strict?

It is too vague for me to give a thumbs up. It is the only issue blocking my approval of the proposal. The term recommended can mean never.

@pazza83
Copy link
Author

pazza83 commented Mar 19, 2022

Hi @burningman3 would you be happy to announce at least 50% of the times prior to you choosing to trade?

@burningman3
Copy link

50% announce sounds ok.

How can the burning man verify which transactions belong to what reimbursement case? I don't think it will work to say the burning man should track all reimbursement cases to check which outputs to keep and which not to keep. Right now there is one 2.6 BTC transaction that has not been claimed for reimbursement, some of which I will trade over the coming trade events. The refund agent need more than 0.8 BTC so there is already not enough for the refund agent if the full 2.6 is spent on other trades. There might also be more funds that will go to the refund agent but is not yet accounted for.

I think the two proposals are really just one issue on how to handle the reimbursement process.

@pazza83
Copy link
Author

pazza83 commented Mar 20, 2022

50% announce sounds ok.

Great, I have edited the proposal above to include this. Hopefully now @ghubstan can turn give it a thumbs up.

How can the burning man verify which transactions belong to what reimbursement case?

I do not think verification is needed. The fact that the user has has a reimbursement accepted by the DAO means they would be eligible to do a direct trade with yourself. The funds used to reimburse they are not required to be from their original deposit transaction / donation address payout.

My suggestion would be:

  • Should a trader, who received a partial payout from the Refund Agent, want to trade with Burning Man directly they have 2 cycles following their arbitration summary to make a reimbursement request. If they make a reimbursement request after 2 cycles they will forfeit the option to trade directly with Burning Man.
  • Once the trader that has had their DAO request for reimbursement approved they are pointed to instructions as to how to trade with Burning Man
  • @refund-agent2 is responsible for advising trader about the above process at the earliest possible stage, informing the trader about putting in a reimbursement request within 2 cycles, and making the connection between the trader and Burning Man once DAO has accepted it.
  • The trader has 1 cycle 2 trading events following reimbursement to trade with Burning Man for the exact BSQ/BTC price as in their proposal. This will mean they end up with the same amount of BTC as per their arbitration summary.
  • Should the trader not trade with the Burning Man within 1 cycle they will not be able to trade with Burning Man directly and will instead have to sell BSQ on the open market in Bisq.

If the above was in place this would meant:

  • Any UTXO's above 0.5 BTC older than 3 cycles in the donation address are good to be traded for BSQ.
  • Any UTXO's below 0.5 BTC of any age in the donation address are good to be traded for BSQ..

I don't think it will work to say the burning man should track all reimbursement cases to check which outputs to keep and which not to keep.

Do you think the suggestion above about being able to use any UTXO under 0.5 BTC and any UTXO over 0.5 BTC, if older than 3 cycles, would work?

Right now there is one 2.6 BTC transaction that has not been claimed for reimbursement, some of which I will trade over the coming trade events.

Should these proposals be accepted. I would suggest the user only has one cycle following their reimbursement request being accepted to trade with Burning Man.

This makes it easier for Burning Man to know who is eligible for a refund and what funds can be used.

The refund agent need more than 0.8 BTC so there is already not enough for the refund agent if the full 2.6 is spent on other trades.

There would always be enough for the Refund Agent once the above process is implemented. Only issue I can see is Refund Agent making partial reimbursements. Maybe it would be better if this were to be implemented for Refund Agent to not make any reimbursement at all for trades with donation payouts amounts over 0.5 BTC, and instead leave these to the DAO.

There might also be more funds that will go to the refund agent but is not yet accounted for.

I think having the 2 cycle limit for people to raise an issue means funds can only be unaccounted for up to a max of 2 cycles. Therefore, not using UTXOs over 0.5 BTC until 3 cycles have passed would negate this.

I think the two proposals are really just one issue on how to handle the reimbursement process.

Ok, main point to add other than the above is that I propose:

  • @refund-agent2 should be reimbursed at the BSQ/BTC rate they propose in their github issue
  • Partially Reimbursed traders should be reimbursed at the BSQ/BTC rate they propose in their github issue

This would mean the impact to the DAO should be net zero.

Again both should only be able to get this rate if they trade directly with Burning Man within 1 cycle of their reimbursement proposal being accepted.

@refund-agent2
Copy link

refund-agent2 commented Mar 20, 2022

1 cycle to trade with Burningman is a lot, 2 trade events is more than enough. Window opportunity for option trading needs to be minimal.

The refund agent need more than 0.8 BTC so there is already not enough for the refund agent if the full 2.6 is spent on other trades.

0.8 is an estimation for the end of the cycle, now I have spent 0.679. 0.679+2.6=3.279.
The 2.6 UTXO is from late november.

@pazza83
Copy link
Author

pazza83 commented Mar 20, 2022

1 cycle to trade with Burningman is a lot, 2 trade events is more than enough. Window opportunity for option trading needs to be minimal.

Ok, would you be happy with the same terms as partially refunded traders? Have 2 trade events to arrange a direct trade with Burning Man post your reimbursement being accepted?

@refund-agent2
Copy link

Yes, I am fine with it.

@pazza83
Copy link
Author

pazza83 commented Apr 11, 2022

Approved but will leave open for comments until the relevant wiki pages have been completed and users have a change to comment.

Will post wiki links below when complete.

@pazza83
Copy link
Author

pazza83 commented Sep 4, 2022

I have updated the Donation Address Owner - Bisq Wiki to reflect the agreements in this proposal.

@pazza83 pazza83 closed this as completed Sep 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants