<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ crypto - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ crypto - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 27 Jul 2026 15:22:57 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/crypto/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ The New Creator Economy – DAOs, Community Ownership, and Cryptoeconomics ]]>
                </title>
                <description>
                    <![CDATA[ By Nader Dabit I first had what I can only describe as a spiritual awakening about 10 years ago to the fact that technology would (figuratively) rule the world. And since then, I've been obsessed with wanting to understand how software works and how ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-new-creator-economy-daos-community-ownership-and-cryptoeconomics/</link>
                <guid isPermaLink="false">66d46049e39d8b5612bc0dcc</guid>
                
                    <category>
                        <![CDATA[ Blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ community ]]>
                    </category>
                
                    <category>
                        <![CDATA[ crypto ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ethereum ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web3 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 27 Aug 2021 17:02:29 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/08/democratize.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Nader Dabit</p>
<p>I first had what I can only describe as a spiritual awakening about 10 years ago to the fact that technology would (figuratively) rule the world. And since then, I've been obsessed with wanting to understand how software works and how to build it.</p>
<p>Since that moment, my life has changed significantly for the better. I can only attribute it to the simple fact that I have relied not only on my own instincts, but on those of people much smarter and more experienced than I am.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/kissingsky/status/1428368687644364805"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>My hypothesis is this: try to find and follow the lead of those who have exhibited a long track record of success, find interests in their wake, and do my best to excel at them (while continuing to explore my own curiosities).</p>
<p>This approach has led me to try and master JavaScript, and then React, and finally to build a successful consultancy. All this ultimately landed me on a team at AWS in a life changing experience that lasted a little over 3 years. All of this with <a target="_blank" href="https://twitter.com/dabit3/status/1259471051429478400">no high school diploma or college degree</a>.</p>
<p>During this time (like many developers) I've relentlessly dived into books, podcasts, blog posts, YouTube videos, and source code of every kind. But there has always been a topic that has captured my curiosity the most – futurism.</p>
<p>Futurists like <a target="_blank" href="https://twitter.com/gleonhard">Gerd Leonhard</a> and <a target="_blank" href="https://twitter.com/michiokaku">Michio Kaku</a> speak of a future that's sometimes beautiful and sometimes bleak. But it's always with the passion and phrasing that make your thoughts wander and move past the current moment in time and into a mind boggling world that does not yet exist.</p>
<p>I recently had another "aha" moment, similar to my technological awakening, that has completely changed the direction of my career and my life. In the spirit of these futurists, I want to talk about why <a target="_blank" href="https://www.freecodecamp.org/news/what-is-web3/">Web3</a> excites me just as much as their ideas, but is instead happening as we speak.</p>
<h2 id="heading-why-is-web3-so-exciting">Why is Web3 So Exciting?</h2>
<p>This post is meant to dive more into what I think are the benefits and repercussions of Web3. If you want to know my interpretation of what Web3 is, see my thoughts <a target="_blank" href="https://www.freecodecamp.org/news/what-is-web3/">here</a>.</p>
<p>Web3 represents a handful of ideas which together bring about entirely new mental models, organizational structures, and community incentives. These force us to rethink many things that we have become accustomed to.</p>
<p>All of the recent innovation happening is possible because of decentralized protocols. The internet itself has thrived because of native internet protocols that we use everyday, like HTTP, FTP, TCP, and SSH. </p>
<p>One of the reasons these protocols have been so successful was that they were widely adopted and not subject to change. If I build a site using HTTP, people can use it without any centralized intermediary – we can trust that it is going to work.</p>
<p>There are two major pieces of native functionality that have been left out up until recently – payments and state.</p>
<p>Blockchains have enabled both of these things, opening the door for programmable money and state without the need of a centralized server, bank, or any intermediary at all.</p>
<h3 id="heading-web3-enables-ownership">Web3 Enables Ownership</h3>
<p>One of the driving forces and the one that resonates with most people (and me) is that Web3 enables ownership.</p>
<h4 id="heading-gaming">Gaming</h4>
<p>At some point the internet and gaming became almost indistinguishable. Not only because most games continue to receive updates over time, but the most popular ones are often the most interactive ones.</p>
<p>Fortnite took a lot of people by surprise because it created an innovative new combination of gameplay, peer-to-peer connection, and a unique business model – and everyone gets the game for free. </p>
<p>The experience is very interactive, you can join old friends and make new ones, there are constant improvements and enhancements that just happen automatically – the game is consistently evolving.</p>
<p>The monetization strategy was also innovative. Fortnite allows players to buy in-game currency as well as skins that they can wear in the game. If you have a child you know that the $65 you may have spent on the game itself is probably peanuts compared to the amount of money kids spend over the lifetime of their gameplay.</p>
<p>The problem, though, is this: when the player decides to stop playing the game or outgrows it, where has all that money gone? More importantly, who is allowed as a creator to benefit from all of the purchasing power? The answer is, well, Fortnite (the platform).</p>
<p>What if, instead, players retained ownership of their items and were able to keep or sell them? Their items would maintain, increase, or decrease in value like any physical asset. </p>
<p>These types of experiences and communities are now being made possible via NFTs. NFTs enable scarcity in a world where there was in the past no scarcity.</p>
<p><a target="_blank" href="https://axieinfinity.com/">Axie Infinity</a> is an example of how this looks in practice. It is a blockchain-based game that is the most successful of its kind, and has recently had explosive growth, catapulting it to over <a target="_blank" href="https://hypebeast.com/2021/8/axie-infinity-ethereum-first-nft-game-1-bilion-sales-info">$1 billion in sales</a> with over $780 million in the 30 days ending August 10 2021.</p>
<p><a target="_blank" href="https://parallel.life/faq/">Parallel</a> is an online card game that has done over $100 million in sales and is still extremely early. <a target="_blank" href="https://zkga.me/">Dark Forest</a> enables players to <a target="_blank" href="https://twitter.com/BlaineBublitz/status/1399397415732400129">get paid to play the game</a>.</p>
<p>When players realize they can retain much of the value of their time and investments while still enjoying the benefit of the game, it changes the way they view gaming and where they spend their money. But it also aligns new incentives around the game itself. If the game succeeds, they can share in that success, therefore they become even more invested.</p>
<p>The combination of ownership, community, and creators who have built audiences creates a whirlwind of new and exciting opportunities that we are just starting to begin see explored.</p>
<p><a target="_blank" href="https://twitter.com/Fwiz">Ryan Watt</a>, the head of YouTube gaming agrees.</p>
<h3 id="heading-social-media-and-art">Social media and art</h3>
<p>Social media platforms were revolutionary. They allowed anyone from almost any background the ability to grow and foster large audiences using tools that were made free to anyone with a device and an internet connection. </p>
<p>There are no gatekeepers to becoming famous on social media as there have been in the past in film and TV. The intermediary was abstracted away and peer to peer connections and content sharing was made possible.</p>
<p>The flaw in these implementations is that they offer a terrible monetization system, not just for the platform but for the creator as well. </p>
<p>Advertising and the exploitation of user data is the go to play. Also almost all of the money generated by the platform, goes to the platform – the platform monetizes the content being created by its users in exchange for use of the platform itself. This is how social media works today.</p>
<p>In Web3, both creators and the community are able to gain and retain ownership within a platform, creating a synergy that, once experienced, makes the legacy interactions of the past seem archaic and undesirable. </p>
<p>When I say ownership, I don't only mean ownership of content, but actual equity as well.</p>
<p>We are seeing the beginnings of this in the art world of Web3. Artists who were, in the past, often barely making it are now able to leverage their platforms, often in collaboration with other community members or causes. They can create projects that leverage NFT collections to give community members as well as the public a way to participate and distribute equity all around. Art and code are also beginning to overlap.</p>
<p>Projects like <a target="_blank" href="https://generativemasks.on.fleek.co/#/">Generative Masks</a> allow talented creators like <a target="_blank" href="https://twitter.com/takawo">Takawo Shunsuke</a> to leverage the skills he's acquired throughout his career to generate over $3 million in sales for his collection in just a few minutes. He's able to spread awareness for himself and his cause, and create another new community (of owners) simultaneously. </p>
<p>The best part is that he's giving it all back to the communities he's benefited from. On top of that, smart contracts allow him to programmatically enable a commission for any future sale that happens going forward, and in just a couple of weeks that amounts to another $600,000.00+.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/dabit3/status/1427807893458497544"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Generative art itself is an emerging category that combines code and creativity and is something that could alone warrant an entire post. But it suits the coming era particularly well, as it enables artists to scale their creativity, community, and distribution.</p>
<p>There will continue to be a larger and larger percentage of digital artists because they can use powerful tools and programs to create art that can then be used in an infinite number of ways. They can then put it for sale on an international, 24 hour, liquid market.</p>
<p>OpenSea, the top online art marketplace today, has seen an absolute explosion in growth the past few months.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/natechastain/status/1429965382849343490"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Even recently surpassing Etsy in sales.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/xanderatallah/status/1427453596858294272"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Whether this type of volume continues, I have no idea. My guess is that there will be some volatility and fairly large swings both up and down. But there is definitely <em>something</em> there.</p>
<p>Most of these NFT projects are launched on Ethereum. Ethereum is soon merging <a target="_blank" href="https://ethereum.org/en/eth2/">a new consensus mechanism</a> that will make NFTs orders of magnitude more environmentally friendly as a means of sales and transfer of art, which in the past all required ground transportation.</p>
<h4 id="heading-future-of-social-media">Future of social media</h4>
<p>As it stands today, users of social media platforms can begin leveraging Web3 tools, communities, and platforms to begin monetizing their audience. </p>
<p>I believe there will be a breakthrough app that will disrupt social media as we know it built in the in the next 1 - 3 years that blends all of these ideas together in a way that we haven't experienced yet.</p>
<p>Many people have echoed a similar sentiment. <a target="_blank" href="https://twitter.com/AaveAave">Aave</a>, a very successful DeFi protocol built on Ethereum, has already begun work on <a target="_blank" href="https://decrypt.co/76278/defi-project-aave-to-release-ethereum-based-twitter-alternative-this-year">a decentralized version of Twitter</a>:</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/stanikulechov/status/1416385933549654016"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Jack Dorsey of Twitter is also working on a Decentralized version of Twitter, though I believe that this type of application will ultimately come from the community or a DAO.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/arcalinea/status/1427314482154414080"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h3 id="heading-daos-grants-community-ownership-and-social-tokens">DAOs, grants, community ownership, and social tokens</h3>
<blockquote>
<p>DAO stands for Decentralized Autonomous Organization. You can read about what a DAO is <a target="_blank" href="https://www.notboring.co/p/the-dao-of-daos">here</a>, <a target="_blank" href="https://linda.mirror.xyz/Vh8K4leCGEO06_qSGx-vS5lvgUqhqkCz9ut81WwCP2o">here</a>, and <a target="_blank" href="https://decrypt.co/resources/decentralized-autonomous-organization-dao">here</a>, but I want to focus on how DAOs will play a part in the new creator economy.</p>
</blockquote>
<p>Shared ownership is a characteristic you'll see carried across all areas of Web3, including how we think about companies and incentive structures around how business is done.</p>
<p>In Web2 companies, cash usually comes from investors and there is no value returned to them for years. Ownership is largely concentrated in the first handful of employees along with their investors.</p>
<p>It usually takes years to reach a point where investors or employees with equity can begin to see any return on their investment and time spent, often through the old ways of advertising and exploitation of user data.</p>
<p>Web3 and blockchains bring about entirely new business models, made possible by <a target="_blank" href="https://www.gemini.com/cryptopedia/what-is-tokenization-definition-crypto-token#section-security-tokens-utility-tokens-and-cryptocurrencies">tokenization</a> and <a target="_blank" href="https://thegraph.com/blog/modeling-cryptoeconomic-protocols-as-complex-systems-part-1">cryptoeconomic protocols</a>.</p>
<p>There are quite literally countless ways that these tokens are being utilized to create new ways of collaboration and building, ranging from DAOs to web infrastructure to <a target="_blank" href="https://coopahtroopa.mirror.xyz/gWY6Kfebs9wHdfoZZswfiLTBVzfKiyFaIwNf2q8JpgI">micro-economies</a>:</p>
<p><a target="_blank" href="https://twitter.com/prtyDAO">PartyDAO</a> which <a target="_blank" href="https://twitter.com/nnnnicholas/status/1423428739589943300">created over $200,000 in revenue in its first day</a>, was "built in 3 months by a small group of internet friends working part-time", and is backed by a smart contract</p>
<p><a target="_blank" href="https://compound.finance/">Compound</a>, a decentralized finance protocol that allows you to lend and borrow cryptocurrency without trusting a third party with your funds has a market cap of over $2 billion as of this writing</p>
<p><a target="_blank" href="https://docs.superrare.com/the-superrare-dao">Super Rare</a> is a digital art platform that recently launched a token, <a target="_blank" href="https://twitter.com/DCLBlogger/status/1427860274808197124">airdropping as much as $140,000 to its earliest users</a></p>
<p><a target="_blank" href="https://gitcoin.co/">Gitcoin</a> is a platform that enables developers to get paid for working on open source projects</p>
<p><a target="_blank" href="https://thegraph.com/">Graph Protocol</a> is a decentralized web infrastructure protocol that allows developers to build APIs to enable the performant querying of blockchain data, all enabled by its native utility token</p>
<p><a target="_blank" href="https://twitter.com/seedclubhq">Seed Club</a> is a social token incubator that’s focused on helping creators launch and grow social tokens</p>
<p><a target="_blank" href="https://twitter.com/fwbtweets">Friends with Benefits</a> is a social DAO and community that I'm part of that is 100% owned and governed by the participants</p>
<p><a target="_blank" href="https://twitter.com/pleasrdao">PleasrDAO</a> allows investors to come together to purchase high-value non-fungible tokens like <a target="_blank" href="https://foundation.app/@Snowden/stay-free-edward-snowden-2021-24437">this piece</a> from Edward Snowden.</p>
<p>Most DAOs have <a target="_blank" href="https://thegraph.com/blog/wave-one-funding">desirable grants programs</a>, enabling developers and other participants to work with various teams and projects at their will, on things they find interesting or that fit their skill set. </p>
<p>There are more and more people beginning to work full time for grants and with DAOs vs traditional full time employment.</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/dabit3/status/1418307358946701319"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h2 id="heading-conclusion">Conclusion</h2>
<p>If this sounds like something you're interested in being involved in, I'd suggest that you jump right in. Try P2E (play to earn), get involved with a DAO, or even mint your own NFT.</p>
<p>Also check out <a target="_blank" href="https://www.freecodecamp.org/news/breaking-into-ethereum-crypto-web3-as-a-developer/">How to Get into Crypto, Ethereum, and Web3 as a Developer</a> which is what I put together after getting my own start in the space.</p>
<p>If you want to learn more about these ideas, I encourage you to follow some of the people I mention in this post:</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/dabit3/status/1430865775011803137"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<p>Also, here are some of my favorite articles that touch on some of the stuff I've outlined here:</p>
<p><a target="_blank" href="https://coopahtroopa.mirror.xyz/gWY6Kfebs9wHdfoZZswfiLTBVzfKiyFaIwNf2q8JpgI">The Rise of Micro-Economies</a></p>
<p><a target="_blank" href="https://www.rushil2cents.com/the-creator-economy-today-vs-2025/">The Creator Economy: Today Vs. 2025</a></p>
<p><a target="_blank" href="https://www.notboring.co/p/the-value-chain-of-the-open-metaverse">The Value Chain of the Open Metaverse</a></p>
<p><a target="_blank" href="https://www.notboring.co/p/the-dao-of-daos">The DAO of DAOs</a></p>
<p>Thanks to <a target="_blank" href="https://twitter.com/adeets_22">Aditi</a> for helping me with ideas and edits as I was getting this across the finish line 🙏</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/dabit3/status/1430585405662011397"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Break into Ethereum, Crypto, and Web3 as a Developer ]]>
                </title>
                <description>
                    <![CDATA[ By Nader Dabit Lately, I've been talking about my move into the Web3, Ethereum, and crypto space since making the switch from a traditional web, mobile, and cloud background. Since making that move, a shocking number of people have reached out to me ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/breaking-into-ethereum-crypto-web3-as-a-developer/</link>
                <guid isPermaLink="false">66d460407df3a1f32ee7f86f</guid>
                
                    <category>
                        <![CDATA[ Blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Career Change ]]>
                    </category>
                
                    <category>
                        <![CDATA[ crypto ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ethereum blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web3 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 18 May 2021 21:04:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/05/break-into-blockchain-article.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Nader Dabit</p>
<p>Lately, I've been <a target="_blank" href="https://twitter.com/dabit3/status/1391171104757125122">talking</a> about <a target="_blank" href="https://twitter.com/dabit3/status/1379157277660299264">my move</a> into the <a target="_blank" href="https://ethereum.org/en/developers/docs/web2-vs-web3/">Web3</a>, Ethereum, and crypto space since making the switch from a traditional web, mobile, and cloud background.</p>
<p>Since making that move, a shocking number of people have reached out to me who are also thinking about doing the same. </p>
<p>It's really great to see so many other people interested in these fields. And if I'm being honest – it feels validating to know that so many others are also on the fence and are so deeply interested in the space as well.</p>
<p>As for me, I was nervous about making the career switch. Moving into a completely new area of specialization, with a technology I was still getting ramped up on, and a community I was not yet involved with, was a big leap. Especially compared to a very comfortable role with a FAANG company that paid really well (and a team that I really loved).</p>
<p>After over a month, I have zero regrets with the change. I'm also the happiest I've been in a long time, and am excited and energized about the things I have the opportunity to work on everyday.</p>
<p>I decided to write this post to give a blueprint for anyone looking to get into blockchain, crypto, Ethereum, and Web3 from a traditional development background. I can point people to this blog post the next time I get asked how to get into the space.</p>
<h3 id="heading-ill-break-this-article-up-into-a-few-main-parts">I'll break this article up into a few main parts:</h3>
<ol>
<li>Technologies and resources to learn</li>
<li>Tradeoffs and considerations</li>
<li>People to follow</li>
<li>Companies hiring and doing interesting stuff</li>
<li>General tips and landing a job</li>
</ol>
<p>Let's dive in.</p>
<h2 id="heading-technologies-and-resources-to-learn-about-ethereum-and-blockchain">Technologies and Resources to Learn About Ethereum and Blockchain</h2>
<p>What I'm most interested in is usually a function of where I predict technology will be in the near future and where I see the current momentum being. So that's what I will focus on here (and this is what I am doing personally).</p>
<p>To me, the most exciting parts of this space are decentralization, <a target="_blank" href="https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4">DeFi</a>, <a target="_blank" href="https://docs.ethhub.io/ethereum-basics/governance/">governance</a> / <a target="_blank" href="https://www.investopedia.com/tech/what-dao/">DAOs</a>, and <a target="_blank" href="https://www.youtube.com/watch?v=j2rXJLW_93o">decentralized web infrastructure</a>.</p>
<p>Because of this, I'm focusing on both Ethereum development and Solidity. With the Solidity programming language ,you can program smart contracts for Ethereum as well as for many other <a target="_blank" href="https://chainid.network/">EVM compatible blockchains</a>. </p>
<p>As of this writing, Ethereum also has the powerful and important combination of momentum, developer mindshare, and existing production <a target="_blank" href="https://everest.link/">dapps</a>.</p>
<p>Ethereum is also currently moving to a new consensus mechanism, <a target="_blank" href="https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/">proof of stake</a>. This addresses the environmental concerns I used to have about how cryptocurrency works at a core level.</p>
<p>Once you learn how everything works fundamentally, I encourage you to then check out other blockchains and projects outside of Ethereum and EVM. </p>
<p>This will give you a better understanding of the industry as a whole. It will also help you see if there are other projects that attract you or that you believe are better approaches to achieving the goal that is Web3. </p>
<p>Consider looking into <a target="_blank" href="https://solana.com/">Solana</a>, <a target="_blank" href="https://polkadot.network/">Polkadot</a>, <a target="_blank" href="https://near.org/">Near</a>, <a target="_blank" href="https://www.avax.network/">Avalanche</a> or <a target="_blank" href="https://cosmos.network/">Cosmos</a>.</p>
<p>To get started learning blockchain development with Ethereum and Solidity, I suggest you do the following:</p>
<h3 id="heading-1-read-the-ethereum-docs">1. Read the Ethereum docs</h3>
<p>Scan through the <a target="_blank" href="https://ethereum.org/en/developers/docs/">Ethereum docs</a>. Be sure to check out the section <a target="_blank" href="https://ethereum.org/en/developers/docs/intro-to-ethereum/">Intro to Ethereum</a> as well as anything else that catches your eye.</p>
<p>Also be sure to check out the <a target="_blank" href="https://ethereum.org/en/dapps/">dapp showcase</a> to get a good understanding of the successful apps being built and used in the current ecosystem.</p>
<h3 id="heading-2-read-the-solidity-documentation">2. Read the Solidity documentation</h3>
<p>The <a target="_blank" href="https://docs.soliditylang.org/en/v0.8.4/">Solidity docs</a> are a really good place to get started, especially <a target="_blank" href="https://docs.soliditylang.org/en/v0.8.4/solidity-by-example.html">solidity by example</a>. This gives you a few examples of popular smart contracts like voting, an auction, remote purchase, and micropayments.</p>
<p>You can copy and paste these contracts in the <a target="_blank" href="https://remix.ethereum.org/">Remix IDE</a> to start executing and modifying them to see how they work.</p>
<p>I also did a video walkthrough of the voting contract <a target="_blank" href="https://www.youtube.com/watch?v=GB3hiiNNDjk">here</a>.</p>
<h3 id="heading-3-get-comfortable-with-the-remix-ide">3. Get comfortable with the Remix IDE</h3>
<p>It's really easy to play around with and start building smart contracts without having to set up any type of development environment by using the <a target="_blank" href="https://remix.ethereum.org/">Remix IDE</a>. It's part of the <a target="_blank" href="https://remix-project.org/">Remix Project</a> which is funded by the <a target="_blank" href="https://ethereum.foundation/">Ethereum Foundation</a>.</p>
<p>This Remix IDE allows you to create, edit, and execute smart contracts directly from your browser. It offers a perfect environment for learning how solidity works. It's also great for building out various types of smart contracts and playing around with them as you are learning both solidity and how to interact with Ethereum</p>
<h3 id="heading-4-try-building-out-a-full-stack-dapp">4. Try building out a full stack dapp</h3>
<p>In addition to Solidity, the other parts of the the development stack include a local Ethereum environment like <a target="_blank" href="https://hardhat.org/">Hardhat</a> or <a target="_blank" href="https://www.trufflesuite.com/">Truffle</a>, a wallet like <a target="_blank" href="https://metamask.io/">Metamask</a>, as well as a client-side library that allows you to interact with the blockchain, like either <a target="_blank" href="https://docs.ethers.io/">Ethers.js</a> or <a target="_blank" href="https://web3js.readthedocs.io/">Web3.js</a>.</p>
<p>To understand how all of this all fits together, it's useful to build out a full stack dapp on this stack from scratch. You can set up the front end project as well as the local development environment and deploy, run, and interact with a smart contract on the blockchain.</p>
<p>Here are two introductory courses to get you going with this:</p>
<ol>
<li><a target="_blank" href="https://www.youtube.com/watch?v=xWFba_9QYmc">Ethereum Programming Tutorial - DeFi, Solidity, Truffle, Web3.js</a></li>
<li><a target="_blank" href="https://www.youtube.com/watch?v=a0osIaAOFSE">The Complete Guide to Full Stack Ethereum Development</a> (<a target="_blank" href="https://www.freecodecamp.org/news/full-stack-ethereum-development/">and here it is in article form, too</a>)</li>
</ol>
<h3 id="heading-5-consider-reading-these-books">5. Consider reading these books</h3>
<p>The space itself moves very quickly, so technical books often get out of date just as quickly. The fundamentals of what Web3 is, though, have not changed much at all. </p>
<p>There are a few really great books that helped me not only grasp the current state of everything, but that also helped open my eyes to the future possibilities and opportunities that lie within it.</p>
<h4 id="heading-token-economy-how-the-web3-reinvents-the-internet">Token Economy - How the Web3 reinvents the internet</h4>
<p>If you only read one of these books, this is the one I'd say is the most important. It is a masterful deep dive into all of the shortcomings of the web as we know it, what Web3 aims to be, how it will affect various parts of our lives as we know it, and what needs to happen for this vision to be realized.</p>
<p>You can view the book <a target="_blank" href="https://shermin.net/token-economy-book/">here</a>.</p>
<h4 id="heading-the-infinite-machine-how-an-army-of-crypto-hackers-is-building-the-next-internet-with-ethereum">The Infinite Machine - How an Army of Crypto-hackers Is Building the Next Internet with Ethereum</h4>
<p>This is the amazing story of how Ethereum came to be, walking you through the history of it all. It is a very thorough and entertaining account of the origin story of Ethereum, I highly recommend checking it out.</p>
<p>You can view the book <a target="_blank" href="https://www.harpercollins.com/products/the-infinite-machine-camila-russo?variant=32123333836834">here</a>.</p>
<h4 id="heading-new-village-power-back-to-people">New Village - Power Back to People</h4>
<p>This is a really cool story of how blockchain technologies and decentralization will affect the future of the world.</p>
<p>You can view the book <a target="_blank" href="https://www.amazon.com/New-Village-Power-Back-People-Blockchain/dp/1718045743">here</a></p>
<h4 id="heading-how-to-defi">How to DeFi</h4>
<p>As you can probably tell by the title, this book focuses on how you can start using DeFi today. It gives you a good understanding about how you can use it today as well as some applications of it that we will see at some time in the future.</p>
<p>You can view the book <a target="_blank" href="https://landing.coingecko.com/how-to-defi/">here</a></p>
<h4 id="heading-the-spatial-web">The Spatial Web</h4>
<p>The Spatial Web is a book that explores the future of the web and all of the implications, not only of Web3 and decentralization, but how everything will come together to enable things that we may have not yet considered. </p>
<p>It does a good job weighing the positive and negatives as well as ways that we may be able to address any negative outcomes of what is to come.</p>
<p>You can view the book <a target="_blank" href="https://www.goodreads.com/book/show/52816204-the-spatial-web">here</a></p>
<p>And here are a couple of solidity books:</p>
<ul>
<li><a target="_blank" href="https://www.oreilly.com/library/view/hands-on-smart-contract/9781492045250/">Hands-On Smart Contract Development with Solidity and Ethereum</a></li>
<li><a target="_blank" href="https://www.oreilly.com/library/view/mastering-ethereum/9781491971932/">Mastering Ethereum</a></li>
</ul>
<h3 id="heading-6-listen-to-these-podcasts">6. Listen to these podcasts</h3>
<p>Here are some good podcasts:</p>
<ul>
<li><a target="_blank" href="https://outlierventures.io/podcasts/">Founders of Web 3</a> – The people that are creating and building the next phase of the internet.</li>
<li><a target="_blank" href="http://podcast.banklesshq.com/">Bankless</a> – The Ultimate Guide to Crypto Finance</li>
<li><a target="_blank" href="https://podcast.ethhub.io/">Into the Ether</a> – Podcast about Ethereum</li>
<li><a target="_blank" href="https://player.fm/series/crypto-101">Crypto 101</a></li>
<li><a target="_blank" href="https://player.fm/series/epicenter-learn-about-crypto-blockchain-ethereum-bitcoin-and-distributed-technologies-41400">Epicenter</a> – Learn about Crypto, Blockchain, Ethereum, Bitcoin and Distributed Technologies</li>
</ul>
<h3 id="heading-7-watch-these-youtube-channels">7. Watch these YouTube channels</h3>
<ul>
<li><a target="_blank" href="https://www.youtube.com/channel/UCNOfzGXD_C9YMYmnefmPH0g">Ethereum Foundation</a></li>
<li><a target="_blank" href="https://www.youtube.com/channel/UCZM8XQjNOyG2ElPpEUtNasA">Eat the Blocks</a> – Short videos on blockchain development</li>
<li><a target="_blank" href="https://www.youtube.com/c/Finematics/videos">Finematics</a> – Sharing interesting DeFi videos</li>
<li><a target="_blank" href="https://www.youtube.com/channel/UCY0xL8V6NzzFcwzHCgB8orQ">Dapp University</a> – Videos in the Ethereum space</li>
<li><a target="_blank" href="https://www.youtube.com/c/BlockGeeks/featured">BlockGeeks</a> – General Blockchain Training</li>
<li><a target="_blank" href="https://www.youtube.com/channel/UCvCp6vKY5jDr87htKH6hgDA">The Daily Gwei</a></li>
<li><a target="_blank" href="https://www.youtube.com/channel/UC_HI2i2peo1A-STdG22GFsA">Austin Griffith</a></li>
</ul>
<p>I've also begun doing videos and tutorials on Ethereum and Solidity, so consider checking out <a target="_blank" href="https://www.youtube.com/channel/UC7mca3O0DmdSG2Cr80sOD7g">my YouTube</a> channel.</p>
<h2 id="heading-tradeoffs-and-considerations-of-switching-careers">Tradeoffs and Considerations of Switching Careers</h2>
<p>There are always things to consider when making a career transition, but especially when considering this space.</p>
<p>There are a lot of positives, but there are also unknowns as well as negatives. Let's talk about some of them.</p>
<h3 id="heading-its-nascent-tech">It's nascent tech</h3>
<p>While there are many existing dapps and companies already flourishing, this space is very much still coming into existence in many ways.</p>
<p>There are a lot of problems that we still need to solve, and there are no clear answers for many questions you'll have. The problems being solved are often complex, sometimes combining one or more aspects of distributed systems, game theory, cryptography, economics, social and political science, identity, psychology, and more.</p>
<p>Because of this, there are still things that we cannot yet build with the existing solutions that are available.</p>
<p>I personally think this is one of the more exciting things about all of it it, but it's not for everyone.</p>
<h3 id="heading-its-a-volatile-space">It's a volatile space</h3>
<p>Many of the projects are built around various types of tokens. The value of many of these tokens rises and falls dramatically, and you often see that people gain and lose excitement in the entire space based on these swings.</p>
<p>If you haven't fundamentally bought into the ideas behind decentralization itself, you may find these ups and downs mentally taxing.</p>
<h3 id="heading-its-full-of-speculation">It's full of speculation</h3>
<p>Because a lot of people only buy into certain tokens in a speculative way, it attracts some people who are in it only for the money.</p>
<p>You see things like scammers trying to get over on people and steal their money, endless talk about price swings from people who are speculating, and outright scam projects that often discredit the industry as a whole.</p>
<p>This is an annoying part of it and I don't really see it going away anytime soon.</p>
<h3 id="heading-this-thread">This thread</h3>
<p>I would also check out <a target="_blank" href="https://twitter.com/jonsyu/status/1389635626698297344">this Twitter thread</a>. Although I have not experienced all of these things, he is definitely shining a light on some of the things I have seen.</p>
<h2 id="heading-general-tips-and-how-to-land-a-blockchain-or-crypto-related-job">General Tips and How to Land a Blockchain or Crypto-Related Job</h2>
<p>There are many areas within the space that you can focus on and provide a positive impact on a team. I'd look into the different areas like governance, DeFi, NFTs, and decentralized web protocols to see what interests you the most and then focus on that.</p>
<p>There are a lot of opportunities and a lot of ways to stand out and get noticed. If you find an interesting project and would like to get involved, jump right into their community and ecosystem and start learning. Then see where you may be able to help out. Join their Discord or look at their GitHub issues to find ways that you can contribute.</p>
<p>This will give you an opportunity to meet people involved in the project and will open up discussions for potentially landing a role with them. In fact, it is very common for people within the teams to take notice of active community participants, they will then often reach out and try to recruit you without you even applying.</p>
<p>The pay is usually <a target="_blank" href="https://cryptocurrencyjobs.co/salaries/solidity-developer/">good</a>. Depending on where you are coming from, it could be more or less, but it's probably not going to be at the high levels of what you see at FAANG companies. </p>
<p>There is probably more potential upside. Most companies offer a combination of base pay + equity in the form of their digital token, so if you stick around and can help make the project successful and the value of the token goes up, you can often make more than what you would in many other areas.</p>
<h2 id="heading-people-to-follow-on-twitter">People to follow on Twitter</h2>
<p>Here are a few people who you may consider following on Twitter:</p>
<p><a target="_blank" href="https://twitter.com/VitalikButerin">Vitalik</a><br><a target="_blank" href="https://twitter.com/ashleighschap">Ashleigh Schapp</a><br><a target="_blank" href="https://twitter.com/CryptoHayes">Arthur Hayes</a><br><a target="_blank" href="https://twitter.com/StaniKulechov">Stani Kulechov</a><br><a target="_blank" href="https://twitter.com/gkimbwala">Gloria Kimbwala</a><br><a target="_blank" href="https://twitter.com/niran">Niran Babalola</a><br><a target="_blank" href="https://twitter.com/ricburton">Ric Burton</a><br><a target="_blank" href="https://twitter.com/dennisonbertram">Dennison Bertram</a><br><a target="_blank" href="https://twitter.com/manasilvora">Mana Silvora</a><br><a target="_blank" href="https://twitter.com/austingriffith">Austin Griffith</a><br><a target="_blank" href="https://twitter.com/smpalladino">Santiago Palladino</a><br><a target="_blank" href="https://twitter.com/zmanian">Zaki Manian</a><br><a target="_blank" href="https://twitter.com/sassal0x">Anthony Sassano</a></p>
<p>I also found <a target="_blank" href="https://twitter.com/i/lists/869994563691319296/members">this comprehensive list</a> created by someone on Twitter.</p>
<p>A few people on my team at <a target="_blank" href="https://twitter.com/edgeandnode">Edge &amp; Node</a>:<br><a target="_blank" href="https://twitter.com/yanivgraph">Yaniv Tal</a><br><a target="_blank" href="https://twitter.com/theklineventure">Tegan Kline</a><br><a target="_blank" href="https://twitter.com/evabeylin">Eva Beylin</a><br><a target="_blank" href="https://twitter.com/azacharyf">Adam Fuller</a><br><a target="_blank" href="https://twitter.com/RezBrandon">Brandon Ramirez</a></p>
<h2 id="heading-teams-doing-interesting-stuff-and-hiring">Teams doing interesting stuff (and hiring)</h2>
<p><a target="_blank" href="https://compound.finance/about#jobs">Compound</a><br><a target="_blank" href="https://jobs.lever.co/Uniswap">Uniswap</a><br><a target="_blank" href="https://chainlinklabs.com/careers">Chainlink</a><br><a target="_blank" href="https://jobs.lever.co/SkynetLabs">Skynet Labs</a><br><a target="_blank" href="https://aave.com/careers/">Aave</a><br><a target="_blank" href="https://matic.network/careers/">Matic</a><br><a target="_blank" href="https://livepeer.org/jobs">Livepeer</a><br><a target="_blank" href="https://consensys.net/open-roles/">Consensys</a><br><a target="_blank" href="https://medium.com/the-ethereum-name-service/ens-is-hiring-come-build-a-new-decentralized-internet-with-us-24398dea3ac">ENS</a><br><a target="_blank" href="https://openzeppelin.com/jobs/">OpenZeppelin</a><br><a target="_blank" href="https://foundation.app/careers">Foundation</a><br><a target="_blank" href="https://cryptocurrencyjobs.co/startups/zora/">Zora</a><br><a target="_blank" href="https://synthetix.com/careers">Synthetix</a><br><a target="_blank" href="https://jobs.dcg.co/companies">Digital Currency Group</a></p>
<p>You can also find a pretty decent list of job opportunities in cryptocurrency <a target="_blank" href="https://cryptocurrencyjobs.co/">here</a>.</p>
<p>Also, my team at <a target="_blank" href="https://edgeandnode.com/jobs">Edge &amp; Node is hiring</a>!</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Did I mention this space is volatile? Be ready for some high highs and low lows, but also for some of the most fun you may have in your career. </p>
<p>You'll be working alongside some of the smartest people in tech trying to solve some of the most complex problems that I think will ultimately have a massive positive impact on humanity.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Universal Ethereum Delegated Transactions: No More Transaction Fees ]]>
                </title>
                <description>
                    <![CDATA[ TL;DR Check this back end and front end solutions for delegated transactions. It is universal for any token which supports the delegation of its functions. Read more below. This mostly technical article provides a universal framework and a working s... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/universal-ethereum-delegated-transactions-no-more-ethereum-fees/</link>
                <guid isPermaLink="false">66b99b7c3cd81de09c96b2bc</guid>
                
                    <category>
                        <![CDATA[ Blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ crypto ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Cryptocurrency ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ethereum ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ethereum blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ token economy ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Tokenization ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Nikita Savchenko ]]>
                </dc:creator>
                <pubDate>Mon, 30 Sep 2019 15:53:22 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/09/you-need-some-ether-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <blockquote>
<p>TL;DR Check this <a target="_blank" href="https://github.com/ZitRos/ethereum-delegated-tx-service">back end</a> and <a target="_blank" href="https://zitros.github.io/ethereum-delegated-tx-widget/">front end</a> solutions for delegated transactions. It is universal for any token which supports the delegation of its functions. Read more below.</p>
</blockquote>
<p>This mostly technical article provides a <strong>universal framework</strong> and a <strong>working solution</strong> for Ethereum tokens and applications that eliminates the need to pay fees in Ether, a problem that is practically killing the user experience of many blockchain applications.</p>
<blockquote>
<p><em>Imagine spending dollars and then being asked to also hand over some</em> <a target="_blank" href="https://en.wikipedia.org/wiki/Ukrainian_hryvnia"><em>Hryvnias</em></a> <em>as a transaction fee. That's how Ethereum tokens work so far.</em></p>
</blockquote>
<p>In other words, for example, to transfer any Ethereum token (like <a target="_blank" href="https://coinmarketcap.com/currencies/tether/">Tether</a>, <a target="_blank" href="https://coinmarketcap.com/currencies/dai/">DAI</a>, <a target="_blank" href="https://coinmarketcap.com/currencies/basic-attention-token/">BAT</a>, <a target="_blank" href="https://token.dreamteam.gg/">DREAM</a>, etc.), the user has to also spend some <a target="_blank" href="http://ethereum.org/use/#_2-what-is-eth-and-how-do-i-get-it">Ether</a> (internal Ethereum platform currency). This introduces a big inconvenience that prevents the mass adoption of DApps: users have to purchase multiple currencies instead of just one to interact with the blockchain network.</p>
<h1 id="heading-the-problem">The Problem</h1>
<p>Tokens, as we imagine them today are just fuel for applications and services on top of blockchain networks. Organizations create their own tokens (using ICOs, IEOs, etc) and run services/applications that utilize them, introducing their own micro-economy (widely known as a <a target="_blank" href="https://medium.com/@pentremont/token-economy-101-or-why-blockchain-powered-decentralized-networks-are-important-310de1cc8bac">token economy</a>). But almost every token turns out to be quite a complex currency itself. By design of how blockchain networks work, in order to do something with your tokens, you also need another currency — often Ether (for Ethereum) to be able to transfer tokens.</p>
<p>To illustrate the problem, let's look into how users come to use different blockchain-powered services and applications like:</p>
<ul>
<li><a target="_blank" href="https://trickle.gg/">Trickle</a> - where you create secure, hourly-based contracts with an untrusted party in any token</li>
<li><a target="_blank" href="https://loomx.io/">Loom</a> - where you use Loom tokens to create sidechains in Loom Network</li>
<li><a target="_blank" href="https://www.cryptokitties.co/">Cryptokitties.co</a> - where you breed, trade and transfer kitties (ERC721 tokens)</li>
<li><a target="_blank" href="https://www.stateofthedapps.com/">Others</a> (there are a lot!)</li>
</ul>
<p>All these applications use tokens, as well as they require you to purchase Ether. The complexity of using crypto tokens as we know them today is one of the biggest reasons why 99% of crypto startups fail (or avoid adopting real crypto, for example, by replacing it with virtual coins).</p>
<p>As you may already know, the harder it is to use the application, the fewer users it will get right from the beginning. This is something known as <a target="_blank" href="https://www.appcues.com/blog/user-onboarding-funnel-amplitude">The User Onboarding Funnel</a>, which is still a big pain for blockchain-powered applications and services:</p>
<p><img src="https://lh3.googleusercontent.com/XJyaZoGARI3TF4DOjODJerEUNwn3qFm2D8WSZBrxwYE81oSHaw5h3MOweymV5VV9Jby-2OBUE7o1FGkVqZxWvONW0GLuoezAKqt8HmB-N-vPwHL_ouohPO2whDyS1jiXHLIQv9am" alt="Image" width="1275" height="359" loading="lazy">
<em>The typical user onboarding funnel of a decentralized, blockchain-based application</em></p>
<p>To understand why I put 0.001% of users prior to the service use, let's see what exactly purchasing some Ether means:</p>
<ul>
<li>Creating a crypto wallet</li>
<li>Registering on Exchange (and learning all the exchange rules, including country policies!)</li>
<li>Passing KYC (though it's getting easier, still, many countries have limited access to exchanges)</li>
<li>Purchasing a minimum allowed amount of Ether (usually, it's <a target="_blank" href="https://changelly.com/widget-settings">whopping $50</a> while you need just nearly $0.05 to perform one or two transactions)</li>
<li>Withdrawing Ether to your wallet</li>
<li>Not to mention reading lengthy guides on how to perform all these steps properly</li>
</ul>
<p>Instead of just:</p>
<ul>
<li>Creating a crypto wallet</li>
</ul>
<p>Of course, it highly depends on how the application or service is made. But, so far, there was no better simplification of the onboarding flow as just cutting crypto tokens from there, or making them fake, "virtual" currency with deposit and withdrawal function. Unfortunately, the latter approach is now the common one across all startups and companies adopting crypto, for many good reasons. Another reason could be a monetization strategy, but this is another big story worth a dedicated article (Interested? Comment out!).</p>
<p>Getting back to the transaction fees problem, we can state the following, which is hard to argue with.</p>
<blockquote>
<p><em>It is natural for the user to purchase <strong>only</strong> the cryptocurrency they really need (for instance, tokens:</em> <a target="_blank" href="https://coinmarketcap.com/currencies/tether/"><em>Tether</em></a><em>,</em> <a target="_blank" href="https://coinmarketcap.com/currencies/dai/"><em>DAI</em></a><em>,</em> <a target="_blank" href="https://coinmarketcap.com/currencies/basic-attention-token/"><em>BAT</em></a><em>,</em> <a target="_blank" href="https://token.dreamteam.gg/"><em>DREAM</em></a><em>, etc.), and they would normally expect to pay any transaction fees <strong>in this cryptocurrency</strong>.</em></p>
</blockquote>
<p>So why not just allow them to do so? Because it's quite complex indeed. Let's see why, and how this has just got easier with our open-sourced solution (at least for Ethereum).</p>
<h1 id="heading-existing-approaches">Existing Approaches</h1>
<p>From the very beginning of blockchain existence, there were a couple of solutions that could simplify the user onboarding flow to the flow depicted below, avoiding the step of purchasing an intermediate currency like Ether. Still, creating a blockchain wallet is not an easy step, but some users who do understand the value of the application/service go through this step quite well.</p>
<p><img src="https://lh3.googleusercontent.com/B_D585TaVcYR9qXA-0q3MfvAv1DjGzAulIup0XT1X8Va3eeekX32jAtayKbFCmKoISotoBk_WOyq9jGAdqJzfAnz5q61foOPjgxeVbcfq8bXlA9X25iqzKczy6qmjPvZJgBYsRrL" alt="Image" width="600" height="400" loading="lazy">
<em>The user onboarding funnel with delegated transactions</em></p>
<p>The solution which allows to avoid using intermediate currencies (Ether for Ethereum) is called "delegated transactions", or "meta transactions". </p>
<blockquote>
<p><em>In short, delegated transaction, or "meta transaction" in blockchain is the type of transaction which performs an intended action on one account's behalf, while it is conducted (published) by another account (delegate), who actually pays fees for the transaction.</em></p>
</blockquote>
<p>There are <a target="_blank" href="https://medium.com/@austin_48503/ethereum-meta-transactions-90ccf0859e84">multiple</a> <a target="_blank" href="https://fravoll.github.io/solidity-patterns/proxy_delegate.html">approaches</a> <a target="_blank" href="https://medium.com/@e2toe4/ethereum-meta-transactions-36f10448619">around</a> <a target="_blank" href="https://github.com/ethereum/EIPs/issues/1035">the</a> <a target="_blank" href="https://github.com/ethereum/EIPs/issues/1228">internet</a> of the generalized concept of delegated transactions I am presenting in this article. But it seems that none of them are still widely adopted, as these approaches are quite complex by its nature, very specific as for the implementation, as well as some of them are <strong>quite complex to standardize</strong>. To be more constructive, existing approaches can be divided into 3-4 groups: those which use proxy smart contracts, those which embed delegation into a smart contract itself and, theoretically, there is an opportunity for the blockchain-native implementation (say, Ethereum 2.0).</p>
<h2 id="heading-1-delegated-transactions-approaches-which-use-proxy-contracts">1. Delegated transactions approaches which use proxy-contracts</h2>
<p>Proxy contracts, or, in this context, identity contracts are tiny contracts deployed to replace the user account which wants to avoid paying fees. This smart contract is programmed to act as a wallet, as well as a "caller" (sender) of other smart contract's functions. The key is that it is a delegate account that triggers all the actions, while the true "owner" of this smart contract is another user. The user just generates correct signatures in order to control their funds stored on a smart contract address (= in their wallet).</p>
<p><img src="https://lh3.googleusercontent.com/BqoXbK-n6UmpKY-nu8_GuibFbfA3a2Lrghc_fHSoJOzMqv_MYL2BNzIUzyZPgT1aSM00WC0fJoyErLQKc0Dtu3D92NRdYB3Cm4bJ8vZAnbfHVaSe4pCxrEsI8rvEiNCbQriStqfx" alt="Image" width="1025" height="471" loading="lazy">
<em>A visualization of how identity contracts look like</em></p>
<p><strong>Pros of this approach:</strong></p>
<ul>
<li>It works with any tokens and contracts which are already deployed to the network</li>
</ul>
<p><strong>Cons of this approach:</strong></p>
<ul>
<li>Users don't see tokens in their wallet, because they are physically on an identity smart contract</li>
<li>As a result, a need to develop custom UIs and custom tools/wallets</li>
<li>Identity smart contract deployment and assignment initial fees, as opposed to no fees at all</li>
<li>Requires a comprehensive standard to be widely adopted</li>
</ul>
<h2 id="heading-2-semi-delegated-transactions-via-operator-pattern-erc777httpseipsethereumorgeipseip-777">2. Semi-delegated transactions via "Operator" pattern (<a target="_blank" href="https://eips.ethereum.org/EIPS/eip-777">ERC777</a>)</h2>
<p>There is a token standard that describes this approach — <a target="_blank" href="https://eips.ethereum.org/EIPS/eip-777">ERC777</a>. In short, any token holder can authorize any other account to freely manage their tokens. I won't call it delegated transactions but nevertheless, I need to mention that, as here we somewhat delegate control over your tokens to other accounts.</p>
<p><img src="https://lh6.googleusercontent.com/Sf3WEbL4fRfefAZLZIBzxD8nAhLnFt75uIZUSO0SjifRwqbiIwSOUnWf4QkN6v6kmWXBazs05bGnG6w1AOTNZIEXwuVUf6GIPdBNtD60mAwiU5r7Oe4MMlNEGLy5htCrk51zsfwi" alt="Image" width="1025" height="471" loading="lazy">
<em>A visualization of ERC777 standard's "operator" pattern</em></p>
<p><strong>Pros of this approach:</strong></p>
<ul>
<li>Standardized</li>
</ul>
<p><strong>Cons of this approach:</strong></p>
<ul>
<li>Highly centralized around the "operator" accounts</li>
<li>Weak security due to operators have 100% control over your tokens</li>
<li>Initial fees for approval transaction</li>
<li>Requires additional UIs/tools development</li>
</ul>
<h2 id="heading-3-delegated-transactions-embedded-directly-into-a-token-smart-contract">3. Delegated transactions embedded directly into a (token) smart contract</h2>
<p>Just the same as it is possible to implement custom fees in a proxy smart contract, paying fees in tokens can be implemented directly in a token smart contract. For example, using the approach I described in <a target="_blank" href="https://hackernoon.com/you-dont-need-ether-to-transfer-tokens-f3ae373606e1">my previous article</a>, it is possible to implement a function in a smart contract, which will transfer tokens accepting the user's signature, instead of requiring the user to call this function directly. We have implemented this approach in our <a target="_blank" href="https://token.dreamteam.gg/">DREAM Token</a>, which is used on our <a target="_blank" href="https://dreamteam.gg/">dreamteam.gg</a> platform.</p>
<p><img src="https://lh3.googleusercontent.com/NTd44yatekkdfGEOfSDdsXi1S8cmtRdkQLXmUKSIm-nFzMMQdOM1Rox1nML6Y2Z8gYh9t_sMIsPvr7L7AHxTPlYXp0ENnVWQBLf5g85Cue-CiR2zb1Xw4Ym4G407MQOhCUUnSrrQ" alt="Image" width="1025" height="471" loading="lazy">
<em>A visualization of how embedding delegation into the token contract looks like</em></p>
<p>As you may notice, in contrast to the previous approach there is no identity contract anymore, and there is an optional way to call other smart contracts directly from the token contract.</p>
<p><strong>Pros of this approach:</strong></p>
<ul>
<li>Users see their tokens as usual on their wallet's balance</li>
<li>No initial fees for account initialization</li>
<li>May not even require a standard (continue reading)</li>
</ul>
<p><strong>Cons of this approach:</strong></p>
<ul>
<li>If you have a (token) smart contract that is already deployed to the network, you cannot apply this approach to it directly. While you can always deploy a new token and, for example, a "migration" utility, which will allow other users to swap tokens (burn the old token and mint a new one)</li>
<li>Because a standard for this approach is yet not well-defined, implementation can drastically vary</li>
<li>A need to develop custom UI/tools for delegated transactions (continue reading — solved!)</li>
</ul>
<h2 id="heading-4-delegated-transactions-on-the-blockchain-platform-level">4. Delegated transactions on the (blockchain) platform level</h2>
<p>This is far the best one of all the described approaches above but also the one <strong>which is not implemented anywhere yet</strong> (by anywhere I mean the most popular blockchain platforms). There is a hope that its support comes with Ethereum 2.0 release, or at least I've heard from Vitalik that they are in progress with something cool there.</p>
<p>Theoretically, we can imagine this approach as being able to make an "offline" signature of two transactions at a time: one which does something useful for the signing account which wants to avoid paying fees (for example, transferring tokens) and another one which does something useful for the delegate (for example, paying fee in tokens to the account which executes these two transactions).</p>
<p><img src="https://lh5.googleusercontent.com/R1S5_YVazRlh2mfzuMLaKAnix8GmXJy4swBQyxzWFzhIZhE5nDTZ4gfOLp9G51dx-ydW7sLQCsWkic6k_nVj_1CD8JkHjGjRYSMwt17wGSLAG58Vs2ve02KS3L5m5L2oTCMWfxlG" alt="Image" width="1142" height="505" loading="lazy">
<em>A visualization of how platform-native delegated transactions could look like</em></p>
<p>But the problem is, regarding Ethereum 2.0, this feature has a chance to land only in 2022 or even later. I also suppose that this feature will still require a dedicated back end (similar to the one which is introduced within this article), as it is hard to imagine how miners will accept fees in tokens. Simply put, if some of them refuse to accept fees in tokens than it makes little sense to do it on a "mining" level at all, not to mention how much would it take to track all token prices and volumes across exchanges, in a decentralized manner.</p>
<p><strong>Pros of this approach:</strong></p>
<ul>
<li>No need to change smart contracts that were already deployed</li>
<li>No initial fees for account initialization</li>
<li>May not even require a custom UI/tools if standardized</li>
</ul>
<p><strong>Cons of this approach:</strong></p>
<ul>
<li>Most likely, will still require a centralized back end (the "delegate")</li>
<li>Not yet implemented on a platform level (as of 2019)</li>
</ul>
<h1 id="heading-the-solution">The Solution</h1>
<p>From the four approaches above, except for the platform-level approach which is yet to be implemented and standardized in 2022+, the most appealing one is <strong>the third approach</strong>, where we embed delegated functions directly to the token smart contract. Thus, we save the standard token paradigm allowing wallets to normally work with the smart contract and have no need to wait until delegated transactions will land natively in one of the top blockchain platforms. We will stick to this approach and make it <strong>universal</strong> just below.</p>
<p>Delegated transactions support programmed right in the token smart contract is awesome. But how to deal with its cons? In fact, the only problem which is tough to deal with (as you cannot modify existing smart contracts), <strong>you will need to deploy a new token smart contract if you have already deployed it without delegated functions</strong> (for instance, standard ERC20 or ERC721 tokens). The next step, in this case, would be adding a way to migrate tokens from one smart contract to another. For example, you can decide to implement one more function in the new smart contract that will allow token holders to migrate their assets from the old smart contract.</p>
<p>Token migration function implementation can vary, starting from implementing <em>receiveApproval</em> in the new token, if the previous token supports <em>approveAndCall</em>, or ending with utilizing <em>approve</em> + <em>transferFrom</em> framework if you have just a bare minimal ERC20 (the user _approve_s tokens to the new token contract address and then calls a function in the new contract which burns old tokens and mints new ones — but this requires a standard fee for the user for the approval transaction). Actually, there is more: you can decide not to burn old tokens but to "lock" them on a new token smart contract, minting new tokens — this opens an opportunity to implement <strong>two-sided token migration</strong>, which is awesome — <strong>you won't need to list the "new" token on the exchange</strong>, while the users will still be able to send the old token to exchanges without fees in Ether! If you are interested, please fill the issue <a target="_blank" href="https://github.com/ZitRos/ethereum-delegated-tx-service/issues">here</a> if you want to know more details on how to do it, because this approach is worth a whole new article.</p>
<p>In my <a target="_blank" href="https://hackernoon.com/you-dont-need-ether-to-transfer-tokens-f3ae373606e1">previous article</a>, I provided an example of the token smart contract which supports delegation of such functions like <em>transfer</em>, <em>transferFrom</em>, <em>approve</em> and <em>approveAndCall</em>. Exactly these "delegated" functions allow users to pay fees in tokens, instead of Ether.</p>
<p><img src="https://lh6.googleusercontent.com/K95psDr4YlNLWPFIByI6HmE5DOz-uIGmD9xfNODmhfj6oRfkIlGJwkZLPYBEVof4MwitQe5Li6SbUNptplVKL2MfERLbVHLJru5jJkTpCVDnDaQbpMd24wtbWOTp81hX7CHtiRtR" alt="Image" width="1568" height="609" loading="lazy">
<em>How delegation works in Ethereum, in short. Read more in <a target="_blank" href="https://hackernoon.com/you-dont-need-ether-to-transfer-tokens-f3ae373606e1">this article</a>.</em></p>
<p>But that wasn't enough to start the mass adoption. In this article, I am providing a complete <a target="_blank" href="https://github.com/ZitRos/ethereum-delegated-tx-service">universal back end solution</a> (Transaction Publisher in the picture above), as well as a <a target="_blank" href="https://github.com/ZitRos/ethereum-delegated-tx-widget">configurable widget</a> (<a target="_blank" href="https://zitros.github.io/ethereum-delegated-tx-widget/">check it here</a>), which allows you to replace Ether fees for token fees today.</p>
<p>Some key points before we dive in:</p>
<ul>
<li>This delegated transactions back end is made to be universal, or <strong>standard-free</strong>, meaning that you can have <strong>any implementation</strong> of delegated functions and <strong>use any signature standard(s)</strong> in your token. From the back end standpoint, you just need to write a manifest file for your token, describing its usage.</li>
<li>Currently, converting collected fees in tokens back to Ether is a manual action on exchanges. But it could be a potential improvement for automation in the future (if needed).</li>
</ul>
<h1 id="heading-the-concept-behind-the-universal-solution">The Concept Behind the Universal Solution</h1>
<p>What does it mean that the token supports delegated transactions? Let's look at it using the ERC20 standard token as an example.</p>
<h2 id="heading-smart-contract">Smart Contract</h2>
<p>As for the token smart contract, the approach is quite straightforward. In addition to every method like <strong>transfer(to, value)</strong> which we want to be "delegatable", we add a companion function which, instead of inspecting <strong>msg.sender</strong>, accepts the signature of a user and does the same what the original function meant to do by validating this signature inside the smart contract. Thus, for example, for <strong>transfer(to, value)</strong> function we can add <strong>transferViaSignature(to, value, ...aditionalParams)</strong> function. As you know from <a target="_blank" href="https://en.wikipedia.org/wiki/Public-key_cryptography">public-key cryptography</a>, no one can create a valid signature except private key owner, so that's why this approach is as secure as Ethereum itself.</p>
<p>And the coolest part is that the delegated function implementation, as well as its signature doesn't matter much, from the delegate back end standpoint. You can even decide to implement one "call by signature" function for all other functions that the smart contract supports. Delegate back end just need to know <strong>how</strong> to call this function, which is solved by providing an off-chain contract manifest for the delegate back end. For example, the argument <em>additionalParams</em> in <strong>transferViaSignature</strong> can vary and can include anything from this list, if not more: fee, fee recipient address, expiration timestamp, a signature standard used, a signature itself, nonce number or any other unique delegated transaction ID and so on. Regarding the smart contract design, in order to understand why exactly these arguments, read my <a target="_blank" href="https://hackernoon.com/you-dont-need-ether-to-transfer-tokens-f3ae373606e1">previous article</a>.</p>
<p>We also want to allow "delegates" to earn something in order to cover their Ether spending, as well as to be profitable. Thus, we have to add a fee, but a much more natural fee than Ether: a fee in the token itself. So that, for example, if you need to transfer 100 tokens, you pay 3 more tokens to the delegate depending on its price and network conditions to perform a transfer, and this should be preserved in a smart contract logic.</p>
<h2 id="heading-back-end">Back End</h2>
<p>All right, now we have a token that allows transferring someone else's tokens by using their signature. Now, the crucial part is to automate the process of requesting and publishing such transactions. And here where our open-sourced <a target="_blank" href="https://github.com/dreamteam-gg/ethereum-delegated-tx-service">back end</a> (and a <a target="_blank" href="https://github.com/dreamteam-gg/ethereum-delegated-tx-widget">front end</a>) kicks in.</p>
<p>Below is the sequence diagram describing how front end (client) communicates with the back end from the delegated transaction request to its publishing to the network:</p>
<ol>
<li>(hidden on the diagram) The client requests information from the delegated back end to understand which contracts does it support, as well as which functions can it delegate.</li>
<li>The client requests a particular smart contract's function to be delegated. Most importantly, the back end returns the fees it charges and a data to be signed by the client.</li>
<li>The client signs the data in their wallet. Signing is a free operation, unlike publishing transaction to the network.</li>
<li>The client sends their signature back, thus confirming their intent to perform this particular delegated transaction. The back end validates this transaction against the current network.</li>
<li>Finally, the back end publishes a transaction to the network.</li>
<li>(hidden on the diagram) The client constantly polls the back end for the delegated request status until it receives a mined status. Note: it is important to poll the back end instead of using a transaction hash to understand when the transaction is mined. It is a very common case when the gas price suddenly increases, and, in order for the transaction to be mined quickly, the back end may republish it with a higher gas price. Though it is currently not implemented, it is very likely to be implemented soon.</li>
</ol>
<p><img src="https://lh5.googleusercontent.com/X2SADmcB2aMcJoUgN291XXPdk73sVNi4ebruRwN6TCcDgVWi7ILZs02Mlz0WSR4ufOnzXqxrHIdTSJyijeSKsTw1Z89vB0zjwD8dvQ3Jop6Z4xPKET1TWBnNDBad5QDlD8y0jptG" alt="Image" width="1600" height="1190" loading="lazy">
<em>Sequence diagram representing the simplified flow of how delegated transaction is delivered to the network</em></p>
<p>This approach is universal, and only requires the manifest file for the back end to understand how to calculate fees and which signature standard to use on the client side. Here is another visualization of the components of the system and their interaction sequence:</p>
<p><img src="https://lh4.googleusercontent.com/EmfRndRu7BJyU9UTYVGt_rKlQIE83v21s7UywoeTeZQ3Y832Z85KgYRQgmB4o9bqUS7OExMGy2ace6kc3v7QEL-t0bcsvsg9xu9zqLdKDUrzHWXrhHnwoOQWUkd8GBAOWwLww5e8" alt="Image" width="1459" height="934" loading="lazy">
<em>Component diagram</em></p>
<p>We've provided a comprehensive <a target="_blank" href="https://github.com/dreamteam-gg/ethereum-delegated-tx-service#delegated-transactions-concept">documentation</a> for this solution. You can check how the back end <a target="_blank" href="https://github.com/dreamteam-gg/ethereum-delegated-tx-service#api">API is structured</a>, as well as find the token <a target="_blank" href="https://github.com/dreamteam-gg/ethereum-delegated-tx-service/blob/master/config/contracts/mainnet/0x82f4ded9cec9b5750fbff5c2185aee35afc16587/manifest.js">manifest file</a> which describes how to work with a <a target="_blank" href="https://etherscan.io/address/0x82f4ded9cec9b5750fbff5c2185aee35afc16587#code">particular token contract</a>. We encourage you to contribute your own tokens there!</p>
<p>And you don't need much setup: it's already there with the universal front end!</p>
<h2 id="heading-front-end">Front End</h2>
<p><a target="_blank" href="https://github.com/dreamteam-gg/ethereum-delegated-tx-widget">Open-sourced front end part</a> of the delegated transactions is the user interface which is <strong>set up for every token</strong>: just run your delegated transactions back end and you are ready to go!</p>
<p><img src="https://lh4.googleusercontent.com/8TagMGFbuyXbiIEe8_x7cmBycjrAxcpE8zyURXmDIF1cQET-K64NchEmK0lWfNpwR5mzcJIQ5YLp--hLSCksLlMflOAPBbDCf2frPrF4xm6cEZ92GNXH-QDA3MBKpokX4O2tZoUq" alt="Image" width="689" height="908" loading="lazy">
<em>What <a target="_blank" href="https://send-token.dreamteam.gg">it</a> looks like</em></p>
<p>It is made to be an embeddable widget, which will guide the user through the procedure of sending tokens. You can plug any back end, token or call any token function with it by utilizing <a target="_blank" href="https://github.com/dreamteam-gg/ethereum-delegated-tx-widget#embedding">additional URL parameters</a> you can specify.</p>
<p>Using this widget, and by implementing something similar to widely used, but not standardized <em><strong>approveAndCall</strong></em> function in your token smart contract, you will be able to call other smart contracts with arbitrary data by paying fees in tokens!</p>
<p>Here is a quick guide for you if you want to play with this UI yourself:</p>
<ol>
<li>Access the widget via <a target="_blank" href="https://zitros.github.io/ethereum-delegated-tx-widget/?contractAddress=0xcc7e25e30b065ea61814bec6ecdb17edb0f891aa">this link</a>.</li>
<li>It will ask you to switch to the Kovan test network.</li>
<li>Get some test Ether using <a target="_blank" href="https://www.google.com/search?q=ethereum+kovan+faucet">any available Kovan faucet</a>.</li>
<li>Use test Ether to mint some <a target="_blank" href="https://kovan.etherscan.io/address/0xcc7e25e30b065ea61814bec6ecdb17edb0f891aa#writeContract">test tokens</a>: call <a target="_blank" href="https://kovan.etherscan.io/dapp/0xcc7e25e30b065ea61814bec6ecdb17edb0f891aa#writeContract">mintTokens</a> function in a token smart contract which will give you 10 test tokens.</li>
<li>Now, get back to <a target="_blank" href="https://zitros.github.io/ethereum-delegated-tx-widget/?contractAddress=0xcc7e25e30b065ea61814bec6ecdb17edb0f891aa">the widget</a> and try to transfer these tokens!</li>
</ol>
<p>If you open up the browser's developer tools, you may notice that there are a couple of back ends connected by default — they provide the front end with all required information to make a delegated request according to given widget URL parameters. All backends are requested during the widget load and, if any of them can provide a delegation for a particular contract's function, then the widget requests additional information: fees, supported signatures, etc. If there are multiple back ends which can delegate the same contract function, all of them are requested and the back end which provides the best fee will be used for the transaction.</p>
<p>Transaction mining time is seemingly fixed, but it can vary because of the network conditions. The back end uses an actual network fee when calculating the token fee, however, it may change before the user decides to execute the transaction. Thus, the "underpriced" transaction is submitted to the network and can be pending for a while. While the back end is currently not programmed to deal with this case, it might be implemented in future — transactions will be republished with higher gas fees in case of the network fee increases. But, we will also need to count this into the token fee.</p>
<h2 id="heading-signature-standards">Signature Standards</h2>
<p>The last question which you may be wondering is — which signature standard to use for your token. There are several available: _eth<em>sign</em> (deprecated), _eth<em>personalSign</em> (note that old <a target="_blank" href="https://trezor.io/">Trezor</a> and <a target="_blank" href="https://www.ledger.com/">Ledger</a> produce a different signatures because of ambiguity in a standard, so you may want to include both), _eth<em>signTypedData</em> (deprecated), <a target="_blank" href="https://medium.com/metamask/eip712-is-coming-what-to-expect-and-how-to-use-it-bb92fd1a7a26">_eth_signTypedData<em>v3</em></a> and so on. I would recommend supporting at least two: ageless _eth<em>personalSign</em> and new <a target="_blank" href="https://medium.com/metamask/eip712-is-coming-what-to-expect-and-how-to-use-it-bb92fd1a7a26">_eth_signTypedData<em>v3</em></a> (as of 2019).</p>
<p><img src="https://lh3.googleusercontent.com/TZhSpdfJF_035M1uCARZVYixZC4W8hsiG1jbs2zTyYZQC5fpwJUR3W7x14WaLofyklmEaR9O4Cgt7EkKb7MCb1RHK6geJfxKb-oGVVxlOXBOu6dh5c6nRtNwblF5B0sZ07Gf6mV7" alt="Image" width="1408" height="1279" loading="lazy">
<em>Signature standards comparison — what the user sees</em></p>
<p>The front end is programmed to always prefer the user-readable standard like <a target="_blank" href="https://medium.com/metamask/eip712-is-coming-what-to-expect-and-how-to-use-it-bb92fd1a7a26">eth_signTypedData_v3</a> to any others eth_personalSign. So if your token supports many signature standards, and you added all of them to the <a target="_blank" href="https://github.com/dreamteam-gg/ethereum-delegated-tx-service/blob/master/config/contracts/mainnet/0x82f4ded9cec9b5750fbff5c2185aee35afc16587/manifest.js">manifest file</a> of your token, it will display <a target="_blank" href="https://medium.com/metamask/eip712-is-coming-what-to-expect-and-how-to-use-it-bb92fd1a7a26">eth_signTypedData_v3</a> prompt first.</p>
<h1 id="heading-conclusion">Conclusion</h1>
<p>Delegated transactions are great: they solve one of the biggest problems of blockchain application adoption, which eases the mass adoption of crypto overall. I will put a couple of thesis in a Q&amp;A format here for you to answer the last questions that you may still have after reading this article:</p>
<ul>
<li>Our open-source solution is free to use and production-ready, feel free to apply it to your applications or tokens!</li>
<li>The described approach does not compromise security nor centralization. Think this way: the centralized back end is only a helper for someone who wants to transfer tokens without fee in Ether. If the back end is hacked, or it is just unavailable, there's no problem to interact with the network just as it was before, by paying fees in Ether. As well as the back end cannot harm or trick the user to steal their tokens when a proper signature standard is used (it's up to your token implementation).</li>
<li>There is a way to support delegated transactions for existing, already-deployed tokens. However, it requires the additional Ether-consuming step to migrate existing tokens to a new token contract. And, by programming a new token contract properly, as well as designing your application to work with both tokens you can even avoid a need to list a new token on exchanges.</li>
<li>By using the <a target="_blank" href="https://github.com/zitros/ethereum-delegated-tx-service/blob/master/config/contracts/mainnet/0x82f4ded9cec9b5750fbff5c2185aee35afc16587/manifest.js">existing tokens as an example</a>, which is available in delegated transactions <a target="_blank" href="https://github.com/zitros/ethereum-delegated-tx-service">back end</a> and <a target="_blank" href="https://github.com/zitros/ethereum-delegated-tx-widget">front end</a> repositories, you can produce your own manifest for your own token.</li>
<li><a target="_blank" href="https://github.com/zitros/ethereum-delegated-tx-service#setup">Read the instructions</a> on how to set up your own back end for a token, and then add it to the URL of your widget (or commit to the open-source repository).</li>
<li>Have a token which already supports delegated transactions? Plug it into <a target="_blank" href="https://zitros.github.io/ethereum-delegated-tx-widget">our UI</a> with these three quite simple steps: (1) create a manifest for your token and put your token abi file while setting up the delegate back end, (2) run this back end, exposing a public API URL and (3) use URL parameters in a widget to reference your back end or commit it directly to our open-source repository. Read more about it in GitHub's readme file.</li>
</ul>
<p>I hope that was a really helpful piece of information for all the searchers of incredible. Feel free to contact <a target="_blank" href="https://nikita.tk/">me</a> or fill the issue <a target="_blank" href="https://github.com/ZitRos/ethereum-delegated-tx-service/issues">here</a> if I missed something. Have fun, let the token economy be simple!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to build a Firebase Angular app with auth and a real-time database ]]>
                </title>
                <description>
                    <![CDATA[ By Zdravko Kolev For a long time, I was looking for a good Portfolio web app that can help me to easily track my Cryptocurrency profits/losses until I’ve decided to develop such on my own with the help of Firebase and Angular! Yes, it’s that easy, le... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/firebase-angular-application-with-auth-and-realtime-database-ae37fef5859d/</link>
                <guid isPermaLink="false">66c34a6ca1d481faeda49b45</guid>
                
                    <category>
                        <![CDATA[ Angular ]]>
                    </category>
                
                    <category>
                        <![CDATA[ authentication ]]>
                    </category>
                
                    <category>
                        <![CDATA[ crypto ]]>
                    </category>
                
                    <category>
                        <![CDATA[ data ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 16 Apr 2019 13:35:39 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*8-shYpRp-eIefsxUs0_iKA.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Zdravko Kolev</p>
<p>For a long time, I was looking for a good Portfolio web app that can help me to easily track my Cryptocurrency profits/losses until I’ve decided to <a target="_blank" href="https://igniteui.github.io/crypto-portfolio-app/">develop such</a> on my own with the help of <strong>Firebase and Angular</strong>! Yes, it’s that easy, let me explain to you why.</p>
<p><strong>Firebase</strong> gives the perfect tooling for applications with user authentication and <a target="_blank" href="https://firebase.google.com/docs/database/">Real-time database</a> storage needs. It provides rich <a target="_blank" href="https://firebase.google.com/docs/">documentation</a> with a variety of dev <a target="_blank" href="https://firebase.google.com/docs/samples/">examples</a> to help anyone gain a better understanding of how to create stellar apps.</p>
<p>I have covered the <strong>Angular</strong> application bootstrapping, using <a target="_blank" href="https://www.infragistics.com/products/ignite-ui-angular/getting-started">Ignite UI CLI</a>, in another <a target="_blank" href="https://www.infragistics.com/community/blogs/b/infragistics/posts/easily-create-your-first-ignite-ui-for-angular-application">blog post</a>.</p>
<p><strong>This article aims to:</strong></p>
<ul>
<li>Go through the Firebase installation and setup.</li>
<li>Set up Firebase Authentication.</li>
<li>Implement <a target="_blank" href="https://firebase.google.com/docs/database/">Real-time database</a> storing and synchronization.</li>
<li>Add Observable data services.</li>
<li><a target="_blank" href="https://www.infragistics.com/products/ignite-ui-angular">Visualize the data in an Angular application</a>.</li>
</ul>
<h3 id="heading-configure-a-firebase-account">Configure a Firebase account</h3>
<p>I want to go through the steps that we’ve taken to set up the Portfolio Firebase account. Projects are created from the <a target="_blank" href="https://console.firebase.google.com/">Firebase console</a> by choosing <strong>Add a new project.</strong> Once the <strong>Create project</strong> form is submitted you will see the following Project Overview.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/NasIpLrw4HFk-0GPRJgygDdFbFUJFCyj3ZlC" alt="Image" width="800" height="385" loading="lazy">
<em>Firebase Project Overview</em></p>
<p>Under the Project Overview section, you can find all development tools that are used for Authentication and Data storing. Here is also located the configuration which is used in the Portfolio Web App. This configuration is generated by pressing <strong>Add Firebase to your web app</strong>, and it is later added in application’s <strong>app.module.ts</strong> file.</p>
<p>Let’s get back to the sidebar on the left and select <strong>Authentication</strong>. From here we have access to the <strong>Sign-in methods</strong> that we need in the app. Navigate to the Sign-in tab, there you can see the providers that are enabled and used in the Portfolio application — <strong>Google, Facebook and Email/Password provider</strong>.</p>
<p>Sign-in providers let users authenticate with Firebase using their Facebook and Google accounts by integrating their logins into the app. As for the Email/password provider, it represents a simple authentication mechanism by using only email and password. <strong>Firebase Auth</strong> provides built-in validation rules verifying the user entries, so we don’t need to configure something additional here.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/tLYYAMF7mIhAghwLl17dLrIc1pPLXFLtQxbX" alt="Image" width="800" height="400" loading="lazy"></p>
<p>The “trickiest” part here was the Facebook provider configuration because we needed to have a <strong>Facebook application</strong> in order to authenticate the login. We’ve created a FB app from <a target="_blank" href="https://developers.facebook.com/">Facebook Developers</a> which provided us with the App ID and App Secret requested from Firebase.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/BM7Zm2-pKYb1f2W1dpeA9Kxh7qfJVAtRvHEj" alt="Image" width="800" height="284" loading="lazy"></p>
<p>Both <strong>API ID</strong> and <strong>Secret</strong> should be filled when enabling the Facebook provider. As for the <strong>Auth redirect URI</strong> (from the provider window) it should be pasted under <code>Facebook/Facebook Login/Products section/Valid Auth Redirect URIs</code>.</p>
<p>Let’s continue with the Firebase console. From the Database view page, we’ve created a <strong>Real-time Database.</strong></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/7nr-cSrLC1cCSldefkhHzdMjK5MVrp1gjJeF" alt="Image" width="800" height="273" loading="lazy">
<em>Firebase Database View</em></p>
<p>In this view, we can find information about the application data items and write/read security rules. Below are the rules used by the Portfolio application:</p>
<pre><code>{  <span class="hljs-string">"rules"</span>: {    <span class="hljs-string">"items"</span>: {      <span class="hljs-string">"$uid"</span>: {        <span class="hljs-string">".read"</span>: <span class="hljs-string">"$uid === auth.uid"</span>,        <span class="hljs-string">".write"</span>: <span class="hljs-string">"$uid === auth.uid"</span>      }    }  }}
</code></pre><blockquote>
<p>This Security Rule configuration will allow only authenticated users to be able to read and write in our database. If you want to learn how to define more advanced rules, I strongly recommend checking out the <a target="_blank" href="https://firebase.google.com/docs/database/security/">Official Security &amp; Rules</a> section.</p>
</blockquote>
<p>Okay, where were we? Now that we’ve gone through the <strong>Portfolio</strong> <strong>Firebase account</strong> creation, let’s see how the <strong>Firebase development project</strong> was created.</p>
<p>If we didn’t have a project created already, I would have recommended starting with installing the <a target="_blank" href="https://firebase.google.com/docs/cli/">firebase CLI</a>, that provides a variety of tools for managing and deploying Firebase projects. BUT we’ve bootstrapped the <a target="_blank" href="https://www.infragistics.com/community/blogs/b/infragistics/posts/easily-create-your-first-ignite-ui-for-angular-application">Portfolio Angular Project</a> with Ignite UI CLI, so we just needed to install <strong>AngularFire</strong> and <strong>Firebase</strong> from <strong>npm</strong>. We need both packages in order to communicate with Firebase. <strong>AngularFire</strong> is the official library for Firebase and Angular development.</p>
<pre><code>npm install firebase @angular/fire --save
</code></pre><p>All AngularFire modules that are used in the application are added in the <code>app.module.ts</code> file:</p>
<ul>
<li><strong>FirestoreModule</strong> is needed for the database features like working with collections, queries, and services for data streaming and manipulation.</li>
<li><strong>FireAuthModule</strong> is needed for authentication features like monitoring authentication state, Log-in providers and security.</li>
<li><strong>FireDatabaseModule</strong> allows us to work with Realtime databases. It’s very efficient for mobile and web apps that require synced states across clients in Realtime.</li>
</ul>
<blockquote>
<p>The only common module that is not used in the Portfolio app is <strong>AngularFireStorageModule.</strong> You can use this module to quickly and easily store and serve user-generated content like photos and videos as well as monitor uploads and metadata associated with files.</p>
</blockquote>
<p>Now that we know how the app was configured initially, we can take a look at the other <strong>Firebase features</strong> that are used.</p>
<h3 id="heading-authentication">Authentication</h3>
<p>We use <code>AngularFireAuth</code> service to monitor the app authentication state. <code>AngularFireAuth.auth</code> returns an initialized <code>firebase.auth.Auth</code> instance, allowing us to log users in and out. The app demonstrates Sign-in capabilities using three providers: Facebook, Google, and Email.</p>
<p>Firebase user instance is kept for every provider linked to the user, and when a user is registered or signs in, that user becomes the current user of the Auth instance. The instance persists the user’s state so that refreshing the page or restarting the application doesn’t lose the user’s information.</p>
<p>We use <code>signInWithRedirect</code> method for both Facebook and Google providers, in order to sign in by redirecting to the sign-in page. <a target="_blank" href="https://firebase.google.com/docs/auth/web/password-auth">Password-based account</a> creation is used for the Email sign-in provider, <code>createUserWithEmailAndPassword</code> and <code>signInWithEmailAndPassword</code> are the methods responsible for the user account creation and sign-in.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Un3vsdL0fp6UFYRhxs7LJxUamWku00-0zOdc" alt="Image" width="792" height="435" loading="lazy">
<em>Password-based account view</em></p>
<p>I recommend the official Firebase docs for more detailed information on <a target="_blank" href="https://firebase.google.com/docs/auth/">authentication</a> and <a target="_blank" href="https://firebase.google.com/docs/auth/users#the_user_lifecycle">user lifecycle</a>.</p>
<h3 id="heading-real-time-database-actions">Real-time Database Actions</h3>
<p>Firebase offers two cloud-based, client-accessible database solutions, and we are using Firebase’s original database — Realtime. Check out the differences between <strong>Realtime</strong> and <strong>Cloud firestore</strong> on the official <a target="_blank" href="https://firebase.google.com/docs/firestore/rtdb-vs-firestore">documentation page</a>.</p>
<p><code>AngularFireDatabase</code> and <code>AngularFireList</code> services are used in the Portfolio app to retrieve, save and remove data easily.</p>
<p><code>AngularFireDatabase</code> can be injected through the constructor of a component or <code>@Injectable()</code> service. In our case we use the <a target="_blank" href="https://github.com/IgniteUI/crypto-portfolio-app/blob/master/src/app/services/block-item.service.ts#L13">second approach</a>:</p>
<p>Data is retrieved through the <code>AngularFireDatabase</code> service, which fills Observable list of <code>BlockItems</code>. <code>AngularFire</code> provides methods like <code>snapshotChanges()</code> that returns Observable of data as a synchronized array. It is very handy if you want to limit event actions, like <em>added</em>, <em>changed</em>, <em>removed</em> and <em>moved</em>. By default, it listens to all four, however, you may only be interested in one of these events and you can specify which of them you’d like to use. In our application, we are subscribed to all of them.</p>
<p>Adding a new item, updating an existing one, or removing it from the list is achieved by using <code>push()</code>, <code>update()</code> and <code>remove()</code> methods.</p>
<p>Each data operation method returns a promise, although we don’t need to use the completion promise to indicate success because the real-time database keeps the list in sync.</p>
<h3 id="heading-observables">Observables</h3>
<h4 id="heading-coinitem-service">CoinItem service</h4>
<p>Cryptocompare API service manages async data and emits multiple values at a time with <code>Observables</code>. We use <code>[HttpClient get(](https://angular.io/guide/http))</code>method to request the data from <a target="_blank" href="http://min-api.cryptocompare.com/">the resource</a> and subscribe to it, in order to transform it to Observable Array of <code>CoinItem</code> objects, which will be used later by our <code>igxGrid</code>, <code>igxList</code>, and <code>igxCard</code> components.</p>
<p>Rx.js allows us to cache the result of the HTTP Request. We retrieve this data initially, cache it and use the cached version during the application’s lifetime. The combination of <code>publishReply(1, 300000)</code> and <code>refCount()</code> does the following.</p>
<blockquote>
<p><strong>publishReply(1, 300000)</strong> tells Rx to cache the latest emitted value and to stay valid for 5 minutes. After that time, it will invalidate the cache.</p>
<p><strong>refCount()</strong> tells Rx to keep the Observable alive as long as there are any Subscribers.</p>
</blockquote>
<p>Now after we subscribe to the Coins list, the result will be cached, and we won’t need to make another HTTP Request.</p>
<h4 id="heading-blockitem-service">BlockItem service</h4>
<p>Portfolio Crypto Coins data is ensured by <code>getItemsList()</code> method that returns Observable <code>BlockItem</code> array to which the <code>igxGrid</code> component is subscribed to. Only authenticated users can use this service because of the <code>AngularFireList</code> that we manipulate is associated with unique user ids.</p>
<h3 id="heading-visualize-the-data">Visualize the data</h3>
<p>For the visualization, we use UI Components from the <a target="_blank" href="https://github.com/IgniteUI/igniteui-angular">Ignite UI for Angular</a>library. These components are responsible for data handling while providing access to custom templates and real-time updates, with intuitive API, by using minimal amount code.</p>
<h4 id="heading-igxgrid">igxGrid</h4>
<p><a target="_blank" href="https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid.html">Grids</a> <code>[data]</code> property binding is used to pass the returned <code>BlockItem</code> array. Each <code>&lt;igx-colu</code>mn&gt; represents a field of the object and it is used to define features like editing and sorting. The columns are templatable, and with the he<a target="_blank" href="https://angular.io/guide/pipes">lp of Angular</a> pipes, we can declare display-value transformations in them easily. We use a decimal pipe to change the minimum number of integer digits before the decimal point.</p>
<p>The component provides straightforward event handlers and API for CRUD operations. Handlers like <code>updateRow</code> and <code>deleteRow</code> are implementing additional logic like <code>AngularFireList</code> manipulation and coin item restore logic with the <code>igxSnackbar</code>.</p>
<h4 id="heading-igxcard">igxCard</h4>
<p><a target="_blank" href="https://www.infragistics.com/products/ignite-ui-angular/angular/components/card.html">Cards</a> are used to provide general information of Crypto coins using CSS <a target="_blank" href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/">Flexbox layout</a>. These Card components can be filtered with the <code>igxFilter</code> directive, which can be used to filter different data sources. <code>igxFilter</code> can be applied as a pipe or as a directive.</p>
<h4 id="heading-igxfinancialchart">igxFinancialChart</h4>
<p><a target="_blank" href="https://www.infragistics.com/products/ignite-ui-angular/angular/components/financialchart.html">The Chart</a> offers multiple ways in which the data can be visualized and interpreted, once it is returned by the service. There are several display modes for price and volume, and in our case we use <code>chartType=”candle”</code>.</p>
<p>The financial chart component analyzes and selects data columns automatically:  </p>
<ul>
<li><code>Date/Time</code> column to use for <code>x-axis</code>  </li>
<li><code>Open</code>, <code>High</code>, <code>Low</code>, <code>Close</code>, <code>Volume</code> columns or the first 5 numeric columns for <code>y-axis</code></li>
</ul>
<h4 id="heading-theming">Theming</h4>
<p>IgniteUI for Angular bases its component designs on the <a target="_blank" href="https://material.io/design/introduction/#principles">Material Design Principles</a> and with just a few lines of code, we can easily change the colors, sizes, typography, and overall look and feel of our components.</p>
<p>Now that we’ve provided all base definitions needed for the <code>igx-theme,</code> and have configured the <code>igx-dark-theme</code> mixin, we need to only apply <code>.light-theme</code> and <code>.dark-theme</code> CSS classes somewhere at DOM element root level and toggle it on button click.</p>
<h3 id="heading-result">Result</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ns6nmMPedTwr0gun8UGBjLC9fISpowsz74Ek" alt="Image" width="637" height="355" loading="lazy"></p>
<h3 id="heading-wrapping-up">Wrapping up</h3>
<p>Everything is possible with the right tooling. We have created a Portfolio Web application using the full power of the Angular Framework, Firebase Authentication services, and Cloud Database store/synchronization.</p>
<p>You can find the <a target="_blank" href="https://github.com/IgniteUI/crypto-portfolio-app">GitHub repository</a> and the actual portfolio <a target="_blank" href="https://igniteui.github.io/crypto-portfolio-app/">application</a> here.</p>
<p>Feel free to share in the comments below any questions that you have, suggestions as to what can be improved or changed in the app, or any problems that you’ve encountered while configuring your Firebase account or application.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Decentralized Applications Architecture: Back End, Security and Design Patterns ]]>
                </title>
                <description>
                    <![CDATA[ Decentralized applications, or ÐApps, require a special system design to achieve high security and reliability. In this article I am going to cover several main principles of how to properly design and implement back end and smart contracts for decen... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-design-a-secure-backend-for-your-decentralized-application-9541b5d8bddb/</link>
                <guid isPermaLink="false">66b99b76c39234149cf0113c</guid>
                
                    <category>
                        <![CDATA[ Blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ crypto ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ethereum ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Nikita Savchenko ]]>
                </dc:creator>
                <pubDate>Tue, 02 Apr 2019 15:51:44 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*sd62aH6GGS1RoCR9t4QNyQ.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><a target="_blank" href="https://en.wikipedia.org/wiki/Decentralized_application">Decentralized applications</a>, or ÐApps, require a special system design to achieve high security and reliability. In this article I am going to cover several main principles of how to properly design and implement back end and smart contracts for decentralized applications, taking <a target="_blank" href="https://www.ethereum.org/">Ethereum</a> as a primary example, though much of it would apply to <a target="_blank" href="https://eos.io/">EOS</a>, <a target="_blank" href="https://tron.network/">Tron</a> and other decentralized data platforms.</p>
<p><strong>Article Highlights</strong>:</p>
<ul>
<li>How to store private keys on the back end without security concerns</li>
<li>How to properly design smart contracts and what to “decentralize”</li>
<li>Decentralized and semi-centralized applications architecture examples</li>
<li>How to deal with low-level stuff like network load and failures</li>
</ul>
<p>It’s going to be big, let’s do it!</p>
<h3 id="heading-decentralized-programs-and-blockchain">Decentralized Programs and Blockchain</h3>
<p>Despite the fact that blockchain is facing a lot of adoption and regulation difficulties today, it’s a kind of technology which is here to stay, whether it’s blockchain, <a target="_blank" href="https://en.wikipedia.org/wiki/Hashgraph">hashgraph</a>, <a target="_blank" href="https://www.radixdlt.com/">tempo</a> or any other distributed ledger technology still to come, regardless of the algorithm.</p>
<blockquote>
<p>The main value that blockchain and other similar technologies bring can be generalized as follows: they allow people to write and run programs which, practically, cannot be changed after creation nor tampered with during execution. In other words, these programs always run as designed, and no single party can influence their behavior.</p>
</blockquote>
<p>This definition is valid for <em>many</em> cryptocurrencies that exist today if we consider them as programs that define how coins can be transferred back and forth. This also explains why cryptocurrencies and many kinds of tokens have real value: they cannot be generated out of thin air, by their defined “underlying programs”.</p>
<p>Ethereum/EOS/Tron/… platforms, in contrast to Bitcoin, implement a more complex program layer, which in turn implements the execution environment allowing anyone to write their own decentralized programs on top of the platform. This user-defined programs always run as designed, without any exceptions, and their security is guaranteed by the platform.</p>
<h3 id="heading-decentralized-applications">Decentralized Applications</h3>
<p>These secure and unchangeable programs running on a decentralized network in combination with traditional front-end and back-end technologies are what we call <strong>decentralized applications</strong> (ÐApps) today. Through some of them can be semi-centralized, a major part of activities in the truly decentralized application should happen out of a central party’s control.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/a0d9mC2p5qPHjMfIXw8Oq0XHCy9CQdLOAWmG" alt="Image" width="800" height="682" loading="lazy">
<em>If someone asked me to draw how DApps work today, I would probably have drawn this</em></p>
<p>To imagine what we call decentralized applications today, take any existing centralized web resource like <a target="_blank" href="https://www.youtube.com/c/NikitaSavchenko"><em>YouTube</em></a> or <a target="_blank" href="https://instagram.com/nikitaeverywhere/"><em>Instagram</em></a> as an example and imagine that instead of a password-protected centralized account you have your “<strong>crypto identity</strong>” bound to the web/mobile resource.</p>
<p>That’s what <a target="_blank" href="https://metamask.io/">Wallet Software</a> provides you. The <a target="_blank" href="https://en.wikipedia.org/wiki/Public-key_cryptography">private key</a> from this identity (a secret, having which, you can act on behalf of this identity) is stored on your local device and never goes online, making no one able to control this identity but you. With this identity, you can perform different actions in both <em>centralized</em> (web resource controlled by a central authority) and <em>decentralized</em> (which is a different network from the traditional www, the goal of which is to eliminate the central authority) <em>networks</em>, using the website as an access point and/or as a graphical user interface. The whole point of this “crypto identity” is that your actions are cryptographically secured, and no one is able to change what have you signed nor your signature.</p>
<p>Today, the computational and storage capabilities of fault-tolerant decentralized networks like <a target="_blank" href="https://www.ethereum.org/">Ethereum</a>, <a target="_blank" href="https://eos.io/">EOS</a> or <a target="_blank" href="https://tron.network/">Tron</a> are limited. If they were scalable, we could use decentralized networks to store the whole decentralized application, including its graphical user interface, data and business logic. In this case, we would call these applications truly decentralized/distributed.</p>
<p>However, because those networks are not scalable today, we combine different approaches to achieve the maximum decentralization level for our applications. The “traditional” back end as we know it isn’t going anywhere. For instance:</p>
<ul>
<li>We use back end to host front end for a decentralized application.</li>
<li>We use back end for integrations with any other existing technologies and services. Real, world-class applications cannot live in an isolated environment.</li>
<li>We use back end to store and process anything big enough for a decentralized network (blockchain in particular). Practically, the whole application and its business logic are stored somewhere in the world, excluding the blockchain part only. Not to mention, <a target="_blank" href="https://ipfs.io/">IPFS</a> and similar storage layers <a target="_blank" href="https://github.com/ipfs/faq/issues/93">cannot guarantee</a> the accessibility of files, hence we cannot rely on them without hosting the files ourselves either. In other words, there’s always a need for a dedicated running server.</li>
</ul>
<p>There’s no way of building a secure and partially decentralized application without using a solid back end as of today, and the whole point of this article is to explain how to do this right.</p>
<h3 id="heading-decentralization-and-tokens">(De)centralization and Tokens</h3>
<p>It so happens that almost all decentralized applications today are built around so-called <a target="_blank" href="https://coinmarketcap.com/tokens/">tokens</a> — custom-built (or just simply cloned) cryptocurrencies that drive a particular decentralized application. Tokens are simply a programmable currency or assets, that’s it.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/b-Ok08iucXB0n6VwiLcPzbW8BAWfTe7YRBxD" alt="Image" width="800" height="589" loading="lazy">
<em>While token smart contracts determine how users can transfer tokens, application smart contracts can extend everything missing in token smart contracts. Both smart contracts run on top of decentralized networks</em></p>
<p>Usually, a token is a “smart contract” (a custom program) written on top of the decentralized platform like Ethereum. By owning some tokens you are basically able to get different services on a web resource or mobile app, and trade this token for something else. The key point here is that the token lives on its own and it is not controlled by a central authority.</p>
<blockquote>
<p>There are many examples of applications that are build around tokens: from numerous collectible games like <a target="_blank" href="https://www.cryptokitties.co/">CryptoKitties</a> (ERC721 tokens) to more service-oriented apps like <a target="_blank" href="https://loomx.io/purchase/">LOOM Network</a>, or even browsers like <a target="_blank" href="https://brave.com/download">Brave</a> and gaming platforms like <a target="_blank" href="https://dreamteam.gg/">DreamTeam</a> (ERC20-compatible tokens).</p>
</blockquote>
<p>Developers themselves determine and decide how much control they will (or won’t) have over their applications. They can build the whole application’s business logic on top of smart contracts (like <a target="_blank" href="https://www.cryptokitties.co/">CryptoKitties</a> did), or, they can make no use of smart contracts at all, centralizing everything on their servers. However, the best approach is somewhere in the middle.</p>
<h3 id="heading-back-end-for-decentralized-networks">Back End for Decentralized Networks</h3>
<p>From a technical point of view, there has to be a bridge that connects tokens and other smart contracts with the web/mobile application.</p>
<p>In today’s fully decentralized applications, where clients interact with smart contracts directly, this bridge is narrowed down to a <a target="_blank" href="https://github.com/ethereum/wiki/wiki/JSON-RPC">JSON RPC API</a> capabilities of <a target="_blank" href="https://infura.io">public APIs or node pools like Infura</a>, which in turn are forced to exist because of the fact that not every device can run and support its individual network node. However, this API provides an only basic and very narrow set of functions, which barely allow making simple queries nor efficiently aggregate data. Because of this, eventually, custom back end kicks in, making the application semi-centralized.</p>
<p>The whole interaction with the decentralized network can be narrowed down to just one or two points, depending on the application needs:</p>
<ol>
<li><strong>Listening to the network events</strong> (like token transfers) / <strong>reading the network state</strong>.</li>
<li><strong>Publishing transactions</strong> (invoking state-changing smart contract functions like token transfer).</li>
</ol>
<p>Implementing both of these points is quite tricky, especially if we want to build a secure and reliable back-end solution. Here are the main points which we are going to break down below:</p>
<ul>
<li>First of all, in Ethereum, events retrieval is not production-ready out of the box. Because of multiple reasons: network nodes can fail while fetching a large number of events, events can disappear or change because of network forks, etc. We have to build an abstraction layer to sync events from the network and guarantee their reliable delivery.</li>
<li>The same for transaction publishing, we have to abstract Ethereum’s low-level stuff like nonce counters and gas estimations, as well as transaction republishing, providing a reliable and stable interface. Moreover, transaction publishing implies using private keys, which requires advanced back-end security.</li>
<li>Security. We are going to take it seriously and face that it’s impossible to guarantee that private keys won’t ever be compromised on a back end. Luckily, there is an approach to designing a decentralized application without even <strong>a need</strong> for back-end accounts to be highly secured.</li>
</ul>
<p>In our practice, all of this made <a target="_blank" href="https://dreamteam.gg/">us</a> create a robust back-end solution for Ethereum which we name <strong>Ethereum Gateway</strong>. It abstracts other microservices from Ethereum’s fun and provides a reliable API to work with it.</p>
<p>As a <a target="_blank" href="https://dreamteam.gg/">fast-growing startup</a>, we cannot disclose the complete solution (just yet) for obvious reasons, but I am going to share everything that you need to know to make your decentralized application work flawlessly. However, if you have any specific questions or inquiries, feel free to contact <a target="_blank" href="https://nikita.tk/">me</a>. Comments to this article are much appreciated as well!</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/aR03aGoFHc3EZ5ZCBVBPn6gqQEYYWFArNVy0" alt="Image" width="800" height="519" loading="lazy">
_Back End Monitoring for Ethereum. The monitor demonstrates activities mainly regarding our [recurring billing feature](https://github.com/dreamteam-gg/smart-contracts/blob/master/contracts/token/TokenRecurringBilling.md" rel="noopener" target="<em>blank" title=") (though you can see peaks happening each hour).</em></p>
<h3 id="heading-decentralized-applications-architecture">Decentralized Applications Architecture</h3>
<p>This part of the article highly depends on the needs of a particular decentralized application, but we will try to sort out some basic interaction patterns on top of which these applications are built (ÐPlatform = Decentralized Platform = Ethereum/EOS/Tron/Whatever):</p>
<h4 id="heading-client-dplatform-fully-decentralized-applications"><strong>Client ⬌ ÐPlatform</strong>: <strong><em>fully decentralized applications</em></strong>.</h4>
<p>The client (browser or mobile application) talks to the decentralized platform directly with the help of Ethereum “wallet” software like <a target="_blank" href="https://metamask.io">Metamask</a>, <a target="_blank" href="https://trustwallet.com/">Trust</a> or hardware wallets like <a target="_blank" href="https://trezor.io/">Trezor</a> or <a target="_blank" href="https://www.ledger.com/">Ledger</a>. Examples of DApps build in such manner are <a target="_blank" href="https://www.cryptokitties.co/">CryptoKitties</a>, <a target="_blank" href="https://loomx.io/">Loom’s</a> <a target="_blank" href="https://delegatecall.com/">Delegated Call</a>, crypto wallets themselves (<a target="_blank" href="https://metamask.io/">Metamask</a>, <a target="_blank" href="https://trustwallet.com/">Trust</a>, <a target="_blank" href="https://tron.network/wallet?lng=en">Tron Wallet</a>, others), decentralized crypto exchanges like <a target="_blank" href="http://etherdelta.com">Etherdelta</a> and so on.</p>
<h4 id="heading-dplatform-client-back-end-dplatform-centralized-or-semi-centralized-applications"><strong>ÐPlatform</strong> ⬌ <strong>Client</strong> ⬌ <strong>Back End</strong> ⬌ <strong>ÐPlatform</strong>: <strong><em>centralized or semi-centralized applications</em></strong>.</h4>
<p>The client interaction with the decentralized platform and the server has little in common. The good example of this is any (<strong><em>centralized</em></strong>) crypto exchange today, like <a target="_blank" href="https://www.bitfinex.com/">BitFinex</a> or <a target="_blank" href="https://poloniex.com">Poloniex</a>: the currencies you trade on exchanges are simply recorded in the traditional database. You can “top up” your database balance by sending assets to a specific address (ÐPlatform ⬌ Client) and then withdraw assets after some actions in the app (Back End ⬌ ÐPlatform), however, everything you do in terms of a “ÐApp” itself (Client ⬌ Back End) does not imply your direct interaction with the ÐPlatform.</p>
<p>Another example is <a target="_blank" href="https://etherscan.io/">Etherscan.io</a>, which uses <strong><em>semi-centralized</em></strong> approach: you can do all useful decentralized actions there, but the application itself just doesn’t make sense without their comprehensive back end (Etherscan continuously syncs transactions, parses data and stores it, ultimately providing a comprehensive API/UI).</p>
<h4 id="heading-something-in-between-still-centralized-or-semi-centralized-applications"><strong>Something in between: <em>still,</em> <em>centralized or semi-centralized applications</em>.</strong></h4>
<p>The above approaches combined. For example, we can have an application which provides various services in exchange for crypto, allowing you to log in and sign information with your crypto identity.</p>
<p>Hopefully, the interaction pattern of fully decentralized applications (Client ⬌ ÐPlatform) does not raise any questions. By relying on such amazing services like <a target="_blank" href="https://infura.io/">Infura</a> or <a target="_blank" href="https://www.trongrid.io/">Trongrid</a> one can simply build an application which doesn’t require a server at all. Almost all client-side libraries like <a target="_blank" href="https://github.com/ethers-io/ethers.js/">Ethers.js</a> for Ethereum or <a target="_blank" href="https://github.com/tronprotocol/tron-web">Tron-Web</a> for Tron can connect to these public services and communicate with the network. However, for more complex queries and tasks, you may need to allocate your own server anyway.</p>
<p>The rest of the interaction patterns which involve back end make things more interesting and complex. To put all these in a picture, let’s imagine a case where our back end reacts to some event in the network. For example, the user publishes an allowance transaction which gives us permission to charge them. To make a charge, we have to publish the charge transaction in response to the emitted allowance event:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/86mjnQ0gwUrAbrBL4t8LFCXbC4HyckEsmFYQ" alt="Image" width="800" height="612" loading="lazy">
<em>An example flow of server’s reaction to the user’s action in the decentralized network</em></p>
<p>From the back end point of view here’s what happens:</p>
<ol>
<li>We listen to a particular network event by continuously polling the network.</li>
<li>Once we get an event, we perform some business logic and then decide to publish a transaction in response.</li>
<li>Prior to publishing the transaction, we want to ensure that it will likely be mined (in Ethereum, the successful transaction gas estimation means there are no errors against the <em>current network state</em>). However, we can’t guarantee that the transaction will be mined <em>successfully</em>.</li>
<li>Using a private key, we sign and publish the transaction. In Ethereum we also have to determine the gas price and gas limit of the transaction.</li>
<li>After publishing the transaction, we continuously poll the network for its status.</li>
<li>If it takes too long and we can’t get the status of the transaction, we have to re-publish it or trigger a “fail scenario”. Transactions can be lost for various reasons: network congestion, dropping peers, network load increase, etc. In Ethereum, you can also consider re-signing a transaction with a different (actual) gas price.</li>
<li>After we finally get our transaction mined, we can perform more business logic if needed. For example, we can notify other back end services about the fact of the transaction being completed. Also, consider waiting for a couple of confirmations prior to making final decisions regarding the transaction: the network is distributed and hence the result can change in a matter of seconds.</li>
</ol>
<p>As you can see, there’s a lot going on! However, your application may not require some of these steps, depending on what you are trying to achieve. But, building a robust and stable back end requires having a solution for all the problems mentioned above. Let’s break this down.</p>
<h3 id="heading-decentralized-applications-back-end">Decentralized Applications Back End</h3>
<p>Here I want to highlight some of the points which arise most of the questions, namely:</p>
<ul>
<li>Listening to network events and reading data from the network</li>
<li>Publishing transactions &amp; how to do it securely</li>
</ul>
<h4 id="heading-listening-to-network-events">Listening to Network Events</h4>
<p>In Ethereum, as well as in other decentralized networks, a concept of smart contract <a target="_blank" href="https://media.consensys.net/technical-introduction-to-events-and-logs-in-ethereum-a074d65dd61e">events (or event logs, or just logs)</a> allows off-chain applications to be aware of what is happening in the blockchain. These events can be created by smart contract developers at any point of the smart contract code.</p>
<p>For example, within the well-known <a target="_blank" href="https://en.wikipedia.org/wiki/ERC-20">ERC20</a> token standard each token transfer <a target="_blank" href="https://etherscan.io/tx/0xe7186ec76b164e44212dda60fdace62bef67cf7dc017d2e6318d517daa9b01c9#eventlog">has to log the Transfer event</a>, thus letting off-chain applications know that there is a token transfer happened. By “listening” to these events we can perform any (re)actions. For instance, some mobile crypto-wallets send you a push/email notification when tokens are transferred to your address.</p>
<p>In fact, there’s no reliable solution for listening to network events out of the box. Different libraries allow you to track/listen to events, however, there are many cases when something can go wrong, resulting in lost or unprocessed events. To avoid losing events, we have to build a custom back end, which will maintain the events sync process.</p>
<p>Depending on your needs, the implementation can vary. But to put you in a picture here is one of the options of how can you build reliable Ethereum events delivery in terms of microservice architecture:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1I5pP5C6HTNGeXpSNO1TpQeFDvxRZnDzZDnt" alt="Image" width="800" height="366" loading="lazy">
<em>Reliable delivery of Ethereum events to all back end services</em></p>
<p>These components work in the following way:</p>
<ol>
<li>Events sync back end service constantly polls the network, trying to retrieve new events. Once there are some new events available, it sends these events to the message bus. Upon successful event submission to the message bus, as for blockchain, we can save the last event’s block in order to request new events from this block next time. Keep in mind that retrieving too many events at once may result in always failing requests, so you have to limit the number of events/blocks you request from the network.</li>
<li>The message bus (for example, <a target="_blank" href="https://www.rabbitmq.com/">Rabbit MQ</a>) routes the event to every queue which was set up individually for each back end service. Prior to event publishing, events sync back end service specifies the routing key (for example, a smart contract address + event <a target="_blank" href="https://codeburst.io/deep-dive-into-ethereum-logs-a8d2047c7371">topic</a>), while consumers (other back end services) create queues which are subscribed for particular events only.</li>
</ol>
<p>As a result, each back end service gets only those events it needs. Moreover, the message bus guarantees the delivery of all events once they are published to it.</p>
<p>Of course, you can use something else instead of the message bus: HTTP callbacks, sockets, etc. In this case, you’ll need to figure out how to guarantee callbacks delivery yourself: manage exponential/custom callback retries, implement custom monitoring and so on.</p>
<h4 id="heading-publishing-transactions"><strong>Publishing Transactions</strong></h4>
<p>There are a couple of steps we have to perform in order to publish a transaction to the decentralized network:</p>
<ol>
<li>Preparing the transaction. Along with transaction data, this step implies requesting the network state in order to find out whether this transaction is valid and is going to be mined (gas estimation in Ethereum) and the transaction’s sequential number (nonce in Ethereum). Some of the libraries <a target="_blank" href="https://github.com/ethers-io/ethers.js/issues/331">try to do this under the hood</a>, however, these steps are important.</li>
<li>Signing the transaction. This step implies the usage of the private key. Most likely, here you’ll want to embed the custom private key assembly solution (<a target="_blank" href="https://github.com/immutability-io/vault-ethereum">for instance</a>).</li>
<li>Publishing and <em>republishing</em> the transaction. One of the key points here is that your published transaction always has a chance to get lost or dropped from the decentralized network. For example, in Ethereum, the published transaction can be dropped if the network’s <a target="_blank" href="https://ethgasstation.info/">gas price</a> suddenly increases. In this case, you have to republish the transaction. Moreover, you may want to republish the transaction with other parameters (at least with higher gas price) in order to get it mined as soon as possible. Thus, republishing the transaction can imply re-signing it, if the replacement transaction wasn’t pre-signed before (with different parameters).</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ZFZYOVlaW-CDPFpzwutxZTCVdeM4ifLqpsK8" alt="Image" width="800" height="532" loading="lazy">
<em>The above points regarding Ethereum transaction publishing visualized</em></p>
<p>By utilizing the above approaches you can end up building something similar to the thing which is presented in the sequence diagram below. On this particular sequence diagram, I demonstrate (in general!) how the <a target="_blank" href="https://hackernoon.com/payments-of-tomorrow-decentralized-recurring-billing-47d126d895fd">blockchain recurring billing</a> works (there’s more in a linked article):</p>
<ol>
<li>The user executes a function in a smart contract, which ultimately allows the back end to perform a successful charge transaction.</li>
<li>A back end service responsible for a particular task listens to the event of charge allowance and publishes a charge transaction.</li>
<li>Once the charge transaction is mined, this back end service responsible for a particular task receives an event from the Ethereum network and performs some logic (including setting the next charge date).</li>
</ol>
<p><img src="https://cdn-media-1.freecodecamp.org/images/oNsxhuB9bVacGDh7pJyMjjk25gyipzS70lJg" alt="Image" width="800" height="564" loading="lazy">
_The general sequence diagram of how [blockchain recurring billing](https://hackernoon.com/payments-of-tomorrow-decentralized-recurring-billing-47d126d895fd" rel="noopener" target="<em>blank" title=") works, demonstrating the interaction between back-end services and Ethereum network</em></p>
<h3 id="heading-back-end-security-amp-smart-contracts">Back End Security &amp; Smart Contracts</h3>
<p>Transaction publishing always involves using a <strong>private key</strong>. You may be wondering if it is possible to keep private keys secure. Well, yes and no. <a target="_blank" href="https://en.wikipedia.org/wiki/Threshold_cryptosystem">There are</a> <a target="_blank" href="https://medium.com/gemini/cold-storage-keys-crypto-how-gemini-keeps-assets-safe-a732addcd13b">numerous</a> <a target="_blank" href="https://www.coinbase.com/security">complex</a> <a target="_blank" href="https://github.com/immutability-io/vault-ethereum">strategies</a> and <a target="_blank" href="https://www.vaultproject.io/">different types of software</a> which allow storing private keys on the back end quite securely. Some private key storage solutions use geo-distributed databases, while others even suggest the use of special hardware. However, in any case, the most vulnerable point of a semi-centralized application is where the private key is assembled and used to sign a transaction (or, in case of special hardware, a point of triggering a transaction signing procedure). Hence, theoretically, there’s no 100% reliable solution which will enable bullet-proof protection from compromising stored private keys.</p>
<p>Now think this way. In many cases, you don’t even need to secure private keys on the back end that often. Instead, <strong>you can design smart contracts and the whole application in such a manner that a private key leak won’t affect their usual behavior</strong>. With this approach, it doesn’t matter how authorized accounts interact with the smart contract. They’re just “triggering” a smart contract to do its usual job, and the smart contract itself performs any required validation. I call it the “operational accounts pattern”.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Vl3V0DAGGdqi07BnffXkqRsl-0YROdAkgCG6" alt="Image" width="800" height="366" loading="lazy">
<em>Operational accounts pattern for decentralized applications, where you don’t need military-grade security for your back-end accounts</em></p>
<p>This way, in case of emergency:</p>
<ul>
<li>The only thing the attacker can steal is a tiny amount of Ether (as of Ethereum) deposited to the operational accounts for transaction publishing</li>
<li>The attacker won’t be able to harm the smart contract logic nor anyone who is involved in the process</li>
<li>Compromised operational accounts can be quickly replaced with other ones, however, this requires either the manual replacement (generating new accounts, and reauthorizing accounts in all smart contracts) or developing an additional solution which will do all the magic with a single transaction from a super-secure (hardware or <a target="_blank" href="https://medium.com/@yenthanh/list-of-multisig-wallet-smart-contracts-on-ethereum-3824d528b95e">multi-sig</a>) master account.</li>
</ul>
<p>For instance, in our <a target="_blank" href="https://hackernoon.com/payments-of-tomorrow-decentralized-recurring-billing-47d126d895fd">recurring billing for Ethereum</a> solution, no matter what happens on a back end, the recurring billing smart contract is designed in such a manner that we have a whole month of time for replacing the compromised accounts if any of them are compromised.</p>
<p>But still, if you want to get your back end private key storage as secure as possible, you can try using <a target="_blank" href="https://www.vaultproject.io/">Vault</a> with a <a target="_blank" href="https://github.com/dreamteam-gg">great plugin for Ethereum</a> which stores and manages Ethereum accounts (also, keep an eye on our <a target="_blank" href="https://github.com/dreamteam-gg">open-source modules</a> — we are about to release something similar soon). I am not going to dive deep into the details here, though you can visit the linked projects and learn from there yourself.</p>
<p>This isn’t even all I have to say. However, this article turned out to be much longer than I expected so I have to stop. Subscribe to my <a target="_blank" href="https://medium.com/@zitro">Medium</a> / <a target="_blank" href="https://nikita.tk/">other networks</a> if you’re interested in software, crypto, <a target="_blank" href="https://instagram.com/nikitaeverywhere/">travel tips</a> or just want to follow something interesting. Hope I’ve provided a big valuable piece of information and you’ll find it useful. Feel free to comment and spread this article!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The Definitive OmiseGO Beginner’s Guide ]]>
                </title>
                <description>
                    <![CDATA[ By Jérémie Grandsenne As the interest for blockchain projects and cryptocurrencies is exponentially growing, OmiseGO appears to be one of the strongest and most exciting projects out there. Still, as it involves fairly complex notions, it is hard for... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-definitive-omisego-beginners-guide-f95dcdf8635c/</link>
                <guid isPermaLink="false">66c361269539e75f2cc24a38</guid>
                
                    <category>
                        <![CDATA[ Omisego ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ crypto ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Cryptocurrency ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 03 Nov 2017 19:08:40 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*kzvOj2G61olA6bEHY98H3Q.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jérémie Grandsenne</p>
<p>As the interest for blockchain projects and cryptocurrencies is exponentially growing, <a target="_blank" href="http://omg.omise.co/"><strong>OmiseGO</strong></a> appears to be one of the strongest and most exciting projects out there. Still, as it involves fairly complex notions, it is hard for the beginner looking for an introduction to find a <strong>clear and complete guide</strong>: OmiseGO’s website provides all necessary documents, and especially the “<a target="_blank" href="https://cdn.omise.co/omg/whitepaper.pdf">white paper</a>”, an in-depth explanation of the whole system, but although being an extremely well thought and precise document, it would be a lie to pretend it’s not a hard read at first sight.</p>
<p>There are also some good quality reviews already, but while they can be very useful, they usually focus on one specific point of the matter, such as commercial partnerships, without taking the time to introduce the whole of the project to someone that would be completely new to it.</p>
<p>So I decided to write the comprehensive guide that would take everything from the start and be <strong>clear for anyone to read</strong>, while at the same time exposing everything in the most precise and accurate way, in order to give this very ambitious project the wide audience and understanding it deserves.</p>
<p>As I’m taking things back from the basics, if you feel like you are already clear about some points, feel free to skip them and directly move to the points that interest you. I have tried to give a clear architecture to this article, clear titles and an introductive summary, so that you can browse easily through this guide if you don’t want to read it from the beginning to the end.</p>
<p>Please note that whatever you read in this guide, it is made only for explanational purpose, and is not in any case an investment advice: I am not entitled to this, I don’t wish to, and the choice one makes with his or her own money is his or her own choice. Investing in any project and especially in the crypto world is always a high risk operation, and I have no recommendation to make about it. Even the part titled “Why invest in OmiseGO” is to be considered a mere exposition of what can be the reasons to invest in the project if one chooses to, but not an advice pretending you should, or should not.</p>
<p>I’m only trying to clearly explain what OmiseGO is, what it is building, and what it can be in the future, while answering in a same article to many questions I’ve seen and answered separately on dedicated forums.</p>
<p>This article will cover the following points:</p>
<p><strong>1) The company</strong><br>What is Omise?<br>What is OmiseGO?<br>Who is the team?<br>How did Omise launch OmiseGO?</p>
<p><strong>2) The project</strong><br><strong>A. Basics: Blockchain / Ethereum</strong><br>How do internet services work without a blockchain?<br>What are the problems with the traditional model?<br>What is a blockchain?<br>What is Ethereum?<br><strong>B. OmiseGO</strong><br>What real-world problem does OmiseGO want to solve?<br>What customers is OmiseGO targetting?<br>What is OmiseGO building?<br>What is the OmiseGO blockchain?<br>What is the Decentralized Exchange (DEX)?<br>What is the OmiseGO Wallet?<br>What is the white-label wallet SDK?<br>What is the use of the OMG token?<br><strong>C. Interactions with other projects</strong><br>How will Ethereum and OmiseGO interact?<br>What is Plasma?</p>
<p><strong>3) Partners and investors</strong><br><strong>A. Countries and Banks</strong>  </p>
<ol>
<li>Thailand  </li>
<li>Japan  </li>
<li>Singapore and Thailand<br><strong>B. Private partners and investors</strong>  </li>
<li>TrueMoney  </li>
<li>Mac Donald’s Thailand   </li>
<li>Toppan Printing  </li>
<li>Global Brain  </li>
<li>Discussion phase: Greylock Partners<br><strong>C. OmiseGO adopters</strong></li>
</ol>
<p><strong>4) The future</strong><br><strong>A. OmiseGO’s future</strong><br>What will happen between Omise and OmiseGO?<br>What is OmiseGO’s roadmap?<br> <strong>B. Why invest in OmiseGO</strong></p>
<p><strong>5) Frequently Asked Questions</strong><br>What will be the network’s fees’ amount?<br>What will be the minimum amount of OMG coins required for staking?<br>Is OMG an ERC20 token?<br>Will the OMG token be replaced by another token in the future?<br>Where to store OMG tokens?<br>Where to buy OMG?</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*_rySePd_USd4yehzD_6UJA.png" alt="Image" width="800" height="386" loading="lazy"></p>
<h3 id="heading-1-the-company"><strong>1) The company</strong></h3>
<p><strong><em>What is Omise?</em></strong></p>
<p>Omise is a real-world company established since 2013 in Thailand, Japan, Singapore and Indonesia. It provides an online payment solution already used by thousands of customers: these customers are merchants, using the Omise payment solution to sell their products or services to their own customers.</p>
<p>Omise have been featured in 2016 by Forbes Thailand as « Fintech rockstars », and awarded « Digital startup of the year » by Thailand’s Prime Minister.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*98iqoHOJepLEk42mItTCOQ.jpeg" alt="Image" width="750" height="552" loading="lazy"></p>
<p><strong><em>What is OmiseGO?</em></strong></p>
<p>OmiseGO is an extension of Omise, born in 2017 to leverage the blockchain technology to propose a whole system that aims to revolutionize the way people take control of their financial and valuable assets and exchange them with each other, by providing a secure and completely open way to do so without boundaries and without depending on a third-party.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*gaUuNIO7FfalE151mbqF1g.png" alt="Image" width="650" height="146" loading="lazy"></p>
<p><strong><em>Who is the team?</em></strong></p>
<p>Jun Hasegawa is Omise and OmiseGO’s CEO, and Donnie Harinsut is Omise and OmiseGO’s COO. Joseph Poon, who is co-author of the Lightning Network and co-author of Plasma, is OmiseGO’s principal author, and notable members of the advisors’ team include Vitalik Buterin, founder of Ethereum, and co-author of Plasma, Gavin Wood, co-founder of Ethereum, Jae Kwon, creator of Tendermint and Cosmos Network, Vlad Zamfir, Ethereum’s Casper Research Lead, Julian Zawitowski, founder of Golem, and Thomas Greco, member of Ethereum, the Cosmos Network and Streamr.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*WKbzOobPkcFUEVKgB7NEUA.jpeg" alt="Image" width="800" height="600" loading="lazy">
<em>Thomas Greco, Vansa Chatikavanij, Gavin Wood, Vitalik Buterin, Donnie Harinsut, Jun Hasegawa</em></p>
<p><strong><em>How did Omise launch OmiseGO?</em></strong></p>
<p>Omise had planned an ICO to launch their OmiseGO project. An ICO is an Initial Coin Offering, a kind of fundraising that is typically used for blockchain projects, where a company or project sells coins for a limited time at very special price, which is an incentive for investors who believe in the project and expect it to take value in the future, and allows the company to raise funds.</p>
<p>Usually, an ICO stops when the company reaches its hard cap, which is the maximum amount of money they want to raise through the ICO, or to say it the other way, the maximum amount of tokens they want to sell through the ICO. But ICOs are usually preceeded by a private sale for selected investors, also at a special price, and OmiseGO are famous for having reached their 25 million USD hard cap through the private sale, which means there wasn’t even a public ICO. They could have made an ICO anyway to raise more funds, and had over 100 million USD of interest for pre-ICO sale only, but they decided to stop once reached the needed funds for the project. Which, as a side-note, can be considered a fair move and a hint for trust.</p>
<h3 id="heading-2-the-project"><strong>2) The project</strong></h3>
<h4 id="heading-a-basics-blockchain-ethereum"><strong>A. Basics: Blockchain / Ethereum</strong></h4>
<p><strong><em>How do internet services work without a blockchain?</em></strong></p>
<p>The traditional way things work without a blockchain, is the <strong>centralized database</strong> <strong>model</strong>. A company owns a private database, which is a library of data, stocked on a computer or on many computers called servers. This company also provides a public website, that people can access through the internet, thanks to the TCP/IP protocol, that allows a computer to connect to one specific server (or collection of servers) when typing in a certain address. For instance, typing in <a target="_blank" href="http://www.facebook.com">http://www.facebook.com</a> will take you to Facebook’s website, meaning that thanks to the TCP/IP protocol, your computer will connect to Facebook’s servers, and only to these servers, when you type in facebook’s http address.</p>
<p>And when the user requests an action on a certain website’s interface through his browser, for instance when clicking on a link or filling in a form, the website will look for the relevant information (for instance: next page’s content) on its server, in other words, inside its private database, and deliver these informations on the user’s screen. And if necessary, the website will also update its database informations according to the user’s actions, for instance in the case of a user profile’s creation, edition or deletion.</p>
<p>In this model, the company owns a database, that is both, first, the collection of programmatic instructions that are the technical matrix of what users see on their screen, in other words the rules that define actions allowed by the website, and second, the library containing every data used by the website, for instance images used on the website, and every data users might enter in the website such as their identity information, profile picture, search and browsing history, payment information, and any information you might be giving when using a certain website.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*UZIkQDHIH2hLeVVD9QsehQ.gif" alt="Image" width="337" height="217" loading="lazy">
_Image source [Infomotions.com](http://infomotions.com/musings/waves/clientservercomputing.html" rel="noopener" target="<em>blank" title=")</em></p>
<p><strong><em>What are the problems with the traditional model?</em></strong></p>
<p>There are 3 main problems with the traditional centralized database model:</p>
<ul>
<li><p>The first problem is <strong>security</strong>: if a hacker succeeds in breaking the database’s security (and sometimes they do), a lot of sensitive content can leak and compromise users’ safety or privacy.</p>
</li>
<li><p>The second problem is <strong>privacy</strong>, meaning the use that the website makes of people’s personal data: although this depends on every website’s policy, a website containing users information on its servers can sell these information to third parties, either anonymously (big data) either namely, whether the information will be used for direct custom marketing (most commonly), or for personal or industrial spying.</p>
</li>
<li><p>Finally, the third problem, that includes the first two ones and also goes beyond them, is that, whatever the service provider is, such as a commercial company, a bank, a governmental office, and whatever the way they intend to treat people’s data, one thing that is common to any of these structures when using their services, is the need of <strong>trust</strong>: the users trust them, they give them sensitive information, assuming and hoping that the service will not do anything with their data that they would not want to, and that would compromise their privacy or put them in danger. This goes for the company as a whole (you trust the company), and it goes for the company workers: you trust that no malicious individual is part of the company’s team and has access to your data.</p>
</li>
</ul>
<p>This trust system also means that the user doesn’t have the <strong>control</strong> on his own data, and instead, delegates this control to a third party (the company, bank or service), that he decides to trust enough to use (an online marketplace), or that the society strongly incites him to use (a bank).</p>
<p><strong><em>What is a blockchain?</em></strong></p>
<p>In two words, <strong>a blockchain is a decentralized database that is also a network.</strong></p>
<p>What does that mean?</p>
<p>The traditional system is basically made of 2 entities: the user’s client (his computer and internet browser or connected application), and the website’s server / database that communicates with the client.</p>
<p>And if 10 000 users connect to the same website, you still have, 10 000 clients on one side, and 1 database on the other side (or a collection of many databases when the website is big, but they still equal to one centralized database at the end). And the information (the data) moves in 2 binary ways: from a client to the server, or from the server to a client.</p>
<p>Now imagine that the website doesn’t own a private database, and that, instead, each of the 10 000 clients, additionally to being a client (a user), also owns an identical copy of the database.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*3hyWN8UhcrL7P0Opbu7IQg.jpeg" alt="Image" width="800" height="480" loading="lazy">
_Image source [Seats2meet.com](https://magazine.seats2meet.com/more-about-blockchain/" rel="noopener" target="<em>blank" title=")</em></p>
<p>Imagine that if a hacker is hiding inside this 10 000 users and want to fallaciously delete or add or edit an information in the database at his own profit (for instance: add a money transfer from a victim user’s account to his own account), his own copy will become different from the other 9999 copies, so his database copy will be automatically rejected and his fraud attempt will be rejected as well.</p>
<p>Imagine also that the database is not anymore made of lines and rows and entries, where you can edit the entries, like in a traditional database, but of blocks of information that vertically align and add one to the other through time, and that once confirmed and put into the line of blocks (the block chain), not any block can ever be edited or erased in the future.</p>
<p>Finally, imagine that to add one new block to the chain in order to validate it, it has to be accepted both horizontally, meaning it has to be confirmed by all the users who own a copy of the database (or a sufficient number of random users), and also vertically, meaning that to be confirmed as block 3456 of the chain, it has to provide an extraordinary complicate cryptographic proof, without which it won’t be able to hook to block 3455, and won’t be able to be added to the chain.</p>
<p>This, is <strong>blockchain as a</strong> <strong>decentralized database</strong>: the database is now identically shared by thousands of computers, and not a single line can be erased or changed in the database (ever), and not a single line can be added without providing a very specific proof and having it confirmed by these thousands of computers that will also check that it matches vertically with their previous block. The result is that the hacker that had the ability to break a centralized database’s security and steal its sensitive content, would now have to break extremely complicate cryptographic barriers but also break the doors to thousands of computers at the very same time, to modify each of the thousands of existing copies of the database: this is why the blockchain is considered virtually unbreakable. To get deeper into this matter and learn about hashes and nonces, you can watch this very clear and interesting video by Anders Brownworth <a target="_blank" href="https://anders.com/blockchain/">here</a>.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*flMWR1oSK--wozLYmEn8XA.png" alt="Image" width="800" height="416" loading="lazy">
_Watch Anders Brownworth’s [video](https://anders.com/blockchain/" rel="noopener" target="<em>blank" title=") and give a meaning to these colourful boxes and numbers</em></p>
<p>And <strong>blockchain as a network</strong> simply means that all these computers owning their own identical copy of the decentralized database, are also all running a certain application, thanks to which they are all linked together, and constitute a big network. Each point of this network, meaning each computer owning this database copy and running this application, is called a node, because, as in a physical net or web, it acts as the link and nodal point where several lines meet. And thanks to this nodes and lines horizontal architecture, where any node is virtually linked to any other node, the information (data) can travel, now not only in a binary way from a server to a client or a client to a server, but, as everyone is now both a client and server, from any node to any node. This data can be any type of information you can imagine, and this network structure, where any type of information can travel from any node to any other node, is blockchain as a network.</p>
<p>Then, users can also use applications running on this network without running a node themselves, and without owning their own copy of the database.</p>
<p><strong><em>What is Ethereum?</em></strong></p>
<p>Above the blockchain protocol, the term Ethereum both refers to the <strong>Ethereum blockchain</strong> and to the <strong>Ethereum application layer</strong> running on this blockchain. The Ethereum blockchain is a certain blockchain, meaning a certain network made of thousands of computers acting as Ethereum nodes. And, running on the Ethereum blockchain, the term Ethereum also refers to a supplementary application protocol layer, that developers can use to develop their own applications on the Ethereum network.</p>
<p>Ethereum has also popularized the concept of <strong>smart contracts</strong>, that define rules between 2 participants, and thanks to which a certain transaction happens when and only when the parameters accepted by both participants are met, without allowing one of the 2 participants to change the terms of the contract without the other’s agreement: which is a guarantee of technical and legal transparency. The contract can be financial, or happen on any other level. In the same time, the Ethereum protocol also includes its own token, Ether (ETH).</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*ZPirVdiYDAF6IxQywTs2Vg.png" alt="Image" width="768" height="361" loading="lazy">
_Image by Maria Kuznetsov, source [Coindesk.com](https://www.coindesk.com/information/what-is-ethereum/" rel="noopener" target="<em>blank" title=")</em></p>
<p>In other words, the term blockchain both refers to a certain type of <strong>protocol</strong> and process between computers, and to one particular existing <strong>network</strong> that is built based on the blockchain protocol. And to develop a blockchain application (because you want your application to leverage the benefits of the blockchain protocol such as decentralization, safety and privacy), you need to create a certain blockchain, and you need to develop an application on it. Both are complicate and costly operations, because the blockchain ecosystem and development is still a sort of <strong>“cognitive wild wild west”</strong>. In this wild wild west, Ethereum comes to take everyone by the hand, by providing a usable and efficient blockchain, and a certain suit of development tools to build on: a JavaScript inspired programming language called Solidity, and a development framework based on Solidity, that developers can use to develop and run their applications on the Ethereum blockchain.</p>
<p>The reason of Ethereum’s popularity lies in the Ethereum blockchain’s robustness and quality, in the development of the smart contracts process, and in the fact that Ethereum as an application layer allows developers to develop any kind of application they want, skipping the blockchain construction process, opening the door to a brand new world of blockchain based applications with a reduced development cost and learning curve. Ethereum is already active (first version July 2015) and still on development, and many observers consider it might bring a considerable paradigm shift, and change the way we know the world and interact with others in a same way the internet has changed it a couple of decades ago. It is also part of the blockchain and computer culture to know that Ethereum has been founded by young Vitalik Buterin.</p>
<h4 id="heading-b-omisego"><strong>B. OmiseGO</strong></h4>
<p><strong><em>What real-world problems does OmiseGO want to solve?</em></strong></p>
<p>OmiseGO is addressing 2 types of problems:</p>
<ul>
<li>First problem or fact is that hundreds of million people in Asia, and 2 billion people worldwide, are <strong>unbanked</strong>. They don’t have access to a bank account, and can’t either use one in their daily lives, either remotely send or receive money easily except using costly solutions (which can often be a problem for immigrant workers aiming to send money to their family). On the other hand, especially Asia shows an exceptional internet penetration rate: many unbanked people, but more and more connected people.</li>
</ul>
<p>OmiseGO wants to provide unbanked people with an easy, open solution allowing them to own, send, receive money on a dematerialized form, whatever currency or asset they want to send, and at a minimal cost.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*7_KeebuC2P_mq3OXOmyQHA.png" alt="Image" width="800" height="387" loading="lazy">
_2016 map. Source [PaymentsCardsAndMobile.com](http://www.paymentscardsandmobile.com/addressing-unbanked-developing-countries/" rel="noopener" target="<em>blank" title=")</em></p>
<ul>
<li>Second problem is what OmiseGO defines as « a fundamental <strong>coordination problem</strong> amongst payment processors, gateways and financial institutions »: meaning that the economical and financial world is full of closed networks, where it is possible to send money inside one very network, but much more difficult or costly to send cross-network money or values.</li>
</ul>
<p>OmiseGO wants to provide users and merchants with a <strong>universal, decentralized solution</strong>, making it easy and costless to send money from any network to any network, agnostically among currencies or asset types, and countries and juridictions.</p>
<p>As a side effect, such a network which by design equally allows to exchange fiat money (money emitted by nations), cryptocurrencies (computer created digital money), on any asset or value (loyalty points) through a blockchain secure network, easy to use and with minimal cost, should also likely increase the use of cryptocurrencies in people’s daily life.</p>
<p><strong><em>What customers is OmiseGO targetting?</em></strong></p>
<p>OmiseGO is targetting 2 types of customers:</p>
<ul>
<li><p>First type are <strong>individual users</strong>, and especially at first in South-East Asia, to provide them with an easy daily solution that can act as a positive substitute to a bank account, allowing them to keep, send, receive money, easily, safely, quickly and at small cost, on an open network, without depending on banks’ acceptance, and without relying on bank as a trust third party, allowing them to take control of their own financial autonomy</p>
</li>
<li><p>Second type are merchants and wallet providers, and more generally <strong>Electronic Payment Providers</strong> (EPPs), allowing them to propose solutions with which their customers can seamlessly keep, send, receive and exchange any type of values from any network to any other network, giving them much more freedom than they currently have, and at a much smaller cost.</p>
</li>
</ul>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*dc1m99-AlLG4cSiYhwmGVA.jpeg" alt="Image" width="800" height="500" loading="lazy">
_If you have nothing better to do on Philippines’ Panglao Island, you can use your OmiseGO wallet / Photo Reinhard Dirscherl, Getty, source [Travel + Leisure](http://www.travelandleisure.com/slideshows/best-secret-beaches-on-earth#panglao-island-phillippines" rel="noopener" target="<em>blank" title=")</em></p>
<p><strong><em>What is OmiseGO building?</em></strong></p>
<p>OmiseGO is building <strong>a full decentralized system to enable value exchange in real time and in peer-to-peer on an Ethereum-based blockchain</strong>, whatever the value type is (fiat money, cryptocurrency, any asset or any countable value such as mileage or loyalty points), and agnostically accross juridictions.</p>
<ul>
<li><p>This full system will take place on the OmiseGO <strong>blockchain</strong> (network), and will include on this blockchain:</p>
</li>
<li><p>A <strong>Decentralized</strong> <strong>Exchange</strong> (DEX), a liquidity provider mechanism, a clearinghouse messaging network and an asset-backed blockchain gateway</p>
</li>
<li><p>The <strong>OmiseGO</strong> <strong>wallet</strong></p>
</li>
<li><p>A <strong>white-label wallet</strong> <strong>Software Development Kit</strong> (SDK)</p>
</li>
<li><p>The OmiseGO network’s own token: the <strong>OMG</strong> <strong>token</strong></p>
</li>
</ul>
<p><strong><em>What is the OmiseGO blockchain?</em></strong></p>
<p>OmiseGO is building its own network, the OmiseGO blockchain. The OmiseGO blockchain will not be owned by the OmiseGO company as its own property, but will be an open and permissionless network belonging to all those using it. The operations happening using the OmiseGO products (these products are the DEX, the OmiseGO wallet and the wallets or applications built with the OmiseGO SDK) will happen partly on the OmiseGO blockchain, and partly on the Ethereum blockchain. How the operations will be distributed between these 2 networks is explained below in « How will Ethereum and OmiseGO interact? ».</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*CsA7WUSJTEVLrlFLFhhmgA.png" alt="Image" width="162" height="108" loading="lazy">
_Source [OmiseGO](https://omg.omise.co/" rel="noopener" target="<em>blank" title=")</em></p>
<p><strong><em>What is the Decentralized Exchange (DEX)?</em></strong></p>
<p>In order to be able to send and receive any currency or asset on the network, the OmiseGO blockchain will include a decentralized exchange (DEX) allowing values to be traded in real-time for other values.</p>
<p>This way, Electronic Payment Providers using the OmiseGO network can allow their customers to send and receive payments not only inside the EPP’s own network, but also <strong>cross-network</strong>: the OmiseGO blockchain will not only act as blockchain in itself, but also as <strong>hub</strong> to which other blockchains can hook, and that can hook to other blockchains, breaking the traditional boundaries between various payment channels. In other words, OmiseGO will allow <strong>eWallet interchange</strong>, while the OmiseGO blockchain will keep a ledger of every eWallet service’s current balance.</p>
<p>OmiseGO blockchain will also include a decentralized orderbook and trading engine. Direct crosses between various eWallets’ own fiat currencies may be too numerous to be treated fast enough using the blockchain: this is why it is expected that EPPs will hold a certain liquidity pool for small amount transfers for their most popular destinations. And for higher amounts transfers, that are the real goal and upside of the OmiseGO network, in order to create a <strong>liquid market</strong> and allow for fast trades and transfers, some ETH will be bonded into a smart contract on the OmiseGO chain (or Bitcoin-like tokens will be bonded into bonded clearinghouses), that will allow any fiat or cryptocurrency to be traded with ETH.</p>
<p>This means that, for instance, if A wants to send yens to B, but B wants to receive dollars, A will send yens, the yens will be traded for ETH, and then the ETH will be traded for dollars, and dollars will arrive to B.</p>
<p>However, using ETH as a reference currency for trading is not compulsory, but it will be more efficient and faster to use cryptocurrencies as pairs’ reference currencies.</p>
<p>In order to <strong>scale</strong> the network, and to prevent liquidity pools to create centralization (liquidity pools are liquidities provided by the users to the network, to create a liquid network and fast trades, so if users own a huge amount of liquidity, they could come to take too much power on the network), a <a target="_blank" href="http://lightning.network/">Lightning Network</a> style construction, called <strong>Plasma</strong> and currently under development, will allow for offloading a lot of operations off-chain: every electronic payment provider (EPP) will set up a channel into an ETH smart contract for small transfers, allowing it to supply liquidity onto its own off-chain centralized network, without overwhelming the OmiseGO decentralized blockchain network with a too high number of small transactions.</p>
<p>It must finally be pointed that the OmiseGO network is not designed with the goal to be a high-volume low-value network, to handle a very high volume of micro-transactions, but with the goal of being « <strong>the preeminent high-value exchange and settlement platform</strong> ».</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*3k2cQq97D1uEwCjDUr37Qw.png" alt="Image" width="800" height="253" loading="lazy">
_Source [OmiseGO](https://omg.omise.co/" rel="noopener" target="<em>blank" title=")</em></p>
<p><strong><em>What is the OmiseGO wallet?</em></strong></p>
<p>A wallet is essentially an application with which you can stock, send, receive money and value assets.</p>
<p>On the OmiseGO blockchain, as well as on various blockchain projects, a wallet, when it is opened (that is, when the application is launched) is also what makes your computer a <strong>node</strong> of the blockchain. Another way to say it, is that a blockchain is a network of open wallets, running on computers.</p>
<p><strong><em>What is the white label wallet SDK?</em></strong></p>
<p>A SDK is a Software Development Kit, also called a <strong>programming framework</strong>. If you know about React, Angular, Ruby on Rails, these are frameworks too. A SDK is a collection of pre-defined programming functions for a certain collection of purposes, allowing developers to develop applications in a much faster and efficient way than if they would have to code everything from scratch. For instance, the SDK provides a certain “do-this” function: behind this function are 1000 lines of code, that the programmer using the SDK won’t have to write, because he will just use the SDK’s “do-this” instruction. SDKs provide many “do-this” functions, each of them saving time and cost to developers and companies.</p>
<p>The white label wallet SDK built by OmiseGO will, as its name implies, be a framework for developers and companies to quickly and efficiently develop wallets for their own customers, and without any mandatory design or OmiseGO mention on the final product, as the SDK will just be a set of programming functions (many “do-this”). Any developer can develop and design his own product, just using the SDK to accelerate the process, save money and time, and avoid the painful process of building his own blockchain and the painful learning curve of fully understanding the complex blockchain model.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*vHz1i_6BD-8RrZPK9atwPw.png" alt="Image" width="186" height="114" loading="lazy">
_Source [OmiseGO](https://omg.omise.co/" rel="noopener" target="<em>blank" title=")</em></p>
<p>The OmiseGO white-label wallet SDK will be <strong>free</strong> to use for anyone, and every transaction happening through applications developed with the SDK, will automatically take place <strong>on the OmiseGO blockchain</strong>.</p>
<p>OmiseGO’s statement is that already existing major players will have an interest to develop their own blockchain and their own wallets, but that there is a long tail of medium and small size wallet providers coming soon on the financial and value transfer market, that would highly benefit OmiseGO’s SDK. Which would also consequently accelerate the adoption of blockchain and blockchain based wallets by a wide audience.</p>
<p><strong><em>What is the use of the OMG token?</em></strong></p>
<p>The OmiseGO wallet application will not only serve as a way to send and receive money.</p>
<p>In the blockchain, when a transaction happens (for instance, A wants to send money to B), the transaction is included in a « block », a collection of transactions, and for the block to be valid and be added to the block chain, it has to be confirmed by actors of the network, in other words, by nodes, in other words, by computers having their wallet open.</p>
<p>But it is not enough to have a wallet open: if your wallet is empty, you won’t be able to confirm any block. So how does it work?</p>
<p>Keeping a certain amount of OMG tokens on your wallet <strong>buys you the right to confirm blocks</strong>. (As a side-note, to increase the network’s security, it will be required that OMG validators also run a full node of the Ethereum network, that works using the same validation process.)</p>
<p>Now, why would you want to have that right?</p>
<p>Because the OmiseGO blockchain will work through the <strong>Proof of Stake</strong> system (PoS), meaning that every transaction happening on the OmiseGO blockchain will generate a small fee (of which the amount is still to be set), and many transactions will generate many small <strong>fees</strong>. If the number of transactions is sufficient, an immense amount of small fees can turn into a very important global amount. Keeping your tokens on your wallet is called staking them, and the Proof of Stake system means that:</p>
<ul>
<li><p>The network generated fees will be distributed among tokens holders (stakers).</p>
</li>
<li><p>The more coins you <strong>stake</strong> (the more coins you hold on your wallet), the more fees you will receive proportionally to other stakers. A staker with 2000 OMG on his wallet will receive twice the amount received by a staker with 1000 OMG.</p>
</li>
</ul>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*rBYcKS1YiknBcaJfvVLi-w.jpeg" alt="Image" width="311" height="162" loading="lazy">
<em>Passive income / Credit Don Rosa, Disney, Glénat</em></p>
<ul>
<li>If you are caught making a bad use of the network (cheating in any way, likely for your own benefit), all the tokens you were staking are <strong>burned</strong>, which means destroyed, which means: you lose money. You lose the amount you had paid to acquire these OMG tokens, you lose the value they had at this moment of time, and of course you lose the ability to receive fees from the neetwork.</li>
</ul>
<p>So the reason you are paid more if you stake more coins, is because you take a bigger risk, should you would want to attack the system, and so it is considered that you will not want to attack it: the token acts as a <strong>bond.</strong> The more you stake, the more you can lose if you cheat, so the more you can be considered a trustful node, and the more financial compensation you receive for your blocks confirmation activity.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*_YbE-dX915E4r01C3e0Ljg.jpeg" alt="Image" width="600" height="454" loading="lazy">
<em>Hackers got caught, tokens got slashed / Credit Don Rosa, Disney</em></p>
<p>But if you know the Proof of Work system (PoW), which is used for Bitcoin, and currently on Ethereum too before their Proof of Stake system is ready, it is important to note that oppositely to Proof of Work, in the Proof of Stake protocol, knowing what node (what user) confirms a block, has no influence on who receives the fees. Only how much coins one stakes does matter. (Which also makes the Proof of Stake system an ecologically much less costly system than the Proof of Work system, where every machine spends huge amounts of energy competing to be the one that will confirm the transaction.)</p>
<p>This <strong>economic incentive</strong> is the reason why the more transactions will happen on the OmiseGO network, the more passive income will come to OMG holders, and so the more value the OMG token will take.</p>
<p>Additionally, the OMG token will be usable as a payment token with merchants accepting it.</p>
<h4 id="heading-c-interactions-with-other-projects"><strong>C. Interactions with other projects</strong></h4>
<p><strong><em>How will Ethereum and OmiseGO interact?</em></strong></p>
<p>As said above, OmiseGO is building its own blockchain, but actually, not every operation will happen on the OmiseGO blockchain: everything that belongs to following OMG rules to decide what money goes where and what trading orders are executed in what manner, happens on the OmiseGO blockchain, but the final delivery happens on the Ethereum blockchain. Said differently, every decisional operation (clearing and settlement) happens on the OmiseGO chain, while the actual final money transfer is delegated to the Ethereum blockchain.</p>
<p><strong><em>What is Plasma?</em></strong></p>
<p>While the blockchain has many very positive aspects compared to the traditional centralized database model, it still has a <strong>scalability</strong> problem that needs to be solved: not too many transactions can happen very fast at the same time. Plasma is a solution co-developed by Joseph Poon and Vitalik Buterin, both key advisors of the OmiseGO project, that allows an extreme scalability, potentially billions of state updates per second, « state » being a sort of « snapshot of the data situation ». In plain English, it will make it possible to <strong>handle very fast an extremely high amount of transactions</strong>, making the OmiseGO network’s efficiency comparable to the Visa network’s efficiency.</p>
<p>OmiseGO will be the first project to implement the Plasma technology, but as Plasma is currently under development, it is worth noting that OmiseGO will be able to start without using Plasma at the beginning, and will use the <strong>Cosmos Network</strong> for the same purpose with intermediate scalability in a first phase, where the OmiseGO network will not be fully public yet (see below “What is OmiseGO’s roadmap?” for details).</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*o8RBc2Uyi-wVdV0fdDsLXA.png" alt="Image" width="800" height="423" loading="lazy">
_Cosmos Network’s logo. Source [Cosmos Network](https://cosmos.network/" rel="noopener" target="<em>blank" title=").</em></p>
<h3 id="heading-3-partners-and-investors"><strong>3) Partners and investors</strong></h3>
<h4 id="heading-a-countries-and-banks"><strong>A. Countries and Banks</strong></h4>
<p><strong>1. Thailand</strong></p>
<p>Omise is a strongly Thailand implanted company, and quite naturally many things happen between Thailand and its 2016 « Digital Start-up of the year ».</p>
<ul>
<li>First, it is important to stress that Thailand Finance Ministry has launched a national e-payment master plan to promote electronic payment, with the goal to <strong>create a cashless society</strong>. It is only speculation until now to think that this is linked to the fact that Omise and Vitalik Buterin had a meeting with the <strong>Central Bank of Thailand</strong>, but whether it was linked or not and how, what matters is that Omise and OmiseGO’s main implantation country has announced this goal, that OmiseGO can be an excellent solution provider in this perspective, and that Thailand’s Ministry and the company seem in very good terms.</li>
</ul>
<p>And, on a more concrete level, the Thai Ministry of Finance successfully launched use of <strong>Omise’s FacePay technology</strong>, allowing payments with facial recognition.</p>
<ul>
<li>Thailand has also launched <strong>PromptPay</strong>, a new interbank mobile payments system “to enable money transfers” between accounts from different banks with a solution “cheaper and easier than those offered by conventional banks”. Authorization in participation to PromptPay is given by the Finance Ministry, and one of the two banks consortiums that received this authorization is the Thai Alliance Payment System, that includes the <strong>Bank of Ayudhya</strong> (commonly referred to as Krungsri), that recently made a <strong>30 million dollars strategic investment in OmiseGO</strong>.</li>
</ul>
<p>It is worth reminding that a « strategic investment » made by a company A into a company B, is different from a plain « investment ». A regular investment means that company A expects company B’s growth, and expects to receive dividends from this growth. But a strategic investment means that company A expects personal growth, as a company, from company B’s growth. Which means here that the Bank of Ayudhya invested in OmiseGO because Bank of Ayudhya expects that, thanks to OmiseGO, Bank of Ayudhya itself will grow.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*JCaj6msrTOz6DbBoOFQX2Q.jpeg" alt="Image" width="800" height="533" loading="lazy">
_Omise CEO Jun Hasegawa, Krungsri Finnovate MD Sam Tanskul, Omise COO and co-founder Donnie Harinsut. Source [Digital News Asia](https://www.digitalnewsasia.com/startups/krungsri-finnovate-leads-latest-funding-round-omise" rel="noopener" target="<em>blank" title=")</em></p>
<p>It is, by so, at this time also still speculation but meaningful speculation, to expect that the Bank of Ayudhya, who has a 7 billion dollars market cap (see Forbes review <a target="_blank" href="https://www.forbes.com/companies/bank-of-ayudhya/">here</a>), might provide their users in the future with financial applications running on the OmiseGO network. And again, any transaction happening on the OmiseGO network, for instance through an application provided by a bank to its customers, will generate fees that will be distributed between OMG coin holders.</p>
<p>It can also be noted, even though it has less potential impact, that the other 4 banks constituting the Thai Alliance Payment System authorized to join the interbank PromptPay system, are also all supported by Omise’s current online payment system.</p>
<p><strong>2. Japan</strong></p>
<p>With Thailand, Japan is the other main country of implantation of Omise and now OmiseGO, as their CEO and COO are respectively Japanese (Jun Hasegawa) and Thai (Donnie Harinsut). And like Thailand, Japan is strongly considering moving to a more cashless society, and especially launching a digital currency before 2020’s Olympic Games. But there are more concrete informations:</p>
<ul>
<li><p>Krungsri Bank of Ayudhya, strategic OMG investor, belongs to Japan’s largest financial group, Mitsubishi UFJ, also referred to as <strong>MUFG</strong>. (J and G are not a typo.) MUFG holds assets of around 2.4 trillion USD, making it world’s 5th largest bank by total assets, and world’s second largest bank holding company with 1.8 trillion USD in deposits.</p>
</li>
<li><p><strong>SMBC</strong>, second largest bank in Japan, was an early investor in OmiseGO.</p>
</li>
<li><p>OmiseGO is partnering with <strong>Credit Saison</strong>, third largest credit card company in Japan, affiliated with <strong>Mizuho</strong>, the third largest bank in Japan.</p>
</li>
</ul>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*dzP5vJVjb6iHc_iWZWzzIw.jpeg" alt="Image" width="575" height="800" loading="lazy">
_MUFG headquarters. Photo [Wikipedia](https://commons.wikimedia.org/wiki/User:Kakidai" rel="noopener" target="_blank" title=""&gt;Kakidai, Source MUFG &lt;a href="https://en.wikipedia.org/wiki/Mitsubishi_UFJ_Financial_Group" rel="noopener" target="<em>blank" title=")</em></p>
<p><strong>3. Singapore and Thailand</strong></p>
<p>According to a Bloomberg <a target="_blank" href="https://www.bloomberg.com/news/articles/2017-10-04/singapore-thailand-discuss-e-payment-alliance-for-digital-push">article</a>, « Singapore and Thailand are in discussions about connecting their national digital payment systems to forge an unprecedented regional alliance, as officials step up efforts to curb the use of cash. The link would bring together Southeast Asia’s first national digital-payment platforms, Singapore’s <strong>PayNow</strong> and Thailand’s <strong>PromptPay</strong>, said Naphongthawat Phothikit, director of payment systems policy at the Bank of Thailand. »</p>
<p>As mentioned above, PromptPay is Thailand’s interbank mobile payments system through selected authorized banks, including Krungsri Bank of Ayudhya, who recently made this 30 million dollars strategic investment in OmiseGO.</p>
<h4 id="heading-b-private-partners-and-investors"><strong>B. Private partners and investors</strong></h4>
<p><strong>1. TrueMoney</strong></p>
<ul>
<li>In Thailand, the 3 biggest e-payment services are Paysbuy, AIS (mPAY) and TrueMoney. Omise recently acquired Paysbuy, and TrueMoney is a partner and shareholder of OmiseGO.</li>
</ul>
<p>OmiseGO’s Crowdsale document reads: “By integrating with OmiseGO, the TrueMoney digital wallet end-customers will be able to conduct real-time low-cost money transfers, cross border remittances, retail, and bill payments. They will also be able to interact with other digital wallet providers (“brands”) that subscribe to the OmiseGO network.”</p>
<p>What is TrueMoney:</p>
<ul>
<li><p>TrueMoney is a financial technology brand providing <strong>e-payment services in South-East Asia</strong> (SEA), and having <strong>Google</strong> and <strong>Alipay</strong> as partner payment platforms. They have offices in Thailand, Vietnam, Cambodia, Myanmar, Indonesia and the Philippines, and licenses to operate e-money in almost every Southeast Asian country. In Thailand, the platform includes TrueMoney Wallet, WeCard with <strong>MasterCard</strong>, TrueMoney Cash Card, Kiosk, Express, Payment Gateway and Remittance.</p>
</li>
<li><p>TrueMoney are also connected to Thai interbank mobile payment system PromptPay explained above, through <strong>Siam Commercial Bank</strong> (SCB). Thanks to this TrueMoney / SCB partnership, “more members of the public can enjoy easy, convenient access to financial services via PromptPay, which has until now only been available via a bank account”, and SCB will allow TrueMoney’s 3 million customers to charge their PromptPay eWallet through SCB services: SCB Easy App, SCB Easy Net and ATMS.</p>
</li>
<li><p>Founded in 2003, TrueMoney now belongs to Thailand-based <strong>Ascend Group</strong>, which is a spin-off of True Corporation and belongs to also Thailand based <strong>CP Group</strong>, which is, in Thailand, the sole operator of over 9000 of the <strong>7/11</strong> stores that allow the use of TrueMoney. It is, again, still speculation but meaningful speculation, to assume that OmiseGO partner TrueMoney might, at some point, provide their very numerous users with a convenient service leveraging the OmiseGO technology and generating fees on the OmiseGO network.</p>
</li>
</ul>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*LrAAcrSDTnHzdtS3FsKapA.png" alt="Image" width="611" height="638" loading="lazy"></p>
<ul>
<li><strong>Ant Financial</strong>, the Chinese company owning China’s digital payment giant <strong>Alipay</strong>, and belonging to the <strong>Alibaba Group</strong>, recently invested in Ascend Money from the Ascend Group, which is, according to OmiseGO’s CEO Jun own words, « [OmiseGO’s] investor / partner / supporter ».</li>
</ul>
<p>Alipay already counts more than 500 million users, is starting to target the USA, and has already managed until 1 billion transactions a day.</p>
<p><strong>2. Mac Donald’s Thailand</strong></p>
<p>OmiseGO has announced a formal relationship with Mac Donald’s Thailand. No further details have been given yet, but it can likely mean that Mac Donald’s customers will be able to pay their orders using the OmiseGO wallet in Thai restaurants.</p>
<p><strong>3. Toppan Printing</strong></p>
<p>OmiseGO is collaborating with Toppan Printing to start offering a new type of advertising and purchase process, thanks to which scanning a <strong>QR code</strong> on an advertising medium, for instance a magazine, will automatically allow the customer to order the advertised product.</p>
<p><strong>4. Global Brain</strong></p>
<p>OmiseGO plans to launch an <a target="_blank" href="https://www.ethnews.com/omisego-global-brain-and-digix-global-to-establish-blockchain-accelerator">accelerator program</a> in collaboration with Japan-based venture firm Global Brain, as well as multiple blockchain labs.</p>
<p><strong>5. Discussion phase: Greylock Partners</strong></p>
<p>OmiseGO recently met up with Greylock Partners, a leading venture capital Silicon Valley firm managing $3.5 billion USD, and working with companies such as Facebook, Instagram, AirBnB, and Coinbase.</p>
<h4 id="heading-c-omisego-adopters"><strong>C. OmiseGO adopters</strong></h4>
<p><strong>Hubii Network</strong>, a decentralized content marketplace counting 50 million users, <a target="_blank" href="https://medium.com/@jacobotoll/hubii-network-to-use-omisego-for-payments-81d5d7313b3e">announced</a> they had chosen OmiseGO as the obvious solution for their payment system.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*onc9YkhHvn56b165hv2dcg.png" alt="Image" width="800" height="421" loading="lazy">
_[hubliinetwork](http://hubii.network/" rel="noopener" target="<em>blank" title=")</em></p>
<h3 id="heading-4-the-future"><strong>4) The future</strong></h3>
<h4 id="heading-a-omisegos-future"><strong>A. OmiseGO’s future</strong></h4>
<p><strong><em>What will happen between Omise and OmiseGO?</em></strong></p>
<p>Eventually, all transactions using the original off-blockchain Omise solution will move to the OmiseGO blockchain.</p>
<p><strong><em>What is OmiseGO’s roadmap?</em></strong></p>
<p>As explained all above, OmiseGO is not a single application or service but a whole project, that the team has divided into 3 layers, which will be developped through time from the most crucial one to the most sophisticated one. OmiseGO has started publishing blog posts describing their roadmap according to terms of the game of Go.</p>
<ul>
<li><strong>Layer 1: Omise Payment Acceptance Layer.</strong></li>
</ul>
<p>The Omise network is already accepting payments.</p>
<p>The next step to complete the Payment Acceptance Layer, is the release of the white label wallet SDK.</p>
<p>The SDK’s prototype will be released for testing in Q4 2017, and the public release is planned for Q1 2018.</p>
<p><strong>- Layer 2: OmiseGO Decentralized Exchange (DEX) Network</strong></p>
<p>The public blockchain release, including the DEX engine and allowing staking through the Proof of Stake system, is planned for Q2 2018. Until then, and until the release of Plasma, an intermediate scalability environment will be set, limited to the Omise network (not the whole public OmiseGO), using the Cosmos Network. This will introduce OMG stakers to the PoS protocol and already allow them to validate transactions. This should happen in Q4 2017,</p>
<p><strong>- Layer 3: Decentralized Cash-in / cash-out touch point</strong></p>
<p>This layer will allow users to digitize physical cash into digital currency (cash-in), and to turn digital currencies into cash that they can withdraw (cash-out). The solution for this will be revealed end of 2017, and the release date has not yet been made public.</p>
<p><strong>- Horizon: Massively scalable cross-chain compatible DEX and permissionless network allowing payments and transfers</strong></p>
<p>The final state of the OmiseGO network will require the release of Plasma, of which the date has not been announced yet.</p>
<h4 id="heading-b-why-invest-in-omisego"><strong>B. Why invest in OmiseGO</strong></h4>
<p>First, it must absolutely be emphasized again that <strong><em>the author of this review is in no way entitled to give any investment advice to anyone</em></strong>. Investments are always very risky, and investments in the crypto-world are even more risky. So just like in any other project, investing in OmiseGO is a <strong>risk</strong>, and if you decide to take this risk, you should never invest more than what you can afford to completely lose. And not any thing written in this review refutes this fact, that you should never forget if you are considering putting money into OMG or into any other project.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*NmZg-mwemwcdsysMBaKUMg.jpeg" alt="Image" width="222" height="280" loading="lazy">
<em>Investment is risk / Donald Duck by Don Rosa, Credit Disney</em></p>
<p>This said, the investor’s business model is to rely on the idea that the OmiseGO network will handle a very high number of transactions, that these transactions will generate a very high amount of fees, and that, these fees being distributed to the OMG stakers, the more OMG you will hold and stake, the more amount you will receive per year, which, if the project keeps its promises, can turn into a very profitable passive income.</p>
<p>There are 2 main reasons to believe that the OmiseGO network will handle a very high number of transactions:</p>
<p><strong>1 - The partnerships</strong></p>
<p>The partnerships exposed below between OmiseGO and banks or private companies show that potentially millions of users or more can find themselves using financial applications running on the OmiseGO network, and generate an enormous amount of fees (although each being very low) to be shared between OMG stakers.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*fSEeeOYL1Ix9GDpWcO1IiQ.jpeg" alt="Image" width="800" height="415" loading="lazy">
_Game of Go / Source OmiseGO [blog](https://blog.omisego.network/omisego-roadmap-v-1-40bfca386e25" rel="noopener" target="<em>blank" title=")</em></p>
<p><strong>2 - The SDK</strong></p>
<p>OmiseGO is providing a programming framework that any company or bank can use to create its own financial (or value-exchange other than financial value) application for its own market and its own users, and these applications created with the OmiseGO SDK will also run on the OmiseGO network, and also generate a high amount of fees. And again, the programming framework will not in any way force the companies using it to have any OmiseGO logo on their application, neither any graphic obligation of any kind. The SDK will only be a certain collection of programmatic functions, in order to: save time and blockchain development cost, by using the trusted OmiseGO blockchain, and by using the trusted OmiseGO Software Development Kit.</p>
<p>In other words, the OmiseGO SDK can be seen as a <strong>free and easy gateway to the blockchain technology and to its potential financial applications</strong>, making in return that <strong>any company or institution using it, virtually becomes a partner of OmiseGO</strong>: if the company C provides its users with a wallet and application developped with the OmiseGO Software Development Kit, and has a user base of 10 000 or 1 million people, as soon as they make transactions using the application provided by the company C, these 10 000 or 1 million people become <strong>users of the OmiseGO network</strong>.</p>
<p>And so, these 10 000 or 1 million people, multiplied by the number of companies, banks or services that will use the OmiseGO SDK, generate fees on the OmiseGO network, distributed between the OmiseGO investors, named stakers or coin holders.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*O5aX1AQuN1h5pUkyQphxMg.jpeg" alt="Image" width="800" height="424" loading="lazy">
_Source OmiseGO [blog](https://blog.omisego.network/omisego-roadmap-v-1-40bfca386e25" rel="noopener" target="<em>blank" title=")</em></p>
<h3 id="heading-5-frequently-asked-questions"><strong>5) Frequently Asked Questions</strong></h3>
<p><strong><em>What will be the network’s fees’ amount?</em></strong></p>
<p>It has not be decided yet, except that CEO Jun said in a post that they should be high enough to represent a real incentive for stakers and consequently secure the network with a sufficient amount of nodes, and low enough to make it a real benefit for users and companies to use the OmiseGO network.</p>
<p><strong><em>What will be the minimum amount of OMG coins required for staking?</em></strong></p>
<p>This information has not been released yet.</p>
<p><strong><em>Is OMG an ERC20 token?</em></strong></p>
<p>Yes.</p>
<p><strong><em>Will the OMG token be replaced by another token in the future?</em></strong></p>
<p>No. Some other projects have replaced their original token by a second token at some point of their development, but OmiseGO won’t. The OMG you own now will be the OMG you own in the future, their will be no token change.</p>
<p><strong><em>Where to store OMG tokens?</em></strong></p>
<p>Any ERC20 compatible wallet suits. A popular solution is <a target="_blank" href="http://www.myetherwallet.com">www.myetherwallet.com</a> (beware to type the right URL cause SCAM mirror copies of the site exist), and the solution consensually considered the most secured is a hardware wallet such as <a target="_blank" href="http://ledgerwallet.com/">Ledger</a> or <a target="_blank" href="http://trezor.io/">Trezor</a>. Note that this article is not giving you any guarantee about the safety of your coins if you use these solutions, but only displaying some commonly used solutions for informational purpose.</p>
<p><strong><em>Where to buy OMG?</em></strong></p>
<p>You can buy OMG on exchanges. Not every exchanges accept residents of every country, so you should check what website you can use, and also check the website’s reputation on specialized forums. Currently you need to first purchase Bitcoin, Litecoin or Ether, and then exchange them for OMG. Popular exchanges to purchase OMG include Bittrex, Binance or Bitfinex. Popular exchange to purchase Bitcoin include Kraken or Coinbase. None of these mentions either is to be considered an advice in any way or recommendation of any kind. As always when doing whatever you want to do with your money and with your computer and personal information, be careful and <strong>do your own research</strong>. And remember to <strong>never ever</strong> give your wallet’s private keys to anyone or to any website without triple-checking that it is your usual wallet provider, such as myetherwallet.com for instance, and triple-checking the URL: add the safe URL once for all as a bookmark on your browser, and <strong>never</strong> click on a link from another site pretending to link you there, even if it seems regular. Remember that the crypto world is full with hacking attempts, and that they can succeed when people are not careful enough. <strong>Be happy but be careful.</strong></p>
<h4 id="heading-links"><strong>Links:</strong></h4>
<p>Omise’s website: <a target="_blank" href="http://omg.omise.co/">http://omise.co/</a><br><strong>OmiseGO’s website</strong>: <a target="_blank" href="http://omg.omise.co/">http://omg.omise.co/</a><br>Note: any other website pretending to be Omise or OmiseGO is a SCAM. Don’t visit it.</p>
<p><strong>OmiseGO’s Twitter</strong>: <a target="_blank" href="http://twitter.com/omise_go">http://twitter.com/omise_go</a><br>Jun’s Twitter: <a target="_blank" href="https://twitter.com/JUN_Omise">https://twitter.com/JUN_Omise</a><br>Jun’s Medium: <a target="_blank" href="https://medium.com/@jun_omise">https://medium.com/@jun_omise</a><br>Donnie Harinsut’s Twitter: <a target="_blank" href="https://twitter.com/ruxperience">https://twitter.com/ruxperience</a></p>
<p>Joseph Poon’s Twitter: <a target="_blank" href="https://twitter.com/jcp">https://twitter.com/jcp</a><br>Vitalik Buterin’s Twitter: <a target="_blank" href="https://twitter.com/VitalikButerin">https://twitter.com/VitalikButerin</a></p>
<p><strong>OmiseGO on Reddit</strong>: <a target="_blank" href="https://www.reddit.com/r/omise_go/">https://www.reddit.com/r/omise_go/</a><br>OmiseGO on Slack: <a target="_blank" href="https://omisego.slack.com/">https://omisego.slack.com/</a></p>
<p>Plasma’s website: <a target="_blank" href="http://plasma.io/">http://plasma.io/</a><br>Cosmos Network’s website: <a target="_blank" href="https://cosmos.network/">https://cosmos.network/</a></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
