<?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>DEV Community: Kamal Nayan</title>
    <description>The latest articles on DEV Community by Kamal Nayan (@kamalthedev).</description>
    <link>https://dev.to/kamalthedev</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%2F862667%2Fecb1415e-f391-405f-be7c-71742766fc3b.jpeg</url>
      <title>DEV Community: Kamal Nayan</title>
      <link>https://dev.to/kamalthedev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kamalthedev"/>
    <language>en</language>
    <item>
      <title>LoyaltyRoller: Zapier Automation of sending NFTs to users on sucessful Stripe payments using Owl Protocol</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Fri, 07 Jun 2024 23:51:42 +0000</pubDate>
      <link>https://dev.to/kamalthedev/loyaltyroller-zapier-automation-of-sending-nfts-on-stripe-payments-using-owl-protocol-1m44</link>
      <guid>https://dev.to/kamalthedev/loyaltyroller-zapier-automation-of-sending-nfts-on-stripe-payments-using-owl-protocol-1m44</guid>
      <description>&lt;p&gt;Introduction&lt;br&gt;
Owl Protocol, a web3 integration platform that simplifies blockchain development by providing APIs and Zapier integration for any EVM or Rollup. This allows developers to build blockchain applications without dealing with private keys, gas fees, or cryptocurrencies, enabling them to focus on the core aspects of their applications.&lt;/p&gt;

&lt;p&gt;In this tutorial we will integrate automation of sending the NFTs directly to the users as soon as they complete payments using stripe , this would be made possible via zapier and owl protocol. &lt;/p&gt;

&lt;p&gt;By combining Owl Protocol with Zapier and stripe payments, we will develop a seamless workflow that sends NFTs to the users upon sucessfull payments via stripe.&lt;/p&gt;

&lt;h1&gt;
  
  
  Steps
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a Project in Owl Protocol Dashboard: Log in, set up your team, and create a new project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set up Your Collection: Add a custom network, configure network settings, and create your NFT collection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integrate Stripe and Owl protocol with Zapier: Create a new Zap, select Stripe payments as the trigger, configure NFT minting via Owl protocol in the actions, and set up the zap ⚡.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test the Integration: Ensure everything works correctly and activate your Zap.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Owl protocol Dashboard&lt;br&gt;
1) Make sure to log in at the Owl Protocol Dashboard&lt;br&gt;
2)Create Team and Project: Navigate to the team section to set up your team, then create a new project.You can collaborate with others working over the same project.&lt;/p&gt;

&lt;p&gt;3)Add Custom Network: Within your project, click on “Add Custom Network”, enter the network name, paste your RPC URL, and input the Chain ID. Also make sure to get funded using ETH or Sepolia ETH.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe4cvmm0mzj0a99ixwkp6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe4cvmm0mzj0a99ixwkp6.png" alt="Image description" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also add from default Chain IDs such as:&lt;br&gt;
Ethereum (1), OP Mainnet (10), Sepolia (11155111), OP Sepolia (11155420), OP Celestia Raspberry Testnet (123420111),etc.&lt;/p&gt;

&lt;p&gt;4)By default, your utility address will be funded with 1.45 ETH as shown below. If you need more, make sure to send additional funds to your gas tank address.&lt;/p&gt;

&lt;p&gt;Setting Up Your Collection:&lt;br&gt;
1) Enter the project you created or navigate to the previous project that you have created.&lt;/p&gt;

&lt;p&gt;2)Create and Configure Collection: Click on “Create Collection” and fill in the Collection Name and with a Symbol, upload your image with metadata.As you can see we have created cat collection using dashboard.&lt;/p&gt;

&lt;p&gt;Now that your collection is set up, proceed with integrating Zapier to automate the reward process for contributors.&lt;/p&gt;

&lt;p&gt;Setting Up Zapier Integration&lt;br&gt;
To set up the Zapier integration and start rewarding contributors, follow these steps:&lt;/p&gt;

&lt;p&gt;1)Sign Up for Zapier: If you haven’t already, sign up for a Zapier account at Zapier&lt;/p&gt;

&lt;p&gt;2)In your Zapier dashboard, click on “Make a Zap” to create a new automation.&lt;/p&gt;

&lt;p&gt;3)Select Stripe as the Trigger App: Search for Stripe and select it as the trigger that starts our app.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvsl1rc6nhn9oqc7jb2o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftvsl1rc6nhn9oqc7jb2o.png" alt="Image description" width="800" height="814"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4)Choose Trigger Event: Choose the trigger event which is our ‘New Payment’&lt;/p&gt;

&lt;p&gt;5)Connect Your Stripe Account: Authenticate your Stripe account with Zapier.&lt;/p&gt;

&lt;p&gt;6)Set Up the Trigger by adding the next step: Select the Owl Protocol &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3nxffdbylq8ulq2lxtu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3nxffdbylq8ulq2lxtu.png" alt="Image description" width="800" height="801"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7)Click on “+” to add an action, then search for “Mint ERC721 in Owl Protocol” , choose the field Mint ERC-721.&lt;/p&gt;

&lt;p&gt;8) Now under Action, select the collection address from the OwlProtocol Dashboard available NFT collections that you earlier created.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkwvf4c1wze1yxie3q2za.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkwvf4c1wze1yxie3q2za.png" alt="Image description" width="800" height="719"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9) Finally, test it all Out.&lt;br&gt;
This is how our flow looks like with zapier automation combining Stripe payments and Owl Protocol.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8bdhh66azs2ffycr62v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8bdhh66azs2ffycr62v.png" alt="Image description" width="661" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10)Now everything is ready, test the Zap to ensure everything works correctly, and test it, within a short moment you will see as shown above and if everything works perfectly then publish it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;The seamless integration of Stripe Payments with Zapier and Owl protocol automates the minting and distribution of NFTs, allowing developers to focus on building their applications. &lt;/p&gt;

&lt;p&gt;Owl protocol also supports over 6000 additional web2 apps to integrate, bringing connectivity and versatility, so get started with their api documentation and dive in to onboard the next billion users to the web3 ecosystem.&lt;/p&gt;

</description>
      <category>owlprotocol</category>
      <category>stripeautomation</category>
      <category>zapierwithowlprotocol</category>
    </item>
    <item>
      <title>Ethereum vs Bitcoin : A Deep Dive into Token Standards: ERC-20 vs. SIP-10 vs. BRC20 vs. STX20</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Fri, 23 Feb 2024 02:17:02 +0000</pubDate>
      <link>https://dev.to/kamalthedev/ethereum-vs-bitcoin-a-deep-dive-into-token-standards-erc-20-vs-sip-10-vs-brc20-vs-stx20-12na</link>
      <guid>https://dev.to/kamalthedev/ethereum-vs-bitcoin-a-deep-dive-into-token-standards-erc-20-vs-sip-10-vs-brc20-vs-stx20-12na</guid>
      <description>&lt;p&gt;The world of blockchain is vast and ever-evolving, with various platforms offering unique approaches to smart contracts and tokenization.&lt;/p&gt;

&lt;p&gt;Among these, token standards play a crucial role in defining how tokens operate within these ecosystems. This blog post explores four prominent token standards: Comparison of ETH Vs BTC token standards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89ri0nwfj0lqlmbzwdzs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89ri0nwfj0lqlmbzwdzs.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ethereum's ERC-20, Stacks' SIP-10, Bitcoins-BRC20, and Stacks-STX20.&lt;/p&gt;

&lt;p&gt;Understanding the Basics 🌈&lt;/p&gt;

&lt;p&gt;Before diving into specifics, let's understand what a Token standard is. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5x8j11u19585dlg6m7zd.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5x8j11u19585dlg6m7zd.gif" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A token standard defines a set of rules and functions that a token contract must implement to ensure interoperability within the blockchain ecosystem.&lt;/p&gt;

&lt;p&gt;This includes how tokens are transferred, how transactions are approved, and how users can access token data.&lt;/p&gt;

&lt;h3&gt;
  
  
  ERC-20: The Ethereum Token Standard 🌍
&lt;/h3&gt;

&lt;p&gt;Ethereum's ERC-20 is the most widely recognized token standard, serving as a blueprint for creating fungible tokens that can be traded, spent, or gifted. ERC-20 tokens share the same functionalities, making them easily exchangeable and compatible with wallet services and exchanges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Functions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;transfer(address to, uint256 value)&lt;/code&gt;: Sends a specified amount of tokens to a designated address.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;approve(address spender, uint256 value)&lt;/code&gt;: Grants permission to another account to withdraw a specified amount of tokens from the caller's account.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;transferFrom(address from, address to, uint256 value)&lt;/code&gt;: Allows a spender to transfer tokens on behalf of the token owner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example ERC-20 Contract:&lt;/strong&gt;&lt;/p&gt;


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

&lt;p&gt;pragma solidity ^0.8.0;&lt;/p&gt;

&lt;p&gt;interface IERC20 {&lt;br&gt;
    function totalSupply() external view returns (uint256);&lt;br&gt;
    function balanceOf(address account) external view returns (uint256);&lt;br&gt;
    function transfer(address recipient, uint256 amount) external returns (bool);&lt;br&gt;
    // Other functions...&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;contract OurToken is IERC20 {&lt;br&gt;
    mapping(address =&amp;gt; uint256) private _balances;&lt;br&gt;
    mapping(address =&amp;gt; mapping(address =&amp;gt; uint256)) private _allowances;&lt;br&gt;
    uint256 private _totalSupply;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Implementations of IERC20 functions...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;}&lt;/p&gt;

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

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  SIP-10  Stacks' Approach to Fungible Tokens 🌳&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;SIP-10 is a fungible token standard developed for the Stacks blockchain, allowing the creation, minting, and transfer of fungible tokens. This standard is implemented through the Ordinals Protocol, enabling users to deploy token contracts and interact with fungible tokens seamlessly. SIP-10 aims to foster interoperability within the Stacks ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv1110qhsbzu4ofx72n9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv1110qhsbzu4ofx72n9.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fungibility&lt;/strong&gt;: SIP-10 tokens are interchangeable units with equal value, similar to traditional currencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ordinals Protocol&lt;/strong&gt;: SIP-10 leverages the Ordinals Protocol for token creation and management on the Stacks blockchain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity&lt;/strong&gt;: The standard offers a simplified tokenization mechanism, making it user-friendly and accessible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: SIP-10 tokens benefit from the security features inherent in the Stacks blockchain, ensuring integrity and protection.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;SIP-10 tokens are designed to unlock new capabilities on the Stacks network, such as their integration into decentralized finance (DeFi) protocols and various blockchain applications. The standard provides a foundation for the development of innovative financial products and services within the Stacks ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Development
&lt;/h3&gt;

&lt;p&gt;SIP-10 was introduced as an experimental standard to explore the potential of fungible tokens on the Stacks blockchain.Its creation aimed to expand the utility and versatility of the Stacks network beyond its primary functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Functions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;transfer(uint256 amount, principal sender, principal recipient, memo)&lt;/code&gt;: Transfers tokens from one account to another.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get-balance(principal)&lt;/code&gt;: Returns the token balance of a specific account.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;get-total-supply()&lt;/code&gt;: Returns the total supply of the tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example SIP-10 Contract:&lt;/strong&gt;&lt;/p&gt;


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

&lt;p&gt;(define-fungible-token sip10-token)&lt;/p&gt;

&lt;p&gt;(define-public (transfer (amount uint) (sender principal) (recipient principal) (memo (optional (buff 34))))&lt;br&gt;
    (ft-transfer? sip10-token amount sender recipient))&lt;/p&gt;

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

&lt;/div&gt;
&lt;h3&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Future Prospects&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;As more projects adopt the SIP-10 standard, it is expected to foster innovation and drive the growth of decentralized applications (dApps) and financial instruments within the Stacks ecosystem. The continuous evolution of SIP-10 features will likely attract developers and users, enhancing its adoption and utility over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  BRC20: Bitcoin's Programmable Tokens 🚀
&lt;/h3&gt;

&lt;p&gt;🚀 BRC-20 tokens are programmable tokens built on the Bitcoin blockchain, introducing new functionalities beyond simple Bitcoin transactions.&lt;/p&gt;

&lt;h2&gt;
  
  
  BRC-20 Token Standard
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3m72kn37x8fllj56t37.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr3m72kn37x8fllj56t37.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;BRC-20 is an experimental token standard developed for the Bitcoin blockchain, enabling the deployment, minting, and transferring of fungible tokens through the Ordinals Protocol. This standard leverages Ordinals inscriptions of JSON data to implement token contracts, allowing users to create, mint, and exchange BRC-20 tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Experimental&lt;/strong&gt;: BRC-20 is still under development and testing, making predictions about its long-term success uncertain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fungibility&lt;/strong&gt;: Like traditional currencies, BRC-20 tokens are interchangeable and indivisible units.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity&lt;/strong&gt;: Compared to other token standards, BRC-20 avoids complex smart contracts, making it simpler to use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: BRC-20 benefits from the robust security measures of the Bitcoin blockchain, such as its decentralized structure, algorithmic technologies, and proof-of-work consensus mechanism.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Smart Contract Functionality&lt;/strong&gt;: Unlike other token standards, BRC-20 does not support smart contracts, limiting its capabilities in areas such as automation, transparency, security, and asset management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limited Interoperability&lt;/strong&gt;: BRC-20 tokens do not interact well with other blockchains, reducing their versatility.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  History and Development
&lt;/h3&gt;

&lt;p&gt;Created by an anonymous developer named Domo, BRC-20 was introduced on March 9, 2023. Since then, it has gained traction among various decentralized finance (DeFi) projects and has been adopted by infrastructure providers offering platforms for creating and trading BRC-20 tokens.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Cases
&lt;/h3&gt;

&lt;p&gt;BRC-20 tokens have been utilized in a wide array of applications, including DeFi protocols and blockchain games. They have also been employed in non-fungible token (NFT) markets, where they serve as a means of payment or as part of NFT collections themselves.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenges and Risks
&lt;/h3&gt;

&lt;p&gt;Despite the excitement surrounding BRC-20, the standard faces challenges related to its immature stage, lack of smart contract functionality, and limited interoperability. Investors and users must exercise caution while dealing with BRC-20 tokens until the standard becomes more established and reliable.&lt;/p&gt;

&lt;p&gt;In summary, BRC-20 presents an innovative opportunity to expand the functionalities of the Bitcoin blockchain but requires careful consideration given its experimental nature and associated risks.&lt;/p&gt;

&lt;h2&gt;
  
  
  STX20: Inscribing the Future on Stacks 🌟
&lt;/h2&gt;

&lt;p&gt;STX20 tokens are a new fungible token standard on the Stacks network, inspired by the BRC20 token standard on Bitcoin. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcy4jt2kujpfujz7k32p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjcy4jt2kujpfujz7k32p.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These tokens are created through the STX20 protocol, allowing for the creation and distribution of fungible, on-chain tokens on Stacks by inscribing data onto individual STX tokens.&lt;/p&gt;

&lt;p&gt;The STX20 protocol leverages the transaction memo field to provide a more efficient and gas-saving alternative to traditional smart contracts for specific use cases on Stacks.&lt;/p&gt;

&lt;p&gt;The STX20 protocol is designed to embed crucial protocol information within the metadata of STX token transfers, enhancing efficiency and making it an attractive choice for developers seeking straightforward solutions for their applications. By optimizing within the 34-symbol limit of the Stacks Blockchain, STX20 sets a new standard for maximizing impact with minimal footprint.&lt;/p&gt;

&lt;p&gt;In summary, STX20 tokens represent a significant advancement in creating and sharing digital artifacts on Stacks, with impressive transaction numbers since their launch. The protocol's integration with the Stacks blockchain and commitment to efficiency make it promising for developers seeking practical solutions in decentralized applications around Bitcoin.&lt;/p&gt;

&lt;p&gt;References:&lt;br&gt;
[1] &lt;a href="https://stacks.org/stx20-bitcoin-l2s" rel="noopener noreferrer"&gt;https://stacks.org/stx20-bitcoin-l2s&lt;/a&gt;&lt;br&gt;
[2] &lt;a href="https://www.xverse.app/blog/what-are-stx20-tokens" rel="noopener noreferrer"&gt;https://www.xverse.app/blog/what-are-stx20-tokens&lt;/a&gt;&lt;br&gt;
[3] &lt;a href="https://stx20.com" rel="noopener noreferrer"&gt;https://stx20.com&lt;/a&gt;&lt;br&gt;
[4] &lt;a href="https://www.altcoinbuzz.io/cryptocurrency-news/stx-20-tokens-inscriptions-on-stacks/" rel="noopener noreferrer"&gt;https://www.altcoinbuzz.io/cryptocurrency-news/stx-20-tokens-inscriptions-on-stacks/&lt;/a&gt;&lt;br&gt;
[5] &lt;a href="https://coingape.com/education/brc-20-know-everything-about-this-new-development-by-bitcoin/" rel="noopener noreferrer"&gt;https://coingape.com/education/brc-20-know-everything-about-this-new-development-by-bitcoin/&lt;/a&gt;&lt;br&gt;
[6] &lt;a href="https://academy.binance.com/en/glossary/brc-20-tokens" rel="noopener noreferrer"&gt;https://academy.binance.com/en/glossary/brc-20-tokens&lt;/a&gt; &lt;br&gt;
[7] &lt;a href="https://cointelegraph.com/learn/what-is-a-brc-20-token-standard-an-overview" rel="noopener noreferrer"&gt;https://cointelegraph.com/learn/what-is-a-brc-20-token-standard-an-overview&lt;/a&gt;&lt;br&gt;
[8] &lt;a href="https://github.com/stacksgov/sips/blob/main/sips/sip-010/sip-010-fungible-token-standard.md" rel="noopener noreferrer"&gt;https://github.com/stacksgov/sips/blob/main/sips/sip-010/sip-010-fungible-token-standard.md&lt;/a&gt;&lt;/p&gt;

</description>
      <category>brc20</category>
      <category>stx20</category>
      <category>tokenstandards</category>
      <category>ethereumvsbitcoin</category>
    </item>
    <item>
      <title>Exploring Union Protocol: Revolutionizing Credit and DeFi</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Tue, 29 Aug 2023 21:47:18 +0000</pubDate>
      <link>https://dev.to/kamalthedev/exploring-union-protocol-revolutionizing-credit-and-defi-4fa1</link>
      <guid>https://dev.to/kamalthedev/exploring-union-protocol-revolutionizing-credit-and-defi-4fa1</guid>
      <description>&lt;p&gt;Embarking on my journey into the realm of Web3 and blockchain's vibrant landscape, I stumbled upon an awe-inspiring concept that had me immersed from the outset. &lt;/p&gt;

&lt;p&gt;The topic at hand? None other than Union Protocol, a visionary force aimed at reshaping credit systems within the brave new world of DeFi. &lt;/p&gt;

&lt;p&gt;As a newcomer to the world of blockchain, you may find the idea of Union Protocol intriguing – a bridge connecting traditional credit systems with the revolutionary technology of blockchain.&lt;/p&gt;

&lt;p&gt;In this narrative, I aim to distill the essence of Union Protocol's innovative approach to credit, making it comprehensible to newcomers like mys&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt;&lt;br&gt;
In the rapidly evolving landscape of blockchain and decentralized finance (DeFi), Union Protocol emerges as a groundbreaking initiative that seeks to redefine the concept of credit within the digital realm. &lt;/p&gt;

&lt;p&gt;This blog aims to provide an in-depth overview of Union, shedding light on Union Protocol's significance and the challenges it aims to address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traditional Credit vs. Collateral-Based Lending:&lt;/strong&gt;&lt;br&gt;
The fundamental idea behind Union Protocol – the replication of the traditional credit system on the blockchain. Much of DeFi currently relies on collateral-based lending, Union Protocol aims to incorporate credit scoring into the ecosystem. This distinction is crucial as it addresses the limitations of collateral-based loans, where borrowers need to possess sufficient collateral to access funds. Union Protocol's approach focuses on unsecured lending, which can significantly enhance liquidity and accessibility within the DeFi space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Challenges with Traditional Credit Systems:&lt;/strong&gt;&lt;br&gt;
There are many flaws within the traditional credit system, emphasizing issues such as algorithmic bias and opacity in credit score calculations. Union Protocol aims to eliminate these drawbacks by introducing a network-based trust system that utilizes on-chain addresses as identifiers. This innovative approach minimizes the need for personal information while enabling communities to extend trust and credit among members.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Union Protocol's Features and Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I would like to highlight its open nature, efficiency, and community-driven governance. Union Protocol's documentation website, although a work in progress, outlines the protocol's functioning, relationships, and use cases. Notably, Union Protocol's approach to efficiency is explored – the pooling of capital and extension of credit to multiple parties, enhancing capital efficiency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unsecured Lending and Trust Networks:&lt;/strong&gt;&lt;br&gt;
One of the most intriguing aspects of Union Protocol is the concept of trust networks. Union Protocol enables members to vouch for one another, establishing a network of trust that underpins credit extension. This unique approach has the potential to empower communities worldwide, irrespective of traditional credit metrics. Additionally, the protocol's focus on relationships, such as one-to-one and many-to-many, presents novel opportunities for credit extension and collaboration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br&gt;
Union Protocol's aspiration to introduce credit and unsecured lending into the blockchain realm has the potential to revolutionize DeFi by increasing accessibility, liquidity, and trust. Through its innovative approach to credit extension, Union Protocol aims to address the shortcomings of traditional credit systems while fostering financial inclusion and collaboration within the DeFi landscape. As Union Protocol continues its journey, it will be fascinating to witness how this groundbreaking concept unfolds and impacts the broader blockchain ecosystem.&lt;/p&gt;

</description>
      <category>unionprotocol</category>
      <category>uncollateralised</category>
      <category>creditbased</category>
      <category>lending</category>
    </item>
    <item>
      <title>Deployed my IdentityVerse Chain (Arbitrium Orbit Chain)</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Mon, 28 Aug 2023 19:00:45 +0000</pubDate>
      <link>https://dev.to/kamalthedev/deployed-my-identityverse-chain-arbitrium-orbit-chain-5h2i</link>
      <guid>https://dev.to/kamalthedev/deployed-my-identityverse-chain-arbitrium-orbit-chain-5h2i</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CCyjKyUr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ab3hqlzgtbkibmfx3qu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CCyjKyUr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ab3hqlzgtbkibmfx3qu.png" alt="Image description" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This resulted in running these containers&lt;/p&gt;

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

&lt;p&gt;Blockscout running on localhost:4000&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2_h5clVD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8qbn5s8xk4kf2wcf567h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2_h5clVD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8qbn5s8xk4kf2wcf567h.png" alt="Image description" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

</description>
    </item>
    <item>
      <title>Working with LensOracle and Phat Contracts</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Sun, 27 Aug 2023 23:16:04 +0000</pubDate>
      <link>https://dev.to/kamalthedev/working-with-lensoracle-and-phat-contracts-37n8</link>
      <guid>https://dev.to/kamalthedev/working-with-lensoracle-and-phat-contracts-37n8</guid>
      <description></description>
    </item>
    <item>
      <title># Building Delightful Front-End Applications for Tezos with Taquito and Beacon Wallet 🚀</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Mon, 24 Jul 2023 05:01:14 +0000</pubDate>
      <link>https://dev.to/kamalthedev/tezos-connectwallet-button-with-taquitojs-497d</link>
      <guid>https://dev.to/kamalthedev/tezos-connectwallet-button-with-taquitojs-497d</guid>
      <description>&lt;p&gt;Mastering wallet connectivity and interactions is at the ❤️ of creating vibrant front-end applications on the Tezos blockchain. However, the available documentation often leaves developers in the lurch due to a lack of practical examples or real-world use cases. Don't sweat, we're here to change that! 🛠&lt;/p&gt;

&lt;p&gt;In this exciting post, we'll take a deep dive into the seamless process of managing Beacon wallet connectivity using the Taquito library for Tezos. The Taquito library is a developer's best friend when it comes to interacting with the Tezos blockchain, making it super easy to send transactions or read contract data. 📚&lt;/p&gt;

&lt;h2&gt;
  
  
  A Brief on Beacon Wallet and Taquito 🎯
&lt;/h2&gt;

&lt;p&gt;Before we put on our coding hats, let's brush up on Beacon Wallet and Taquito.&lt;/p&gt;

&lt;p&gt;Beacon Wallet is a dapper browser extension that unlocks the potential for dApp users to interact with the Tezos blockchain. It helps users keep a tab on their XTZ (Tezos' native currency) and other Tezos-based tokens, send transactions, and engage with smart contracts in an effortless way.&lt;/p&gt;

&lt;p&gt;On the other side of the spectrum, we have Taquito. Taquito is an elegant TypeScript library suite that adds oodles of ease to DApp development on the Tezos blockchain. It works as an efficient interaction layer between your application and a Tezos node. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Blueprint of Our Project 🏗
&lt;/h2&gt;

&lt;p&gt;Our sample application will be a combo of a simple navigation bar and a main component. We'll use a utility file named &lt;code&gt;wallet.js&lt;/code&gt; stored inside a "utils" folder to manage wallet handling information.&lt;/p&gt;

&lt;p&gt;This &lt;code&gt;wallet.js&lt;/code&gt; file will be the core of our utility functions and house the preferred network and RPC URL for the Beacon Wallet instance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Navigating Wallet Connectivity 🧭
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;wallet.js&lt;/code&gt; utility file will be the backbone for several functions, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Connect Wallet:&lt;/strong&gt; This method rolls out the red carpet and sets the active account if it doesn't exist. If the user refreshes the page, the status will still hold strong. This magic is performed using the &lt;code&gt;requestPermissions&lt;/code&gt; method provided by the BeaconWallet instance and &lt;code&gt;getActiveAccount&lt;/code&gt; to check for an active account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Disconnect Wallet:&lt;/strong&gt; We provide an easy exit strategy with a method to disconnect the wallet using the &lt;code&gt;disconnect&lt;/code&gt; method provided by the BeaconWallet instance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Check If Wallet Connected:&lt;/strong&gt; This method keeps an eye out for an active wallet connection and returns the status and error information accordingly.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// wallet.js
import { TezosToolkit } from "@taquito/taquito";
import { BeaconWallet } from "@taquito/beacon-wallet";
import config from "../config";

const preferredNetwork = "hangzhounet";
const options = {
  name: "NFT",
  iconUrl: "https://tezostaquito.io/img/favicon.png",
  preferredNetwork: preferredNetwork,
};
const rpcURL = "https://hangzhounet.smartpy.io";
const wallet = new BeaconWallet(options);

const getActiveAccount = async () =&amp;gt; {
  return await wallet.client.getActiveAccount();
};

const connectWallet = async () =&amp;gt; {
  let account = await wallet.client.getActiveAccount();

  if (!account) {
    await wallet.requestPermissions({
      network: { type: preferredNetwork },
    });
    account = await wallet.client.getActiveAccount();
  }
  return { success: true, wallet: account.address };
};

const disconnectWallet = async () =&amp;gt; {
  await wallet.disconnect();
  return { success: true, wallet: null };
};

const checkIfWalletConnected = async (wallet) =&amp;gt; {
  try {
    const activeAccount = await wallet.client.getActiveAccount();
    if (!activeAccount) {
      await wallet.client.requestPermissions({
        type: { network: preferredNetwork },
      });
    }
    return {
      success: true,
    };
  } catch (error) {
    return {
      success: false,
      error,
    };
  }
};

export {
  connectWallet,
  disconnectWallet,
  getActiveAccount,
  checkIfWalletConnected,
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The navbar is a component that displays connectivity to the wallet and allows users to connect or disconnect their wallet.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Navbar.jsx
import "../index.css";
import {
  connectWallet,
  getActiveAccount,
  disconnectWallet,
} from "../utils/wallet";
import { useEffect, useState } from "react";

export default function Navbar() {
  const [wallet, setWallet] = useState(null);

  const handleConnectWallet = async () =&amp;gt; {
    const { wallet } = await connectWallet();
    setWallet(wallet);
  };
  const handleDisconnectWallet = async () =&amp;gt; {
    const { wallet } = await disconnectWallet();
    setWallet(wallet);
  };

  useEffect(() =&amp;gt; {
    const func = async () =&amp;gt; {
      const account = await getActiveAccount();
      if (account) {
        setWallet(account.address);
      }
    };
    func();
  }, []);

  return (
    &amp;lt;nav className="bg-gray-800 h-14 flex items-center px-10 justify-between"&amp;gt;
      &amp;lt;div className="flex-1 space-x-4"&amp;gt;
        &amp;lt;a href="#!" className="font-bold text-white pr-6"&amp;gt;
          ICON HERE
        &amp;lt;/a&amp;gt;
        &amp;lt;a
          href="#!"
          className="bg-black text-gray-200 px-4 py-2 text-sm font-semibold rounded-sm"
        &amp;gt;
          Home
        &amp;lt;/a&amp;gt;
        // other navigation links...
      &amp;lt;/div&amp;gt;
      &amp;lt;div&amp;gt;
        &amp;lt;button
          onClick={wallet ? handleDisconnectWallet : handleConnectWallet}
          className="bg-red-500 px-6 py-2 rounded-sm text-xs font-semibold text-white cursor-pointer"
        &amp;gt;
          💳{" "}
          {wallet
            ? wallet.slice(0, 4) +
              "..." +
              wallet.slice(wallet.length - 4, wallet.length)
            : "Connect"}
        &amp;lt;/button&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/nav&amp;gt;
  );
}

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Use Cases 💡
&lt;/h2&gt;

&lt;p&gt;The amalgamation of Taquito and Beacon Wallet is perfect for a variety of Tezos dApp development scenarios. For example, if you're looking to create an NFT marketplace, these tools provide an incredibly efficient way to handle user wallet interactions, including minting, buying, and selling NFTs. &lt;/p&gt;

&lt;p&gt;In DeFi projects, Taquito and Beacon Wallet can manage complex interactions involving staking, swapping tokens, providing liquidity, and more. They ensure these transactions are secure, reliable, and user-friendly. &lt;/p&gt;

&lt;p&gt;Similarly, for a gaming dApp on Tezos, these tools can enable in-game purchases, reward distribution, and asset management with extreme ease and efficiency. The possibilities are truly endless! 🌈&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion 🏁
&lt;/h2&gt;

&lt;p&gt;To sum it up, the dynamic duo of Taquito and Beacon Wallet offers an incredibly intuitive way to handle wallet connectivity and interactions in Tezos dApps. By leveraging these libraries, you can not just build, but &lt;em&gt;build better&lt;/em&gt; on the Tezos blockchain. 🎢&lt;/p&gt;

&lt;p&gt;While this blog post has zoomed in on a specific use case, it is merely the tip of the iceberg. You can expand this foundation to meet more complex requirements in your Tezos dApp development journey. Buckle up, because it's time to turn those innovative ideas into reality on the Tezos blockchain! 🚀&lt;/p&gt;

</description>
      <category>taquitojs</category>
      <category>javascript</category>
      <category>tezos</category>
    </item>
    <item>
      <title>Tezos Connecting contracts to Frontend</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Mon, 24 Jul 2023 04:55:52 +0000</pubDate>
      <link>https://dev.to/kamalthedev/tezos-connecting-contracts-to-frontend-24g1</link>
      <guid>https://dev.to/kamalthedev/tezos-connecting-contracts-to-frontend-24g1</guid>
      <description>&lt;h1&gt;
  
  
  Unlocking the Power of Smart Contracts on Tezos with Taquito.js
&lt;/h1&gt;

&lt;p&gt;Interacting with smart contracts on blockchain networks such as Tezos presents a plethora of opportunities. However, for the average user, the process can seem daunting. While developers can interact with smart contracts and check entry points via platforms like Better Call Dev or TzKT, regular users may find this challenging. Most users are only familiar with front-end UI, making the technical aspects of smart contracts hard to comprehend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Taquito.js
&lt;/h2&gt;

&lt;p&gt;Fortunately, a solution exists in the form of Taquito.js. This JavaScript library simplifies the process of reading data from the Tezos blockchain and interacting with smart contracts. It offers a user-friendly alternative to the traditionally complex Michelson expressions.&lt;/p&gt;

&lt;p&gt;With Taquito.js, developers can effortlessly read smart contract storage, interact with contracts, and send transactions to the blockchain node. The library stands out for its intuitive interface and ease of use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Taquito.js in Action
&lt;/h2&gt;

&lt;p&gt;The potential of Taquito.js is demonstrated in a practical setting. By creating a contract instance, calling smart contract methods, and sending transactions, developers can leverage Taquito.js to streamline their work and enhance the outcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a User-Friendly Interface
&lt;/h2&gt;

&lt;p&gt;The focus then shifts to the front-end development of a lottery smart contract, demonstrating how to establish a connection to a public testnet (Ghostnet) using React and TypeScript. The integration of a wallet using Temple Wallet further simplifies the process. A user-friendly interface with easy options to buy tickets and end the game enhances the user experience.&lt;/p&gt;

&lt;p&gt;Later in the tutorial, an active account is fetched using Taquito's Beacon wallet functionality. This straightforward operation exemplifies the practicality and utility of Taquito.js.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enhancing Smart Contract Interaction
&lt;/h2&gt;

&lt;p&gt;As the tutorial progresses, the capabilities of Taquito.js become even more apparent. The library can be utilized to interact with the lottery smart contract, allowing developers to create a contract instance, call the "buy ticket" entry point, and send a transaction to the Tezos blockchain.&lt;/p&gt;

&lt;p&gt;Importantly, the tutorial also addresses the user experience aspect, demonstrating how loading state management can keep users informed during transaction processing. Alerts indicating successful transactions or failures further enhance this experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementing and Improving the Lottery Contract
&lt;/h2&gt;

&lt;p&gt;Moving beyond the theory, the tutorial demonstrates the practical application of a lottery contract. The processes of fetching contract storage using Taquito and the Tezos API, displaying remaining tickets, and managing ticket purchases are all covered. Confirmation pop-ups following ticket purchases improve the user experience and ensure clarity throughout the process.&lt;/p&gt;

&lt;p&gt;The tutorial culminates with the game's conclusion, displaying the balance received by each winning ticket holder and signifying the successful implementation of the lottery contract.&lt;/p&gt;

&lt;p&gt;Looking to the future, the presenter explores potential improvements, discussing the potential for implementing multiple ticket buying functions, recording previous winners, and the prospect of incorporating dynamic NFTs, burn functionality, and FA1.2 token integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moving Forward
&lt;/h2&gt;

&lt;p&gt;In summary, Taquito.js is an innovative and user-friendly tool that simplifies interactions with smart contracts on the Tezos blockchain. Its far-reaching potential can enhance both user experiences and developer workflows, making it a highly recommended tool for anyone venturing into the world of smart contracts and blockchain technology.&lt;/p&gt;

</description>
      <category>tezos</category>
      <category>frontend</category>
      <category>taquitojs</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Getting started with MINA</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Wed, 05 Jul 2023 06:16:16 +0000</pubDate>
      <link>https://dev.to/kamalthedev/getting-started-with-mina-1lf4</link>
      <guid>https://dev.to/kamalthedev/getting-started-with-mina-1lf4</guid>
      <description>&lt;h1&gt;
  
  
  Unraveling the Magic of Zero-Knowledge Apps: A Step-By-Step Guide.
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C38myG3G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l4lvglujp6syinchi0db.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C38myG3G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l4lvglujp6syinchi0db.gif" alt="Image description" width="480" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the grand tapestry of blockchain technology, there's an intriguing concept that's been gaining momentum: Zero-Knowledge Proofs. &lt;/p&gt;

&lt;p&gt;Are you fascinated by the idea, yet unsure what these 'ZK' proofs actually mean? Does the notion of building and deploying a ZK app feel daunting? Well, you're in luck! This guide is designed specifically to walk you through the process with step-by-step instructions. &lt;/p&gt;

&lt;p&gt;From understanding smart contracts to deploying a ZK app using TypeScript and the Mina network, we've got you covered. Even if you're just dipping your toes into the world of blockchain technology, this comprehensive guide will take you from curious bystander to confident developer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7nts3DiN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wz7zh3gd1h5r8hmhnfx0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7nts3DiN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wz7zh3gd1h5r8hmhnfx0.png" alt="Introduction to Zero-Knowledge Proofs" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's embark on this journey together, beginning with the installation of the CLI using the command below:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm i -g zkapp-cli&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Upon confirmation, your adventure into the world of ZK apps begins.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MKj6pptE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3c6t9r27zadguw3i5tdb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MKj6pptE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3c6t9r27zadguw3i5tdb.gif" alt="Image description" width="498" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;You can choose any but here we will choose Nextjs as Its our fav ❤️&lt;/p&gt;

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

&lt;p&gt;choose the subsequent options and soon we will have our App ready 🔰 &lt;/p&gt;

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

&lt;p&gt;Soon we will see two folders generated, one is for ui and the other for contract.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4DBp-pxy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yk5gpsiuhasfpazi1yyk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4DBp-pxy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yk5gpsiuhasfpazi1yyk.png" alt="Image description" width="310" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's take a quick look at one of the contracts 🕵🏻&lt;/p&gt;

&lt;p&gt;The Contracts mostly lie in the src/ folder &lt;/p&gt;

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

&lt;p&gt;The "Add.ts" file represents the default smart contract that is generated. It contains TypeScript code and describes a simple smart contract that initializes a value (in this case, 1) and provides a method to update that value by adding 2 to it. The "interact.ts" file is a sample script that shows how to interact with the smart contract and generate zero-knowledge proofs.&lt;/p&gt;

&lt;p&gt;Lets take in a quick code look at it 👁️👁️&lt;br&gt;
L63 says &lt;code&gt;await Add.compile();&lt;/code&gt; which means its compiling our Add contract.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;try {
  // call update() and send transaction
  console.log('build transaction and create proof...');
  let tx = await Mina.transaction({ sender: feepayerAddress, fee }, () =&amp;gt; {
    zkApp.update();
  });
  await tx.prove();
  console.log('send transaction...');
  sentTx = await tx.sign([feepayerKey]).send();
} catch (err) {
  console.log(err);
}
if (sentTx?.hash() !== undefined) {
  console.log(`
Success! Update transaction sent.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Above code is simple Typescript but essentially what it does is it executes a transaction by calling the &lt;code&gt;update()&lt;/code&gt; function of the &lt;code&gt;zkApp&lt;/code&gt; object. It then builds a transaction, creates a proof, and sends the transaction using the Mina blockchain network. &lt;/p&gt;

&lt;p&gt;The code first logs a message indicating that it is building the transaction and creating a proof. It then calls the &lt;code&gt;update()&lt;/code&gt; function within the transaction context. &lt;/p&gt;

&lt;p&gt;If the transaction and proof creation are successful, the code signs the transaction with the &lt;code&gt;feepayerKey&lt;/code&gt; and sends it. &lt;/p&gt;

&lt;p&gt;Any errors that occur during the process are caught and logged to the console.&lt;/p&gt;

&lt;p&gt;After sending the transaction, the code checks if the transaction hash exists (&lt;code&gt;sentTx?.hash() !== undefined&lt;/code&gt;). If it does, it logs a success message indicating that the update transaction was sent successfully.&lt;/p&gt;

&lt;p&gt;Thats it 😄 We are now good to go and deploy our zk-app&lt;/p&gt;

&lt;p&gt;Zero-knowledge proofs consist of two parts: the prover and the verifier. The prover generates the proof, and the verifier checks the validity of the proof. In the context of blockchain, zero-knowledge proofs are used to verify computations in a decentralized way. Mina's zero-knowledge proof system relies on the Mina cryptocurrency.🤯&lt;/p&gt;

&lt;p&gt;To deploy the ZK app, you need to set up a network configuration using the ZK command. &lt;/p&gt;

&lt;p&gt;You can set the config like me, we would be using the berkley testnet for deploying our contract.&lt;/p&gt;

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

&lt;p&gt;Open your Aura Wallet and set the network to Berkeley&lt;/p&gt;

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

&lt;p&gt;To obtain test Mina coins by visiting a &lt;a href="https://faucet.minaprotocol.com/"&gt;faucet URL&lt;/a&gt; which will provide you with a transaction that confirms your address and gives you some test Mina.&lt;/p&gt;

&lt;p&gt;You will obtain a transaction hash like this - &lt;a href="https://berkeley.minaexplorer.com/transaction/5JtZVHUWNvTDkWcwMjSMdUsKKYhvKrhE46Sm24HDDSzgWUJYYRBd"&gt;https://berkeley.minaexplorer.com/transaction/5JtZVHUWNvTDkWcwMjSMdUsKKYhvKrhE46Sm24HDDSzgWUJYYRBd&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once your network configuration is set up, you can deploy your ZK app by using the ZK deploy command and specifying the name of the configuration.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;zk deploy mina-testnet&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;As you would notice that a verification key would be generated , &lt;/p&gt;

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

&lt;p&gt;It would ask you to confirm the txn similar to below &lt;/p&gt;

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

&lt;p&gt;After a successful deployment, you will receive a transaction hash and a verification key hash. &lt;/p&gt;

&lt;p&gt;The verification key is used to identify the deployed account as a ZK app verifier. This key is crucial for verifying zero-knowledge proofs.&lt;/p&gt;

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

&lt;p&gt;I have taken 2 images from MINA Docs representing the Verifier and Prover Function Working 🕵🏻 &lt;/p&gt;

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

&lt;p&gt;The prover takes inputs and produces zero-knowledge proofs, which can be sent to the verifier on the blockchain network.&lt;/p&gt;

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

&lt;p&gt;And there you have it! 🎉🎉 &lt;/p&gt;

&lt;p&gt;You've walked through the winding paths of blockchain technology and emerged with a deeper understanding of zero-knowledge proofs and the power they hold. Remember, every expert was once a beginner, and you've just taken significant strides on your journey to mastery. Keep experimenting, keep learning, and most importantly, keep building amazing ZK apps !!&lt;/p&gt;

</description>
      <category>mina</category>
      <category>zeroknowledgeproof</category>
      <category>developerdao</category>
    </item>
    <item>
      <title>Metamask Snaps</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Wed, 05 Jul 2023 03:41:46 +0000</pubDate>
      <link>https://dev.to/kamalthedev/metamask-snaps-2d9l</link>
      <guid>https://dev.to/kamalthedev/metamask-snaps-2d9l</guid>
      <description>&lt;p&gt;What is Metamask ??&lt;/p&gt;

&lt;p&gt;MetaMask is one of the most popular wallets for interacting with the Ethereum blockchain.&lt;/p&gt;

&lt;p&gt;Who needs Metamask ?&lt;/p&gt;

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

&lt;p&gt;Introducing MetaMask Snapps: A New Way to Extend the Functionality of MetaMask 🚀&lt;/p&gt;

&lt;p&gt;With its code open Sourced and its SDKs available now it’s becoming an extensible platform for permissionless innovation with the introduction of MetaMask Snapps. &lt;/p&gt;

&lt;p&gt;Snapps, or “snaps,” are plugins that allow developers to extend the functionality of MetaMask, bringing new features and APIs to the wallet. 🔌&lt;/p&gt;

&lt;p&gt;With Snapps, developers can go beyond Ethereum and integrate any blockchain protocol, scaling solution, or API into MetaMask. Snapps can also be used to enable authentication, privacy, and consent in ways that keep users in control. Additionally, developers can use Snapps to empower users with more ways to protect their data and employ anti-phishing solutions. 🔒&lt;/p&gt;

&lt;p&gt;Snapps execute in a sandboxed environment based on Hardened JavaScript by Agoric and use a permissions model for protecting user data and respecting user consent. To try Snapps, developers can install MetaMask Flask, a canary distribution that provides access to upcoming features. 🐦&lt;/p&gt;

&lt;p&gt;A snap is a JavaScript program that runs in an isolated environment and customizes the wallet experience. Snaps have access to a limited set of capabilities determined by the permissions granted by the user during installation. With a snap, developers can add new API methods to MetaMask, add support for different blockchain protocols, or modify existing functionalities using the Snaps JSON-RPC API. 💻&lt;/p&gt;

&lt;p&gt;Some of the features that can be added using Snapps include dialogs, notifications, encrypted storage, non-EVM chain support, transaction insights, cron jobs, custom UIs, and network access. 🔔&lt;/p&gt;

&lt;p&gt;Here is a beautiful resource to help you get started with Metamask Snapps ❤️ &lt;a href="https://docs.metamask.io/snaps/get-started/quickstart/"&gt;https://docs.metamask.io/snaps/get-started/quickstart/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>metamask</category>
      <category>ethereum</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How do you set up .env variables in your NextJS project ?</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Fri, 28 Apr 2023 06:39:42 +0000</pubDate>
      <link>https://dev.to/kamalthedev/how-do-you-set-up-env-variables-in-your-nextjs-project--fb5</link>
      <guid>https://dev.to/kamalthedev/how-do-you-set-up-env-variables-in-your-nextjs-project--fb5</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First, ensure that the .env file is located in the root directory of your Next.js project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make sure you have installed the required dependencies. You can use the dotenv package to load environment variables from the .env file. Run the following command to install it:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Create a file named next.config.js in the root directory of your project if it doesn't exist already. In that file, add the following code
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require('dotenv').config();

module.exports = {
  env: {
    INFURA_IPFS_ID: process.env.INFURA_IPFS_ID,
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This configuration will load the INFURA_IPFS_ID environment variable from the .env file and make it accessible in your Next.js app.&lt;/p&gt;

&lt;p&gt;congratulations now you are good to go 🚀 &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jd4L28Qj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1idtnknv3ba3da4r5ydx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jd4L28Qj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1idtnknv3ba3da4r5ydx.gif" alt="Image description" width="498" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After following these steps, you should be able to access the INFURA_IPFS_ID variable using process.env.INFURA_IPFS_ID in your code, just like you are doing with the projectId variable.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>dotenv</category>
      <category>env</category>
    </item>
    <item>
      <title>How to easily apply gradient effect in tailwindcss</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Thu, 20 Apr 2023 05:22:40 +0000</pubDate>
      <link>https://dev.to/kamalthedev/how-to-easily-apply-gradient-effect-in-tailwindcss-ojl</link>
      <guid>https://dev.to/kamalthedev/how-to-easily-apply-gradient-effect-in-tailwindcss-ojl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Gradient effects&lt;/strong&gt; 🧊 are a popular design trend that add depth and interest to websites and applications. With Tailwind CSS, you can easily apply gradient effects to any element using the built-in gradient utilities. &lt;/p&gt;

&lt;p&gt;While It is always good to follow the official docs for reference &lt;/p&gt;

&lt;p&gt;&lt;a href="https://tailwindcss.com/docs/gradient-color-stops"&gt;https://tailwindcss.com/docs/gradient-color-stops&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this blog post, I will show you how to apply gradient effects to your website using Tailwind CSS.&lt;/p&gt;

&lt;p&gt;Step 1: Install Tailwind CSS&lt;/p&gt;

&lt;p&gt;If you haven't already, you'll need to install Tailwind CSS by following the instructions on their website or using your preferred package manager. Once you have Tailwind CSS installed, you can start using the gradient utilities.&lt;/p&gt;

&lt;p&gt;Step 2: Choose a gradient color scheme&lt;/p&gt;

&lt;p&gt;There are many different gradient color schemes to choose from, ranging from simple two-color gradients to more complex multi-color gradients. You can choose from pre-defined gradients in Tailwind CSS or create your own custom gradient.&lt;/p&gt;

&lt;p&gt;To choose a pre-defined gradient, you can browse the Tailwind CSS documentation and find the gradient utility that matches your desired color scheme. For example, if you want a blue to purple gradient, you can use the "bg-gradient-to-r" utility:&lt;/p&gt;

&lt;p&gt;This will create a gradient background that fades from blue to purple from left to right.&lt;/p&gt;

&lt;p&gt;Step 3: Adjust gradient direction and color stops&lt;/p&gt;

&lt;p&gt;You can adjust the direction of the gradient using the "bg-gradient-to-" utility followed by a direction keyword. For example, if you want a gradient that fades from top to bottom, you can use the "bg-gradient-to-b" utility:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="bg-gradient-to-b from-blue-500 to-purple-500"&amp;gt;
  &amp;lt;!-- your content here --&amp;gt;
&amp;lt;/div&amp;gt;
You can also adjust the color stops of the gradient by using the "via-" keyword followed by a color. This allows you to create more complex multi-color gradients. For example, if you want a gradient that fades from blue to green to purple, you can use the following utility:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div class="bg-gradient-to-r from-blue-500 via-green-500 to-purple-500"&amp;gt;
  &amp;lt;!-- your content here --&amp;gt;
&amp;lt;/div&amp;gt;
This will create a gradient that fades from blue to green to purple from left to right.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 4: Use gradient with other Tailwind CSS utilities&lt;/p&gt;

&lt;p&gt;You can also use gradient utilities in combination with other Tailwind CSS utilities, such as text and border utilities. For example, you can create a button with a gradient background and a border using the following code:&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
  Click me&lt;br&gt;
&lt;br&gt;
This will create a button with a gradient background that fades from blue to purple, a gray border, and white text.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Using Tailwind CSS, you can easily apply gradient effects to your website or application. By choosing a pre-defined gradient or creating your own custom gradient, adjusting the direction and color stops, and using gradient utilities in combination with other Tailwind CSS utilities, you can create beautiful and unique designs. Try experimenting with different gradients and see what works best for your project.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is a merkle tree ?</title>
      <dc:creator>Kamal Nayan</dc:creator>
      <pubDate>Thu, 20 Apr 2023 05:15:20 +0000</pubDate>
      <link>https://dev.to/kamalthedev/what-is-a-merkle-tree--3c5</link>
      <guid>https://dev.to/kamalthedev/what-is-a-merkle-tree--3c5</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZqlDPKzO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n4oxzurgyinoo3uqh1vz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZqlDPKzO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n4oxzurgyinoo3uqh1vz.png" alt="Image description" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A block header in a blockchain typically contains the following details:&lt;/p&gt;

&lt;p&gt;Version number: Specifies the version of the software used to create the block.&lt;/p&gt;

&lt;p&gt;Previous block hash: A reference to the hash of the previous block in the chain, linking the blocks together.&lt;/p&gt;

&lt;p&gt;Merkle root: A hash of all the transactions in the block, serving as a compact representation of all the transaction data in the block.&lt;/p&gt;

&lt;p&gt;Timestamp: The time the block was created, used to help prevent double-spending and to order transactions chronologically.&lt;/p&gt;

&lt;p&gt;Difficulty target: Specifies the target for the proof-of-work calculation, which determines the rate at which new blocks are added to the chain.&lt;/p&gt;

&lt;p&gt;Nonce: A random number used as an input in the proof-of-work calculation, which allows miners to perform the necessary&lt;/p&gt;

</description>
      <category>merkle</category>
      <category>ethereum</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
