<?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>Developers Forum for XinFin XDC Network: Jay_Kulkarni</title>
    <description>The latest articles on Developers Forum for XinFin XDC Network by Jay_Kulkarni (@jay_kulkarni_842b41d81b23).</description>
    <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23</link>
    <image>
      <url>https://www.xdc.dev/images/3xyBAg3_ZgVhxDEMfl42MeNQGlB8hm6JC7Oi57WVRss/rs:fill:90:90/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL3VzZXIvcHJv/ZmlsZV9pbWFnZS80/MjcvYjc5ZjFlZjEt/MTg2Zi00Mzc3LTlh/MGUtNDE0ZTBlYjVh/YzcxLnBuZw</url>
      <title>Developers Forum for XinFin XDC Network: Jay_Kulkarni</title>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.xdc.dev/feed/jay_kulkarni_842b41d81b23"/>
    <language>en</language>
    <item>
      <title>ETHDubai:XDC Hackathon Revolutionizing Global Supply Chains with XDC Network</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Fri, 23 May 2025 11:12:38 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/ethdubaixdc-hackathon-revolutionizing-global-supply-chains-with-xdc-network-1319</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/ethdubaixdc-hackathon-revolutionizing-global-supply-chains-with-xdc-network-1319</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;The Challenge&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Modern supply chains are complex ecosystems involving manufacturers, warehouses, retailers, and customers. Yet, they often lack transparency, suffer from inefficiencies, and are vulnerable to fraud. Traditional systems fail to provide stakeholders with real-time visibility or proof of product authenticity.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Our Solution&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;At ETHDubai 2025 Hackathon, our team introduced a cutting-edge, decentralized supply chain platform powered by the XDC Network. The goal: to offer end-to-end visibility, build trust between stakeholders, and eliminate inefficiencies through smart contract automation and QR code traceability.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Tech Stack Highlights&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Built with React.js for a dynamic and responsive user experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Contracts:&lt;/strong&gt; Developed in Solidity and deployed on the XDC Network (EVM-compatible).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Presentation:&lt;/strong&gt; Implemented using Material Table for a clean and user-friendly interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Payments &amp;amp; Permissions:&lt;/strong&gt; Enabled using XDC tokens, ensuring seamless and secure transactions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How It Works&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Our platform supports key roles in a supply chain:&lt;br&gt;
Manufacturers – Initiate the product's lifecycle&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Warehouse Owners&lt;/strong&gt; – Track inventory movement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retailers&lt;/strong&gt;– Validate handovers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customers&lt;/strong&gt;– Verify authenticity before purchase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admin&lt;/strong&gt;– Controls user roles and system access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each product is assigned a unique QR code, which records its entire journey on-chain — from origin to delivery.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Smart Contract Automation&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Smart contracts govern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Role-based access controls&lt;/li&gt;
&lt;li&gt;Secure and verifiable product transfers&lt;/li&gt;
&lt;li&gt;Fair payment distribution upon product movement&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;QR Code Traceability&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Consumers can scan QR codes to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authenticate products&lt;/li&gt;
&lt;li&gt;Trace every touchpoint in the supply chain&lt;/li&gt;
&lt;li&gt;View timestamped logs of all transfers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This level of transparency significantly reduces the risk of counterfeit goods and builds lasting consumer trust.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Advantages&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full Transparency:&lt;/strong&gt; All stakeholders have real-time access to product data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security &amp;amp; Trust:&lt;/strong&gt; Tamper-proof blockchain ledger&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Process Efficiency:&lt;/strong&gt; Automated workflows reduce delays&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Traceability:&lt;/strong&gt; End-to-end tracking for every product&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accountability:&lt;/strong&gt; Immutable record of every interaction&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Live Demo&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;📺 &lt;a href="https://www.youtube.com/watch?v=N38dHou3BWc&amp;amp;feature=youtu.be"&gt;Watch the full product walkthrough on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Deployed On&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Network:&lt;/strong&gt; XDC Apothem (Testnet)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Contract:&lt;/strong&gt; &lt;a href="https://testnet.xdcscan.com/address/0xc98659fF51045a7e78660FB68715faBC5637118B"&gt;0xc98659fF51045a7e78660FB68715faBC5637118B&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Team Innovators&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Built by a passionate team of developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pratham Ingawale&lt;/li&gt;
&lt;li&gt;Jay Kulkarni&lt;/li&gt;
&lt;li&gt;Kshitij Patil&lt;/li&gt;
&lt;li&gt;Chaitanya Varekar&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Project Images&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/KtIFOeC3mwJB861Aa7rm7ty4KuBKDjGjgxJTsK_uq64/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2t0dXIxdmFobnBm/ZWRjYzRpZzQxLmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/KtIFOeC3mwJB861Aa7rm7ty4KuBKDjGjgxJTsK_uq64/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2t0dXIxdmFobnBm/ZWRjYzRpZzQxLmpw/ZWc" alt="Image description" width="620" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/kx5n2d6PKGB5SVdcRLVDxbN9YM8YKzOGDKDI_7vegl8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzVoZjdrN280YWZy/YWU3ZW1oY2FrLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/kx5n2d6PKGB5SVdcRLVDxbN9YM8YKzOGDKDI_7vegl8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzVoZjdrN280YWZy/YWU3ZW1oY2FrLnBu/Zw" alt="Image description" width="880" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/i3YEvto-Z_0GSzyGcy4H45gIRHe6-bl5sQW1zQJ6erE/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3FhZGg2NXJ3Z3Ex/dHJmY2FoZWl1LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/i3YEvto-Z_0GSzyGcy4H45gIRHe6-bl5sQW1zQJ6erE/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3FhZGg2NXJ3Z3Ex/dHJmY2FoZWl1LnBu/Zw" alt="Image description" width="880" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/eWdHnJhamBM8RAUlwTbdZXVJgA5M3qO-1Un6eoFKN2o/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3h5a2g4eTZlODd5/ZHJxOHdzNWxyLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/eWdHnJhamBM8RAUlwTbdZXVJgA5M3qO-1Un6eoFKN2o/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3h5a2g4eTZlODd5/ZHJxOHdzNWxyLnBu/Zw" alt="Image description" width="880" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/ZUuqT9mhvSnqtYsEUfG7B96vwkbi19Fyi_0nHONJOHg/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2U3YWpyZmhubmNs/Y3Ywanl6NjRwLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/ZUuqT9mhvSnqtYsEUfG7B96vwkbi19Fyi_0nHONJOHg/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2U3YWpyZmhubmNs/Y3Ywanl6NjRwLnBu/Zw" alt="Image description" width="880" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Winner - ETHDubai 2025 Hackathon&lt;/strong&gt;&lt;br&gt;
This recognition reflects the strength of our technical execution and the real-world impact of blockchain-powered solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wallet Address&lt;/strong&gt;&lt;br&gt;
xdc1e459ad230b7d47b80911161dbbf8368a5b7aedf&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Informative] A Guide to Migrating from Truffle to Hardhat on the XDC Network: EVM Smart Contract Development</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Fri, 19 Apr 2024 17:14:30 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/a-guide-to-migrating-from-truffle-to-hardhat-on-the-xdc-network-evm-smart-contract-development-520p</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/a-guide-to-migrating-from-truffle-to-hardhat-on-the-xdc-network-evm-smart-contract-development-520p</guid>
      <description>&lt;p&gt;Truffle has long been a popular choice for EVM smart contract development, but as the ecosystem evolves, developers are increasingly turning to tools like Hardhat for their flexibility and advanced features. In this guide, we'll walk through the process of migrating your Truffle project to Hardhat, highlighting the benefits along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Need for Migration
&lt;/h2&gt;

&lt;p&gt;Truffle has served us well, but Hardhat offers a more robust development environment with features like built-in support for TypeScript, a powerful task system, and extensive plugin support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preparing for Migration&lt;/strong&gt;&lt;br&gt;
Before we dive into migration, ensure you have &lt;strong&gt;Node.js&lt;/strong&gt; installed on your machine. Then, install Hardhat globally using npm:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Setting Up Your Hardhat Project&lt;/strong&gt;&lt;br&gt;
Navigate to your project directory and initialize a new Hardhat project:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Migrating Contracts&lt;/strong&gt;&lt;br&gt;
Copy your contracts from the Truffle &lt;code&gt;contracts/&lt;/code&gt; directory to Hardhat's &lt;code&gt;contracts/&lt;/code&gt; directory. Hardhat fully supports Solidity contracts, so no changes are necessary here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Migrating Tests&lt;/strong&gt;&lt;br&gt;
If you have &lt;code&gt;migration&lt;/code&gt; written for your Truffle project, move them to the &lt;code&gt;test/&lt;/code&gt; directory in your Hardhat project. Hardhat supports both JavaScript and TypeScript for writing tests, providing flexibility and type safety.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating an Environment File&lt;/strong&gt;&lt;br&gt;
Hardhat supports the use of environment variables for sensitive information like API keys. Create a &lt;code&gt;.env&lt;/code&gt; file in your project directory and add your variables in the format VARIABLE_NAME=VALUE. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;XDC_TESTNET_URL=https://apothem.xdcrpc.com
PRIVATE_KEY=your_private_key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Configuring Hardhat&lt;/strong&gt;&lt;br&gt;
Hardhat's configuration file, &lt;code&gt;hardhat.config.js&lt;/code&gt;, where you'll define your network configurations, plugins, and other project settings. Customize this file according to your project's requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adding XDC Network in your hardhat.config.js file&lt;/strong&gt;&lt;br&gt;
Once you've set up your project and are ready to configure your Hardhat environment, you'll need to add the XDC Network configuration to your hardhat.config.js file. This step is crucial for interacting with the XDC Network and verifying contracts on BlocksScan.&lt;/p&gt;

&lt;p&gt;Open your &lt;code&gt;hardhat.config.js&lt;/code&gt; file and add the following code snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require('dotenv').config();
require('@nomiclabs/hardhat-ethers');
require("@nomicfoundation/hardhat-verify");

module.exports = {
    solidity: "0.8.24",
    networks: {
        apothem: {
            url: process.env.XDC_TESTNET_URL,
            accounts: [process.env.PRIVATE_KEY]
        }
    },
    etherscan: {
        apiKey: {
            apothem: "abc",
            devnet: "abc",
            xdc: "abc",
        },
        customChains: [
            {
                network: "apothem",
                chainId: 51,
                urls: {
                    apiURL: "https://abapi.blocksscan.io/api",
                    browserURL: "https://apothembeta.blocksscan.io/",
                },
            }
        ],
    },
    sourcify: {
        enabled: false
    }
};

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Installing Necessary Plugins&lt;/strong&gt;&lt;br&gt;
To enhance your Hardhat development experience, it's crucial to install necessary dependencies and enable the hardhat-plugin-verify.&lt;br&gt;
Install the required dependencies using npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install dotenv
npm install --save-dev @nomiclabs/hardhat-ethers --force
npm install --save-dev @nomicfoundation/hardhat-verify --force
npm install --force @openzeppelin/contracts
npm install --save-dev ethers@^5.7.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Testing and Debugging&lt;/strong&gt;&lt;br&gt;
With your project migrated, take advantage of Hardhat's advanced testing and debugging tools. Run your tests using &lt;code&gt;npx hardhat test&lt;/code&gt; and leverage Hardhat's console for interactive debugging sessions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deploying Your Contracts&lt;/strong&gt;&lt;br&gt;
Once everything looks good, it's time to deploy your contracts. Hardhat supports deployment to various networks, including local development environments and public testnets.&lt;/p&gt;

&lt;p&gt;To deploy your contracts using Hardhat, you can use the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat run test/1_initial_migration.js --network apothem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Verifying Contracts on BlocksScan&lt;/strong&gt;&lt;br&gt;
Similar to Truffle, Hardhat allows for easy contract verification on BlocksScan. Utilize plugins or built-in functionality to verify your contracts and increase transparency for users.&lt;/p&gt;

&lt;p&gt;After successful deployment, verify the contract using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat verify --network apothem DEPLOYED_CONTRACT_ADDRESS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.xdc.dev/images/CMjtm0eAXhdsIhuFK1k6suXKK1x6f9B4YvmQS_dbMK4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L29hZ2RhbzNpcDNo/YXhudzJ2a3J1Lmpw/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/CMjtm0eAXhdsIhuFK1k6suXKK1x6f9B4YvmQS_dbMK4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L29hZ2RhbzNpcDNo/YXhudzJ2a3J1Lmpw/Zw" alt="Image description" width="880" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Congratulations on successfully deploying your smart contracts on the XDC Network using Hardhat! This achievement marks a significant milestone in your blockchain journey. Armed with the skills to navigate Hardhat's robust toolset and harness the capabilities of the XDC Network efficiently, you're well-equipped to explore decentralized applications (DApps) and smart contract development further.&lt;/p&gt;

&lt;p&gt;Keep your curiosity alive, continue learning, and embrace the endless possibilities offered by this groundbreaking technology. For queries or assistance, feel free to leave a comment below or connect with us on social media by tagging XDC Network.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Follow us to know more updates:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blocksscan.io/"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/blocksscan"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@blocksscanio"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Informative] Deploying and Verifying a Pepe Token on the XDC Network using Hardhat</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Thu, 28 Mar 2024 18:48:18 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/deploying-and-verifying-a-pepe-token-on-the-xdc-network-using-hardhat-3nc7</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/deploying-and-verifying-a-pepe-token-on-the-xdc-network-using-hardhat-3nc7</guid>
      <description>&lt;p&gt;In the fast-evolving world of blockchain technology, crafting and deploying personalized tokens has never been easier. This guide will take you on a journey through deploying and authenticating a Pepe token, inspired by the popular meme, on the XDC Network using Hardhat. By following these steps, you'll delve into the realm of smart contract development and deployment on a real-world blockchain platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;br&gt;
Before initiating the deployment and validation process, ensure that you have the following prerequisites in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Node.js and npm:&lt;/strong&gt;&lt;br&gt;
Install Node.js and npm (Node Package Manager) on your machine to execute commands and manage dependencies efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hardhat Installed:&lt;/strong&gt;&lt;br&gt;
Globally install Hardhat on your system using npm to leverage its robust features for smart contract development and deployment.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Follow these steps to compile, deploy, and verify your smart contract:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Creating a Project Directory&lt;/strong&gt;&lt;br&gt;
Start by creating a directory for your blockchain project using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir my-pepe-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;my-pepe-project&lt;/code&gt; with your desired project directory name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Navigating into the Directory&lt;/strong&gt;&lt;br&gt;
Once the directory is created, navigate into it using the cd command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd my-pepe-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: Initializing Hardhat&lt;/strong&gt;&lt;br&gt;
Initialize Hardhat within your project directory by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Choose to create a JavaScript project when prompted.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\Users\admin\Desktop\hardhat&amp;gt;npx hardhat init
Need to install the following packages:
hardhat@2.22.2
Ok to proceed? (y)
888    888                      888 888               888
888    888                      888 888               888
888    888                      888 888               888
8888888888  8888b.  888d888 .d88888 88888b.   8888b.  888888
888    888     "88b 888P"  d88" 888 888 "88b     "88b 888
888    888 .d888888 888    888  888 888  888 .d888888 888
888    888 888  888 888    Y88b 888 888  888 888  888 Y88b.
888    888 "Y888888 888     "Y88888 888  888 "Y888888  "Y888

Welcome to Hardhat v2.22.2

√ What do you want to do? · Create a JavaScript project
√ Hardhat project root: · C:\Users\admin\Desktop\hardhat
√ Do you want to add a .gitignore? (Y/n) · y
√ Help us improve Hardhat with anonymous crash reports &amp;amp; basic usage data? (Y/n) · y
√ Do you want to install this sample project's dependencies with npm (hardhat @nomicfoundation/hardhat-toolbox)? (Y/n) · y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The initialized project has the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;contracts/
ignition/modules/
test/
hardhat.config.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are the default paths for a Hardhat project.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;contracts/&lt;/strong&gt; is where the source files for your contracts should be.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ignition/modules/&lt;/strong&gt; is where the Ignition modules that handle contract deployments should be.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;test/&lt;/strong&gt; is where your tests should go.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Creating a .env File&lt;/strong&gt;&lt;br&gt;
Generate a .env file and define the following environment variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PRIVATE_KEY=your_private_key
XDC_TESTNET_URL=https://apothem.xdcrpc.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;your_private_key&lt;/code&gt; with your private key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Pepe Token Contract Code&lt;/strong&gt;&lt;br&gt;
Rename the file &lt;strong&gt;contracts/lock.js&lt;/strong&gt; to &lt;strong&gt;contracts/PepeToken.sol&lt;/strong&gt; and insert the provided code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract PepeToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("PepeToken", "PEPE") {
        _mint(msg.sender, initialSupply);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6: Adding XDC Network Configuration&lt;/strong&gt;&lt;br&gt;
In your &lt;code&gt;hardhat.config.js&lt;/code&gt; file, append the provided configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require('dotenv').config();
require('@nomiclabs/hardhat-ethers');
require("@nomicfoundation/hardhat-verify");

module.exports = {
    solidity: "0.8.24",
    networks: {
        apothem: {
            url: process.env.XDC_TESTNET_URL,
            accounts: [process.env.PRIVATE_KEY]
        }
    },
    etherscan: {
        apiKey: {
            apothem: "abc",
            devnet: "abc",
            xdc: "abc",
        },
        customChains: [
            {
                network: "apothem",
                chainId: 51,
                urls: {
                    apiURL: "https://abapi.blocksscan.io/api",
                    browserURL: "https://apothembeta.blocksscan.io/",
                },
            }
        ],
    },
    sourcify: {
        enabled: false
    }
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 7: Installing Dependencies&lt;/strong&gt;&lt;br&gt;
Install the required dependencies by running the provided commands.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install dotenv
npm install --save-dev @nomiclabs/hardhat-ethers --force
npm install --save-dev @nomicfoundation/hardhat-verify --force
npm install --force @openzeppelin/contracts
npm install --save-dev ethers@^5.7.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 8: Pepe Token Deployment Script&lt;/strong&gt;&lt;br&gt;
Create a deployment script &lt;code&gt;test/deploy.js&lt;/code&gt; and include the provided code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { ethers } = require("hardhat");

async function main() {
 const PepeToken = await ethers.getContractFactory("PepeToken");
 const pepeToken = await PepeToken.deploy(1000000); // Initial supply: 1,000,000 tokens

 await pepeToken.deployed();

 console.log("PepeToken deployed to:", pepeToken.address);
 console.log("PepeToken deployed to HASH:", pepeToken.deployTransaction.hash);
}

main().then(() =&amp;gt; process.exit(0)).catch(error =&amp;gt; {
 console.error(error);
 process.exit(1);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 9: Compiling Smart Contracts&lt;/strong&gt;&lt;br&gt;
Compile your smart contracts for deployment and testing using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat compile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Upon successful execution, you'll witness an output similar to the one below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PS C:\Users\admin\Desktop\hardhat&amp;gt; npx hardhat compile
Compiled 1 Solidity file successfully (evm target: paris).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 10: Deploying Smart Contracts&lt;/strong&gt;&lt;br&gt;
Deploy your compiled smart contract by executing the deployment script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat run test/deploy.js --network apothem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After it's done running successfully, you'll see output 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;PS C:\Users\admin\Desktop\hardhat&amp;gt; npx hardhat run test/deploy.js --network apothem
Compiled 6 Solidity files successfully (evm target: paris).
PepeToken deployed to: 0xB172ed448de08306d996E1C54cb38e08Fa94C79e
PepeToken deployed to HASH: 0x5e9655182018d7861b3b4ff4b1fb72d465d37ef558619a886f7a2c49e2112856
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Upon deployment, you'll receive a transaction hash. To verify the contract deployment, scrutinize the &lt;a href="https://apothembeta.blocksscan.io/"&gt;BlocksScan &lt;/a&gt;explorer using this hash.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 11: Verifying Smart Contracts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Verify your deployed smart contract following the provided steps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open and scrutinize the deploy.js file situated inside the test folder.&lt;/li&gt;
&lt;li&gt;Identify the parameter passed to the constructor of the PepeToken contract during deployment.&lt;/li&gt;
&lt;li&gt;Include this parameter in the verification command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat verify --network apothem DEPLOYED_CONTRACT_ADDRESS 1000000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the verification is successful, you'll receive an output similar to the one below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PS C:\Users\admin\Desktop\hardhat&amp;gt; npx hardhat verify --network apothem 0xB172ed448de08306d996E1C54cb38e08Fa94C79e 1000000
Successfully submitted source code for contract
contracts/PepeToken.sol:PepeToken at 0xB172ed448de08306d996E1C54cb38e08Fa94C79e
for verification on the block explorer. Waiting for verification result...

Successfully verified contract PepeToken on the block explorer.
https://apothembeta.blocksscan.io/address/0xB172ed448de08306d996E1C54cb38e08Fa94C79e#code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.xdc.dev/images/lHQy5DOFrGGUElfL7jS-RRxnHYx3d1JzuSlkcDzn_XQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzdybzZndWppbXB2/eGxtMXJ0ZTk3Lmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/lHQy5DOFrGGUElfL7jS-RRxnHYx3d1JzuSlkcDzn_XQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzdybzZndWppbXB2/eGxtMXJ0ZTk3Lmpw/ZWc" alt="Image description" width="880" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/KYk6I1-5ASMQdX_49S7Mvo57PU6rRlZPhEPfOcWXgSs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3NsY3JjdDYwajdr/bm41enRodGhoLmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/KYk6I1-5ASMQdX_49S7Mvo57PU6rRlZPhEPfOcWXgSs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3NsY3JjdDYwajdr/bm41enRodGhoLmpw/ZWc" alt="Image description" width="880" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations on successfully deploying your smart contracts on the XDC Network using Hardhat! This achievement marks a significant milestone in your blockchain journey. Armed with the skills to navigate Hardhat's robust toolset and harness the capabilities of the XDC Network efficiently, you're well-equipped to explore decentralized applications (DApps) and smart contract development further. Keep your curiosity alive, continue learning, and embrace the endless possibilities offered by this groundbreaking technology. For queries or assistance, feel free to leave a comment below or connect with us on social media by tagging XDC Network. Happy coding!&lt;/p&gt;

&lt;p&gt;Follow us to know more updates:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blocksscan.io/"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/blocksscan"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@blocksscanio"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>xdc</category>
      <category>blocksscan</category>
      <category>xdcnetwork</category>
    </item>
    <item>
      <title>[Informative] Deploying and Verifying a DogeCoin-inspired ERC20 Token on the XDC Network using Hardhat</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Thu, 28 Mar 2024 10:50:01 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/deploying-and-verifying-a-dogecoin-inspired-erc20-token-on-the-xdc-network-using-hardhat-3pej</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/deploying-and-verifying-a-dogecoin-inspired-erc20-token-on-the-xdc-network-using-hardhat-3pej</guid>
      <description>&lt;p&gt;In the dynamic landscape of blockchain technology, creating and deploying custom tokens has become increasingly accessible. This guide will walk you through deploying and verifying a DogeCoin-inspired ERC20 token on the XDC Network using Hardhat. By following these steps, you'll gain practical insights into smart contract development and deployment on a real-world blockchain network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;br&gt;
Before diving into the deployment and verification process, ensure you have the following prerequisites in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Node.js and npm:&lt;/strong&gt;&lt;br&gt;
Install Node.js and npm (Node Package Manager) on your machine to execute commands and manage dependencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hardhat Installed:&lt;/strong&gt;&lt;br&gt;
Install Hardhat globally on your system using npm to leverage its powerful features for smart contract development and deployment.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Follow the steps to Compile, Deploy and verify your smart contract:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Creating a Directory&lt;/strong&gt;&lt;br&gt;
Create a directory for your blockchain development project using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir my-hardhat-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace "my-hardhat-project" with the desired name for your project directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Navigating into the Directory&lt;/strong&gt;&lt;br&gt;
Once the directory is created, navigate into it using the cd command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd my-hardhat-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: Initializing Hardhat&lt;/strong&gt;&lt;br&gt;
Initialize Hardhat within your project directory by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Choose the option to create a JavaScript project when prompted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/_LhIsrFADMMvJDlGSg42yDlRwebUzwipKtaNHbY9dQw/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2phYnNwZmg1ZXVy/bGZtZWRoaWc5LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/_LhIsrFADMMvJDlGSg42yDlRwebUzwipKtaNHbY9dQw/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2phYnNwZmg1ZXVy/bGZtZWRoaWc5LnBu/Zw" alt="Image description" width="715" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/P65XL4U7ObVf31FXgf90cHE1SH5O_zQKqPr1K9vor-4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3UzZmo1aXBnN2M3/bThnN2k0eXB6LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/P65XL4U7ObVf31FXgf90cHE1SH5O_zQKqPr1K9vor-4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3UzZmo1aXBnN2M3/bThnN2k0eXB6LnBu/Zw" alt="Image description" width="880" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The initialized project has the following structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;contracts/
ignition/modules/
test/
hardhat.config.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are the default paths for a Hardhat project.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;contracts/&lt;/strong&gt; is where the source files for your contracts should be.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ignition/modules/&lt;/strong&gt; is where the Ignition modules that handle contract deployments should be.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;test/&lt;/strong&gt; is where your tests should go.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Create .env File&lt;/strong&gt;&lt;br&gt;
create a .env file and set the following environment variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PRIVATE_KEY=your_private_key
XDC_TESTNET_URL=https://apothem.xdcrpc.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;PRIVATE_KEY&lt;/code&gt; with your private key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: DogeCoin Contract Code&lt;/strong&gt;&lt;br&gt;
Rename the file &lt;strong&gt;contracts/lock.js&lt;/strong&gt; to &lt;strong&gt;contracts/DogeCoin.sol&lt;/strong&gt; and add the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract DogeCoin is ERC20 {
    constructor(uint256 initialSupply) ERC20("DogeCoin", "DOGE") {
        _mint(msg.sender, initialSupply);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 6: Adding XDC Network Configuration&lt;/strong&gt;&lt;br&gt;
In your hardhat.config.js file, add the following configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require('dotenv').config(); //all the key value pairs are being made available due to this lib
require('@nomiclabs/hardhat-ethers');
require("@nomiclabs/hardhat-etherscan");


module.exports = {
solidity: "0.8.20",
  networks: {
    apothem: {
      url: process.env.XDC_TESTNET_URL,
      accounts: [process.env.PRIVATE_KEY]
    }
  },
  etherscan: {
    apiKey: {
      apothem: "abc",
      devnet: "abc",
      xdc: "abc",
    },
    customChains: [
      {
        network: "apothem",
        chainId: 51,
        urls: {
          apiURL: "https://abapi.blocksscan.io/api",
          browserURL: "https://apothembeta.blocksscan.io/",
        },
      },
      {
        network: "devnet",
        chainId: 551,
        urls: {
          apiURL: "https://devnetapi.blocksscan.io/api",
          browserURL: "https://devnet.blocksscan.io/",
        },
      },
      {
        network: "xdc",
        chainId: 50,
        urls: {
          apiURL: "https://bapi.blocksscan.io/api",
          browserURL: "https://beta.blocksscan.io/",
        },
      },
    ],
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 7: Installing Dependencies&lt;/strong&gt;&lt;br&gt;
Install the necessary dependencies by running the following commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install dotenv
npm install --save-dev @nomiclabs/hardhat-ethers --force
npm install --save-dev @nomiclabs/hardhat-etherscan --force
npm install --force @openzeppelin/contracts
npm install --save-dev ethers@^5.7.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 8: DogeCoin Deploy Script&lt;/strong&gt;&lt;br&gt;
Create a deploy script test/deploy.js and add the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { ethers } = require("hardhat");

async function main() {
  const DogeCoin = await ethers.getContractFactory("DogeCoin");
  const dogeCoin = await DogeCoin.deploy(1000000); // Initial supply: 1,000,000 tokens

  await dogeCoin.deployed();

  console.log("DogeCoin deployed to:", dogeCoin.address);
  console.log("DogeCoin deployed to HASH:", dogeCoin.deployTransaction.hash);
}

main().then(() =&amp;gt; process.exit(0)).catch(error =&amp;gt; {
  console.error(error);
  process.exit(1);
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 9: Compiling Smart Contracts&lt;/strong&gt;&lt;br&gt;
Compile your smart contracts for deployment and testing using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat compile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once command run successfully, you’ll see output similar to the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/bznm6JhoSd_oF58a8rELbOOMUOw5ULeud3S-EiPzcn8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzhoZmF3bXpyd2M3/aHh4bHR5NzZlLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/bznm6JhoSd_oF58a8rELbOOMUOw5ULeud3S-EiPzcn8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzhoZmF3bXpyd2M3/aHh4bHR5NzZlLnBu/Zw" alt="Image description" width="739" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the initial compilation, Hardhat will try to do the least amount of work possible the next time you compile. For example, if you didn't change any files since the last compilation, nothing will be compiled:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/prdkLJrZ2HIvgCqQ_RXaOLswvLicSAZLS3TqwjF6yIE/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VhMnJwYjhkaTF6/a3R6Znl2emVlLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/prdkLJrZ2HIvgCqQ_RXaOLswvLicSAZLS3TqwjF6yIE/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VhMnJwYjhkaTF6/a3R6Znl2emVlLnBu/Zw" alt="Image description" width="692" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To force a compilation you can use the --force argument, or run &lt;code&gt;npx hardhat clean&lt;/code&gt; to clear the cache and delete the artifacts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Deploying Smart Contracts&lt;/strong&gt;&lt;br&gt;
Deploy your compiled smart contract by running the deploy script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat run test/deploy.js --network apothem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After running the command, you should receive output similar to the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/Z9slRlSLa36CBZan5tXOrf_-TXxK6vfMYlogu6CUzLU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2s5cmF1b3dmdWJr/d3Brc2lzdGhqLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/Z9slRlSLa36CBZan5tXOrf_-TXxK6vfMYlogu6CUzLU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2s5cmF1b3dmdWJr/d3Brc2lzdGhqLnBu/Zw" alt="Image description" width="880" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After deploying the contract, you will receive a transaction hash. To verify the contract deployment, you can check the &lt;a href="https://apothembeta.blocksscan.io/"&gt;BlocksScan&lt;/a&gt; explorer using this transaction hash.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10: Verifying Smart Contracts&lt;/strong&gt;&lt;br&gt;
Verify your deployed smart contract by following these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open and review the deploy.js file located inside the test folder.&lt;/li&gt;
&lt;li&gt;Identify the parameter passed to the constructor of the DogeCoin contract during deployment.&lt;/li&gt;
&lt;li&gt;Include this parameter in the verification command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat verify --network apothem DEPLOYED_CONTRACT_ADDRESS  1000000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;DEPLOYED_CONTRACT_ADDRESS&lt;/code&gt; with your contract address.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/BbpYfBeHHySsCMK6GJ4pIrQLoIDUIlhO31C60wDJEXg/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L29tdHR3MmI5cnp4/cTFvZm5idW91LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/BbpYfBeHHySsCMK6GJ4pIrQLoIDUIlhO31C60wDJEXg/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L29tdHR3MmI5cnp4/cTFvZm5idW91LnBu/Zw" alt="Image description" width="880" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/as-JC3kbD_2AykR_omWVrbKxgFP4-WuDTDJnvnkqvJ4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2dwb3Y3emZrN2I2/cXFnamx0ejg1LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/as-JC3kbD_2AykR_omWVrbKxgFP4-WuDTDJnvnkqvJ4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2dwb3Y3emZrN2I2/cXFnamx0ejg1LnBu/Zw" alt="Image description" width="880" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! By successfully deploying your smart contracts on the XDC Network using Hardhat, you've achieved a significant milestone in your blockchain development journey. This article has provided you with the necessary skills to navigate Hardhat's robust toolset and harness the capabilities of the XDC Network efficiently. As you continue to explore decentralized applications (DApps) and smart contract development, remember to remain curious, continuously learn, and embrace the endless possibilities that this groundbreaking technology presents. If you have any questions or need assistance, don't hesitate to leave a comment below or connect with us on social media by tagging XDC Network. Happy coding!&lt;/p&gt;

&lt;p&gt;Follow us to know more updates:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blocksscan.io/"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/blocksscan"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@blocksscanio"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>xdc</category>
      <category>blocksscan</category>
      <category>xdcnetwork</category>
    </item>
    <item>
      <title>[Informative] How to Deploy and Verify Smart Contracts on XDC Network using HardHat</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Wed, 27 Mar 2024 18:21:10 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/how-to-deploy-and-verify-smart-contracts-on-xdc-network-using-hardhat-2jgi</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/how-to-deploy-and-verify-smart-contracts-on-xdc-network-using-hardhat-2jgi</guid>
      <description>&lt;p&gt;Navigating the landscape of smart contract deployment and verification on the &lt;strong&gt;XDC Mainnet/ Apothem Testnet/ Devnet&lt;/strong&gt; via Hardhat empowers developers with a robust and streamlined approach to safeguard the integrity and effectiveness of their decentralized applications (DApps). This inclusive manual serves as your compass, guiding you through every step from environment configuration to the seamless deployment and verification of smart contracts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;br&gt;
Before diving into the deployment and verification process, ensure you have the following prerequisites in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Git Installed:&lt;/strong&gt;&lt;br&gt;
You need Git installed on your system to clone the repository containing necessary files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Node.js and npm:&lt;/strong&gt;&lt;br&gt;
Ensure you have Node.js and npm (Node Package Manager) installed on your machine to execute commands and manage dependencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hardhat Installed:&lt;/strong&gt;&lt;br&gt;
Install Hardhat globally on your system using npm to utilize its powerful features for smart contract development and deployment.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Let’s start! We will use the “XDC Apothem network” to deploy a smart contract here.
&lt;/h4&gt;

&lt;p&gt;To get some test funds, visit &lt;a href="https://faucet.blocksscan.io/"&gt;XDC-BlocksScan Faucet&lt;/a&gt;, Enter your XDC wallet address and click the “Request XDC” button.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Clone the Repository&lt;/strong&gt;&lt;br&gt;
Start by cloning the repository that holds the important files needed to deploy and check smart contracts on the Apothem testnet or Devnet.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/0xmetaschool/Mint-Elon-Must-NFT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2: Create .env File&lt;/strong&gt;&lt;br&gt;
After cloning the repository, create a .env file and set the following environment variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PRIVATE_KEY=your_private_key
API_URL_KEY=https://apothem.xdcrpc.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace PRIVATE_KEY with your private key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Install dependencies&lt;/strong&gt;&lt;br&gt;
To install dependencies,&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;After installing you will be able to see the &lt;code&gt;node_modules&lt;/code&gt; folder.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/3NkAwSVUyVT79YR0c5Un1CYOMjP7PMxA7MoSAUNcJPU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2lnYXF4d2FxeDdp/amt0Y2htODEwLmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/3NkAwSVUyVT79YR0c5Un1CYOMjP7PMxA7MoSAUNcJPU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2lnYXF4d2FxeDdp/amt0Y2htODEwLmpw/ZWc" alt="Image description" width="300" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Add XDC Network in your hardhat.config.js file&lt;/strong&gt;&lt;br&gt;
Copy the below code and paste it in your &lt;code&gt;hardhat.config.js&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;  etherscan: {
    apiKey: {
      apothem: "abc",
      devnet: "abc",
      xdc: "abc",
    },
    customChains: [
      {
        network: "apothem",
        chainId: 51,
        urls: {
          apiURL: "https://abapi.blocksscan.io/api",
          browserURL: "https://apothembeta.blocksscan.io/",
        },
      },
      {
        network: "devnet",
        chainId: 551,
        urls: {
          apiURL: "https://devnetapi.blocksscan.io/api",
          browserURL: "https://devnet.blocksscan.io/",
        },
      },
      {
        network: "xdc",
        chainId: 50,
        urls: {
          apiURL: "https://bapi.blocksscan.io/api",
          browserURL: "https://beta.blocksscan.io/",
        },
      },
    ],
  },

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

&lt;/div&gt;



&lt;p&gt;After you've added it, your file will appear 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;/**
 * @type import('hardhat/config').HardhatUserConfig
 */
 require('dotenv').config(); //all the key value pairs are being made available due to this lib
 require('@nomiclabs/hardhat-ethers');

 const {API_URL_KEY, PRIVATE_KEY} = process.env; //environment variables are being loaded here.

 module.exports = {
   solidity: "0.8.1",
   defaultNetwork: 'apothem',
   networks: {
     hardhat: {},
     apothem: {
         url: API_URL_KEY,
         accounts: [`0x${PRIVATE_KEY}`]
     }
   },
   etherscan: {
    apiKey: {
      apothem: "abc",
      devnet: "abc",
      xdc: "abc",
    },
    customChains: [
      {
        network: "apothem",
        chainId: 51,
        urls: {
          apiURL: "https://abapi.blocksscan.io/api",
          browserURL: "https://apothembeta.blocksscan.io/",
        },
      },
      {
        network: "devnet",
        chainId: 551,
        urls: {
          apiURL: "https://devnetapi.blocksscan.io/api",
          browserURL: "https://devnet.blocksscan.io/",
        },
      },
      {
        network: "xdc",
        chainId: 50,
        urls: {
          apiURL: "https://bapi.blocksscan.io/api",
          browserURL: "https://beta.blocksscan.io/",
        },
      },
    ],
  },
 };
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 5: Starting a Local Ethereum Node&lt;/strong&gt;&lt;br&gt;
To start a local Ethereum node for development and testing purposes, you can use the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat node
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.xdc.dev/images/pGKxWHeTw6YIz6q-uQi7Z3wnLJbfiSUItz1a9sd-kQs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2Vyc2FlZjY3cmFh/eXpnNnBtNWN3Lmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/pGKxWHeTw6YIz6q-uQi7Z3wnLJbfiSUItz1a9sd-kQs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2Vyc2FlZjY3cmFh/eXpnNnBtNWN3Lmpw/ZWc" alt="Image description" width="880" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Compile your smart contracts&lt;/strong&gt;&lt;br&gt;
To compile your smart contracts for deployment and testing, run the below command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat compile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command ensures that your Solidity code is translated into bytecode.Once command run successfully, you’ll see output similar to the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/CYnRMMRmI7mD02PBad14jXYCHgPILlpqHsvHjS9HRmo/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2g5cGg2NWJ2bWFu/YXhkc2hyMHBxLmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/CYnRMMRmI7mD02PBad14jXYCHgPILlpqHsvHjS9HRmo/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2g5cGg2NWJ2bWFu/YXhkc2hyMHBxLmpw/ZWc" alt="Image description" width="880" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Cleaning the Build Artifacts&lt;/strong&gt;&lt;br&gt;
If you want to clean the build artifacts generated during the compilation process, you can use the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat clean
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command removes all the build artifacts, including compiled contracts and other temporary files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Running Tests&lt;/strong&gt;&lt;br&gt;
Hardhat provides a testing framework that allows you to write and run tests for your smart contracts. You can run tests using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat test
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command executes all the tests defined in the test/ directory and provides detailed output regarding the test results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Deploy your compiled smart contract&lt;/strong&gt;&lt;br&gt;
Once compiled successfully, run the below command for deploying&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node scripts/sample-script.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.xdc.dev/images/y2n7dKRcnUbYDugy36uwSKVqKN5E_yOfTsHpEPUSESg/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3JjczFsbDdjajR5/eWYwcHQ4cjhrLmpw/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/y2n7dKRcnUbYDugy36uwSKVqKN5E_yOfTsHpEPUSESg/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3JjczFsbDdjajR5/eWYwcHQ4cjhrLmpw/Zw" alt="Image description" width="880" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After deployment, you'll receive a transaction hash. Verify the contract deployment by checking the &lt;a href="https://apothembeta.blocksscan.io/"&gt;BlocksScan &lt;/a&gt;explorer using this hash.&lt;/p&gt;

&lt;p&gt;Make sure to save that contract address for later use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10: Verify Smart Contracts&lt;/strong&gt;&lt;br&gt;
To verify your deployed smart contract, follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install the package named &lt;code&gt;@nomiclabs/hardhat-etherscan&lt;/code&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install --save-dev @nomiclabs/hardhat-etherscan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Now required that dependencies  in your hardhat.config.js file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/5Y2uCJFbkwvGL8bC7TJHvrhkbFXJzywPvzo8y47V9ng/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzlvYTI5NzNvYXhx/cmMwY3V2NDlmLmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/5Y2uCJFbkwvGL8bC7TJHvrhkbFXJzywPvzo8y47V9ng/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzlvYTI5NzNvYXhx/cmMwY3V2NDlmLmpw/ZWc" alt="Image description" width="880" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open and review the &lt;code&gt;sample-script.js&lt;/code&gt; file located inside the scripts folder.Locate the &lt;code&gt;main&lt;/code&gt; function in the script and identify the parameter passed to the constructor of the Greeter contract during deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/rhg0hlShvlu11Hiry5x5KBWt2HVQpYFcJwW6oPw0exI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzZtaTlpODcxb3lh/Zm5qd29qemgwLmpw/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/rhg0hlShvlu11Hiry5x5KBWt2HVQpYFcJwW6oPw0exI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzZtaTlpODcxb3lh/Zm5qd29qemgwLmpw/Zw" alt="Image description" width="864" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;During verification, include this parameter in the verification command.Your command should resemble the example below.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat verify --network apothem DEPLOYED_CONTRACT_ADDRESS 'Hello, Class!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;DEPLOYED_CONTRACT_ADDRESS&lt;/code&gt; with the address you copied earlier&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/k6S4_TcrVKClFFamf7Iu-2oH0OmvrmXYZm5rYXdtiuM/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3Bhb2E1ZTdpbTdi/dDltN2R2bzB5Lmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/k6S4_TcrVKClFFamf7Iu-2oH0OmvrmXYZm5rYXdtiuM/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3Bhb2E1ZTdpbTdi/dDltN2R2bzB5Lmpw/ZWc" alt="Image description" width="880" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/1KsDqT9G5dKv9CdpuKgAfdI8hpp1b2WkFvVJ1m4cQpM/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3oxN2NhMnh0bG1q/aGNkZWg5eHBuLmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/1KsDqT9G5dKv9CdpuKgAfdI8hpp1b2WkFvVJ1m4cQpM/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3oxN2NhMnh0bG1q/aGNkZWg5eHBuLmpw/ZWc" alt="Image description" width="880" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! By successfully deploying your smart contracts on the XDC Network using Hardhat, you've taken a significant step forward in your blockchain development journey. This article has equipped you with the essential skills to navigate Hardhat's powerful toolset and leverage the capabilities of the XDC Network effectively. As you delve deeper into the world of decentralized applications (DApps) and smart contract development, remember to stay curious, keep learning, and explore the vast array of possibilities that this innovative technology offers. Should you have any questions or need further assistance, feel free to drop a comment below or reach out on social media, tagging XDC Network. Happy coding!&lt;/p&gt;

&lt;p&gt;Follow us to know more updates:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blocksscan.io/"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/blocksscan"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@blocksscanio"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Step-by-Step Guide: How to Add/View NFTs in MetaMask Using Contract address</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Fri, 23 Jun 2023 15:29:58 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/a-step-by-step-guide-how-to-addview-nfts-in-metamask-using-contract-address-1elf</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/a-step-by-step-guide-how-to-addview-nfts-in-metamask-using-contract-address-1elf</guid>
      <description>&lt;p&gt;MetaMask, a popular cryptocurrency wallet and decentralized application (dApp) browser extension, has gained significant traction in the world of non-fungible tokens (NFTs). NFTs, unique digital assets stored on blockchain networks, have become a vibrant part of the digital art, collectibles, and gaming industries. If you are an NFT enthusiast and want to explore or manage your NFTs within MetaMask using contract codes, this guide will walk you through the process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To deploy and mint your first NFT refer, &lt;a href="https://www.xdc.dev/jay_kulkarni_842b41d81b23/how-to-deploy-xrc721nft-contract-and-mint-your-first-nft-using-remix-4fbc"&gt;How to Deploy XRC721/NFT Contract and mint your First NFT using Remix&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Install MetaMask&lt;/strong&gt;&lt;br&gt;
If you don’t have MetaMask, start by installing the MetaMask extension and follow the installation instructions displayed on the screen to set up the MetaMask wallet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Access MetaMask Wallet&lt;/strong&gt;&lt;br&gt;
After installation, access the wallet by clicking the MetaMask extension icon in the toolbar of your browser. If you are using MetaMask for the first time, you must &lt;a href="https://medium.com/publicaio/how-to-create-a-metamask-account-e6d0ef156176"&gt;create a new wallet&lt;/a&gt; by following the instructions and storing your seed phrase safely.&lt;/p&gt;

&lt;p&gt;Step 3: Connect to a Supported Blockchain Network&lt;br&gt;
MetaMask supports various blockchain networks, including XDCNetwork, Ethereum, Binance Smart Chain, and others. If you want to &lt;a href="https://satochip.medium.com/metamask-how-to-add-custom-network-binance-smart-chain-polygon-avalanche-43c1c25afd88"&gt;add any other networks&lt;/a&gt; you can go through this. Ensure that you are connected to the Correct network where the NFT contract you want to add/view resides.&lt;/p&gt;

&lt;p&gt;To add XDC Network manually, refer below details:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XDC Apothem Network&lt;/strong&gt;&lt;br&gt;
RPC — &lt;a href="https://rpc.apothem.network"&gt;https://rpc.apothem.network&lt;/a&gt;&lt;br&gt;
Chain Id — 51&lt;br&gt;
URL — &lt;a href="https://apothem.blocksscan.io"&gt;https://apothem.blocksscan.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XDC Mainnet&lt;/strong&gt;&lt;br&gt;
RPC — &lt;a href="https://eRPC.BlocksScan.io"&gt;https://eRPC.BlocksScan.io&lt;/a&gt;&lt;br&gt;
Chain Id — 50&lt;br&gt;
URL — &lt;a href="https://xdc.blocksscan.io"&gt;https://xdc.blocksscan.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also switch between networks by clicking on the network name at the top of the MetaMask wallet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/HctDWJecLEvRnS3qzU4n0uCxqOA4Bh4yk7icGYVsHYI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzdrY2d5b21lOGQw/cHdvcnc4eWVvLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/HctDWJecLEvRnS3qzU4n0uCxqOA4Bh4yk7icGYVsHYI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzdrY2d5b21lOGQw/cHdvcnc4eWVvLnBu/Zw" alt="Image description" width="357" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Add the NFT Contract&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To add an NFT contract to MetaMask, you’ll need the contract address. If you don’t have it, refer to this link to create our contract address. Once you have the contract address, follow these steps:&lt;/p&gt;

&lt;p&gt;Click on the &lt;code&gt;NFT’s&lt;/code&gt; tab in the MetaMask wallet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/k0KeEeiXDjWUpytyyTt4PM5UTiYOjtHh2GCRehd4-Ho/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2szeHJsOTFkd3Zz/czRzdGxnaXBmLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/k0KeEeiXDjWUpytyyTt4PM5UTiYOjtHh2GCRehd4-Ho/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2szeHJsOTFkd3Zz/czRzdGxnaXBmLnBu/Zw" alt="Image description" width="353" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on the &lt;code&gt;Import NFTs&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/4QJH53YINW8s2yGQs9h8FsCETLaWCvgYnPzs4M5HcUQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3IwY2xhcThpcjI5/YXN0enVxZjFjLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/4QJH53YINW8s2yGQs9h8FsCETLaWCvgYnPzs4M5HcUQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3IwY2xhcThpcjI5/YXN0enVxZjFjLnBu/Zw" alt="Image description" width="356" height="596"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter the NFT &lt;code&gt;Contract address&lt;/code&gt; and &lt;code&gt;token Id&lt;/code&gt; in the provided field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/kMwhuLKRUhwwRyyy4QDwSyRnJrTn-VpURz3zoorNLIk/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L215bDZubzRjZnRh/Ym1leHR0OWUwLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/kMwhuLKRUhwwRyyy4QDwSyRnJrTn-VpURz3zoorNLIk/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L215bDZubzRjZnRh/Ym1leHR0OWUwLnBu/Zw" alt="Image description" width="356" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, Click on &lt;code&gt;Add&lt;/code&gt; button to complete the process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: View your NFTs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/x1qKl_GnuK9jOwiV0fC1q2HC56XmgGvi9ir76iaUMgg/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3ViZDVlc2wzYTJz/ZGh4c2pjam01LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/x1qKl_GnuK9jOwiV0fC1q2HC56XmgGvi9ir76iaUMgg/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3ViZDVlc2wzYTJz/ZGh4c2pjam01LnBu/Zw" alt="Image description" width="355" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Congratulations!&lt;/strong&gt; You’ve successfully added your NFT in your metamask wallet. Well done!&lt;/p&gt;

</description>
      <category>xdcnetwork</category>
      <category>metamask</category>
      <category>blockchain</category>
      <category>nft</category>
    </item>
    <item>
      <title>How to Deploy XRC721/NFT Contract and mint your First NFT using Remix</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Sat, 17 Jun 2023 10:48:13 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/how-to-deploy-xrc721nft-contract-and-mint-your-first-nft-using-remix-4fbc</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/how-to-deploy-xrc721nft-contract-and-mint-your-first-nft-using-remix-4fbc</guid>
      <description>&lt;p&gt;In this tutorial, we will explore the final step in the NFT tutorial series, which focuses on viewing your newly minted NFT on a virtual wallet. Let’s demonstrate the process using &lt;a href="https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn"&gt;MetaMask &lt;/a&gt;and the &lt;a href="https://apothem.blocksscan.io/"&gt;XDC Apothem network&lt;/a&gt;. Additionally, we will provide some insights about the XDC network’s relation to NFTs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding XDC and NFTs:&lt;/strong&gt;&lt;br&gt;
The XDC Network — &lt;a href="https://xinfin.org/"&gt;XinFin Hybrid Blockchain&lt;/a&gt;, offers a scalable and efficient infrastructure for various decentralized applications, including non-fungible tokens (NFTs). With its high transaction throughput and low fees, the XinFin - XDC Network. Refer the articles about XDC Network: &lt;a href="https://docs.xdc.org/xdc-tools/"&gt;https://docs.xdc.org/xdc-tools/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Now, Let’s start the actual setup:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Deploy an NFT contract with XinFin Remix&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is XinFin Remix?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://remix.xinfin.network/"&gt;XinFin Remix&lt;/a&gt; is an integrated development environment (IDE) specifically designed for developing and testing smart contracts on the XinFin blockchain platform. It provides a web-based interface where &lt;strong&gt;developers can write, compile, and deploy their Solidity smart contracts.&lt;/strong&gt; It is a powerful tool that simplifies the smart contract development process, making it easier for developers to build and deploy decentralized applications on the &lt;a href="https://docs.xdc.org/"&gt;XinFin network&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Let’s start by creating a MyNFT.sol file. To create a new file, click on the “Create new file” icon positioned at the top Left of the main screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/J-Mn8edFeski_dmIc70u8C6TnS0Lyei9tGMDY_TQ_rQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L29hdDQ2c2o5cTNm/Y3Z2NHBwNmxyLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/J-Mn8edFeski_dmIc70u8C6TnS0Lyei9tGMDY_TQ_rQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L29hdDQ2c2o5cTNm/Y3Z2NHBwNmxyLnBu/Zw" alt="Image description" width="365" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select a proper compiler version, language as Solidity and click on the "Compile MyNFT.sol" button.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/l02f2w27xZoHKQuiBgZUPeSJhoAsLDu_mxb-LEEJfaQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2hsOXJqd3Rhemhv/MGJ5YjMxdzQyLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/l02f2w27xZoHKQuiBgZUPeSJhoAsLDu_mxb-LEEJfaQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2hsOXJqd3Rhemhv/MGJ5YjMxdzQyLnBu/Zw" alt="Image description" width="365" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, we have provided our NFT smart contract code. To add this code to your own project, simply copy and paste the contents below into your &lt;code&gt;MyNFT.sol&lt;/code&gt; file. This code serves as the foundation for creating and managing your own non-fungible tokens (NFTs).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";

contract MyNFT is ERC721URIStorage, Ownable {
    constructor() ERC721("MyNFT", "NFT") {}

    function mint(
        address _to,
        uint256 _tokenId,
        string calldata _uri
    ) external onlyOwner {
       _mint(_to, _tokenId);
       _setTokenURI(_tokenId, _uri);

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

&lt;/div&gt;



&lt;p&gt;Once you have written your contract code, click on the “Compile icon” button at the top of the Remix interface. This will show you “compile button“ By clicking on this button, you will initiate the compilation process for your contract. It will examine your code for syntax errors or warnings that may be present, allowing you to identify and address them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/vMJjpZNLJG-tal_96xPPiUVDb61op81MIzC4Q7f15p0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VkczFrY3hzcHM1/MGo3ODd2YXY3LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/vMJjpZNLJG-tal_96xPPiUVDb61op81MIzC4Q7f15p0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VkczFrY3hzcHM1/MGo3ODd2YXY3LnBu/Zw" alt="Image description" width="369" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/6_bULhlbR-FO0Ou3WkEotAQj4PYGxibdhfcfdaOUNx8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2NsbGx5ZDBieW8x/MHh4cnN0MmpkLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/6_bULhlbR-FO0Ou3WkEotAQj4PYGxibdhfcfdaOUNx8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2NsbGx5ZDBieW8x/MHh4cnN0MmpkLnBu/Zw" alt="Image description" width="365" height="549"&gt;&lt;/a&gt;&lt;br&gt;
After a successful compilation, navigate to the “Deploy &amp;amp; Run Transactions” screen. &lt;/p&gt;

&lt;p&gt;Now, select &lt;code&gt;Injected Web3&lt;/code&gt; as the environment and make sure your Metamask wallet is unlocked and connected to the appropriate Network and address with the Remix.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/HmZmyHyj6UK26coHkI3TvCot4tfYV-gXl5AyiPt2TqM/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L216anplaTQwZnVq/czl5MHJ3OTBiLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/HmZmyHyj6UK26coHkI3TvCot4tfYV-gXl5AyiPt2TqM/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L216anplaTQwZnVq/czl5MHJ3OTBiLnBu/Zw" alt="Image description" width="400" height="730"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make sure your MetaMask wallet is unlocked and connected to the XinFin Apothem network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/vEDZfflKrLNClwFd4tOqBtqE3gIdbi--c7GunbwDiCA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzRuNm9maXh5ZG1t/bnVlZzhueDhmLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/vEDZfflKrLNClwFd4tOqBtqE3gIdbi--c7GunbwDiCA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzRuNm9maXh5ZG1t/bnVlZzhueDhmLnBu/Zw" alt="Image description" width="400" height="676"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, click on the "Deploy" button to deploy your contract to the XDC Apothem network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/HX5rB4M-crPi7uRux8FCUUc5ojdre0JaB3NHR4D1k8U/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/Lzc2YXN1aXIxZmE0/aXhxMGxhYzZ2LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/HX5rB4M-crPi7uRux8FCUUc5ojdre0JaB3NHR4D1k8U/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/Lzc2YXN1aXIxZmE0/aXhxMGxhYzZ2LnBu/Zw" alt="Image description" width="400" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the deployment is successful, Remix will provide you with the transaction hash and the deployed contract address. These details allow you to interact with your contract on the XDC Apothem network. Additionally, if you want to explore and monitor your contract's activity, you can easily track it on the &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fapothem.blocksscan.io%2F"&gt;BlocksScan Explorer&lt;/a&gt;. Simply enter your contract address in the explorer's search bar, and you'll gain access to a comprehensive view of your contract's transactions and other relevant information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/XheOaPLC-DL7D56_WkaW7kZAbbS6ptJSDqzmPcmF1F8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2ZkMXQ0cnB0dXho/Nzg5MW5taDc4LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/XheOaPLC-DL7D56_WkaW7kZAbbS6ptJSDqzmPcmF1F8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2ZkMXQ0cnB0dXho/Nzg5MW5taDc4LnBu/Zw" alt="Image description" width="880" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The "From address" will be a "Contract Creation" address and the "To address" will be a "Contract address". By clicking on the Contract address, you will be able to see the deployed contract details(Token details).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/kv74i7T9Ndu400OpCtlNaXJwCAGfAhciMZiVqT0aiMU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzQzeXp1dG04ZzI1/Ymx5bGxlazhyLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/kv74i7T9Ndu400OpCtlNaXJwCAGfAhciMZiVqT0aiMU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzQzeXp1dG04ZzI1/Ymx5bGxlazhyLnBu/Zw" alt="Image description" width="880" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! You've successfully deployed your NFT smart contract to the XDC Apothem! Well done!&lt;/p&gt;

&lt;h2&gt;
  
  
  Now, Add Your NFT's in NFT.STORAGE
&lt;/h2&gt;

&lt;p&gt;NFT.Storage is a service that specializes in storing the metadata of Non-Fungible Tokens (NFTs) in a decentralized manner. It provides a convenient solution for developers and creators to securely store and retrieve the metadata associated with their NFTs. By leveraging decentralized storage systems like IPFS (InterPlanetary File System),One of the powerful features of NFTs is that they can reference off-chain data, saving you the cost of storing your images, videos, and other large NFT data on-chain. An example of this is with the ERC-1155 standard, which defines places where you should reference data off-chain via URIs.&lt;/p&gt;

&lt;p&gt;If you're unfamiliar with the process of adding NFTs to NFS.Storage, you can refer to this article on &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fnft.storage%2Fdocs%2Fhow-to%2Fnftup%2F"&gt;How to Upload NFTs to NFT&lt;/a&gt;.Storage for step-by-step instructions.&lt;/p&gt;

&lt;p&gt;Once you successfully upload the images and metadata file ,you'll see your main screen similar to the following, Keep your metadata "VIEW URL" safe. We'll need this in a future step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/_90FlzyIMvdm5I-pdkOR60CUtBgNOg-nf7nz3F3rPaA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L28yaHdkaGIzdnl1/cGxrNHY4YjhzLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/_90FlzyIMvdm5I-pdkOR60CUtBgNOg-nf7nz3F3rPaA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L28yaHdkaGIzdnl1/cGxrNHY4YjhzLnBu/Zw" alt="Image description" width="880" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's interact with Contract to Mint NFT:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To interact with a contract, copy the Contact address, visit XinFin Remix, enter the contract address into the "At address" input field, and then click on the "At address" button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/oPrYYl5bFJYM2RtPUAhYddTeXco4UVQFUHFfM3YTUsI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VvaW55Y2MzMGhj/YjlmYTZhZHJlLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/oPrYYl5bFJYM2RtPUAhYddTeXco4UVQFUHFfM3YTUsI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2VvaW55Y2MzMGhj/YjlmYTZhZHJlLnBu/Zw" alt="Image description" width="367" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you Clicked, you will observe that your Contract is now visible in XinFin Remix, indicating its successful deployment.To access the functions, open the dropdown and access the functions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/h6BxOO_quBpos9E2ydzNSzbwxo9gokJF6qL9nXhnptI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2lib3Rta3V1eWg4/MzJ0MGUxbWVvLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/h6BxOO_quBpos9E2ydzNSzbwxo9gokJF6qL9nXhnptI/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2lib3Rta3V1eWg4/MzJ0MGUxbWVvLnBu/Zw" alt="Image description" width="365" height="653"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To mint NFT, access "mint" function, enter "_to" address, "_tokenId" &amp;amp; "_uri" and click on the transact button to complete the minting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/6-hNy6KIqJdOTF5sh8vHGjP832179ODyTKFg5sFXFxk/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3RzZ3gxanFkNWM2/Y2Nya2J0M2FqLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/6-hNy6KIqJdOTF5sh8vHGjP832179ODyTKFg5sFXFxk/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3RzZ3gxanFkNWM2/Y2Nya2J0M2FqLnBu/Zw" alt="Image description" width="361" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Great! You've successfully deployed your NFT in your smart contract.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check your NFT in XDC - BlocksScan Explorer
&lt;/h2&gt;

&lt;p&gt;Access the &lt;a href="https://xdc.blocksscan.io/"&gt;XDC - BlocksScan explorer&lt;/a&gt;. After entering your contract address in the search bar, you will be able to view all the transactions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/yb_P5FaHAOw6PW_33RM-N2GwljCyX7-MhRtQ0zNtO3M/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzRvdXFkMndqajM5/ZWZicHFhbnkwLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/yb_P5FaHAOw6PW_33RM-N2GwljCyX7-MhRtQ0zNtO3M/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzRvdXFkMndqajM5/ZWZicHFhbnkwLnBu/Zw" alt="Image description" width="880" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/XDFsg_Cmbm_fte8QHjW41RBJdaihq7zu1nDTOxF2GuA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzFreWs2bjF4dGt0/ZDR3eG11dTAxLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/XDFsg_Cmbm_fte8QHjW41RBJdaihq7zu1nDTOxF2GuA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzFreWs2bjF4dGt0/ZDR3eG11dTAxLnBu/Zw" alt="Image description" width="880" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By clicking on the "View NFT" button, you can also preview your NFT image.&lt;/p&gt;

&lt;p&gt;Congratulations on your remarkable achievement! Successfully deploying the NFT in the contract is truly a momentous milestone.&lt;/p&gt;

</description>
      <category>xdcnetwork</category>
      <category>blocksscan</category>
      <category>nft</category>
      <category>xrc721</category>
    </item>
    <item>
      <title>Deploy an XRC721 Contract on XDC Apothem Network using Truffle</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Fri, 09 Jun 2023 18:13:56 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/deploy-an-xrc721-contract-on-xdc-apothem-network-using-truffle-3hd6</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/deploy-an-xrc721-contract-on-xdc-apothem-network-using-truffle-3hd6</guid>
      <description>&lt;p&gt;The XDC network is gaining popularity as a fast, scalable, and cost-effective blockchain platform. With its Apothem network, developers can build decentralized applications (dApps) that leverage the benefits of XDC’s ecosystem. In this article, we will guide you through the process of deploying an XRC721 contract on the XDC Apothem network using Truffle, a popular development framework. By the end of this tutorial, you will be able to create and deploy your own non-fungible tokens (NFTs) on XDC.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is NFT?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NFT stands for Non-Fungible Token. It is a unique digital asset that represents ownership or proof of authenticity for a specific item or piece of content, such as collectibles, or virtual real estate, on a blockchain. Unlike cryptocurrencies like Bitcoin or Ethereum, NFTs are indivisible and cannot be exchanged on a one-to-one basis due to their unique properties. NFTs have gained popularity for their ability to establish verifiable ownership and provide new opportunities for creators and collectors in the digital realm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before we begin, ensure that you have the following prerequisites:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In order to create a Truffle project, we need NPM and Node on our local machine. You can &lt;a href="https://nodejs.org/en/download"&gt;download both for free.&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ node -v
$ npm -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Wallet and Testnet XDC:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To successfully transfer contacts onto Apothem, it is essential to authorize transactions and cover the associated gas expenses. To accomplish this, it is imperative to possess a cryptocurrency wallet capable of accommodating the gas currency.&lt;/p&gt;

&lt;p&gt;One of the highly acclaimed options for a self-custodial wallet in the current market is BlocksPay. Renowned for its popularity, BlocksPay is not only free but also offers a secure and user-friendly experience. Accessible as a browser extension, you can conveniently download BlocksPay to avail its benefits.&lt;/p&gt;

&lt;p&gt;For users who are new to BlocksPay, the wallet setup process includes a series of guided steps to ensure a seamless experience. As you progress, Blockspay will offer the opportunity to enhance the security of your wallet. It is crucial to take advantage of this option and diligently save your wallet’s secret recovery phrase. This recovery phrase will play a significant role in subsequent steps, so its preservation is essential.&lt;/p&gt;

&lt;p&gt;Once you unlock your wallet, you will see the dashboard screen. On the top center of your BlocksPay window, click on the Network dropdown and select the XDC Apothem network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/VH4qmuKMrzicOMIKBLB_HRaUWaOHAaxjr4xakv_kVsc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3BuZDB3ZmxzNzZq/ZG4zMXRnYXp4LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/VH4qmuKMrzicOMIKBLB_HRaUWaOHAaxjr4xakv_kVsc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3BuZDB3ZmxzNzZq/ZG4zMXRnYXp4LnBu/Zw" alt="Image description" width="454" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/BbFsWCD08s-t2HDqDlsfFFHW0TiayNqDzuZM1z4sVFc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3F5djJsZ212Mzg4/ODJjNGZhZWtxLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/BbFsWCD08s-t2HDqDlsfFFHW0TiayNqDzuZM1z4sVFc/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3F5djJsZ212Mzg4/ODJjNGZhZWtxLnBu/Zw" alt="Image description" width="837" height="1129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you may have already guessed, BlocksPay comes automatically configured with the XDC Apothem testnet. We don’t have to do any additional configuration.&lt;/p&gt;

&lt;p&gt;Upon your initial usage of Apothem, you will notice a balance of 0 XDCT. However, we can rectify this by obtaining a portion of free XDCT from the &lt;a href="https://faucet.blocksscan.io/"&gt;Faucet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Set up the project
&lt;/h2&gt;

&lt;p&gt;Let’s start by setting up a new project directory for our XRC721 contract. Open your terminal and create a new directory for the project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir xdc-apothem-nft

cd xdc-apothem-nft
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once inside the project directory, initialize a new Truffle project with given command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm install -g truffle

$ truffle init

$ npm install dotenv

$ npm install @openzeppelin/contracts @truffle/hdwallet-provider dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create the necessary project structure for us to work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Configure Truffle for XDC Apothem network
&lt;/h2&gt;

&lt;p&gt;To ensure our Truffle project can interact with the XDC Apothem Network, we need to configure it properly. Follow the steps below:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a new file in the project’s root directory named .env.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the following contents to the .env file:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;MNEMONIC=” YOUR METAMASK WALLET RECOVERY PHRASE ”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Within the networks section, add the configuration for the &lt;br&gt;
&lt;code&gt;Apothem network&lt;/code&gt;. Here’s an example configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;javascript
module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 8545,
      network_id: "*"
    },
    apothem: {
      provider: () =&amp;gt; new HDWalletProvider("&amp;lt;your-mnemonic&amp;gt;", "https://apothem.xdcrpc.com/"),
      network_id: 1666700000,
      gasPrice: 1000000000,
      gas: 8000000
    }
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;&amp;lt;your-mnemonic&amp;gt;&lt;/code&gt; with your wallet mnemonic or private key. The gasPrice and gas values can be adjusted according to your needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Write the XRC721 contract
&lt;/h2&gt;

&lt;p&gt;In this step, we will write the XRC721 contract that will define our NFTs. Create a new Solidity file called &lt;code&gt;ApothemNft.sol&lt;/code&gt; in the &lt;code&gt;contracts&lt;/code&gt; directory of your project.&lt;/p&gt;

&lt;p&gt;XDC Network is EVM Compatible, So here in &lt;code&gt;ApothemNft.sol&lt;/code&gt;, we are importing the necessary libraries and defining the ERC721 contract. Here’s a basic example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract ApothemNft is ERC721URIStorage {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;
    string private _metadataUrl;

    constructor() ERC721("Apothem NFT", "ANFT") {

        // Set metadata of the NFT
        _metadataUrl = "ipfs://QmUyZoK21qb8YknXGfDB34RTY8vMqPb6Bsj9U9iLEnyrZR";

        // Mint NFT
        _mintNFT();
    }

    function _mintNFT() private {
        _tokenIds.increment();

        uint256 newItemId = _tokenIds.current();
        _mint(msg.sender, newItemId);
        _setTokenURI(newItemId, _metadataUrl);
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, we import the required ERC721 and Counters libraries from OpenZeppelin. The &lt;code&gt;mintNFT&lt;/code&gt; function allows us to mint new NFTs and assign them to recipients with the provided token URI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Compile and migrate the contract
&lt;/h2&gt;

&lt;p&gt;Now that we have our XRC721 contract ready, we can compile and migrate it to the XDC Apothem network.&lt;/p&gt;

&lt;p&gt;In your terminal, run the following command to compile the contract:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;If the compilation is successful, you’ll see output similar to the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PS C:\Desktop\contract&amp;gt; truffle compile

Compiling your contracts...
===========================
&amp;gt; Compiling @openzeppelin\contracts\interfaces\IERC165.sol
&amp;gt; Compiling @openzeppelin\contracts\interfaces\IERC4906.sol
&amp;gt; Compiling @openzeppelin\contracts\interfaces\IERC721.sol
&amp;gt; Compiling @openzeppelin\contracts\token\ERC721\ERC721.sol
&amp;gt; Compiling @openzeppelin\contracts\token\ERC721\IERC721.sol
&amp;gt; Compiling @openzeppelin\contracts\token\ERC721\IERC721Receiver.sol
&amp;gt; Compiling @openzeppelin\contracts\token\ERC721\extensions\ERC721URIStorage.sol
&amp;gt; Compiling @openzeppelin\contracts\token\ERC721\extensions\IERC721Metadata.sol
&amp;gt; Compiling @openzeppelin\contracts\utils\Address.sol
&amp;gt; Compiling @openzeppelin\contracts\utils\Context.sol
&amp;gt; Compiling @openzeppelin\contracts\utils\Counters.sol
&amp;gt; Compiling @openzeppelin\contracts\utils\Strings.sol
&amp;gt; Compiling @openzeppelin\contracts\utils\introspection\ERC165.sol
&amp;gt; Compiling @openzeppelin\contracts\utils\introspection\IERC165.sol
&amp;gt; Compiling @openzeppelin\contracts\utils\math\Math.sol
&amp;gt; Compiling @openzeppelin\contracts\utils\math\SignedMath.sol
&amp;gt; Compiling .\contracts\Nft.sol
&amp;gt; Artifacts written to C:\Users\kulka\OneDrive\Desktop\contract\build\contracts
&amp;gt; Compiled successfully using:
   - solc: 0.8.19+commit.7dd6d404.Emscripten.clang
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the compilation is successful, you should see a &lt;code&gt;build&lt;/code&gt; directory created within your project, containing the compiled contract artifacts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/WoN9ikeaI4eMouZbdq1YkQQHTWjH2OZzOqziO58P8F0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2l2aXNmeWNwNmZl/dGN6N3lya2hlLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/WoN9ikeaI4eMouZbdq1YkQQHTWjH2OZzOqziO58P8F0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2l2aXNmeWNwNmZl/dGN6N3lya2hlLnBu/Zw" alt="Image description" width="255" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Deploy the Contract to Apothem Testnet
&lt;/h2&gt;

&lt;p&gt;Once we have successfully compiled our contract and set up our Truffle project, the next step is to create a deployment script that will deploy our contract on the Apothem testnet.&lt;/p&gt;

&lt;p&gt;In the migrations folder of your project, create a new file called &lt;code&gt;1_deploy_contract.js&lt;/code&gt; and add the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Get instance of the Apothem NFT contract
const ApothemNftContract = artifacts.require("ApothemNft");

module.exports = function (deployer) {
    // Deploy the contract to Apothem
    deployer.deploy(ApothemNftContract);
}; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, let’s migrate the contract to the XDC Apothem network. Run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;truffle migrate --network apothem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the deployment is successful, you’ll see a response similar to the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Starting migrations...
======================
&amp;gt; Network name:    'apothem'
&amp;gt; Network id:      51
&amp;gt; Block gas limit: 420000000 (0x1908b100)


1_deploy_contract.js
====================

   Deploying 'ApothemNft'
   ----------------------
   &amp;gt; transaction hash:    0x99c5bbb2bd105170f77baa985a6087fe6ff8e7b5ea353c5e647352c6b989dd15
   &amp;gt; Blocks: 2            Seconds: 4
   &amp;gt; contract address:    0xCD6E45a39966585d1B4C35B3cc5e4C278c595BB1
   &amp;gt; block number:        50195140
   &amp;gt; block timestamp:     1686328463
   &amp;gt; account:             0x7447Ac246AEefBFBf56D02c4c466a9f33f51eEc7
   &amp;gt; balance:             14963.999221539875
   &amp;gt; gas used:            2763463 (0x2a2ac7)
   &amp;gt; gas price:           0.25 gwei
   &amp;gt; value sent:          0 ETH
   &amp;gt; total cost:          0.00069086575 ETH

   &amp;gt; Saving artifacts
   -------------------------------------
   &amp;gt; Total cost:       0.00069086575 ETH

Summary
=======
&amp;gt; Total deployments:   1
&amp;gt; Final cost:          0.00069086575 ETH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Truffle will deploy the contract to the XDC Apothem network using the configuration we defined earlier. Once the migration is complete, Truffle will display the deployed contract address on the network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Interact with the deployed contract
&lt;/h2&gt;

&lt;p&gt;Congratulations! You have successfully deployed your XRC721 contract on the XDC Apothem network. Now, access the BlocksScan Apothem Explorer to view the &lt;a href="https://apothem.blocksscan.io/address/0x3f1E576e80Ff741402275706264ffD633565AA3B#transactions"&gt;Deployed Contract&lt;/a&gt;. To view the Contract code, we need to verify the code on &lt;a href="https://apothem.blocksscan.io/contracts/verify"&gt;BlocksScan Apothem Explorer&lt;/a&gt;. Also you can interact with the contract to mint some NFTs.&lt;/p&gt;

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

&lt;p&gt;In this article, we have learned how to deploy an XRC721 contract on the XDC Apothem network using Truffle. You should now have a good understanding of the necessary steps to create and deploy your own NFTs on XDC. Feel free to explore more advanced features and customize your contract to suit your specific requirements. Happy coding!&lt;/p&gt;

&lt;p&gt;For any doubts or questions comment below or post on social media by tagging BlocksScan.&lt;/p&gt;

&lt;p&gt;Follow BlocksScan to know more updates:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blocksscan.io/"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/BlocksScan"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/company/blocksscan"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/blocksscan"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@blocksscanio"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Unlocking the Full Potential: A Step-by-Step Guide to Connecting BlocksPay to the XDC Network</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Wed, 07 Jun 2023 11:30:33 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/unlocking-the-full-potential-a-step-by-step-guide-to-connecting-blockspay-to-the-xdc-network-44hl</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/unlocking-the-full-potential-a-step-by-step-guide-to-connecting-blockspay-to-the-xdc-network-44hl</guid>
      <description>&lt;p&gt;The &lt;a href="https://chrome.google.com/webstore/detail/blockspay-secure-multiple/pogabilnghhbafaheaepaaeopjpleimd"&gt;BlocksPay&lt;/a&gt; is an innovative, decentralized, and user-friendly Web3 browser wallet. With BlocksPay, users can effortlessly manage their digital assets, interact with decentralized applications (DApps), and explore the vast opportunities offered by the XDC Network. The wallet ensures the highest level of security by empowering users with full control over their private keys and keeping custody of their assets. In this article, we will provide you with a step-by-step guide on how to connect BlocksPay to the XDC Network, enabling you to experience the full potential of this exciting blockchain ecosystem.&lt;/p&gt;

&lt;h1&gt;
  
  
  Installation Process
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;To get started, you need to install the BlocksPay extension. Click on the &lt;a href="https://chrome.google.com/webstore/detail/blockspay-secure-multiple/pogabilnghhbafaheaepaaeopjpleimd"&gt;BlocksPay&lt;/a&gt; Once you find the appropriate link, click on the “Add to chrome” button located in the top right corner of the page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/n8NIauVVXOi6N2kiP4SYxttHeaK6lFynAubqLqO3I90/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2hlaHMzaHFqODhi/dTVxbWJkdXh3LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/n8NIauVVXOi6N2kiP4SYxttHeaK6lFynAubqLqO3I90/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2hlaHMzaHFqODhi/dTVxbWJkdXh3LnBu/Zw" alt="Image description" width="880" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Proceed to add the BlocksPay extension to your browser by following the installation instructions specific to your browser. Once the installation is complete, you are ready to proceed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Your BlocksPay Wallet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upon opening the BlocksPay extension for the first time, you will be greeted with a window that provides a brief overview of BlocksPay’s features. Here, you have the option to either create a new wallet or restore an existing one. Let’s start by creating a new wallet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/iNgR-wCfTpIh4CesEWfX3q7ey8op5P622CLlBnEOHnE/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzE0N2s4bHgzaGJq/MWM2djNrdGhzLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/iNgR-wCfTpIh4CesEWfX3q7ey8op5P622CLlBnEOHnE/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzE0N2s4bHgzaGJq/MWM2djNrdGhzLnBu/Zw" alt="Image description" width="416" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on the “Create a new wallet” button, and you will be prompted to set a password. Enter a strong password and click “&lt;strong&gt;Next&lt;/strong&gt;.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/p_GAIfqBS7egmcfqKoTNW4oVH8zm0vg7Zky6M9zx2Ek/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzY1d2U1c3lzOTk2/dmVubTN0OTVjLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/p_GAIfqBS7egmcfqKoTNW4oVH8zm0vg7Zky6M9zx2Ek/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzY1d2U1c3lzOTk2/dmVubTN0OTVjLnBu/Zw" alt="Image description" width="411" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will be asked to confirm your password by entering it again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/AjjlPxA9zI8fyeEZh_zy3wZQoEYNR3iD-WmzSNSbsmw/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L200d3o3ODB2Y2U3/bDRrd2N1YnN1LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/AjjlPxA9zI8fyeEZh_zy3wZQoEYNR3iD-WmzSNSbsmw/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L200d3o3ODB2Y2U3/bDRrd2N1YnN1LnBu/Zw" alt="Image description" width="421" height="544"&gt;&lt;/a&gt;&lt;br&gt;
Once confirmed, it’s time to generate your secret recovery phrase.&lt;/p&gt;

&lt;p&gt;A window will appear displaying your unique secret recovery phrase. Please note that the words shown below are for illustrative purposes only, and your recovery phrase will consist of a different set of completely random words. It is crucial to write down your secret recovery phrase and keep it in a safe place. Never share your recovery phrase with anyone, as it grants full access to your wallet and crypto assets. Once you have securely noted your recovery phrase, click “&lt;strong&gt;Next&lt;/strong&gt;.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/yIuryITBqWTOZCez9SRRj5lyCS905Ejf15fx68S0pa8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3YwbngwMjdzOTE0/Ymd5aWpsZDJ6LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/yIuryITBqWTOZCez9SRRj5lyCS905Ejf15fx68S0pa8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3YwbngwMjdzOTE0/Ymd5aWpsZDJ6LnBu/Zw" alt="Image description" width="415" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To verify that you have correctly recorded your secret recovery phrase, a pop-up will appear, asking you to select the correct words from your unique recovery phrase. Carefully select the words and click “&lt;strong&gt;Next&lt;/strong&gt;” to proceed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/nV5O8_wrDMvgy0X1zFEclLwwLjRYsPQWxRasm-k_r2k/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L21lZjZmZjUxM3Zq/eWsxczNpbjMyLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/nV5O8_wrDMvgy0X1zFEclLwwLjRYsPQWxRasm-k_r2k/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L21lZjZmZjUxM3Zq/eWsxczNpbjMyLnBu/Zw" alt="Image description" width="408" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After setting up your secret recovery phrase, your BlocksPay wallet is ready for use. It is important to emphasize that BlocksPay is a non-custodial wallet, meaning that only you have control over your wallet’s keys. Remember the golden rule: “Not your keys, not your crypto!” BlocksPay does not hold custody of your assets and does not collect or sell personal user data. As a final step, we recommend pinning the BlocksPay extension in your browser for easy access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/wOtZJe8O3Gnad3d7PcH8mG1SvVdQOwrHjYJvk0t--BU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzRieXBpaDl4ZnE2/ZGRhbmwxemt3Lmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/wOtZJe8O3Gnad3d7PcH8mG1SvVdQOwrHjYJvk0t--BU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzRieXBpaDl4ZnE2/ZGRhbmwxemt3Lmpw/ZWc" alt="Image description" width="380" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Restoring BlocksPay Wallet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If you already have a wallet on another compatible platform, such as XdcPay or Metamask, you can import it into BlocksPay. Follow the steps below to restore your existing wallet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click on the “Restore existing wallet” button within the BlocksPay extension.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/3u4aT4Za3IAL9gyMzMCikGp1uLyFG-qULjT406MG68Q/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzRvMjRjM2JxZW1p/dDNsdWE2bjg5LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/3u4aT4Za3IAL9gyMzMCikGp1uLyFG-qULjT406MG68Q/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzRvMjRjM2JxZW1p/dDNsdWE2bjg5LnBu/Zw" alt="Image description" width="416" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, select the option to “Use recovery phrase.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/evmQFXLVCChSo1e6qXxlWhJgmfZOI6iyzPsv9KwhiKU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2FscmxzbWdya2tk/cmdtNnYxZzZ6LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/evmQFXLVCChSo1e6qXxlWhJgmfZOI6iyzPsv9KwhiKU/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2FscmxzbWdya2tk/cmdtNnYxZzZ6LnBu/Zw" alt="Image description" width="409" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter your 12–24 word recovery phrase and click “&lt;strong&gt;Next&lt;/strong&gt;.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/n5DpbLrgmm-Dk_n43shAndj560yNm7Rh07ntFqwrR_E/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2U2d3hhdDZxOTRs/ZWZnd3V1andpLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/n5DpbLrgmm-Dk_n43shAndj560yNm7Rh07ntFqwrR_E/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2U2d3hhdDZxOTRs/ZWZnd3V1andpLnBu/Zw" alt="Image description" width="409" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have entered your recovery phrase, your wallet will be successfully restored.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/U6o1rpFZnuVExNo7BKfF3Yu4nERhkpGQqDavyw3urYo/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2hidTg2NGJvMWZ5/YjhmOHRuM2xkLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/U6o1rpFZnuVExNo7BKfF3Yu4nERhkpGQqDavyw3urYo/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2hidTg2NGJvMWZ5/YjhmOHRuM2xkLnBu/Zw" alt="Image description" width="410" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We recommend pinning the BlocksPay extension to your browser’s extension bar for convenient access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/FjOgobOAv5MwdSxJ8DLr6njnV7pAUcHwWDFzPX9DO7U/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzE5NWlwaDlwMzUw/NjB5dnR1bHZrLmpw/ZWc" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/FjOgobOAv5MwdSxJ8DLr6njnV7pAUcHwWDFzPX9DO7U/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzE5NWlwaDlwMzUw/NjB5dnR1bHZrLmpw/ZWc" alt="Image description" width="380" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting BlocksPay to the XDC Network
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Once you have installed BlocksPay and created or restored your wallet, it’s time to establish a connection with the XDC Network. Simply click on the dropdown arrow positioned at the top center of the BlocksPay wallet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/5r0IP6P2B6errgJJpgNlCiaSZ2QRRac54hFkmJnzJoQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2NoNDUwanI0Y241/Zmk1cXFhOWZiLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/5r0IP6P2B6errgJJpgNlCiaSZ2QRRac54hFkmJnzJoQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2NoNDUwanI0Y241/Zmk1cXFhOWZiLnBu/Zw" alt="Image description" width="454" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have clicked on the dropdown, you will be able to see the Network screen. Here you can select the XDC Mainnet or Apothem Network. Now, you can simply close the window or click the “X” in the top right corner to continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/qKNEUr_EZVqPU0BL0r9r1zla2UqcvAgP0PJxAbM4erQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2g4dWxsOGF1d2Y5/cjUzdWVidG9rLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/qKNEUr_EZVqPU0BL0r9r1zla2UqcvAgP0PJxAbM4erQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2g4dWxsOGF1d2Y5/cjUzdWVidG9rLnBu/Zw" alt="Image description" width="407" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Upon closing the pop-up window, you will see the XDC Network added to your network list within BlocksPay. You can now start interacting with the XDC ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/j6oayaqEmo7fqa6BTNJ6kSyZecv5GykEhg_4qlYWFIA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/Lzg2b2N3bnNqZHVo/bm1rZjFueGppLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/j6oayaqEmo7fqa6BTNJ6kSyZecv5GykEhg_4qlYWFIA/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/Lzg2b2N3bnNqZHVo/bm1rZjFueGppLnBu/Zw" alt="Image description" width="456" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Functions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Below, we provide screenshots to guide you on how to receive, send, and purchase crypto using BlocksPay. By clicking the drop-down menu located in the top center of the BlocksPay app, you can access your different accounts. BlocksPay generates multiple addresses compatible with both EVM from the same recovery phrase. You can use these addresses to receive crypto into your BlocksPay wallet. The app provides options to copy the address, open a QR code, or view it on a block explorer using the buttons located in the upper right corner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/WtjQyf7GGbIiOJcPKY_K3WW-OcwFT8NMBfOHVWokS6E/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzN2ejRpYWt1ZnR2/amN5aXg0YmJtLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/WtjQyf7GGbIiOJcPKY_K3WW-OcwFT8NMBfOHVWokS6E/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzN2ejRpYWt1ZnR2/amN5aXg0YmJtLnBu/Zw" alt="Image description" width="452" height="593"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By clicking on the Deposit button, you will be able to see the account address with QR code. Clicking on “Send” will open a new page within BlocksPay, allowing you to fill in the necessary details to send a transaction.&lt;/p&gt;

&lt;p&gt;For detailed guides on using BlocksPay to send, add and import accounts, &lt;strong&gt;connect a hardware wallet, and interact with DApps(Coming soon…)&lt;/strong&gt; on the XDC Network and Ethereum, please refer to this &lt;strong&gt;&lt;a href="https://www.xdc.dev/blocksscan/blockspay-the-new-metamask-for-xdc-and-xrc20-tokens-built-on-xdc-network-is-out-for-beta-testing-2o3l"&gt;guide article&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some Important links to refer:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.xdc.dev/jay_kulkarni_842b41d81b23/how-to-restore-an-existing-wallet-in-blockspay-and-how-to-take-a-backup-of-your-blockspay-wallet-2031"&gt;How to Restore an Existing Wallet in BlocksPay and How to take a backup of your BlocksPay Wallet?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.xdc.dev/rupps_blocksscan/multichain-wallet-blockspay-how-to-send-xdc-and-xrc20-tokens-on-blockspay-536e"&gt;Multichain Wallet — BlocksPay! How to Send XDC and XRC20 Tokens on BlocksPay?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.xdc.dev/nsable/how-can-we-import-an-account-from-another-wallet-on-blockspay-hgl"&gt;How can we Import an Account from Another wallet on BlocksPay?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.xdc.dev/mitali_blocksscan/how-to-add-custom-tokens-in-blockspay-ahe"&gt;How to Add Custom Tokens in BlocksPay?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;BlocksScan Social Channels:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blocksscan.io/"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/BlocksScan"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/company/blocksscan"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/blocksscan"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@blocksscanio"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>xdcnetwork</category>
      <category>blocksscan</category>
      <category>blockspay</category>
      <category>dapps</category>
    </item>
    <item>
      <title>Deploying a Pepe Contract on XinFin and Apothem Networks Using Truffle</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Thu, 01 Jun 2023 14:33:13 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/deploying-a-pepe-contract-on-xinfin-and-apothem-networks-using-truffle-3ge3</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/deploying-a-pepe-contract-on-xinfin-and-apothem-networks-using-truffle-3ge3</guid>
      <description>&lt;p&gt;Smart contracts are a fundamental aspect of blockchain development. In this article, we will walk you through the process of creating a simple &lt;a href="https://etherscan.io/token/0x6982508145454Ce325dDbE47a25d4ec3d2311933#code"&gt;(Pepe) smart contract&lt;/a&gt; and deploying it on the Apothem network using Truffle, a powerful development tool and testing framework. By following these steps, you’ll gain hands-on experience with Truffle and learn how to compile, deploy, and interact with your smart contract on the XDC Apothem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nodejs.org/en"&gt;Node.js&lt;/a&gt; installed on your machine&lt;/li&gt;
&lt;li&gt;An XDC wallet for testing purposes. You can use the &lt;a href="https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn"&gt;Metamask&lt;/a&gt; or &lt;a href="https://chrome.google.com/webstore/detail/blockspay-secure-multiple/pogabilnghhbafaheaepaaeopjpleimd"&gt;Blockspay&lt;/a&gt; wallet by adding XDC Apothem Network.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;To add network manually in Metamask refer below details:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XDC Apothem Network&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;RPC:&lt;/strong&gt; &lt;a href="https://rpc.apothem.network"&gt;https://rpc.apothem.network&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Chain Id:&lt;/strong&gt; 51&lt;br&gt;
&lt;strong&gt;URL:&lt;/strong&gt; &lt;a href="https://apothem.blocksscan.io"&gt;https://apothem.blocksscan.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now, Let’s start the actual setup:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Set Up a New Truffle Project&lt;/strong&gt;&lt;br&gt;
Create a new directory for your project using the command line. Execute the following commands:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;For changing the directory, enter below command:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2: Installing Truffle&lt;/strong&gt;&lt;br&gt;
Truffle simplifies smart contract development and provides a testing framework for blockchain networks. Install Truffle globally using the Node.js package manager by executing the following command in your terminal:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.xdc.dev/images/3t2vRmZ_Nu8FK46O0WIw5bSZr_RoyrjrFGkVgaPecwo/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3BvMmNjb2NtNnVw/YnQ3cmZhYWN6LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/3t2vRmZ_Nu8FK46O0WIw5bSZr_RoyrjrFGkVgaPecwo/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3BvMmNjb2NtNnVw/YnQ3cmZhYWN6LnBu/Zw" alt="Image description" width="880" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Funding your XDC Account&lt;/strong&gt;&lt;br&gt;
To proceed with deploying your smart contract on the Apothem network, you’ll need testnet XDC(tXDC) in your XDC account. Use the &lt;a href="https://faucet.blocksscan.io/"&gt;BlocksScan Faucet&lt;/a&gt; to load testnet XDC onto your account specifically for the Apothem network. If you plan to use a different network, ensure that you update your environment file with the appropriate network name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Installing Dotenv&lt;/strong&gt;&lt;br&gt;
Dotenv allows you to store private environment variables in a .env file on your local machine. This is useful for securely managing your wallet’s mnemonic. Install the dotenv package by running the following command:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.xdc.dev/images/vyOIxIBiSYZnxZziZ1ZjWVHeAzRP3qYEGrRQDO4IwDs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzEwcXM4NzZrbXU3/ejJweWQ4NzhmLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/vyOIxIBiSYZnxZziZ1ZjWVHeAzRP3qYEGrRQDO4IwDs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzEwcXM4NzZrbXU3/ejJweWQ4NzhmLnBu/Zw" alt="Image description" width="880" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Creating a Truffle Project&lt;/strong&gt;&lt;br&gt;
Truffle provides a project initialization command that generates the necessary directory structure for testing and deploying contracts. Execute the following command to create a bare Truffle project:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.xdc.dev/images/PnxU-_FLYNaM6ypYTwh662mhAlapPvhJVbgJexEghHk/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzQ2dGo3ZDB4OHJ6/anRsamt0am1uLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/PnxU-_FLYNaM6ypYTwh662mhAlapPvhJVbgJexEghHk/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzQ2dGo3ZDB4OHJ6/anRsamt0am1uLnBu/Zw" alt="Image description" width="880" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Truffle will create the following directory structure for your project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;contracts/: Directory for your Solidity contracts&lt;/li&gt;
&lt;li&gt;migrations/: Directory for scriptable deployment files&lt;/li&gt;
&lt;li&gt;test/: Directory for files that test your application and contracts&lt;/li&gt;
&lt;li&gt;truffle-config.js: Truffle configuration file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Installing hdwallet-provider&lt;/strong&gt;&lt;br&gt;
“hdwallet-provider” is a package that enables transaction signing for addresses derived from a 12 or 24-word mnemonic. By default, the hdwallet-provider uses the first address generated from the mnemonic, but this behavior can be customized. Run the following command to install hdwallet-provider:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @truffle/hdwallet-provider
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://www.xdc.dev/images/PzgHJHIEI5Gx9VULvsk9vDKlwzSAFpYS-bZTtdqZkt0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3R1NjdmYzJibHg4/eTNwcDN4aGZ2LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/PzgHJHIEI5Gx9VULvsk9vDKlwzSAFpYS-bZTtdqZkt0/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3R1NjdmYzJibHg4/eTNwcDN4aGZ2LnBu/Zw" alt="Image description" width="880" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Creating the .env File&lt;/strong&gt;&lt;br&gt;
Create a .env file in your project directory to store your project and XDC apothem/mainnet account details securely. The .env file should include your Metamask/Blockspay and XDCpay secret recovery. Refer the below points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.metamask.io/hc/en-us/articles/360015290032-How-to-Reveal-Your-Seed-Phrase"&gt;How to reveal a secret recovery phrase of Metamask&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.xdc.dev/ivan_blocksscan/how-to-take-a-backup-of-your-xdcpay-extension-4m64"&gt;How to reveal a secret recovery phrase of XDCPay&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chrome.google.com/webstore/detail/blockspay-secure-multiple/pogabilnghhbafaheaepaaeopjpleimd"&gt;BlocksPay&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is an example of the .env file contents:&lt;/p&gt;

&lt;p&gt;MNEMONIC = Your-Secret-Recovery-Phrase&lt;/p&gt;

&lt;p&gt;Make sure to replace with the mnemonic of your wallet. Remember, never disclose your secret recovery phrase as it can be used to steal your assets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Creating a Smart Contract&lt;/strong&gt;&lt;br&gt;
Using your preferred code editor, create a new file called PepeToken.sol within the contracts/ directory. This file will contain a basic smart contract called PepeToken. Here’s an example of the contract code:&lt;/p&gt;

&lt;p&gt;Refer this link to copy the &lt;a href="https://etherscan.io/token/0x6982508145454Ce325dDbE47a25d4ec3d2311933#code"&gt;PepeToken contract code.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Configuring Truffle Settings&lt;/strong&gt;&lt;br&gt;
Modify the truffle-config.js file located in the root directory of your project. This file contains the configuration settings for Truffle, including the integration of the HDWalletProvider and network-specific deployment configurations. Make sure to require the dotenv package and access the required environment variables. Refer to the &lt;a href="https://trufflesuite.com/docs/truffle/reference/configuration"&gt;Truffle documentation&lt;/a&gt; for detailed information on configuring Truffle settings.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require('dotenv').config();
    const { MNEMONIC } = process.env;
    const HDWalletProvider = require('@truffle/hdwallet-provider');

    module.exports = {

      networks: {

        xinfin: {
          provider: () =&amp;gt; new HDWalletProvider(
            MNEMONIC,
            'https://erpc.apothem.network/'),
          network_id: 50,
          gasLimit: 6721975,
          confirmation: 2,
        },

        apothem: {
          provider: () =&amp;gt; new HDWalletProvider(
            MNEMONIC,
            'https://erpc.apothem.network'),
          network_id: 51,
          gasLimit: 6721975,
          confirmation: 2,
        }
      },

      mocha: {
      },

      compilers: {
        solc: {
          version: "0.8.16",
        }
      },
    };

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 10: Compiling the Smart Contract&lt;/strong&gt;&lt;br&gt;
To compile the smart contract, navigate to the root directory of your project in the terminal and run the following command:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;If the compilation is successful, you’ll see output similar to the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Compiling your contracts...
===========================
&amp;gt; Compiling ./contracts/PepeToken.sol
&amp;gt; Artifacts written to /home/omkar/Desktop/New_truffle/build/contracts
&amp;gt; Compiled successfully using:
   - solc: 0.8.16+commit.07a7930e.Emscripten.clang
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The compiled artifacts will be placed in the build/contracts/ directory relative to your project root.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 11: Creating the Deployment Script&lt;/strong&gt;&lt;br&gt;
Truffle uses migration scripts to deploy smart contracts. These scripts are located in the migrations/ directory and are numbered to determine the execution order. Create a new file called &lt;strong&gt;1_deploy_contract.js&lt;/strong&gt; in the migrations/ directory and add the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const Demo_Contract = artifacts.require("PepeToken");

let TotalValue = 100000000000;

module.exports = function(deployer) {
  deployer.deploy(Demo_Contract,TotalValue);
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 12: Deploying the Smart Contract&lt;/strong&gt;&lt;br&gt;
To deploy the smart contract on the XDC Apothem network, execute the following command in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;truffle migrate --network Apothem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the deployment is successful, you’ll see a response similar to the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Compiling your contracts...
===========================
&amp;gt; Everything is up to date, there is nothing to compile.
Starting migrations...
======================
&amp;gt; Network name:    'apothem'
&amp;gt; Network id:      51
&amp;gt; Block gas limit: 420000000 (0x1908b100)
1_deploy_contract.js
====================
   Deploying 'PepeToken'
   ---------------------
   &amp;gt; transaction hash:    0x4caecd574ccd8553e163d2e5aa74ab229cd62198484ed9036435382868405f47
   &amp;gt; Blocks: 2            Seconds: 4
   &amp;gt; contract address:    0x7A95f2579eF1700048455271272f178e79b965E6
   &amp;gt; block number:        49838985
   &amp;gt; block timestamp:     1685611976
   &amp;gt; account:             0x35ef9e7eCB979297907370C2Ab64ef4a8a3F2FbE
   &amp;gt; balance:             4502.997212086625
   &amp;gt; gas used:            2723061 (0x298cf5)
   &amp;gt; gas price:           0.25 gwei
   &amp;gt; value sent:          0 ETH
   &amp;gt; total cost:          0.00068076525 ETH
   &amp;gt; Saving artifacts
   -------------------------------------
   &amp;gt; Total cost:       0.00068076525 ETH
Summary
=======
&amp;gt; Total deployments:   1
&amp;gt; Final cost:          0.00068076525 ETH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use a block explorer like &lt;a href="https://xdc.blocksscan.io/"&gt;BlocksScan&lt;/a&gt; to view the transaction details, that includes transaction hash, contract address, block number, and gas usage.&lt;/p&gt;

&lt;p&gt;Congratulations! You have successfully created a simple smart contract and deployed it on the Apothem network using Truffle. This article has provided you with a solid foundation for working with Truffle and deploying contracts on the XDC network (apothem/mainnet). Explore the documentation and resources to expand your knowledge and continue building decentralized applications.For any doubts or questions comment below or post on social media tagging BlocksScan.&lt;/p&gt;

&lt;p&gt;Follow us to know more updates:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blocksscan.io/"&gt;Website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/blocksscan"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@blocksscanio"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>xdcrpc</category>
      <category>xdcnetwork</category>
      <category>blocksscan</category>
      <category>truffle</category>
    </item>
    <item>
      <title>How to Restore an Existing Wallet in BlocksPay and How to take a backup of your BlocksPay Wallet?</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Mon, 20 Mar 2023 06:20:56 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/how-to-restore-an-existing-wallet-in-blockspay-and-how-to-take-a-backup-of-your-blockspay-wallet-2031</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/how-to-restore-an-existing-wallet-in-blockspay-and-how-to-take-a-backup-of-your-blockspay-wallet-2031</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;a href="https://chrome.google.com/webstore/detail/blockspay-secure-multiple/pogabilnghhbafaheaepaaeopjpleimd"&gt;BlocksPay&lt;/a&gt;&lt;/strong&gt; is a cryptocurrency wallet used to interact with the EVM Compatible blockchains such as XDC Network, Ethereum, and many more in near future.&lt;/p&gt;

&lt;p&gt;BlocksPay allows users to store and manage account keys, broadcast transactions, send and receive EVM Compatible cryptocurrencies and tokens, and securely connect to decentralized applications through a compatible web browser.&lt;/p&gt;

&lt;p&gt;Hey folks, Don’t know how to restore a wallet? Then you’re in the correct place.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Let’s start to restore an existing wallet on BlocksPay!&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Follow the below few steps and easily restore your existing wallet.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Once you successfully download your extension, click on the “&lt;strong&gt;Restore existing wallet&lt;/strong&gt;” button to restore your existing wallet account.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/0HT0VNE7hu6Olx6j1R7DnyUyGfIlSuxOOOfdwQghY_M/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2ZsMnNzbGVtNTJl/bHBmdDU3ZGd6LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/0HT0VNE7hu6Olx6j1R7DnyUyGfIlSuxOOOfdwQghY_M/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2ZsMnNzbGVtNTJl/bHBmdDU3ZGd6LnBu/Zw" alt="Image description" width="398" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; After clicking on the restore existing wallet button, the user will be able to see ‘’Two’’ options. Now, Click on the “&lt;strong&gt;Use recovery phrase&lt;/strong&gt;” option.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/3HiSlblyDeNIFEkTr7euTOF0jOfbyARdgMLVMU59roQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2d3cXZ2NXY4YThs/MnBhaWhpcXVuLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/3HiSlblyDeNIFEkTr7euTOF0jOfbyARdgMLVMU59roQ/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2d3cXZ2NXY4YThs/MnBhaWhpcXVuLnBu/Zw" alt="Image description" width="398" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;: Here, users need to enter their recovery phrase(Seed Phrase words). Once entered, click on the “&lt;strong&gt;Next&lt;/strong&gt;” button.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/EnFr2dlXinlzXHv0f166n6OcYnaZAyhgi79oQeKNX-E/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2NjdnBoZ3ltbmVv/MnMxNzluZXlwLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/EnFr2dlXinlzXHv0f166n6OcYnaZAyhgi79oQeKNX-E/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2NjdnBoZ3ltbmVv/MnMxNzluZXlwLnBu/Zw" alt="Image description" width="398" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Now, create a new password to unlock the wallet. Once you enter the password click on the “&lt;strong&gt;Next&lt;/strong&gt;” button.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/PPmKW1v68GHEYhXZA8MpsrtIPMPfyzQiHPESJsclWV4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2M2Yzc4YWE1Z2w5/MzU2ZzN1cGJ2LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/PPmKW1v68GHEYhXZA8MpsrtIPMPfyzQiHPESJsclWV4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2M2Yzc4YWE1Z2w5/MzU2ZzN1cGJ2LnBu/Zw" alt="Image description" width="398" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Confirm the Password and click on “&lt;strong&gt;Next&lt;/strong&gt;” button. &lt;br&gt;
&lt;a href="https://www.xdc.dev/images/wrJp3eWbb_d2Y-EPlZy56Qr01yQj1Cv5WKnCqPsfJgk/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzdkZXc4bzczMnd4/dnJkc2F6dGc2LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/wrJp3eWbb_d2Y-EPlZy56Qr01yQj1Cv5WKnCqPsfJgk/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzdkZXc4bzczMnd4/dnJkc2F6dGc2LnBu/Zw" alt="Image description" width="398" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Now, click on the Finish button. To Pin the BlocksPay extension, Click on the puzzle icon on the Browser, find BlocksPay icon and click on the Pin icon to pin it.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/8Z9I7x5mhE5MsHStyioLtPjNsz_Zf-iODltjSJkO_Zo/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2EwaWNiMXQ5NDgx/ZGQzbmpiNDVuLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/8Z9I7x5mhE5MsHStyioLtPjNsz_Zf-iODltjSJkO_Zo/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2EwaWNiMXQ5NDgx/ZGQzbmpiNDVuLnBu/Zw" alt="Image description" width="398" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Let’s take a backup of the BlocksPay Wallet?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;With a few steps users can take a backup of their Recovery phrase(Seed Phrase).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; It is very easy to take a backup of your BlocksPay wallet, click here on the ‘’THREE ‘’dots and then visit the “&lt;strong&gt;Settings&lt;/strong&gt;” tab.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/zzz27VXtaSbgye2Pi0Db4yJrrfZjahbbhtxwKjwVx2Y/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3Z1eTg0eXd5dTB6/dXE3dWVwZ2ZtLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/zzz27VXtaSbgye2Pi0Db4yJrrfZjahbbhtxwKjwVx2Y/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3Z1eTg0eXd5dTB6/dXE3dWVwZ2ZtLnBu/Zw" alt="Image description" width="364" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; After clicking on the ‘’Settings’’, click on the “&lt;strong&gt;View my recovery phrase&lt;/strong&gt;” tab. &lt;br&gt;
&lt;a href="https://www.xdc.dev/images/x1IJ1N52pK0I5BXtGiv7a5w2gq12DPGRJNgLm-_iq9E/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3FrMDd2aHU0dmZy/aXc0MThwazczLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/x1IJ1N52pK0I5BXtGiv7a5w2gq12DPGRJNgLm-_iq9E/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3FrMDd2aHU0dmZy/aXc0MThwazczLnBu/Zw" alt="Image description" width="364" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Unlock the wallet by entering the password.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/akoqF-Ff_lNpl32jQh1Pb-yggAgqPDnmoYwpCYF0bJ4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2JyZGZmdDNqZ2ow/bXJvcTJyMGU2LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/akoqF-Ff_lNpl32jQh1Pb-yggAgqPDnmoYwpCYF0bJ4/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2JyZGZmdDNqZ2ow/bXJvcTJyMGU2LnBu/Zw" alt="Image description" width="359" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Once you entered the password, you will see your recovery phrase. Make sure you will not share this to anyone.&lt;br&gt;
&lt;a href="https://www.xdc.dev/images/79Fwj0cWxcQ3nQDrHBSayfmqsQ22aNEo7LNxdWan_js/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2pzeDMyNDY4NW42/cnI5dWEzbHBpLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/79Fwj0cWxcQ3nQDrHBSayfmqsQ22aNEo7LNxdWan_js/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2pzeDMyNDY4NW42/cnI5dWEzbHBpLnBu/Zw" alt="Image description" width="362" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is how users can take a backup of the BlocksPay Wallet.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Explore the BlocksPay and share your feedback with the BlocksScan Team!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For any queries, follow BlocksScan — Social channels:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/BlocksScan"&gt;Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/BlocksScan"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://t.me/blocksscan_updates"&gt;Telegram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/BlocksScan"&gt;Facebook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/blocksscan/"&gt;Instagram&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BlocksPay Twitter:&lt;/strong&gt; &lt;a href="https://twitter.com/blockspaywallet"&gt;https://twitter.com/blockspaywallet&lt;/a&gt; &lt;/p&gt;

</description>
      <category>blocksscan</category>
      <category>blockspaywallet</category>
      <category>xdcnetwork</category>
      <category>ethereum</category>
    </item>
    <item>
      <title>First post on XDC Dev</title>
      <dc:creator>Jay_Kulkarni</dc:creator>
      <pubDate>Tue, 08 Nov 2022 08:08:57 +0000</pubDate>
      <link>https://www.xdc.dev/jay_kulkarni_842b41d81b23/first-post-on-xdc-dev-5daa</link>
      <guid>https://www.xdc.dev/jay_kulkarni_842b41d81b23/first-post-on-xdc-dev-5daa</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function hello(name)
{
  console.log('Hello ' + name);
}

hello('XDC Network!')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Output:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/mylVqqgJvk8joo-8iec0IPAkS1bFs7NMshfCJihAjhs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3c3YzI5dWxlc3o0/cGR6MzNqemR5LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/mylVqqgJvk8joo-8iec0IPAkS1bFs7NMshfCJihAjhs/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3c3YzI5dWxlc3o0/cGR6MzNqemR5LnBu/Zw" alt="Image description" width="880" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>xdc</category>
      <category>xdcnetwork</category>
      <category>xdcdev</category>
      <category>devlopercommunity</category>
    </item>
  </channel>
</rss>
