<?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: Phill Menezes</title>
    <description>The latest articles on Developers Forum for XinFin XDC Network by Phill Menezes (@menezesphill).</description>
    <link>https://www.xdc.dev/menezesphill</link>
    <image>
      <url>https://www.xdc.dev/images/Fd00tP6_XnjmZn7Ukr8IgiQGNyH1c7TzFU3SmtcjHEE/rs:fill:90:90/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL3VzZXIvcHJv/ZmlsZV9pbWFnZS8y/NTEvYzk2MWYwMTQt/ZmRhYy00ZWY4LTgy/YzEtMjdjZTRjMjdl/OTU4LnBuZw</url>
      <title>Developers Forum for XinFin XDC Network: Phill Menezes</title>
      <link>https://www.xdc.dev/menezesphill</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://www.xdc.dev/feed/menezesphill"/>
    <language>en</language>
    <item>
      <title>[Informative] Importing XDC Wallet to Metamask</title>
      <dc:creator>Phill Menezes</dc:creator>
      <pubDate>Fri, 09 Feb 2024 17:37:06 +0000</pubDate>
      <link>https://www.xdc.dev/menezesphill/metamask-support-importing-xdc-wallet-to-metamask-901</link>
      <guid>https://www.xdc.dev/menezesphill/metamask-support-importing-xdc-wallet-to-metamask-901</guid>
      <description>&lt;p&gt;&lt;strong&gt;This short tutorial shows how to import our browser-based XDC Wallet to Metamask, giving users more flexibility on where they want to hold their assets.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1️⃣ Backing up our Seed Phrase from XDC Wallet.
&lt;/h2&gt;

&lt;p&gt;It would help if you backed up the keys you created for XDC Wallet using the &lt;strong&gt;Mnemonic Phrase&lt;/strong&gt; or &lt;strong&gt;Private Key&lt;/strong&gt; options. It is not impossible to import a &lt;strong&gt;Keystore File&lt;/strong&gt; to Metamask, but converting a &lt;strong&gt;Keystore File&lt;/strong&gt; into a usable &lt;strong&gt;Private Key&lt;/strong&gt; is rather complicated.&lt;/p&gt;

&lt;p&gt;When you created your XDC Wallet, you will be able to see your &lt;strong&gt;Mnemonic Phrase&lt;/strong&gt;, like the one showed below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/c-6sdYRFv8t-9L5FGqFr1i187jwPPxQRTn44E2ryXp8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2Z3OGFlYnFubXB3/aGt5aHhrNGMyLnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/c-6sdYRFv8t-9L5FGqFr1i187jwPPxQRTn44E2ryXp8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L2Z3OGFlYnFubXB3/aGt5aHhrNGMyLnBu/Zw" alt="Image description" width="576" height="632"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the Phrase Key we will use later to import your address to Metamask.&lt;/p&gt;

&lt;h2&gt;
  
  
  2️⃣ Configuring Metamask Network.
&lt;/h2&gt;

&lt;p&gt;To be completely compatible with XDC, our Metamask must be configurated to point to the XinFin EVM-Complatible RPC URLs. To do that, open your metamask and:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I.&lt;/strong&gt; Click on the three dots (top-right)&lt;br&gt;
&lt;strong&gt;II.&lt;/strong&gt; Click on Settings&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;III.&lt;/strong&gt; Go to Networks&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.xdc.dev/images/cdpwPA1s0HezrRLKveOUWESd4MtF4nEXxYqVw-9F2C8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzU0OWprNThuYzc1/amowZTk0b3g4LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/cdpwPA1s0HezrRLKveOUWESd4MtF4nEXxYqVw-9F2C8/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzU0OWprNThuYzc1/amowZTk0b3g4LnBu/Zw" alt="Image description" width="349" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IV.&lt;/strong&gt; Click on Add Network&lt;/p&gt;

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

&lt;p&gt;A new window will open. Here he have to choose the option &lt;strong&gt;Networks&lt;/strong&gt; again and click on &lt;strong&gt;Add a network&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;And then choose the options &lt;em&gt;Add a network manually&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;In the &lt;strong&gt;Add a network manually&lt;/strong&gt; window, fill the new network form with the following info:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Network Name:&lt;/strong&gt; XinFin XDC Network&lt;br&gt;
 &lt;strong&gt;New RPC URL:&lt;/strong&gt; &lt;a href="https://erpc.xdcrpc.com"&gt;https://erpc.xdcrpc.com&lt;/a&gt;&lt;br&gt;
 &lt;strong&gt;Chain ID:&lt;/strong&gt; 50&lt;br&gt;
 &lt;strong&gt;Currency Symbol:&lt;/strong&gt; XDC&lt;br&gt;
 &lt;strong&gt;Block Explorer URL:&lt;/strong&gt; &lt;a href="https://xdcscan.io"&gt;https://xdcscan.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And Save! &lt;/p&gt;

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

&lt;h2&gt;
  
  
  3️⃣ Importing wallet to Metamask:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Method 01 - Private Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you own a Private Key, the process is pretty straight forward: Your need to: &lt;/p&gt;

&lt;p&gt;Click on your Account Name -&amp;gt; Choose Add account or hardware wallet -&amp;gt; Import Account&lt;/p&gt;

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

&lt;p&gt;And finally hit Import!&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Method 02 - Mnemonic Phrase from XDC Wallet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To import our wallets from a Mnemonic Phrase we need to recover the private key from the Mnemonic, to do that, we are going to use the tool &lt;strong&gt;Mnemonic Code Converter&lt;/strong&gt; by All private Keys:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://allprivatekeys.com/mnemonic-code-converter?#english"&gt;https://allprivatekeys.com/mnemonic-code-converter?#english&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will need two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your Mnemonic Phrase&lt;/li&gt;
&lt;li&gt;The password used to create your XDC Wallet Accout&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fill the fields highlighted with your info (Choose &lt;em&gt;Ethereum&lt;/em&gt; for Coin and &lt;em&gt;BIP44&lt;/em&gt; for Derivation Path):&lt;/p&gt;

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

&lt;p&gt;Scroll down to &lt;strong&gt;Derived Addresses&lt;/strong&gt; and check if the address you see is the address you want to import:&lt;/p&gt;

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

&lt;p&gt;If this is the right address, slide to the end of the row, where you are going to find the associated Private Key:&lt;/p&gt;

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

&lt;p&gt;Now head to &lt;strong&gt;Method 1&lt;/strong&gt; and continue importing your XDC Wallet to Metamask! 🎉&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Feature Request: Make "Verify and Publish" feature available via API</title>
      <dc:creator>Phill Menezes</dc:creator>
      <pubDate>Fri, 07 Oct 2022 23:34:18 +0000</pubDate>
      <link>https://www.xdc.dev/menezesphill/feature-request-make-verify-and-publish-feature-available-via-api-1890</link>
      <guid>https://www.xdc.dev/menezesphill/feature-request-make-verify-and-publish-feature-available-via-api-1890</guid>
      <description>&lt;p&gt;&lt;strong&gt;Summary of the request: Other block scanner services have successfully provided a verification tool available via API (i.e., Etherscan). It allowed the community to develop tools and plugins like &lt;a href="https://www.npmjs.com/package/truffle-plugin-verify"&gt;truffle-verify-plugin&lt;/a&gt;, which makes the verification process a much less time-consuming task for developers, thus, improving the development experience.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Following this reasoning, I believe it would be a great addition to the &lt;a href="https://xdc.blocksscan.io/docs/#/"&gt;Blockscan API&lt;/a&gt;, an endpoint that allows users to use the verification feature through an API call.&lt;/p&gt;

&lt;p&gt;This issue is also being &lt;a href="https://github.com/XinFinOrg/XDCScan/issues/78"&gt;tracked on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://www.xdc.dev/blocksscanio"&gt;@blocksscanio&lt;/a&gt; &lt;a class="mentioned-user" href="https://www.xdc.dev/blocksscan"&gt;@blocksscan&lt;/a&gt; &lt;a class="mentioned-user" href="https://www.xdc.dev/walterblueu"&gt;@walterblueu&lt;/a&gt; &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Unwanted behavior while using standard XDCPay RPC endpoints and web3 library</title>
      <dc:creator>Phill Menezes</dc:creator>
      <pubDate>Wed, 28 Sep 2022 19:01:47 +0000</pubDate>
      <link>https://www.xdc.dev/menezesphill/unwanted-behavior-while-using-standard-xdcpay-rpc-endpoints-and-web3-library-ha8</link>
      <guid>https://www.xdc.dev/menezesphill/unwanted-behavior-while-using-standard-xdcpay-rpc-endpoints-and-web3-library-ha8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Summary: While using XDCPay standard RPC endpoints to connect to decentralized apps using the &lt;a href="https://www.npmjs.com/package/web3"&gt;web3 npm package&lt;/a&gt;, dApps are unable to check for transactions receipt due to incompatibility with the Ethereum Standard RPC.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reproducing the error
&lt;/h3&gt;

&lt;p&gt;It is possible to use XDCPay injected provider to create a &lt;code&gt;web3modal&lt;/code&gt; that can be used for ReactJS/Next.js dapps using &lt;a href="https://www.npmjs.com/package/web3"&gt;web3 npm package&lt;/a&gt;. This would be the natural pathway to interact with decentralized apps in EVM-based networks, this is the case for XDC Network too.&lt;/p&gt;

&lt;p&gt;By using XDCPay HttpProvider, however, we are using the XDC compatible endpoints:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  50: &lt;span class="s1"&gt;'https://xdcpayrpc.blocksscan.io/'&lt;/span&gt;,
  51: &lt;span class="s1"&gt;'https://apothemxdcpayrpc.blocksscan.io/'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Which, at first glance, is not a problem since it does not prevent us from accessing web3 methods. We can still send and fetch blockchain data using a Web3 object created using XDCPay injected provider.&lt;/p&gt;

&lt;p&gt;However, the problem is when we expect a transaction receipt to update our front-end information or compute transaction outcomes. We get the following message error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Uncaught &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;in &lt;/span&gt;promise&lt;span class="o"&gt;)&lt;/span&gt; Error: Failed to check &lt;span class="k"&gt;for &lt;/span&gt;transaction receipt:
&lt;span class="o"&gt;{}&lt;/span&gt;
    at Object._fireError &lt;span class="o"&gt;(&lt;/span&gt;web3.min.js?2efa:9:16886&lt;span class="o"&gt;)&lt;/span&gt;
    at &lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;web3.min.js?2efa:10:25360&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Fix
&lt;/h3&gt;

&lt;p&gt;To check if this behavior only occurred with RPC endpoints that are not fully compatible with the Ethereum standard, I have configured XDCPay to use the Ethereum-compatible alternative RPCs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  50: &lt;span class="s1"&gt;'https://erpc.xinfin.network/'&lt;/span&gt;,
  51: &lt;span class="s1"&gt;'https://erpc.apothem.network/'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;
  &lt;a href="https://www.xdc.dev/images/2e3EWlFk5zISq66bI8x_7Sy8eVlpA6awMxxMTCUGKiM/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3M2bG5lZ3Ric2kz/dm8xbjc5Z2I2LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/2e3EWlFk5zISq66bI8x_7Sy8eVlpA6awMxxMTCUGKiM/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/L3M2bG5lZ3Ric2kz/dm8xbjc5Z2I2LnBu/Zw" alt="XDCPay Config" width="359" height="602"&gt;&lt;/a&gt;
&lt;/p&gt;
 

&lt;p&gt;Fortunately, using these endpoints is enough to avoid the compatibility error with the web3 library.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sugestion
&lt;/h3&gt;

&lt;p&gt;My suggestion would be to make Ethereum Compatible endpoints a native feature on XDCPay:&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://www.xdc.dev/images/5281UBMOR47pC24rxelXx-k7rCe6Ysb2mH8HfjDBZ0M/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzBjZThxN3duamlu/NGxuajdqMWQ3LnBu/Zw" class="article-body-image-wrapper"&gt;&lt;img src="https://www.xdc.dev/images/5281UBMOR47pC24rxelXx-k7rCe6Ysb2mH8HfjDBZ0M/w:880/mb:500000/ar:1/aHR0cHM6Ly93d3cu/eGRjLmRldi91cGxv/YWRzL2FydGljbGVz/LzBjZThxN3duamlu/NGxuajdqMWQ3LnBu/Zw" alt="XDCPay Config 2" width="359" height="602"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This issue is also being tracked on &lt;a href="https://github.com/XDCFoundation/xdc-pay-xdcpay/issues/15"&gt;Github&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;a class="mentioned-user" href="https://www.xdc.dev/blocksscanio"&gt;@blocksscanio&lt;/a&gt; &lt;a class="mentioned-user" href="https://www.xdc.dev/blocksscan"&gt;@blocksscan&lt;/a&gt; &lt;a class="mentioned-user" href="https://www.xdc.dev/walterblueu"&gt;@walterblueu&lt;/a&gt; &lt;/p&gt;

</description>
      <category>xdcpay</category>
      <category>rpc</category>
      <category>dapps</category>
    </item>
    <item>
      <title>Ethereum Compatible RPC Endpoint on Apothem rejecting remote calls</title>
      <dc:creator>Phill Menezes</dc:creator>
      <pubDate>Mon, 19 Sep 2022 18:36:47 +0000</pubDate>
      <link>https://www.xdc.dev/menezesphill/ethereum-compatible-rpc-endpoint-on-apothem-rejecting-remote-calls-jel</link>
      <guid>https://www.xdc.dev/menezesphill/ethereum-compatible-rpc-endpoint-on-apothem-rejecting-remote-calls-jel</guid>
      <description>&lt;p&gt;&lt;strong&gt;Summary: Currently, tools like Truffle Suit and Hardhat don't fully support the official XDC RPC endpoints due to the &lt;code&gt;xdc&lt;/code&gt; prefix. An issue has been raised both with &lt;a href="https://github.com/trufflesuite/truffle/issues/5529"&gt;Truffle&lt;/a&gt; and &lt;a href="https://github.com/NomicFoundation/hardhat/issues/3163"&gt;Hardhat&lt;/a&gt; by &lt;a class="mentioned-user" href="https://www.xdc.dev/gzliudan"&gt;@gzliudan&lt;/a&gt; but in both cases, each team responded that making addresses with the &lt;code&gt;xdc&lt;/code&gt; prefix compatible to their tools would imply in breaking changes and suggested working on making XDC RPC endpoints compatible to Ethereum standards.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fortunately, XDC already provides Ethereum Compatible RPC Endpoints:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://erpc.xinfin.network"&gt;https://erpc.xinfin.network&lt;/a&gt; - for XDC Mainnet&lt;br&gt;
&lt;a href="https://erpc.apothem.network"&gt;https://erpc.apothem.network&lt;/a&gt; - for Apothem Testnet&lt;/p&gt;

&lt;p&gt;Although the Ethereum Compatible Endpoint for XDC Mainnet (&lt;a href="https://erpc.xinfin.network"&gt;https://erpc.xinfin.network&lt;/a&gt;) works perfectly with Truffle and Hardhat, the Apothem Testnet endpoint is showing an unwanted behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rejected Calls on Truffle:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/home/taurinos/xdc_comm/docs/how-to/Pizza/node_modules/eth-block-tracker/src/polling.js:51
        const newErr = new Error(`PollingBlockTracker - encountered an error while attempting to update latest block:\n${err.stack}`)
                       ^
Error: PollingBlockTracker - encountered an error while attempting to update latest block:
undefined
    at PollingBlockTracker._performSync (/home/taurinos/xdc_comm/docs/how-to/Pizza/node_modules/eth-block-tracker/src/polling.js:51:24)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
UnhandledRejections detected
Promise {
  &amp;lt;rejected&amp;gt; {
    code: -32603,
    message: 'Unknown Error: ',
    data: { originalError: {} }
  }
} {
  code: -32603,
  message: 'Unknown Error: ',
  data: { originalError: {} }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Same Behavior when trying to access RPC methods via HTTP:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By accessing &lt;a href="https://erpc.apothem.network/x/eth_blockNumber"&gt;https://erpc.apothem.network/x/eth_blockNumber&lt;/a&gt;, for example, it returns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Post "http://0.0.0.0:8989": dial tcp 0.0.0.0:8989: connect: connection refused
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;While, accessing &lt;a href="https://rpc.apothem.network/x/eth_blockNumber"&gt;https://rpc.apothem.network/x/eth_blockNumber&lt;/a&gt; will return:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;This is an example call for eth_blockNumber.

Request
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "eth_blockNumber",
  "params": [
    "latest"
  ]
}
Response
{
  "jsonrpc": "2.0",
  "id": "1",
  "result": "0x2530daf"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
  </channel>
</rss>
