I haven’t thought this through completely yet, but wanted to make a topic for discussion as I think it’s an important topic. Right now, most users of Balanced are ICON community members who already have ICX to pay for transaction fees. In the future with BTP, I think we’ll get a lot more users from other communities (e.g. BSC, NEAR, DOT, etc.) who may not have ICX to start using Balanced.
I think it could be interesting to allocate some of the DAO fund to an ICX buyback to subsidize transaction fees on Balanced. I haven’t crunched any numbers, but I suspect this is very doable since transaction fees are so low, and the upside in UX could be worth it.
So let’s imagine someone has DOT and wants to trade bnDOT on Balanced. They would convert DOT to bNDOT (I’m not sure how this would work 100% yet, but I assume they’d pay a transaction fee in DOT which wouldn’t be an issue). After that, they can immediately trade on Balanced.
I haven’t used fee sharing contracts before, so I’m not sure if this would still require the wallet to have a little ICX to pay for the very first transaction. If so, maybe we could have a claim page that would allow a wallet to claim a very very small amount of ICX enough for 1 transaction to register for fee sharing.
Obviously this kind of system can be gamed to a certain extent, but I believe it would be a net positive, and the amount of ICX going into such an effort would always be governed by the Balanced DAO.
I’m open to such a solution if the developers see a way to implement it.
It might be easier to develop, a certain amount, let’s say 5 ICX worth, to be deducted from the asset they deposit the first time, if they don’t have any ICX ,in return for 5 ICX which serves as a transaction fee buffer.
I think your proposal on inverse token or short is pretty interesting. Can share the whole idea to @benny_options so they understand how to make it especially during bear market.
I think this is an amazing idea. I think it further lowers the barriers to entry for on boarding new users from a simplicity perspective.
We currently think of on boarding and marketing to people from other crypto communities to grow the platform but I think steps like this along with the implementation of Bridge would set us up nicely to be able to market to the non crypto communities as well.
As easy as Balanced is to use currently it’s still not at the stage where we can would get our grandparents to use it without being overwhelmed in my opinion. Implementing things like this goes a long way to improve this.
I thought about it a bit more, and I think this sort of system would work best if the ICX fees were covered for a specified number of trades that resets on a daily basis. The idea being, if a user wants to do more than say 5 trades in a day, they should be able to swap a bit into ICX within those 5 trades – otherwise they can wait until the next day. I think a blanket fee sharing system wouldn’t be a good idea because there are bots that can initiate swaps on every block.
I think the system could be integrated into the swap process within the contract – just add an internal database that keeps track of how many trades an address has executed in the current day, and use that to determine whether the contract pays the transaction fee.
I think a real long term solution to this is altering the IRC-2 spec to allow the functions ERC-20s have that allow 3rd parties to submit transactions on their behalf and pay for gas in a token. This would allow Balanced to run a service to submit trades on behalf of the user.
If a spec is developed for this exact usecase, it can likely be improved over ERC-20s ‘approve’ to not even require the first transaction, and be 100% gas coin free. There are some EIPs that specifically target this usecase that may be able to be used as a base, like EIPs/eip-2612.md at master · ethereum/EIPs · GitHub
It would work I’d say,
you give a Balanced service permission to spend your, lets say bnUSD had ‘approve’, bnUSD. You sign a transaction to let that service spend bnUSD for BALN, send that offchain to the Balanced service, it executes a transaction on-chain, taking your bnUSD + bnUSD to cover the tx fee, and getting BALN and sending that to you.
In ETH approve requires gas to set up, but it could be designed in a way that lets anyone do it as long as its signed by the owner.
Or something I’ve pondered, subbmitting these ‘take someone else tokens’ could be embedded in the base protocol itself, but restricted to validators/p-reps, giving them an alternate service to offer. (Would still need signed aprovals of course)