Reading time 4 mins

Tradable Chests & Upgraded Contracts

By

Alex

Saccardo

2019-11-13

Today we have two large announcements, starting with upgrades to our contracts, and ending with the release of a new asset: tradable chests. 

Contract Upgrades

We’re migrating all Gods Unchained cards to a new contract so no-one needs to spend money activating their cards. This new contract is also going to save massive amounts of congestion and gas from the Ethereum network (approximately 1 trillion gas, or 3 weeks of 100% network usage). We’re going to be kicking off the migration in around a week, and you can read about more of the technical details later in this post.

But first… 

Introducing Tradable Chests

In the past when you’ve purchased a card pack, the cards contained within that pack are determined at the time of purchase. Opening that pack is simply a front end visual experience showing off what you received. You can’t trade these packs as “unopened”, and even if you could, there would be little point considering the cards contained are already determined and viewable on the blockchain.

The primary reason we didn’t offer tradable packs in the past is that it required a new core contract (cards from past seasons couldn’t be created at all). As we are now upgrading our main contract, we were able to change this logic and include tradable chests in the contract at the same time.

What’s a tradable chest? 

A tradable chest is a bundle of 6 card packs. Cards contained in a chest are not determined or minted until the chest is opened, allowing players to hold onto the chest or trade it without revealing which cards are contained inside. Chests can be opened at any point in the future, but doing so determines the fate of all 6 packs inside: you cannot individually select which ones you wish to “open”.

Tradable, sealed packs (or chests in this case) have been one of the most heavily requested features for as long as the game has been around. Sealed packs in Magic The Gathering garner huge collector interest to this day.

It is essential that every decision we make has the interests of our early supporters at heart. So we reached out to many of our most active players and purchasers, explained what we could now do, and asked for advice on the best possible way to launch this. The support was overwhelming and we had some fantastic advice which we’ve incorporated, so without further ado: here are the final details of the promotion! 

1.We will only be offering “Legendary Chests”, containing 6 Legendary Packs, and “Rare Chests” containing 6 Rare Packs. 

2.Chests have a higher cost per card to account for their increased functionality. 

Legendary Chests = 0.8064 ETH, only 5000 will be sold

Rare Chests = 0.0864 ETH, no cap

3.Tradable chests won’t decrease Genesis card scarcity.

All chest sales will count towards the Genesis cap. In fact, because Chests are more expensive per card, they will actually decrease the total number of available Genesis cards. 

4.Chests won’t be tradable until the end of the Genesis Season.

Our policy has been that we do not compete with player marketplaces, so trading of chests will unlock when card trading begins on October 29th.

5.Chests cannot be unbundled into separate packs: it’s all closed or all open!Cards in unopened chests don’t count towards Genesis Boards. 

6...Previous purchasers will be rewarded with tradable chests!!! 

As thanks for supporting and believing in us during Genesis, we thought it was a good idea (suggested by Chrome, one of our community mods) to reward players by giving back 10% of their purchases as Chests. Given the price of chests, you will need to have purchased at least 0.8ETH in packs (prior to block 8666666, when we first talked about this with community members) to qualify. These gifted Chests will contribute towards the Genesis Season hard cap and the cap on legendary chests and will be automatically sent to players over the next 24 hours.

Contract Upgrades (Explained)

Everyone who has spent some time around the Gods Unchained community has probably heard the word ‘activation’ thrown around a lot: some have used it, some even know what it is! 

Essentially, storing all card data on Ethereum at time of purchase is too expensive, so we only store the base randomness from each purchase on chain (from which the cards are derived). This allows us to trustlessly ‘predict’ the cards, so that every card you buy in Gods Unchained counterfactually exists on-chain, but does not conform to the ERC721 standard and therefore does not show up in wallets or on marketplaces. 

These cards are ‘unactivated’, and a second method can be called to ‘activate’ those cards and store all their data in an ERC721-compliant format. 

To read more about the story of activation, check out our blog post ‘1 Million NFTs Isn’t Cool’

So far, more than 5 million Gods Unchained cards have been sold. Around 8% of those cards have currently been activated. Assuming the remainder of the Genesis presale sells out (we are currently at 70%), activating all those cards would require around 1 trillion gas. Even with the recent increase in the block gas limit, this is around 100,000 entire blocks of Ethereum, or 3 full weeks of 100% network usage. Coupling the launch of the Gods Unchained marketplace with weeks of clogged network wouldn’t exactly create the user experience we are aiming for, nor endear us to the Ethereum community generally.

Essentially, by using specially designed ‘block-minting’ functions which our use case (creating a large number of single-user NFTs in one transaction), we are able to create significantly more NFTs for the same amount of gas. Storing no properties on-chain, this technique provides a 100x boost to the number of NFTs mintable in one transaction. 

Replicating the functionality of the original Gods Unchained contract (verifying the uniqueness of mythics, requiring that the card be from the current season, and storing the ‘proto’ and ‘quality’ of each card), reduces this impact to around 40x. This brings the overall gas required to represent all 5 million+ Gods Unchained cards on-chain from 1T down to 25B gas (a 95% saving), saving the network tons of congestion and our players money! We’ll use this for all of our contracts going forward. 

Here’s the downside: this will invalidate existing Gods Unchained orders on marketplaces like OpenSea, TokenTrove, GUDecks, RareBits and everywhere else. You’ll have to relist all cards you’ve already listed. As an added bonus: no more activation will hopefully mean much less customer support on your end!

The second benefit of the new contract is what we’re calling inscription, our name for attaching on-chain metadata to NFTs. Currently, most NFT metadata is stored off-chain. This makes a lot of sense for most use-cases: consider a card ‘experience’ level which is stored on-chain. Every game would have to perform writes to update every stat for every card. For millions (or even dozens) of players, this is simply unsustainable. Some dapps have decided to store this data on systems like IPFS, or publish the hashes of data on-chain. This at least guarantees auditability, but there are a few major downsides. 

Firstly, it’s not possible to impose smart-contract level restrictions on the way in which the properties can be set or changed. Secondly, that data is not available to other contracts on Ethereum. This is particularly limiting for things like building more complicated ‘wrapped NFTs’: consider an ERC20 token where each token represented a locked Gods Unchained Diamond Legendary. Without on-chain access to the proto and quality of the card, this would be impossible. The new contract not only stores the basic fields for each card, but also provides a mechanism for attaching new fields (as we definitely haven’t thought of everything cool yet!). We want users to be able to choose exactly which pieces of metadata they want to store on-chain, and when they want to update them. Our new contract will support this from the start. 

We are thrilled to announce this massive upgrade. This will simplify the UX of our marketplace and save our users hundreds of billions of gas. We’ve published the proposed contracts on our Github here along with a bounty program. We’re aiming to start the migration in around a week, and complete it before the upcoming market launch! 

What do you need to do? Nothing.

ANNNNNDDDD…. That’s all folks. I hope you’re as excited about these (long requested) updates as we are. These contracts upgrades will vastly improve the user experience for non-crypto users and save the Ethereum network from massive congestion. 

As always, be sure to join our Discord and say hey :)

Cheers,

Mod Perks (ft. Ender w/ explanation of contract upgrades and activation stuff)

WANT TO CHAT WITH US?

JOIN OUR DISCORD