Kickback X: the three experimental new features
Feature One: xDai
The recent rise of so called “Yield farming” have been clogging Ethereum for the last few weeks with high gas price.
When Wong Joon Ian organised his last personal token meetup on Kickback, it cost $15 for him to deploy the event contract, then cost between $0.5-$1.5 for participants to RSVP. This is not just for Kickback. It will become harder for non Defi apps such as DAO and NFT to justify their transactions.
As a non Defi dapp developer we have to prepare that this gas price will continue for at least the next 3~6 months, so we started looking into experimenting with Layer2/EVM compatible chains and pleased to say that we have xDai version deployed at http://xdai.kickback.events
xDai on POA (Proof Of Authority) is probably one of the most widely used Ethereum side chain. If you have been to ETHDenver hackathon or MakerDAO’s DAI Happy hour, you may have used xDAI through burner wallet to purchase food from food trucks or from DAI POS system.
In these cases, the DAI was either preloaded or loaded by scanning QRCode. This time, you have to convert your Dai on Mainnet to xDai via https://dai-bridge.poa.network/
Once done, you have to manually create xDai network with the following information.
xDai is used as a main currency of the network (just like ETH) so you don’ need to have (or rather can’t have) ETH on the network. The gas is very cheap that it’s almost negligible.
Overall I was impressed by how easy it was to deploy into xDai. The code change was minimum. The majority of the change was to replace hardcoded “ETH” with “XDAI” when connected to their chain. We also noticed that Metamask wrongly put 0 gas price (which is not the bug of Metamask but the bug of OpenEthereum according to POA team) so I hard to hard code the gas price.
One downside of using the side chain is the lack of composability. Don’t get me wrong. With regards to tool support, xDai is probably one of the most supported Layer 2/ side chain solutions by big margin.
What our current version does not have is the support of personal tokens issued by https://tryroll.com. It is technically possible to create bridge smart contract but I haven’t got to look into the solution yet and also not sure if the bridge can automatically handle as new tokens get created. For that reason, we still use our main page (kickback.events) on Mainnet and continue exploring alternative solutions.
Also, asking the user to manually switch networks is a horrendous UX experience. There is a plugin system proposed in Metamask github issue page, so hopefully, that becomes available.
Feature Two: Automatic resend
This is one of the most requested features. People are incentivised to RSVP to participate, but not incentivised to withdraw (there was one person who didn’t withdraw for over 10 months during which ETH price went from $10 to $200).
Even though Dai based commitment won’t go up nor down, it is still highly likely that users would eventually forget and lose their winning payout. Until now, I was periodically clearing all remaining funds (the event owners can withdraw all the remaining after one week cooling period). We now implemented so called “batch refund” so that anyone can call
clearAndSend function to batch refund to multiple participants taking 5% fee (the amount is adjustable by us).
Feature Three: “Contribution” feature
If you attend events or completed something and want to give back part of payout or your commitment, now you can! Currently, we simply set the event organiser to be the contribution address, but in future we can add designated charities or could even set to an address of your choice so that you could send your commitment to a different address you own (in case your ETH account get compromised which happened to a few of participants in the past).
Our current version is still highly experimental so we are looking for a few event organisers who could try out our new system. We can waive our normal fee for these brave people for the first few tries.
I also want to acknowledge that the feature two and three were implemented by Gitcoin community. We would appreciate your contribution to our Gitcoin CLR grant round 6 so that we can keep commissioning the work to accelerate our platform.