<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Napat</title>
    <description>The latest articles on DEV Community by Napat (@supercipher).</description>
    <link>https://dev.to/supercipher</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F150965%2F56992212-2bea-479d-a03e-56f2d7823152.jpg</url>
      <title>DEV Community: Napat</title>
      <link>https://dev.to/supercipher</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/supercipher"/>
    <language>en</language>
    <item>
      <title>Decentralized Application Gold Standard</title>
      <dc:creator>Napat</dc:creator>
      <pubDate>Wed, 18 Sep 2024 16:06:32 +0000</pubDate>
      <link>https://dev.to/supercipher/decentralized-application-gold-standard-3ohn</link>
      <guid>https://dev.to/supercipher/decentralized-application-gold-standard-3ohn</guid>
      <description>&lt;h1&gt;
  
  
  Decentralized Application Gold Standard
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Guideline to create a decentralized app that lives up to its promise inspired by &lt;a href="https://12factor.net/" rel="noopener noreferrer"&gt;https://12factor.net/&lt;/a&gt; but for decentralization application&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Security&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;All Dapp must strive to rely only on the interface from wallet e.g. RPC, API&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The wallet should have the ability to stub (replace) mainnet with fork mainnet enabling users to interact Dapp as if they were always on mainnet&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dapp should not know nor care if it is connected to fork mainnet or live mainnet&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wallet should have the ability to simulate transactions on fork mainnet before submitting transaction And have the UI compare and highlight the delta between the state of the wallet before and after submitting transaction e.g. Wallet balance and Token Ownership.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dapp and Smart-contract should strive to use the same dependency for readability and consolidate testing and auditing efforts e.g. Use the same version of Ether.js v6.13.2 use the same ERC 721 standard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dapp must not show nor rely on stale data&lt;br&gt;
Testability&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wallet should have intuitive UI to &lt;a href="https://yos.io/2021/09/11/real-world-contract-development-forking-mainnet/#impersonating-as-other-accounts" rel="noopener noreferrer"&gt;impersonate as other account&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dapp testing should limit the use of testnet as much as possible since they are not representative of the actual mainnet e.g. Compound Ethereum Sepolia Testnet doesn't have LINK contract deployed like Ethereum Mainnet&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Transparency&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Dapp must clearly disclose all contract addresses that Dapp interacts with on the current chain&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dapp must clearly disclose all API URLs that Dapp is relying on&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dapp must not be compressed minified, or uglified by the client&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dapp must clearly disclose links to all code repositories, assets, and artifact&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Even though some of these are impractical at the moment we should try hard to live up to the decentralized promise&lt;/p&gt;

&lt;p&gt;follow latest story here &lt;a href="https://leiden.capital/article/decentralization-gold-standard/" rel="noopener noreferrer"&gt;https://leiden.capital/article/decentralization-gold-standard/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Co-author: Callum&lt;/p&gt;

</description>
      <category>dapp</category>
      <category>security</category>
      <category>transparency</category>
      <category>standard</category>
    </item>
  </channel>
</rss>
