Gas policy update for Dapper Ethereum

Dapper Labs
Dapper Labs
Published in
5 min readSep 3, 2020

If you’ve used Ethereum in the last few months, you’re well aware of the impact the network’s gas prices have had on dapp games. With daily average gwei prices reaching as high as 250+, the gas fees associated with a single game transaction can often exceed the ETH being spent. While parts of the ecosystem are thriving, the dapp gaming community is being forced to find alternative solutions for their players–Dapper Ethereum included. While we continue to believe bypassing the need to manually set gas on the fly makes interacting with dapp games much easier, the realities of the current ecosystem have forced us to re-evaluate and update our gas policy.

In addition to the changes we announced earlier, we will no longer be subsidizing gas for non-Dapper Labs developed games and some non-core CryptoKitties functions. We’re rolling out the updated policy starting this Thursday, September 3rd.

Now that we’ve ripped that band-aid off, we’d like to be upfront and give you the exact reason “Why?” and some of the data which has led us to this change in policy.

So, why the changes now?

When we first launched CryptoKitties, a major pain point reported by our players was having to deal with gas. This early feedback pushed the team to develop a way of removing gas adjustments from the dapp experience entirely. By achieving this, players could instead focus on playing their favorite games. However, Ethereum has changed quite a bit since 2017 and we’ve had to accept new realities–for better and worse. Context is always important, so here are a few main points which led to our decision.

Consistently high gas pricing. As Ethereum and it’s users grow, how the network is used is bound to change. As early as 2018, gas use across the whole network has increased significantly and this trend doesn’t look to be slowing down anytime soon. For a dapp experimenting with gas abstraction, this makes things rather difficult.

The increasing cost of supporting DeFi. The intended use for Dapper has always been for games and entertainment with the hope of bringing the benefit of blockchain to the masses. As cost rose, a compromise we made to continue subsidizing gas for the community was to lower the number of free weekly transactions. However, we quickly found this was not enough. From January to July 2020, our monthly ETH costs increased by 998.88%. From our internal analysis, a good portion of this was going to subsidize expensive DeFi transactions.

At current ETH rates, our total spend for July in USD was close to $107,000.

Monthly subsidized gas in ETH

Gas attacks. The draw of free gas proved too valuable of an asset and, unfortunately, some bad actors abused our offering. Minting endless gas tokens or making thousands of micro-transactions weekly, these attacks became more common as gas pricing spiked. This not only increased cost but also caused a heavy amount of tech-debt for our engineering team. They had to spend valuable time monitoring specific transactions rather than focusing on how we could maintain the best possible product for the community.

CryptoKitties deep dive

As part of our investigation, we looked into the CryptoKitties contracts for insight into how gas was being spent. Working alongside their team we dug deeper into the costs and discovered some interesting behavior.

The true cost of listing and delisting on the marketplace

Two of the most used functions in the core CryptoKitties contract, exceeding gifting and even breeding, is listing and delisting cats on the marketplace. The cost of this innocuous function has skyrocketed as of late. On average, we found most players place their kitties for sale at about $0.50 cents. The cost of this action alone can end up being $2.50 per transaction. In the last couple of months, Dapper has subsidized over $40,500 USD just for listing and delisting kitties! Regrettably, this cost is simply not sustainable. In order to continue supporting functions crucial to CryptoKitties’ core game loop, listing and delisting will no longer be subsidized by Dapper. All other core functions remain free.

Breakdown of gas expenses to the core CryptoKitties contract

Specifically, these are the specific functions no longer being subsidized:

  • cancelSiringAuction @kittycore
  • cancelSaleAuction @kittycore
  • createSaleAuction @kittycore
  • createSireAuction @kittycore

Additional Improvements

In addition to the above changes, we’ve also made improvements to Dapper Ethereum which will alleviate cost while at the same time providing an even better experience for our community.

  1. Contract (wallet) creation is now more efficient and costs less gas to deploy.
  2. Our co-signers are now more effective at calculating gas prices and are able to better adjust for gas spikes.
  3. We’ve made improvements to our fraud detection to get ahead of future gas attacks.
  4. We’ve lowered the number of purchasable transaction passes to 1, 3, and 8 as requested by the community so passes can be used on a per-transaction basis.

Looking ahead to Flow

The learnings we’ve gained from developing on Ethereum have played a major part in how we’re approaching Flow’s architecture. While our experiment with Dapper Ethereum may not have panned out exactly how we expected, we’re very excited for the future with Flow! Tackling accessibility to the blockchain world is no easy task, but thanks to feedback (both positive and negative!) we’ve received across all our products–we couldn’t be more excited for what’s to come. To see what the Flow team and our early partner developers are up to, join the Flow Discord to keep up with the latest developments!

As always, if you have any questions or feedback on these recent changes, don’t hesitate to reach out on any of our Discord servers or contact the Dapper team directly.

--

--

Dapper Labs
Dapper Labs

The serious business of fun and games on the blockchain