All phases of Avail's unification drop have now ended, ๐Ÿ‘‰๐Ÿ‘‰ check out this page ๐Ÿ‘ˆ๐Ÿ‘ˆ for more information.

โš ๏ธ

You are viewing an archived page right now. Please use the sidebar to naviagate to the latest content in Avail's docs.

How to Deploy Dymension RollApps with Avail

Introduction

The "Dymension RollApps" challenge, part of the groundbreaking Clash of Nodes campaign, represents an exciting collaboration between Dymension (opens in a new tab) and Avail. This guide offers developers comprehensive instructions to deploy rollups using Avail as the data availability (DA) layer on the Dymension Froopyland testnet.

How to Participate

Key Steps to participating include the following:

  1. Deploy on Avail's Goldberg Testnet: Opt to post your rollup data to the Avail Goldberg Testnet, part of the Clash of Nodes.
  2. Fund Your Account: Use the Avail Goldberg faucet to acquire tokens for the Goldberg Incentivized Testnet.
  3. Update Your Rollup Listing: Ensure your rollup is listed correctly on the Dymension dashboard with a PR update.
  4. Earn Points: Your rollup accrues points on the Clash of Nodes leaderboard based on usage.

WHAT QUALIFIES AS AN AVAIL-POWERED-ROLLAP?
Ensure your RollApp aligns with these essential criteria:

  1. Uses Avail: Integrate Avail as the data availability solution.
  2. Operational and Accessible: The RollApp should be actively running and hosted in a publicly accessible environment, not confined to a private network.
  3. Functionality: It must be more than a bare node; the RollApp should possess operational features or capabilities.
  4. Public Interface: Provide a publicly accessible webpage for user interaction with the RollApp, or detailed instructions for its usage.
  5. Passport Verification: The team member managing the RollApp must have the "Passport verified" role within the community.

How to Migrate an Existing RollApp

For developers who previously ran RollApps and are looking to migrate to the Avail Goldberg network, the following guide outlines how to do so.

  1. Stop All Roller Services: Before initiating the migration, ensure that all Roller services associated with your RollApp are halted. This is crucial to prevent any conflicts or data corruption during the transition.

  2. Switch DA to Avail: You must switch your DA configuration to use "avail". To migrate from another DA, run:

    roller config set da avail
  3. Update Avail Network Endpoint: Run the following command, replacing ROLLER_HOME_DIR with your Roller home directory:

    sed -i 's|wss://dymension-devnet.avail.tools/ws|wss://goldberg.avail.tools/ws|g' <ROLLER_HOME_DIR>/rollapp/config/dymint.toml
  4. Retrieve Your Avail Address: To proceed with the migration, you need your Avail address. Obtain this by running the following command:

    roller keys list
  5. Fund Your Avail Address: With your Avail address in hand, head to the Avail faucet to secure the necessary funding for your RollApp on the Goldberg network. Follow the faucet guide instructions to deposit testnet tokens into your Avail address.

  6. Restart All Services: Once the Avail address is funded and the network endpoint updated, you can restart all Roller services. This restart will initiate your RollApp on the Avail Goldberg network, completing the migration process.

  7. Update Your RollApp in the Dymension Registry: Assuming your app is already registered in the Dymension registry, you will need to submit a new PR to amend the existing entry.

    • "da": "Avail"
    • "goldberg": true
    • "availAddress": "<avail address of your RollApp>"

    Click for JSON Template
    {
      "chainId": "your_chain_id",
      "chainName": "Your Chain Name",
      "rpc": "http://your.rpc.url:port",
      "rest": "http://your.rest.url:port",
      "bech32Prefix": "your_prefix",
      "currencies": [
        {
          "displayDenom": "YOUR_TOKEN",
          "baseDenom": "uYOUR_TOKEN",
          "decimals": 18,
          "logo": "/path/to/your/logo.png",
          "type": "main"
        }
      ],
      "coinType": 60,
      "faucetUrl": "http://link.to.your.faucet",
      "website": "http://link.to.your.website",
      "logo": "/path/to/your/logo.png",
      "ibc": {
        "hubChannel": "your_hub_channel",
        "channel": "your_channel",
        "timeout": 172800000
      },
      "evm": {
        "chainId": "your_evm_chain_id",
        "rpc": "http://your.evm.rpc.url:port"
      },
      "type": "RollApp",
      "da": "Avail",
      "description": "Description of your RollApp",
      "analytics": true,
      "goldberg": true,
      "availAddress": "Your RollApp's Avail address"
    }

  8. Verify Your RollApp:

    • MANDATORY RollApp Verification: A moderator will examine the RollApp's webpage to confirm that it is operational and functional. If the RollApp is not verifiable or if there are any uncertainties regarding its operation, a moderator will reach out to the development team for further clarification. The team may be asked to make necessary updates to the RollApp and resubmit for review. Clear instructions will be provided if this is the case.

    • MANDATORY Ownership Verification: As part of the PR submission, a verification transaction using the sequencer is required to prove ownership of the RollApp.

      • Create a Ticket in #rollapp-verification: Navigate to the #rollap-verification channel on the Avail Discord and create a ticket. A moderator will provide a specific amount needed for the verification transaction. This amount will be unique to each verification process to ensure authenticity.

      • Export the Sequencer's Private Key: Carefully export the private key of the hub_sequencer address. Remember to exercise caution as this is a sensitive operation.

        roller keys export hub_sequencer
      • Import Key into any EVM Wallet:

        • Open your wallet application, such as MetaMask.
        • Select the option to import an account.
        • Enter the sequencer's private key when prompted. Then, switch to that account; you should see the balance of your RollApp on the Dymension Hub.
      • Send the Verification Transaction:

        • After importing the sequencer's address into your wallet, conduct a transaction by sending the specified amount to the designated verification address.
        • Ensure the transaction details match the amount and destination address: 0x1eB169bEC2725475153F493aAcDaad4E9CA1e32E.
      • Submit Proof of Transaction to Moderator:

        • Visit the Dymension explorer (opens in a new tab) and obtain the transaction ID link of the completed transfer. Depending on your wallet, you may need to retrieve the transaction ID link directly from its corresponding explorer.
        • Please submit the URL to the moderator you are in contact with. The moderator will verify the transaction using this link. Upon successful verification, the PR will be approved. Keep an eye on the Dymension Portal (opens in a new tab) for the gold Avail logo next to your RollApp. This icon indicates successful integration with the Goldberg testnet.

      Avail RollApp Icon on Portal

      • Notify Moderator of Verification: After your PR is approved, inform the moderator with whom you've been coordinating to confirm successful ownership verification of your RollApp and adherence to the RollApp criteria; your RollApp will not be recognized as part of the Clash of Nodes campaign until you do so. Upon verification and PR merger, your app will be listed on the Clash of Nodes Leaderboard (opens in a new tab).