I'm still wondering how this affects market transactions. Efficient markets must accommodate micro transactions. What would this look like for buy and sell orders? What would be the impact on market-makers?
And how do we deal with this...
How do you buy anything with a credit or debit card? They do the same. When a merchant sets up their systems to accept Bitshares they will know that there is a fee taken off what they receive, just the same as if they were accepting cards or paypal or pretty much anything else.
Except that the fee will be different depending on the 'class' of user.
Yeah I also forgot to mention microloans, microinvesting, microtrading in developing nations.
Depending on the avg trade size 20 cents can be better or worse for traders. Typically Bitcoin exchanges charge 0.2% on each side and give a big discount for the maker. That means your avg trade size has to be $100 to equal the trading costs of an avg. Bitcoin exchange. At least the BitShares platform won't have counterparty risk.
Yeah but its even worse for market-makers. On external exchanges, there is zero cost for setting, cancelling and moving orders, only for fills. In comparison, based on my current understanding, moving a single pair of bid/offer spread orders 100 times per day (to adjust to movements in the fair price of the asset) would cost $16 per day (net of cash backs if you're a lifetime member). I'm concerned about the economics of this, especially for privatised bitAsset issuers that wish to support their tokens.
I also need to clarify what happens if a market-maker's wall is chewed at by lots of small orders (usually the case with market-making). Does that mean the market-maker experiences a fixed cost for each small fill? If so, this would give the market-maker a lot less control over cost than on external exchanges, and make it even less economic.
Since it's price takers that have the control over their trade size, and market-makers are providing the efficiency in the market, would it be better to always put the combined fee on the price-taker?
Also, allowing market-makers to place relative orders (that do not need constant changing on the network) would help a lot, though I know there have been past issues raised around the technical implementation of this.
As another consideration, could the following be considered:
- setting a percentage fee on market transactions, consistent with other exchanges
- setting a lower fee on market transactions compared to other token transfers
Apologies if I am misunderstanding the intended application of these higher fees in market exchanges, but the efficient operation of the markets is critical to the entire success of bitShares.
[Xeldal's comments also reflect the same concerns]
(bump)
Could an nlocktime type transaction allow market orders to be changed as many times as desired before being executed and paying the fee?
I agree that market makers need to be encouraged to trade on the DEX as it useful to the wider ecosystem and draws in more capital. How much value can market makers bring to BitShares and is it more than that of a normal user?
If bts profits can be described as (transaction volume*transaction fees) then the value added by market makers in the network should be considered and perhaps reflected in their fee structure.
Are more users attracted to trade on the DEX as a result of efficient market makers and do the transactions generated by these users warrant a discount on market maker transaction fees?
How can a market maker be distinguished from a normal user?
I like EstefanTT's idea of transactions below a certain value are cheaper but 100% is paid to BitShares and 0% to referrers.
How about a Microtransaction account type?
These could be popular with sites like twitch and youtube. The Micro account allows companies to pay for their users transaction fees upfront on their behalf. Users are then referred via this Micro account. The company plans to benefit in other ways by enhancing the user experience of their customers by allowing microtipping. Perhaps this adds value to a UIA they issue or drives traffic to their website or some other benefit that is worth paying the transaction fees for their users upfront.
The Micro account fees could scale depending on how many transactions they want to prepay for. The fee amount can be determined by how much value is added by microtransaction functionality on the BitShares network. Maybe there is a discount on paying for transactions on a Micro account, maybe not.
The value added by BitShares microtransaction support would be factored into the discount for the Micro account.
Edit: This thread seems to answer most of these questions
https://bitsharestalk.org/index.php/topic,16875.0/topicseen.htmlTransfer fees will be $0.20 (my proposal) but that doesn't mean ALL fees for ALL operations are the same.
Market Orders can charge just $0.01 to place and then charge $0.20 when they get matched and be free to cancel.
Account registration (for cheap names) can be just $0.01.
I just wanted to throw that out there because many people seem to think there is only one "Transaction Fee", when in reality these are the fees that can be configured now:
uint32_t key_create_fee; ///< the cost to register a public key with the blockchain
uint32_t account_create_fee; ///< the cost to register the cheapest non-free account
uint32_t account_len8_fee;
uint32_t account_len7_fee;
uint32_t account_len6_fee;
uint32_t account_len5_fee;
uint32_t account_len4_fee;
uint32_t account_len3_fee;
uint32_t account_len2_fee;
uint32_t account_premium_fee; ///< accounts with premium names; i.e. @ref is_cheap_name returns false
uint32_t account_whitelist_fee; ///< the fee to whitelist an account
uint32_t delegate_create_fee; ///< fixed fee for registering as a delegate; used to discourage frivioulous delegates
uint32_t witness_withdraw_pay_fee; ///< fee for withdrawing witness pay
uint32_t transfer_fee; ///< fee for transferring some asset
uint32_t limit_order_fee; ///< fee for placing a limit order in the markets
uint32_t short_order_fee; ///< fee for placing a short order in the markets
uint32_t publish_feed_fee; ///< fee for publishing a price feed
uint32_t asset_create_fee; ///< the cost to register the cheapest asset
uint32_t asset_update_fee; ///< the cost to modify a registered asset
uint32_t asset_issue_fee; ///< the cost to modify a registered asset
uint32_t asset_fund_fee_pool_fee; ///< the cost to add funds to an asset's fee pool
uint32_t asset_settle_fee; ///< the cost to trigger a forced settlement of a market-issued asset
uint32_t market_fee; ///< a percentage charged on market orders
uint32_t transaction_fee; ///< a base price for every transaction
uint32_t data_fee; ///< a price per 1024 bytes of user data
uint32_t signature_fee; ///< a surcharge on transactions with more than 2 signatures.
uint32_t global_parameters_update_fee; ///< the cost to update the global parameters
uint32_t membership_annual_fee; ///< the annual cost of a membership subscription
uint32_t membership_lifetime_fee; ///< the cost to upgrade to a lifetime member
uint32_t withdraw_permission_update_fee; ///< the cost to create/update a withdraw permission
uint32_t create_bond_offer_fee;
uint32_t cancel_bond_offer_fee;
uint32_t accept_bond_offer_fee;
uint32_t claim_bond_collateral_fee;
uint32_t file_storage_fee_per_day; ///< the cost of leasing a file with 2^16 bytes for 1 day
uint32_t vesting_balance_create_fee;
uint32_t vesting_balance_withdraw_fee;
uint32_t global_settle_fee;
uint32_t worker_create_fee; ///< the cost to create a new worker
uint32_t worker_delete_fee; ///< the cost to delete a worker