{"id":921,"date":"2022-11-12T08:28:48","date_gmt":"2022-11-12T08:28:48","guid":{"rendered":"http:\/\/oqtacore-blog-473533498.us-east-1.elb.amazonaws.com\/?p=921"},"modified":"2022-12-15T16:18:52","modified_gmt":"2022-12-15T16:18:52","slug":"7-steps-to-build-a-dapp","status":"publish","type":"post","link":"https:\/\/oqtacore.com\/blog\/7-steps-to-build-a-dapp\/","title":{"rendered":"What is a DApp? 7 steps to build a decentralized app"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">DApp is an app that runs on blockchain instead of centralized servers. This means that the app data is not stored by an individual or a developer, but by users themselves; everyone has a copy of the data.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Decentralized apps are now very popular. In Q1 2022, the number of DApp users <\/span><a href=\"https:\/\/cointelegraph.com\/news\/report-dapp-daily-users-surge-to-2-4m-in-q1-2022-despite-headwinds\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">surged to 2.4 million<\/span><\/a><span style=\"font-weight: 400;\">, a 396% increase from last year.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">But how do we know which app is decentralized and which is not? And what&#8217;s the difference between developing a Web3 DApp and a regular app? OQTACORE has put together answers to all these questions.<\/span><\/p>\n<h3><b>Smart contracts<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">At the heart of DApps is a special algorithm for the app\u2019s backend; a smart contract that demonstrates all the business logic.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">Smart contracts are codes that automatically execute commands according to given terms and conditions. They work on the \u201cif-then\u201d principle: all app users agree on a set of rules, and IF each party fulfills them, THEN the transaction takes place in the app on the blockchain.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let&#8217;s look at an example. For user A of a decentralized application to get a ticket from user B for a concert in the Roblox metaverse, he will have to pay 0.3 ETH. He doesn&#8217;t have to worry that the transaction won&#8217;t go through or that user B would change the price of the ticket or not send it at all. The smart contract ensures that the ticket would come automatically after payment, and no one can change the terms of the transaction.<\/span><\/p>\n<h3><b>How is DApp different from regular apps?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">For the user, there&#8217;s no difference. Most DApps have the same GUI as regular apps. But the fundamental difference is that a DApp allows you to interact with the blockchain and also most DApps would require you to sign your transactions using your wallet on the blockchain.\u00a0<\/span><\/p>\n<h3><b><\/b><b>Examples of DApps<\/b><b>:<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/h3>\n<ul>\n<li><b>Pancake Swap: <\/b><span style=\"font-weight: 400;\">a crypto exchange, part of Binance Smart Chain; enables its users to swap BEP-20 standard tokens\u00a0<\/span><\/li>\n<li><b>Upland: <\/b><span style=\"font-weight: 400;\">an EOS-based game; real estate in the metaverse that can be bought, exchanged, and sold for real assets<\/span><\/li>\n<li><b>OpenSea: <\/b><span style=\"font-weight: 400;\">one of the largest NFT marketplaces at the moment; first was developed on the Ethereum network but later integrated on the Polygon blockchain.<\/span><\/li>\n<\/ul>\n<p>So, we have figured out the basic features of the apps, and now let&#8217;s move on to how to develop a DApp.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_to_build_a_DApp_7_steps\"><\/span><b>How to build a DApp: 7 steps<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><b><\/b><b>1. Define the problem<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Or what your app should do. This can be a decentralized counterpart of a Web2 app, like Uber or Twitter, or something relevant for Web3: a marketplace, a blockchain game, or even a decentralized recruitment website. The main thing is to solve the consumer&#8217;s real problem.\u00a0<\/span><\/p>\n<h3><b>2. Write a proof of concept (POC)<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">But just an idea is not enough; you need to prove that your app idea is viable. This requires a <\/span><b>proof of concept<\/b><span style=\"font-weight: 400;\">, which will test your Web3 DApp with minimal overhead. And if you don&#8217;t know how to develop a proof of concept, feel free to contact <\/span><a href=\"https:\/\/oqtacore.com\/team-extension\/\"><span style=\"font-weight: 400;\">OQTACORE development team<\/span><\/a><span style=\"font-weight: 400;\">.\u00a0\u00a0<\/span><\/p>\n<h3><b>3. Choose a tech stack<\/b><b><\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Now let&#8217;s move on to the technical part. First, let&#8217;s choose the tools: the technical stack depends on the specific app idea and its functionality. For example, OQTACORE uses the Truffle suite, Ganache, Solidity programming language, and Remix environment to develop Ethereum DApps.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To create the interface, we use React.js, Node.js and Web3.js for the web version, and React Native for mobile devices.<\/span><b><\/b><\/p>\n<h3><b>4. Choose a DApp blockchain and build a smart contract\u00a0<\/b><b><\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Choose the blockchain(s) on which the app will run. If you plan to create a DApp with transaction-based actions, the Ethereum Network or Polygon will be suitable for that. These blockchains are often chosen for the first unsophisticated DApp, as they are easier to write a smart contract for due to huge community support and the abundance of third-party tools such as Infura and Moralis.\u00a0<\/span><b><\/b><\/p>\n<h3><b>5. Add cryptocurrency wallet support<\/b><b><\/b><\/h3>\n<p><span style=\"font-weight: 400;\">First of all, add a crypto wallet support. This would enable users to connect their wallets via which they would be receiving cryptocurrency or NFTas bonuses and rewards. We recommend making it possible for users to connect multiple wallets because the typical user today has two or more crypto wallets. Moreover, there are more and more wallets themselves, and you should not be limited to Metamask, Coinbase or Binance.\u00a0<\/span><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%;\"><span style=\"font-weight: 400;\"><strong>Note:<\/strong> there is a <\/span><i><span style=\"font-weight: 400;\">wallet connect<\/span><\/i><span style=\"font-weight: 400;\"> protocol, which 99% of wallets are compatible with. Its connection solves the problem of connecting almost all existing wallets.\u00a0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><b>6. Choose a backend architecture<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">There are two types of DApps: transactional and those supported by centralized servers. We&#8217;ve already described the first ones in detail at the very beginning of this article. They work solely with smart contracts, e.g. to pay a user bonus, to transfer NFTs or to perform any network action within the app. This type of app does not need additional servers to run and only needs blockchain. They are designed for enthusiasts and are not very popular.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The second type of app, on the other hand, is trickier, because its functions include not only the execution of transactions but also other actions that still require a server part, as well as a user interface. Servers, for example, will store information about a user&#8217;s social network DApp profile. This data cannot simply be written into the blockchain. Such apps are similar to classic apps and the bulk of people use them.\u00a0<\/span><br \/>\n<b><\/b><\/p>\n<h3><b>7. Don&#8217;t forget about the Interface<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Nowadays not a single app, including decentralized ones, can do without a well thought-out UX design. How to design an interface and what are the features of a UI\/UX design, we\u2019ve discussed in the articles \u201c<\/span><span style=\"text-decoration: underline;\"><a href=\"http:\/\/oqtacore-blog-473533498.us-east-1.elb.amazonaws.com\/ux-design-in-modern-business\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">UX design in modern business: what is it and what are its stages?<\/span><\/a><span style=\"font-weight: 400;\">\u201d and \u201c<\/span><a href=\"http:\/\/oqtacore-blog-473533498.us-east-1.elb.amazonaws.com\/ux-ui-design-for-todays-blockchain-platforms\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">UX\/UI design for today\u2019s blockchain platforms<\/span><\/a><\/span><span style=\"font-weight: 400;\">\u201d.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Based on how DApps are structured, they come with advantages and disadvantages.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Advantages_of_DApps\"><\/span><b>Advantages of DApps:<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Anti-censorship. <\/b><span style=\"font-weight: 400;\">No government or organization can prevent users from working with DApp, prohibit them from conducting transactions, deploying applications or reading data from the blockchain.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Anonymity. <\/b><span style=\"font-weight: 400;\">Most DApps don&#8217;t require your personal information \u2013 a digital wallet is enough to sign up.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Fail-safe operation. <\/b><span style=\"font-weight: 400;\">DApp smart contracts work 24\/7 and will continue to work as long as the app&#8217;s blockchain exists.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Data immutability. <\/b><span style=\"font-weight: 400;\">Cryptography ensures that data recorded on the blockchain cannot be falsified. Besides, users can verify transactions themselves thanks to open source, which is why the DApp security has increased.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Disadvantages_of_DApps\"><\/span><b>Disadvantages <\/b><b>of DApps:<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Too much transparency. <\/b><span style=\"font-weight: 400;\">Since all transactions are available on the blockchain, there is a problem with storing customer data. How do you keep it private from other users? The server part that we described above helps in this, but then app decentralization suffers, and there are no other methods yet.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Usability. <\/b><span style=\"font-weight: 400;\">The user experience of some Web3 DApps leaves a lot to be desired. However, it is likely that the more organizations adopt blockchain, the better the quality of UX design will become.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Maintenance. <\/b><span style=\"font-weight: 400;\">Once the app has been deployed, it is harder for the Ethereum DApp developer to make updates if the app does not have a separate backend. The fact is that a hosted smart contract cannot be modified or deleted at all, so to facilitate updates, data (e.g., user data) is usually moved to servers, but again, then decentralization suffers.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Network delays. <\/b><span style=\"font-weight: 400;\">Sometimes blockchain networks are overloaded especially if the DApp uses too many computing resources\u2014the app speed can be slow.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Despite these limitations, DApps are still the backbone of Web3.0. Blockchain-based apps are becoming more and more numerous, and in the near future they will fill the market, displacing Web2 competitors.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you want to keep up with the trends and you have a DApp idea, but you don&#8217;t have a development team, do not hesitate to contact<span style=\"text-decoration: underline;\"> <a title=\"blockchain\" href=\"https:\/\/www.designrush.com\/agency\/software-development\/blockchain\" target=\"_blank\" rel=\"noopener sponsored\">the OQTACORE team<\/a><\/span> for your DApp development services. We have assembled a full team of specialists, from UI\/UX designers to full stack developers and project managers, who build DApps by all modern standards.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>DApp is an app that runs on blockchain instead of centralized servers. This means that the app data is not stored by an individual or a developer, but by users themselves; everyone has a copy of the data.\u00a0 Decentralized apps are now very popular. In Q1 2022, the number of DApp users surged to 2.4 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_mo_disable_npp":"","yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-921","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":{"image":923},"yasr_visitor_votes":{"number_of_votes":0,"sum_votes":0,"stars_attributes":{"read_only":false,"span_bottom":false}},"_links":{"self":[{"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/posts\/921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/comments?post=921"}],"version-history":[{"count":8,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/posts\/921\/revisions"}],"predecessor-version":[{"id":1034,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/posts\/921\/revisions\/1034"}],"wp:attachment":[{"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/media?parent=921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/categories?post=921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/tags?post=921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}