Wormhole: Cross-Chain Bridge Powering Everdragons2
Mint on Polygon for cheap gas fees, hold on Ethereum for maximum security and ease of trade, move back and forth to Binance or Solana in order to play your favorite game. The dream of every non-fungible token (NFT) owner is now a reality with Everdragons2, the first NFT built for Wormhole to be natively cross-chain (and cross-game)!
Today we’re excited to announce a collaboration with Wormhole, the bridge that connects multiple blockchains including Ethereum, Solana, Terra, Binance Smart Chain, and Polygon. Wormhole lets you bridge wrapped tokens like USDC on Solana, as well as NFTs. Wormhole offers a software development kit (SDK) for developers to build on their bridge and make cross-chain assets with ease.
In this article, we will demonstrate how we built Everdragons2 on Wormhole and, most importantly, why. The story begins three years ago…
First minted in 2018, the original Everdragons were the first cross-chain NFTs on Ethereum, POA, and Tron (fun fact, this was the very first NFT on Tron). Three years ago, the team built a custom bridge to move dragons across chains. 1,332 dragons were minted on the Ethereum blockchain (when gas was peanuts) and they flew across the bridge to POA and Tron to play a variety of games.
Important note. One of these games was Goldmine. In our effort to restore the Everdragons Metaverse, we’re relaunching Goldmine and we’ll give away 300 dragon eggs to alliances that score highest. Join us this Saturday (December 11, 2021) to relaunch Goldmine and win your free dragons!
Back to the bridge… while it was an incredible piece of technology, it was hiding a weakness. During the period of 2019 known as Crypto Winter, interest in Everdragons faded and the bridge got slowly abandoned, eventually getting shut down. The Everdragons got permanently stuck in whatever chain they happened to be in at the time. The bridge was a single point of failure.
Now that it’s 2021, a new generation of dragons is coming and they’re eager than ever to fly across blockchains. Enter Wormhole, the bridge that won’t fail. Architecturally, Wormhole is a trustless protocol validated by 19 separate guardians independently run by different organisations. For us, the Everdragons2 team, this is a guarantee that the protocol will remain trustless and secure.
As we mentioned, there are several reasons for Everdragons2 to be cross-chain: low minting fees on Polygon to be inclusive in our community, security of Ethereum for our long-term holders and investors, ability to develop and play games on whichever chain suits your needs. Once the NFTs are minted, they are on the blockchain forever. With Wormhole, we expect them to be able to move across chains forever.
Let’s now dig into the way we built the Everdragons2 token, our ERC721 token, on Wormhole. While this won’t be a comprehensive tutorial, we want to provide a hint of how simple it is before you explore the details.
First and foremost, we own our contracts on all chains. With generic NFT bridges, when an NFT is moved to a destination chain, it is minted in a newly generated contract that the bridge itself controls… which is unacceptable. With native Wormhole integration as part of our smart contracts, we remain the owners, we’re the ones deploying contracts on the different chains and “connecting” them so they trust each other. In the future, we can upgrade the trust relationship to add new chains.
For example, we have our contracts on Polygon and Ethereum. The first one will be used for minting all dragons and the second is available to securely hold dragons in the long run.
In order to move a token across chains via wormhole, contracts have to implement two functions: wormholeTransfer() and wormholeCompleteTransfer(). The former is to initiate a transfer to burn the NFT on the origin chain, while the latter is to complete the transfer and (re)mint the NFT on the destination chain. Between the two functions, Wormhole guardians validate that the original NFT was burned before allowing the new destination NFT to be minted.
For more information, the best place to start would be Wormhole documentation and community groups, but please feel free to jump into our Discord too and ask questions. We are more than happy to share.