[bisq-network/bisq] Running the numbers on Bisq DAO revenues (#5171)

chimp1984 notifications at github.com
Tue Feb 16 04:32:57 CET 2021


I am not sure if that fits well into the discussion thread but I think it would be good to share all the details about trade fee and burned BSQ as it was a bit chaotic in the past and its quite complex.

Initially we used the same donation (receiver) address for the BTC trade fees and for the trade fund from the delayed payout tx (DPT). Now that is separated.

Trade fees in BTC can be sent to following addresses:
- Default donation address defined in the DAO parameters in the source code. That was used initially before it was changed via voting. In case the trader has deactivated the DAO (so they cannot know what the current address is) it was also used for BTC trade fees before we switched to the filter data based approach (including the victims addresses) as well for the DPT. That is still the case now, so if a trader has deactivated the DAO and opens arbitration the trade funds go to that address. The address is: `1BVxNn3T12veSK6DgqwU4Hdn7QHcDDRag7`
- @burning2019 made a [DAO request](https://github.com/bisq-network/proposals/issues/116) for changing the address to: `3EtUWqsGThPtjwUczw27YCo6EWvQdaPUyp`. There are still funds sent to that address for unclear reasons. Most likely its some users who have a DAO state which got out of sync when that address was active.
- @burningman2 made a [DAO request](https://github.com/bisq-network/proposals/issues/149) for changing the address to: `3A8Zc1XioE2HRzYfbb5P8iemCS72M6vRJV`. There are still funds sent to that address for same reasons as above.
- @burningman3 made a [DAO request](https://github.com/bisq-network/proposals/issues/221) for taking over the role. The previous address `3A8Zc1XioE2HRzYfbb5P8iemCS72M6vRJV` got reused by the new BM. With proposal https://github.com/bisq-network/proposals/issues/285 @burningman3 [separated the address](https://github.com/bisq-network/roles/issues/80#issuecomment-734507761) to one for the BTC trade fees (`38bZBj5peYS3Husdz7AH3gEUiUbYRD951t`) and one for the funds from DPT (`34VLFgtFKAtwTdZ5rengTT2g2zC99sWQLC`).

The funds from the old burningmen is sent from time to time to the new BM. 

To refund the victims from the security incident we added a field to the filter message where the address and the ratio of the loss is defined.
The selection is done randomly so there is a statistically distribution. 50% of the BTC fees goes to those victims an 50% to @burningman3.
 
Here are the addresses and after the `#` the payout ratio:
1EKXx73oUhHaUh8JBimtiPGgHfwNmxYKAj#2.30
1HpvvMHcoXQsX85CjTsco5ZAAMoGu2Mze9#2.30
3EfRGckBQQuk7cpU7SwatPv8kFD1vALkTU#8.80
13sxMq8mTw7CTSqgGiMPfwo6ZDsVYrHLmR#4.60
19qA2BVPoyXDfHKVMovKG7SoxGY7xrBV8c#4.08
19BNi5EpZhgBBWAt5ka7xWpJpX2ZWJEYyq#12.78
38bZBj5peYS3Husdz7AH3gEUiUbYRD951t#34.86 (@burningman3)

Once that is refunded the filter will be updated to leave the @burningman3 as only receiver.
If a user would have the filter deactivated (per program argument) the default DAO address would be used (I assume, not 100% sure). I doubt users have deactivated the filter.

If a user pays the trade fee in BTC the first output of the maker fee tx or taker fee tx is the fee payment and the receiver address must be one listed above. Also the min. BTC fee must match the one defined in DAO param (default and current 5000 sat).

If the fee is paid in BSQ the first output is usually the BSQ change output (could be also the case that there is none if the BSQ input was exactly the fee or the change would be below dust. To verify such a trade fee tx one can lookup the first output in the BSQ explorer. If it is not found there then lookup the inputs in the BSQ explorer. If also not found it was not a BSQ fee tx. The tx has to be confirmed before the BSQ explorer recognizes it.

To calculate the revenue is a bit complex specially for historical data as we did not had separated fee and DPT funds. Another issue is that the reimbursement requests have not been used initially (was part of compensation requests) and then only partially as the limit of the DAO parameter was low and it required a few cycles to increase that limit. In the new charts I added historical data from the DAO requests to correct that distribution.
Beside that there have been other reimbursement requests like trade fee loss from failed trades. But those should be rather small amounts. Traders who are doing their reimbursment directly without the refund agent are using the reimbursement requests as well.

The BSQ burning via `Proof of Burn` of the BTC from trade fees and from DPT funds is not separated (would be good to do that as well). So we do not see how much of the burned BSQ comes from the fee payments and how much from DPT. The difference of all burned BSQ from `Proof of Burn` and all reimbursements should be theoretically the BTC fees. But costs for volatility from the refund agent and time delays make that difference a very speculative number. 
The BSQ trade fees burned by traders is visible in the DAO data as trade fee txs, so that is a rather exact number.

I think the best way to extract the BTC fee value is by using the received funds over a certain time perion at @burningman3's receiver addresses. It would be good if one could provide a script with API requests for each relevant time period (e.g. received BTC per month). Another option is to add that to the app via an API call so all tx data gets into the charts and one can zoom in or filter any time period (with shipping historical data so the API requests don't get too heavy). Best would be to have all the available addresses in a multi-series chart (also the victims addresses), so one can see quickly if there would be any anomality and the frequency and volume sent to the outdated addresses.
If we would have the funds sent to the DPT address we could also map it more precisely to the reimbursement requests.
Further we should start to separate the 2 sources for `Proof of Burn` txs.
  
A further complication is which currency is used and which exchange rates. In the new charts I added USD values to all relevant data and used the average Bisq BTC/USD rate from the same time period for conversion.

Another related data is the fee adjustment (via DAO voting). Not sure if that add much value but it could be helpful to see how the % value of the trade fees and the distribution of BSQ and BTC fees have developed over time.    

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/discussions/5171#discussioncomment-372304
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20210215/af1addd9/attachment-0001.htm>


More information about the bisq-github mailing list