<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Shain Dholakiya | shain.find</title>
    <description>The latest articles on Forem by Shain Dholakiya | shain.find (@shaincodes).</description>
    <link>https://forem.com/shaincodes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F851360%2F684fc1c1-ce07-4b7f-a2b5-e964886cbf3f.jpg</url>
      <title>Forem: Shain Dholakiya | shain.find</title>
      <link>https://forem.com/shaincodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shaincodes"/>
    <language>en</language>
    <item>
      <title>What is the Hyperverse from a Developer POV?</title>
      <dc:creator>Shain Dholakiya | shain.find</dc:creator>
      <pubDate>Tue, 31 May 2022 04:48:55 +0000</pubDate>
      <link>https://forem.com/shaincodes/what-is-the-hyperverse-from-a-developer-pov-5a9b</link>
      <guid>https://forem.com/shaincodes/what-is-the-hyperverse-from-a-developer-pov-5a9b</guid>
      <description>&lt;p&gt;You might be wondering exactly how are we onboarding these new Web Developers? We’re making this possible by implementing our “Smart Modules.” All Smart Modules on the Hyperverse have already had their smart contracts developed, so Web Developers do not need to know how they were written to interact with them. You can think of it as a similar environment to the &lt;a href="https://www.npmjs.com/"&gt;npm&lt;/a&gt; modules we use for everyday Web2 development, but an ecosystem of modules for building decentralized applications tied to different blockchains.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o-A6P-w5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/904dpujhvy891roomttt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o-A6P-w5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/904dpujhvy891roomttt.png" alt="Image description" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Hyperverse community contains a number of roles focused on providing the most secure and accessible experience for all Hyperverse Smart Modules.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;**Smart Contract Developers: **Build Smart Modules single-purpose on-chain contracts with a per-transaction revenue model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hyperverse Registrars:&lt;/strong&gt; Validate Smart Module packages and discovery metadata, then approve for publishing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hyperverse Auditors:&lt;/strong&gt; Auditors in the community verify the code and stake their tokens, indicating their confidence in the model. The stake acts as an insurance layer for Smart Modules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript Developers:&lt;/strong&gt; Use JavaScript to build Web3 apps just by connecting Smart Modules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This blog post will primarily focus on the first and last roles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three-tier Model
&lt;/h2&gt;

&lt;p&gt;For &lt;strong&gt;JavaScript Developers&lt;/strong&gt;, the Hyperverse can be broken up into a three-tier model comprised of a top, middle, and bottom layer. Let’s dive in to get a better understanding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uBNr4SoV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/plfbzq86j1rvls1ckxln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uBNr4SoV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/plfbzq86j1rvls1ckxln.png" alt="Image description" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1/ The topmost layer is simply the Hyperverse module that initializes the entire environment in a single command and is also our composability feature. Web Developers can easily wire up different APIs to create decentralized applications.&lt;/p&gt;

&lt;p&gt;2/ After setting up the development environment, you will then be able to choose which blockchain you’d like to use your Smart Modules on and build with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Hyperverse currently supports the Algorand, Ethereum, Flow, and Metis blockchains.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;3/ Lastly is the bottom layer, where developers choose which Smart Modules they would like to implement using their blockchain of choice. The Hyperverse consists of a few modules like Tribes, Token, ERC-721, and Random Pick. These are great project examples for developers to use for Ethereum that will help get them familiar with the environment. The &lt;a href="https://github.com/decentology/hyperverse-mono"&gt;Hyperverse Monorepo&lt;/a&gt; contains code packages and applications for the Hyperverse.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/decentology/hyperverse-mono/tree/main/packages"&gt;packages&lt;/a&gt;: Blockchain implementations and smart modules.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/decentology/hyperverse-mono/tree/main/apps"&gt;apps&lt;/a&gt;: Example applications organized by blockchain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can hook up your application to the Hyperverse to start building your Dapp and importing Smart Modules to use in just three steps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q98ZBz_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g4onoyhsm4lry1x4qwie.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q98ZBz_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g4onoyhsm4lry1x4qwie.jpeg" alt="Image description" width="880" height="634"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After selecting your Smart Module of choice, you can then use your knowledge of React to build decentralized applications with all the functionalities of that module. This makes development much more accessible because your development process has eliminated the frustrations of understanding smart contract code.&lt;/p&gt;

&lt;p&gt;It is also at the bottom layer where the multi-tenancy component of the Hyperverse becomes important. Every Web Developer has a unique Tenant ID generated for them. The tenant ID is tied to the blockchain of your choice (different blockchains generate tenant IDs differently), which is then utilized in your module(s). The ID is your record in the database that will separate your module’s data from another web developer’s.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=XAF3kTQcJ0A"&gt;Here&lt;/a&gt; is an excellent HyperBites video that explains this concept with an example using the Tribes Smart Module.&lt;/p&gt;

&lt;h2&gt;
  
  
  Smart Module
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Smart Contract Developers&lt;/strong&gt; would be building Smart Modules on the Hyperverse using the Builder Kit (a composable starter kit for Smart Contract Developers to build Smart Modules).&lt;/p&gt;

&lt;p&gt;A Smart Module is a package containing a smart contract, metadata, unit tests, and documentation at a minimum. It can optionally include a user interface test harness and sample code. The smart contract will typically implement a blockchain application primitive — one feature that provides discrete functionality. For example, a Subscription Smart Module makes it simple for an application to check if the calling account is an active subscriber for a specific feature.&lt;/p&gt;

&lt;p&gt;An important characteristic of Smart Modules is their multi-tenancy, as mentioned previously. This structure models SaaS applications in Web2 that are typically single applications serving many different users. Smart Modules do this by separating the smart contract logic (which resides on-chain in the Hyperverse-deployed smart contract) from the associated data (which also resides on-chain but in the account of the calling smart contract). This is a unique feature of Hyperverse Smart Modules and is designed to address many scenarios where it is necessary for calling applications to use composable smart contract rules but store data in their own account space.&lt;/p&gt;

&lt;p&gt;Below is an example of the TribesFactory smart contract used for the Tribes Smart Module. This contract shows the power of composability and the multi-tenancy architecture. You can find the Tribes Smart Module code &lt;a href="https://github.com/decentology/hyperverse-mono/tree/main/packages/hyperverse-evm-tribes"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q_SYMZwS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dqw1ityvmqgjmpfnr0wy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q_SYMZwS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dqw1ityvmqgjmpfnr0wy.png" alt="Image description" width="880" height="1443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=E9WrvKwUnpg"&gt;Here&lt;/a&gt; is a great tutorial on building your Smart Module on the Hyperverse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Revenue Model
&lt;/h2&gt;

&lt;p&gt;While using pre-developed Smart Modules is a huge aspect of the Hyperverse, it is also a space for you to develop your own. Since our tool operates as a marketplace, the approved modules for public usage can generate income for whoever created them when other web developers utilize them.&lt;/p&gt;

&lt;p&gt;As the Hyperverse grows and more Smart Modules are developed, the possibilities of what you can implement in your decentralized applications will expand.&lt;/p&gt;

&lt;p&gt;In short, for Web2 Developers, the Hyperverse allows you to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build blockchain applications without writing smart contracts&lt;/li&gt;
&lt;li&gt;Access well-written, reviewed, and audited smart contract code&lt;/li&gt;
&lt;li&gt;Get support from a growing community of enthusiastic developers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s time to find your place to settle as an aspiring Web3 Developer. We want to help make your dreams of building decentralized applications a reality and join our mission to onboard 10 million Web Developers to Web3.&lt;/p&gt;

&lt;p&gt;Check out our &lt;a href="https://docs.hyperverse.dev/"&gt;docs&lt;/a&gt; for more information, join our community on &lt;a href="https://discord.gg/decentology"&gt;Discord&lt;/a&gt;, and start building right away. LFG! 🚀&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to Get Hooked Up to the Hyperverse From Scratch</title>
      <dc:creator>Shain Dholakiya | shain.find</dc:creator>
      <pubDate>Mon, 23 May 2022 15:17:49 +0000</pubDate>
      <link>https://forem.com/shaincodes/how-to-get-hooked-up-to-the-hyperverse-from-scratch-1o6b</link>
      <guid>https://forem.com/shaincodes/how-to-get-hooked-up-to-the-hyperverse-from-scratch-1o6b</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.to/shaincodes/the-hyperverse-m5f"&gt;What is the Hyperverse?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GM! Today, I will be guiding you through everything you need to do to get your app hooked up to the Hyperverse so you can start building killer web3 apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Install &lt;a href="https://nodejs.org/en/"&gt;Node&lt;/a&gt; to be able to import and use the &lt;a href="https://www.npmjs.com/"&gt;NPM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Install create-next-app and run &lt;code&gt;npx create-next-app example-dapp --ts&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;This will automatically build a folder named example-dapp which is a &lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt; application that uses &lt;a href="https://www.typescriptlang.org/"&gt;Typescript&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;--ts&lt;/code&gt; is to create the build using Typescript which is not required, but highly encouraged&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Install packages&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cd example-dapp&lt;/code&gt;: This simply allows us to change the directly since we are now working inside the example project’s folder&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.npmjs.com/package/yarn"&gt;yarn&lt;/a&gt; - &lt;code&gt;npm i -g yarn&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-g&lt;/code&gt; is not required as all it does is give your entire machine access to using yarn instead of just this project&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yarn add @decentology/hyperverse&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yarn add @decentology/hyperverse-ethereum&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Installing these packages simply gives the project the ability to now import and actually use these packages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also choose to build on other chains that we currently support by doing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;yarn add @decentology/hyperverse-flow&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;yarn add @decentology/hyperverse-metis&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Import packages&lt;/p&gt;

&lt;p&gt;You should see something like this in your &lt;code&gt;_app.tsx&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import "../styles/globals.css";

import type { AppProps } from "next/app";

function MyApp({ Component, pageProps }: AppProps) {

   return &amp;lt;Component {...pageProps} /&amp;gt;

}

export default MyApp;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, add these two lines of code above the function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { initialize, Provider, Network } from '@decentology/hyperverse';

import { Ethereum } from '@decentology/hyperverse-ethereum';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We are now importing these packages which gives our code access to the functionality that they provide. This will help us with wallet connection, access to view the user’s address, access to read and let users know when they need to switch networks, and access to blockchain-specific SDK features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Initialize the Hyperverse&lt;/p&gt;

&lt;p&gt;Add this code inside the function before the return statement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const hyperverse = initialize({

   blockchain: Ethereum,

  network: Network.Testnet,

   modules: [],

});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows us to actually initialize the Hyperverse with the given parameters. In this case, we are initializing it using the Ethereum blockchain and Rinkeby Test Network.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can find all the available blockchains at this &lt;a href="https://github.com/decentology/hyperverse-mono/tree/main/packages"&gt;path&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Wrap the app in the Hyperverse Provider:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;return (

 &amp;lt;Provider initialState={hyperverse}&amp;gt;

     &amp;lt;Component {...pageProps} /&amp;gt;

  &amp;lt;/Provider&amp;gt;

)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Provider makes hyperverse available to any nested components that need access to it. In this case we want the entire app to have access to it which is why we do it here!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; Your app is officially hooked up to the Hyperverse and ready to buidl!&lt;/p&gt;

&lt;p&gt;The end result should look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import '../styles/globals.css'

import type { AppProps } from 'next/app'

import { initialize, Provider, Network } from '@decentology/hyperverse';

import { Ethereum } from '@decentology/hyperverse-ethereum';

function MyApp({ Component, pageProps }: AppProps) {

   const hyperverse = initialize({

       blockchain: Ethereum,

      network: Network.Testnet,

      modules: [],

   });

   return (

     &amp;lt;Provider initialState={hyperverse}&amp;gt;

        &amp;lt;Component {...pageProps} /&amp;gt;

     &amp;lt;/Provider&amp;gt;

   )

}

export default MyApp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run &lt;code&gt;yarn dev&lt;/code&gt; to see your app running on localhost:3000!&lt;/p&gt;

&lt;p&gt;Here is the GitHub &lt;a href="https://github.com/ShainDholakiya/HyperverseStarterDapp"&gt;repo&lt;/a&gt; that follows these steps and you can fork it if you wish!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next steps:&lt;/strong&gt; Join our &lt;a href="https://discord.com/invite/decentology"&gt;discord&lt;/a&gt; to connect with the Hyperverse team and other builders building on the Hyperverse!&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>The Hyperverse</title>
      <dc:creator>Shain Dholakiya | shain.find</dc:creator>
      <pubDate>Mon, 16 May 2022 22:42:18 +0000</pubDate>
      <link>https://forem.com/shaincodes/the-hyperverse-m5f</link>
      <guid>https://forem.com/shaincodes/the-hyperverse-m5f</guid>
      <description>&lt;p&gt;Many of you probably clicked on this post because you were intrigued by the title and wondered what the heck the Hyperverse was. I am here to tell you that it will be the number one tool that developers use to start building Dapps in Web3. Let me explain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.decentology.com/"&gt;Decentology&lt;/a&gt; is building the Hyperverse, a community-built, open, audited, marketplace for composable smart contracts for all major blockchains. Decentology is also creating innovative solutions for smart contract development, security, monetization, and discoverability that work cross-chain on the Hyperverse, resulting in &lt;strong&gt;the most comprehensive marketplace for smart contracts ever created.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In short, &lt;strong&gt;the Hyperverse makes it extremely simple for Web2 developers to build Dapps without writing a single line of smart contract code and only using JavaScript. The Hyperverse is the NPM for smart contracts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go &lt;a href="https://www.decentology.com/blog/composing-the-hyperverse"&gt;here&lt;/a&gt; to learn more about Decentology and the Hyperverse.&lt;/p&gt;

&lt;p&gt;Follow &lt;a href="https://dev.to/shaincodes"&gt;me&lt;/a&gt; to stay up-to-date on tutorials that will guide you step-by-step on how to build Dapps with the Hyperverse.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>blockchain</category>
      <category>web3</category>
      <category>programming</category>
    </item>
    <item>
      <title>AMA</title>
      <dc:creator>Shain Dholakiya | shain.find</dc:creator>
      <pubDate>Thu, 21 Apr 2022 17:08:53 +0000</pubDate>
      <link>https://forem.com/shaincodes/ama-1efp</link>
      <guid>https://forem.com/shaincodes/ama-1efp</guid>
      <description>&lt;p&gt;A place for anyone to ask me questions about any topic relating to Web2, Web3, or tech in general!  &lt;/p&gt;

&lt;p&gt;I will try my best to reply to your questions with a concrete answer or point you in the right direction.&lt;/p&gt;

&lt;p&gt;Ask away 🚀&lt;/p&gt;

</description>
      <category>ama</category>
    </item>
  </channel>
</rss>
