<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>0xPeter</title>
        <link>https://paragraph.com/@pnokn</link>
        <description>founder of fiatsend | Simplifying crypto UI experience and onboarding for users in the traditional finance space</description>
        <lastBuildDate>Tue, 07 Apr 2026 15:02:21 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>0xPeter</title>
            <url>https://storage.googleapis.com/papyrus_images/985cfc3879b9ea202d895ddbbe4b9ae736af654eca52357b1a82665e8b702e81.webp</url>
            <link>https://paragraph.com/@pnokn</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Simplifying Off-Ramping: How fiatsend is making crypto accessible to everyone]]></title>
            <link>https://paragraph.com/@pnokn/simplifying-off-ramping-how-fiatsend-is-making-crypto-accessible-to-everyone</link>
            <guid>848qVpXrYftVRwVOWwrz</guid>
            <pubDate>Thu, 12 Dec 2024 07:12:36 GMT</pubDate>
            <description><![CDATA[Introduction Hello! I&apos;m Peter, the founder of Fiatsend with a background in decentralized finance and arbitrage. My experience in these fields inspired me to create Fiatsend—a platform designed to simplify the process of converting stablecoins to fiat. The goal of Fiatsend is to make cryptocurrency transactions as seamless as possible, particularly for the underbanked population in Africa. The Challenge Today, off-ramping cryptocurrency can be a daunting and complex process. Users often ...]]></description>
            <content:encoded><![CDATA[<p><strong>Introduction</strong></p><p>Hello! I&apos;m Peter, the founder of Fiatsend with a background in decentralized finance and arbitrage. My experience in these fields inspired me to create Fiatsend—a platform designed to simplify the process of converting stablecoins to fiat. The goal of Fiatsend is to make cryptocurrency transactions as seamless as possible, particularly for the underbanked population in Africa.</p><p><strong>The Challenge</strong></p><p>Today, off-ramping cryptocurrency can be a daunting and complex process. Users often need to transfer their stablecoins to a centralized exchange, wait for confirmations, and engage in peer-to-peer (P2P) transactions. This involves multiple steps and can be stressful, especially for those new to the Web3 space. Moreover, in parts of Africa where mobile money is the predominant payment method, accessing traditional banking services is often a challenge.</p><p><strong>Fiatsend&apos;s Solution</strong></p><p>Fiatsend aims to address these challenges by offering a simple, one-click solution for off-ramping cryptocurrency. The platform allows users to convert their cryptocurrency to fiat with the ease of sending stablecoins from one wallet to another. This streamlined process eliminates the need for multiple steps and reduces the stress associated with off-ramping. By focusing on improving user experiences, Fiatsend aims to make cryptocurrency transactions accessible to everyone.</p><p><strong>The Impact</strong></p><p>The adoption of stablecoins has been remarkable, with over 1.1 billion transactions in Q2 of 2024. As stablecoins continue to grow, enhancing user experiences will be crucial. Fiatsend envisions a future where individuals and businesses can use on-chain payments to improve their daily lives. By making cryptocurrency transactions more accessible and straightforward, Fiatsend aims to empower users to take control of their finances and participate in the global economy.</p><p><strong>Why It Matters</strong></p><p>By addressing the core issue of off-ramping complexity, Fiatsend empowers users in regions where financial systems are unstable or inaccessible. The platform not only simplifies crypto-to-fiat transactions but also provides meaningful incentives to make the process cost-effective and rewarding</p><p><strong>What&apos;s Next?</strong></p><p>We are excited to launch our testnet campaign soon and invite you to be part of this revolution. Join us in simplifying off-ramping and making cryptocurrency accessible to everyone. Follow us on X @fiatsend and visit our <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://fiatsend.com">https://fiatsend.com</a> to stay updated and get involved.</p>]]></content:encoded>
            <author>pnokn@newsletter.paragraph.com (0xPeter)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/e30553a2b7c3efeec579386695ced3400ea1ad398c2a3172c8ad1cf45aae18f0.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Part 3 - Changing Avail appchain IP to static and submitting a PR on github for avail listing]]></title>
            <link>https://paragraph.com/@pnokn/part-3-changing-avail-appchain-ip-to-static-and-submitting-a-pr-on-github-for-avail-listing</link>
            <guid>9aOR8qxpzeWwwt33wK7X</guid>
            <pubDate>Mon, 05 Feb 2024 02:44:47 GMT</pubDate>
            <description><![CDATA[If you are here then you read my part 2 article, if not you can go back and read it before coming here as it is linked together: https://mirror.xyz/pnokn.eth/rRSnKIDwTwiVNAuI1LvMyf0B9CFyJ_XA4lr6OyGS7Z8 Let’s get started right away by changing our IP to a static one: Changing IP to staticGo to VM instances and click on the name of your VM instance you want to changeClick on edit and scroll down to external iPv4 addressClick on edit and the top leftSelect Reserve static IP addressSelect Reserve...]]></description>
            <content:encoded><![CDATA[<p>If you are here then you read my part 2 article, if not you can go back and read it before coming here as it is linked together:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/pnokn.eth/rRSnKIDwTwiVNAuI1LvMyf0B9CFyJ_XA4lr6OyGS7Z8">https://mirror.xyz/pnokn.eth/rRSnKIDwTwiVNAuI1LvMyf0B9CFyJ_XA4lr6OyGS7Z8</a></p><p>Let’s get started right away by changing our IP to a static one:</p><div data-type="youtube" videoId="xNmSUf-y2MM">
      <div class="youtube-player" data-id="xNmSUf-y2MM" style="background-image: url('https://i.ytimg.com/vi/xNmSUf-y2MM/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=xNmSUf-y2MM">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><h2 id="h-changing-ip-to-static" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Changing IP to static</h2><ul><li><p>Go to VM instances and click on the name of your VM instance you want to change</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5ee27bee15a1aba0a9d90bce388cd7fd4a28a46ebadfcb75cdf70f973daa162c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Click on edit and scroll down to external iPv4 address</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d9b15e18c6531e5a9f57d5e309796fdf6abb681a269b0e533c7a0b3e2af57520.png" alt="Click on edit and the top left" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click on edit and the top left</figcaption></figure><ul><li><p>Select Reserve static IP address</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2f939826bd8d7134c43d09034210591e573dc1d0e6c164756449245f861f4fc8.png" alt="Select Reserve Static External IP Address" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Select Reserve Static External IP Address</figcaption></figure><ul><li><p>Add your specified tag (Keep that in mind); I used avail as tag</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/530675e001c3aa787a9a93c2016c1f0c7270301332dffa55067c9448378ad2e4.png" alt="Add your specified tag" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Add your specified tag</figcaption></figure><ul><li><p>Click on Save</p></li></ul><h3 id="h-allow-acess-to-all-ips" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Allow Acess to all IPs</h3><ol><li><p>In Google Cloud Console, go to &quot;VPC network&quot; and select &quot;Firewall rules.&quot;</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c26288f2f996892e824f3a6d7c6f3bd2848ce4ed09745f3cad0b3b2629ccf71f.png" alt="Search VPC networks" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Search VPC networks</figcaption></figure><p>2. Click on &quot;Create Firewall Rule.&quot;</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7aa2425afc0498f62bbce474ed051cb402418ea170eec98e8762a76b375920f4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Give your rule a name.</p></li><li><p>Set the &quot;Source IP ranges&quot; to <code>0.0.0.0/0</code> to allow traffic from any IP, add a tag which you added to your VM. eg: avail</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/80d86f4735df067a64c901b214f88dfb0716aeb73063b216e02f9dea015ffa79.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>*</p><ul><li><p>Set the &quot;Allowed protocols and ports&quot; to the specific protocols and ports your application requires (e.g., <code>tcp:80</code> for HTTP).</p></li><li><p>Click &quot;Create&quot; to save the rule.</p></li></ul><h2 id="h-creating-a-pr-on-github" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Creating a PR on github</h2><ul><li><p>Navigate to the avail listing repository and click on create new file:</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e16e3db17564ddb76659047a6f1b978c4afe166d03585a3eaf99c5b7bc0ff2ff.png" alt="Click on create file" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click on create file</figcaption></figure><ul><li><p>Generate your UUID with this UUID generator. Use that as your file name (UID.json):</p></li></ul><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.uuidgenerator.net/version4">https://www.uuidgenerator.net/version4</a></p><ul><li><p>Copy UUID</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6dc85deca5c1af3ecd49f8b52458e724b2d6e376790809192a70f573cb54dc73.png" alt="Copy UUID" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Copy UUID</figcaption></figure><ul><li><p>Paste UUID as file name and paste this sample content in the file:</p><pre data-type="codeBlock" text="{
  &quot;name&quot;: &quot;Hoodrun&quot;,
  &quot;logo&quot;: &quot;https://r.resimlink.com/qkPWGUVwSd1T.webp&quot;,
  &quot;rpc_url&quot;: &quot;http://206.189.8.43:9944&quot;,
  &quot;explorer_url&quot;: &quot;http://206.189.8.43:4000&quot;,
  &quot;metrics_endpoint&quot;: &quot;http://206.189.8.43:9615/metrics&quot;,
  &quot;id&quot;: &quot;f280baa2-7da6-4f6d-96fc-5b89008561d9&quot;
}
"><code><span class="hljs-punctuation">{</span>
  <span class="hljs-attr">"name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Hoodrun"</span><span class="hljs-punctuation">,</span>
  <span class="hljs-attr">"logo"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"https://r.resimlink.com/qkPWGUVwSd1T.webp"</span><span class="hljs-punctuation">,</span>
  <span class="hljs-attr">"rpc_url"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"http://206.189.8.43:9944"</span><span class="hljs-punctuation">,</span>
  <span class="hljs-attr">"explorer_url"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"http://206.189.8.43:4000"</span><span class="hljs-punctuation">,</span>
  <span class="hljs-attr">"metrics_endpoint"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"http://206.189.8.43:9615/metrics"</span><span class="hljs-punctuation">,</span>
  <span class="hljs-attr">"id"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"f280baa2-7da6-4f6d-96fc-5b89008561d9"</span>
<span class="hljs-punctuation">}</span>
</code></pre></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/dfb1a1536728ae25a4a3dad2d4e16bacc96b0e250fa1d8b175538c7e61ea0240.png" alt="Paste sample content in file" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Paste sample content in file</figcaption></figure><ul><li><p>Now start editing by copying your static IP and replacing with the existing IP. Don’t forget to paste your UUID as ID. You can upload and generate your image url with the link below:</p></li></ul><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://imgbb.com/">https://imgbb.com/</a></p><ul><li><p>Now click commit changes and choose propose changes:</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e178df5cde02779e02d4299552fb322d407cda6b8c7c02b8b83367e8683e62a4.png" alt="Click Propose Change" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click Propose Change</figcaption></figure><ul><li><p>Click on “create pull request” button</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/183f7e2fb3c65d86ca98d9df58ae3a5df70561d1df5f5962d4865a4c4190e887.png" alt="Click create pull request" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click create pull request</figcaption></figure><ul><li><p>Use same format in the image below and replace AppchainName with your appchain name</p></li><li><br></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0d78a2e1613fc5045179b6d051d61dddeaccc1a085663aef0e6f9da02d1b8b3f.png" alt="Click on create pull request" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click on create pull request</figcaption></figure><ul><li><p>Now click create pull request and make sure it passes the checks and able to merge</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ea158da95f623ce1514a4a4d3f5e2f2d8019bb4cb6b5cc8f00c539b10533f8c3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><blockquote><p>THAT’s IT! YOU’VE COME TO A SUCCESSFUL END!!!!</p></blockquote>]]></content:encoded>
            <author>pnokn@newsletter.paragraph.com (0xPeter)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/6b22f3fea830b3024cb707114da244261b4dfd5a6e602ee1a27a563fd50a09b8.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Part 2 - Creating an Avail appchain and deploying with Madara cli]]></title>
            <link>https://paragraph.com/@pnokn/part-2-creating-an-avail-appchain-and-deploying-with-madara-cli</link>
            <guid>JfJDFQf72ydINmcAUjNx</guid>
            <pubDate>Sun, 04 Feb 2024 16:10:56 GMT</pubDate>
            <description><![CDATA[If you are reading this article, then I believe you are coming from the part 1 of this. If not checkout previous article: https://mirror.xyz/pnokn.eth/bd1i3oCnv2HAUgZm16NJ8kzl0SIrzoNoQYEuSX5ArIw Welcome to Part 2 - A simple guide to help you deploy your avail appchain: Now that you’ve created your VM you can SSH into your terminal and install these dependencies: Install gitPress Y when neededsudo apt update &#x26;&#x26; sudo apt upgrade -y sudo apt-get install git-all sudo apt-get install cur...]]></description>
            <content:encoded><![CDATA[<p>If you are reading this article, then I believe you are coming from the part 1 of this. If not checkout previous article:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/pnokn.eth/bd1i3oCnv2HAUgZm16NJ8kzl0SIrzoNoQYEuSX5ArIw">https://mirror.xyz/pnokn.eth/bd1i3oCnv2HAUgZm16NJ8kzl0SIrzoNoQYEuSX5ArIw</a></p><p>Welcome to Part 2 - A simple guide to help you deploy your avail appchain:</p><p>Now that you’ve created your VM you can SSH into your terminal and install these dependencies:</p><div data-type="youtube" videoId="BBNdN_1vigI">
      <div class="youtube-player" data-id="BBNdN_1vigI" style="background-image: url('https://i.ytimg.com/vi/BBNdN_1vigI/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=BBNdN_1vigI">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><h2 id="h-install-git" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Install git</h2><h3 id="h-press-y-when-needed" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Press Y when needed</h3><pre data-type="codeBlock" text="sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt-get install git-all
sudo apt-get install curl
"><code>sudo apt update <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> sudo apt upgrade <span class="hljs-operator">-</span>y
sudo apt<span class="hljs-operator">-</span>get install git<span class="hljs-operator">-</span>all
sudo apt<span class="hljs-operator">-</span>get install curl
</code></pre><h2 id="h-install-rust" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Install Rust</h2><pre data-type="codeBlock" text="curl --proto &apos;=https&apos; --tlsv1.2 -sSf https://sh.rustup.rs | sh
"><code>curl <span class="hljs-operator">-</span><span class="hljs-operator">-</span>proto <span class="hljs-string">'=https'</span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>tlsv1<span class="hljs-number">.2</span> <span class="hljs-operator">-</span>sSf https:<span class="hljs-comment">//sh.rustup.rs | sh</span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b1defe40899a4602faab1b61ae4721ae72936f67a43d8705a384838872ff78fc.png" alt="Choose option 1 by pressing 1 and enter" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Choose option 1 by pressing 1 and enter</figcaption></figure><pre data-type="codeBlock" text="source &quot;$HOME/.cargo/env&quot;
"><code><span class="hljs-built_in">source</span> <span class="hljs-string">"<span class="hljs-variable">$HOME</span>/.cargo/env"</span>
</code></pre><p><strong>Install Necessary Dependencies</strong></p><pre data-type="codeBlock" text="sudo apt update
sudo apt upgrade
sudo apt install build-essential

sudo apt install pkg-config
sudo apt install libssl-dev
sudo apt install clang
sudo apt install protobuf-compiler
"><code>sudo apt update
sudo apt upgrade
sudo apt install build<span class="hljs-operator">-</span>essential

sudo apt install pkg<span class="hljs-operator">-</span>config
sudo apt install libssl<span class="hljs-operator">-</span>dev
sudo apt install clang
sudo apt install protobuf<span class="hljs-operator">-</span>compiler
</code></pre><h2 id="h-install-docker" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Install Docker</h2><p>Docker installation guide for Ubuntu can be found here:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.docker.com/engine/install/ubuntu/">https://docs.docker.com/engine/install/ubuntu/</a></p><p>Run the following command to uninstall all conflicting packages:</p><pre data-type="codeBlock" text="for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-
docker containerd runc; do sudo apt-get remove $pkg; done
"><code><span class="hljs-keyword">for</span> pkg in docker.io docker<span class="hljs-operator">-</span>doc docker<span class="hljs-operator">-</span>compose docker<span class="hljs-operator">-</span>compose<span class="hljs-operator">-</span>v2 podman<span class="hljs-operator">-</span>
docker containerd runc; do sudo apt<span class="hljs-operator">-</span>get remove $pkg; done
</code></pre><p>Set up Docker&apos;s <code>apt</code> repository.</p><pre data-type="codeBlock" text="# Add Docker&apos;s official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  &quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release &amp;&amp; echo &quot;$VERSION_CODENAME&quot;) stable&quot; | \
  sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
sudo apt-get update
"><code><span class="hljs-comment"># Add Docker's official GPG key:</span>
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo <span class="hljs-built_in">chmod</span> a+r /etc/apt/keyrings/docker.asc

<span class="hljs-comment"># Add the repository to Apt sources:</span>
<span class="hljs-built_in">echo</span> \
  <span class="hljs-string">"deb [arch=<span class="hljs-subst">$(dpkg --print-architecture)</span> signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  <span class="hljs-subst">$(. /etc/os-release &#x26;&#x26; echo <span class="hljs-string">"<span class="hljs-variable">$VERSION_CODENAME</span>"</span>)</span> stable"</span> | \
  sudo <span class="hljs-built_in">tee</span> /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
</code></pre><p>To install the latest version, run:</p><pre data-type="codeBlock" text="sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
"><code>sudo apt<span class="hljs-operator">-</span>get install docker<span class="hljs-operator">-</span>ce docker<span class="hljs-operator">-</span>ce<span class="hljs-operator">-</span>cli containerd.io docker<span class="hljs-operator">-</span>buildx<span class="hljs-operator">-</span>plugin docker<span class="hljs-operator">-</span>compose<span class="hljs-operator">-</span>plugin
</code></pre><p>Verify that the Docker Engine installation is successful by running the <code>hello-world</code> image.</p><pre data-type="codeBlock" text="sudo docker run hello-world
"><code>sudo docker run hello-world
</code></pre><h2 id="h-install-madara-cli" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Install Madara CLI</strong></h2><h3 id="h-clone-git-repo" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Clone git repo</h3><pre data-type="codeBlock" text="git clone https://github.com/karnotxyz/madara-cli
"><code>git <span class="hljs-built_in">clone</span> https://github.com/karnotxyz/madara-cli
</code></pre><h3 id="h-cd-into-madara-cli-and-run-build" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Cd into Madara CLI and run build</h3><pre data-type="codeBlock" text="cd madara-cli
cargo build --release
"><code>cd madara<span class="hljs-operator">-</span>cli
cargo build <span class="hljs-operator">-</span><span class="hljs-operator">-</span>release
</code></pre><h2 id="h-install-screen-and-start-new-screen-session" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Install Screen and start new screen session</h2><pre data-type="codeBlock" text="sudo apt install screen
screen -S madara
"><code>sudo apt install screen
screen <span class="hljs-operator">-</span>S madara
</code></pre><h2 id="h-initialize-your-appchain-and-get-avail-address" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Initialize your Appchain and get Avail Address</h2><p>Press Y when needed for yes</p><pre data-type="codeBlock" text="./target/release/madara init
"><code>./target<span class="hljs-operator">/</span>release<span class="hljs-operator">/</span>madara init
</code></pre><h3 id="h-fund-your-wallet-here" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Fund your wallet here:</h3><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/invite/availproject">https://discord.com/invite/availproject</a></p><p>To access the faucet you need to verify that your gitcoin passport has a score of &gt; 20. Click the link below to verify:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://passport-verifier.avail.tools/">https://passport-verifier.avail.tools/</a></p><p>After verification you have access to the discord channel. Now go to #appchain-builders and click on Agree to get access to the faucet:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ae364a14fb742fa893fc74956d7a7f8e66c1cab1dbc539c9cc338e088169b8e8.png" alt="Click Agree to get access to faucet" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click Agree to get access to faucet</figcaption></figure><p>Request faucet from #goldberg-faucet channel with command:</p><pre data-type="codeBlock" text="/deposit-rollup &lt;Avail Address&gt;
"><code><span class="hljs-operator">/</span>deposit<span class="hljs-operator">-</span>rollup <span class="hljs-operator">&#x3C;</span>Avail Address<span class="hljs-operator">></span>
</code></pre><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9baf243816d23e8808456e299868ccd465771fd019178a888910c442d1c0ad00.png" alt="Enter address to get faucet" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Enter address to get faucet</figcaption></figure><h2 id="h-run-the-appchain" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Run the Appchain</h2><pre data-type="codeBlock" text="./target/release/madara run
"><code>./target<span class="hljs-operator">/</span>release<span class="hljs-operator">/</span>madara run
</code></pre><p>To detach screen whilst running in background press <code>Ctrl + A + D</code></p><h3 id="h-open-ports" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Open Ports</h3><pre data-type="codeBlock" text="sudo apt install ufw
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 9944
sudo ufw allow 4000
sudo ufw allow 9615
sudo ufw allow 30333
"><code><span class="hljs-string">sudo</span> <span class="hljs-string">apt</span> <span class="hljs-string">install</span> <span class="hljs-string">ufw</span>
<span class="hljs-string">sudo</span> <span class="hljs-string">ufw</span> <span class="hljs-string">enable</span>
<span class="hljs-string">sudo</span> <span class="hljs-string">ufw</span> <span class="hljs-string">allow</span> <span class="hljs-string">ssh</span>
<span class="hljs-string">sudo</span> <span class="hljs-string">ufw</span> <span class="hljs-string">allow</span> <span class="hljs-number">9944</span>
<span class="hljs-string">sudo</span> <span class="hljs-string">ufw</span> <span class="hljs-string">allow</span> <span class="hljs-number">4000</span>
<span class="hljs-string">sudo</span> <span class="hljs-string">ufw</span> <span class="hljs-string">allow</span> <span class="hljs-number">9615</span>
<span class="hljs-string">sudo</span> <span class="hljs-string">ufw</span> <span class="hljs-string">allow</span> <span class="hljs-number">30333</span>
</code></pre><h3 id="h-start-explorer" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Start explorer</h3><pre data-type="codeBlock" text="./target/release/madara explorer
"><code>./target<span class="hljs-operator">/</span>release<span class="hljs-operator">/</span>madara explorer
</code></pre><p>Record your IP and access explorer with your IP and port number:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://YourIP:Port">http://YourIP:Port</a></p>]]></content:encoded>
            <author>pnokn@newsletter.paragraph.com (0xPeter)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/6b22f3fea830b3024cb707114da244261b4dfd5a6e602ee1a27a563fd50a09b8.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Prerequisite: Avail Karnot-Madara Appchain + Setting up Google Cloud Instance]]></title>
            <link>https://paragraph.com/@pnokn/prerequisite-avail-karnot-madara-appchain-setting-up-google-cloud-instance</link>
            <guid>3lCZvtkARBmc4fkt5AhH</guid>
            <pubDate>Sun, 04 Feb 2024 09:27:17 GMT</pubDate>
            <description><![CDATA[The “Madara x Karnot Appchain challenge” is part of the Clash of Nodes incentivized testnet. You can check out the full documentation by Avail to get started: https://docs.availproject.org/clash-of-nodes/madara-karnot/PrerequisitesGithub AccountGitcoin passport score > 20Avail Wallet (Subwallet by Polkadot)VPS/ VM Instance (Google Cloud)Discord Account GithubYou can setup your github account by signing up at https://github.com/signup . Fill in the neccessary information to get started. https:...]]></description>
            <content:encoded><![CDATA[<p>The “Madara x Karnot Appchain challenge” is part of the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.availproject.org/category/clash-of-nodes/">Clash of Nodes</a> incentivized testnet. You can check out the full documentation by Avail to get started:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.availproject.org/clash-of-nodes/madara-karnot/">https://docs.availproject.org/clash-of-nodes/madara-karnot/</a></p><h2 id="h-prerequisites" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Prerequisites</strong></h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/">Github</a> Account</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://passport.gitcoin.co/#/">Gitcoin passport</a> score &gt; 20</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://etherscan.io/address/onhogfjeacnfoofkfgppdlbmlmnplgbn">Avail Wallet</a> (Subwallet by Polkadot)</p></li><li><p>VPS/ VM Instance (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://console.cloud.google.com/">Google Cloud</a>)</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/">Discord Account</a></p></li></ul><div data-type="youtube" videoId="1hh3yIX0zQU">
      <div class="youtube-player" data-id="1hh3yIX0zQU" style="background-image: url('https://i.ytimg.com/vi/1hh3yIX0zQU/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=1hh3yIX0zQU">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><h3 id="h-github" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Github</strong></h3><p>You can setup your github account by signing up at</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/signup">https://github.com/signup</a></p><p>. Fill in the neccessary information to get started.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/">https://github.com/</a></p><h3 id="h-gitcoin-passport" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Gitcoin passport:</h3><p>In order to join the discord channel you need a gitcoin passport score above 20. Head to</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://passport.gitcoin.co/#/">https://passport.gitcoin.co/#/</a></p><ul><li><p>Connect you wallet by clicking sign in with Ethereum:</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c8fc2adc73ffd110af10e31c473547f727cc8c74832dc30dce82a1f044c7fd15.png" alt="Click on sig in with ethereum to get started" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click on sig in with ethereum to get started</figcaption></figure><ul><li><p>Select a wallet preferably metamask (I chose Zeal in the image):</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6db764e3bf85726da4138c4e3d90db899af654aad578b54f9e1ae69413b00835.png" alt="Select a wallet provider of your choice: Metamask, Zeal , Phantom" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Select a wallet provider of your choice: Metamask, Zeal , Phantom</figcaption></figure><ul><li><p>Click on go to dashboard</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/515182ab0837d94c7e4731eee1bd64ec5629dc19929d6a7d9e791f1a6d60421d.png" alt="Click on &quot;Go to Dashboard&quot; button" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click on &quot;Go to Dashboard&quot; button</figcaption></figure><ul><li><p>Complete all tasks to add stamp till you get a score of 20 and above</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7799bcab469263cf1e84562cef6c6dc57f45e3439ea47d12ec4c03b2201e9cb3.png" alt="Complete task and get stamps to increase your passport score" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Complete task and get stamps to increase your passport score</figcaption></figure><h3 id="h-avail-wallet" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Avail Wallet</h3><p>To set up your avail wallet head to:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.subwallet.app/">https://www.subwallet.app/</a></p><ul><li><p>Click on extension and choose your browser</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fe9fe45b84653f43c67bf35f8e56aa7fe0cc1fd489abd66e86552529ada7b43e.png" alt="Click on extension to choose your native browser" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click on extension to choose your native browser</figcaption></figure><ul><li><p>Select your native browser (I chose brave browser since that it what I used). You will be redirected to your browser store to install the extension</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/25eae60fa0cae375632f81b2dde601f229126c7d450cff7791cb23633c5ae3a2.png" alt="Choose any browser of your choice" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Choose any browser of your choice</figcaption></figure><h3 id="h-vps-or-vm-instance-i-used-gcp" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">VPS or VM instance (I used GCP)</h3><p>I used google cloud as Virtual Machine instance but you can try other platforms like AWS.</p><p>Here’s the minimum specifications needed:</p><ul><li><p>4 Core CPU</p></li><li><p>8GB RAM</p></li><li><p>160GB SSD</p></li></ul><p>To get started with GCP, head to:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://console.cloud.google.com/">https://console.cloud.google.com/</a></p><ul><li><p>Set up your account for free $300 for 3 months if that’s your first time (You wont be charged until you activate a full account)</p></li><li><p>Head to Compute Engine &gt; VM instances</p></li><li><br></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7e62faac9a76def7a9efe54ff33d2697adceade074d0f9471efdbb7a59678217.png" alt="Click options on your top left corner &gt; Compute Engine &gt; VM Instances" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click options on your top left corner &gt; Compute Engine &gt; VM Instances</figcaption></figure><ul><li><p>Click on create instance</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/118e9c7a083f6647de1a2d90ada18ab69a769f6e2ebad41aef8827d4da0df3ec.png" alt="Click create instance" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click create instance</figcaption></figure><ul><li><p>Enter the instance name of your choice or leave default. (No caps)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ba72450336103a7ddb65a74c5c2c91d5b6df2967373be4897cb45e57a01b5df6.png" alt="instance-1 is the default instance name and select any zone" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">instance-1 is the default instance name and select any zone</figcaption></figure><ul><li><p>Head to Machine type and click on custom tab:</p><p>Choose 8vCPU (4 core) and 8 GB RAM (You can select higher for better efficiency)</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c80712b86af3eac3751c4f360116fc771610a270ce8d102b49a41878abf9e1d1.png" alt="Choose RAM and memory specifications" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Choose RAM and memory specifications</figcaption></figure><ul><li><p>Check Allow HTTPS traffic and click on change under boot disk</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8a2140792af6ef27abaa0b43f8e99ea7a78b38243e97bcde823e0634cdf849ff.png" alt="Click change under boot disk and check the first two options under firewall" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Click change under boot disk and check the first two options under firewall</figcaption></figure><ul><li><p>Choose the following under boot disk:</p><p>OS: Ubuntu</p><p>Version: Ubuntu 22.04 LTS (x86/64, amd64 focal image built on 2024-01-25)</p><p>Boot disk type: SSD</p><p>Size: 160 GB</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/aebdd2173ad14e9e8d81b1b2ced56146af980879dca6047354c1bfd493635ed5.png" alt="Select the following requirements for boot disk" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Select the following requirements for boot disk</figcaption></figure><ul><li><p>Click on Select after adding and click create to create your VM.</p></li></ul><h3 id="h-discord-account" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Discord Account</h3><p>Head to:</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discord.com/app">https://discord.com/app</a></p>]]></content:encoded>
            <author>pnokn@newsletter.paragraph.com (0xPeter)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/6b22f3fea830b3024cb707114da244261b4dfd5a6e602ee1a27a563fd50a09b8.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Providing Gasless Transactions to Users Through Account Abstraction
]]></title>
            <link>https://paragraph.com/@pnokn/providing-gasless-transactions-to-users-through-account-abstraction</link>
            <guid>K9G8EurY3RrGljE3ZCDR</guid>
            <pubDate>Mon, 18 Sep 2023 08:45:42 GMT</pubDate>
            <description><![CDATA[IntroductionSince the launch of Bitcoin more than ten years ago, the blockchain and cryptocurrency industries have made incredible strides. Decentralized apps (DApps) may now run on Ethereum&apos;s blockchain thanks to the notion of smart contracts, which was pioneered by the cryptocurrency. The gas prices necessary for transaction execution are a continuous issue, nevertheless, that prevents the mainstream adoption of these DApps. Here, the idea of "Account Abstraction" enters the picture. B...]]></description>
            <content:encoded><![CDATA[<h2 id="h-introduction" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Introduction</h2><p>Since the launch of Bitcoin more than ten years ago, the blockchain and cryptocurrency industries have made incredible strides. Decentralized apps (DApps) may now run on Ethereum&apos;s blockchain thanks to the notion of smart contracts, which was pioneered by the cryptocurrency. The gas prices necessary for transaction execution are a continuous issue, nevertheless, that prevents the mainstream adoption of these DApps. Here, the idea of &quot;Account Abstraction&quot; enters the picture. By enabling gasless transactions, it seeks to transform how users interact with blockchain networks. This essay will examine account abstraction and how it might increase the accessibility and affordability of cryptocurrency transactions for all consumers.</p><h3 id="h-understanding-gas-fees" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Understanding Gas Fees</h3><p>Before delving into account abstraction, it&apos;s crucial to comprehend the issue it aims to address: gas fees. Gas fees are the costs associated with executing transactions or smart contracts on blockchain networks like Ethereum. These fees serve several purposes, including compensating miners for securing the network and preventing spam attacks. However, they have become a significant barrier for many users, especially those with limited resources or those new to the world of cryptocurrencies.</p><h2 id="h-the-challenge-of-gas-fees" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The Challenge of Gas Fees</h2><p>Depending on the transaction&apos;s intricacy and network congestion, gas prices on blockchain networks might vary greatly. Gas prices might soar during times of great demand, such as when a well-liked DApp opens or during a market frenzy, making straightforward transactions prohibitively expensive. Users that want to use DeFi protocols, NFT marketplaces, or other blockchain applications but are discouraged by the unpredictable nature and high cost of gas fees have a difficulty because of this.</p><p><strong>Account Abstraction: A Solution to Gas Fees</strong></p><p>By isolating the fee payer from the transaction sender, the idea of account abstraction aims to lessen the cost of gas taxes. The sender of a transaction pays the gas fees necessary for its execution in conventional blockchain systems. In an account abstraction system, the sender&apos;s fees may be paid by a third party or smart contract. This paradigm change has the following advantages:</p><ol><li><p><strong>Gasless Transactions</strong>: With account abstraction, users can make transactions without holding any native cryptocurrency (like Ether in Ethereum) to pay for gas. Instead, a third party, often a DApp developer, can subsidize or cover the gas costs, making transactions more accessible to a broader audience.</p></li><li><p><strong>User-Friendly Experience</strong>: Account abstraction simplifies the user experience by eliminating the need to manage cryptocurrency for gas payments. This makes blockchain applications more user-friendly, especially for those who are new to the space.</p></li><li><p><strong>Cost Predictability</strong>: Users can have more predictable and stable transaction costs, as the gas fees are determined and covered by the third party or smart contract.</p></li><li><p><strong>Mass Adoption</strong>: By removing the gas barrier, account abstraction can open the door to mass adoption of decentralized applications and blockchain technology. Users no longer need to worry about the intricacies of gas fees, making it easier for them to engage with DApps.</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/221659c370768363a00f8c3011a89f9e57f9e2a2fb446765685d21ee75c75d95.jpg" alt="Account abstraction supercharges Ethereum wallets" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Account abstraction supercharges Ethereum wallets</figcaption></figure><p><strong>Challenges and Considerations</strong></p><p>While account abstraction offers promising solutions to the gas fee problem, it also presents some challenges and considerations:</p><ol><li><p><strong>Security</strong>: Account abstraction requires careful implementation to ensure that third parties cannot abuse the system for malicious purposes. Security measures must be robust to protect users&apos; interests.</p></li><li><p><strong>Decentralization</strong>: Critics argue that account abstraction could centralize control in the hands of a few entities or smart contracts that cover gas fees. Striking a balance between convenience and decentralization is crucial.</p></li><li><p><strong>Economic Model</strong>: Developers must design sustainable economic models for subsidizing gas fees through account abstraction, ensuring that it remains economically viable over the long term.</p></li></ol><h2 id="h-conclusion" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Conclusion</h2><p>Account abstraction holds the promise of making blockchain transactions more accessible and affordable for users by eliminating the need to manage gas fees. This innovation has the potential to unlock new possibilities for decentralized applications, ultimately paving the way for broader adoption of blockchain technology. However, as with any groundbreaking concept, careful development, security considerations, and community involvement will be essential to ensure that account abstraction serves the best interests of the cryptocurrency ecosystem and its users. With these challenges addressed, we can look forward to a future where gasless transactions become the norm, empowering users to engage with blockchain technology without the fear of prohibitive fees.</p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div>]]></content:encoded>
            <author>pnokn@newsletter.paragraph.com (0xPeter)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/e0f32329065d8ae58c45aa275266c32d7bacba9ed2ef6fe7b14ab681ce0e3009.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>