# Moonbeam Developer Documentation (LLMS Format) This file contains documentation for Moonbeam (https://moonbeam.network/). Moonbeam is a smart contract platform that makes it easy to build natively interoperable applications on Polkadot and Ethereum. It is intended for use with large language models (LLMs) to support developers working with Moonbeam. The content includes selected pages from the official docs, organized by section. This file includes documentation related to the category: Reference ## List of doc pages: Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/learn/dapp-directory.md [type: learn] Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/learn/platform/glossary.md [type: learn] Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/builders/build/historical-updates.md [type: builders] Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/builders/build/runtime-upgrades.md [type: builders] Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/builders/ethereum/canonical-contracts.md [type: builders] Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/builders/ethereum/json-rpc/eth-rpc.md [type: builders] Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/builders/ethereum/json-rpc/moonbeam-custom-api.md [type: builders] Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/builders/ethereum/precompiles/overview.md [type: builders] Doc-Page: https://raw.githubusercontent.com/moonbeam-foundation/moonbeam-docs/refs/heads/master/builders/get-started/endpoints.md [type: builders] ## Full content for each doc page Doc-Content: https://docs.moonbeam.network/learn/dapp-directory/ --- BEGIN CONTENT --- --- title: List your Dapp on the Moonbeam DApp Directory description: Follow this tutorial to learn how to list your Moonbeam or Moonriver project or update a current listing on the Moonbeam Foundation DApp Directory. dropdown_description: Explore the DApp Directory and listing process categories: Reference --- # How to List your Project on the Moonbeam DApp Directory ## Introduction to the Moonbeam DApp Directory {: #introduction-to-state-of-the-dapps } The Moonbeam ecosystem comprises two distinct production networks: Moonbeam and Moonriver. Each network has its own dedicated [DApp Directory](https://apps.moonbeam.network/moonbeam/app-dir){target=\_blank}, maintained by the Moonbeam Foundation. These directories categorize projects spanning from DeFi to NFTs to gaming, providing users with comprehensive access to diverse applications. You'll supply core project details like name, description, and relevant links when adding your project. Depending on your project type, you may include additional data such as on-chain stats and token information. Despite the distinction between the Moonbeam and Moonriver DApp directories, the submission process remains the same. To list your project on the DApp Directory, you must submit a pull request to the [Moonbeam Foundation's App Directory Data repository on GitHub](https://github.com/moonbeam-foundation/app-directory-data){target=\_blank}. This guide outlines the necessary data and formatting specifics for your submission. ![The Moonbeam DApp Directory home page](/images/learn/dapps-list/directory-1.webp) ## Overview of the Project Data {: #overview-project-data } There are four main sources of data that are used for a project's listing in the Moonbeam DApp Directory: - **Core Project Data** - core project data such as descriptions, logos, and screenshots. This data also includes IDs used to query data from external platforms - **Active Users and Transaction Volume** - on-chain data based on smart contract activity for all of the contracts associated with the project. Data is discovered via the use of contract labeling in Moonscan, which is then indexed by Web3Go and consumed by the DApp Directory - **TVL Data** - TVL data for the protocol, sourced from the project's listing on DefiLlama - **Project Token Information** - token information, which is sourced from the project's listing on CoinGecko ## Prerequisites for Using External Data Sources {: #configuring-external-data-sources } Before pulling data from the mentioned sources, certain prerequisites must be fulfilled. However, it's worth noting that these steps may not apply to all project types. For instance, in the case of wallets, where there are no smart contracts, the DApp Directory is currently unable to display user and transaction activity data. ### Configure the Data Source for Active Users and Transaction Volume {: #configure-active-users } For projects that have smart contracts deployed on Moonbeam or Moonriver, it is important that those contracts can be linked to the DApp Directory project data. The end-to-end flow for linking smart contract activity to the DApp Directory is as follows: 1. The smart contract owner fills in the [form to label contracts on Moonscan](https://moonscan.io/contactus?id=5){target=\_blank} 2. The contracts become labeled in Moonscan 3. Periodically, the entire list of labeled contracts is exported and transmitted to Web3Go to be ingested 4. Every hour, Web3Go loads smart contract activity within Moonbeam and Moonriver and runs a job to index this data by the labels To get your project's smart contracts properly labeled on [Moonscan](https://moonscan.io){target=\_blank}, please refer to Web3Go's documentation on the [Labeling Structure](https://dinlol.gitbook.io/moonscan-smart-contract-label-for-projects/labeling-structure){target=\_blank} and [How to Submit Contract Information](https://dinlol.gitbook.io/moonscan-smart-contract-label-for-projects/how-to-submit-contract-information){target=\_blank} on Moonscan. Once you've labeled your smart contracts and are ready to submit your project to the DApp Directory, configuring the Directory to utilize your smart contract data becomes straightforward. You'll only need the **Project** component of your labeled contracts. Consider the following example project with two smart contracts: a Comptroller and a Router recently updated to a new version. | Project | Contract Name | Contract Version | Resulting Label | |:----------:|:-------------:|:----------------:|:--------------------------:| | My Project | Comptroller | V1 | My Project: Comptroller V1 | | My Project | Router | V2 | My Project: Router V2 | To submit your project to the Moonbeam DApp Directory, ensure you have your **Project** name ready, identified here as `My Project`. If you're ready to add your project to the DApp Directory, skip to the [How to Submit Your Project Listing](#how-to-submit-your-project-listing) section. ### Configure the Data Source for TVL {: #configure-tvl } If the project represents a DeFi protocol with TVL (whereby value is locked in the protocol's smart contract), it is possible to display TVL in the Moonbeam DApp Directory. TVL data is pulled from [DefiLlama](https://defillama.com){target=\_blank}, so you must list your project there. To get your project listed, please refer to DefiLlama's documentation on [How to list a DeFi project](https://docs.llama.fi/list-your-project/submit-a-project){target=\_blank}. After listing your project, you can easily configure the DApp Directory to pull data from DefiLlama. To do so, you'll need the DefiLlama identifier, which you can find in the URL for your protocol's page. For example, the URL for Moonwell's page is `https://defillama.com/protocol/moonwell`, so the identifier is `moonwell`. If you have the identifier and are ready to submit your project to the Moonbeam DApp Directory, skip to the [How to Submit Your Project Listing](#how-to-submit-your-project-listing) section. ### Configure the Data Source for Project Token Information {: #project-token-information } If a project has a token, it is possible to display the name of the token, current price, and contract in the DApp Directory. However, the data is pulled from [CoinGecko](https://www.coingecko.com){target=\_blank}, so the project's token must be listed there. If your token is not listed there, you can complete [CoinGecko's Request Form](https://support.coingecko.com/hc/en-us/requests/new){target=\_blank} to initiate the listing process. Assuming your project's token is listed there, you must obtain the CoinGecko **API ID** value. You can find the **API ID** value in the **Information** section of the token's page on CoinGecko. For example, the **API ID** on [Moonwell's token page](https://www.coingecko.com/en/coins/moonwell){target=\_blank} is `moonwell-artemis`. If you have the CoinGecko ID and are ready to submit your project to the Moonbeam DApp Directory, you can continue to the next section. ## How to Submit Your Project Listing {: #how-to-submit-your-project-listing } As mentioned, you must submit a pull request to the Moonbeam Foundation's GitHub repository that holds the DApp Directory's data. Before getting started, it's worth noting that to expedite the review process, the GitHub user who submits the pull request is recommended to be a major contributor to the project's GitHub so that the Moonbeam Foundation can quickly verify that they represent the project. You can check out the [Review Process](#review-process) section for more information. To begin, you have two options for adding your project information to the [`app-directory-data` repository on GitHub](https://github.com/moonbeam-foundation/app-directory-data){targe\_blank}. You can utilize [GitHub's browser-based editor](https://github.dev/moonbeam-foundation/app-directory-data){target=\_blank}, which offers a user-friendly interface. ![The app-directory-data repository loaded on GitHub's browser-based editor](/images/learn/dapps-list/directory-2.webp) Or you can clone the repository locally and make modifications using your preferred code editor, in which you can use the following command to clone the repository: ```bash git clone https://github.com/moonbeam-foundation/app-directory-data.git ``` Once you've cloned the project, you can create a new branch to which you will add all of your changes. To do this on the browser-based editor, take the following steps: 1. Click on the current branch name in the bottom left corner 2. A menu will appear at the top of the page. Enter the name of your branch 3. Click **Create new branch...** ![Create a new branch on GitHub's browser-based editor](/images/learn/dapps-list/directory-3.webp) The page will reload, and your branch name will now be displayed in the bottom left corner. ### Projects with Deployments on Moonbeam and Moonriver {: #projects-with-deployments } If a project is deployed to both Moonbeam and Moonriver, there are two different options available: - Create a separate project structure for each deployment - Use a single project structure and modify the project data file for both projects Separate project structures should be used if: - The two deployments have distinct representations in DefiLlama (i.e., two distinct identifiers) - The project has two different tokens, one native to Moonbeam and one native to Moonriver Otherwise, either option may be used. ### Set Up the Folder Structure for Your Project {: #set-up-the-file-structure } All configurations for each project listed in the DApp Directory are stored in the `projects` folder. To get started, you must have a name that uniquely and properly identifies your project. Using your project name, you can take the following steps: 1. Create a new directory for your project using your unique project name 2. In your project directory, you'll need to create: 1. A project data file is a JSON file that defines all your project data and contains references to the images stored in the `logos` and `screenshots` folders. The list of fields you can use to define your data, with descriptions, is outlined in the next section. The file must be named using your unique project name 2. A `logos` folder where your project logo images are stored 3. (Optional) A `screenshots` folder where screenshots for the project are stored ??? code "Example folder structure" ```text my-project ├── my-project.json ├── logos │ ├── my-project-logo-small.jpeg │ └── my-project-logo-full.jpeg └── screenshots ├── my-project-screenshot1-small.jpeg ├── my-project-screenshot1-full.jpeg ├── my-project-screenshot2-small.jpeg └── my-project-screenshot2-full.jpeg ``` ![The file structure displayed on GitHub's browser-based editor](/images/learn/dapps-list/directory-4.webp) With the foundational file structure in place, you're ready to populate the necessary information for your project submission. ### Add Information to the Project Data File {: #add-information } Your project's data file is where you'll add all the information for your project. The file permits the following top-level properties: |
Property
| Type | Description | |:--------------------------------------:|:-----------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | `id` | String | Unique identifier for the dApp in the Moonbeam DApp Directory. It should be a unique, human-readable string representing this project. E.g., `my-project` | | `slug` | String | Identifier used in certain third-party sources. In particular, if the project is listed in DefiLlama, this value should be set to the DefiLlama identifier. See the [Configure the Data Source for TVL](#configure-tvl) section for more information | | `name` | String | The project name as it will appear in the DApp Directory. E.g., `My Project` | | `category` | String | The category the project should be associated with. A project can only have one category, and it corresponds to the category list in the left-hand nav of the DApp Directory. See the [Category and Tags](#category-and-tags) section for the accepted list of values | | `coinGeckoId` | String | If the project has a token listed on CoinGecko, this property should have the **API ID** value corresponding to the given token. See the [Configure the Data Source for Project Token Information](#project-token-information) section for more information | | `chains` | Array of Strings | List of Moonbeam ecosystem chains on which the project is deployed. Valid values are currently `moonbeam` and `moonriver` | | `web3goIDs` | Array of Strings | List of Web3Go identifiers for a given dApp. The identifiers should correspond to the **Project** component of the smart contract labels set up in Moonscan. Generally, there should only be one value in the array. See the [Configure the Data Source for Active Users and Transaction Volume](#configure-active-users) section for more information | | `logo` | Map of Strings to JSON objects | Map of logo image files associated with this project and stored in the `logos` directory. See the [Logos](#logos) section for more information | | `shortDescription` | String | A short description of the project used in the display card when browsing dapps in the directory. This should be kept to under 80 characters | | `description` | String | A longer description used in the project detail page. Markdown or similar formatting cannot be used. Line breaks can be used using `\r\n`. The text should be limited to a few paragraphs | | `tags` | Array of Strings | A list of applicable [tags](#category-and-tags) for this project. Tag values will show up in the project details. See the [Category and Tags](#category-and-tags) section for the accepted list of values | | `contracts` | Array of contract JSON objects | List of contracts for the project. Currently, this is used only for token contracts. The list of smart contracts which make up the protocol is externally sourced from Moonscan. See the [Contracts](#contracts) section for more information | | `urls` | Map of Strings (names) to Strings (URLs) | Mapping of URLs for websites and socials associated with the project. See the [URLs](#urls) section for the accepted list of properties | | `screenshots` | Array of Maps of Strings (size) to image JSON objects | List of screenshot image files associated with this project and stored in the `screenshots` directory. See the [Screenshots](#screenshots) section for more information | | `projectCreationDate` | int | The date the project was created. Used for sorting purposes in the DApp Directory | ??? code "Example project data file" ```json { "id": "moonwell", "slug": "moonwell", "name": "Moonwell", "category": "lending", "coinGeckoId": "moonwell-artemis", "chains": [ "moonbeam" ], "web3goIDs": [ "Moonwell Artemis" ], "logo": { "small": { "fileName": "moonwell-logo-small.jpeg", "width": 40, "height": 40, "mimeType": "image/jpeg" }, "large": { "fileName": "moonwell-logo-large.jpeg", "width": 400, "height": 400, "mimeType": "image/jpeg" }, "full": { "fileName": "moonwell-logo-full.jpeg", "width": 3000, "height": 3000, "mimeType": "image/jpeg" } }, "shortDescription": "Lending, borrowing, and DeFi protocol built on Moonbeam and Moonriver", "description": "Moonwell is an open lending, borrowing, and decentralized finance protocol built on Moonbeam and Moonriver. Moonwell’s composable design can accommodate a full range of DeFi applications in the greater Polkadot and Kusama (DotSama) ecosystem.\r\n\r\nOur first deployment will be on Kusama’s Moonriver, the sister network of Polkadot’s Moonbeam. Moonriver is where new products are expected to be incubated and developed prior to being deployed on Moonbeam.", "tags": [ "Lending", "DeFi" ], "contracts": [ { "contract": "0x511ab53f793683763e5a8829738301368a2411e3", "chain": "moonbeam", "name": "WELL Token" } ], "urls": { "website": "https://moonwell.fi/", "try": "https://moonwell.fi/", "twitter": "https://twitter.com/MoonwellDeFi", "medium": "https://moonwell.medium.com/", "telegram": "https://t.me/moonwellfichat", "github": "https://github.com/moonwell-open-source", "discord": "https://discord.gg/moonwellfi" }, "screenshots": [ { "small": { "fileName": "moonwell-screenshot-small1.png", "width": 429, "height": 200, "mimeType": "image/png" }, "full": { "fileName": "moonwell-screenshot-full1.png", "width": 514, "height": 300, "mimeType": "image/png" } }, { "small": { "fileName": "moonwell-screenshot-small2.png", "width": 429, "height": 200, "mimeType": "image/png" }, "full": { "fileName": "moonwell-screenshot-full2.png", "width": 1716, "height": 800, "mimeType": "image/png" } }, { "small": { "fileName": "moonwell-screenshot-small3.png", "width": 429, "height": 200, "mimeType": "image/png" }, "full": { "fileName": "moonwell-screenshot-full3.png", "width": 1054, "height": 637, "mimeType": "image/png" } }, { "small": { "fileName": "moonwell-screenshot-small4.png", "width": 429, "height": 200, "mimeType": "image/png" }, "full": { "fileName": "moonwell-screenshot-full4.png", "width": 1365, "height": 436, "mimeType": "image/png" } } ], "projectCreationDate": 1644828523000 } ``` #### Category and Tags {: #category-and-tags } A category is the primary classification for a project. A project can be categorized under only one category, but it can have multiple tags. Ensure you carefully select the most applicable category for your project to ensure it is easily found. Any secondary classifications can be included as a tag. The currently supported values for `category` are: ```text - Bridges - DAO - DEX - DeFi - Gaming - Lending - NFTs - Other - Social - Wallets ``` The currently supported values for `tag` are: ```text - Bridges - DAO - DEX - DeFi - DePIN - Developer Tools - Explorers - Files - GLMR Grants - Gaming - Infrastructure - IoT - Lending - MOVR Grants - Messaging - NFT - NFT Marketplaces - On-ramp - Other - Social - Tool - VPN - Wallets - ZeroTrust ``` #### URLs {: #urls } The `urls` property name/value pairs are used so a project can provide links to their website, socials, etc. The following table lists the supported `urls` properties: | Property Name | Description | Example | |:-------------:|:------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------:| | `website` | The main website for the project | https://moonbeam.network/ | | `try` | URL a user should visit if they want to try out the dApp. Typically, this page will have a link to launch the dApp | https://moonbeam.network/ | | `twitter` | The project's Twitter profile | https://twitter.com/MoonbeamNetwork | | `medium` | The project's Medium site | https://medium.com/moonbeam-network | | `telegram` | The project's Telegram | https://t.me/Moonbeam_Official | | `github` | The project's GitHub repository | https://github.com/moonbeam-foundation/moonbeam | | `discord` | The project's Discord | https://discord.com/invite/PfpUATX | The format of the property name/value pairs should follow the JSON standard, for example: ```json "urls": { "website": "https://moonbeam.network/", "try": "https://docs.moonbeam.network/", "twitter": "https://twitter.com/MoonbeamNetwork" } ``` #### Logos {: #logos } The `logos` property of the main project data file is a map of image sizes (i.e., `small`, `large`, `full`) to corresponding image JSON objects. The image JSON object contains the display properties for the given image. The following table lists the properties of the image JSON object: | Property | Type | Description | |:----------:|:------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------:| | `fileName` | String | The name of the image file (unqualified) stored in the `logos` directory | | `width` | int | The width of the logo image in pixels | | `height` | int | The height of the logo image in pixels | | `mimeType` | String | The standard [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/MIME_types){target=\_blank} of the file. E.g., `"image/jpeg"` | Currently, only the `small` size is utilized, and the dimensions for small logos should be 40x40 pixels. Here is an example showing the structure of the `logo` property that supplies `small` and `full` logos: ```json "logo": { "small": { "fileName": "my-project-logo-small.jpeg", "width": 40, "height": 40, "mimeType": "image/jpeg" }, "full": { "fileName": "my-project-logo-full.jpeg", "width": 3000, "height": 3000, "mimeType": "image/jpeg" } } ``` #### Screenshots {: #screenshots } The `screenshots` property of the main project data file is an array of maps. Each map in the array is for a specific screenshot. However, different-sized images for each screenshot should be supplied so that different sizes can be used in different contexts (e.g., thumbnails vs full-sized images). Thus, for each screenshot, there is a map of image sizes (i.e., `small`, `large`, `full`) to corresponding image JSON objects. The image JSON object contains the display properties for the given image. The following table lists the properties of the image JSON object: | Property | Type | Description | |:----------:|:------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------:| | `fileName` | String | The name of the image file (unqualified) stored in the `screenshots` directory | | `width` | int | The width of the logo image in pixels | | `height` | int | The height of the logo image in pixels | | `mimeType` | String | The standard [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/MIME_types){target=\_blank} of the file. E.g., `"image/jpeg"` | Here is an example showing the structure of the `screenshot` property for two screenshots (`screenshot1` and `screenshot2`): ```json "screenshots": [ { "small": { "fileName": "my-project-screenshot1-small.png", "width": 429, "height": 200, "mimeType": "image/png" }, "full": { "fileName": "my-project-screenshot1-full.png", "width": 514, "height": 300, "mimeType": "image/png" } }, { "small": { "fileName": "my-project-screenshot2-small.png", "width": 429, "height": 200, "mimeType": "image/png" }, "full": { "fileName": "my-project-screenshot2-full.png", "width": 1716, "height": 800, "mimeType": "image/png" } } ] ``` #### Contracts {: #contracts } A list of contracts for the project. Currently, this is used only for token contracts. The smart contracts that make up the protocol are sourced from [Moonscan](https://moonscan.io){target=\_blank} based on tagging, so they do not need to be listed here. If you have not properly labeled your contracts or are unsure if they are labeled according to the Moonbeam community standard, please refer to the [Configure the Data Source for Active Users and Transaction Volume](#configure-active-users) section. The following table lists the properties found in the contract JSON object: | Property | Type | Description | |:----------:|:------:|:-----------------------------------------------------------------------------:| | `contract` | String | The address for the smart contract | | `chain` | String | The chain on which the contract is deployed (i.e., `moonbeam` or `moonriver`) | | `name` | String | The name of the contract | Here is a `contracts` array with a single smart contract for the WGLMR token: ```json "contracts": [ { "contract": "0xAcc15dC74880C9944775448304B263D191c6077F", "chain": "moonbeam", "name": "Wrapped GLMR Token" } ] ``` ### Submit a Pull Request {: #submit-a-pull-request } After you've populated the project data file and added your logos and screenshots, you should be ready to submit your pull request. ![All of the project files added on GitHub's browser-based editor](/images/learn/dapps-list/directory-5.webp) From the web-based editor, take the following steps to commit your changes to the `app-directory-data` repository: 1. Click on the **Source Control** tab, which should show you how many pages have been added or changed 2. Review the files under the **Changes** section. Click the **+** button next to **Changes**, or as you review each file, click the **+** button next to the file name to add them to the list of **Staged Changes** ![Staging the changed files on GitHub's browser-based editor](/images/learn/dapps-list/directory-6.webp) All of your files should now be under the **Staged Changes** section. All you have to commit and push the changes are: 1. Enter a descriptive commit message, such as "Add My Project", making sure to use your actual project name 2. Click **Commit & Push** ![Committing the staged files on GitHub's browser-based editor](/images/learn/dapps-list/directory-7.webp) Now that you've committed the changes, you'll need to head over to the [`app-directory-data` repository](https://github.com/moonbeam-foundation/app-directory-data){target=\_blank} and open a pull request against the `develop` branch: 1. At the top of the repository page, click **Compare and Pull** button displayed on the banner, or 2. If the banner is not there anymore, you'll need to select your branch from the branches dropdown 3. Click the **Contribute** dropdown 4. Click the **Open pull request** button ![The main page of the app-directory-data repository on GitHub](/images/learn/dapps-list/directory-8.webp) You'll be taken to the **Comparing changes** page, where you'll need to: 1. Make sure that you are merging your branch into the `develop` branch, which is the **base** branch 2. Add a title 3. Add a description of the changes 4. Click **Create pull request** ![Submit a pull request on the Comparing changes page of the app-directory-data repository on GitHub](/images/learn/dapps-list/directory-9.webp) ### The Review Process {: #review-process } Submitted pull requests will be reviewed bi-weekly by the Moonbeam Foundation. During the review, and especially for new projects, the Foundation may have to verify that the GitHub user who created the pull request is a contributor and/or represents the specific project. One way projects can expedite this process is if the submitter's GitHub account is also a major contributor to the project itself on GitHub. Alternatively, teams should leave a note in the pull request comments indicating how we can get in touch with project team members to verify. A comment will be added to the pull request if any changes are requested. After your pull request has been approved, it will be merged, and your project will be added to the Moonbeam DApp Directory! ## How to Update Your Project Listing {: #how-to-update-your-project-listing } As your project evolves, you may need to update your project's listing or images related to your listing. You can create a new branch for your changes, find and modify your existing project's data from the root `projects` directory, and make the desired changes. If you are no longer using a logo or screenshot, please remember to remove it from the `logos` or `screenshots` directory. Once your changes have been made, you must follow the same instructions in the [Submit a Pull Request](#submit-a-pull-request) section so the changes can be [reviewed](#review-process) by the Moonbeam Foundation. Please note that pull requests are reviewed on a bi-weekly basis, so if the update is urgent, you can create a [forum post](https://forum.moonbeam.network){target=\_blank} asking for assistance. ## DApp Directory API {: #dapp-directory-api } The DApp Directory also features a queryable API that you can use to integrate data from Moonbeam's DApp Directory into your application. The API is public and currently does not require authentication. The base URL for the API is as follows: ```bash https://apps.moonbeam.network/api/ds/v1/app-dir/ ``` ### Query a Project {: #query-a-project} You can retrieve all the information for a particular project by appending `/projects/INSERT_PROJECT_NAME` to the base URL. If you need clarification on the project name, you can omit the project name as shown below to retrieve data for every listed project and find the project in the response. ```bash https://apps.moonbeam.network/api/ds/v1/app-dir/projects ``` Here's an example of querying the API for StellaSwap, which returns the project description, social media information, user counts, relevant smart contract addresses, market data, images, and more. ```bash https://apps.moonbeam.network/api/ds/v1/app-dir/projects/stellaswap ``` You can visit the query URL directory in the browser, using a tool like Postman, or directly from the command line with Curl as follows: ```bash curl -H "Content-Type: application/json" -X GET 'https://apps.moonbeam.network/api/ds/v1/app-dir/projects/stellaswap' ``` ??? code "API Response to Querying StellaSwap" ```json { "project":{ "currentTx":{ "moonbeam":2883079 }, "web3goIDs":[ "StellaSwap" ], "name":"StellaSwap", "currentTVL":{ "moonbeam":5046832.23328 }, "currentUsers":{ "moonbeam":52455 }, "coinGeckoId":"stellaswap", "shortDescription":"The leading DEX and DeFi gateway on Moonbeam", "id":"stellaswap", "featured":true, "tags":[ "DEX", "DeFi" ], "tvlChange7d":{ "moonbeam":-1.61482567543498 }, "urls":{ "telegram":"https://t.me/stellaswap", "website":"https://stellaswap.com/", "try":"https://stellaswap.com/", "twitter":"https://twitter.com/StellaSwap", "github":"https://github.com/stellaswap", "medium":"https://stellaswap.medium.com/" }, "web3goContracts":[ { "name":"StellaSwap: stDOT Oracle Master", "chain":"moonbeam", "contract":"0x3b23f0675ffc45153eca239664ccaefc5e816b9c" }, { "name":"StellaSwap: stDOT Token", "chain":"moonbeam", "contract":"0xbc7e02c4178a7df7d3e564323a5c359dc96c4db4" }, { "name":"StellaSwap: stDOT Controller", "chain":"moonbeam", "contract":"0x002d34d6a1b4a8e665fec43fd5d923f4d7cd254f" }, { "name":"StellaSwap: stDOT Proxy Admin", "chain":"moonbeam", "contract":"0xe8a5c0039226269313c89c093a6c3524c4d39fa4" }, { "name":"StellaSwap: madUSDC GLMR V2", "chain":"moonbeam", "contract":"0x2ad0e92461df950e2b1c72e2f7a865c81eaa3ce6" }, { "name":"StellaSwap: Dual ETH - GLMR Rewarder V1", "chain":"moonbeam", "contract":"0x2ba130297d1966e077c2fb5e4b434e8802925277" }, { "name":"StellaSwap: BCMC Rewarder V1", "chain":"moonbeam", "contract":"0x18e75887aa81e113636e18d5a78e3ff93787ec88" }, { "name":"StellaSwap: Pulsar Position Manager V1", "chain":"moonbeam", "contract":"0x1ff2adaa387dd27c22b31086e658108588eda03a" }, { "name":"StellaSwap: DualETH Pool LP Token V1", "chain":"moonbeam", "contract":"0xa3ee3a0a36dc915fdc93062e4b386df37d00217e" }, { "name":"StellaSwap: Interlay Rewarder V1", "chain":"moonbeam", "contract":"0x3a7572220afaddc31a72a520642111776d92b2d2" }, { "name":"StellaSwap: Router V1", "chain":"moonbeam", "contract":"0xd0a01ec574d1fc6652edf79cb2f880fd47d34ab1" }, { "name":"StellaSwap: xStella - GLMR Rewarder 2nd V1", "chain":"moonbeam", "contract":"0xb4dba7fe6fcc613963d64204fcf789e9e376679a" }, { "name":"StellaSwap: GLMR Rewarder First V1", "chain":"moonbeam", "contract":"0x69f9d134991e141c4244f397514ba05d67861cc0" }, { "name":"StellaSwap: CELER Rewarder 0 V1", "chain":"moonbeam", "contract":"0xbebd88782a1145b71df3f4986ef7686154ce01d9" }, { "name":"StellaSwap: MATICILO V1", "chain":"moonbeam", "contract":"0xfffa340944ff32f50c7935e2b5d22a7c3393b313" }, { "name":"StellaSwap: ETHmad - GLMR V1", "chain":"moonbeam", "contract":"0x9fe074a56ffa7f4079c6190be6e8452911b7e349" }, { "name":"StellaSwap: STELLA Token", "chain":"moonbeam", "contract":"0x0e358838ce72d5e61e0018a2ffac4bec5f4c88d2" }, { "name":"StellaSwap: SFL - 4pool Wormhole V1", "chain":"moonbeam", "contract":"0xb1bc9f56103175193519ae1540a0a4572b1566f6" }, { "name":"StellaSwap: BICO Trusted Forwarder V1", "chain":"moonbeam", "contract":"0x3d08ce1f9609bb02f47192ff620634d9eb0e7b56" }, { "name":"StellaSwap: Gass Refund V1", "chain":"moonbeam", "contract":"0xee42d4861b56b32776e6fe9a2fe122af0e3f4a33" }, { "name":"StellaSwap: xcDOT - GLMR V1", "chain":"moonbeam", "contract":"0xe76215efea540ea87a2e1a4bf63b1af6942481f3" }, { "name":"StellaSwap: 4pool LP V1", "chain":"moonbeam", "contract":"0xda782836b65edc4e6811c7702c5e21786203ba9d" }, { "name":"StellaSwap: SFL LP V1", "chain":"moonbeam", "contract":"0xa0aa99f71033378864ed6e499eb03612264e319a" }, { "name":"StellaSwap: SFL - 4pool V1", "chain":"moonbeam", "contract":"0x422b5b7a15fb12c518aa29f9def640b4773427f8" }, { "name":"StellaSwap: Acala - GLMR Rewarder V1", "chain":"moonbeam", "contract":"0x9de8171bebfa577d6663b594c60841fe096eff97" }, { "name":"StellaSwap: Zap V1", "chain":"moonbeam", "contract":"0x01834cf26717f0351d9762cc9cca7dc059d140df" }, { "name":"StellaSwap: GLMR Rewarder for UST - GLMR V1", "chain":"moonbeam", "contract":"0xc85ddcff71200f9673137e2f93ce504bdbf7db4e" }, { "name":"StellaSwap: xStella Token", "chain":"moonbeam", "contract":"0x06a3b410b681c82417a906993acefb91bab6a080" }, { "name":"StellaSwap: ETHmad - GLMR V2", "chain":"moonbeam", "contract":"0xa6ec79c97e533e7bddb00898e22c6908742e039b" }, { "name":"StellaSwap: WBTC - USDT Contract V1", "chain":"moonbeam", "contract":"0xcae51da6dceacd84f79df4b88d9f92035d1479e9" }, { "name":"StellaSwap: AVAXILO V1", "chain":"moonbeam", "contract":"0x96bef4719ae7c053113292e6aa7fc36e62b243e8" }, { "name":"StellaSwap: Swap For Gas V1", "chain":"moonbeam", "contract":"0xb64dee2d182fed3dd6c273303fb08f11808c9c23" }, { "name":"StellaSwap: Farming Centre V1", "chain":"moonbeam", "contract":"0x0d4f8a55a5b2583189468ca3b0a32d972f90e6e5" }, { "name":"StellaSwap: FTMILO V1", "chain":"moonbeam", "contract":"0x096352f7ea415a336b41fc48b33142eff19a8ad8" }, { "name":"StellaSwap: Acala Rewarder V1", "chain":"moonbeam", "contract":"0xb7b5d3659ad213478bc8bfb94d064d0efdda8f7c" }, { "name":"StellaSwap: USDC Rewarder V1", "chain":"moonbeam", "contract":"0xa52123adc0bc5c4c030d1ff4f5dad966366a646c" }, { "name":"StellaSwap: Vault V1", "chain":"moonbeam", "contract":"0x54e2d14df9348b3fba7e372328595b9f3ae243fe" }, { "name":"StellaSwap: CELER Rewarder 1 V1", "chain":"moonbeam", "contract":"0x70cbd76ed57393e0cd81e796de850080c775d24f" }, { "name":"StellaSwap: Stella Timelock V1", "chain":"moonbeam", "contract":"0xc6f73b028cd3154a5bb87f49aa43aa259a6522fb" }, { "name":"StellaSwap: GLMR - MAI Vault V1", "chain":"moonbeam", "contract":"0x3a82f4da24f93a32dc3c2a28cfa9d6e63ec28531" }, { "name":"StellaSwap: UST - GLMR V1", "chain":"moonbeam", "contract":"0x556d9c067e7a0534564d55f394be0064993d2d3c" }, { "name":"StellaSwap: SFL - axlUSDC - 4pool V1", "chain":"moonbeam", "contract":"0xa1ffdc79f998e7fa91ba3a6f098b84c9275b0483" }, { "name":"StellaSwap: Stable Router V1", "chain":"moonbeam", "contract":"0xb0dfd6f3fddb219e60fcdc1ea3d04b22f2ffa9cc" }, { "name":"StellaSwap: ATOM - GLMR Rewarder New V1", "chain":"moonbeam", "contract":"0x5aa224966e302424ec13a4f51b80bcfc205984b6" }, { "name":"StellaSwap: CELR Rewarder V1", "chain":"moonbeam", "contract":"0x05ad30253f0b20be35d84253d6aca8bd7ec0c66c" }, { "name":"StellaSwap: Router V3", "chain":"moonbeam", "contract":"0xe6d0ed3759709b743707dcfecae39bc180c981fe" }, { "name":"StellaSwap: xStella - GLMR Rewarder V1", "chain":"moonbeam", "contract":"0x896135ff51debe8083a2e03f9d44b1d3c77a0324" }, { "name":"StellaSwap: XStella - MAI Vault V1", "chain":"moonbeam", "contract":"0x3756465c5b1c1c4cee473880c9726e20875284f1" }, { "name":"StellaSwap: ATOM - USDC Rewarder New V1", "chain":"moonbeam", "contract":"0x5546e272c67fac10719f1223b1c0212fa3e41a8f" }, { "name":"StellaSwap: SFL - athUSDC - 4pool V1", "chain":"moonbeam", "contract":"0x715d7721fa7e8616ae9d274704af77857779f6f0" }, { "name":"StellaSwap: IDO Locker V1", "chain":"moonbeam", "contract":"0x4b1381b5b959a8ba7f44414c7d758e53d500a8a9" }, { "name":"StellaSwap: Locker V1", "chain":"moonbeam", "contract":"0x8995066b7f1fb3abe3c88040b677d03d607a0b58" }, { "name":"StellaSwap: ATOM - USDC - GLMR Rewarder V1", "chain":"moonbeam", "contract":"0xe06e720aaed5f5b817cb3743108ae0a12fe69e9b" }, { "name":"StellaSwap: Mistake in Rewarder V1", "chain":"moonbeam", "contract":"0x168ceb7e49c21e3f37820a34590171214a765f5f" }, { "name":"StellaSwap: LP 4pool - Wormhole V1", "chain":"moonbeam", "contract":"0xb326b5189aa42acaa3c649b120f084ed8f4dcaa6" }, { "name":"StellaSwap: Farms V1", "chain":"moonbeam", "contract":"0xedfb330f5fa216c9d2039b99c8ce9da85ea91c1e" }, { "name":"StellaSwap: Factory V1", "chain":"moonbeam", "contract":"0x68a384d826d3678f78bb9fb1533c7e9577dacc0e" }, { "name":"StellaSwap: anyETH-madETH Pool", "chain":"moonbeam", "contract":"0xb86271571c90ad4e0c9776228437340b42623402" }, { "name":"StellaSwap: Dual Farms V2", "chain":"moonbeam", "contract":"0xf3a5454496e26ac57da879bf3285fa85debf0388" }, { "name":"StellaSwap: CELER Rewarder 01 - 02 V1", "chain":"moonbeam", "contract":"0x713f76076283fcd81babe06c76ff51485edf9d5e" }, { "name":"StellaSwap: SCNFT Token", "chain":"moonbeam", "contract":"0x5f23a6a0b6b90fdeeb4816afbfb2ec0408fda59e" }, { "name":"StellaSwap: ATOM - GLMR - GLMR Rewarder V1", "chain":"moonbeam", "contract":"0xe60c41de5537418fde05b804df077397dfa84d75" }, { "name":"StellaSwap: Timelock Main V1", "chain":"moonbeam", "contract":"0x9a8693c6f7bf0f44e885118f3f83e2cdb4e611b8" }, { "name":"StellaSwap: MAI - B4P - Wormhole V1", "chain":"moonbeam", "contract":"0xf0a2ae65342f143fc09c83e5f19b706abb37414d" }, { "name":"StellaSwap: LP Token V1", "chain":"moonbeam", "contract":"0x7b17122b941d2173192c7d8d68faabdc88421326" }, { "name":"StellaSwap: Multisig V1", "chain":"moonbeam", "contract":"0x4300e09284e3bb4d9044ddab31efaf5f3301daba" }, { "name":"StellaSwap: Router V2", "chain":"moonbeam", "contract":"0x70085a09d30d6f8c4ecf6ee10120d1847383bb57" }, { "name":"StellaSwap: DOTxc - GLMR V1", "chain":"moonbeam", "contract":"0x505b0a5458dd12605b84bb2928dd2bc5b44993b9" }, { "name":"StellaSwap: SFL - MAI - 4pool V1", "chain":"moonbeam", "contract":"0x7fbe3126c03444d43fc403626ec81e3e809e6b46" }, { "name":"StellaSwap: xStella - USDC Rewarder V1", "chain":"moonbeam", "contract":"0xfa16d5b8bf03677945f0a750c8d2a30001b2fa93" }, { "name":"StellaSwap: madUSDC - GLMR V1", "chain":"moonbeam", "contract":"0x9200cb047a9c4b34a17ccf86334e3f434f948301" } ], "slug":"stellaswap", "createdAt":1699292612617, "tvlChange1d":{ "moonbeam":-0.748278690902012 }, "logo":{ "small":{ "width":36, "fileName":"stellaswap-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":510, "fileName":"stellaswap-logo-large.jpeg", "mimeType":"image/jpeg", "height":510 }, "full":{ "width":3000, "fileName":"stellaswap-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "chains":[ "moonbeam" ], "usersChange7d":{ "moonbeam":-17.2727272727273 }, "marketData":{ "symbol":"stella", "marketCap":808908, "marketCapRank":2865, "priceChangePercentage1y":-43.01356, "currentPrice":0.01729378, "priceChangePercentage14d":-17.23772, "contracts":{ "moonbeam":"0x0e358838ce72d5e61e0018a2ffac4bec5f4c88d2" }, "priceChangePercentage60d":-39.75633, "priceChangePercentage30d":-26.13934, "priceChangePercentage24h":-4.63782, "priceChangePercentage200d":-74.57003, "marketCapChangePercentage24h":-4.62971, "priceChange24h":-0.0008410608839097, "marketCapChange24h":-39268.122562502, "priceChangePercentage7d":-7.91278 }, "projectCreationDate":1644828523000, "contracts":[ { "chain":"moonbeam", "contract":"0x0e358838ce72d5e61e0018a2ffac4bec5f4c88d2" } ], "updatedAt":1722544694830, "category":"dex", "description":"StellaSwap is one of the first automated market-making (AMM), decentralized exchange (DEX) for the Moonbeam parachain network. The unique value proposition of StellaSwap is that we're committed in establishing a strong foundation with our native token, STELLA, as a governance token, diverse farms, a built in bridge and user-centered service. \r\n\r\nStellaSwap's main objective is to create a broader range of network effects to address the issues of liquidity in the DeFi space, instead of limiting ourselves to a single solution like many DEXs are doing now. This manifests itself in the diverse product suite of StellaSwap that will be explained in more details. Our products are structured in such a way that facilitates decentralized governance of STELLA holders, while continuing to innovate on the collective foundations by design.", "usersChange1d":{ "moonbeam":-6.18556701030928 } } } ``` ### Query a Category {: #query-a-category} You can also query the API by [category](#category-and-tags). For example, you can retrieve information about all NFT projects with the following query: ```bash https://apps.moonbeam.network/api/ds/v1/app-dir/projects?category=nfts ``` ??? code "API Response to Querying NFT projects" ```json { "projects":[ { "urls":{ "telegram":"https://t.me/nfts2me", "website":"https://nfts2me.com/", "try":"https://nfts2me.com/", "twitter":"https://twitter.com/nfts2me", "medium":"https://nfts2me.medium.com/", "discord":"https://nfts2me.com/discord/" }, "slug":"nfts2me", "createdAt":1699292617117, "logo":{ "small":{ "width":36, "fileName":"nfts2me-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"nfts2me-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"nfts2me-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"NFTs2Me", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1673608509000, "shortDescription":"NFTs2Me is a toolkit for creating and managing NFT projects.", "contracts":[ { "chain":"moonbeam", "contract":"0x2269bCeB3f4e0AA53D2FC43B1B7C5C5D13B119a5" } ], "updatedAt":1722498896566, "category":"nfts", "description":"NFTs2Me is a tool for creating and managing NFT projects. It includes features such as an art generator, delayed reveal, minting widget, token gating, and support for multiple blockchain platforms. It also offers customization options, an affiliate system, automatic logo and banner generation, and support for redeemable NFTs. It is user-friendly and suitable for those new to the world of NFTs.\n\nIn addition to these features, NFTs2Me also offers a minting widget and free IPFS hosting to make it simple to mint and store your NFTs securely and efficiently. The minting widget allows you to easily create and mint new NFTs, while the free IPFS hosting provides a secure and decentralized way to store your NFTs.", "id":"nfts2me", "tags":[ "NFT", "Tool" ] }, { "urls":{ "telegram":"https://t.me/rmrkapp", "website":"https://singular.app/", "try":"https://singular.app/", "twitter":"https://twitter.com/RmrkSingular", "discord":"https://discord.gg/TjB6v5AGZz" }, "slug":"singular-app", "createdAt":1699292616171, "logo":{ "small":{ "width":36, "fileName":"singular-app-logo-small.png", "mimeType":"image/png", "height":36 }, "large":{ "width":400, "fileName":"singular-app-logo-large.png", "mimeType":"image/png", "height":400 }, "full":{ "width":3000, "fileName":"singular-app-logo-full.png", "mimeType":"image/png", "height":3000 } }, "name":"Singular App", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1686240710000, "shortDescription":"The home of NFTs by @RmrkApp. Create and trade your nestable, equippable, soulbound, and multi-asset NFTs with us - no coding required.", "contracts":[ ], "updatedAt":1722498914806, "category":"nfts", "description":"Singular is an NFT 2.0 marketplace that allows users to buy, sell, and trade both regular and advanced NFTs. Users can create and/or connect a wallet, browse digital items, and securely conduct transactions using blockchain technology.", "id":"singular-app", "tags":[ "NFT Marketplaces" ] }, { "urls":{ "telegram":"https:/t.me/metacourtgg", "website":"https://www.metacourt.gg/", "try":"https://www.metacourt.gg/", "twitter":"https://twitter.com/metacourtgg", "medium":"https://metacourtgg.medium.com/", "discord":"https://discord.gg/9AnnfKCb39" }, "slug":"metacourt", "createdAt":1699292616238, "logo":{ "small":{ "width":36, "fileName":"metacourt-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"metacourt-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"metacourt-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Metacourt", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1663756794000, "shortDescription":"Metacourt created NFTdeals for anyone who wants to become an influencer and trade their social media", "contracts":[ ], "updatedAt":1722498888422, "category":"nfts", "description":"Influencer accelerator for anyone who wants to become an influencer in the space. We allow selling your social media through NFTs and joining influencer marketing campaigns.", "id":"metacourt", "tags":[ "NFT Marketplaces" ] }, { "urls":{ "telegram":"https://t.me/tofuNFT", "website":"https://tofunft.com/", "try":"https://tofunft.com/", "twitter":"https://twitter.com/tofuNFT", "medium":"https://medium.com/tofunftofficial", "discord":"https://discord.com/invite/3wFUTZmTm7" }, "slug":"tofunft", "createdAt":1699292615874, "logo":{ "small":{ "width":36, "fileName":"tofunft-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"tofunft-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"tofunft-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"tofuNFT", "chains":[ "moonbeam", "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1644828523000, "shortDescription":"The largest multichain NFT marketplace", "contracts":[ ], "updatedAt":1722498924881, "category":"nfts", "description":"tofuNFT.com is an NFT marketplace focused on GameFi and collectibles, rebranded from SCV’s NFT market. Enjoy exploring & trading with your buddies!", "id":"tofunft", "tags":[ "NFT Marketplaces", "NFT" ] }, { "urls":{ "website":"https://d-book.io", "try":"https://d-book.io", "twitter":"https://twitter.com/dbook_io" }, "slug":"d-book.io", "createdAt":1699292617021, "logo":{ "small":{ "width":129, "fileName":"d-book.io-logo-small.png", "mimeType":"image/png", "height":36 }, "large":{ "width":129, "fileName":"d-book.io-logo-large.png", "mimeType":"image/png", "height":36 }, "full":{ "width":3000, "fileName":"d-book.io-logo-full.png", "mimeType":"image/png", "height":3000 } }, "name":"D-book.io", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1682016612000, "shortDescription":"Buğra Ayan is a speaker,and university lecturer in Turkey who founded the Web3 Association Turkey.", "contracts":[ { "chain":"moonbeam", "contract":"0x8d4BA02D0973749ad7c646DcaAa60BDC66F6F6D2" } ], "updatedAt":1722498866417, "category":"nfts", "description":"We are an NFT Book Platform that connects authors and the decentralized world, aiming for a transformation ecosystem.", "id":"d-book.io", "tags":[ "NFT Marketplaces", "NFT" ] }, { "urls":{ "telegram":"https://t.me/BcmHuntGroup", "website":"https://bcmhunt.com/", "try":"https://bcmhunt.com/", "twitter":"https://twitter.com/bcmhunt", "medium":"https://medium.com/bcmhunt", "discord":"https://discord.com/invite/Ee9aJ287J2" }, "slug":"blockchain-monster-hunt", "createdAt":1699292616780, "logo":{ "small":{ "width":36, "fileName":"blockchain-monster-hunt-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":510, "fileName":"blockchain-monster-hunt-logo-large.jpeg", "mimeType":"image/jpeg", "height":510 }, "full":{ "width":3000, "fileName":"blockchain-monster-hunt-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Blockchain Monster Hunt", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1644828523000, "shortDescription":"The First Multichain NFT Monster Hunt", "contracts":[ ], "updatedAt":1722498855937, "category":"nfts", "description":"Blockchain Monster Hunt (BCMH) is the world’s first multi-chain game that runs entirely on the blockchain itself. Inspired by Pokémon-GO,BCMH allows players to continuously explore brand new places on the blockchain to hunt and battle monsters. Each block on the blockchain is a unique digital space where a limited number of monsters (of the same DNA gene and rarity) may exist. Players and collectors can hunt or battle for a chance to capture these unique monsters and to earn coins.", "id":"blockchain-monster-hunt", "tags":[ "NFT", "Gaming", "GLMR Grants" ] }, { "urls":{ "website":"https://speedboat.studio/", "try":"https://speedboat.studio/", "twitter":"https://twitter.com/Speedboat_STDO", "medium":"https://medium.com/@speedboat_studio", "discord":"https://discord.gg/y7TQbtEWSV" }, "slug":"speedboat.studio", "createdAt":1699292616328, "logo":{ "small":{ "width":36, "fileName":"speedboat.studio-logo-small.png", "mimeType":"image/png", "height":36 }, "large":{ "width":190, "fileName":"speedboat.studio-logo-large.png", "mimeType":"image/png", "height":190 }, "full":{ "width":3000, "fileName":"speedboat.studio-logo-full.png", "mimeType":"image/png", "height":3000 } }, "name":"Speedboat", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1657584952000, "shortDescription":"Your no-code Web3 toolkit", "contracts":[ ], "updatedAt":1722498916466, "category":"nfts", "description":"Speedboat is a Web3 toolkit for everyone. Built on the idea that NFTs are not just expensive JPEGs, but programmable experiences.", "id":"speedboat.studio", "tags":[ "NFT", "Tool" ] }, { "urls":{ "telegram":"https://t.me/+qGh0InPSPc1iMTNk", "website":"https://www.glmrapes.com/", "try":"https://www.glmrapes.com/", "twitter":"https://twitter.com/GLMRApes", "discord":"https://discord.com/invite/glmrapes" }, "web3goContracts":[ { "name":"GLMR Apes: GLMR Ape", "chain":"moonbeam", "contract":"0x8fbe243d898e7c88a6724bb9eb13d746614d23d6" }, { "name":"GLMR Apes: GLMR Jungle", "chain":"moonbeam", "contract":"0xcb13945ca8104f813992e4315f8ffefe64ac49ca" } ], "currentTx":{ "moonbeam":7830 }, "slug":"glmr-apes", "web3goIDs":[ "GLMR Apes" ], "createdAt":1699292616827, "logo":{ "small":{ "width":47, "fileName":"glmr-apes-logo-small.png", "mimeType":"image/png", "height":36 }, "large":{ "width":528, "fileName":"glmr-apes-logo-large.png", "mimeType":"image/png", "height":408 }, "full":{ "width":3000, "fileName":"glmr-apes-logo-full.png", "mimeType":"image/png", "height":3000 } }, "name":"GLMR APES", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "usersChange7d":{ "moonbeam":-66.6666666666667 }, "currentUsers":{ "moonbeam":1531 }, "projectCreationDate":1644828523000, "shortDescription":"The first NFT collection on GLMR by & for the community", "contracts":[ ], "updatedAt":1722547408370, "category":"nfts", "description":"GLIMMER APES is the first NFT collection on GLMR by & for the community. The longer you’re bonding with GLMR Apes and the friendlier their behavior. Join the troops as soon as possible to become an EARLY APE, take part in our giveaways and games and land in the GLMR APE VIP CLUB.", "id":"glmr-apes", "tags":[ "NFT", "Gaming" ], "usersChange1d":{ "moonbeam":0 } }, { "urls":{ "website":"https://snakesoldiers.com", "try":"https://snakesoldiers.com", "twitter":"https://twitter.com/snakesoldiers", "github":"https://github.com/steven2308/snake-soldiers-contracts", "medium":"https://medium.com/@snakesoldiers/emoting-to-influence-the-hatch-df3eab7e45b8", "discord":"http://discord.gg/A6zQSz4YU4" }, "slug":"snake-soldiers", "createdAt":1699292616971, "logo":{ "small":{ "width":36, "fileName":"snake-soldiers-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"snake-soldiers-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"snake-soldiers-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Snake Soldiers", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1691439275000, "shortDescription":"NFT game collection divided in 3 categories: Generals, Commanders and Soldiers🐍. Built on Moonbeam", "contracts":[ { "chain":"moonbeam", "contract":"0x3ab955216BdD76f51fbe02A3fe237D6612BBD09F" } ], "updatedAt":1722498915320, "category":"nfts", "description":"Snake Soldiers is an NFT collection with a supply of at most 5k units, all unique and distributed among 3 ranks. Each snake will be usable inside a play to own game, where snakes will be the main characters, necessary to interact with the SerpenTerra ecosystem. This metaverse will be based on the RMRK 2.0 standard, making forward compatible and giving super powers to the NFTs.", "id":"snake-soldiers", "tags":[ "NFT" ] }, { "urls":{ "telegram":"https://t.me/+LqmDOeGUQdRmYjVh%60%60", "website":"https://omni-x.io", "try":"https://omni-x.io", "twitter":"https://twitter.com/omnix_nft", "github":"https://github.com/Omni-X-NFT", "discord":"https://discord.gg/omni-x" }, "slug":"omni-x", "createdAt":1699292617077, "logo":{ "small":{ "width":36, "fileName":"omni-x-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":107, "fileName":"omni-x-logo-large.jpeg", "mimeType":"image/jpeg", "height":108 }, "full":{ "width":3000, "fileName":"omni-x-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Omni-X", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1673811786000, "shortDescription":"The first natively omnichain NFT platform", "contracts":[ ], "updatedAt":1722498898538, "category":"nfts", "description":"Omni X is an omnichain NFT protocol and marketplace that connects communities, creators, and enthusiasts across multiple blockchains. \n\nWe provide tooling for creating ONFT collections, bridging regular NFTs to ONFTs and grant access to unparalleled liquidity that allows users to buy and sell NFTs from any blockchain to any other blockchain.", "id":"omni-x", "tags":[ "NFT Marketplaces", "Infrastructure" ] }, { "urls":{ "website":"https://www.publicpressure.io/", "try":"https://www.publicpressure.io/", "twitter":"https://twitter.com/jointhepressure", "discord":"https://discord.gg/publicpressure" }, "slug":"publicpressure", "createdAt":1702283744356, "logo":{ "small":{ "width":36, "fileName":"publicpressure-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"publicpressure-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"publicpressure-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Public Pressure", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1651597275000, "shortDescription":"Support your favorite artists, own their music, get rewarded.", "contracts":[ ], "updatedAt":1722498907699, "category":"nfts", "description":"We are the web3 music platform powered by artists, labels and fans", "id":"publicpressure", "tags":[ "NFT Marketplaces" ] }, { "currentTx":{ "moonbeam":8409 }, "web3goIDs":[ "Moonbeans" ], "name":"Moonbeans", "currentUsers":{ "moonbeam":1134 }, "coinGeckoId":"moonbeans", "shortDescription":"Galactic Co-Op & Profit sharing NFT platform and soon to be Metaverse", "id":"moonbeans", "tags":[ "NFT Marketplaces" ], "urls":{ "website":"https://moonbeans.io/", "twitter":"https://twitter.com/moonbeansio", "github":"https://github.com/m00nbeans", "discord":"https://discord.com/invite/qqE9aBPzQ9", "telegram":"https://t.me/moonbeansio", "try":"https://moonbeans.io/", "medium":"https://medium.com/@MoonBeans" }, "web3goContracts":[ { "name":"Moonbeans: Beanie Distributor V2", "chain":"moonbeam", "contract":"0xda6367c6510d8f2d20a345888f9dff3eb3226b02" }, { "name":"Moonbeans: Marketplace V9", "chain":"moonbeam", "contract":"0x683724817a7d526d6256aec0d6f8ddf541b924de" }, { "name":"Moonbeans: Storefront Ownership V1", "chain":"moonbeam", "contract":"0x971dfedd548f2269e515957404cbbee1f507cd01" } ], "slug":"moonbeans", "createdAt":1699292615978, "logo":{ "small":{ "width":36, "fileName":"moonbeans-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"moonbeans-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"moonbeans-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "chains":[ "moonbeam", "moonriver" ], "defiLLamaTvlExist":false, "usersChange7d":{ "moonbeam":0 }, "marketData":{ "symbol":"beans", "marketCap":0, "priceChangePercentage1y":-62.22489, "currentPrice":0.062264, "priceChangePercentage14d":-13.93552, "contracts":{ }, "priceChangePercentage60d":-44.93764, "priceChangePercentage30d":-33.587, "priceChangePercentage24h":-0.05451, "priceChangePercentage200d":-83.0363, "marketCapChangePercentage24h":0, "priceChange24h":-0.0000339560550113, "marketCapChange24h":0, "priceChangePercentage7d":-5.36696 }, "projectCreationDate":1644828523000, "contracts":[ { "chain":"moonbeam", "contract":"0x65b09ef8c5a096c5fd3a80f1f7369e56eb932412" }, { "chain":"moonriver", "contract":"0xC2392DD3e3fED2c8Ed9f7f0bDf6026fcd1348453" } ], "updatedAt":1722548296818, "category":"nfts", "description":"Moonbeans is a fully functional NFT marketplace launched on October 8th 2021, after releasing 465 Beanies into the Moonriver network to wreak havoc. The platform is still in beta, but has been performing incredibly well. With minimal fees for artists, traders, and project developers, Moonbeans aims to grow and aid the Moonrver network as a whole to develop, learn, and earn. With multiple collections now live (Beanies, Damned Pirates Society), minting (RivrMaids), Moonbeans is the heart of the Moonriver NFT ecosystem.", "usersChange1d":{ "moonbeam":0 } }, { "urls":{ "telegram":"https://t.me/blocsport", "website":"https://blocsport.one/", "try":"https://blocsport.one/", "twitter":"https://twitter.com/blocsport1", "medium":"https://blocsport1.medium.com/" }, "slug":"blocsport-one", "createdAt":1699292616637, "logo":{ "small":{ "width":36, "fileName":"blocsport-one-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"blocsport-one-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"blocsport-one-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Blocsport.one", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1644828523000, "shortDescription":"Web 3.0 metaverse, smart sports money, athlete NFT launchpad & assets tokenization", "contracts":[ ], "updatedAt":1722498857332, "category":"nfts", "description":"Blocsport.one is a Swiss sports tech company founded in 2019 that is transforming the sports business by building a transparent and reliable sports ecosystem uniting athletes, clubs, and fans based on blockchain. Company owns NFTdeals.io exclusive marketplace and has the biometric-enabled football scouting DApp live. Blocsport.one helps the young promising athletes get the money and exposure for their career development, which is nobody else doing in the world.", "id":"blocsport-one", "tags":[ "NFT" ] }, { "urls":{ "telegram":"https://t.me/mintverse", "website":"https://www.mintverse.com/", "try":"https://www.mintverse.com/", "twitter":"https://twitter.com/mintverse_", "medium":"https://medium.com/mintverse", "discord":"https://discord.com/invite/mhhnbvAaq9" }, "slug":"mintverse", "createdAt":1702283733666, "logo":{ "small":{ "width":36, "fileName":"mintverse-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"mintverse-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"mintverse-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Mintverse", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1651597514000, "shortDescription":"Mint, Explore & Trade Liquid NFT Assets Across Multiple Chains", "contracts":[ ], "updatedAt":1722498889300, "category":"nfts", "description":"Comprehensive NFT Aggregation Marketplace with a 0% trading fee", "id":"mintverse", "tags":[ "NFT Marketplaces" ] }, { "urls":{ "telegram":"https://t.me/rmrkapp", "website":"https://upgradooor.app", "try":"https://upgradooor.app", "twitter":"https://x.com/rmrkapp", "github":"https://github.com/rmrk-team", "medium":"https://medium.com/rmrkapp" }, "slug":"upgradooor", "createdAt":1699292616895, "logo":{ "small":{ "width":36, "fileName":"upgradooor-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"upgradooor-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"upgradooor-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Upgradooor", "chains":[ "moonbeam", "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1692259742000, "shortDescription":"Upgrade your NFT 1.0 collections to NFT 2.0 by wrapping them into advanced functionality", "contracts":[ ], "updatedAt":1722498927244, "category":"nfts", "description":"As a collection issuer, use Upgradooor to initialize the process of upgrading your collection to NFT 2.0 if you are currently using ERC721.\n\nAs a holder, once the collection owner initiates the process, you can wrap any NFT you hold in that collection and instantly turn it into an equippable, multi-asset, composable NFT with no added risk.\n\nYou can always unwrap at will, and all the changes will still wait for you when you decide to re-claim the 2.0 wrapper again.\n\nUpgrading allows you to:\n\n- add more assets (outputs) to a legacy NFT, preventing needless airdrop spam\n- airdrop NFTs into the NFT itself, preventing detachment of context, and saving tremendous amounts of gas by letting people transfer just the parent NFT\n- define equippable settings and even achieve compatibility with other collections, for cross collection equippables and thus cross collection royalties and commissions\n- see your NFTs on Singular, and use GBM auctions as a unique and novel listing mechanic", "id":"upgradooor", "tags":[ "NFT", "Tool" ] }, { "urls":{ "telegram":"https://t.me/moonfit_official_community", "website":"https://moonfit.xyz/", "try":"https://moonfit.xyz/", "twitter":"https://twitter.com/MoonFitOfficial", "discord":"https://discord.gg/hStdUVtHXp" }, "slug":"moonfit", "createdAt":1702283734897, "logo":{ "small":{ "width":36, "fileName":"moonfit-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"moonfit-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"moonfit-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"MoonFit", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1654692249000, "shortDescription":"Web3 & NFT Lifestyle App That Pays You Anytime You Burn Calories", "contracts":[ ], "updatedAt":1722498891201, "category":"nfts", "description":"MoonFit is a Web3 Lifestyle App that promotes active living by rewarding users with tokens and NFTs anytime they burn calories through physical activities.", "id":"moonfit", "tags":[ "NFT", "Gaming" ] }, { "urls":{ "telegram":"https://t.me/rmrkapp", "website":"https://rmrk.app/", "try":"https://rmrk.app/", "twitter":"https://twitter.com/rmrkapp", "discord":"https://discord.com/invite/bV9kQbVC99" }, "slug":"rmrk", "createdAt":1699292615938, "logo":{ "small":{ "width":36, "fileName":"rmrk-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"rmrk-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"rmrk-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"RMRK", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "marketData":{ "symbol":"rmrk", "marketCap":5985029, "marketCapRank":1602, "priceChangePercentage1y":-64.99216, "currentPrice":0.62974, "priceChangePercentage14d":-24.26661, "contracts":{ "moonbeam":"0x524d524b4c9366be706d3a90dcf70076ca037ae3" }, "priceChangePercentage60d":-51.72181, "priceChangePercentage30d":-30.11256, "priceChangePercentage24h":-2.58554, "priceChangePercentage200d":-75.55551, "marketCapChangePercentage24h":-2.50147, "priceChange24h":-0.01671434617594, "marketCapChange24h":-153554.8536219, "priceChangePercentage7d":-1.5052 }, "coinGeckoId":"rmrk", "projectCreationDate":1644828523000, "shortDescription":"Creators of NFTs 2.0 via ERC6059, ERC6220, ERC5773, EIP6381, and EIP6454.\nNFT equippables, future compatibility, reputation, and token balances.", "contracts":[ ], "updatedAt":1722548302467, "category":"nfts", "description":"With the RMRK NFT Building Block System\nOur ERC NFT standards allow you to unlock the true potential of NFTs.\nTailored to work with each other, these EVM smart contracts will help you create your NFT projects of varying complexity.", "id":"rmrk", "tags":[ "NFT", "Infrastructure" ] }, { "urls":{ "website":"https://www.mynft.com/", "try":"https://bridge.mynft.com/home", "twitter":"https://twitter.com/mynft" }, "slug":"mynft", "createdAt":1699292616578, "logo":{ "small":{ "width":36, "fileName":"mynft-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"mynft-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"mynft-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"myNFT", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1644828523000, "shortDescription":"The marketplace that puts the power back in your hands", "contracts":[ ], "updatedAt":1722498895020, "category":"nfts", "description":"myNFT is the marketplace that puts the power back in your hands. It is a creative workshop, a trading platform and a discovery engine, helping you tell your story and share your passions, on your own terms. myNFT is built on decentralized technologies empowering you to create, trade, and discover. myNFT is built by Perpetual Altruism, a leader in the NFT space and the creator of charitable NFT publisher Cryptograph and the GBM auction system. Perpetual Altruism is backed by prominent investors and creators and is also the recipient of grants from the Web3 Foundation and the Moonbeam network for their work on the decentralized internet, which powers myNFT.", "id":"mynft", "tags":[ "NFT Marketplaces", "GLMR Grants", "MOVR Grants" ] }, { "urls":{ "website":"https://readl.co/", "try":"https://readl.co/", "twitter":"https://twitter.com/readl_co", "medium":"https://medium.com/@readlnetwork", "discord":"https://discord.gg/XPTENepHqY" }, "slug":"readl", "createdAt":1702283745749, "logo":{ "small":{ "width":36, "fileName":"readl-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"readl-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"readl-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Readl", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1655885161000, "shortDescription":"Bringing the publishing industry to web3", "contracts":[ ], "updatedAt":1722498910044, "category":"nfts", "description":"Readl is the protocol that provides publishers and storytellers with the infrastructure to publish their content on the blockchain, while providing a user-friendly platform to enjoy any story, in any format.", "id":"readl", "tags":[ "NFT Marketplaces", "MOVR Grants" ] }, { "urls":{ "telegram":"https://t.me/rmrkapp", "website":"https://emotes.app", "try":"https://emotes.app", "twitter":"https://x.com/rmrkapp", "github":"https://github.com/rmrk-team", "medium":"https://medium.com/rmrkapp" }, "slug":"emotes.app", "createdAt":1699292616951, "logo":{ "small":{ "width":36, "fileName":"emotes.app-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"emotes.app-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"emotes.app-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Emotes.app", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1692254489000, "shortDescription":"React on anyone's NFT - throw 💩 at those apes, give a 🤗 to those Pudgies!", "contracts":[ ], "updatedAt":1722498871347, "category":"nfts", "description":"Emotes.app is a RMRK mini-app which allows you to send emotes / reactions to anyone's NFT. It utilizes RMRK's ERC7009 and is trivial to integrate into any project wanting to take advantage of the community's reactions to their NFTs.\n\nUse it to direct storylines, affect NFT egg hatching, or just do relative price comparison when influencers like one NFTs and dislike another!", "id":"emotes.app", "tags":[ "NFT", "Social" ] }, { "urls":{ "telegram":"https://twitter.com/PolkaPets", "website":"https://www.polkapet.world/", "try":"https://www.polkapet.world/", "twitter":"https://twitter.com/PolkaPets", "medium":"https://polkapetworld.medium.com/" }, "slug":"polkapet-world", "createdAt":1702283743596, "logo":{ "small":{ "width":36, "fileName":"polkapet-world-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"polkapet-world-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"polkapet-world-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"PolkaPets", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "marketData":{ "priceChangePercentage60d":1206.42918, "symbol":"pets", "marketCap":0, "priceChangePercentage30d":619.39533, "priceChangePercentage200d":135.91624, "priceChangePercentage1y":355.00061, "currentPrice":0.00515699, "priceChangePercentage14d":-15.30948, "contracts":{ "moonriver":"0x1e0f2a75be02c025bd84177765f89200c04337da" }, "priceChangePercentage7d":749.62625 }, "coinGeckoId":"polkapet-world", "projectCreationDate":1651157216000, "shortDescription":"Welcome to PolkaPet World", "contracts":[ ], "updatedAt":1722548303208, "category":"nfts", "description":"An immersive NFT collection created in partnership with the biggest and best PolkaDot projects ", "id":"polkapet-world", "tags":[ "NFT" ] }, { "urls":{ "website":"https://www.moonarines.com/", "try":"https://www.moonarines.com/", "discord":"https://discord.gg/bXhSyW8htW" }, "slug":"moonarines", "createdAt":1702283733870, "logo":{ "small":{ "width":36, "fileName":"moonarines-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"moonarines-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"moonarines-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Moonarines", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1654792422000, "shortDescription":"Be part of the conquest of the digital space", "contracts":[ ], "updatedAt":1722498889804, "category":"nfts", "description":"The Moonarines are unique NFT characters starting soon on the Moonriver Network!\nWith the Moonarines, the NFT owners will be taken to an unforgettable adventure to explore the Cryptoverse!", "id":"moonarines", "tags":[ "NFT" ] }, { "urls":{ "telegram":"https://t.me/NFTrade", "website":"https://nftrade.com/", "try":"https://nftrade.com/", "twitter":"https://twitter.com/NFTradeOfficial", "medium":"https://medium.com/@NFTrade", "discord":"https://discord.com/invite/SESqfsyw8k" }, "slug":"nftrade", "createdAt":1699292616005, "logo":{ "small":{ "width":36, "fileName":"nftrade-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"nftrade-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"nftrade-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"NFTrade", "chains":[ "moonbeam", "moonriver" ], "defiLLamaTvlExist":false, "marketData":{ "symbol":"nftd", "marketCap":234018, "marketCapRank":3653, "priceChangePercentage1y":-65.38449, "currentPrice":0.00502075, "priceChangePercentage14d":-7.09922, "contracts":{ }, "priceChangePercentage60d":-27.37596, "priceChangePercentage30d":-14.12267, "priceChangePercentage24h":-2.22137, "priceChangePercentage200d":-56.66993, "marketCapChangePercentage24h":-2.16658, "priceChange24h":-0.00011406326237191, "marketCapChange24h":-5182.473845666, "priceChangePercentage7d":-6.88049 }, "coinGeckoId":"nftrade", "projectCreationDate":1644828523000, "shortDescription":"Create, Buy, Sell, Swap and Farm NFTs", "contracts":[ ], "updatedAt":1722548304198, "category":"nfts", "description":"NFTrade is a multi-chain platform for NFT creation and trading. Seamlessly launch, mint, and swap non-fungible tokens. Earn digital collectibles. NFTrade places you at the heart of the NFT economy. Create, Buy, Sell, Swap and Farm NFTs. All chains, All NFTs, One Platform.", "id":"nftrade", "tags":[ "NFT Marketplaces", "MOVR Grants" ] }, { "urls":{ "website":"https://www.pipcards.com/", "try":"https://www.pipcards.com/", "twitter":"https://twitter.com/pipcards", "discord":"https://discord.com/invite/hnSC7QjTHj" }, "slug":"pipcards", "createdAt":1699292616371, "logo":{ "small":{ "width":36, "fileName":"pipcards-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"pipcards-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"pipcards-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"PIP Cards", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1651149583000, "shortDescription":"Post-generated NFT playing card decks", "contracts":[ ], "updatedAt":1722498904704, "category":"nfts", "description":"PIPS is a first-of-its-kind NFT generative playing card project that will enable NFT holders to generate an entire deck of custom cards to be used cross-chain.", "id":"pipcards", "tags":[ "NFT", "Gaming" ] }, { "urls":{ "website":"https://bithotel.io/", "twitter":"https://twitter.com/playbithotel", "github":"https://github.com/BitHotelOrg/bithotel-token-contracts", "discord":"https://discord.gg/RFFZNwxY9n", "telegram":"https://t.me/bithotelcommunity", "try":"https://bithotel.io/", "medium":"https://medium.com/@bithotelnftgame" }, "slug":"bit-hotel", "createdAt":1702283710425, "logo":{ "small":{ "width":36, "fileName":"bit-hotel-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":500, "fileName":"bit-hotel-logo-large.jpeg", "mimeType":"image/jpeg", "height":500 }, "full":{ "width":3000, "fileName":"bit-hotel-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Bit Hotel", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1658743551000, "shortDescription":"Bit Hotel is a Social-first Play 2 Earn NFT Gaming Metaverse set in a Pixel-art Hotel.", "contracts":[ { "chain":"moonbeam", "contract":"Not deployed yet" }, { "chain":"moonriver", "contract":"Not deployed yet" } ], "updatedAt":1722498854706, "category":"nfts", "description":"In Bit Hotel users can compete to earn Bit Hotel tokens and acquire native NFTs. These NFTs have in-game utilities and consist of characters, hotel rooms, furniture and other assets that have their own unique perks. With over 250k Hotel Guests cross-channel, this nostalgic Hotel metaverse is taking people back to their 8bit upbringing.", "id":"bit-hotel", "tags":[ "NFT", "Gaming" ] }, { "tvlChange7d":{ "moonriver":0.00190215150271202 }, "urls":{ "website":"https://www.moonbeamdao.com/", "try":"https://www.moonbeamdao.com/", "twitter":"https://twitter.com/moonbeam_dao", "medium":"https://medium.com/@moonbeamdao", "discord":"https://discord.gg/AevrFzwZjk" }, "web3goContracts":[ { "name":"MoonDAO: MDAO Token", "chain":"moonbeam", "contract":"0xc6342eab8b7cc405fc35eba7f7401fc400ac0709" } ], "currentTx":{ "moonbeam":972 }, "slug":"moondao", "web3goIDs":[ "MoonDAO" ], "createdAt":1699292616416, "tvlChange1d":{ "moonriver":-0.0349944884006391 }, "logo":{ "small":{ "width":25, "fileName":"moondao-logo-small.png", "mimeType":"image/png", "height":36 }, "large":{ "width":330, "fileName":"moondao-logo-large.png", "mimeType":"image/png", "height":475 }, "full":{ "width":3000, "fileName":"moondao-logo-full.png", "mimeType":"image/png", "height":3000 } }, "name":"MoonDAO", "chains":[ "moonbeam" ], "currentTVL":{ "moonriver":76.75665 }, "currentUsers":{ "moonbeam":229 }, "projectCreationDate":1648347145000, "shortDescription":"The first & only community art dao on moonbeam", "contracts":[ ], "updatedAt":1722547637377, "category":"nfts", "description":"MoonDao is the first community Art Collection DAO on the Moonbeam network!\n\nWe aim to utilize input from our community to select high-end NFT’s. These NFT’s will be acquired with the MoonDao treasury and stored in the MoonDao Vault.\n\nMoon ownership grants access to DAO voting rights, future events, and additional holder perks outlined below. Welcome to the moon, we hope you stay.\n\n", "id":"moondao", "tags":[ "NFT", "DAO" ] }, { "urls":{ "telegram":"https://t.me/raresama", "website":"https://raresama.com/", "try":"https://raresama.com/", "twitter":"https://twitter.com/RaresamaNFT", "discord":"https://discord.com/channels/938592318380982303/1010237900685840405" }, "slug":"raresama", "createdAt":1699292615958, "logo":{ "small":{ "width":36, "fileName":"raresama-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"raresama-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"raresama-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Raresama", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1662528828000, "shortDescription":"Discover amazing Rare digital artwork", "contracts":[ ], "updatedAt":1722498909462, "category":"nfts", "description":"Raresama brings the magic of owning a piece of artwork to your fingertips. Create or browse NFT art collections and enjoy a diverse mix of artists, genres, styles and movements.", "id":"raresama", "tags":[ "NFT Marketplaces" ] }, { "urls":{ "telegram":"https://gal.xyz/telegram", "website":"https://galxe.com/", "try":"https://galxe.com/", "twitter":"https://twitter.com/Galxe", "medium":"https://blog.galxe.com/", "discord":"https://gal.xyz/discord" }, "slug":"galxe", "createdAt":1699292616277, "logo":{ "small":{ "width":36, "fileName":"galxe-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"galxe-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"galxe-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Galxe", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1659868871000, "shortDescription":"Create Impactful Experiences With #Web3 Credentials. (Formerly Project Galaxy) ", "contracts":[ ], "updatedAt":1722498876438, "category":"nfts", "description":"Galxe is the leading Web3 credential data network in the world. A collaborative credential infrastructure enabling brands and developers to engage communities and build robust products in Web3.", "id":"galxe", "tags":[ "NFT", "Social", "Tool" ] }, { "urls":{ "telegram":"http://t.me/MoonsamaNFT", "website":"https://moonsama.com/", "try":"https://moonsama.com/", "twitter":"https://twitter.com/MoonsamaNFT", "discord":"discord.gg/moonsama" }, "slug":"moonsama", "createdAt":1702283735408, "logo":{ "small":{ "width":36, "fileName":"moonsama-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"moonsama-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"moonsama-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Moonsama", "chains":[ "moonriver", "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1651156798000, "shortDescription":"Let's build the multiverse", "contracts":[ ], "updatedAt":1722498892389, "category":"nfts", "description":"Moonsama’s protocol for bi-directional bridging of on-chain digital assets and off-chain applications. This is how we connect web2.0 games, metaverses and blockchains. It enables new games, development and community fun from across the Kusamaverse and beyond!", "id":"moonsama", "tags":[ "NFT", "Gaming" ] }, { "urls":{ "website":"https://smartstamp.com/", "try":"https://smartstamp.com/", "discord":"https://discord.gg/kajPqvZY" }, "slug":"smartstamp", "createdAt":1699292617058, "logo":{ "small":{ "width":36, "fileName":"smartstamp-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":436, "fileName":"smartstamp-logo-large.jpeg", "mimeType":"image/jpeg", "height":436 }, "full":{ "width":3000, "fileName":"smartstamp-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"SmartStamp", "chains":[ "moonbeam", "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1675081766000, "shortDescription":"SmartStamp is the pioneering new standard in identification and authentication for the art world.", "contracts":[ ], "updatedAt":1722498915044, "category":"nfts", "description":"Developed over more than a decade, SmartStamp’s app uses patented AI technology that is designed to read and record artworks’ surface characteristics– offering artists, collectors, institutions, and all arts and culture stakeholders a way to securely and immutably link physical objects to their digital fingerprints on the blockchain. Using the SmartStamp app is as simple as taking a picture, making the groundbreaking security and timestamping power of blockchain technology accessible to anyone who can use a smartphone.", "id":"smartstamp", "tags":[ "NFT" ] }, { "urls":{ "telegram":"https://t.me/yusernetwork", "website":"https://yuser.network/", "try":"https://yuser.network/", "twitter":"https://twitter.com/yuser", "medium":"https://medium.com/yuser", "discord":"https://discord.com/invite/uRRxnfAjhY" }, "slug":"yuser", "createdAt":1699292616605, "logo":{ "small":{ "width":36, "fileName":"yuser-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"yuser-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"yuser-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Yuser", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1644828523000, "shortDescription":"The first NFT social networking app- by creators, for creators", "contracts":[ ], "updatedAt":1722498932483, "category":"nfts", "description":"Yuser’s mission is to build an ecosystem of interconnected applications that put power back into the hands of users by giving them full control over their content, data, and personal networks. Developers can connect via an API to instantly gain access to millions of users and incentivize them to try their product by paying them with a token.", "id":"yuser", "tags":[ "NFT Marketplaces", "GLMR Grants", "MOVR Grants" ] }, { "urls":{ "telegram":"https://t.me/cryptosoots", "website":"https://raregems.io/my#", "try":"https://raregems.io/my#", "twitter":"https://twitter.com/RareGems_io" }, "slug":"rare-gems", "createdAt":1702283745336, "logo":{ "small":{ "width":36, "fileName":"rare-gems-logo-small.png", "mimeType":"image/png", "height":36 }, "large":{ "width":360, "fileName":"rare-gems-logo-large.png", "mimeType":"image/png", "height":360 }, "full":{ "width":3000, "fileName":"rare-gems-logo-full.png", "mimeType":"image/png", "height":3000 } }, "name":"Rare Gems", "chains":[ "moonriver", "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1652705611000, "shortDescription":"Multichain NFT marketplace.", "contracts":[ ], "updatedAt":1722498909205, "category":"nfts", "description":"Multichain NFT marketplace\nCreated by \n@cryptosoots", "id":"rare-gems", "tags":[ "NFT Marketplaces" ] }, { "urls":{ "telegram":"https://t.me/rmrkapp", "website":"https://wizard.rmrk.dev", "try":"https://wizard.rmrk.dev", "twitter":"https://x.com/rmrkapp", "github":"https://github.com/rmrk-team", "medium":"https://medium.com/rmrkapp" }, "slug":"rmrk-wizard", "createdAt":1699292616919, "logo":{ "small":{ "width":36, "fileName":"rmrk-wizard-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"rmrk-wizard-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"rmrk-wizard-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"RMRK Wizard", "chains":[ "moonbeam", "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1692255253000, "shortDescription":"A no-code-but-code wizard UI for building NFTs 2.0", "contracts":[ ], "updatedAt":1722498911520, "category":"nfts", "description":"A simple UI to put together NFT 2.0 legos created by the RMRK.app team. Use this tool to get started developing advanced NFT collections by picking from a set of functions you need, and the tool will compose code for you which only needs final tweaks before being deployed!", "id":"rmrk-wizard", "tags":[ "NFT", "Tool", "Developer Tools" ] }, { "urls":{ "telegram":"https://t.me/evelonapp", "website":"https://platform.evelon.app/", "try":"https://www.evelon.app/", "twitter":"https://twitter.com/EvelonApp" }, "slug":"evelon-app", "createdAt":1699292616145, "logo":{ "small":{ "width":36, "fileName":"evelon-app-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":512, "fileName":"evelon-app-logo-large.jpeg", "mimeType":"image/jpeg", "height":512 }, "full":{ "width":3000, "fileName":"evelon-app-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Evelon.App", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1690486894000, "shortDescription":"Transform the way you create and bring to life your own unique DNFTs, with the revolutionary platform that combines cutting-edge AI technology.", "contracts":[ ], "updatedAt":1722498873048, "category":"nfts", "description":"Evelon is a no code platform that allows you to create and deploy dynamic NFTs with ease. This project is a game changer in the world of NFTs and image generation. Evelon uses AI to generate high-quality images, making it possible to create NFTs with unique visuals that are both dynamic and engaging.", "id":"evelon-app", "tags":[ "NFT", "Tool" ] }, { "urls":{ "website":"https://mintlabz.io/", "try":"https://app.mintlabz.io/", "twitter":"https://twitter.com/mintlabz", "medium":"https://blog.mintlabz.io/", "discord":"https://discord.com/invite/BRF2PEetea" }, "slug":"mintlabz", "createdAt":1712311518649, "logo":{ "small":{ "width":36, "fileName":"mintlabz-logo-small.png", "mimeType":"image/png", "height":36 }, "large":{ "width":400, "fileName":"mintlabz-logo-large.png", "mimeType":"image/png", "height":400 }, "full":{ "width":3000, "fileName":"mintlabz-logo-full.png", "mimeType":"image/png", "height":3000 } }, "name":"Mintlabz", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1712189524, "shortDescription":"MintLabz is a complete crosschain NFT solution at zero cost.", "contracts":[ ], "updatedAt":1722498889042, "category":"nfts", "description":"MintLabz aims to establish a digital NFT minting platform for third party projects to create NFT collections with utilities to reward the NFT holder. Our mission is to become the number one choice for providing complete cross-chain NFT solutions to B2B customers.", "id":"mintlabz", "tags":[ "nfts" ] }, { "urls":{ "telegram":"https://t.me/golempark", "website":"https://golempark.com", "try":"https://golempark.com", "twitter":"https://twitter.com/golempark", "discord":"https://discord.gg/rNvtdHN8q7" }, "slug":"golem-park", "createdAt":1699292617039, "logo":{ "small":{ "width":36, "fileName":"golem-park-logo-small.png", "mimeType":"image/png", "height":36 }, "large":{ "width":512, "fileName":"golem-park-logo-large.png", "mimeType":"image/png", "height":512 }, "full":{ "width":3000, "fileName":"golem-park-logo-full.png", "mimeType":"image/png", "height":3000 } }, "name":"Golem Park", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1676839105000, "shortDescription":"Golem Park is holders friendly NFT collection. P2E blockchain game, $GP Token, Staking Pools & more", "contracts":[ { "chain":"moonbeam", "contract":"0x74746524f5A31F08e0528FaA704C2c5d8d116506" } ], "updatedAt":1722498878088, "category":"nfts", "description":"First Time In Crypto History Token Burning Campaign!\n30% Of Total Token Supply Will Be Burned In 30 Days.\n\nAfter Minting We Are Going To Release Deflationary $GP Token & 50% Of Total Supply Will Be Distributed To All $GP NFT Holders, 1 NFT = 5 000 000 Tokens. Then 30 Days Each Day We'll Burn 1% Of Total Token Supply To Ensure Token Price Will Go UP!\n\nWorld Of Golems is a decentralized Play-To-Earn blockchain game.\nOnce You Become Golem Park NFT Holder You Will Be Able To Participate in the WoG Game, Own Countries And Display Your Message On Them.\n\nThe Leaderboard Shows Of TOP 5 Wealthiest Countries & Every Month Owners Of These Countries Will Be Rewarded With $GLMR.", "id":"golem-park", "tags":[ "NFT" ] }, { "urls":{ "telegram":"https://t.me/rarible", "website":"https://rarible.com/", "try":"https://rarible.com/", "twitter":"https://x.com/rarible", "discord":"https://discord.com/invite/rarible" }, "slug":"rarible", "createdAt":1722498909701, "logo":{ "small":{ "width":429, "fileName":"rarible-small.png", "mimeType":"image/png", "height":121 }, "large":{ "width":858, "fileName":"rarible-medium.png", "mimeType":"image/png", "height":242 }, "full":{ "width":1716, "fileName":"rarible-large.png", "mimeType":"image/png", "height":485 } }, "name":"Rarible", "chains":[ "moonbeam" ], "shortDescription":"Rarible - NFT Marketplace for Brands, Communities and Traders", "projectCreationDate":1721872843, "contracts":[ ], "updatedAt":1722498909701, "category":"nfts", "description":"Discover, sell and buy NFTs on Rarible! Our aggregated NFT marketplace for Ethereum NFTs and Polygon NFTs powers brands, collections and creator marketplaces.", "id":"rarible", "featured":false, "tags":[ "NFT" ] }, { "urls":{ "website":"https://neoncrisis.io/", "try":"https://neoncrisis.io/", "twitter":"https://twitter.com/NeonCrisisNFT", "discord":"https://discord.gg/MVVjT9k9eD" }, "slug":"neoncrisis-io", "createdAt":1702283737907, "logo":{ "small":{ "width":36, "fileName":"neoncrisis-io-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":319, "fileName":"neoncrisis-io-logo-large.jpeg", "mimeType":"image/jpeg", "height":319 }, "full":{ "width":3000, "fileName":"neoncrisis-io-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Neon Crisis", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "projectCreationDate":1654792548000, "shortDescription":"6,008 heroes on the $MOVR network. A $RMRK powered metaverse featuring battle simulations, equipables, and more!", "contracts":[ ], "updatedAt":1722498896060, "category":"nfts", "description":"", "id":"neoncrisis-io", "tags":[ "NFT", "Gaming" ] }, { "urls":{ "telegram":"https://t.me/xp_network", "website":"https://xp.network/", "try":"https://xp.network/", "twitter":"https://twitter.com/xpnetwork_", "discord":"https://discord.com/invite/g3vkcsmd38" }, "slug":"xp-network", "createdAt":1699292615205, "logo":{ "small":{ "width":36, "fileName":"xp-network-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"xp-network-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"xp-network-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"XP Network", "chains":[ "moonbeam" ], "defiLLamaTvlExist":false, "projectCreationDate":1673327644000, "shortDescription":"A powerful NFT bridge trusted by all major blockchains ", "contracts":[ ], "updatedAt":1722498932103, "category":"nfts", "description":"We build software tools that enable experienced developers and non-coding blockchain community members to move their assets seamlessly and intuitively between versatile distributed ledgers. By doing so, we encourage unlimited growth of exchange and trade between otherwise isolated ecosystems. We enable them to enrich each other technologically with insights and discoveries. To gain access to new, previously inaccessible markets with users hungry for fresh ideas and technologies to invest in.", "id":"xp-network", "tags":[ "NFT", "Bridges" ] }, { "urls":{ "website":"https://www.damnedpiratessociety.io/", "try":"https://www.damnedpiratessociety.io/", "twitter":"https://twitter.com/TheDPSproject", "discord":"https://discord.com/invite/TheDamnedPiratesSociety" }, "web3goContracts":[ { "name":"Damned Pirates Society: DPSArtifact Token", "chain":"moonriver", "contract":"0xcd84ddadc45a25b02e1a6a5520171487a98e6155" }, { "name":"Damned Pirates Society: DPS Token", "chain":"moonriver", "contract":"0xb6e9e605aa159017173caa6181c522db455f6661" }, { "name":"Damned Pirates Society: DSPFlagship Token", "chain":"moonriver", "contract":"0x3822063a3f1aad3fd0b894e2a8f238ccca7c2d00" }, { "name":"Damned Pirates Society: DSPVoyage Token", "chain":"moonriver", "contract":"0x7b2e778453ab3a0d946c4620fb38a0530a434e15" }, { "name":"Damned Pirates Society: DOUBLOON Token", "chain":"moonriver", "contract":"0xe413a631e8a9a10958d9b7c64157449eae7c2064" } ], "currentTx":{ "moonriver":20402 }, "slug":"damned-pirates-society", "web3goIDs":[ "Damned Pirates Society" ], "createdAt":1699292616058, "logo":{ "small":{ "width":36, "fileName":"damned-pirates-society-logo-small.jpeg", "mimeType":"image/jpeg", "height":36 }, "large":{ "width":400, "fileName":"damned-pirates-society-logo-large.jpeg", "mimeType":"image/jpeg", "height":400 }, "full":{ "width":3000, "fileName":"damned-pirates-society-logo-full.jpeg", "mimeType":"image/jpeg", "height":3000 } }, "name":"Damned Pirates Society", "chains":[ "moonriver" ], "defiLLamaTvlExist":false, "currentUsers":{ "moonriver":2000 }, "projectCreationDate":1644828523000, "shortDescription":"Eclectic pirate-based NFT project with utility", "contracts":[ ], "updatedAt":1722547421801, "category":"nfts", "description":"A long time ago the Fortune’s Grasp was carrying families to settle on The Islands and start a new life. In the middle of their voyage they encountered a fearsome maelstrom. The Captain and his crew worked tirelessly to keep the ship afloat. Badly damaged, the Ship limped to the edges of the storm. It was taking on water and the cries of terrified children could be heard above the crashing waves. Another ship appeared on the horizon, it’s light glowing brightly against the dark night. The Captain of the Fortune’s Grasp ordered his crew to evacuate the families, but the fifty crew members ignored the Captain, abandoning ship, taking all means of escape with them. The Captain, left on the sinking ship, cursed the cowardly crew for damning those innocent souls to the watery depths. Those Forsaken Fifty were marked with The Black Spot, doomed to row the high seas until the Reaper came to claim his mutinous crew to serve on the Ship Of The Damned. However, if they could convince another soul to take their place at the oars, protection would be offered by those Pirates who’ve cheated the Reaper before. Those who’ve served and survived are welcome in the Damned Pirates Society.\r\n\r\nThe Damned Pirate Society is an Profile Picture NFT with inbuilt utility. Stake your Pirate for Treasure Maps(TMAP) and save these for your Doubloon farming voyages on our upcoming, skill based gamified contracts.", "id":"damned-pirates-society", "tags":[ "NFT", "Gaming", "GLMR Grants" ] } ], "count":40 } ``` Below are all possible categories and their respective parameters for querying the API. Ensure you query the API with the parameter formatted exactly as shown in lowercase. | Category | API Parameter | |:--------:|:-------------:| | Bridges | `bridges` | | DAO | `dao` | | DEX | `dex` | | DeFi | `defi` | | Gaming | `gaming` | | Lending | `lending` | | NFTs | `nfts` | | Other | `other` | | Social | `social` | | Wallets | `wallets` | ### Query a Chain {: #query-a-chain} The following queries can be used to query all of the listed projects on Moonbeam or Moonriver. Note that Moonbase Alpha is not a supported network in the DApp Directory. === "Moonbeam" ```bash https://apps.moonbeam.network/api/ds/v1/app-dir/projects?chain=moonbeam ``` === "Moonriver" ```bash https://apps.moonbeam.network/api/ds/v1/app-dir/projects?chain=moonriver ```
You are responsible for checking and validating the accuracy and truthfulness of all content. You are also responsible for doing your own diligence to understand the applicable risks present, including selection, performance, security, accuracy, or use of any third-party information. All information contained herein is subject to modification without notice.
--- END CONTENT --- Doc-Content: https://docs.moonbeam.network/learn/platform/glossary/ --- BEGIN CONTENT --- --- title: Glossary description: We've compiled a glossary of terms related to Polkadot that'll make it easier to learn more about the ecosystem. categories: Reference --- # Glossary There's a great deal of terminology that's specific to Polkadot, Substrate, and the emerging Parity/Web3 ecosystem. We've compiled a list of terms we think you'll want to know as you review the Moonbeam documentation, plans, and tutorials. ### Collators {: #collators } One of the key network participants needed to support parachains within the Polkadot Network. In Moonbeam, collators are the nodes that are responsible for block production and for submitting produced blocks up to the Polkadot relay chain for finalization. ### Delegators {: #delegators } Moonbeam token holders who stake tokens, vouching for specific collator candidates on the parachain. Any user that holds a minimum amount of tokens as [free balance](https://wiki.polkadot.com/learn/learn-accounts/#balance-types#balance-types){target=\_blank} can become a delegator by staking their tokens. ### Nominators {: #nominators } Relay chain token holders who select to "back" a validator. They can receive part of the validator's reward, but are subject to slashing of their staked tokens in case the validator misbehaves. A nominator can back up to 16 validators, and their bond is fully distributed between the backed validators that were selected for the validator set. ### Nominated Proof of Stake {: #nominated-proof-of-stake } The mechanism used by Polkadot for selecting its block validator set to maximize chain security. At its core, it is a Proof-of-Stake system (PoS) in which nominators back validators. The latter with the highest backing are selected to be part of the validator set for a session. The stake of a validator is slashed in case of misbehavior. Thus, nominators are expected to do due diligence on the validators they nominate. ### Parachains {: #parachains } A blockchain which has a slot and is connected to Polkadot. Parachains receive shared security from Polkadot and the ability to interact with other parachains on the Polkadot network. They must lock DOT, the native relay chain token, to secure a slot for a specific period (up two years). ### Parathreads {: #parathreads } A blockchain which can connect to Polkadot. Parathreads are able to interact with other members of the Polkadot network, but they bid for block finalization (in DOT) on a block-to-block basis. They compete with other parathreads for block finalization, meaning that the block with the highest bid is selected to be finalize in that round. ### Polkadot {: #polkadot } A network of connected blockchains that provides shared security and the ability to interact between chains. Polkadot is built using the Substrate development framework. Chains that connect to Polkadot are called parachains. ### Relay Chain {: #relay-chain } The backbone blockchain supporting the Polkadot network. Parachains connect to the relay chain and use it for shared security and message passing. Validators on the relay chain help secure the parachains. ### Smart Contract {: #smart-contract } A [smart contract](https://en.wikipedia.org/wiki/Smart_contract){target=\_blank} is a computer program or a transaction protocol that is intended to automatically execute, control, or document legally relevant events and actions according to the terms of a contract or an agreement. Smart contracts intend to reduce the need for trusted intermediators, arbitrations, and enforcement costs, as well as reduce fraud losses and malicious and accidental exceptions. ### Substrate {: #substrate } A Rust-based blockchain development framework created by Parity Technologies based on their experience implementing multiple blockchain clients. Substrate comes with many modules and functionalities that are needed when building a blockchain, including P2P networking, consensus mechanisms, staking, cryptocurrency, on-chain governance modules, and more. It dramatically reduces the time and engineering effort required to implement a blockchain. Substrate is now part of the [Polkadot SDK](https://polkadot.com/platform/sdk/){target=\_blank}. ### Substrate Frame Pallets {: #substrate-frame-pallets } Substrate Frame Pallets are a collection of Rust-based modules, providing the functionality required for building a blockchain. ### Validators {: #validators } A node that secures the Polkadot relay chain by staking DOT in the network, which is slashed if they misbehave. They finalize blocks from collators on parachains and also participate on consensus for the next relay chain block with other validators. ### WebAssembly/Wasm {: #webassemblywasm } WebAssembly is an open standard that defines a portable binary code format. It is supported by different programming languages, compilers, and browsers. --- END CONTENT --- Doc-Content: https://docs.moonbeam.network/builders/build/historical-updates/ --- BEGIN CONTENT --- --- title: Historical Updates description: An overview of the historical updates made on Moonbeam and Moonriver, such as migrations and bug fixes applied to the Moonbeam source code. categories: Reference --- # Historical Updates ## Introduction {: #introduction } This page overviews historical updates on Moonbeam and Moonriver, such as bug fixes to the Moonbeam source code and data migrations applied. This page aims to provide information about unexpected behaviors or data inconsistencies associated with updates that require forced data migrations. ## Bugs {: #bugs } #### Invalid Transactions Stored {: #invalid-transactions-stored } For invalid transactions where the transaction cost couldn't be paid, the EVM pallet inserted the transaction metadata into storage instead of discarding it because there was no transaction cost validation. As a result, the runtime storage was unnecessarily bloated with invalid transaction data. This bug only impacted Moonriver and Moonbase Alpha and existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:-----:|:--------------------:| | Moonriver | RT49 | RT600 | 0 - 455106 | | Moonbase Alpha | RT40 | RT600 | 0 - 675175 | For more information, you can review the [relative Frontier PR on GitHub](https://github.com/polkadot-evm/frontier/pull/465){target=\_blank}. --- #### Ethereum Fees Weren't Sent to Treasury {: #ethereum-fees-to-treasury } The Moonbeam transaction fee model before Runtime 3401 and the passage of [MB101](https://forum.moonbeam.network/t/proposal-mb101-burn-100-of-transaction-fees-on-moonbeam/2022){target=\_blank} mandated a 20% allocation of fees sent to the on-chain Treasury and 80% burned as a deflationary force. However, before runtime 800, Ethereum transactions did not correctly allocate 20% of the transaction fees to the on-chain Treasury. This bug only impacted Moonriver and Moonbase Alpha and existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:-----:|:--------------------:| | Moonriver | RT49 | RT800 | 0 - 684728 | | Moonbase Alpha | RT40 | RT800 | 0 - 915684 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/732){target=\_blank}. --- #### Missing Refunds {: #missing-refunds } Moonbeam is configured to set the existential deposit to 0, meaning that accounts do not need a minimum balance to be considered active. For Substrate-based chains with this configuration, some refunds were missing from zeroed accounts because the account was interpreted as not existing. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT900 | RT1001 | 0 - 5164 | | Moonriver | RT49 | RT1001 | 0 - 1052241 | | Moonbase Alpha | RT40 | RT1001 | 0 - 1285915 | For more information, you can review the [relative Frontier PR](https://github.com/polkadot-evm/frontier/pull/509){target=\_blank} and the associated [Substrate PR on GitHub](https://github.com/paritytech/substrate/issues/10117){target=\_blank}. --- #### Incorrect Collator Selection {: #incorrect-collator-selection } The total delegations for collator candidates were not correctly updated when a delegation was increased via the `delegatorBondMore` extrinsic. This led to issues where the increased delegation amount wasn't included in the candidates' total amount bonded, which is used to determine which candidates are in the active set of collators. As a result, some candidates may not have been selected to be in the active set when they should have been, impacting their own and their delegators' rewards. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT900 | RT1300 | 0 - 524762 | | Moonriver | RT49 | RT1300 | 0 - 1541735 | | Moonbase Alpha | RT40 | RT1300 | 0 - 1761128 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1291){target=\_blank}. --- #### New Account Event Bug {: #new-account-event } The `System.NewAccount` event is emitted when a new account is created. However, a bug prevented this event from being emitted for some accounts at creation time. A hotfix was applied that patched the impacted accounts and emitted the `System.NewAccount` at a later time. The hotfix was applied in the following block ranges: | Network | Block Range | |:--------------:|:-------------------------------------------------------------------------------------------------------------------------------------:| | Moonbeam | [1041355 - 1041358 and 1100752](https://moonbeam.subscan.io/extrinsic?module=evm&call=hotfix_inc_account_sufficients){target=\_blank} | | Moonriver | [1835760 - 1835769](https://moonriver.subscan.io/extrinsic?module=evm&call=hotfix_inc_account_sufficients){target=\_blank} | | Moonbase Alpha | [2097782 - 2097974](https://moonbase.subscan.io/extrinsic?address=&module=evm&call=hotfix_inc_account_sufficients){target=\_blank} | This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT900 | RT1401 | 0 - 915320 | | Moonriver | RT49 | RT1401 | 0 - 1705939 | | Moonbase Alpha | RT40 | RT1400 | 0 - 1962557 | For more information, you can review the [relative Frontier PR on GitHub](https://github.com/moonbeam-foundation/frontier/pull/46/files){target=\_blank}. --- #### Incorrect Timestamp Units {: #incorrect-timestamp-units } EIP-2612 and Ethereum blocks deal with timestamps in seconds; however, the Substrate timestamp pallet that Moonbeam implements uses milliseconds. This only affected the EIP-2612 implementation, not the `block.timestamp` value. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT900 | RT1606 | 0 - 1326697 | | Moonriver | RT49 | RT1605 | 0 - 2077598 | | Moonbase Alpha | RT40 | RT1603 | 0 - 2285346 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1451){target=\_blank}. --- #### Substrate Tips Missing Treasury Distribution {: #substrate-tips } Tips for Substrate-based transactions weren't handled properly. The entire portion of the tip was burned because it was not handled in the runtime code. A fix was applied so that 20% was paid to the Treasury and 80% was burned, consistent with all other fee behavior at that time. Note that RT3401 introduced a parameters pallet fee configuration allowing governance to adjust how fees are split between the Treasury and burning. After this runtime upgrade combined with the passage of [MB101](https://forum.moonbeam.network/t/proposal-mb101-burn-100-of-transaction-fees-on-moonbeam/2022){target=\_blank}, 100% of all transaction fees on both Moonbeam and Moonriver are now burned. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT900 | RT2403 | 0 - 4163078 | | Moonriver | RT49 | RT2401 | 0 - 4668844 | | Moonbase Alpha | RT40 | RT2401 | 0 - 4591616 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2291){target=\_blank}. --- #### Incorrect Delegation Reward Calculation {: #incorrect-delegation-reward-calculation } The reward payouts for all delegations and collators were underestimated whenever there were pending requests. Delegation rewards are calculated based on the amount of tokens bonded by each delegator with respect to the total stake of the given collator. By counting delegation amounts for pending requests, the rewards to collators and their delegations were less than they should have been. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT1001 | RT1802 | 5165 - 1919457 | | Moonriver | RT1001 | RT1801 | 1052242 - 2572555 | | Moonbase Alpha | RT1001 | RT1800 | 1285916 - 2748785 | You can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1719){target=\_blank} for more information. --- #### Block Parent Hash Calculated Incorrectly {: #block-parent-hash-calculated-incorrectly } After EIP-1559 support was introduced, which included the transition to new Ethereum transaction types, the block header parent hash was miscalculated to `H256::default`. This bug only impacted Moonbase Alpha and only impacted the following block: | Network | Introduced | Fixed | Impacted Block | |:--------------:|:----------:|:------:|:--------------:| | Moonbase Alpha | RT1200 | RT1201 | 1648995 | While the root issue was fixed in RT1201, the incorrect hash was corrected in RT2601. For more information on the root fix, you can review the [relative Frontier PR on GitHub](https://github.com/polkadot-evm/frontier/pull/570/){target=\_blank}. To take a look at the correction of the parent hash, check out the corresponding [Moonbeam PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2524){target=\_blank}. --- #### Incorrect Handling of EIP-1559 Gas Fees {: #incorrect-gas-fees-eip1559 } With the introduction of EIP-1559 support, the logic for handling `maxFeePerGas` and `maxPriorityFeePerGas` was implemented incorrectly. As a result, the `maxPriorityFeePerGas` was added to the `baseFee` even if the total amount was over the `maxFeePerGas`. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT1201 | RT1401 | 415946 - 915320 | | Moonriver | RT1201 | RT1401 | 1471037 - 1705939 | | Moonbase Alpha | RT1200 | RT1400 | 1648994 - 1962557 | For more information, you can review the [relative Frontier PR](https://github.com/moonbeam-foundation/frontier/pull/45){target=\_blank}. --- #### Transaction Fees Paid to Collators {: #transaction-fees-paid-to-collators } For blocks that included EIP-1559 transactions where a priority fee was applied, the transaction fees were incorrectly calculated and distributed to the block's collator. The fee model on Moonbeam for transactions and smart contract execution was previously handled so that 20% of the fees went to the on-chain Treasury and 80% were burned as a deflationary force. Due to this bug, the transaction fees of the impacted transactions were not burned as expected. Note that RT3401 introduced a parameters pallet fee configuration allowing governance to adjust how fees are split between the Treasury and burning. After this runtime upgrade combined with the passage of [MB101](https://forum.moonbeam.network/t/proposal-mb101-burn-100-of-transaction-fees-on-moonbeam/2022){target=\_blank}, 100% of all transaction fees on both Moonbeam and Moonriver are now burned. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT1201 | RT1504 | 415946 - 1117309 | | Moonriver | RT1201 | RT1504 | 1471037 - 1910639 | | Moonbase Alpha | RT1200 | RT1504 | 1648994 - 2221772 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1528){target=\_blank}. --- #### Incorrect State Root Hash {: #incorrect-state-root-hash } The state root hash was miscalculated for non-legacy transactions as the transaction-type byte was not considered. With the support of [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930){target=\_blank} and [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559){target=\_blank}, the transaction types introduced are `0x01` (1) and `0x02` (2), respectively. These transaction types were omitted from the state root hash calculation. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT1201 | RT1701 | 415946 - 1581456 | | Moonriver | RT1201 | RT1701 | 1471037 - 2281722 | | Moonbase Alpha | RT1200 | RT1700 | 1648994 - 2529735 | For more information, you can review the [relative Frontier PR](https://github.com/moonbeam-foundation/frontier/pull/86){target=\_blank} and [Moonbeam PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1678/files){target=\_blank}. --- #### Ethereum Transactions Duplicated in Storage {: #ethereum-transactions-duplicated-in-storage } An upstream bug was introduced to Frontier in the Ethereum Pallet, causing pending transactions that existed during a runtime upgrade to be duplicated in storage across two different blocks. This only impacted the first two blocks after the runtime upgrade in which this bug was introduced. Only Moonriver and Moonbase Alpha were impacted. The bug was introduced in the following runtimes and affected the following blocks: | Network | Introduced | Impacted Blocks | |:--------------:|:----------:|:-------------------:| | Moonriver | RT1605 | 2077599 and 2077600 | | Moonbase Alpha | RT1603 | 2285347 and 2285348 | The following transactions were duplicated: === "Moonriver" ```js '0x2cceda1436e32ae3b3a2194a8cb5bc4188259600c714789bae1fedc0bbc5125f', '0x3043660e35e89cafd7b0e0dce9636f5fcc218fce2a57d1104cf21aabbff9a1c0', '0x514411fb5c08f7c5aa6c61c38f33edfa74ff7e160831f6140e8dd3783648dbca', '0xf1647c357d8e1b05c522d11cff1f5090a4df114595d0f4b9e4ac5bb746473eea', '0x4be94803fe7839d5ef13ddd2633a293b4a7dddbe526839c15c1646c72e7b0b23', '0x15fceb009bd49692b598859f9146303ed4d8204b38e35c147fcdb18956679dbe', '0xa7460d23d5c633feec3d8e8f4382240d9b71a0d770f7541c3c32504b5403b70c', '0x1c838b4c4e7796a9db5edfd0377aee6e0d89b623bf1d7803f766f4cf71daefb9', '0xfb233a893e62d717ed627585f14b1ee8b3e300ac4e2c3016eb63e546a60820f0', '0xfaf8908838683ad51894eb3c68196afb99ba2e2bb698a40108960ee55417b56a', '0xa53973acbeac9fe948015dcfad6e0cb28d91b93c8115347c178333e73fd332d3', '0x9df769c96c5fdd505c67fee27eaff3714bf8f3d45a2afc02dd2984884b3cecac', '0x8f912ae91b408f082026992a87060ed245dac6e382a84288bd38fc08dbac30fe', '0xb22af459d24cb25bc53785bdd0ae6a573e24f226c94fd8d2e4663b87d3b07a88', '0x8ab9cd2bde7d679f798528b0c75325787f5fc7997e00589445b35b3954a815aa', '0xd08a1f82f4d3dc553b4b559925f997ef8bb85cb24cb4d0b893f017129fb33b78', '0xa1d40bce7cc607c19ca4b37152b6d8d3a408e3de6b9789c5977fcdef7ef14d97', '0xe442227634db10f5d0e8c1da09f8721c2a57267edbf97c4325c4f8432fd48ade', '0x0b4f5d8338a7c2b1604c1c42e96b12dc2a9d5ab264eb74ff730354e9765de13f', '0x0b00fc907701003aad75560d8b1a33cbf4b75f76c81d776b8b92d20e1d2e9d31', '0x9c18bd783f28427d873970ff9deaf1549db2f9a76e3edd6bdeae11358e447ef4', '0x8b2523f163989969dd0ebcac85d14805756bc0075b89da1274fd2c53ccaa396a', '0x47e80a0c533265974a55ea62131814e31b10f42895709f7e531e3e7b69f1387c' ``` === "Moonbase Alpha" ```js '0x006a6843eb35ad35a9ea9a99affa8d81f1ed500253c98cc9c080d84171a0afb3', '0x64c102f664eb435206ad4fcb49b526722176bcf74801c79473c3b5b2c281a243', '0xf546335453b6e35ce7e236ee873c96ba3a22602b3acc4f45f5d68b33a76d79ca', '0x4ed713ccd474fc33d2022a802f064cc012e3e37cd22891d4a89c7ba3d776f2db', '0xa5355f86844bb23fe666b10b509543fa377a9e324513eb221e0a2c926a64cae4', '0xc14791a3a392018fc3438f39cac1d572e8baadd4ed350e0355d1ca874a169e6a' ``` The duplicated transactions belong to the first block. So, on Moonriver, the transactions belong to block 2077599, and on Moonbase Alpha, the impacted transactions belong to block 2285347. For more information, you can review the [relative Frontier PR on GitHub](https://github.com/polkadot-evm/frontier/pull/638){target=\_blank}. --- #### Gas Limit Too High for Non-Transactional Calls {: #gas-limit-too-high-for-non-transactional-calls } When a non-transactional call, such as `eth_call` or `eth_estimateGas`, is made without specifying a gas limit for a past block, the client defaults to using the gas limit multiplier (10x), which causes the gas limit validation to fail as it is validating against an upper bound of the block gas limit. So, if the gas limit is greater than the block gas limit for a given call, a gas limit too high error is returned. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT1701 | RT1802 | 1581457 - 1919457 | | Moonriver | RT1701 | RT1802 | 2281723 - 2616189 | | Moonbase Alpha | RT1700 | RT1802 | 2529736 - 2879402 | You can review the [relative Frontier PR on GitHub](https://github.com/polkadot-evm/frontier/pull/935){target=\_blank} for more information. --- #### Remote EVM Calls Return Identical Transaction Hashes {: #remote-evm-calls-return-identical-tx-hashes } When multiple remote EVM calls were sent from different accounts with the same transaction payload and nonce, the same transaction hash was returned for each call. This was possible because remote EVM calls are executed from a keyless account, so if the senders all had the same nonce and were sending the same transaction object, there was no differentiation in the calculation of the transaction hash. This was fixed by adding a global nonce to the Ethereum XCM Pallet, which is the pallet that makes remote EVM calls possible. This bug only existed on Moonbase Alpha during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbase Alpha | RT1700 | RT1900 | 2529736 - 3069634 | You can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1790){target=\_blank} for more information. --- #### Gas Estimation Discrepancy {: #gas-estimation-discrepancy } There was a difference between estimating the gas for a transaction using a non-transaction call, such as `eth_call`, and the execution of it on-chain. The discrepancy occurred because the non-transactional calls were not properly accounting for `maxFeePerGas` and `maxPriorityFeePerGas`, as such, the ([Proof of Validity](https://wiki.polkadot.com/general/glossary/#proof-of-validity){target=\_blank}) consumed by the Ethereum transaction was counted differently. This was fixed by properly accounting for these fields when estimating the size of the on-chain transaction. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT1201 | RT2501 | 415946 - 4543267 | | Moonriver | RT1201 | RT2500 | 1471037 - 5175574 | | Moonbase Alpha | RT1200 | RT2500 | 1648994 - 5053547 | You can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1790/){target=\_blank} for more information. --- #### Incorrect Effective Gas Price In Transaction Receipts {: #incorrect-effective-gas-price } The `effectiveGasPrice` value returned by `eth_getTransactionReceipt` was different from the on-chain value due to an incorrect calculation of the base fee. Specifically, the transaction receipt's value was computed using the `NextFeeMultiplier` from the block in which the transaction was included rather than the previous block, which is the correct source for computing the base fee. This bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbeam | RT1201 | RT2801 | 415946 - 5899847 | | Moonriver | RT1201 | RT2801 | 1471037 - 6411588 | | Moonbase Alpha | RT1200 | RT2801 | 1648994 - 6209638 | You can review the [relative Frontier PR](https://github.com/polkadot-evm/frontier/pull/1280){target=\_blank} and [Moonbeam PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2610){target=\_blank} for more information. --- #### Skipped Ethereum Transaction Traces {: #skipped-ethereum-transaction-traces } Runtimes with the `evm-tracing` feature enabled introduced additional `ref_time` overhead due to special logic that traces Ethereum transactions (emitting events for each component: gasometer, runtime, EVM) used to fill information for RPC calls like `debug_traceTransaction` and `trace_filter`. Since the real `ref_time` in production runtimes is smaller, this could cause the block weight limits to be reached when replaying a block in an EVM-tracing runtime, resulting in skipped transaction traces. This was observed in Moonbeam block [9770044](https://moonbeam.subscan.io/block/9770044){target=\_blank}. The fix consisted of resetting the previously consumed weight before tracing each Ethereum transaction. It's important to note that this issue only affected code under `evm-tracing`, which is not included in any production runtime. This bug was fixed in the following runtime: | Network | Fixed | Impacted Block | |:--------------:|:------:|:--------------:| | Moonbeam | RT3501 | 9770044 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/3210){target=\_blank}. --- #### Notify Inactive Collator Fails for Long-Inactive Collators {: #notify-inactive-collator-fails } The `notifyInactiveCollator` extrinsic, designed to remove collators from the pool if they haven't produced any blocks in the last two rounds, failed for collators who had been inactive for significantly longer than two rounds. The transaction would only succeed within the first few blocks of a new round. The bug existed during the following runtimes and block ranges: | Network | Introduced | Fixed | Impacted Block Range | |:--------------:|:----------:|:------:|:--------------------:| | Moonbase Alpha | RT2601 | RT3500 | 5474345 – 10750816 | | Moonriver | RT2602 | RT3501 | 5638536 – 10665393 | | Moonbeam | RT2602 | RT3501 | 4977160 – 10056989 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/3128){target=\_blank}. --- ## Migrations {: #migrations } Migrations are necessary when a storage item is changed or added and needs to be populated with data. The migrations listed below have been organized by the impacted pallet(s). ### Author Mapping Pallet {: #author-mapping } #### Update the Mapping Storage Item {: #update-mapping-storage-item } This migration updated the now deprecated `Mapping` storage item of the author mapping pallet to use a more secure hasher type. The hasher type was updated to [Blake2_128Concat](https://paritytech.github.io/substrate/master/frame_support/struct.Blake2_128Concat.html){target=\_blank} instead of [Twox64Concat](https://paritytech.github.io/substrate/master/frame_support/struct.Twox64Concat.html){target=\_blank}. This migration was only applied to Moonriver and Moonbase Alpha and was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonriver | RT800 | 684728 | | Moonbase Alpha | RT800 | 915684 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/679){target=\_blank}. --- #### Add Support for VRF Keys {: #add-support-for-vrf-keys } When VRF key support was introduced, the `MappingWithDeposit` storage item of the author mapping pallet was updated to include a `keys` field to support VRF keys that can be looked up via the Nimbus ID. A migration was applied to update the existing storage items with this new field. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1502 | 1107285 | | Moonriver | RT1502 | 1814458 | | Moonbase Alpha | RT1502 | 2112058 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1407){target=\_blank}. --- #### One Nimbus ID per Account ID {: #one-nimbus-id-per-account-id } A migration was applied to ensure that an account ID can have only one Nimbus ID. The migration accepted the first Nimbus ID owned by a given account and cleared any additional Nimbus IDs associated with the account. For any cleared associations, the bond for the association was returned. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1606 | 1326697 | | Moonriver | RT1605 | 2077599 | | Moonbase Alpha | RT1603 | 2285347 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1525){target=\_blank}. --- ### Base Fee Pallet {: #base-fee } #### Set Elasticity Storage Item Value {: #set-elasticity } This migration sets the `Elasticity` storage item of the base fee pallet to zero, which results in a constant `BaseFeePerGas`. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1300 | 524762 | | Moonriver | RT1300 | 1541735 | | Moonbase Alpha | RT1300 | 1761128 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1744){target=\_blank}. --- ### Democracy Pallet {: #democracy } #### Preimage Storage Moved to New Preimage Pallet A migration was applied, which moved preimages stored in the democracy pallet to a new preimage pallet. This migration on Moonbeam was required as a result of an [upstream change to Polkadot](https://github.com/paritytech/substrate/pull/11649/){target=\_blank}. There was one preimage that was affected in Moonbeam, which was dropped from the scheduler queue and never executed: `0x14262a42aa6ccb3cae0a169b939ca5b185bc317bb7c449ca1741a0600008d306`. This preimage was [manually removed](https://moonbeam.subscan.io/extrinsic/2693398-8){target=\_blank} by the account that initially submitted the preimage. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2000 | 3310369 | | Moonriver | RT2000 | 3202604 | | Moonbase Alpha | RT2000 | 2673234 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1962){target=\_blank}. --- #### Remove Governance V1 Collectives {: #remove-gov-v1-collectives } A migration was applied to remove the governance V1 collectives, which included the Council and Technical Committee. The governance V1 collectives were replaced with the OpenGov (governance V2) Technical Committee. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2801 | 5899847 | | Moonriver | RT2801 | 6411588 | | Moonbase Alpha | RT2801 | 6209638 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2643){target=\_blank}. A follow-up migration was required to properly clear the storage entries associated with the governance V1 collectives, which was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2901 | 6197065 | | Moonriver | RT2901 | 6699589 | | Moonbase Alpha | RT2901 | 6710531 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2711){target=\_blank}. --- #### Remove Governance V1 Democracy Pallet {: #remove-gov-v1-collectives } A migration was applied to remove the storage associated with the Democracy Pallet used in governance V1. The Democracy Pallet was replaced with the Preimage, Referenda, and Collective Voting OpenGov (governance V2) pallets. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2901 | 6197065 | | Moonriver | RT2901 | 6699589 | | Moonbase Alpha | RT2901 | 6710531 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2685){target=\_blank}. --- ### EVM Pallet {: evm-pallet } #### EVM Contract Metadata A migration was introduced to automate the manual process of setting EVM contract metadata for contracts deployed more than two years ago that hadn't been interacted with after the introduction of metadata storage item. This migration replaces the need to manually call `createContractMetadata(address)` on these contracts to make them compatible with the current runtime. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:---------:|:----------------:|:-------------:| | Moonbeam | RT3200 | 7985204 | | Moonriver | RT3200 | 8519187 | --- ### Moonbeam Orbiter Pallet {: #moonbeam-orbiter } #### Remove the Minimum Bond Requirement for Orbiter Collators {: #remove-orbiter-minimum-bond } A migration was applied to the Moonbeam Orbiter Pallet that sets the bonds of the existing orbiter collators to zero. This change enabled payouts to be even for future orbiter program expansions. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2602 | 4977160 | | Moonriver | RT2602 | 5638536 | | Moonbase Alpha | RT2601 | 5474345 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2526){target=\_blank}. --- ### Parachain Staking Pallet {: #parachain-staking } #### Update Collator State Storage Item {: #update-collator-state-storage-item } A migration was applied that updated the `Collator` storage item of the parachain staking pallet to the new `Collator2` storage item. This change updated the collator state to include the following items: - The `nominators` set is a list of all of the nominator (delegator) account IDs without their respective balance bonded - A new `top_nominators` storage item that returns a list of all of the top nominators ordered by greatest bond amount to least - A new `bottom_nominators` storage item that returns a list of all of the bottom nominators ordered by least bond amount to greatest - The `total` storage item was replaced with `total_counted` and `total_backing`. The `total_counted` item returns the sum of the top nominations and the collator's self-bond, whereas the `total_backing` item returns the sum of all of the nominations and the collator's self-bond This migration was only applied to Moonriver and Moonbase Alpha and was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonriver | RT53 | 9696 | | Moonbase Alpha | RT52 | 238827 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/505){target=\_blank}. --- #### Patch Total Staked Amount {: #patch-total-staked-amount } A migration was applied to the `total` staked amount of the `CollatorState` storage item in the Parachain Staking Pallet due to a potential bug that may have led to an incorrect amount. This migration was only applied to Moonriver and Moonbase Alpha and was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonriver | RT53 | 9696 | | Moonbase Alpha | RT52 | 238827 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/502){target=\_blank}. --- #### Support Delayed Nominator (Delegator) Exits {: #support-delayed-nominator-exits } The exit queue for handling candidate exits had been updated to include support for delayed nominator (delegator) exits and revocations, which required a migration to update the `ExitQueue` parachain staking pallet storage item to `ExitQueue2`. The `NominatorState` storage item was also migrated to `NominatorState2` to prevent a nominator from performing more nominations when they already have scheduled an exit. These migrations were only applied to Moonriver and Moonbase Alpha and were executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonriver | RT200 | 259002 | | Moonbase Alpha | RT200 | 457614 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/610){target=\_blank}. --- #### Purge Staking Storage Bloat {: #purge-staking-storage-bloat } A migration was applied to purge staking storage bloat for the `Points` and `AtStake` storage items of the parachain staking pallet that are older than two rounds. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1001 | 5165 | | Moonriver | RT1001 | 1052242 | | Moonbase Alpha | RT1001 | 1285916 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/970){target=\_blank}. --- #### Support Manual Exits and DPoS Terminology {: #support-manual-exits-dpos-terminology } The parachain staking pallet was updated to include manual exits. If a candidate or delegator wanted to decrease or revoke their bond or leave the candidate or delegator pool, they would need to schedule a request first, wait for a delay period to pass, and then manually execute the request. As such, a migration was applied to replace the automatic exit queue, including the `ExitQueue2` storage item, with a manual exits API. In addition, a change was made to switch from Nominated Proof of Stake (NPoS) to Delegated Proof of Stake (DPoS) terminology; this marked the sweeping change from "nominate" to "delegate". This required the migration of the following parachain staking pallet storage items: - `CollatorState2` was migrated to `CandidateState` - `NominatorState2` was migrated to `DelegatorState` These migrations were executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1001 | 5165 | | Moonriver | RT1001 | 1052242 | | Moonbase Alpha | RT1001 | 1285916 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/810){target=\_blank}. --- #### Increase Max Delegations per Candidate {: #increase-max-delegations-per-candidate } A migration was applied to increase the maximum number of delegations per candidate in the parachain staking pallet. It increased the delegations from 100 to 500 on Moonbase Alpha and Moonriver and from 100 to 1000 on Moonbeam. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1101 | 171061 | | Moonriver | RT1101 | 1188000 | | Moonbase Alpha | RT1100 | 1426319 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1096){target=\_blank}. --- #### Split Candidate Delegations into Top and Bottom {: #split-candidate-delegations-top-bottom } This migration splits the deprecated `CandidateState` storage item of the parachain staking pallet into the following three new storage items to avoid unnecessary storage reads: - `CandidateInfo` - `TopDelegations` - `BottomDelegations` This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1201 | 415946 | | Moonriver | RT1201 | 1471037 | | Moonbase Alpha | RT1200 | 1648994 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1117){target=\_blank}. --- #### Patch Incorrect Total Delegations {: #patch-incorrect-total-delegations } There was a migration applied to fix the [Incorrect Collator Selection](#incorrect-collator-selection) bug and patch the delegations total for all candidates. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1300 | 524762 | | Moonriver | RT1300 | 1541735 | | Moonbase Alpha | RT1300 | 1761128 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1291){target=\_blank}. --- #### Split Delegator State into Delegation Scheduled Requests {: #split-delegator-state } A migration was applied that moved pending delegator requests from the `DelegatorState` storage item of the parachain staking pallet into a new `DelegationScheduledRequests` storage item. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1502 | 1107285 | | Moonriver | RT1502 | 1814458 | | Moonbase Alpha | RT1502 | 2112058 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1408){target=\_blank}. --- #### Replace Staking Reserves with Locks {: #replace-staking-reserves } A migration was applied that changed users' staking reserved balances to locked balances. The locked balance is the same type as democracy-locked funds, allowing users to use their staked funds to participate in democracy. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1701 | 1581457 | | Moonriver | RT1701 | 2281723 | | Moonbase Alpha | RT1700 | 2529736 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1604){target=\_blank}. --- #### Auto-Compounding Support {: #auto-compounding-support } To support auto-compounding, two migrations were applied to the `AtStake` storage item in the parachain staking pallet: - `RemovePaidRoundsFromAtStake` - to remove any stale `AtStake` entries relating to already paid-out rounds with candidates that didn't produce any blocks. This migration is a prerequisite for the `MigrateAtStakeAutoCompound` migration - `MigrateAtStakeAutoCompound` - migrates the snapshots for unpaid rounds for `AtStake` entries These migrations were executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1901 | 2317683 | | Moonriver | RT1901 | 2911863 | | Moonbase Alpha | RT1900 | 3069635 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1878){target=\_blank}. --- #### Switch to Block-Based Staking Rounds {: #block-based-staking-rounds } A migration was applied to switch from time-based staking rounds to fixed block-based rounds. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2801 | 5899847 | | Moonriver | RT2801 | 6411588 | | Moonbase Alpha | RT2801 | 6209638 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2690){target=\_blank}. --- #### Renaming of Parachain Bond Reserve Events {: #renaming-of-parachain-bond-reserve-events } Prior to Runtime 3300, the `ReservedForParachainBond` event was emitted once per round to indicate parachain bond reserve funding through inflation. In Runtime 3300, this same event was renamed to `InflationDistributed`. This change took effect at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT3300 | 8381443 | | Moonriver | RT3300 | 8894417 | | Moonbase Alpha | RT3300 | 9062316 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2976){target=\_blank}. --- ### Referenda Pallet {: #referenda-pallet } #### Refunds for Submission Deposits {: #refunds-for-submission-deposits } A migration was introduced to support refunds for submission deposits on closed referenda that updated the `ReferendumInfo` type. The following invariants of `ReferendumInfo` were changed so that the second parameter, `Deposit`, is now optional, `Option>`: `Approved`, `Rejected`, `Cancelled`, and `TimedOut`. This stemmed from an upstream change to the [Substrate](https://github.com/paritytech/substrate/pull/12788){target=\_blank} repository. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2302 | 3456477 | | Moonriver | RT2302 | 4133065 | | Moonbase Alpha | RT2301 | 4172407 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2134){target=\_blank}. --- #### Restore Corrupted Referenda Deposits {: restore-corrupted-referenda-deposits } A migration was introduced to support restoring referenda deposits affected by corrupted storage values. The issue arose when a migration was applied twice due to a pallet version error, resulting in invalid values and non-refundable submission deposits. As the number of values to correct was finite and small, this migration created a list to update them by hand. This migration was only applied to Moonbeam and was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------:|:----------------:|:-------------:| | Moonbeam | RT3100 | 7303601 | ### XCM-Related Pallets {: #xcm-related-pallets } #### Update Transact Info Storage Item {: #update-transaction-info } There was a migration applied to the `TransactInfo` storage item of the XCM Transactor Pallet that changed the following items: - `max_weight` is added to prevent transactors from stalling the queue in the destination chain - Removes `fee_per_byte`, `metadata_size`, and `base_weight` as these items are not necessary for XCM transactions - `fee_per_second` replaces `fee_per_weight` to better reflect cases (like Kusama) in which the `fee_per_weight` unit is lower than one This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1201 | 415946 | | Moonriver | RT1201 | 1471037 | | Moonbase Alpha | RT1200 | 1648994 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1114){target=\_blank}. --- #### Add Support for Kusama Asset Hub (Statemine) Prefix Breaking Change {: #add-support-statemine-prefix } The following three migrations were added to the asset manager pallet to avoid issues with Kusama Asset Hub's (previously referred to as Statemine) [breaking change to the way it represents assets](https://github.com/paritytech/cumulus/pull/831){target=\_blank} and possible future breaking changes: - `UnitsWithAssetType` - updates the `AssetTypeUnitsPerSecond` storage item to a mapping of the `AssetType` to `units_per_second`, instead of the mapping `AssetId` to `units_per_second`. This is done to avoid additional migrations whenever a breaking change arises - `PopulateAssetTypeIdStorage` - creates a new `AssetTypeId` storage item that holds the `AssetType` to `AssetId` mapping, which allows the decoupling of `assetIds` and `AssetTypes` - `ChangeStateminePrefixes` - updates already registered Kusama Asset Hub (Statemine) assets to their new form These migrations were executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1201 | 415946 | | Moonriver | RT1201 | 1471037 | | Moonbase Alpha | RT1200 | 1648994 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1159){target=\_blank}. --- #### Add New Supported Fee Payment Assets Storage Item {: #add-supported-fee-payment-assets } A migration was applied to the asset manager pallet, creating a new `SupportedFeePaymentAssets` storage item by reading the supported asset data from the `AssetTypeUnitsPerSecond` storage item. This storage item will hold all the assets we accept for XCM fee payment. It will be read when an incoming XCM message is received, and if the asset is not in storage, the message will not be processed. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1300 | 524762 | | Moonriver | RT1300 | 1541735 | | Moonbase Alpha | RT1300 | 1761128 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1118){target=\_blank}. --- #### Update the XCM Transactor Storage from V2 to V3 {: #update-xcm-transactor } With the support of XCM V3, a migration was applied to update the XCM Transactor pallet's storage from XCM V2 to V3. The `transactInfoWithWeightLimit` and `destinationAssetFeePerSecond` storage items were updated to support XCM V3 multilocations. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2302 | 3456477 | | Moonriver | RT2302 | 4133065 | | Moonbase Alpha | RT2301 | 4172407 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2145){target=\_blank}. --- #### Remove Mintable XC-20s {: #remove-local-assets } Mintable XC-20s were deprecated in favor of XCM-enabled ERC-20s; as such, a migration was applied to remove the local assets pallet and clear the assets in storage. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT2801 | 5899847 | | Moonriver | RT2801 | 6411588 | | Moonbase Alpha | RT2801 | 6209638 | For more information, you can review the [relative PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/2634){target=\_blank}. --- #### Manage Foreign Assets via Smart Contracts {: #foreign-assets-migration } A migration was applied to transition existing foreign assets to a new design that manages XCM derivative assets on Moonbeam through EVM smart contracts instead of the previous implementation using the Asset and Asset Manager pallets. The migration process involved several extrinsics in the Moonbeam Lazy Migration pallet: - **`approve_assets_to_migrate`** - sets the list of asset IDs approved for migration - **`start_foreign_asset_migration`** - initiates migration for a specific foreign asset by freezing the original asset and creating a new EVM smart contract - **`migrate_foreign_asset_balances`** - migrates asset balances in batches from old assets pallet to the new system - **`migrate_foreign_asset_approvals`** - migrates asset approvals in batches while unreserving deposits from the old approval system - **`finish_foreign_asset_migration`** - completes migration after all balances and approvals are migrated and performs final cleanup This migration preserves compatibility with existing foreign assets by identifying each foreign asset with the same AssetID integer as before. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT3501 | 10056989 | | Moonriver | RT3501 | 10665393 | | Moonbase Alpha | RT3500 | 10750816 | For more information, you can review the relative PRs on GitHub: [2869](https://github.com/moonbeam-foundation/moonbeam/pull/2869){target=\_blank} and [3020](https://github.com/moonbeam-foundation/moonbeam/pull/3020){target=\_blank}. --- ### Nimbus Author Filter Pallet {: #nimbus } #### Replace Eligible Ratio with Eligible Count {: #replace-eligible-ratio } A breaking change was applied to the Nimbus repository, deprecating `EligibleRatio` in favor of the `EligibleCount` config. As a result, a migration was applied to the Moonbeam repository, populating the new `EligibleCount` value as a percentage of the potential authors defined at that block height if the `EligibleRatio` value existed. Otherwise, the value was set to a default value of `50`. This migration was executed at the following runtimes and blocks: | Network | Executed Runtime | Block Applied | |:--------------:|:----------------:|:-------------:| | Moonbeam | RT1502 | 1107285 | | Moonriver | RT1502 | 1814458 | | Moonbase Alpha | RT1502 | 2112058 | For more information, you can review the [relative Nimbus PR](https://github.com/moonbeam-foundation/nimbus/pull/45){target=\_blank} and [Moonbeam PR on GitHub](https://github.com/moonbeam-foundation/moonbeam/pull/1400){target=\_blank}. --- END CONTENT --- Doc-Content: https://docs.moonbeam.network/builders/build/runtime-upgrades/ --- BEGIN CONTENT --- --- title: Runtime Upgrades description: A historical record of each runtime upgrade and the block at which the runtime was executed for Moonbeam, Moonriver, and the Moonbase Alpha TestNet. categories: Reference --- # Runtime Upgrades ## Introduction {: #introduction } Moonbeam runtime upgrades allow for the maintenance and evolution of the chain logic without the need for a hard fork. These runtime upgrades can introduce new features, improve performance, fix bugs, and respond to changing requirements. This page provides a historical record of runtime upgrades by block for each of the Moonbeam-based networks. ## Runtime Upgrades by Block {: #runtime-upgrades-by-block } The following table contains a list of the runtime upgrades and the block at which the upgrade occurred for each network. Runtime upgrades occur first on Moonbase Alpha before being released on Moonriver and then on Moonbeam. You can read the release notes for each runtime on the [Moonbeam releases GitHub page](https://github.com/moonbeam-foundation/moonbeam/releases){target=\_blank}. Not all runtime upgrades are released on each network, as sometimes after releasing the initial runtime upgrade, the need for a subsequent upgrade arises. If a runtime upgrade version has been skipped or hasn't been released yet (only applicable to the latest runtime upgrade), you'll see a `-` in that row. | Runtime | Moonbeam | Moonriver | Moonbase Alpha | |:----------------------------------------------------------------------------------------:|:----------------------------------------------------------------------:|:-----------------------------------------------------------------------:|:----------------------------------------------------------------------:| | 40 | - | - | [0](https://moonbase.subscan.io/block/0){target=\_blank} | | 44 | - | - | [142863](https://moonbase.subscan.io/block/142863){target=\_blank} | | 47 | - | - | [209144](https://moonbase.subscan.io/block/209144){target=\_blank} | | 49 | - | [0](https://moonriver.subscan.io/block/0){target=\_blank} | - | | 52 | - | - | [238827](https://moonbase.subscan.io/block/238827){target=\_blank} | | 53 | - | [9696](https://moonriver.subscan.io/block/9696){target=\_blank} | - | | 155 | - | [67938](https://moonriver.subscan.io/block/67938){target=\_blank} | [278703](https://moonbase.subscan.io/block/278703){target=\_blank} | | 159 | - | [166749](https://moonriver.subscan.io/block/166749){target=\_blank} | [383465](https://moonbase.subscan.io/block/383465){target=\_blank} | | 200 | - | [259002](https://moonriver.subscan.io/block/259002){target=\_blank} | [457614](https://moonbase.subscan.io/block/457614){target=\_blank} | | 300 | - | [344698](https://moonriver.subscan.io/block/344698){target=\_blank} | [485543](https://moonbase.subscan.io/block/485543){target=\_blank} | | 400 | - | [400458](https://moonriver.subscan.io/block/400458){target=\_blank} | [610935](https://moonbase.subscan.io/block/610935){target=\_blank} | | 501 | - | [430442](https://moonriver.subscan.io/block/430442){target=\_blank} | [653692](https://moonbase.subscan.io/block/653692){target=\_blank} | | 600 | - | [455107](https://moonriver.subscan.io/block/455107){target=\_blank} | [675176](https://moonbase.subscan.io/block/675176){target=\_blank} | | 701 | - | [581187](https://moonriver.subscan.io/block/581187){target=\_blank} | [797200](https://moonbase.subscan.io/block/797200){target=\_blank} | | 800 | - | [684728](https://moonriver.subscan.io/block/684728){target=\_blank} | [915684](https://moonbase.subscan.io/block/915684){target=\_blank} | | 900 | [0](https://moonbeam.subscan.io/block/0){target=\_blank} | [923864](https://moonriver.subscan.io/block/923864){target=\_blank} | [1075626](https://moonbase.subscan.io/block/1075626){target=\_blank} | | 901 | - | - | [1130271](https://moonbase.subscan.io/block/1130271){target=\_blank} | | 902 | - | - | [1175311](https://moonbase.subscan.io/block/1175311){target=\_blank} | | 1001 | [5165](https://moonbeam.subscan.io/block/5165){target=\_blank} | [1052242](https://moonriver.subscan.io/block/1052242){target=\_blank} | [1285916](https://moonbase.subscan.io/block/1285916){target=\_blank} | | 1002 | [32532](https://moonbeam.subscan.io/block/32532){target=\_blank} | [1141593](https://moonriver.subscan.io/block/1141593){target=\_blank} | [1396972](https://moonbase.subscan.io/block/1396972){target=\_blank} | | 1101 | [171061](https://moonbeam.subscan.io/block/171061){target=\_blank} | [1188000](https://moonriver.subscan.io/block/1188000){target=\_blank} | [1426319](https://moonbase.subscan.io/block/1426319){target=\_blank} | | 1102 | [214641](https://moonbeam.subscan.io/block/214641){target=\_blank} | [1295420](https://moonriver.subscan.io/block/1295420){target=\_blank} | [1517440](https://moonbase.subscan.io/block/1517440){target=\_blank} | | 1103 | [312036](https://moonbeam.subscan.io/block/312036){target=\_blank} | [1389122](https://moonriver.subscan.io/block/1389122){target=\_blank} | [1591913](https://moonbase.subscan.io/block/1591913){target=\_blank} | | 1200 | - | - | [1648994](https://moonbase.subscan.io/block/1648994){target=\_blank} | | 1201 | [415946](https://moonbeam.subscan.io/block/415946){target=\_blank} | [1471037](https://moonriver.subscan.io/block/1471037){target=\_blank} | [1679619](https://moonbase.subscan.io/block/1679619){target=\_blank} | | 1300 | [524762](https://moonbeam.subscan.io/block/524762){target=\_blank} | [1541735](https://moonriver.subscan.io/block/1541735){target=\_blank} | [1761128](https://moonbase.subscan.io/block/1761128){target=\_blank} | | 1400 | - | - | [1962557](https://moonbase.subscan.io/block/1962557){target=\_blank} | | 1401 | [915320](https://moonbeam.subscan.io/block/915320){target=\_blank} | [1705939](https://moonriver.subscan.io/block/1705939){target=\_blank} | [1967358](https://moonbase.subscan.io/block/1967358){target=\_blank} | | 1502 | [1107285](https://moonbeam.subscan.io/block/1107285){target=\_blank} | [1814458](https://moonriver.subscan.io/block/1814458){target=\_blank} | [2112058](https://moonbase.subscan.io/block/2112058){target=\_blank} | | 1503 | [1115896](https://moonbeam.subscan.io/block/1115896){target=\_blank} | [1909326](https://moonriver.subscan.io/block/1909326){target=\_blank} | [2220736](https://moonbase.subscan.io/block/2220736){target=\_blank} | | 1504 | [1117310](https://moonbeam.subscan.io/block/1117310){target=\_blank} | [1910640](https://moonriver.subscan.io/block/1910640){target=\_blank} | [2221773](https://moonbase.subscan.io/block/2221773){target=\_blank} | | 1603 | - | - | [2285347](https://moonbase.subscan.io/block/2285347){target=\_blank} | | 1605 | - | [2077599](https://moonriver.subscan.io/block/2077599){target=\_blank} | [2318567](https://moonbase.subscan.io/block/2318567){target=\_blank} | | 1606 | [1326697](https://moonbeam.subscan.io/block/1326697){target=\_blank} | [2105127](https://moonriver.subscan.io/block/2105127){target=\_blank} | [2379759](https://moonbase.subscan.io/block/2379759){target=\_blank} | | 1700 | - | - | [2529736](https://moonbase.subscan.io/block/2529736){target=\_blank} | | 1701 | [1581457](https://moonbeam.subscan.io/block/1581457){target=\_blank} | [2281723](https://moonriver.subscan.io/block/2281723){target=\_blank} | [2534200](https://moonbase.subscan.io/block/2534200){target=\_blank} | | 1702 | [1821212](https://moonbeam.subscan.io/block/1821212){target=\_blank} | [2524247](https://moonriver.subscan.io/block/2524247){target=\_blank} | - | | 1800 | - | - | [2748786](https://moonbase.subscan.io/block/2748786){target=\_blank} | | 1801 | - | [2572556](https://moonriver.subscan.io/block/2572556){target=\_blank} | [2830542](https://moonbase.subscan.io/block/2830542){target=\_blank} | | 1802 | [1919458](https://moonbeam.subscan.io/block/1919458){target=\_blank} | [2616190](https://moonriver.subscan.io/block/2616190){target=\_blank} | [2879403](https://moonbase.subscan.io/block/2879403){target=\_blank} | | 1803 | [2073477](https://moonbeam.subscan.io/block/2073477){target=\_blank} | [2767174](https://moonriver.subscan.io/block/2767174){target=\_blank} | [3004714](https://moonbase.subscan.io/block/3004714){target=\_blank} | | 1900 | - | - | [3069635](https://moonbase.subscan.io/block/3069635){target=\_blank} | | 1901 | [2317683](https://moonbeam.subscan.io/block/2317683){target=\_blank} | [2911863](https://moonriver.subscan.io/block/2911863){target=\_blank} | [3073562](https://moonbase.subscan.io/block/3073562){target=\_blank} | | 2000 | [2673234](https://moonbeam.subscan.io/block/2673234){target=\_blank} | [3202604](https://moonriver.subscan.io/block/3202604){target=\_blank} | [3310369](https://moonbase.subscan.io/block/3310369){target=\_blank} | | 2100 | [3011798](https://moonbeam.subscan.io/block/3011798){target=\_blank} | [3588831](https://moonriver.subscan.io/block/3588831){target=\_blank} | [3609708](https://moonbase.subscan.io/block/3609708){target=\_blank} | | 2201 | [3290853](https://moonbeam.subscan.io/block/3290853){target=\_blank} | [3858885](https://moonriver.subscan.io/block/3858885){target=\_blank} | [3842850](https://moonbase.subscan.io/block/3842850){target=\_blank} | | 2301 | - | - | [4172407](https://moonbase.subscan.io/block/4172407){target=\_blank} | | 2302 | [3456477](https://moonbeam.subscan.io/block/3456477){target=\_blank} | [4133065](https://moonriver.subscan.io/block/4133065){target=\_blank} | [4193323](https://moonbase.subscan.io/block/4193323){target=\_blank} | | 2401 | - | [4668844](https://moonriver.subscan.io/block/4668844){target=\_blank} | [4591616](https://moonbase.subscan.io/block/4591616){target=\_blank} | | 2402 | - | - | [4772817](https://moonbase.subscan.io/block/4772817){target=\_blank} | | 2403 | [4163078](https://moonbeam.subscan.io/block/4163078){target=\_blank} | [4770488](https://moonriver.subscan.io/block/4770488){target=\_blank} | [4804425](https://moonbase.subscan.io/block/4804425){target=\_blank} | | 2500 | - | [5175574](https://moonriver.subscan.io/block/5175574){target=\_blank} | [5053547](https://moonbase.subscan.io/block/5053547){target=\_blank} | | 2501 | [4543267](https://moonbeam.subscan.io/block/4543267){target=\_blank} | [5211264](https://moonriver.subscan.io/block/5211264){target=\_blank} | [5194594](https://moonbase.subscan.io/block/5194594){target=\_blank} | | [2601](https://forum.moonbeam.network/t/runtime-rt2600-schedule/1372/5){target=\_blank} | - | - | [5474345](https://moonbase.subscan.io/block/5474345){target=\_blank} | | [2602](https://forum.moonbeam.network/t/runtime-rt2600-schedule/1372/13){target=\_blank} | [4977160](https://moonbeam.subscan.io/block/4977160){target=\_blank} | [5638536](https://moonriver.subscan.io/block/5638536){target=\_blank} | [5576588](https://moonbase.subscan.io/block/5576588){target=\_blank} | | [2700](https://forum.moonbeam.network/t/runtime-rt2700-schedule/1441/3){target=\_blank} | [5504531](https://moonbeam.subscan.io/block/5504531){target=\_blank} | [6041969](https://moonriver.subscan.io/block/6041969){target=\_blank} | [5860584](https://moonbase.subscan.io/block/5860584){target=\_blank} | | [2801](https://forum.moonbeam.network/t/runtime-rt2801-schedule/1616/4){target=\_blank} | [5899847](https://moonbeam.subscan.io/block/5899847){target=\_blank} | [6411588](https://moonriver.subscan.io/block/6411588){target=\_blank} | [6209638](https://moonbase.subscan.io/block/6209638){target=\_blank} | | [2901](https://forum.moonbeam.network/t/runtime-rt2901-schedule/1695/3){target=\_blank} | [6197065](https://moonbeam.subscan.io/block/6197065){target=\_blank} | [6699589](https://moonriver.subscan.io/block/6699589){target=\_blank} | [6710531](https://moonbase.subscan.io/block/6710531){target=\_blank} | | 2902 | - | - | [6732678](https://moonbase.subscan.io/block/6732678){target=\_blank} | | [3000](https://forum.moonbeam.network/t/runtime-rt3000-schedule/1752/2){target=\_blank} | - | [7043011](https://moonriver.subscan.io/block/7043011){target=\_blank} | [7299818](https://moonbase.subscan.io/block/7299818){target=\_blank} | | 3001 | [6593037](https://moonbeam.subscan.io/block/6593037){target=\_blank} | - | - | | [3100](https://forum.moonbeam.network/t/runtime-rt3100-schedule/1801){target=\_blank} | [7303601](https://moonbeam.subscan.io/block/7303601){target=\_blank} | [7829527](https://moonriver.subscan.io/block/7829527){target=\_blank} | [8034666](https://moonbase.subscan.io/block/8034666){target=\_blank} | | [3102](https://forum.moonbeam.network/t/runtime-rt3100-schedule/1801/10){target=\_blank} | [7586782](https://moonbeam.subscan.io/block/7586782){target=\_blank} | - | - | | [3200](https://forum.moonbeam.network/t/runtime-rt3200-schedule/1881){target=\_blank} | [7985204](https://moonbeam.subscan.io/block/7985204){target=\_blank} | [8519187](https://moonriver.subscan.io/block/8519187){target=\_blank} | [8722328](https://moonbase.subscan.io/block/8722328){target=\_blank} | | [3300](https://forum.moonbeam.network/t/runtime-rt3300-schedule/1897){target=\_blank} | [8381443](https://moonbeam.subscan.io/block/8381443){target=\_blank} | [8894417](https://moonriver.subscan.io/block/8894417){target=\_blank} | [9062316](https://moonbase.subscan.io/block/9062316){target=\_blank} | | [3400](https://forum.moonbeam.network/t/runtime-rt3400-schedule/1954){target=\_blank} | [9376921](https://moonbeam.subscan.io/block/9376921){target=\_blank} | [9774989](https://moonriver.subscan.io/block/9774989){target=\_blank} | [9830392](https://moonbase.subscan.io/block/9830392){target=\_blank} | | [3401](https://forum.moonbeam.network/t/runtime-rt3400-schedule/1954/6){target=\_blank} | [9661355](https://moonbeam.subscan.io/block/9661355){target=\_blank} | [10269872](https://moonriver.subscan.io/block/10269872){target=\_blank} | [10422450](https://moonbase.subscan.io/block/10422450){target=\_blank} | | [3500](https://forum.moonbeam.network/t/runtime-rt3501-schedule/2010){target=\_blank} | - | - | [10750816](https://moonbase.subscan.io/block/10750816){target=\_blank} | | [3501](https://forum.moonbeam.network/t/runtime-rt3501-schedule/2010){target=\_blank} | [10056989](https://moonbeam.subscan.io/block/10056989){target=\_blank} | [10665393](https://moonriver.subscan.io/block/10665393){target=\_blank} | [10833906](https://moonbase.subscan.io/block/10833906){target=\_blank} | | [3600](https://forum.moonbeam.network/t/runtime-rt3600-schedule/2071){target=\_blank} | [10746745](https://moonbeam.subscan.io/block/10746745){target=\_blank} | [11251274](https://moonriver.subscan.io/block/11251274){target=\_blank} | [11452321](https://moonbase.subscan.io/block/11452321){target=\_blank} | | [3601](https://forum.moonbeam.network/t/proposals-mr77-mb110-whitelisted-authorize-upgrade-to-rt3601-on-moonriver-and-moonbeam/2139){target=\_blank} | [10999397](https://moonbeam.subscan.io/block/10999397){target=\_blank} | [11692212](https://moonriver.subscan.io/block/11692212){target=\_blank} | - | | [3700](https://forum.moonbeam.network/t/runtime-rt3700-schedule/2129){target=\_blank} | - | - | [12152458](https://moonbase.subscan.io/block/12152458){target=\_blank} | | [3701](https://forum.moonbeam.network/t/runtime-rt3700-schedule/2129){target=\_blank} | [11426910](https://moonbeam.subscan.io/block/11426910) | [12003279](https://moonriver.subscan.io/block/12003279){target=\_blank} | [12242104](https://moonbase.subscan.io/block/12242104){target=\_blank} | | [3702](https://forum.moonbeam.network/t/proposals-mr81-mb118-authorize-upgrade-to-rt3702-on-moonriver-and-moonbeam-via-whitelist/2173){target=\_blank} | [11499659](https://moonbeam.subscan.io/block/11499659){target=\_blank} | [12156948](https://moonriver.subscan.io/block/12156948){target=\_blank} | [12683255](https://moonbase.subscan.io/block/12683255){target=\_blank} | | [3800](https://forum.moonbeam.network/t/runtime-rt3800-schedule/2188){target=\_blank} | [12120762](https://moonbeam.subscan.io/block/12120762){target=\_blank} | [12540836](https://moonriver.subscan.io/block/12540836){target=\_blank} | [12853655](https://moonbase.subscan.io/block/12853655){target=\_blank} | --- END CONTENT --- Doc-Content: https://docs.moonbeam.network/builders/ethereum/canonical-contracts/ --- BEGIN CONTENT --- --- title: Canonical Contract Addresses on Moonbeam description: Overview of the canonical contracts available on Moonbeam, Moonriver, & Moonbase Alpha, including common-good contracts and precompiles. keywords: canonical, ethereum, moonbeam, precompiled, contracts categories: Reference, Precompiles, Ethereum Toolkit --- # Canonical Contracts ## Common-good Contracts {: #common-goods-contracts } The following contracts addresses have been established: === "Moonbeam" | Contract | Address | |:------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [WGLMR](https://moonbeam.moonscan.io/address/0xAcc15dC74880C9944775448304B263D191c6077F#code){target=\_blank} | 0xAcc15dC74880C9944775448304B263D191c6077F | | [Multicall](https://moonbeam.moonscan.io/address/0x83e3b61886770de2F64AAcaD2724ED4f08F7f36B#code){target=\_blank} | 0x83e3b61886770de2F64AAcaD2724ED4f08F7f36B | | [Multicall2](https://moonbeam.moonscan.io/address/0x6477204E12A7236b9619385ea453F370aD897bb2#code){target=\_blank} | 0x6477204E12A7236b9619385ea453F370aD897bb2 | | [Multicall3](https://moonbeam.moonscan.io/address/0xca11bde05977b3631167028862be2a173976ca11#code){target=\_blank} | 0xcA11bde05977b3631167028862bE2a173976CA11 | | [Multisig Factory](https://moonbeam.moonscan.io/address/0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2#code){target=\_blank} | 0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2 | | [EIP-1820](https://eips.ethereum.org/EIPS/eip-1820){target=\_blank} | 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24 | === "Moonriver" | Contract | Address | |:-------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [WMOVR](https://moonriver.moonscan.io/token/0x98878b06940ae243284ca214f92bb71a2b032b8a#code){target=\_blank} | 0x98878B06940aE243284CA214f92Bb71a2b032B8A | | [Multicall](https://moonriver.moonscan.io/address/0x30f283Cc0284482e9c29dFB143bd483B5C19954b#code){target=\_blank}* | 0x30f283Cc0284482e9c29dFB143bd483B5C19954b | | [Multicall2](https://moonriver.moonscan.io/address/0xaef00a0cf402d9dedd54092d9ca179be6f9e5ce3#code){target=\_blank} | 0xaef00a0cf402d9dedd54092d9ca179be6f9e5ce3 | | [Multicall3](https://moonriver.moonscan.io/address/0xca11bde05977b3631167028862be2a173976ca11#code){target=\_blank} | 0xcA11bde05977b3631167028862bE2a173976CA11 | | [Multisig Factory](https://moonriver.moonscan.io/address/0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2#code){target=\_blank} | 0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2 | | [EIP-1820](https://eips.ethereum.org/EIPS/eip-1820){target=\_blank} | 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24 | _*Deployed by SushiSwap_ === "Moonbase Alpha" | Contract | Address | |:------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [WDEV](https://moonbase.moonscan.io/address/0xD909178CC99d318e4D46e7E66a972955859670E1#code){target=\_blank} | 0xD909178CC99d318e4D46e7E66a972955859670E1 | | [Multicall](https://moonbase.moonscan.io/address/0x4E2cfca20580747AdBA58cd677A998f8B261Fc21#code){target=\_blank}* | 0x4E2cfca20580747AdBA58cd677A998f8B261Fc21 | | [Multicall2](https://moonbase.moonscan.io/address/0x37084d0158C68128d6Bc3E5db537Be996f7B6979#code){target=\_blank} | 0x37084d0158C68128d6Bc3E5db537Be996f7B6979 | | [Multicall3](https://moonbase.moonscan.io/address/0xca11bde05977b3631167028862be2a173976ca11#code){target=\_blank} | 0xcA11bde05977b3631167028862bE2a173976CA11 | | [Multisig Factory](https://moonbase.moonscan.io/address/0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2#code){target=\_blank} | 0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2 | | [EIP-1820](https://eips.ethereum.org/EIPS/eip-1820){target=\_blank} | 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24 | _*Deployed in the [UniswapV2 Demo Repo](https://github.com/papermoonio/moonbeam-uniswap/tree/main/uniswap-contracts-moonbeam){target=\_blank}_ ## Precompiled Contracts {: #precompiled-contracts } There are a set of precompiled contracts included on Moonbeam, Moonriver, and Moonbase Alpha that are categorized by address and based on the origin network. If you were to convert the precompiled addresses to decimal format, and break them into categories by numeric value, the categories are as follows: - **0-1023** - [Ethereum MainNet precompiles](#ethereum-mainnet-precompiles) - **1024-2047** - precompiles that are [not in Ethereum and not Moonbeam specific](#non-moonbeam-specific-nor-ethereum-precomiles) - **2048-4095** - [Moonbeam specific precompiles](#moonbeam-specific-precompiles) ### Ethereum MainNet Precompiles {: #ethereum-mainnet-precompiles } === "Moonbeam" | Contract | Address | |:---------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [ECRECOVER](/builders/ethereum/precompiles/utility/eth-mainnet/#verify-signatures-with-ecrecover){target=\_blank} | 0x0000000000000000000000000000000000000001 | | [SHA256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha256){target=\_blank} | 0x0000000000000000000000000000000000000002 | | [RIPEMD160](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-ripemd-160){target=\_blank} | 0x0000000000000000000000000000000000000003 | | [Identity](/builders/ethereum/precompiles/utility/eth-mainnet/#the-identity-function){target=\_blank} | 0x0000000000000000000000000000000000000004 | | [Modular Exponentiation](/builders/ethereum/precompiles/utility/eth-mainnet/#modular-exponentiation){target=\_blank} | 0x0000000000000000000000000000000000000005 | | [BN128Add](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128add){target=\_blank} | 0x0000000000000000000000000000000000000006 | | [BN128Mul](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128mul){target=\_blank} | 0x0000000000000000000000000000000000000007 | | [BN128Pairing](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128pairing){target=\_blank} | 0x0000000000000000000000000000000000000008 | | [Blake2](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_blake2/struct.Blake2F.html){target=\_blank} | 0x0000000000000000000000000000000000000009 | | [P256Verify](https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md){target=\_blank} | 0x0000000000000000000000000000000000000100 | === "Moonriver" | Contract | Address | |:---------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [ECRECOVER](/builders/ethereum/precompiles/utility/eth-mainnet/#verify-signatures-with-ecrecover){target=\_blank} | 0x0000000000000000000000000000000000000001 | | [SHA256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha256){target=\_blank} | 0x0000000000000000000000000000000000000002 | | [RIPEMD160](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-ripemd-160){target=\_blank} | 0x0000000000000000000000000000000000000003 | | [Identity](/builders/ethereum/precompiles/utility/eth-mainnet/#the-identity-function){target=\_blank} | 0x0000000000000000000000000000000000000004 | | [Modular Exponentiation](/builders/ethereum/precompiles/utility/eth-mainnet/#modular-exponentiation){target=\_blank} | 0x0000000000000000000000000000000000000005 | | [BN128Add](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128add){target=\_blank} | 0x0000000000000000000000000000000000000006 | | [BN128Mul](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128mul){target=\_blank} | 0x0000000000000000000000000000000000000007 | | [BN128Pairing](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128pairing){target=\_blank} | 0x0000000000000000000000000000000000000008 | | [Blake2](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_blake2/struct.Blake2F.html){target=\_blank} | 0x0000000000000000000000000000000000000009 | | [P256Verify](https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md){target=\_blank} | 0x0000000000000000000000000000000000000100 | === "Moonbase Alpha" | Contract | Address | |:---------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [ECRECOVER](/builders/ethereum/precompiles/utility/eth-mainnet/#verify-signatures-with-ecrecover){target=\_blank} | 0x0000000000000000000000000000000000000001 | | [SHA256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha256){target=\_blank} | 0x0000000000000000000000000000000000000002 | | [RIPEMD160](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-ripemd-160){target=\_blank} | 0x0000000000000000000000000000000000000003 | | [Identity](/builders/ethereum/precompiles/utility/eth-mainnet/#the-identity-function){target=\_blank} | 0x0000000000000000000000000000000000000004 | | [Modular Exponentiation](/builders/ethereum/precompiles/utility/eth-mainnet/#modular-exponentiation){target=\_blank} | 0x0000000000000000000000000000000000000005 | | [BN128Add](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128add){target=\_blank} | 0x0000000000000000000000000000000000000006 | | [BN128Mul](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128mul){target=\_blank} | 0x0000000000000000000000000000000000000007 | | [BN128Pairing](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128pairing){target=\_blank} | 0x0000000000000000000000000000000000000008 | | [Blake2](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_blake2/struct.Blake2F.html){target=\_blank} | 0x0000000000000000000000000000000000000009 | | [P256Verify](https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md){target=\_blank} | 0x0000000000000000000000000000000000000100 | ### Non-Moonbeam Specific nor Ethereum Precompiles {: #non-moonbeam-specific-nor-ethereum-precompiles } === "Moonbeam" | Contract | Address | |:--------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [SHA3FIPS256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha3fips256){target=\_blank} | 0x0000000000000000000000000000000000000400 | | Dispatch [Removed] | 0x0000000000000000000000000000000000000401 | | [ECRecoverPublicKey](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_simple/struct.ECRecoverPublicKey.html){target=\_blank} | 0x0000000000000000000000000000000000000402 | === "Moonriver" | Contract | Address | |:--------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [SHA3FIPS256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha3fips256){target=\_blank} | 0x0000000000000000000000000000000000000400 | | Dispatch [Removed] | 0x0000000000000000000000000000000000000401 | | [ECRecoverPublicKey](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_simple/struct.ECRecoverPublicKey.html){target=\_blank} | 0x0000000000000000000000000000000000000402 | === "Moonbase Alpha" | Contract | Address | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [SHA3FIPS256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha3fips256){target=\_blank} | 0x0000000000000000000000000000000000000400 | | Dispatch [Removed] | 0x0000000000000000000000000000000000000401 | | [ECRecoverPublicKey](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_simple/struct.ECRecoverPublicKey.html){target=\_blank} | 0x0000000000000000000000000000000000000402 | ### Moonbeam-Specific Precompiles {: #moonbeam-specific-precompiles } === "Moonbeam" | Contract | Address | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------:| | [Parachain Staking](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/parachain-staking/StakingInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.staking}} | | [Crowdloan Rewards](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/crowdloan-rewards/CrowdloanInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.crowdloan}} | | [ERC-20 Interface](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/balances-erc20/ERC20.sol){target=\_blank} | {{networks.moonbeam.precompiles.erc20}} | | Democracy [Removed] | {{networks.moonbeam.precompiles.democracy}} | | [X-Tokens](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xtokens/Xtokens.sol){target=\_blank} | {{networks.moonbeam.precompiles.xtokens}} | | [Relay Encoder](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/relay-encoder/RelayEncoder.sol){target=\_blank} | {{networks.moonbeam.precompiles.relay_encoder}} | | [XCM Transactor V1](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v1/XcmTransactorV1.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_transactor_v1}} | | [Author Mapping](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/author-mapping/AuthorMappingInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.author_mapping}} | | [Batch](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/batch/Batch.sol){target=\_blank} | {{networks.moonbeam.precompiles.batch}} | | [Randomness](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/randomness/Randomness.sol){target=\_blank} | {{networks.moonbeam.precompiles.randomness}} | | [Call Permit](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/call-permit/CallPermit.sol){target=\_blank} | {{networks.moonbeam.precompiles.call_permit}} | | [Proxy](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/proxy/Proxy.sol){target=\_blank} | {{networks.moonbeam.precompiles.proxy}} | | [XCM Utilities](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-utils/XcmUtils.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_utils}} | | [XCM Transactor V2](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v2/XcmTransactorV2.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_transactor_v2}} | | [Council Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbeam.precompiles.collective_council}} | | [Technical Committee Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbeam.precompiles.collective_tech_committee}} | | [Treasury Council Collective](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbeam.precompiles.collective_treasury}} | | [Referenda](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/referenda/Referenda.sol){target=\_blank} | {{networks.moonbeam.precompiles.referenda}} | | [Conviction Voting](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/conviction-voting/ConvictionVoting.sol){target=\_blank} | {{networks.moonbeam.precompiles.conviction_voting}} | | [Preimage](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/preimage/Preimage.sol){target=\_blank} | {{networks.moonbeam.precompiles.preimage}} | | [OpenGov Tech Committee](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbeam.precompiles.collective_opengov_tech_committee}} | | [Precompile Registry](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/precompile-registry/PrecompileRegistry.sol){target=\_blank} | {{networks.moonbeam.precompiles.registry}} | | [GMP](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/gmp/Gmp.sol){target=\_blank} | {{networks.moonbeam.precompiles.gmp}} | | [XCM Transactor V3](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v3/XcmTransactorV3.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_transactor_v3}} | | [Identity](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/identity/Identity.sol){target=\_blank} | {{networks.moonbeam.precompiles.identity}} | | [XCM Interface](https://github.com/Moonsong-Labs/moonkit/blob/main/precompiles/pallet-xcm/XcmInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_interface}} | === "Moonriver" | Contract | Address | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------:| | [Parachain Staking](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/parachain-staking/StakingInterface.sol){target=\_blank} | {{networks.moonriver.precompiles.staking}} | | [Crowdloan Rewards](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/crowdloan-rewards/CrowdloanInterface.sol){target=\_blank} | {{networks.moonriver.precompiles.crowdloan}} | | [ERC-20 Interface](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/balances-erc20/ERC20.sol){target=\_blank} | {{networks.moonriver.precompiles.erc20}} | | Democracy [Removed] | {{networks.moonriver.precompiles.democracy}} | | [X-Tokens](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xtokens/Xtokens.sol){target=\_blank} | {{networks.moonriver.precompiles.xtokens}} | | [Relay Encoder](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/relay-encoder/RelayEncoder.sol){target=\_blank} | {{networks.moonriver.precompiles.relay_encoder}} | | [XCM Transactor V1](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v1/XcmTransactorV1.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_transactor_v1}} | | [Author Mapping](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/author-mapping/AuthorMappingInterface.sol){target=\_blank} | {{networks.moonriver.precompiles.author_mapping}} | | [Batch](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/batch/Batch.sol){target=\_blank} | {{networks.moonriver.precompiles.batch}} | | [Randomness](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/randomness/Randomness.sol){target=\_blank} | {{networks.moonriver.precompiles.randomness}} | | [Call Permit](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/call-permit/CallPermit.sol){target=\_blank} | {{networks.moonriver.precompiles.call_permit}} | | [Proxy](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/proxy/Proxy.sol){target=\_blank} | {{networks.moonriver.precompiles.proxy}} | | [XCM Utilities](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-utils/XcmUtils.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_utils}} | | [XCM Transactor V2](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v2/XcmTransactorV2.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_transactor_v2}} | | [Council Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonriver.precompiles.collective_council}} | | [Technical Committee Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonriver.precompiles.collective_tech_committee}} | | [Treasury Council Collective](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonriver.precompiles.collective_treasury}} | | [Referenda](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/referenda/Referenda.sol){target=\_blank} | {{networks.moonriver.precompiles.referenda}} | | [Conviction Voting](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/conviction-voting/ConvictionVoting.sol){target=\_blank} | {{networks.moonriver.precompiles.conviction_voting}} | | [Preimage](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/preimage/Preimage.sol){target=\_blank} | {{networks.moonriver.precompiles.preimage}} | | [OpenGov Tech Committee](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonriver.precompiles.collective_opengov_tech_committee}} | | [Precompile Registry](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/precompile-registry/PrecompileRegistry.sol){target=\_blank} | {{networks.moonriver.precompiles.registry}} | | [GMP](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/gmp/Gmp.sol){target=\_blank} | {{networks.moonriver.precompiles.gmp}} | | [XCM Transactor V3](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v3/XcmTransactorV3.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_transactor_v3}} | | [Identity](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/identity/Identity.sol){target=\_blank} | {{networks.moonriver.precompiles.identity}} | | [XCM Interface](https://github.com/Moonsong-Labs/moonkit/blob/main/precompiles/pallet-xcm/XcmInterface.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_interface}} | === "Moonbase Alpha" | Contract | Address | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------:| | [Parachain Staking](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/parachain-staking/StakingInterface.sol){target=\_blank} | {{networks.moonbase.precompiles.staking}} | | [Crowdloan Rewards](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/crowdloan-rewards/CrowdloanInterface.sol){target=\_blank} | {{networks.moonbase.precompiles.crowdloan}} | | [ERC-20 Interface](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/balances-erc20/ERC20.sol){target=\_blank} | {{networks.moonbase.precompiles.erc20}} | | Democracy [Removed] | {{networks.moonbase.precompiles.democracy}} | | [X-Tokens](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xtokens/Xtokens.sol){target=\_blank} | {{networks.moonbase.precompiles.xtokens}} | | [Relay Encoder](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/relay-encoder/RelayEncoder.sol){target=\_blank} | {{networks.moonbase.precompiles.relay_encoder}} | | [XCM Transactor V1](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v1/XcmTransactorV1.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_transactor_v1}} | | [Author Mapping](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/author-mapping/AuthorMappingInterface.sol){target=\_blank} | {{networks.moonbase.precompiles.author_mapping}} | | [Batch](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/batch/Batch.sol){target=\_blank} | {{networks.moonbase.precompiles.batch}} | | [Randomness](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/randomness/Randomness.sol){target=\_blank} | {{networks.moonbase.precompiles.randomness}} | | [Call Permit](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/call-permit/CallPermit.sol){target=\_blank} | {{networks.moonbase.precompiles.call_permit}} | | [Proxy](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/proxy/Proxy.sol){target=\_blank} | {{networks.moonbase.precompiles.proxy}} | | [XCM Utilities](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-utils/XcmUtils.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_utils}} | | [XCM Transactor V2](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v2/XcmTransactorV2.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_transactor_v2}} | | [Council Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbase.precompiles.collective_council}} | | [Technical Committee Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbase.precompiles.collective_tech_committee}} | | [Treasury Council Collective](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbase.precompiles.collective_treasury}} | | [Referenda](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/referenda/Referenda.sol){target=\_blank} | {{networks.moonbase.precompiles.referenda}} | | [Conviction Voting](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/conviction-voting/ConvictionVoting.sol){target=\_blank} | {{networks.moonbase.precompiles.conviction_voting}} | | [Preimage](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/preimage/Preimage.sol){target=\_blank} | {{networks.moonbase.precompiles.preimage}} | | [OpenGov Tech Committee](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbase.precompiles.collective_opengov_tech_committee}} | | [Precompile Registry](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/precompile-registry/PrecompileRegistry.sol){target=\_blank} | {{networks.moonbase.precompiles.registry}} | | [GMP](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/gmp/Gmp.sol){target=\_blank} | {{networks.moonbase.precompiles.gmp}} | | [XCM Transactor V3](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v3/XcmTransactorV3.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_transactor_v3}} | | [Identity](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/identity/Identity.sol){target=\_blank} | {{networks.moonbase.precompiles.identity}} | | [XCM Interface](https://github.com/Moonsong-Labs/moonkit/blob/main/precompiles/pallet-xcm/XcmInterface.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_interface}} | --- END CONTENT --- Doc-Content: https://docs.moonbeam.network/builders/ethereum/json-rpc/eth-rpc/ --- BEGIN CONTENT --- --- title: Standard Ethereum JSON-RPC Methods description: Explore a comprehensive list of standard Ethereum JSON-RPC methods that can be used to interface with Moonbeam nodes programmatically. categories: JSON-RPC APIs, Reference, Ethereum Toolkit --- # Supported Ethereum RPC Methods ## Introduction {: #introduction } The Moonbeam team has collaborated closely with [Parity](https://www.parity.io){target=\_blank} on developing [Frontier](/learn/platform/technology/#frontier){target=\_blank}, an Ethereum compatibility layer for Substrate-based chains. This layer enables developers to run unmodified Ethereum dApps on Moonbeam seamlessly. Nevertheless, not all Ethereum JSON-RPC methods are supported; some of those supported return default values (those related to Ethereum's PoW consensus mechanism in particular). This guide provides a comprehensive list of supported Ethereum JSON-RPC methods on Moonbeam. Developers can quickly reference this list to understand the available functionality for interfacing with Moonbeam's Ethereum-compatible blockchain. ## Standard Ethereum JSON-RPC Methods {: #basic-rpc-methods } The basic JSON-RPC methods from the Ethereum API supported by Moonbeam are: - **[eth_protocolVersion](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_protocolversion){target=\_blank}** — returns `1` by default - **[eth_syncing](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_syncing){target=\_blank}** — returns an object with data about the sync status or `false` - **[eth_hashrate](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_hashrate){target=\_blank}** — returns `"0x0"` by default - **[eth_coinbase](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_coinbase){target=\_blank}** — returns the latest block author. Not necessarily a finalized block - **[eth_mining](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_mining){target=\_blank}** — returns `false` by default - **[eth_chainId](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid){target=\_blank}** — returns the chain ID used for signing at the current block - **[eth_gasPrice](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice){target=\_blank}** — returns the base fee per unit of gas used. This is currently the minimum gas price for each network - **[eth_accounts](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts){target=\_blank}** — returns a list of addresses owned by the client - **[eth_blockNumber](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber){target=\_blank}** — returns the highest available block number - **[eth_getBalance](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance){target=\_blank}** — returns the balance of the given address. Instead of providing a block number as a parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_getStorageAt](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat){target=\_blank}** — returns the content of the storage at a given address. Instead of providing a block number as a parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_getBlockByHash](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash){target=\_blank}** — returns information about the block of the given hash, including `baseFeePerGas` on post-London blocks - **[eth_getBlockByNumber](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber){target=\_blank}** — returns information about the block specified by block number, including `baseFeePerGas` on post-London blocks. Instead of providing a block number as the first parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_getBlockReceipts](https://www.alchemy.com/docs/node/ethereum/ethereum-api-endpoints/eth-get-block-receipts){target=\_blank}** — returns all transaction receipts for a given block - **[eth_getTransactionCount](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount){target=\_blank}** — returns the number of transactions sent from the given address (nonce). Instead of providing a block number as a parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_getBlockTransactionCountByHash](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash){target=\_blank}** — returns the number of transactions in a block with a given block hash - **[eth_getBlockTransactionCountByNumber](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber){target=\_blank}** — returns the number of transactions in a block with a given block number - **[eth_getUncleCountByBlockHash](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getunclecountbyblockhash){target=\_blank}** — returns `"0x0"` by default - **[eth_getUncleCountByBlockNumber](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getunclecountbyblocknumber){target=\_blank}** — returns `"0x0"` by default - **[eth_getCode](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode){target=\_blank}** — returns the code at the given address at the given block number. Instead of providing a block number as a parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_sendTransaction](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction){target=\_blank}** — creates a new message call transaction or a contract creation, if the data field contains code. Returns the transaction hash or the zero hash if the transaction is not yet available - **[eth_sendRawTransaction](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction){target=\_blank}** — creates a new message call transaction or a contract creation for signed transactions. Returns the transaction hash or the zero hash if the transaction is not yet available - **[eth_call](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call){target=\_blank}** — executes a new message call immediately without creating a transaction on the blockchain, returning the value of the executed call - Moonbeam supports the use of the optional _state override set_ object. This address-to-state mapping object allows the user to specify some state to be ephemerally overridden before executing a call to `eth_call`. The state override set is commonly used for tasks like debugging smart contracts. Visit the [go-ethereum](https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-eth#:~:text=Object%20%2D%20State%20override%20set){target=\_blank} documentation to learn more - Instead of providing a block number as a parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_estimateGas](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas){target=\_blank}** — returns an estimated amount of gas necessary for a given transaction to succeed. You can optionally specify a `gasPrice` or `maxFeePerGas` and `maxPriorityFeePerGas`. Instead of providing a block number as a parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_maxPriorityFeePerGas](https://www.alchemy.com/docs/node/ethereum/ethereum-api-endpoints/eth-max-priority-fee-per-gas){target=\_blank}** - returns an estimate of how much priority fee, in Wei, is needed for inclusion in a block - **[eth_feeHistory](https://www.alchemy.com/docs/node/ethereum/ethereum-api-endpoints/eth-fee-history){target=\_blank}** — returns `baseFeePerGas`, `gasUsedRatio`, `oldestBlock`, and `reward` for a specified range of up to 1024 blocks - **[eth_getTransactionByHash](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionbyhash){target=\_blank}** — returns the information about a transaction with a given hash. EIP-1559 transactions have `maxPriorityFeePerGas` and `maxFeePerGas` fields - **[eth_getTransactionByBlockHashAndIndex](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionbyblockhashandindex){target=\_blank}** — returns information about a transaction at a given block hash and a given index position. EIP-1559 transactions have `maxPriorityFeePerGas` and `maxFeePerGas` fields - **[eth_getTransactionByBlockNumberAndIndex](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionbyblocknumberandindex){target=\_blank}** — returns information about a transaction at a given block number and a given index position. EIP-1559 transactions have `maxPriorityFeePerGas` and `maxFeePerGas` fields. Instead of providing a block number as a parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_getTransactionReceipt](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionreceipt){target=\_blank}** — returns the transaction receipt of a given transaction hash - **[eth_getUncleByBlockHashAndIndex](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getunclebyblockhashandindex){target=\_blank}** — returns `null` by default - **[eth_getUncleByBlockNumberAndIndex](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getunclebyblocknumberandindex){target=\_blank}** — returns `null` by default - **[eth_getLogs](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs){target=\_blank}** — returns an array of all logs matching a given filter object. Instead of providing a block number as a parameter, you can provide a [default block parameter](#default-block-parameters) - **[eth_newFilter](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter){target=\_blank}** — creates a filter object based on the input provided. Returns a filter ID - **[eth_newBlockFilter](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newblockfilter){target=\_blank}** — creates a filter in the node to notify when a new block arrives. Returns a filter ID - **[eth_newPendingTransactionFilter](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter){target=\_blank}** - creates a filter in the node to notify when new pending transactions arrive. Returns a filter ID - **[eth_getFilterChanges](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges){target=\_blank}** — polling method for filters (see methods above). Returns an array of logs that occurred since the last poll - **[eth_getFilterLogs](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs){target=\_blank}** — returns an array of all the logs matching the filter with a given ID - **[eth_uninstallFilter](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallfilter){target=\_blank}** — uninstall a filter with a given ID. It should be used when polling is no longer needed. Filters timeout when they are not requested using `eth_getFilterChanges` after some time ## Default Block Parameters {: #default-block-parameters } Moonbeam supports several default block parameters that allow you to query a subset of JSON-RPC methods at significant block heights. Moonbeam supports the following default block parameters: - `finalized` - Refers to the most recent block that Polkadot validators have finalized - `safe` - Synonymous with `finalized` in Moonbeam. In Ethereum, `safe` refers to the most recent block that is considered safe by the network, meaning it is unlikely to be reverted but has not yet been finalized. With Moonbeam's fast and deterministic finality, `finalized` and `safe` refer to the same blocks. - `earliest` - Refers to the genesis block of the blockchain - `pending` - Represents the latest state, including pending transactions that have not yet been mined into a block. This is a live view of the mempool - `latest` - Refers to the latest confirmed block in the blockchain, which may not be finalized ## Unsupported Ethereum JSON-RPC Methods {: #unsupported-rpc-methods } Moonbeam does not support the following Ethereum API JSON-RPC methods: - **[eth_getProof](https://www.alchemy.com/docs/node/ethereum/ethereum-api-endpoints/eth-get-proof){target=\_blank}** - returns the account and storage values of the specified account including the Merkle-proof - **[eth_blobBaseFee](https://www.quicknode.com/docs/ethereum/eth_blobBaseFee){target=\_blank}** - returns the expected base fee for blobs in the next block - **[eth_createAccessList](https://www.alchemy.com/docs/node/ethereum/ethereum-api-endpoints/eth-create-access-list){target=\_blank}** - creates an EIP-2930 type `accessList` based on a given transaction object - **[eth_sign](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign){target=\_blank}** - allows the user to sign an arbitrary hash to be sent at a later time. Presents a [security risk](https://support.metamask.io/privacy-and-security/what-is-eth_sign-and-why-is-it-a-risk/){target=\_blank} as the arbitrary hash can be fraudulently applied to other transactions - **[eth_signTransaction](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_signtransaction){target=\_blank}** - allows the user to sign a transaction to be sent at a later time. It is rarely used due to associated security risks ## Additional RPC Methods {: #additional-rpc-methods } Check out some of the non-standard Ethereum and Moonbeam-specific RPC methods: - [Debug and Trace](/builders/ethereum/json-rpc/debug-trace/) - [Event Subscription](/builders/ethereum/json-rpc/pubsub/) - [Custom Moonbeam](/builders/ethereum/json-rpc/moonbeam-custom-api/) --- END CONTENT --- Doc-Content: https://docs.moonbeam.network/builders/ethereum/json-rpc/moonbeam-custom-api/ --- BEGIN CONTENT --- --- title: Moonbeam-specific RPC Methods description: Discover Moonbeam's specialized API endpoints, featuring custom JSON-RPC methods designed exclusively for Moonbeam functionality. categories: JSON-RPC APIs, Reference --- # Moonbeam Custom API ## Introduction {: #introduction } Moonbeam nodes include support for custom JSON-RPC endpoints: - `moon_isBlockFinalized` - `moon_isTxFinalized` - `moon_getEthSyncBlockRange` These endpoints provide valuable functionality for checking the finality of on-chain events. To begin exploring Moonbeam's custom JSON-RPC endpoints, you can try out the provided curl examples below. These examples demonstrate how to query the public RPC endpoint of Moonbase Alpha. However, you can easily modify them to use with your own Moonbeam or Moonriver endpoint by changing the URL and API key. If you haven't already, you can obtain your endpoint and API key from one of our supported [Endpoint Providers](/builders/get-started/endpoints/){target=\_blank}. ## Supported Custom RPC Methods {: #rpc-methods } ???+ function "moon_isBlockFinalized" Checks for the finality of the block given by its block hash. === "Parameters" - `block_hash` *string* - the hash of the block, accepts either Substrate-style or Ethereum-style block hash as its input === "Returns" Returns a boolean: `true` if the block is finalized, `false` if the block is not finalized or not found. === "Example" ```bash curl -H "Content-Type: application/json" -X POST --data '{ "jsonrpc": "2.0", "id": "1", "method": "moon_isBlockFinalized", "params": ["INSERT_BLOCK_HASH"] }' {{ networks.moonbase.rpc_url }} ``` ???+ function "moon_isTxFinalized" Checks for the finality of a transaction given its EVM transaction hash. === "Parameters" - `tx_hash` *string* - the EVM transaction hash of the transaction === "Returns" Returns a boolean: `true` if the transaction is finalized, `false` if the transaction is not finalized or not found. === "Example" ```bash curl -H "Content-Type: application/json" -X POST --data '{ "jsonrpc": "2.0", "id": "1", "method": "moon_isTxFinalized", "params": ["INSERT_TRANSACTION_HASH"] }' {{ networks.moonbase.rpc_url }} ``` ???+ function "moon_getEthSyncBlockRange" Returns the range of blocks that are fully indexed in Frontier's backend. === "Parameters" None === "Returns" Returns the range of blocks that are fully indexed in Frontier's backend. An example response below includes the Substrate block hashes of block `0` and the latest fully indexed block: ```[ "0x91bc6e169807aaa54802737e1c504b2577d4fafedd5a02c10293b1cd60e39527", "0xb1b49bd709ca9fe0e751b8648951ffbb2173e1258b8de8228cfa0ab27003f612" ]``` === "Example" ```bash curl -H "Content-Type: application/json" -X POST --data '{ "jsonrpc": "2.0", "id": "1", "method": "moon_getEthSyncBlockRange", "params": [] }' {{ networks.moonbase.rpc_url }} ``` --- END CONTENT --- Doc-Content: https://docs.moonbeam.network/builders/ethereum/precompiles/overview/ --- BEGIN CONTENT --- --- title: Solidity Precompiles description: An overview of the available Solidity precompiles on Moonbeam. Precompiles enable you to interact with Substrate features using the Ethereum API. categories: Reference, Basics --- # Overview of the Precompiled Contracts on Moonbeam ## Overview {: #introduction } On Moonbeam, a precompiled contract is native Substrate code that has an Ethereum-style address and can be called using the Ethereum API, like any other smart contract. The precompiles allow you to call the Substrate runtime directly which is not normally accessible from the Ethereum side of Moonbeam. The Substrate code responsible for implementing precompiles can be found in the [EVM pallet](/learn/platform/technology/#evm-pallet){target=\_blank}. The EVM pallet includes the [standard precompiles found on Ethereum and some additional precompiles that are not specific to Ethereum](https://github.com/polkadot-evm/frontier/tree/master/frame/evm/precompile){target=\_blank}. It also provides the ability to create and execute custom precompiles through the generic [`Precompiles` trait](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm/trait.Precompile.html){target=\_blank}. There are several custom Moonbeam-specific precompiles that have been created, all of which can be found in the [Moonbeam codebase](https://github.com/moonbeam-foundation/moonbeam/tree/master/precompiles){target=\_blank}. It is important to highlight that the precompiles from this list with the `CallableByContract` check are not callable inside the contract constructor. The Ethereum precompiled contracts contain complex functionality that is computationally intensive, such as hashing and encryption. The custom precompiled contracts on Moonbeam provide access to Substrate-based functionality such as staking, governance, XCM-related functions, and more. The Moonbeam-specific precompiles can be interacted with through familiar and easy-to-use Solidity interfaces using the Ethereum API, which are ultimately used to interact with the underlying Substrate interface. This flow is depicted in the following diagram: ![Precompiled Contracts Diagram](/images/builders/ethereum/precompiles/overview/overview-1.webp) !!! note There can be some unintended consequences when using the precompiled contracts on Moonbeam. Please refer to the [Security Considerations](/learn/core-concepts/security/){target=\_blank} page for more information. ## Precompiled Contract Addresses {: #precompiled-contract-addresses } The precompiled contracts are categorized by address and based on the origin network. If you were to convert the precompiled addresses to decimal format, and break them into categories by numeric value, the categories are as follows: - **0-1023** - [Ethereum MainNet precompiles](#ethereum-mainnet-precompiles) - **1024-2047** - precompiles that are [not in Ethereum and not Moonbeam specific](#non-moonbeam-specific-nor-ethereum-precomiles) - **2048-4095** - [Moonbeam specific precompiles](#moonbeam-specific-precompiles) ### Ethereum MainNet Precompiles {: #ethereum-mainnet-precompiles } === "Moonbeam" | Contract | Address | |:---------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [ECRECOVER](/builders/ethereum/precompiles/utility/eth-mainnet/#verify-signatures-with-ecrecover){target=\_blank} | 0x0000000000000000000000000000000000000001 | | [SHA256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha256){target=\_blank} | 0x0000000000000000000000000000000000000002 | | [RIPEMD160](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-ripemd-160){target=\_blank} | 0x0000000000000000000000000000000000000003 | | [Identity](/builders/ethereum/precompiles/utility/eth-mainnet/#the-identity-function){target=\_blank} | 0x0000000000000000000000000000000000000004 | | [Modular Exponentiation](/builders/ethereum/precompiles/utility/eth-mainnet/#modular-exponentiation){target=\_blank} | 0x0000000000000000000000000000000000000005 | | [BN128Add](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128add){target=\_blank} | 0x0000000000000000000000000000000000000006 | | [BN128Mul](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128mul){target=\_blank} | 0x0000000000000000000000000000000000000007 | | [BN128Pairing](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128pairing){target=\_blank} | 0x0000000000000000000000000000000000000008 | | [Blake2](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_blake2/struct.Blake2F.html){target=\_blank} | 0x0000000000000000000000000000000000000009 | | [P256Verify](https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md){target=\_blank} | 0x0000000000000000000000000000000000000100 | === "Moonriver" | Contract | Address | |:---------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [ECRECOVER](/builders/ethereum/precompiles/utility/eth-mainnet/#verify-signatures-with-ecrecover){target=\_blank} | 0x0000000000000000000000000000000000000001 | | [SHA256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha256){target=\_blank} | 0x0000000000000000000000000000000000000002 | | [RIPEMD160](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-ripemd-160){target=\_blank} | 0x0000000000000000000000000000000000000003 | | [Identity](/builders/ethereum/precompiles/utility/eth-mainnet/#the-identity-function){target=\_blank} | 0x0000000000000000000000000000000000000004 | | [Modular Exponentiation](/builders/ethereum/precompiles/utility/eth-mainnet/#modular-exponentiation){target=\_blank} | 0x0000000000000000000000000000000000000005 | | [BN128Add](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128add){target=\_blank} | 0x0000000000000000000000000000000000000006 | | [BN128Mul](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128mul){target=\_blank} | 0x0000000000000000000000000000000000000007 | | [BN128Pairing](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128pairing){target=\_blank} | 0x0000000000000000000000000000000000000008 | | [Blake2](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_blake2/struct.Blake2F.html){target=\_blank} | 0x0000000000000000000000000000000000000009 | | [P256Verify](https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md){target=\_blank} | 0x0000000000000000000000000000000000000100 | === "Moonbase Alpha" | Contract | Address | |:---------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [ECRECOVER](/builders/ethereum/precompiles/utility/eth-mainnet/#verify-signatures-with-ecrecover){target=\_blank} | 0x0000000000000000000000000000000000000001 | | [SHA256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha256){target=\_blank} | 0x0000000000000000000000000000000000000002 | | [RIPEMD160](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-ripemd-160){target=\_blank} | 0x0000000000000000000000000000000000000003 | | [Identity](/builders/ethereum/precompiles/utility/eth-mainnet/#the-identity-function){target=\_blank} | 0x0000000000000000000000000000000000000004 | | [Modular Exponentiation](/builders/ethereum/precompiles/utility/eth-mainnet/#modular-exponentiation){target=\_blank} | 0x0000000000000000000000000000000000000005 | | [BN128Add](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128add){target=\_blank} | 0x0000000000000000000000000000000000000006 | | [BN128Mul](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128mul){target=\_blank} | 0x0000000000000000000000000000000000000007 | | [BN128Pairing](/builders/ethereum/precompiles/utility/eth-mainnet/#bn128pairing){target=\_blank} | 0x0000000000000000000000000000000000000008 | | [Blake2](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_blake2/struct.Blake2F.html){target=\_blank} | 0x0000000000000000000000000000000000000009 | | [P256Verify](https://github.com/ethereum/RIPs/blob/master/RIPS/rip-7212.md){target=\_blank} | 0x0000000000000000000000000000000000000100 | ### Non-Moonbeam Specific nor Ethereum Precompiles {: #non-moonbeam-specific-nor-ethereum-precompiles } === "Moonbeam" | Contract | Address | |:--------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [SHA3FIPS256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha3fips256){target=\_blank} | 0x0000000000000000000000000000000000000400 | | Dispatch [Removed] | 0x0000000000000000000000000000000000000401 | | [ECRecoverPublicKey](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_simple/struct.ECRecoverPublicKey.html){target=\_blank} | 0x0000000000000000000000000000000000000402 | === "Moonriver" | Contract | Address | |:--------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [SHA3FIPS256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha3fips256){target=\_blank} | 0x0000000000000000000000000000000000000400 | | Dispatch [Removed] | 0x0000000000000000000000000000000000000401 | | [ECRecoverPublicKey](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_simple/struct.ECRecoverPublicKey.html){target=\_blank} | 0x0000000000000000000000000000000000000402 | === "Moonbase Alpha" | Contract | Address | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------:| | [SHA3FIPS256](/builders/ethereum/precompiles/utility/eth-mainnet/#hashing-with-sha3fips256){target=\_blank} | 0x0000000000000000000000000000000000000400 | | Dispatch [Removed] | 0x0000000000000000000000000000000000000401 | | [ECRecoverPublicKey](https://polkadot-evm.github.io/frontier/rustdocs/pallet_evm_precompile_simple/struct.ECRecoverPublicKey.html){target=\_blank} | 0x0000000000000000000000000000000000000402 | ### Moonbeam Specific Precompiles {: #moonbeam-specific-precompiles } === "Moonbeam" | Contract | Address | |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------:| | [Parachain Staking](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/parachain-staking/StakingInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.staking}} | | [Crowdloan Rewards](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/crowdloan-rewards/CrowdloanInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.crowdloan}} | | [ERC-20 Interface](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/balances-erc20/ERC20.sol){target=\_blank} | {{networks.moonbeam.precompiles.erc20}} | | Democracy [Removed] | {{networks.moonbeam.precompiles.democracy}} | | [X-Tokens](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xtokens/Xtokens.sol){target=\_blank} | {{networks.moonbeam.precompiles.xtokens}} | | [Relay Encoder](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/relay-encoder/RelayEncoder.sol){target=\_blank} | {{networks.moonbeam.precompiles.relay_encoder}} | | [XCM Transactor V1](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v1/XcmTransactorV1.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_transactor_v1}} | | [Author Mapping](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/author-mapping/AuthorMappingInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.author_mapping}} | | [Batch](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/batch/Batch.sol){target=\_blank} | {{networks.moonbeam.precompiles.batch}} | | [Randomness](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/randomness/Randomness.sol){target=\_blank} | {{networks.moonbeam.precompiles.randomness}} | | [Call Permit](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/call-permit/CallPermit.sol){target=\_blank} | {{networks.moonbeam.precompiles.call_permit}} | | [Proxy](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/proxy/Proxy.sol){target=\_blank} | {{networks.moonbeam.precompiles.proxy}} | | [XCM Utilities](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-utils/XcmUtils.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_utils}} | | [XCM Transactor V2](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v2/XcmTransactorV2.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_transactor_v2}} | | [Council Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbeam.precompiles.collective_council}} | | [Technical Committee Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbeam.precompiles.collective_tech_committee}} | | [Treasury Council Collective](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbeam.precompiles.collective_treasury}} | | [Referenda](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/referenda/Referenda.sol){target=\_blank} | {{networks.moonbeam.precompiles.referenda}} | | [Conviction Voting](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/conviction-voting/ConvictionVoting.sol){target=\_blank} | {{networks.moonbeam.precompiles.conviction_voting}} | | [Preimage](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/preimage/Preimage.sol){target=\_blank} | {{networks.moonbeam.precompiles.preimage}} | | [OpenGov Tech Committee](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbeam.precompiles.collective_opengov_tech_committee}} | | [Precompile Registry](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/precompile-registry/PrecompileRegistry.sol){target=\_blank} | {{networks.moonbeam.precompiles.registry}} | | [GMP](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/gmp/Gmp.sol){target=\_blank} | {{networks.moonbeam.precompiles.gmp}} | | [XCM Transactor V3](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v3/XcmTransactorV3.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_transactor_v3}} | | [XCM interface](https://github.com/Moonsong-Labs/moonkit/blob/main/precompiles/pallet-xcm/XcmInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_interface}} | | [Identity](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/identity/Identity.sol){target=\_blank} | {{networks.moonbeam.precompiles.identity}} | === "Moonriver" | Contract | Address | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------:| | [Parachain Staking](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/parachain-staking/StakingInterface.sol){target=\_blank} | {{networks.moonriver.precompiles.staking}} | | [Crowdloan Rewards](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/crowdloan-rewards/CrowdloanInterface.sol){target=\_blank} | {{networks.moonriver.precompiles.crowdloan}} | | [ERC-20 Interface](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/balances-erc20/ERC20.sol){target=\_blank} | {{networks.moonriver.precompiles.erc20}} | | Democracy [Disabled] | {{networks.moonriver.precompiles.democracy}} | | [X-Tokens](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xtokens/Xtokens.sol){target=\_blank} | {{networks.moonriver.precompiles.xtokens}} | | [Relay Encoder](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/relay-encoder/RelayEncoder.sol){target=\_blank} | {{networks.moonriver.precompiles.relay_encoder}} | | [XCM Transactor V1](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v1/XcmTransactorV1.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_transactor_v1}} | | [Author Mapping](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/author-mapping/AuthorMappingInterface.sol){target=\_blank} | {{networks.moonriver.precompiles.author_mapping}} | | [Batch](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/batch/Batch.sol){target=\_blank} | {{networks.moonriver.precompiles.batch}} | | [Randomness](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/randomness/Randomness.sol){target=\_blank} | {{networks.moonriver.precompiles.randomness}} | | [Call Permit](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/call-permit/CallPermit.sol){target=\_blank} | {{networks.moonriver.precompiles.call_permit}} | | [Proxy](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/proxy/Proxy.sol){target=\_blank} | {{networks.moonriver.precompiles.proxy}} | | [XCM Utilities](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-utils/XcmUtils.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_utils}} | | [XCM Transactor V2](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v2/XcmTransactorV2.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_transactor_v2}} | | [Council Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonriver.precompiles.collective_council}} | | [Technical Committee Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonriver.precompiles.collective_tech_committee}} | | [Treasury Council Collective](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonriver.precompiles.collective_treasury}} | | [Referenda](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/referenda/Referenda.sol){target=\_blank} | {{networks.moonriver.precompiles.referenda}} | | [Conviction Voting](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/conviction-voting/ConvictionVoting.sol){target=\_blank} | {{networks.moonriver.precompiles.conviction_voting}} | | [Preimage](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/preimage/Preimage.sol){target=\_blank} | {{networks.moonriver.precompiles.preimage}} | | [OpenGov Tech Committee](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonriver.precompiles.collective_opengov_tech_committee}} | | [Precompile Registry](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/precompile-registry/PrecompileRegistry.sol){target=\_blank} | {{networks.moonriver.precompiles.registry}} | | [GMP](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/gmp/Gmp.sol){target=\_blank} | {{networks.moonriver.precompiles.gmp}} | | [XCM Transactor V3](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v3/XcmTransactorV3.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_transactor_v3}} | | [XCM interface](https://github.com/Moonsong-Labs/moonkit/blob/main/precompiles/pallet-xcm/XcmInterface.sol){target=\_blank} | {{networks.moonriver.precompiles.xcm_interface}} | | [Identity](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/identity/Identity.sol){target=\_blank} | {{networks.moonriver.precompiles.identity}} | === "Moonbase Alpha" | Contract | Address | |:--------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------:| | [Parachain Staking](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/parachain-staking/StakingInterface.sol){target=\_blank} | {{networks.moonbase.precompiles.staking}} | | [Crowdloan Rewards](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/crowdloan-rewards/CrowdloanInterface.sol){target=\_blank} | {{networks.moonbase.precompiles.crowdloan}} | | [ERC-20 Interface](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/balances-erc20/ERC20.sol){target=\_blank} | {{networks.moonbase.precompiles.erc20}} | | Democracy [Removed] | {{networks.moonbase.precompiles.democracy}} | | [X-Tokens](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xtokens/Xtokens.sol){target=\_blank} | {{networks.moonbase.precompiles.xtokens}} | | [Relay Encoder](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/relay-encoder/RelayEncoder.sol){target=\_blank} | {{networks.moonbase.precompiles.relay_encoder}} | | [XCM Transactor V1](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v1/XcmTransactorV1.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_transactor_v1}} | | [Author Mapping](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/author-mapping/AuthorMappingInterface.sol){target=\_blank} | {{networks.moonbase.precompiles.author_mapping}} | | [Batch](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/batch/Batch.sol){target=\_blank} | {{networks.moonbase.precompiles.batch}} | | [Randomness](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/randomness/Randomness.sol){target=\_blank} | {{networks.moonbase.precompiles.randomness}} | | [Call Permit](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/call-permit/CallPermit.sol){target=\_blank} | {{networks.moonbase.precompiles.call_permit}} | | [Proxy](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/proxy/Proxy.sol){target=\_blank} | {{networks.moonbase.precompiles.proxy}} | | [XCM Utilities](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-utils/XcmUtils.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_utils}} | | [XCM Transactor V2](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v2/XcmTransactorV2.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_transactor_v2}} | | [Council Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbase.precompiles.collective_council}} | | [Technical Committee Collective [Removed]](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbase.precompiles.collective_tech_committee}} | | [Treasury Council Collective](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbase.precompiles.collective_treasury}} | | [Referenda](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/referenda/Referenda.sol){target=\_blank} | {{networks.moonbase.precompiles.referenda}} | | [Conviction Voting](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/conviction-voting/ConvictionVoting.sol){target=\_blank} | {{networks.moonbase.precompiles.conviction_voting}} | | [Preimage](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/preimage/Preimage.sol){target=\_blank} | {{networks.moonbase.precompiles.preimage}} | | [OpenGov Tech Committee](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/collective/Collective.sol){target=\_blank} | {{networks.moonbase.precompiles.collective_opengov_tech_committee}} | | [Precompile Registry](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/precompile-registry/PrecompileRegistry.sol){target=\_blank} | {{networks.moonbase.precompiles.registry}} | | [GMP](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/gmp/Gmp.sol){target=\_blank} | {{networks.moonbase.precompiles.gmp}} | | [XCM Transactor V3](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/xcm-transactor/src/v3/XcmTransactorV3.sol){target=\_blank} | {{networks.moonbase.precompiles.xcm_transactor_v3}} | | [XCM Interface](https://github.com/Moonsong-Labs/moonkit/blob/main/precompiles/pallet-xcm/XcmInterface.sol){target=\_blank} | {{networks.moonbeam.precompiles.xcm_interface}} | | [Identity](https://github.com/moonbeam-foundation/moonbeam/blob/master/precompiles/identity/Identity.sol){target=\_blank} | {{networks.moonbase.precompiles.identity}} | --- END CONTENT --- Doc-Content: https://docs.moonbeam.network/builders/get-started/endpoints/ --- BEGIN CONTENT --- --- title: Moonbeam API Providers and Endpoints description: Use one of the supported API providers to connect to a public endpoint or create custom JSON-RPC and WSS endpoints for Moonbeam-based networks. categories: JSON-RPC APIs, Reference --- # Network Endpoints ## Public Endpoints {: #public-endpoints } Moonbeam-based networks have two endpoints available for users to connect to: one for HTTPS and one for WSS. The endpoints in this section are for development purposes only and are not meant to be used in production applications. If you are looking for an API provider suitable for production use, you can check out the [Endpoint Providers](#endpoint-providers) section of this guide. ### Moonbeam {: #moonbeam } === "HTTPS" | Provider | RPC URL | Limits | |:-----------:|:------------------------------------------------------------------:|:-----------:| | Dwellir |
```https://moonbeam-rpc.dwellir.com```
| 20 req/sec | | OnFinality |
```https://moonbeam.api.onfinality.io/public```
| 40 req/sec | | UnitedBloc |
```https://moonbeam.unitedbloc.com```
| 32 req/sec | | RadiumBlock |
```https://moonbeam.public.curie.radiumblock.co/http```
| 200 req/sec | | 1RPC |
```https://1rpc.io/glmr```
| 10k req/day | | Grove |
```https://moonbeam.rpc.grove.city/v1/01fdb492```
| 5k req/day | === "WSS" | Provider | RPC URL | Limits | |:-----------:|:--------------------------------------------------------------:|:-----------:| | Dwellir |
```wss://moonbeam-rpc.dwellir.com```
| 20 req/sec | | OnFinality |
```wss://moonbeam.api.onfinality.io/public-ws```
| 40 req/sec | | UnitedBloc |
```wss://moonbeam.unitedbloc.com```
| 32 req/sec | | RadiumBlock |
```wss://moonbeam.public.curie.radiumblock.co/ws```
| 200 req/sec | | 1RPC |
```wss://1rpc.io/glmr```
| 10k req/day | ### Moonriver {: #moonriver } === "HTTPS" | Provider | RPC URL | Limits | |:-----------:|:-------------------------------------------------------------------:|:-----------:| | Dwellir |
```https://moonriver-rpc.dwellir.com```
| 20 req/sec | | OnFinality |
```https://moonriver.api.onfinality.io/public```
| 40 req/sec | | UnitedBloc |
```https://moonriver.unitedbloc.com```
| 32 req/sec | | RadiumBlock |
```https://moonriver.public.curie.radiumblock.co/http```
| 200 req/sec | | Grove |
```https://moonriver.rpc.grove.city/v1/01fdb492```
| 5k req/day | === "WSS" | Provider | RPC URL | Limits | |:-----------:|:---------------------------------------------------------------:|:-----------:| | Dwellir |
```wss://moonriver-rpc.dwellir.com```
| 20 req/sec | | OnFinality |
```wss://moonriver.api.onfinality.io/public-ws```
| 40 req/sec | | UnitedBloc |
```wss://moonriver.unitedbloc.com```
| 32 req/sec | | RadiumBlock |
```wss://moonriver.public.curie.radiumblock.co/ws```
| 200 req/sec | ### Moonbase Alpha {: #moonbase-alpha } === "HTTPS" | Provider | RPC URL | Limits | |:-------------------:|:------------------------------------------------------------------:|:-----------:| | Dwellir |
```https://moonbase-rpc.dwellir.com```
| 20 req/sec | | OnFinality |
```https://moonbeam-alpha.api.onfinality.io/public```
| 40 req/sec | | Moonbeam Foundation |
```https://rpc.api.moonbase.moonbeam.network```
| 25 req/sec | | UnitedBloc |
```https://moonbase.unitedbloc.com```
| 32 req/sec | | RadiumBlock |
```https://moonbase.public.curie.radiumblock.co/http```
| 200 req/sec | === "WSS" | Provider | RPC URL | Limits | |:-------------------:|:-----------------------------------------------------------------:|:-----------:| | Dwellir |
```wss://moonbase-rpc.dwellir.com```
| 20 req/sec | | OnFinality |
```wss://moonbeam-alpha.api.onfinality.io/public-ws```
| 40 req/sec | | Moonbeam Foundation |
```wss://wss.api.moonbase.moonbeam.network```
| 25 req/sec | | UnitedBloc |
```wss://moonbase.unitedbloc.com```
| 32 req/sec | | RadiumBlock |
```wss://moonbase.public.curie.radiumblock.co/ws```
| 200 req/sec | #### Relay Chain {: #relay-chain } To connect to the Moonbase Alpha relay chain, you can use the following WS Endpoint: | Provider | RPC URL | |:--------:|:----------------------------------------------------------:| | OpsLayer |
```wss://relay.api.moonbase.moonbeam.network```
| ## RPC Endpoint Providers {: #endpoint-providers } You can create your own endpoint suitable for development or production use using any of the following API providers: - [1RPC](#1rpc) - [Blast](#blast) - [Chainstack](#chainstack) - [dRPC](#drpc) - [Dwellir](#dwellir) - [GetBlock](#getblock) - [Grove](#grove) - [OnFinality](#onfinality) - [UnitedBloc](#unitedbloc) ### 1RPC {: #1rpc} [1RPC](https://www.1rpc.io){target=_blank} is a free and private RPC relay that protects user privacy by preventing data collection, user tracking, phishing attempts from other parties. It tunnels user requests via distributed relays to other RPC providers whilst preventing the tracking of user metadata such as IP address, device information and wallet linkability with secure enclave technology. 1RPC is created to be an open initiative from the blockchain infrastructure community. They are motivated by a common good mission to help build a better Web3 and encourage anyone who values user privacy to join this open collaboration. Head over to [1RPC](https://www.1rpc.io){target=_blank} official site to set it up! ![1RPC](/images/builders/get-started/endpoints/endpoints-1.webp) ### Blast {: #blast} As a user of [Blast](https://blastapi.io){target=_blank} powered by Bware Labs, you will be able to obtain your own free endpoint allowing you to interact with Moonbeam, just by performing a few simple clicks within a user-friendly interface. To get started, you'll need to head to [Blast](https://blastapi.io){target=_blank}, and launch the app, and connect your wallet. Once your wallet is connected you will be able to create a project and then generate your own custom endpoint. To generate an endpoint: 1. Create a new project 2. Click on **Available Endpoints** 3. Select Moonbeam network for your endpoint 4. Confirm the selected network and Press **Activate** 5. You'll now see Moonbeam under **Active Endpoints**. Click on the network and you'll see your custom RPC and WSS endpoints on the next page ![Bware Labs](/images/builders/get-started/endpoints/endpoints-2.webp) ### Chainstack {: #chainstack } [Chainstack](https://chainstack.com/){target=_blank}, the Web3 infrastructure provider, offers free and paid endpoints for Moonbeam. The free Developer plan starts with 3 million monthly requests and 25 requests per second (RPS). You can easily scale with the paid plans. To start with a free Developer plan endpoint, sign up using an email or any social account, like GitHub or X (Twitter). 1. Visit [Chainstack](https://console.chainstack.com/){target=_blank} 2. Sign up 3. Deploy a Moonbeam node ![Chainstack](/images/builders/get-started/endpoints/endpoints-3.webp) ### dRPC.org {: #drpc } dRPC.org offers public and paid [Moonbeam RPC](https://drpc.org/chainlist/moonbeam){target=_blank} endpoints, providing an efficient, low-latency connection to blockchain nodes. The paid tiers include higher request limits, lower latency, and advanced analytics for optimized performance. How to use dRPC: 1. Sign up or log in at [dRPC.org](https://drpc.org/){target=_blank} 2. In the dashboard, create an API key 3. Click the key and select the desired endpoint For 24/7 support, join dRPC's [Discord](https://drpc.org/discord){target=_blank}. ### Dwellir {: #dwellir } [Dwellir](https://www.dwellir.com){target=_blank} is a blockchain operation service that ensures global scalability, low latency, and a 99.99% uptime guarantee, providing fast and reliable node operations wherever your business stands. The public endpoint service is geographically distributed bare metal servers globally. As the service is public, there are no sign-up or API keys to manage. To get started with a developer endpoint or dedicated node, you'll need to contact us: 1. Visit [Dwellir](https://www.dwellir.com/contact){target=_blank} 2. Submit your **email** and your node request ![Dwellir](/images/builders/get-started/endpoints/endpoints-4.webp) ### GetBlock {: #getblock } [GetBlock](https://getblock.io){target=_blank} is a service that provides instant API access to Moonbeam and Moonriver and is available through shared and dedicated nodes. [Dedicated nodes](https://docs.getblock.io/getting-started/plans-and-limits/choosing-your-plan#dedicated-nodes){target=_blank} provide access to a private server with fast speeds and without rate limits. [Shared nodes](https://docs.getblock.io/getting-started/plans-and-limits/choosing-your-plan#shared-nodes){target=_blank} provide a free API/add-on based endpoint for you to get started quickly. To get started with GetBlock, you can go to the [GetBlock registration page](https://account.getblock.io/sign-up){target=_blank} and sign up for a new account. Then, from your account **Dashboard**, you can view and manage your existing endpoints for multiple protocols, and also create new ones. Creating a new API/add-on based endpoint is simple, all you have to do is: 1. Fill the information for the desired protocol from the list of available blockchains 2. Choose the network you want your endpoint to point to (**Mainnet**, **Testnet**, etc) 3. Select **JSON-RPC** from the **API/Add-on** dropdown 4. Click the **Get** button at the far right and you're all set to go! ![GetBlock](/images/builders/get-started/endpoints/endpoints-5.webp) ### Grove {: #grove } [Grove](https://grove.city){target=_blank} is a decentralized RPC network that provides reliable Web3 infrastructure with enterprise-grade performance and security. Grove offers both free and paid tiers, with the free tier providing generous limits for development use, while paid plans offer higher throughput, dedicated support, and advanced features for production applications. Grove's decentralized approach ensures high availability and censorship resistance by distributing requests across multiple node operators. The network supports both JSON-RPC and WebSocket connections for real-time applications. To get started with Grove: 1. Visit the [Grove Portal](https://portal.grove.city/){target=_blank} and sign up for an account 2. From your dashboard, create a new application 3. Copy your Moonbeam or Moonriver endpoints 4. Start making requests to your custom Grove endpoint Grove provides detailed analytics, request monitoring, and flexible rate limiting to help you optimize your application's performance. ![Grove](/images/builders/get-started/endpoints/endpoints-6.webp) ### OnFinality {: #onfinality } [OnFinality](https://onfinality.io){target=_blank} provides a free API key based endpoint for customers in place of a public endpoint. Additionally, OnFinality offers paid tiers of service that offer increased rate limits and higher performance than those offered by the free tier. You also receive more in depth analytics of the usage of your application. To create a custom OnFinality endpoint, go to [OnFinality](https://onfinality.io){target=_blank} and sign up, or if you already have signed up you can go ahead and log in. From the OnFinality **Dashboard**, you can: 1. Click on **API Service** 2. Select the network from the dropdown 3. Your custom API endpoint will be generated automatically ![OnFinality](/images/builders/get-started/endpoints/endpoints-7.webp) ### UnitedBloc {: #unitedbloc } [UnitedBloc](https://medium.com/unitedbloc/unitedbloc-rpc-c84972f69457){target=_blank} is a collective of community collators from both Moonbeam and Moonriver. To provide value for the community, they offer public RPC services for the Moonbeam, Moonriver, and Moonbase Alpha networks. The public endpoint service is served by eight geographically distributed bare metal servers globally balanced via GeoDNS and regionally load balanced with NGINX. As the service is public, there are no sign-up or API keys to manage. The collators involved in this initiative are: - Blockshard (CH) - BloClick (ES) - BrightlyStake (IN) - CertHum (US) - GPValidator (PT) - Hetavalidation (AU) - Legend (AE) - PathrockNetwork (DE) - Polkadotters (CZ) - SIK | crifferent.de (DE) - StakeBaby (GR) - StakeSquid (GE) - TrueStaking (US) They also provide a [public Grafana dashboard](https://monitoring.unitedbloc.com:3030/public-dashboards/7444d2ab76ee45eda181618b0f0ecb98?orgId=1){target=_blank} with some cool metrics. Check the [public endpoints section](#public-endpoints) to get the relevant URL. You can contact them via their [Telegram channel](https://t.me/+tRvy3z5-Kp1mMGMx){target=_blank}, or read more about their initiative on their [blogpost page](https://medium.com/unitedbloc/unitedbloc-rpc-c84972f69457){target=_blank}. ## Lazy Loading with RPC Endpoint Providers {: #lazy-loading-with-RPC-Endpoint-Providers } Lazy loading lets a Moonbeam node operate while downloading network state in the background, eliminating the need to wait for full synchronization before use. To spin up a Moonbeam node with lazy loading, you'll need to either [download the Moonbeam release binary](/node-operators/networks/run-a-node/systemd/#the-release-binary){target=_blank} or [compile the binary](/node-operators/networks/run-a-node/compile-binary/#compile-the-binary){target=_blank}. You can activate lazy loading with the following flag: `--lazy-loading-remote-rpc 'INSERT-RPC-URL'` Lazy loading is highly resource-intensive, requiring many RPC requests to function. To avoid being throttled, it's recommended that you use a [dedicated endpoint](#endpoint-providers) (i.e., an endpoint with an API key) rather than a public endpoint. You will likely be rate-limited if you use lazy loading with a public endpoint. Upon spooling up a node with this feature, you'll see output like the following:
[Lazy loading 🌗]
You are now running the Moonbeam client in lazy loading mode, where data is retrieved
from a live RPC node on demand.
Using remote state from: https://moonbeam.unitedbloc.com
Forking from block: 8482853
To ensure the client works properly, please note the following:
1. *Avoid Throttling*: Ensure that the backing RPC node is not limiting the number of
requests, as this can prevent the lazy loading client from functioning correctly;
2. *Be Patient*: As the client may take approximately 20 times longer than normal to
retrieve and process the necessary data for the requested operation.
The service will start in 10 seconds...
### Overriding State with Lazy Loading By default, you won't see detailed logging in the terminal. To override this setting and show lazy loading logs, you can add the following flag to your command to start the Moonbeam node: `-l debug`. You can further customize your use of the lazy loading functionality with the following optional parameters: - **`--lazy-loading-block`** - specifies a block hash from which to start loading data. If not provided, the latest block will be used - **`--lazy-loading-delay-between-requests`** - the delay (in milliseconds) between RPC requests when using lazy loading. This parameter controls the amount of time to wait between consecutive RPC requests. This can help manage request rate and avoid overwhelming the server. Default value is `100` milliseconds - **`--lazy-loading-max-retries-per-request`** - the maximum number of retries for an RPC request when using lazy loading. Default value is `10` retries - **`--lazy-loading-runtime-override`** - path to a WASM file to override the runtime when forking. If not provided, it will fetch the runtime from the block being forked - **`--lazy-loading-state-overrides`** - path to a JSON file containing state overrides to be applied when forking #### Simple Storage Item Override The state overrides file should define the respective pallet, storage item, and value that you seek to override as follows: ```json [ { "pallet": "System", "storage": "SelectedCandidates", "value": "0x04f24ff3a9cf04c71dbc94d0b566f7a27b94566cac" } ] ``` #### Override an Account's Free Balance To override the balance of a particular account, you can override the account storage item of the system pallet for the respective account as follows: ```json [ { "pallet": "System", "storage": "Account", "key": "TARGET_ADDRESS", "value": "0x460c000002000000010000000600000069e10de76676d0800000000000000000040a556b0e032de12000000000000000004083a09e15c74c1b0100000000000000000000000000000000000000000000080" } ] ``` ??? note "Details about overriding account balances" Overriding an account balance, as shown above, can be a complex process. However, this guide will break it down into steps that are easy to follow. Before making any changes, you should obtain the existing value corresponding to the key (i.e., the account in this case). You can go to [**Chain State** on Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://wss.api.moonbeam.network#/chainstate){target=_blank} and query the System pallet by providing the account you'd like to query. Upon submitting the query, you'll get back a readable account structure like so: ```text { nonce: 3,142 consumers: 2 providers: 1 sufficients: 6 data: { free: 1,278,606,392,142,175,328,676 reserved: 348,052,500,000,000,000,000 frozen: 20,413,910,106,633,175,872 flags: 170,141,183,460,469,231,731,687,303,715,884,105,728 } } ``` While this is useful as a reference, the information you're looking for is the encoded storage key, which is accessible even without submitting the chain state query. In this instance, the encoded storage key corresponding to the system pallet and the selected account `0x3B939FeaD1557C741Ff06492FD0127bd287A421e` is: ```text 0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b882fedb4f75b055c709ec5b66b5d9933b939fead1557c741ff06492fd0127bd287a421e ``` Note that this encoded storage key will change alongside any input changes, such as a different account being queried. Then, head over the **Raw Storage** tab on [Polkadot.js Apps](https://polkadot.js.org/apps/#/chainstate/raw){target=_blank}. Input the above storage key and submit the query. The response is the SCALE encoded account struct, a part of which contains the free balance information to be modified as part of this example: ```text 0x460c0000020000000100000006000000a4d92a6a4e6b3a5045000000000000000040a556b0e032de12000000000000004083a09e15c74c1b010000000000000000000000000000000000000000000080 ``` There is quite a bit of data encoded in the value field because it is a complex struct comprised of multiple values. The struct is comprised of: ```text struct AccountInfo { nonce: u32, // Transaction count consumers: u32, // Number of consumers providers: u32, // Number of providers sufficients: u32, // Number of sufficients data: AccountData { // The balance info free: u128, // Free balance reserved: u128, // Reserved balance frozen: u128, // Frozen balance flags: u128 // Account flags } } ``` You can associate each part of the SCALE encoded struct with the corresponding piece of Alice's account information that it represents: ```text 0x460c0000 // nonce (u32): 3,142 02000000 // consumers (u32): 2 01000000 // providers (u32): 1 06000000 // sufficients (u32): 6 a4d92a6a4e6b3a5045000000000000000 // free (u128): 1,278,606,392,142,175,328,676 40a556b0e032de1200000000000000000 // reserved (u128): 348,052,500,000,000,000,000 4083a09e15c74c1b01000000000000000 // frozen (u128): 20,413,910,106,633,175,872 00000000000000000000000000000080 // flags (u128): 170,141,183,460,469,231,731,687,303,715,884,105,728 ``` Remember that the values are little endian encoded. To convert the hexadecimal little endian encoded values to decimal, you can use [Substrate Utilities converter](https://www.shawntabrizi.com/substrate-js-utilities/){target=_blank}, using the **Balance to Hex (Little Endian)** converter. In this example, the existing free balance of `1,278,606,392,142,175,328,676` Wei or approximately `1278.60` DEV is `a4d92a6a4e6b3a5045`. The following example will change the value to `500,000` DEV, which is `500,000,000,000,000,000,000,000` Wei or `0x000080d07666e70de169` encoded as a hexadecimal little endian value. When properly padded to fit into the SCALE encoded storage value, it becomes `69e10de76676d08000000000000000000`, such that the table now looks like: ```text 0x460c0000 // nonce (u32): 3,142 02000000 // consumers (u32): 2 01000000 // providers (u32): 1 06000000 // sufficients (u32): 6 69e10de76676d08000000000000000000 // free (u128): 500,000,000,000,000,000,000,000 40a556b0e032de1200000000000000000 // reserved (u128): 348,052,500,000,000,000,000 4083a09e15c74c1b01000000000000000 // frozen (u128): 20,413,910,106,633,175,872 00000000000000000000000000000080 // flags (u128): 170,141,183,460,469,231,731,687,303,715,884,105,728 ``` Therefore, the SCALE encoded override value is as follows: ```text 0x460c000002000000010000000600000069e10de76676d0800000000000000000040a556b0e032de12000000000000000004083a09e15c74c1b0100000000000000000000000000000000000000000000080 ``` You can now specify the SCALE encoded override value in your `state-overrides.json` file as follows: ```json [ { "pallet": "System", "storage": "Account", "key": "0x3b939fead1557c741ff06492fd0127bd287a421e", "value": "0x460c000002000000010000000600000069e10de76676d0800000000000000000040a556b0e032de12000000000000000004083a09e15c74c1b0100000000000000000000000000000000000000000000080" } ] ``` To run lazy loading with the balance state override, you can use the following command: ```bash --lazy-loading-remote-rpc 'INSERT_RPC_URL' --lazy-loading-state-overrides ./state-overrides.json ``` #### Override an ERC-20 Token Balance To override an ERC-20 token balance, identify the storage slot in the EVM’s AccountStorages where the `balanceOf` data for the given token contract and account is stored. This storage slot is determined by the token contract’s H160 address and the corresponding H256 storage key. Once you have this slot, specify the new balance value in the `state-overrides.json` file to implement the override. In the example below, we override the token balance of the [Wormhole USDC Contract (`0x931715FEE2d06333043d11F658C8CE934aC61D0c`)](https://moonscan.io/address/0x931715FEE2d06333043d11F658C8CE934aC61D0c){target=_blank} for the account `0x3b939fead1557c741ff06492fd0127bd287a421e` to $5,000 USDC. Since Wormhole USDC uses 6 decimal places, $5,000 corresponds to `5000000000` in integer form, which is `0x12a05f200` in hexadecimal. ```json [ { "pallet": "EVM", "storage": "AccountStorages", "key": [ "0x931715FEE2d06333043d11F658C8CE934aC61D0c", "0x8c9902c0f94ae586c91ba539eb52087d3dd1578da91158308d79ff24a8d4f342" ], "value": "0x000000000000000000000000000000000000000000000000000000012a05f200" } ] ``` You can calculate the exact storage slot to override for your own account with the following script: ```js import { ethers } from 'ethers'; function getBalanceSlot(accountAddress) { // Convert address to bytes32 and normalize const addr = ethers.zeroPadValue(accountAddress, 32); // CAUTION! The storage slot used here is 5, which // is specific to Wormhole contracts // The storage slot index for other tokens may vary const packedData = ethers.concat([ addr, ethers.zeroPadValue(ethers.toBeHex(5), 32), ]); // Calculate keccak256 return ethers.keccak256(packedData); } // Example usage const address = 'INSERT_ADDRESS'; console.log(getBalanceSlot(address)); ``` You can apply the same process for other ERC-20 token contracts. The following sections demonstrate overrides for the `0x3B939FeaD1557C741Ff06492FD0127bd287A421e` account with various ERC-20 tokens. Remember to update the H160 token contract address whenever you switch to a different token. Also, you will need to recalculate the H256 storage slot for each distinct account whose balance you want to override. ??? code "Example: Override Wormhole BTC Token Balance" ```json [ { "pallet": "EVM", "storage": "AccountStorages", "key": [ "0xE57eBd2d67B462E9926e04a8e33f01cD0D64346D", "0x8c9902c0f94ae586c91ba539eb52087d3dd1578da91158308d79ff24a8d4f342" ], "value": "0x000000000000000000000000000000000000000000000000000000012a05f200" } ] ``` ??? code "Example: Override Wormhole ETH Token Balance" ```json [ { "pallet": "EVM", "storage": "AccountStorages", "key": [ "0xab3f0245B83feB11d15AAffeFD7AD465a59817eD", "0x8c9902c0f94ae586c91ba539eb52087d3dd1578da91158308d79ff24a8d4f342" ], "value": "0x000000000000000000000000000000000000000000000000000000012a05f200" } ] ``` ??? code "Example: Override WELL Token Balance" Because the [WELL token](https://moonbeam.moonscan.io/token/0x511ab53f793683763e5a8829738301368a2411e3){target=_blank} does not use a proxy implementation contract, the storage slot calculation differs. Instead of slot `5`, the balance mapping resides at slot `1`. You can determine the exact storage slot to override the WELL token balance for your own account using the following script: ```js import { ethers } from 'ethers'; function getBalanceSlot(accountAddress) { // Convert address to bytes32 and normalize const addr = ethers.zeroPadValue(accountAddress, 32); // Caution! The storage slot index used here is 1 // The storage slot index for other tokens may vary const packedData = ethers.concat([ addr, ethers.zeroPadValue(ethers.toBeHex(1), 32), ]); // Calculate keccak256 return ethers.keccak256(packedData); } // Example usage const address = 'INSERT_ADDRESS'; console.log(getBalanceSlot(address)); ``` Thus, the storage override would be: ```json [ { "pallet": "EVM", "storage": "AccountStorages", "key": [ "0x511aB53F793683763E5a8829738301368a2411E3", "0x728d3daf4878939a6bb58cbc263f39655bb57ea15db7daa0b306f3bf2c3f1227" ], "value": "0x000000000000000000000000000000000000000000000000000000012a05f200" } ] ``` ## Tracing RPC Endpoint Providers {: #tracing-providers } Tracing RPC endpoints allow you to access non-standard RPC methods, such as those that belong to Geth's `debug` and `txpool` APIs and OpenEthereum's `trace` module. To see a list of the supported non-standard RPC methods on Moonbeam for debugging and tracing, please refer to the [Debug API & Trace Module](/builders/ethereum/json-rpc/debug-trace/){target=_blank} guide. The following providers provide tracing RPC endpoints: - [OnFinality](#onfinality-tracing) ### OnFinality {: #onfinality-tracing } [OnFinality](https://onfinality.io){target=_blank}'s Trace API can be used to quickly get started tracing and debugging transactions on Moonbeam and Moonriver. It is only available to users on their [Growth and Ultimate plans](https://onfinality.io/pricing){target=_blank}. To use the Trace API, you simply call the trace method of your choice from your [private RPC endpoint](#onfinality). For a list of the supported networks and trace methods, please check out [OnFinality's Trace API documentation](https://documentation.onfinality.io/support/trace-api#TraceAPI-SupportedNetworks){target=_blank}. Please note that if you are tracing historic blocks, it is recommended to use your own dedicated trace node to backfill any data, and then once you're caught up, you can switch to using the Trace API. You can check out the [How to Deploy a Trace Node for Moonbeam on OnFinality](https://onfinality.medium.com/how-to-deploy-a-trace-node-for-moonbeam-on-onfinality-85683181d290){target=-_blank} post for more information on how to spin up your own dedicated trace node. --- END CONTENT ---