<?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[ token economy - 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[ token economy - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 05:06:55 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/token-economy/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <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="1275" height="359" 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[ Another big problem with token models: “Medium of Exchange” tokens and the velocity problem ]]>
                </title>
                <description>
                    <![CDATA[ By Jose Maria Macedo As an analyst at Amazix, I spend a large portion of my time reading through hundreds of projects’ whitepapers and analyzing their token economic models to discern whether or not they’re adequately capturing the value created by t... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/single-biggest-problem-with-token-models-part-2-52c0eca2115c/</link>
                <guid isPermaLink="false">66c35ef1c337fbd10a4b5966</guid>
                
                    <category>
                        <![CDATA[ Blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Cryptocurrency ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Investment ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ token economy ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 22 Sep 2018 14:07:33 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/0*dOLz3DK9K1LUHuFK.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jose Maria Macedo</p>
<p>As an analyst at <a target="_blank" href="https://www.amazix.com/">Amazix</a>, I spend a large portion of my time reading through hundreds of projects’ whitepapers and analyzing their token economic models to discern whether or not they’re adequately capturing the value created by the project.</p>
<p>This is extremely important because the value captured by a token is essentially its utility or intrinsic value which is also what ensures that the token’s price grows alongside adoption/success of the underlying project. A token lacking utility will see its price supported only by speculation and is very likely to fail in the long-run.</p>
<p>For more on this, see my <a target="_blank" href="https://medium.com/@zemacedo/token-valuation-the-misunderstood-importance-of-token-economics-or-why-xrp-is-worthless-6b1b9ce5605f">earlier blog</a>, in which I discussed the importance of token economic models in ensuring a token’s long-term value.</p>
<p>In <a target="_blank" href="https://medium.freecodecamp.org/the-single-biggest-problem-with-token-models-part-i-8f9bcb3bab50">part 1 of this series</a>, I covered the problem of misaligned incentives caused by projects which have both equity and tokens, suggesting there’s an inverse relationship between the value of a project’s equity and the value of its token in that they are effectively competing to capture the value created by the project. I also suggested some potential solutions to this issue.</p>
<p>In this blog, I’ll discuss the second most common problem we see with token economic models: the velocity problem facing “Medium of Exchange” tokens. I’ll begin by giving a brief background of what token economics is before describing what the velocity problem is, why it matters and some of the solutions we recommend to our clients.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/AaXmsMRKJbeixIkkpXWJtu1QQMyDyfTlVVBr" alt="Image" width="640" height="425" loading="lazy"></p>
<h3 id="heading-what-is-a-token-economic-model-and-why-does-it-matter">What is a token economic model and why does it matter?</h3>
<p>If you’re a seasoned crypto investor or understand what a token economic model is, feel free to skip this part.</p>
<p>Before we start talking about token economic models, it may be wise to start at the very beginning with what is a token and what makes up its value.</p>
<p>A token is a crypto-economic unit of account that represents or interacts with an underlying value-generating asset. A token’s value is made up of its intrinsic value, the percentage of the token’s value that derives from demand for the underlying asset, and its speculative value, the percentage of the value of the tokens that derives from demand due to an expectation of future price increases. While speculation is nice, it is hard to control/predict and puts projects at the mercy of short-term-oriented investors, like our friend below:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/3y3eqaNZaPfZ67xy-gMHyX-xdx8tCn3HCUK6" alt="Image" width="259" height="194" loading="lazy"></p>
<p>Rather than focus on speculative value, we recommend investors focus on intrinsic value. A token’s intrinsic value is dependent on two factors: the value created by the underlying asset <em>and</em> the percentage of this value which is captured by the token.</p>
<p>The token economic model is what determines the latter — how much of the value created by the platform is captured by the token. As such, it’s one of the primary determinants of a project’s utility value and long-term success.</p>
<h3 id="heading-medium-of-exchange-tokens-and-the-velocity-problem">Medium of Exchange tokens and the velocity problem</h3>
<p>A pure Medium of Exchange token is a token whose sole or at least primary use is as payment for some utility on the project’s platform or protocol. There are various incarnations of this, from marketplaces such as <a target="_blank" href="https://signals.network/">Signals Network</a> where the token is the sole currency used to buy services on the platform, to SaaS type projects like <a target="_blank" href="http://bitstation.co/">BitStation</a> where customers can only access the platform’s utility by paying the company a fee in the native token.</p>
<p>The general problem with MoE tokens is that they suffer from extremely high velocity. This has been well documented by many, including <a target="_blank" href="https://vitalik.ca/general/2017/10/17/moe.html">Vitalik</a>, <a target="_blank" href="https://medium.com/newtown-partners/velocity-of-tokens-26b313303b77">James Kilroe</a> and <a target="_blank" href="https://www.coindesk.com/blockchain-token-velocity-problem/">Kyle Samani</a>.</p>
<p>Basically, given the MoE token’s only use is payment for a service on the platform, there’s no incentive actually to hold tokens and incur price risk vs FIAT.</p>
<p>Buyers of the platform’s utility will simply acquire tokens for the purposes of a specific transaction (holding it for as little time as possible). On the other hand, sellers of the platform’s utility (whether this be users on a marketplace as in the case of Signals or the company behind the project in the case of Bitstation) will instantly sell the tokens they receive for FIAT rather than incur price risk vs FIAT.</p>
<p>This will result in high velocity for the token, as the increase in demand driven by buyers acquiring tokens will always be quickly matched by a corresponding increase in supply from sellers converting these tokens to FIAT.</p>
<p>Effectively, high velocity acts as an increase in circulating supply and is thus inversely proportional to the value of the token (although a certain base level velocity is necessary for the token to have any value, <a target="_blank" href="https://medium.com/newtown-partners/velocity-of-tokens-26b313303b77">as pointed out by James Kilroe</a>). We can see how this works using the <a target="_blank" href="https://www.investopedia.com/terms/e/equation_of_exchange.asp">Equation of Exchange</a>, which has famously been adapted to crypto by both Chris Burniske and Vitalik.</p>
<p>To use Burniske’s definition:</p>
<p>MV=PQ</p>
<p>Where:<br><em>M</em>= size of the asset base<br><em>V</em>= velocity of the asset (the number of times that an average coin changes hands every day)<br><em>P</em>= price of the digital resource being provisioned. This is not the price of the cryptocurrency but rather of the resource being provisioned by the network (i.e. price in $ per GB of storage in the case of Filecoin)<br><em>Q</em>= quantity of the digital resource being provisioned (GBs of storage provided)</p>
<p>As Burniske tells us, in order to value the coin, we solve for M, where:</p>
<p>M = PQ/V.</p>
<p>M is the size of the monetary base necessary to support a cryptoeconomy of size PQ, at velocity V. In order to find the token price, we simply divide M by the total token supply. As we can see, the higher the velocity the lower the coin’s value.</p>
<p>Or, if we prefer to use Vitalik’s definition:</p>
<p>Vitalik takes MV=PT and in order to simplify the analysis of cryptocurrencies recasts it as MC=TH, where:</p>
<p><em>M</em>= total money supply (or total number of coins)<br><em>C</em>= price of the cryptocurrency (or <em>1/P</em>, with <em>P</em> being price level)<br><em>T</em>= transaction volume (the economic value of transactions per time)<br><em>H= 1/V</em> (the average time that a user holds a coin before using it to make a transaction)</p>
<p>Therefore, the left part of the equation (MC) is simply the market cap (total supply*price) whereas the right side is the economic value transacted per time period (T) multiplied by the average time a user holds a coin (H).</p>
<p>To solve for the token price, one must therefore solve for C:</p>
<p><em>C=TH/M</em></p>
<p>Once again, we can see that the higher the velocity (or the lower the holding time H), the lower the token price.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/pdcCegPgrx4ceZkSDwRkENIKHTs956dP9L2B" alt="Image" width="320" height="180" loading="lazy">
<em>Vitalik impress</em></p>
<p>In both Burniske and Vitalik’s definitions, it is apparent that the velocity of the coin is inversely proportional to the value of the token, That is, the longer people hold the token, the higher the price of each token. As James Kilroy tells us:</p>
<blockquote>
<p><em>“This is intuitive, because if the transactional activity of an economy is $100 billion (for the year) and coins circulate 10 times each over the course of the year, then the collective value of the coins is $10 billion. If they circulate 100 times, then the collective coins are worth $1 billion. Thus, understanding and calculating the velocity in any token economy is extremely important.”</em></p>
</blockquote>
<p>To see the drastic effects that velocity can have on a token’s value capture and market cap, see the following analysis <a target="_blank" href="https://medium.com/@john_pfeffer/hi-johnny-8411ec5d266">of the effects of velocity on Ethereum’s market cap by John Pfeffer:</a></p>
<blockquote>
<p><em>“In a protocol-land where protocol usage is managed by capital-efficiency optimising intelligent bots (which seems likely), let’s assume for simplicity the absolute floor on 1/V is the block time of the chain in question. Let’s then take ETH with a 2.5 minute block time as an example (highly theoretical, just to make a simple maths point). This implies each token could be used (assuming fixed block times, which in fact will likely shorten) 210,240 times a year. Buterin, Choi, etc. talk about, say, 10% of ETH being staked (let’s assume staked tokens never move at all). That would bring V down to 189,216 per year. Assume 50%, then V=105,120. Multiply this last number by $50b of network value (i.e., ETH just maintains its current value, and you’d need $5.25 quadrillion of economic activity denominated in ETH (i.e., excluding any ERC20/ ERC721-denominated economic activity), that is to say, 65x the current global GDP of $80 trillion. These numbers are all just varying shades of silly. That’s the point. As long as some of your tokens are circulating at a high V, your overall V is high.”</em></p>
</blockquote>
<h3 id="heading-solutions-to-the-velocity-problem"><strong>Solutions to the velocity problem</strong></h3>
<p>The most commonly used solutions to this problem all involve designing token economic models that provide incentives for people to hold the token — basically turning it into an asset (or “Store of Value”) rather than a currency. This can be done in several ways:</p>
<h4 id="heading-1-ensure-token-model-has-a-sink-in-it">(1) Ensure token model has a “sink” in it</h4>
<p>This one was initially suggested by Vitalik and has been widely adopted since. Basically, it involves designing token models with “buy-and-burn” mechanisms in which the project charges transaction fees and then uses some or all of the cash flows generated by its platform to purchase its own tokens and destroy them. The decrease in supply raises the value of all remaining tokens by the percentage of total supply destroyed. Effectively, the project is distributing its cash flows to its token-holders, very similar to how equity distributes cashflows to its stockholders through a dividend.</p>
<p>An example of this is Iconomi, a digital asset management platform which <a target="_blank" href="https://iconomi.zendesk.com/hc/en-us/articles/360001428854-Repayment-Programme-Buybacks-Token-Burn">burns preset percentages of all fees collected</a> and also produces quarterly reports outlining the number of tokens burned (crypto quarterly earnings reports).</p>
<p>Since, as we previously mentioned, velocity acts as an increase in circulating supply which reduces the value captured by the token, a buy-and-burn mechanism has the opposite effect of ensuring each additional transaction (i.e. increase in velocity) on the platform reduces the total supply of tokens, thus counteracting the increase in velocity with a deflationary force.</p>
<p>This should also reduce velocity by giving people a reason to hold the token, namely the expectation that it will be more valuable in the future due to the deflationary force created by the token burn.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/4xvIyYR8SJlQ7BkY8LMyp81y935fNtYHlvK-" alt="Image" width="600" height="255" loading="lazy">
<em>The Joker reducing $ velocity</em></p>
<h4 id="heading-2-implement-a-profit-share">(2) Implement a “profit-share”</h4>
<p>This one was initially <a target="_blank" href="https://multicoin.capital/2017/12/08/understanding-token-velocity/">suggested by Kyle Samani of Multicoin</a>. It is very similar in spirit to the “buy-and-burn” in that it is providing the token with a yield and turning it into an asset that generates cash flows.</p>
<p>An example of this is Augur which pays REP holders for performing work for the network. REP tokens are like taxi medallions: you must pay for the right to work for the network. Specifically, REP holders must report event outcomes to resolve prediction markets. Other examples of “profit-share” tokens include <a target="_blank" href="https://foam.space/">FOAM</a> , <a target="_blank" href="https://sharpe.capital/">Sharpe Capital</a> and also Ethereum once it has switched to Proof of Stake.</p>
<p>Once again, a profit-share reduces token velocity by forcing people to hold the token in order to have the right to generate cash flows by providing work to the network.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/vrdFC-TozgbVmvYVmqlkK3yPMTW2A3YrMJHo" alt="Image" width="518" height="369" loading="lazy"></p>
<h4 id="heading-3-encourage-users-to-lock-up-tokens">(3) Encourage users to lock up tokens</h4>
<p>This can be done through mechanisms such as <a target="_blank" href="https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ">Proof-of-Stake</a> which encourage users to lock up a certain amount of tokens, verify transactions and receive a yield in return (this also has the added benefit of acting as a profit-share). DASH, NEO and Navcoin are all examples of coins that have implemented proof of stake models.</p>
<p>Users can also be encouraged to lock up tokens through clever gamification — providing users with rewards (financial or otherwise) for locking up tokens. For instance, Alluma, a crypto exchange targeting Asian markets, offers different membership levels and fee discounts based on users staking different amounts of tokens:</p>
<ul>
<li>Gold memberships offer 35% discounts in exchange for staking 2500 LUMA for 30 days, and</li>
<li>Platinum memberships offer 50% discounts in exchange for staking 10,000 LUMA for 90 days (<a target="_blank" href="https://cdn2.hubspot.net/hubfs/4077694/whitepaper%20languages/Alluma%20Whitepaper.pdf?__hssc=147911272.3.1531961915300&amp;__hstc=147911272.bf36623eb62b5916dee4146a67129a0e.1531961915299.1531961915299.1531961915299.1&amp;__hsfp=2747456470&amp;hsCtaTracking=8aed7630-08c6-4c61-8bd1-6db116fa6876%7C50cad1a6-1dbf-4b3e-9f82-a8dd851584c5">source: page 28 of Alluma whitepaper</a>).</li>
</ul>
<p>For another example, we can look at YouNow, a live streaming app which allows users to tip content creators in its native token PROPS.</p>
<p>While content creators could immediately convert PROPS to FIAT, they are incentivized to hold onto it as their content is ranked higher by YouNow’s algorithm based on how many tokens they hold. Since discoverability leads directly to more tips, YouNow is effectively turning PROPS into an asset by ensuring users who hold it are able to generate cash flows.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/HHs-7B9WUn3SVSULp62cIeO8FbpXYO8kvSFk" alt="Image" width="500" height="281" loading="lazy">
<em>Donald Duck’s masternode</em></p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Token economic model design is an extremely important and underrated area for both investors and founders of cryptocurrency projects to think about. A project with a weak token economic model may see its token price fail, even as the project itself succeeds, simply because the token is not capturing any of the value created by the project.</p>
<p>Velocity is one of the biggest problems with current token economic models and many established projects such as <a target="_blank" href="https://www.newtownpartners.com/how-civics-updated-token-model-decentralizes-trust/">Civic</a>, <a target="_blank" href="https://www.coindesk.com/300-million-lockup-storj-clarifies-token-economics-surprise-reveal/,">Storj</a> and Po.et have recently revamped their token models to address this issue. If you believe your project may also suffer from high velocity and are interested in having your token economics audited or discussing this further, feel free to get in touch with me through here or on <a target="_blank" href="https://twitter.com/zemariamacedo">Twitter.</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The biggest problems with token models: what to do when equity is stealing the token’s value ]]>
                </title>
                <description>
                    <![CDATA[ By Jose Maria Macedo As part of the senior analyst team at AmaZix I spend a large part of my time reading through hundreds of projects’ whitepapers. I do in-depth due diligence to determine whether or not their tokens will be good investments. In doi... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-single-biggest-problem-with-token-models-part-i-8f9bcb3bab50/</link>
                <guid isPermaLink="false">66c36257e4cb1ff6521c8295</guid>
                
                    <category>
                        <![CDATA[ Blockchain ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Cryptocurrency ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Investing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ token economy ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 07 Aug 2018 15:09:42 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*YcvYuwb4v24SpMkZBEWpuQ.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jose Maria Macedo</p>
<p>As part of the senior analyst team at AmaZix I spend a large part of my time reading through hundreds of projects’ whitepapers. I do in-depth due diligence to determine whether or not their tokens will be good investments. In doing this, one of the most important factors we look at is the project’s token economic model. This is to discern how much of the value created by the project is being captured by the token.</p>
<p>This is extremely important. The value captured by a token is essentially its utility or intrinsic value. This ensures that the token’s price grows alongside adoption/success of the underlying project. A token lacking utility will see its price supported only by speculation. It is very likely to fail in the long-run. For more on this, see my <a target="_blank" href="https://medium.com/@zemacedo/token-valuation-the-misunderstood-importance-of-token-economics-or-why-xrp-is-worthless-6b1b9ce5605f">earlier blog</a>, in which I discussed the importance of token economic models in ensuring a token’s long-term value.</p>
<p>In this blog and the next, I’ll discuss the two most common problems we see with token economic models. I will also explain why they matter and also some of the solutions we recommend to our clients.</p>
<h3 id="heading-what-is-a-token-economic-model-and-why-does-it-matter">What is a token economic model and why does it matter?</h3>
<p>If you’re a seasoned crypto investor or understand what a token economic model is, feel free to skip this part.</p>
<p>Before we start talking about token economic models, it may be wise to start at the very beginning. What is a token and what makes up its value?</p>
<p>A token is a crypto-economic unit of account that represents or interacts with an underlying value-generating asset. A token’s value is made up of its intrinsic value and its speculative value. The intrinsic value is the percentage of the token’s value that derives from demand for the underlying asset. The speculative value is the percentage of the value of the token that derives from demand due to an expectation of future price increases.</p>
<p>While speculation is nice, it is hard to control/predict. It puts projects at the mercy of short-term-oriented investors, like our friend below:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/JswMchBrIVrsTwYOVRxYguhw9eLlJPFLpi8C" alt="Image" width="259" height="194" loading="lazy"></p>
<p>Rather than focus on speculative value, we recommend investors focus on intrinsic value. A token’s intrinsic value is dependent on two factors: the value created by the underlying asset <em>and</em> the percentage of this value which is captured by the token.</p>
<p>The token economic model is what determines the latter — how much of the value created by the platform is captured by the token. As such, it’s one of the primary determinants of a project’s utility value and long-term success.</p>
<h3 id="heading-problem-1-projects-where-equity-is-stealing-value-from-the-token">Problem 1: Projects where equity is “stealing” value from the token</h3>
<p>In my earlier blog, I suggested that there was an inverse relationship between the value of a project’s equity and the value of its token. They are effectively competing to capture the value created by the project.</p>
<p>This is because a company/protocol generates a fixed number of value/cashflows. This can be distributed to equity holders in the form of a dividend. It can also be distributed to token-holders in the form of a token burn/profit-share mechanism.</p>
<p>As such, ignoring speculation, if a project’s equity is valuable, then it’s capturing value for shareholders at the expense of token-holders. If a project’s token is valuable, then it’s capturing value for token-holders at the expense of shareholders.</p>
<p>Most of the biggest projects such as Bitcoin and Ethereum aren’t companies. They do not have shareholders. They only have token-holders instead. As such, there is no conflict of interest. Their token economic models seek to maximize value for token-holders.</p>
<p>However, this is not the case for many ICO’s which are limited companies, often with investors. They possess both shareholders (venture capitalists and founders) as well as token-holders (ICO investors and founders).</p>
<p>This creates a moral hazard. The founders of these projects will also possess both equity and tokens. They will often possess a higher percentage of the total equity than of total tokens. (A traditional seed round is 10–25% whereas an ICO is generally 40–60%).</p>
<p>More importantly, founders have a legally enforceable fiduciary duty to their investors. They are obligated to act on behalf of their shareholders (read: maximize value for their shareholders) without a conflict of interest.</p>
<p>Together, these factors create a perverse set of incentives. Founders are encouraged to prioritize the interests of shareholders over token-holders. They distribute the value created by their platforms to shareholders rather than token holders. (For an example of this, see my <a target="_blank" href="https://medium.com/@zemacedo/token-valuation-the-misunderstood-importance-of-token-economics-or-why-xrp-is-worthless-6b1b9ce5605f">earlier piece on Ripple.</a>)</p>
<p>This is a serious and overlooked issue, especially when ICO’s are making capital investments that benefit shareholders using the millions of dollars they raised in an ICO but then distributing the returns on those investments to shareholders rather than token-holders.</p>
<p>The way this most commonly manifests is through projects charging their customers some kind of fee (either in FIAT or in the project’s native token). Then using the revenue generated by this fee “to pay for the maintenance of the project”.</p>
<p>The word “maintenance” implies salaries and operational costs. There is nothing to prevent these fees being paid out as dividends to the company’s shareholders. (And the fact that investors continue to invest in blockchain companies’ equity indicates they believe these cash flows are or will eventually be paid out as dividends).</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/thPZSTsikGbCmkflqn90j8-VKeoZk2dvsJ8q" alt="Image" width="800" height="462" loading="lazy">
<em>Bitcoin cash maintenance funds being put to good use</em></p>
<p>Another way in which this manifests is in companies using ICO proceeds to purchase cash flow generating assets which are however not legally owned by token-holders, leaving them with little downside protection.</p>
<p>For instance, most blockchain real-estate fund tokens use ICO proceeds to purchase real estate pay token-holders a given yield on these assets. Shockingly, this yield is generally comparable to the yield received on purchasing equity or bonds in similar publicly listed real estate funds. However, the yield on the token should actually be much higher than the yield on equity/bonds as token-holders, unlike equity and bond holders, have no downside protection.</p>
<p>Indeed, it’s worth remembering that these funds are legally owned by their shareholders. In many cases, these funds will also take on additional debt to finance purchases and will therefore also have obligations to bondholders. Thus, in a scenario in which these companies are facing bankruptcy and go into liquidation, bondholders and equity-holders will be paid first with token-holders either being paid last (in which case they will receive pennies on the dollar) or not being paid at all.</p>
<p>Many of these funds tout themselves as being “real estate backed”. But unless they are a structured security token offering which specifies the legal status of token-holders, investors in these funds’ token would be better off investing in real estate bonds or equities where they can enjoy similar upside with added downside protection.</p>
<p>This doesn’t only apply to real estate funds but also to <a target="_blank" href="https://icerockmining.io/en.html">cloud mining projects</a>, projects developing commercial IP, and generally any projects using funds from an ICO to make capital investments into assets which will be legally owned by shareholders rather than token-holders.</p>
<h4 id="heading-solutions"><strong>Solutions</strong></h4>
<p>Solutions here all involve tweaking the token model such that value is transferred from the company’s equity to its token and aligning incentives between founders and token-holders. This can be done in several ways:</p>
<p><strong>(1) Add a buy-and-burn or profit share mechanism</strong></p>
<p>Both of these involve giving the token a “yield” and transferring value from the equity to the token.</p>
<p>In the case of the token “buy-and-burn”, this was initially suggested by Vitalik and has been widely adopted since. Basically, it involves designing token models with “buy-and-burn” mechanisms in which the project uses some or all of the cash flows generated by its platform to purchase its own tokens and destroy them. The decrease in supply raises the value of all remaining tokens by the percentage of total supply destroyed.</p>
<p>Effectively, the project is distributing its cash flows to its token-holders, very similar to how an equity distributes cashflows to its stockholders through a dividend.</p>
<p>An example of this is Iconomi, a digital asset management platform which <a target="_blank" href="https://iconomi.zendesk.com/hc/en-us/articles/360001428854-Repayment-Programme-Buybacks-Token-Burn">burns preset percentages of all fees collected</a> and also produces quarterly reports outlining the number of tokens burned (crypto quarterly earnings reports).</p>
<p>A profit-share is very similar in spirit to the “buy-and-burn” in that it is providing the token with a yield and turning it into an asset that generates cash flows. This was <a target="_blank" href="https://multicoin.capital/2017/12/08/understanding-token-velocity/">initially suggested by Kyle Samani of Multicoin</a>.</p>
<p>An example of this is Augur which pays REP holders for performing work for the network. REP tokens are like taxi medallions: you must pay for the right to work for the network. Specifically, REP holders must report event outcomes to resolve prediction markets.</p>
<p>Ideally, token models should ensure that companies burn/profit share as high a percentage as possible of the cash flow they’re generating in fees in order to ensure the value they’re creating accrues to the token.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/J1qdI8h5MnIT2U3gEAvzZ3bthp1WL1ZBOxqY" alt="Image" width="518" height="369" loading="lazy"></p>
<p><strong>(2) Founders should be paid alongside token-holders</strong></p>
<p>Projects raising money in ICO’s should not be paying dividends to shareholders, as this poses a significant conflict of interest.</p>
<p>In an ideal scenario, founders of a crypto project should not receive salaries either but rather be paid through the yield generated by their token ownership.</p>
<p>This is the case with Rialto, for instance, in which both team members and token-holders are paid through a bi-yearly dividend. While this is ideal as it maximally aligns incentives between founders and token-holders, it’s not always possible. Some crypto projects, like startups, will take time to reach profitability and the team must be able to survive in the meanwhile. In this case, transparency becomes paramount, which brings me to my next point.</p>
<p><strong>(3) Transparency</strong></p>
<p>Companies that raise money through ICO’s should be extremely transparent about all aspects of their project, including investors associated with the project, whether these investors received equity or tokens, how much they received, salaries they intend to pay themselves and any other operational costs they’ll be paying out.</p>
<p>For an example of this done well, check out page <a target="_blank" href="https://essentia.one/Foundation_and_Business_Plan_draft.pdf">26–30 of Essentia’s whitepaper</a>. It’s worth remembering that all costs must be deducted from the cash flows generated by the platform in order to arrive at the value which actually accrues to the token. After all, cashflows going towards paying salaries/rent are cash flows that are not being distributed to token-holders through a token burn/profit share.</p>
<p>This information should be provided in the whitepaper (similar to the information a VC would expect in a seed/series A round) and should also be updated regularly once the ICO is completed.</p>
<p>Hopefully, in the future, a standard will emerge for ICO’s, similar to the GAAP accounting standards for quarterly earnings reports that govern public companies. In them, ICO’s would be forced to update investors in a given format on key aspects of the project’s performance.</p>
<p>Until that time comes, we must self-regulate this by voting with our money and rewarding projects with better transparency with higher valuations. For an example of a project doing it right, check <a target="_blank" href="https://medium.com/iconominet/iconomi-financial-report-q1-2018-81e1ea0a11a8">out Iconomi’s quarterly reports</a>.</p>
<p>In the case of real estate funds and other security type offerings, these should be avoided unless they’re legally recognized security token offerings that clearly specify the token-holders’ legal status. This is particularly true in the case of bankruptcy or liquidation and as relates to other stakeholders such as bond and equity holders. Investors should also demand additional transparency from these types of projects, such as regular balance sheet updates.</p>
<p><strong>(4) Good governance models</strong></p>
<p>Many of these issues can also be resolved by having good governance models built into the token that allows token-holders to vote on key issues, including asset allocation.</p>
<p>For instance, a project’s assets can be held in escrow in a smart contract allowing token-holders to vote to liquidate and distribute all assets pro-rata to token-holders.</p>
<p>While this is currently impossible for assets other than cryptocurrencies, there are many projects working on registering and “tokenizing” <a target="_blank" href="https://cointelegraph.com/news/swedish-government-land-registry-soon-to-conduct-first-blockchain-property-transaction">real estate</a>, <a target="_blank" href="https://digix.global/">gold</a>, <a target="_blank" href="https://www.lexit.co/">intellectual property</a> and all sorts of other assets which will then be able to be placed into smart contracts.</p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>The token economic model design is an extremely important and underrated area for both investors and founders of cryptocurrency projects to think about. A project with a weak token economic model may see its token price fail, even as the project itself succeeds, simply because the token is not capturing any of the value created by the project.</p>
<p>Stay tuned for my next blog where I’ll cover the other biggest problem with token models: high velocity.</p>
<p>If you’re interested in having your project’s token economics audited or discussing this further, feel free to get in touch with me through here or on <a target="_blank" href="https://twitter.com/ZeMariaMacedo">Twitter.</a></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
