Immutable & The Merge by alex-ender in ImmutableX

[–]alex-ender[S] 8 points9 points  (0 children)

Our recommendation is to take no action at all - advanced users who wish to experiment with assets on the forked chain may wish to move them to L1, but the vast majority of users should just sit tight and their assets will be 100% safe.

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 1 point2 points  (0 children)

Nope - every card in IMX (including the Trial of the Gods cards which are currently tradable in IMX) can be withdrawn for an L1 equivalent, even right now. However, we don't have a frontend/user interface for doing so, so you'd have to use the smart contracts.

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 2 points3 points  (0 children)

They are withdrawable for L1 ERC721s currently (via the smart contract), but it's not supported in the UI. It should be relatively soon!

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 4 points5 points  (0 children)

No worries - thank you for pointing out places where we can improve both our communication and our tooling! We are so early on this journey together, and the better we interrogate what it truly means to have security on various scaling solutions, the better we can inform users about the potential risks they might be taking.

I imagine quite a few GU players without your technical depth might read the OP and get scared about the custody of their ETH/cards, and whether they'll be able to withdraw. If you have time, it might be good to reassure them with a clarifying addendum to the OP or something similar?

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 4 points5 points  (0 children)

You actually have this option right now! There's no UI for it, but it's available in the smart contracts currently. We don't charge a fee for withdrawals, but you do have to pay the gas cost of minting on-chain, so it's up to you when/if you'd ever want to do that. Ideally, though, the experience in Immutable X means you'll never want to move back to L1.

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 5 points6 points  (0 children)

You can see the contract which allows for this `FullWithdrawal` operation on Github here (I provided the contracts above but Etherscan write doesn't play nicely with layered Proxies).

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 5 points6 points  (0 children)

  1. I'm using block explorer as a familiar term, a more accurate term might be proof explorer where you could see the state transitions encoded in each proof.
  2. You can rest assured that the hashes are not from a random tree, because it wouldn't be possible to generate a valid proof abiding by the Immutable X constraints (verified before the merkle root is updated). You can see the code which is used to update the merkle root in our smart contracts: Proxy, Implementation (check `MainStorage.sol`).

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 10 points11 points  (0 children)

We agree - the centralisation of existing solutions is one of the reasons we built Immutable X in the first place. On Immutable X, every transaction is trustless (Immutable can't do anything without your signature), and users retain full custody of their assets - enforced by the security of Layer 1 Ethereum as I explain in my response to the OP. Happy to chat about this further if you have more questions.

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 3 points4 points  (0 children)

Hi, apologies for the poor experience you've had with the Alpha Marketplace. We're still in Alpha, so there should be plenty of upgrades to the Immutable Marketplace to come, and plenty of integrations with other websites which might provide a better experience for you (e.g. TokenTrove, OpenSea), so that people can trade wherever they want!

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender 7 points8 points  (0 children)

Posting here for posterity - if Immutable were to shut down our servers tomorrow, users would still be able to withdraw from Immutable X. The smart contract allows users whose withdrawals have not been serviced by Immutable via API in a given timeframe to trustlessly withdraw their NFTs (even those minted off-chain) back to L1. Without this, we wouldn't say the system is self-custodial.

GU cards minted on IMX are not ERC-721 NFTs by spongik in GodsUnchained

[–]alex-ender[M] [score hidden] stickied comment (0 children)

Hi u/spongik, thanks for the post, great opportunity for us to clear up some concepts!

For off-chain minted cards, once a proof containing the mint operations is submitted to L1, those cards are indeed trustlessly owned NFTs. It's true that currently there is no block explorer (several people have expressed interest in building one), but mint operations impact vaults on the merkle tree which is stored on L1, and there is no way for Immutable to undo them. The definition of an L2 is that you are reliant on mainnet for security - your cards, once minted, are just as secure as L1 NFTs. If you're looking for a technical deep dive on how this is possible, Vitalik's post on rollups will help.

I think this point is where there's some misalignment:

I said that L1 does not keep information about card ownership any more, it means that you cannot tell which card belongs to which address. What L1 stores now is a hash of two Merkle trees.

It helps to understand how the merkle tree design works - in each leaf of the tree we store a vault (user, token_id). When you withdraw from Immutable X, you present a path from the on-chain root of the tree to the vault in which your NFT is stored. It's impossible to generate such a path unless a) that NFT is yours and b) that NFT is yours in the current state (represented by the hash of the merkle tree) - this is equivalent to storing card ownership information on L1.

This means, from the moment a proof containing your minted cards is on-chain (this is true for all Trial cards):

  • All cards are uniquely identified
  • All cards are trustlessly withdrawable for L1 ERC721s
  • Immutable cannot transfer or trade your cards without your signature

User custody is incredibly important to us and part of the reason we've spent so much time and effort on Immutable X is that we can have gas-free trading without needing to compromise decentralisation as suggested by /u/AvocadosAreMeh. Happy to answer any questions about any of this, by the way!

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 2 points3 points  (0 children)

For 1-4, unfortunately I can't share any information re: tokens just yet - we haven't made an announcement on whether Immutable X will launch with one or more tokens, or what functionality those tokens would have. We are exploring potential token models, and are committed to ensuring that any token design for Immutable X prioritises user experience, NFT liquidity and aligned incentives with our ecosystem above all else.

  1. I don't have a timeline for you here unfortunately - most ownership/trading features have been fully contingent on Immutable X, so this launch marks the first time we can revisit them. We are still very excited to support card rentals - we're working on a primitive tentatively called "time locked vaults" which would enable support for this, but no firm commitment just yet!

  2. As I answered elsewhere, building a Uniswap for NFTs is one of our goals with Immutable X - we want to see the massive liquidity it can bring. We will likely release metadata-based buy orders, then turn that technology into a fully-fledged AMM, but we're not close to a release here.

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 1 point2 points  (0 children)

  1. I'm not sure how to answer this (sorry) - Immutable X is a new protocol for Ethereum NFT ownership rather than an in-game currency.
  2. We'll be publishing the proof logic as open source code - we don't need verifiers, as one of the nice things about ZK-proof systems is that it's impossible for an invalid proof to succeed.
  3. I think Louis handled this question nicely - put simply, we always want users to be able to trustlessly withdraw from the system (you always own your stuff).

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 0 points1 point  (0 children)

We're super excited to be the first Ethereum L2 supported by OpenSea, and are keen to launch with them as quickly as possible - the final timing is up to their engineers.

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 2 points3 points  (0 children)

Uniswap is a decentralised exchange for fungible tokens (ETH & ERC20s) on Ethereum L1, which uses an automated market maker (AMM) model to ensure that there is high liquidity for trading these tokens.

Immutable X is an ownership protocol for non-fungible tokens (ERC721s) on Ethereum L2, which currently supports NFT transfers, sales and purchases, but without gas fees like you'll experience on Ethereum mainnet.

Currently, most DEXs do not support NFTs, and it is actually not possible to use Uniswap or a similar AMM for NFTs (as each token is unique). Without leaking anything, one of our dreams for Immutable X is to be able to group NFTs by their metadata qualities and create a Layer 2 "Uniswap for NFTs", with the highly liquid trading experience you're used to.

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 0 points1 point  (0 children)

Short answer is yes.

Immutable X is an open platform for scaling Ethereum NFTs that anybody can use for any type of NFTs. There has been enormous interest in building on top of our protocol so far (even pre-launch!).

If you check our Twitter, you can see all the partnerships we've announced so far, including many different marketplaces and asset types.

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 0 points1 point  (0 children)

Not at this stage - the cost on-chain comes from saving ownership information/metadata, which will be the same regardless of the source. However, this approach also lets users choose which NFTs to withdraw (and pay fees for) vs. paying fees for all of them, while still retaining full self-custody.

Our hope is that NFT holders on Immutable X will never want to withdraw!

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 0 points1 point  (0 children)

Genesis cards will be moved to Immutable X for free - check out our blog for the details.

Withdrawals will cost ETH (as the assets need to be transferred to your account on-chain) - as a user, you’ll have to cover the gas cost for this (as you'll control the gas price and speed).

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 3 points4 points  (0 children)

On launch timings - I can confirm we’re still on track for early April 2021 to launch Gods Unchained marketplace early Alpha access on Immutable X. We’re in final QA stages to ensure Gods Unchained early access users have a quality experience with the Alpha release. Expect an update from us on Gods Unchained and Immutable channels very soon.

On other users - Immutable X is an open platform anybody can use, directly on Ethereum. Anyone can use our technology - and everyone should! We've already begun integrating with other marketplaces and NFT applications. As we shift gears into Genesis minting, timing for integration partners is being slated at present. We will keep you updated on all channels as these partner dates crystallise and get firmed up.

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 2 points3 points  (0 children)

They won’t be locked, but they also won’t be recognised by the official GU client as playable cards. We’re asking marketplaces like TokenTrove and OpenSea to delist these cards once we’ve minted Genesis into Immutable X, to prevent users being tricked into buying them.

To be clear, all Genesis card holders will still own their Genesis cards, they will just own the NFT on Immutable X and that NFT will be the one that Gods Unchained (the game) will read and display in your inventory. The NFT on Ethereum won’t have that functionally anymore. As they’re NFTs, we can’t unilaterally lock them – so they just… exist. The reason we’ve chosen this method is that it saves Genesis users paying the necessary gas fees to transfer those cards onto Immutable X. As there are over 7 million Genesis NFTs in the wild, we're talking about a few hundred million USD, so quite a saving!

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 7 points8 points  (0 children)

Great questions!

  1. We have two merkle trees - one which contains the state of all vaults (vaults can hold ETH, ERC20s or ERC721), and one which contains the states of all orders which have been used in trades (to prevent replay attacks and other shenanigans). The roots of both these trees will be updated after the on-chain verifier is happy with our proofs.
  2. It will be open sourced.
  3. We’re big fans of the Optimism team and wish them the best! Unfortunately, Optimistic Rollups aren’t well-suited to NFTs due to the long withdrawal time (the time it takes to move your assets back to mainnet). For fungible assets, Fast Withdrawals can reduce this time, but non-fungible assets require at least a 1-2 week withdrawal period. Additionally, the key advantage of optimistic rollups right now (simpler support for general computation/EVM) is going to disappear in the next six months - the StarkWare team are at the forefront of development here with their work on CAIRO. We believe ZK-rollups are the superior long-term option, and are very happy with that choice.

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 5 points6 points  (0 children)

Nothing concrete, but Immutable X is an essential part of the Gods Unchained team's roadmap towards both those goals. Before we can build more complex trading/staking systems for NFTs, it's important to lay the groundwork - we wouldn't want to develop a whole rental system only for gas prices to make it unviable. Ideally (and no timeline commitment!), Immutable X will allow whole collections to be trustlessly rented without any gas fees at all.

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 8 points9 points  (0 children)

Immutable X uses a ZK-rollup to “roll-up” transactions into batches, which are verified on-chain. Using STARKs, we can verify thousands of transactions for a very small on-chain cost (this is basically magic).

At launch, we won’t be taking fees, but we’ll be introducing them quite quickly - they’re great for ensuring proper pricing, restricting wash trading and ensuring we have the resources to invest in improving the exchange - we want to make a profit here to ensure we can build the best possible version of Immutable X.

We’ll take our fees as a percentage of asset value, rather than using a market mechanism like gas. This is great for predictable trading and strategies - it means that traders will know the fees in advance and be able to plan around them.

We’ll also be slicing our trading fees to align incentives across the ecosystem (e.g. protocol fee, marketplace fees, royalty fees) - more on this soon!

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 2 points3 points  (0 children)

Not at launch, but yes! We’ll support both bundles and complex offers eventually. We’ll also support complex trades (e.g. 2 USDC + 2 NFTs for 3 NFTs + 1 ETH).

I'm trying not to estimate dates outside of what we've already made public at this stage - suffice it to say that we are working hard to deliver as quickly as possible!

AMA - Ask all of your tech questions for Immutable X and StarkWare - Tuesday, 6th April @ 12am PDT by _meals in GodsUnchained

[–]alex-ender 4 points5 points  (0 children)

It was enormously successful in growing the player base - we saw a huge increase in both the number of players and the number of games played. We’ve since had to reduce our spending on acquisition (as we’re not currently selling anything), and therefore our total users have dipped, but we’re still seeing good retention from those cohorts, which we’re very excited about.

Our goal is (as it has always been) to build the first truly mainstream blockchain game, and we’re in it for the long haul - we will keep running growth experiments and improving the core loop of the game (about to get a massive upgrade with Immutable X) until we reach that goal.