-
Notifications
You must be signed in to change notification settings - Fork 118
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
MSC-denominated fees for using advanced features of other currencies #193
Comments
I'd welcome mechanisms which don't affect user experience. Say for example I'd go ahead and distribute the faucet promo coupons I once created. It would probably be a real pain for new users, if it were required to buy MSC first to redeem those coupons (due to an implicit requirement of a MSC based transaction fee). Another note: fractional amounts introduce the need of clarification of percision as well as the handling of edge-cases. See the lengthy discussion about indivisible tokens and the meta-DEx for example. Nevertheless I think MSC based fees are a good way to monetize MSC. |
So, this is a very important idea Users don't have to hold or use MSC in order to burn MSC. We can take a fee out of the currency they are using, sell it on the dEX for MSC, and burn the MSC. So for example, somebody places a bet using USDCoin. A fraction of a percent of that USDCoin is automatically sold on the dEX for MSC, which is burned. This requires no extra steps for the user, and no extra data in the block chain. The user's TX is recorded, and the fee and burning happen automatically in our databases. One corner case has been raised so far (by Michael): what if there are no MSC available on the order book? Answer: the coins taken in fee follow the logic of any new order, and become an active sell offer requesting 0.00000001 MSC, where the MSC goes to 1MasterCoinEater..... Folks, I honestly believe this is revolutionary, and provides a clear path to using any currency in our ecosystem without fear that MSC will lose value as a result. This is an extremely elegant solution, and I give maximum kudos to Ron for thinking of this. |
I anticipate this fee will be used for every TX which is not using MSC (except for simple send). So, dEX between MaidSafeCoin and USDCoin would burn MSC automatically, as would bets between people using EuroCoin, and distributed e-commerce between people using YenCoin, and voting by holders of BlahShares, and any other feature we dream up. I'd love to get consensus across the team that this is the way we should go, as I think this would make a very positive blog post announcing this. I've already got it half-written in my head, and I'm dying to get it out. :) |
I'm going to suggest 0.3% across the board for this fee, with the exception of voting, which should probably be way lower. Our liquidity bonus is also suggested to be 0.3% in another pull request Marv is working on. |
FYI we want to set any magic number like 0.3%, by protocol-level voting. Of course let's start with something manual in the meantime. @petertodd I think you'll like this one. |
You imply that a "vote" is a specific transaction rather than a simple send of smart properties. I object - smart properties are not only coins, but general purpose "things" such as special unlock keys for member-only areas, coupons, ownership representations or.. vote rights. I'd rather like to see a suggestion like "there is a special transaction which issues vote right tokens to every MSC holder". I'm open for discussion, but so far I haven't seen a valid argument against using SP for this. :P Ron, awesome idea! A few questions:
|
I'll dive into the arguments when we get closer to implementing voting (I believe I made my case elsewhere on github).
|
|
Ron says round up on 1. Opinions? |
Depends on the traded pair and the use-case, I think. Say for example I'm going ahead and create tokens which can be redeemed for a one week advertisement space on a website and then encourage users to create buy orders for this token to determine the highest price (similar to an auction), then it would be horrible, if the user buys one week ad space, but receives nothing due to the rounding. Assuming the other currency is MSC, then the fee might be applied here, Edit: this is not an issue, if MSC is involved, but let's discuss the case where no MSC is involved. Another question: when is the fee applied? I assume during order execution and not for listing an order? |
I believe the fee should never be required when MSC is being used on one side of the dEX. So, selling something for MSC would be free, or buying something with MSC would be free, but buying those coupons with USDCoins would burn some MSC. |
I think rounding up could have some ugly consequences in some corner cases, where the entirety of a property is eaten up by the fee, for instance. I think normal rounding makes more sense, even though people could potentially trade things with no fee in some cases, I don't think that will be very attractive to most people (doesn't allow much precision in pricing). Besides the fee should be small enough that people don't worry about it under most circumstances.. |
Which side of a trade pays fees? Are the MSC based on fees completely removed from the system? I think in general the fee should be applied in a way to be in favor of the user, in case of doubt rather round down than up. Exploitation is probably never an issue due to the overall cost to submit an order. |
Should round up, rounding down is exploitable by spam (rounding to zero). |
Another case to discuss: say I created SomeTokenV1 which is depreciated at some point and I go ahead and create SomeTokenV2. Furthermore I'd like offer users to swap V1 for V2 on a 1:1 basis. How could this be done? My first idea was to create a sell offer where one V2 token is sold for one V1 token, but a potential fee makes this somewhat more complicated. Edit: well rounding up is an issue, if the traded amounts are small and an user could end up with receiving nothing or significantly lower amounts than expected. Edit 2: since a fee is applied, I assume a fee is also applied on the automated order that was issued based on the fee? ;) |
@dexX7 That would probably be handled by using the upcoming "pay dividend" command. You'd pay the new V2 coin to everybody holding V1, proportionally, all at once. I think both sides would pay the fee on the dEX. For instance, both sides would pay 0.15% Regarding rounding up, imagine selling 1 indivisible coin representing a house for a million USDCoins. 0.15% of an indivisible house rounds to a zero. It rounds up to the entire house. Not the desired behavior, obviously! |
If we do round up, we should round up to a maximum. For instance, round up, but only to a maximum of 0.5% |
We discussed elsewhere that offering liquidity should be compensated at the expense of people eating liquidity. So it may make sense to do the fees 0% and 0.3% instead of 0.15% and 0.15%. |
As an active trader and market maker, I agree with these pricings, but we should consider tiered volume discounts as well. Would that be possible given the decentralized nature of the protocol? |
Yes, I see no problem for price tiers. |
Alice offer 10000 foocoins for 1000 goocoins If someone buys goocoins or foocoins for MSC the MSC is burned. Even if the fee is changed to 1% the MSC burned remains the same at .00000001? |
An option is to have a fixed MSC fee per transaction based on total MSC available. Prices of MSC will probably go up. |
Everyone and @dacoinminster feel free to edit the title & body.
This issue is a brainstorming pad for how we can charge MSC fees across to board, even for users who don't have MSC. The suggestion is that whenever an MSC fee is required for an operation in a non-MSC token e.g. MaidSafeCoin, then that operation will automatically purchase MSC on the Decentralized Exchange and then immediately burn that (or send that ... but most of our fees involve burning and not sending).
To clarify - the fee isn't for just using a currency, but will go into place anywhere that 'advanced features' are invoked ... e.g. the betting fee that goes to the publisher of the data stream, or fees for promoting smart properties.
The text was updated successfully, but these errors were encountered: