Everything you need to get started building on Moonbeam, optimized for builders
Welcome to EthDenver 2024! We're excited you're here. Moonbeam is a EVM-compatible, smart contract platform for cross-chain connected dApps. In other words, you can deploy to Moonbeam and access features, users, and assets on many different chains.
Our flagship bounty this year encourages you to build cross-chain with Moonbeam. The bounty is open-ended and stackable with other EthDenver bounties. We can't wait to see what you build!
- We'd love to meet you at our dAppy Hour on Friday night, March 1. Take a break from coding and enjoy some great food, drinks, and company!
- Say Hi at the Moonbeam Booth! We'd love to meet you. The Moonbeam Booth is located at spot 201 - Devtopia.
In this bounty introduction video, Kevin reveals Moonbeam's 2024 Bounties including the challenge description, expectations, and prizes.
- $10,000 in Prizes, 3 winners
- TLDR: Take any open-source dApp (existing or new) and make it cross-chain with Moonbeam! Use General Message Passing (GMP) to trigger an on-chain action. Moonbeam can be either the chain sending the message or receiving the message.
Your goal with this bounty is to take any dApp and enhance it to be a cross-chain dApp. The dApp can be pre-existing and open source (you didn't create it) OR it can be your own dApp. To cross-chainify your dApp, you can use any General Message Passing (GMP) provider to send messages to or from Moonbeam. Thus, Moonbeam should be either the network sending the cross-chain message or receiving the cross-chain message. Typically, your cross-chain messages will include smart contract calls such that a user can interact with a smart contract from a different chain, providing a seamless cross-chain experience to the end user.
The best submissions for this bounty will clearly demonstrate enhancing a dApp with cross-chain capabilities. The best ones will have an elegant UX and demonstrate a clear use-case being fulfilled.
For example, suppose you're working on an NFT Marketplace that's currently deployed to Polygon. For your bounty submission you'd like to add cross-chain support for Moonbeam users to interact with the NFT Marketplace directly from Moonbeam. Success here would involve setting up cross-chain contract calls from Moonbeam to Polygon to interface with the NFT Marketplace on Polygon. If a user wants to buy an NFT, the user would confirm the transaction on Moonbeam, a cross-chain message will be sent to Polygon, and the NFT will be delivered to the user's corresponding address on Polygon (e.g. the same address as their Moonbeam address). The user didn't need to bridge funds, they didn't need to have any Matic tokens on Polygon (all gas is paid on Moonbeam) and they didn't need to switch to a different network in their wallet. All of this combines to provide an excellent experience to the end-user on Moonbeam.
Most submissions will be a web-based dApp, but you’re more than welcome to build on mobile as well. Browser-based dApps can ideally be deployed to a publicly accessible hosted URL (e.g. Vercel). If not deployed, that’s fine too, just indicate clear instructions in the ReadMe how to build and run the dApp locally.
The dApp should use any GMP provider supported by Moonbeam or Moonbase Alpha, including but not limited to Axelar, Wormhole, LayerZero, Hyperlane, or Polkadot’s native XCM to build the cross chain components of the dApp.
What are some examples of some great cross-chain dApp ideas? We're so glad you asked! Here are a few to get you started:
NFTs have exploded in popularity in recent years. With good reason - they’re fun, engaging, and addictive. But by and large, most NFT projects are not yet truly cross-chain. You may interact with NFT marketplaces that have support for multiple chains, but these are typically just single-chain NFT marketplaces that repeatedly ask users to switch their networks.
Picture an NFT marketplace on Moonbeam that allows you to buy and sell NFTs on many different chains from Moonbeam as the hub chain. This is made possible by general message passing or GMP, which allows you to send a message to another connected chain (Moonbeam is highly interconnected), and take an action such as buying an NFT or listing one of your NFTs for sale. As an example, let’s say I wanted to buy an NFT on Polygon. I’ll confirm the purchase transaction on Moonbeam, paying the fees in Moonbeam’s GLMR token, and the dApp will send a cross-chain message to Polygon to buy that NFT, and it will be delivered to my corresponding address on the Polygon network.
In addition to the marketplace feature, it would be nice to have (although not necessary) the ability for users to mint their own NFTs on the chain of their choice. For example, the user might want to mint 100 ERC-721s on Polygon, and they can do this via a cross-chain call sent directly from Moonbeam to Polygon, without acquiring MATIC tokens. While you may already have MATIC tokens lying around, not every user will have tokens for every chain that they want to interact with, and it can be hard to manage via bridging. Moonbeam is connected to a huge variety (and growing number) of chains via GMP providers like Axelar, Hyperlane, LayerZero, and Wormhole. These protocols make it truly easy to call a contract on a remote chain - all you need to do is specify the destination chain, the contract address you want to interact with, and the payload (contract call data). With general message passing, you can future proof your NFT marketplace.
TLDR: Make an NFT marketplace on Moonbeam that allows you to buy and sell NFTs on several different chains!
Managing DeFi activities across multiple chains can be a cumbersome task. For a user to participate in DeFi different chains, they typically need to bridge funds, acquire the gas token of the destination chain, deposit/stake funds, and of course, claim rewards. Moonbeam is uniquely positioned as a hub for cross-chain connectivity via a variety of GMP protocols and that means you can take part in DeFi on many different chains without ever leaving Moonbeam. How does that work? The answer lies in Moonbeam’s extensive integrations with a variety of GMP protocols, including Axelar, Hyperlane, LayerZero, Wormhole, and of course, Polkadot's native XCM
These protocols make it truly easy to call a contract on a remote chain - all you need to do is specify the destination chain, the contract address you want to interact with, and the payload (contract call data). It’s that simple.
So, imagine a scenario where a user has $100 in USDC on Moonbeam that they want to put to work. It just so happens that there is a juicy opportunity on Aave on Polygon. You can use a GMP Protocol like Axelar to simultaneously bridge the $100 in USDC to Polygon and deposit in Aave, all in one click. The user doesn’t have to have any Polygon tokens (they will pay for the cross-chain transaction with GLMR on Moonbeam), and they don’t have to switch networks or perform any wizardry. They just need to click and confirm 1 transaction that you’ve prepared for them. This is just an example of what you can do and it is not meant to be the only example
The design of your cross-chain DeFi Helper is entirely up to you. You can make it as simple (for example, click here to stake and we will automatically find the best opportunity for you) or as advanced (display a list of the highest-yielding opportunities on any connected chain, allowing the user to choose their desired one). Your dApp should aim to simplify the degen’s life at each step of the process - depositing, withdrawing, and claiming rewards. Moonbeam can be either your hub network coordinating the cross-chain actions on another network or a connected network dispatching actions on a particular DeFi protocol on Moonbeam. In other words, Moonbeam must be 1 of the networks you use.
Remember these are just suggestions to get you thinking - you can go an entirely different direction. The above examples will not be favored or prioritized in the judging.
General Message Passing (GMP) Protocols allow you to send messages to other chains, including messages that contain contract call data and can trigger actions on remote chains such as buying an NFT, making a swap, & much more. Moonbeam has integrated with a variety of GMP Protocols including Axelar, Hyperlane, LayerZero, Wormhole & of course, Polkadot's native XCM. These protocols make it truly easy to call a contract on a remote chain - all you need to do is specify the destination chain, the contract address you want to interact with, and the payload (contract call data). It’s that simple.
- 1st place: 6,000 USDC
- 2 Runner Ups: 2,000 USDC each
Moonbeam is a smart contract platform for building cross-chain connected applications that can access users, assets, and services on any chain. By uniting functionality from Ethereum, Cosmos, Polkadot and more into a single platform, Moonbeam solves today's fragmented user experience — unlocking true interoperability and paving the way for the next generation of applications. The Moonbeam platform uses integrated cross-chain messaging to allow developers to create smart contracts that access services across many remote blockchains. This approach, plus Moonbeam's developer-friendly EVM platform, vast tool support, and modern Substrate architecture, creates the ideal development environment for building connected applications.
Polkadot unites and secures a growing ecosystem of specialized blockchains called parachains. Apps and services on Polkadot can securely communicate across chains, forming the basis for a truly interoperable decentralized web. Moonbeam is a Polkadot parachain.
- Moonbeam - Mainnet
- Moonbase Alpha - Public testnet
You can connect your wallet to the following Moonbeam networks automatically by visiting the Moonbeam docs site and pressing the Connect MetaMask button at the top or manually with the following instructions:
- You can get DEV testnet tokens here.
- You can make a swap for testnet cross chain assets here.
- If you need more tokens in bulk for testing purposes don't hesitate to reach out to us in Discord.
Moonbeam has integrated with a variety of GMP protocols including Axelar, Hyperlane, LayerZero, and Wormhole. Of course, you can also use Polkadot's native XCM to perform cross chain contract calls within the Polkadot ecosystem. You can familiarize yourself with each respective GMP protocol by following their tutorial.
- Make your first cross-chain contract call in this step-by-step tutorial
- For a comprehensive overview of the Axelar protocol, visit Axelar Academy
- For hands-on docs and examples, visit Axelar Docs
- Send a cross chain message with Axelar
- Make your first cross-chain contract call in this step-by-step tutorial
- Hyperlane Docs
- Send a cross chain message with Hyperlane
- Make your first cross-chain contract call in this step-by-step tutorial
- Code samples
- Send a cross chain message with LayerZero
- Get started with Wormhole in this step-by-step tutorial
- Wormhole Docs
- Hello Wormhole Tutorial
Jeremy from the Moonbeam Team has created an excellent series of videos explaining the ins and outs of all of the GMP protocols integrated with Moonbeam.
- Architecture of Connected Contracts
- Architecture of Axelar's GMP Framework
- Writing Connected Contracts with Axelar
- Writing Connected Contracts with LayerZero
- Building in the Interchain with Hyperlane
- Wormhole Architecture
- Writing Connected Contracts with Wormhole
- ScaffoldEth is a fantastic way to quickly spin up a React frontend that connects to your solidity smart contract. Learn how to use ScaffoldEth with Moonbeam here.
- Configure your preferred developer environment for Moonbeam
- Use JS libraries like Ethers.js or Web3.js to integrate smart contract functionality into your webapp
- Stop by the Moonbeam booth at any time! The Moonbeam Booth is located at space 201 in Devtopia.
- Hackathons Channel of the Moonbeam Discord
- Come by the Moonbeam Booth (Devtopia, Booth R) anytime!
Projects should meet bounty specific requirements. All Moonbeam bounties will be judged according to the standard ethDenver judging guidelines - that is:
- Theme Fit
- Originality & Innovation
- Ease of use (UI/UX)
- Sustainability (marketplace viability)
- Technical complexity
- Level of Completion
- Moonbeam Docs Site
- Moonbuilders Academy
- Developer Discord
- Getting Started with the Moonbase Alpha Testnet
We reserve the right to withhold bounty payouts where low quality submissions do not meet our bounty requirements.