<?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" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[userfeeds - Medium]]></title>
        <description><![CDATA[An Open Protocol for Establishing Information Relevance in Crypto-Economic Networks - Medium]]></description>
        <link>https://medium.com/userfeeds?source=rss----9c0a794026bf---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>userfeeds - Medium</title>
            <link>https://medium.com/userfeeds?source=rss----9c0a794026bf---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 19:16:41 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/userfeeds" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Part II: New beginnings]]></title>
            <link>https://medium.com/userfeeds/part-ii-new-beginnings-a7520702b5be?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/a7520702b5be</guid>
            <category><![CDATA[social-media]]></category>
            <category><![CDATA[erc721]]></category>
            <category><![CDATA[nft]]></category>
            <category><![CDATA[ethereum]]></category>
            <dc:creator><![CDATA[Grzegorz Kapkowski]]></dc:creator>
            <pubDate>Fri, 22 Jun 2018 12:48:34 GMT</pubDate>
            <atom:updated>2018-06-22T12:52:13.437Z</atom:updated>
            <content:encoded><![CDATA[<blockquote>Things change, always.</blockquote><blockquote>‘Someone’.</blockquote><p>Hi, I’m Greg.</p><p>(this is how I usually introduce myself, although it sounds much better in my native Polish).</p><p>I’m currently the CTO@Userfeeds, where I’m responsible for creating technology based on our vision for new ways of information discovery. I’m really proud of what the Userfeeds team have managed to build in the short time since we launched. Each and every one of them has worked incredibly hard to accomplish feats we never thought possible, building technologies that created use cases for tokens that didn’t even exist at the time. I’m proud of them all.</p><p>Based on our initial technology, we managed to build two products; <a href="https://linkexchange.io/">https://linkexchange.io</a> and <a href="https://cryptopurr.co/">https://cryptopurr.co</a>. Looking ahead, we see a future in expanding the cryptopurr.co concept, and spinning out a new product based on that idea.</p><p>Even though Userfeeds as an organization is to close, the project and the technology will continue to live and evolve.</p><p>We want to continue our journey into the uncharted territory of information discovery and social media for token holders. To give people the tools they need to navigate the vast sea of projects, tokens and information. Tools which will arm them against misinformation and exploitation.</p><h3>Mission: Create a gateway to crypto-space for existing and new crypto users.</h3><p>We will be creating a new organization to take over cryptopurr.co. With time, the project will evolve into a gateway to crypto-space for all token-holders.</p><h4>Mission Objective: Exploration</h4><p>People holding tokens often have no idea where and how they can use them. We want to provide a single location where people can share and discover information about crypto tokens and what they can really do with them.</p><p>We will also explore the implications of decentralized ownership, and look for new use cases which leverage ownership of tokens rather than trading.</p><h4>Mission Objective: Expand understanding</h4><p>We want to educate token holders about the potential of owning certain crypto assets, and what power this ownership can give to their voices on the Internet.</p><h4>Mission Objective: Verifiable Information</h4><p>‘Why am I seeing what I see?’ is, to us, the most important question right now on the Internet.</p><p>Why are you shown particular information? Did someone pay the interface to show it to you? Is someone trying to exploit you? Who are the people pushing this agenda? Are other people also seeing this information? How valuable is my attention to others? Is it undervalued?</p><p>All these questions can be answered with transparent and open interfaces, which can deliver the specific transactions and signed messages that were used to compose your news feed. You can see who wants your attention, and how much he is willing to pay for it.</p><h4>Mission Objective: Increase Adoption</h4><p>By providing non-monetary use cases of ownership, we want to encourage non-crypto users to explore crypto-space and adopt the common tools (like wallets) to interact with other users. Without any cost on their or our side.</p><p>Thanks to the unique nature of our ‘multi-chain’ products, we can provide users with the same experience regardless if they use real tokens or only test tokens.</p><h4>Mission Objective: Interface Monetization</h4><p>We will be providing monetization schemes for all users involved with our products. They will be able to assume the roles of content curators, and then monetize their insight, or as Influencers who can monetize by creating their own tokens. We also support Creators, who can design interface customizations, tying them to a given token and monetizing their work through token cloning/sharing.</p><p>Of course, users can have any combination of these roles to maximise their revenue streams.</p><p>We’ve implemented a ‘Hello World’ (simplest possible) monetization on cryptopurr.co. Anyone can deposit a small amount of ETH and then place their kitty on the front page (or any other profile page) of cryptopurr.co. This increases the chance of their kitty being noticed by other kitty holders or interested people.</p><h4>Mission Objective: Shared Economy</h4><p>Sender, Receiver, Contract and Interface: these are the four basic roles required to create an economy on the blockchain.</p><p>Each Sender wants to change the state of the smart contract (eg. he want to buy tokens), but he is not using it ‘directly’. He only discovered that this contract exists through an Interface, and he uses this interface to create a transaction to change the state of the contract. The Receiver is a gatekeeper for the contract, and only he controls the circumstances under which the contract can change (eg. he owns tokens). The last piece of the puzzle is the Contract developer who created the object that the Sender and Receiver want to control, but since contracts are inherently hard to interact with, they need an interface so that people can use them easily. By creating economies that encourage building new interfaces for existing contracts, we will be able to drive innovations in this area.</p><p>We want to convince developers to build contracts in a way that any developer can benefit from building new interfaces for a given contract, thereby increasing its usage and interface variety.</p><h4>Mission Objective: Information Discovery</h4><p>By combining economic information (blockchains) with purely social information (shared URLs, texts) we want to explore new ways of filtering and sorting social information. This will allow people to create their own filters based on their ownership of tokens and other assets. Creating a membership token and distributing it to your friends is just one of various ways to create new information-sharing circles based on crypto ownership. Even basic purchases can be interpreted as product recommendations when viewed from a certain angle. You can find new people based on their economic behaviors (Did he sell during the peak? Did he hold during the dip? Are his transactions reflecting what he is saying?).</p><h4>Mission Objective: Collaboration</h4><p>This is one of our most ambitious aims. We want other developers to help us build these products and be part of the economy. This will require considerable effort. Working with other people is never easy, but we’re prepared to do whatever it takes to help and be as open as possible toward new ideas and initiatives.</p><h4>Mission CEO: Greg</h4><p>I’ll be the CEO in this new organization. This is something I haven’t done before and I have much to learn. I am well aware of the difficult journey ahead. But beyond that challenge, I truly feel that we are at the beginning of something great. The beginning of a movement that will change the shape of the world, and I want to be a part of it, together with all the fantastic people I’ve met so far, and all the people I will meet along the way.</p><p>I’m counting on you all to keep me pointing in the right direction if I ever lose sight of the path.</p><p>We will build this future together.</p><p>P.S.</p><p>While we shift direction to a product oriented company, we need to ensure that the technology and services provided to our partners continues to exist. We are extracting the technical aspects of Userfeeds and maintaining our existing APIs and services for current customers.</p><p>P.P.S</p><p>We can’t do this on our own. We are looking for investors who are able to support a team of absolutely dedicated, insanely intelligent and exceptionally creative people.</p><p>P.P.P.S.</p><p>Healthy food is good for productivity. So is exercise, lots of exercise; go for a walk if you can, and get a lot of sleep.</p><p>G.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a7520702b5be" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/part-ii-new-beginnings-a7520702b5be">Part II: New beginnings</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Part I: The End Of The Journey.]]></title>
            <link>https://medium.com/userfeeds/part-i-the-end-of-the-journey-173f669d70bc?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/173f669d70bc</guid>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Maciej Olpinski]]></dc:creator>
            <pubDate>Fri, 22 Jun 2018 11:53:33 GMT</pubDate>
            <atom:updated>2018-06-25T12:48:57.504Z</atom:updated>
            <content:encoded><![CDATA[<p>This post is one of the most difficult things I’ve ever written. But as the founder of the great expedition we’ve embarked on, it’s my responsibility to announce both the beginnings and the ends. I’m sad to announce that over the coming weeks we’ll be closing down the Userfeeds organization.</p><p>This has been an incredibly hard decision for many reasons, so let me provide some context.</p><p>At the start of 2017 we raised the initial funding for Userfeeds. We predicted that the blockchain-based Web 3.0 stack would need a platform for ranking and discovering information based on crypto-economic relationships rather than links or likes. The Web would need something like Google PageRank, but for blockchains and tokens.</p><p>What happened next is probably true for many startups, but as a when you’re starting your first business you only realize these things with hindsight. We were able to build some really cool technology and hire a great team, but we failed to generate enough traction to secure the next round of funding.</p><p>Even though we’ve seen some promising results with the products built on Userfeeds tech, such as <a href="http://linkexchange.io/">LinkExchange.io</a> (AdSense For Tokens) and <a href="http://cryptopurr.co/">Cryptopurr.co</a> (social feeds for Non-Fungible tokens), there just wasn’t enough excitement around them. Pivoting between platform-first and product-first approaches didn’t help the company either, as it diluted the core messaging and value proposition.</p><p>Running a startup is an emotional rollercoaster; one you can only really understand when you’ve ridden it yourself. In my case it was a rough ride, and the difficulties on the professional side very quickly became a personal struggle.</p><p>Given the circumstances and after talking to investors, it became clear that the best way forward is for me to step down. This will give both myself and Userfeeds time to reflect, recover and recharge.</p><p>As I step back, our co-founder Greg Kapkowski steps up. Greg wants to continue the vision we shared, and he’ll soon be launching a new company to take over the existing Userfeeds technology and develop it further. I fully support Greg in his mission to continue the project. You can read more about Greg’s vision for the Userfeeds successor <a href="https://medium.com/@grzegorz.kapkowski/part-ii-new-beginnings-a7520702b5be">here.</a></p><p>I’d like to take the opportunity to express my gratitude to our investors — Ciaran O’Leary and Philipp Banhardt from BlueYard (our lead investor) and Fred Ehrsam and Piotr Smolen who joined as angels. They have been extremely supportive throughout our journey, and if you’re an entrepreneur in the blockchain space looking for funding then these are the guys to talk to.</p><p>Finally, thanks to the team members who joined us on this expedition. I’m grateful for the opportunity and experience of working with you, and I’m looking forward to seeing what you build in your next big adventure.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=173f669d70bc" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/part-i-the-end-of-the-journey-173f669d70bc">Part I: The End Of The Journey.</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Token targeted airdrop]]></title>
            <link>https://medium.com/userfeeds/token-targeted-airdrop-61a2d8615cd7?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/61a2d8615cd7</guid>
            <category><![CDATA[erc721]]></category>
            <category><![CDATA[cryptokitties]]></category>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[airdrop]]></category>
            <dc:creator><![CDATA[Karol Kowalski]]></dc:creator>
            <pubDate>Tue, 08 May 2018 12:59:38 GMT</pubDate>
            <atom:updated>2018-05-08T12:59:38.020Z</atom:updated>
            <content:encoded><![CDATA[<p>At Userfeeds we’re big fans of the decentralized concept, and we’ve created a few demo applications to show the immense capabilities of our own aggregated API. In this post we’re going to expand on our <a href="http://cryptopurr.co/">Cryptopurr</a> concept, which is essentially Facebook for <a href="https://www.cryptokitties.co/">Cryptokitties</a>. With Cryptopurr, you can use your kitty as your unique identity to share information across decentralized apps. You can write messages (called Purring), sign them, and post them across any ethereum blockchain. Any, we hear your cry? Absolutely: messages posted on ethereum test networks, such as Kovan, Rinkeby or Ropsten, are visible on a par with messages posted on mainnet. We included the ability to write on any chain in order to keep the cost to users to an absolute minimum.</p><p><a href="https://blog.userfeeds.io/giving-cryptokitties-a-voice-fe70215b9c23">Here you can read</a> more about Cryptopurr and why sticking to mainnet is not always the best idea.</p><h3>Why airdrop KETH?</h3><p>We needed a way to get users on board with our Cryptopurr platform, and the best way to do that was to remove any potential barriers of entry. Since the biggest barrier for any dApp is the cost per interaction (whether it’s a post, a vote or a like), the most impactful solution was to hand out some free cryptocurrency. This has the added bonus of making the Cryptopurr user experience as seamless as possible.</p><p>Of course, if a user urgently needed to make their kitty purr with our app, they could request some test ethereum from one of the faucets (<a href="https://gitter.im/kovan-testnet/faucet">kovan gitter faucet</a>). But we had a better idea. We could send Kovan ethereum (KETH) to all Cryptokitties owners so that anyone could write a message immediately, without the hassle of requesting it themselves. From the list of available test networks, we chose Kovan because of its speed. This proof-of-authority testnet has consistent speeds of one block per 4 seconds, so it was the perfect choice for a platform based on rapid interactions, which social networks are.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*3C9Ny7PGEQO6GgtNcCR5Ag.png" /></figure><h3>Cryptokitties owners list</h3><p>At Userfeeds we deliver an aggregated <a href="https://userfeeds-platform.readthedocs-hosted.com/en/latest/ref/algorithms.html#receivers">API</a> over ethereum blockchains. Among other things, we aggregate all ERC721 token transfers. Thanks to this, it was easy to retrieve all 72,000 addresses that owned at least one kitty. You can see a list of owners for yourself directly in json format <a href="https://api.userfeeds.io/ranking/experimental_all_receivers;asset=ethereum:0x06012c8cf97bead5deae237070f9587f8e7a266d">here</a>. You can check out the API yourself if you want to generate your own custom group of recipients.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*OUyIA1Ynpu5Ds5xGRXrGZQ.png" /></figure><h3>Massive amount of KETH</h3><p>Let’s start with a rough approximation of how much KETH we need for a targeted airdrop of this size. We want to provide KETH to 72,000 addresses, and we want to let each address post a lot; let’s say 100 times. Hopefully 100 user interactions will be more than enough for Cryptokitties owners to see the fun of the Cryptopurr platform, and then they can retrieve more KETH from a faucet of their choice. Since each message on Kovan can be sent with 1 gwei gas price, we get a cost per message of less than 0.0001 KETH, leading to a grand total of 720 KETH for the whole airdrop. This might not seem like much, but one does not simply walk into a faucet full of KETH. Fortunately for us, <a href="https://www.parity.io/">Parity</a> was awesome enough to <a href="https://kovan.etherscan.io/tx/0x4450205c9df8c0e956b60f4bdc7710e33eee4eb26899589e63b9d1305401113a">give us all the KETH</a> we needed, so kudos to them.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*QImTuVK8Nz4BfXqen_Em8g.png" /></figure><h3>How to send 72,000 transfers</h3><p>All of us have been hit by a massive gas bill at least once, and for our airdrop the bill was potentially enormous. A simple transfer of ethereum costs 21,000 gas. Multiply that by our planned 72,000 transfers, and the total cost is a massive 1,512,000,000 gas. This exceeds the gas limit per block on kovan (8M) nearly 189 times over, so we have to break it down into batches. We also want all transactions to be easily connectable with our airdrop event, which is why we decided to create a <a href="https://kovan.etherscan.io/address/0x5301f5b1af6f00a61e3a78a9609d1d143b22bb8d">contract</a>. Besides transferring KETH, the contract also creates an event on a blockchain (check out our <a href="https://github.com/Userfeeds/AirdropEthereum/blob/master/solidity/AirdropContract.sol">github</a> on that). It all ran perfectly, and you can see the results of our airdrop on <a href="https://kovan.etherscan.io/address/0x5301f5b1af6f00a61e3a78a9609d1d143b22bb8d">etherscan</a>, consisting of 360 transactions in all. To send them we used our own small tool, which you can check out on <a href="https://github.com/Userfeeds/airdrop-ui">github</a> if you want to be equally generous to your own user base. We initially thought about using metamask, but that only supports up to 20 transactions (because obviously, who would ever need more than that?) and our needs were a little more demanding. To get around this, we switched to a <a href="https://github.com/paritytech/parity">Parity client</a>, and by adding a--warp flag we were able to sync to Kovan in less than 5 minutes. Using the --unlock flag also meant that we didn’t have to approve all 360 transactions individually, so the whole airdrop only took 51 minutes to execute from its initial run.</p><h3>New owners</h3><p>Sending KETH to all current Cryptokitties owners is great to get people purring, but it doesn’t help to expand the number of active users. And if you haven’t got your own kitty yet, don’t panic. We’ve also built a <a href="https://github.com/Userfeeds/AirdropEthereum">service</a> that monitors the ethereum blockchain for new Cryptokitties owners, and automatically sends a fixed amount of KETH to their address. That way, new users can start purring on our platform as soon as they get their kitty. We use our public API to manage it all, so if you want to play around with it yourself, you can find all the documentation <a href="https://userfeeds-platform.readthedocs-hosted.com/en/latest/ref/algorithms.html#receivers">here</a>, plus an example from the Kotlin code <a href="https://github.com/Userfeeds/AirdropEthereum/blob/18eeef2d73d28da7ea1472b6b1a3701da6f1f96d/src/main/java/io/userfeeds/airdrop/components/UserfeedsApiAdapter.kt">here</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*BVZWqmymTV5-B_igAgMtiA.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=61a2d8615cd7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/token-targeted-airdrop-61a2d8615cd7">Token targeted airdrop</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Giving Cryptokitties thousands of social media platforms]]></title>
            <link>https://medium.com/userfeeds/giving-cryptokitties-thousands-of-social-media-platforms-bd449a0a3a74?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/bd449a0a3a74</guid>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Patryk Adaś]]></dc:creator>
            <pubDate>Tue, 01 May 2018 12:32:18 GMT</pubDate>
            <atom:updated>2018-05-01T12:32:17.969Z</atom:updated>
            <content:encoded><![CDATA[<h4><em>What can you build with Userfeeds?</em></h4><p>In previous posts we’ve explained <a href="https://blog.userfeeds.io/giving-cryptokitties-a-voice-fe70215b9c23">why “Facebook for cats” makes sense</a>, <a href="https://blog.userfeeds.io/do-you-own-a-cryptokittie-have-some-keth-858359d2d718">we celebrated the launch of Cryptopurr’s MVP</a>, and <a href="https://blog.userfeeds.io/let-them-speak-a-simple-guide-on-how-to-build-a-social-platform-for-an-erc-721-token-d9651e353026">we’ve also shown you how to fork our work to your own preferred ERC721 token.</a></p><p>Now we want to show you few examples of what you can potentially build with it.</p><h4>① Custom rankings for in-game assets</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qadKDljXvFUSbxqGUg666A.png" /><figcaption>Amazon for cats</figcaption></figure><p>Too many items make the list hard to read? Do you know the perfect sauce for matching cats? Add a social layer on top and review the services provided by the siring kitties.</p><h4>② Broadcast &amp; socialize the blockchain events</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Aj_CrnTzQB2RxMLTOmnb8g.png" /></figure><p>Have you seen this ethmoji wearing it? Is this celebrity cat having a kittens? Are you holding an Ethereum for last two years?</p><h4>③<strong> Reddit for ETH Fanatics</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qrvzIj9qy5FU8KIbr2S4Rg.png" /></figure><p>Verify the incentives of the author. Combining HODL Algorithm (Ethereum Held over Time) with user’s social reactions could result in ‘Skin-in-the-game’ Reddit.</p><h4>④ <strong>Feed with featured posts</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M3wLhmh7UG-BD8pN8aay0A.png" /></figure><p>Create <a href="http://cryptopurr.co/">a Facebook-like newsfeed</a> and <a href="http://linkexchange.io/">monetize it with featured posts</a> aligned with your users’ incentives, paid for by any ERC20 token.</p><p>Feed can be embedded anywhere!</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBEOMYhkyH5k%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBEOMYhkyH5k&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBEOMYhkyH5k%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/4de76729cf286087a651708b4ccd1731/href">https://medium.com/media/4de76729cf286087a651708b4ccd1731/href</a></iframe><p>PS <em>We also have a </em><a href="http://userfeeds.io/annotations"><em>Chrome extension</em></a><em> coming up.</em></p><h4>⑤ Decentralized Advertisement Networks</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vMGoRaAvx4Z5r4bfuUWZFA.png" /></figure><p>Use your cat to connect advertisers and publishers. Rank them by the amount of tokens received (this is <a href="http://www.linkexchange.io/">LinkExchange.io</a> algorithm).</p><h4>∞ Personal Kittie</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dND2TdRE92C3dP0twvFPtQ.png" /></figure><p>Receive crafted recommendations, just for you — happening on the open marketplace of personalization algorithms. <em>This one’s in few years ^.^</em></p><h3>How is this possible?</h3><p>The Userfeeds platform is based on claims. Each claim is a small piece of metadata that’s injected into a blockchain transaction, which is then used to create a new relationship between the blockchain address and some arbitrary information. Once the transaction is signed by a user’s private key, we know the sender, receiver and the content of a message. It’s a bit like pointing your finger at a thing and saying it’s yours.</p><blockquote>Claims are used to influence perceptions of others by linking consensual data with non-consensual claims about the data.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hSQJKB0PW5xleu8sJX3bFA.png" /></figure><p>Once we’ve established a connection, we know everything about the behaviour of the address (since it’s operating on a public blockchain) and its correlation to other claims. Therefore the interpretation can be both non-consensual (subjective, social) and consensual (objective).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*gnyoP1FBqmw35I4t." /><figcaption>Think likes, upvotes, messages, social statuses</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*XprJHwNHxOV-HSKV." /><figcaption>Blockchain events</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ShxYI3nKxw9-aU2P." /><figcaption>Token statuses, connections to other addresses, etc.</figcaption></figure><h3>How to deal with all this data?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ijsox7LdTeQRGgBei1hxow.png" /></figure><p>So what are we going to do with all this data? How is it even possible to read it all? <strong>First of all, we need to rank it.</strong> Ranked data is a feed that you see everyday: Twitter’s newsfeed, Google’s page, Spotify playlist recommendations, Yelp’s best nearby restaurants and so on.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5lX2WH6h8sVwDHqLqD1b6w.png" /></figure><p>Different sets of applications can be built in a spectrum of these messages, utilising different ranking methods. <strong>You can also integrate it with your existing Ethereum dApp.</strong></p><p>Some of the rankings will prioritise more consensual information…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mXULRjZHhF0Ww5jO." /></figure><p>…showing price, genes match and kids success — all of this information is comprised of consensual events.</p><p>Some events are less consensual…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*JPKiH1HQFhljP3cE." /></figure><p>…such as interests.</p><p>As time goes by and your character develops a broader data set, the information displayed with probably become even more subjectified.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*XXwWlkDkmXnLZuZD." /><figcaption>Prioritizing social influence</figcaption></figure><p>Any action performed on any interface can influence the ranking of all the other interfaces in a different way. That’s an important shift, as the owner of the data layer no longer controls the perception of the data.<strong> You don’t add a link to Facebook. The data stays on an open data layer, it can be interpreted in many different ways.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*xNo0Db3OdLyFG0wp." /></figure><h3>Is it only for ERC721?</h3><p>Nope, you can also use the address itself or even the Ethereum Name Service.</p><h3>How can I contribute?</h3><p>We’d love to hear back from you and discuss how we can work together.</p><ul><li><strong>developers</strong> — <strong>join our freshly created </strong><a href="https://gitter.im/Userfeeds/"><strong>Gitter</strong></a><strong> </strong>to discuss possible integrations of ‘feeds for NFTs’ with your dApp.</li><li><strong>NFT token owners and enthusiasts</strong> — if you’re not a developer but you’re still interested in NFTs, you can <a href="http://t.me/userfeeds"><strong>join our new Telegram</strong></a> group to discuss how to grow the value of your NFT avatars by producing and curating information.</li></ul><p>Alternatively, you can always email us at developers[AT]userfeeds.io</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bd449a0a3a74" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/giving-cryptokitties-thousands-of-social-media-platforms-bd449a0a3a74">Giving Cryptokitties thousands of social media platforms</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Let them speak — A simple guide on how to build a social platform for an ERC-721 token]]></title>
            <link>https://medium.com/userfeeds/let-them-speak-a-simple-guide-on-how-to-build-a-social-platform-for-an-erc-721-token-d9651e353026?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/d9651e353026</guid>
            <category><![CDATA[erc721]]></category>
            <category><![CDATA[solidity]]></category>
            <category><![CDATA[collectibles]]></category>
            <category><![CDATA[ethereum]]></category>
            <dc:creator><![CDATA[Kasper Kondzielski]]></dc:creator>
            <pubDate>Fri, 27 Apr 2018 09:40:16 GMT</pubDate>
            <atom:updated>2018-04-27T15:33:23.541Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FW_kCaCo9q1F7urBJBLS4Q.png" /></figure><p>In a <a href="https://blog.userfeeds.io/giving-cryptokitties-a-voice-fe70215b9c23">previous post</a> we discussed a variety of potential uses for a social layer built on top of ERC-721 tokens, and explored how a platform like this might work. This post takes the form of a short tutorial which will show you how to build a social platform for an existing ERC-721 token. To keep things simple, we’re going to build a basic version of <a href="http://cryptopurr.co/">cryptopurr</a>. Making sure we’ve covered all the bases, the first chapter also describes how to build your own ERC-721 token, if you don’t already have one. Next we’ll try to figure out how to attach unique avatars to our token. If you know how to do this, or you’re planning to add a social layer to a pre-existing token, then you can <a href="#91fb">skip this section</a>.</p><h3><strong>Building your own ERC-721 token</strong></h3><p>To make our life easier, we’re going to use Truffle. If you’re not familiar with Truffle, take a look at the <a href="http://truffleframework.com/docs/">documentation</a> to get yourself up to speed.</p><p>To get started, install Truffle:</p><pre>$ npm install -g truffle</pre><p>Now let’s create a project. For this tutorial I’m going to use a RoboHashToken, so I’ve named the project’s directory ‘robohash’.</p><pre>$ mkdir robohash &amp;&amp; cd robohash</pre><pre>$ truffle init</pre><pre>$ npm init #confirm all default values</pre><p>Since the complete standard of ERC-721 isn’t what you’d call small, we’re going to use an implementation of the <a href="https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC721/ERC721Token.sol">ERC-721 token standard from the zeppelin-solidity library</a>. To do that, we need to add zeppelin-solidity to our dependencies:</p><pre>$ npm install zeppelin-solidity --save-dev</pre><p>Once we have zeppelin, we can create our contract:</p><pre>$ touch contracts/RoboHashToken.sol</pre><p>To maintain compatibility with truffle’s development pipeline, we also need to create a migration file:</p><pre>$ touch migrations/2_deploy_contracts.js</pre><p>and fill it as follows:</p><pre>var RoboHashToken = artifacts.require(&quot;RoboHashToken&quot;);<br><br>module.exports = function(deployer) {<br> deployer.deploy(RoboHashToken); <br>};</pre><p>For more info about truffle migrations, take a look at the <a href="http://truffleframework.com/docs/getting_started/migrations">Truffle documentation</a>.</p><p>Back to the contract. First let’s inherit from ERC-721Token</p><pre>pragma solidity ^0.4.21;<br><br>import &#39;zeppelin-solidity/contracts/token/ERC721/ERC721Token.sol&#39;;<br><br>contract RoboHashToken is ERC721Token(&quot;RoboHashToken&quot;, &quot;RHT&quot;) {<br> ...</pre><p>The two arguments of the base class constructor are the token’s name and token’s symbol respectively. Next we have to figure out how these tokens will be issued. Because I want to make it as simple as possible, I’ll create my token in a way that allows anybody to create their own unique instance of this token:</p><pre>contract RoboHashToken is ERC721Token(&quot;RoboHashToken&quot;, &quot;RHT&quot;) {<br> <br> function create() public {<br>  uint256 tokenId = allTokens.length + 1;<br>  _mint(msg.sender, tokenId);<br> }</pre><p>As you can see in the code snippet, all we need to do is invoke the internal function _mint which takes care of the whole creation process for us. Congratulations! You’ve just implemented your own ERC-721 token!</p><p>But let’s face it, the token itself isn’t particularly interesting. Fortunately, it doesn’t take much more work to turn it into a naming service. Thanks to this, users of your service will be able to claim their names, identifiers, emails etc. All we need to do is to allow users to pass their identifiers to the create function and store them into some kind of mapping.</p><pre>contract RoboHashToken is ERC721Token(&quot;RoboHashToken&quot;, &quot;RHT&quot;) {<br> <br> mapping(uint256 =&gt; string) internal tokenIdToName;<br> mapping(string =&gt; uint256) internal nameToTokenId;<br><br> function create(string name) public {<br>  require(nameToTokenId[name] == 0);<br>  uint256 tokenId = allTokens.length + 1;<br>  _mint(msg.sender, tokenId);<br>  tokenIdToName[tokenId] = name;<br>  nameToTokenId[name] = tokenId;<br> }<br><br> function getTokenName(uint256 tokenId) view public returns (string){<br>  return tokenIdToName[tokenId];<br> }<br><br> function getTokenId(string name) view public returns (uint) {<br>  return nameToTokenId[name];<br> }</pre><p>I’ve also created a reversed mapping, so it’s be easy to check the identifier of a particular tokenId.</p><h3>Token’s avatar</h3><p>Tokens are kind of abstract, so it’s much more satisfying for your users if your token can be visualized. Cryptokitties tokens are represented by their png/svg images, which are served from a backend, and the same story goes for pretty much all collectibles; the underlying token is represented by a remotely-served graphic. Following that theme, we’ll use the <a href="https://robohash.org/">https://robohash.org/</a> website to generate images from strings. We’ll be simply concatenating “<a href="http://robohash.org/">http://robohash.org/</a>” with token’s name and “.png” postfix to create an url for each token’s image which can be later displayed on our interface.</p><p>Ok, so let’s summarize what we have by now.</p><p>Every user can establish a unique identity, which is implemented as a non-fungible token, and see a visual representation of their character based on the assets from <a href="http://robohash.org/">http://robohash.org</a>. Isn’t that great?</p><p>You can check the full source code <a href="https://github.com/Userfeeds/robohash-token/blob/only_token/contracts/RoboHashToken.sol">here</a>.</p><p>If you want to see how I wrote tests for this contract, you can check that out <a href="https://github.com/Userfeeds/robohash-token/blob/only_token/test/roboHashToken.js">here</a>.</p><h3>Deploying a contract</h3><p>Deploying contracts with Truffle is easy; all we need to do is to configure our network of destination.</p><p>To access the Ethereum network, let’s use <a href="https://infura.io/">Infura</a>.</p><p>Because deploying contracts costs some amount of Ether, we need to grant Truffle access to our wallet. To prevent leaking our private key into the source code, I’m going to use a <a href="https://github.com/motdotla/dotenv">dotenv</a> module.</p><p>So let’s get started by installing all of the modules needed to deploy to Infura.</p><pre>$ npm install --save-dev dotenv truffle-wallet-provider ethereumjs-wallet</pre><p>Now edit truffle.js and add the following:</p><pre>require(&#39;dotenv&#39;).config({path: &#39;.env.local&#39;});<br>const Web3 = require(&quot;web3&quot;);<br>const web3 = new Web3();</pre><pre>const WalletProvider = require(&quot;truffle-wallet-provider&quot;);<br>const Wallet = require(&#39;ethereumjs-wallet&#39;);<br><br>module.exports = {<br> networks: {<br>  ropsten: {<br>      provider: function(){<br>       var ropstenPrivateKey = new Buffer(process.env[&quot;ROPSTEN_PRIVATE_KEY&quot;], &quot;hex&quot;)<br>    var ropstenWallet = Wallet.fromPrivateKey(ropstenPrivateKey);<br>       return new WalletProvider(ropstenWallet, &quot;https://ropsten.infura.io/&quot;);<br>      },<br>      gas: 4600000,<br>        gasPrice: web3.toWei(&quot;20&quot;, &quot;gwei&quot;),<br>      network_id: &#39;3&#39;,<br>  }<br> }<br>};</pre><p>Next open up your .env.local and paste in your private key like so:</p><pre>ROPSTEN_PRIVATE_KEY=&quot;123YourPrivateKeyHere&quot;</pre><p>Don’t forget to add .env.local to your .gitignore!</p><p>Various ethereum test networks are available for you to use when testing your contracts, such as Kovan or Rinkeby. I chose Ropsten for this tutorial because Ropsten ETH is the easiest to get at the moment. All networks are fairly similar and you can use whichever testnet you like, but for the remainder of the tutorial I’ll assume you’re using Ropsten just for convenience.</p><p>Visit <a href="https://faucet.metamask.io/">https://faucet.metamask.io/</a> to request some test ETH. Once you’ve got some ETH from the faucet, you should be ready to deploy!</p><p>Once you are ready to deploy you can execute:</p><pre>$ truffle deploy --network ropsten</pre><p>Copy and paste the relevant address from the output into the <a href="https://ropsten.etherscan.io/">Ropsten Etherscan</a> search box and you should see your newly deployed contract!</p><p>For more info about Truffle networks configuration, click <a href="http://truffleframework.com/docs/advanced/networks">here</a>.</p><p>If you want to claim your token, you can go to <a href="https://remix.ethereum.org/">https://remix.ethereum.org/</a>. Remove all the existing code, and paste in the following snippet:</p><pre>pragma solidity ^0.4.21;<br><br>contract RoboHashToken  {<br>    function create(string name) public; <br>}</pre><p>Having a contract interface is the only requirement to be able to call its methods. Once you have that, switch to the “Run” tab on the right side of the Remix screen. Paste your contract address in the appropriate field and click “At address”. This generates a create method which takes one parameter. If you call it and everything passes successfully, you’ll have become the owner of your own unique ERC-721 token instance.</p><h3>Building a social layer</h3><p>Rather than build a complete website from scratch, let’s use an existing one: <a href="https://userfeeds.github.io/cryptopurr/">https://userfeeds.github.io/cryptopurr/</a>. I’m not going to explain all the inner workings of this website in detail. Instead, I’ll focus on the changes we need to make to support our robohashTokens.</p><p>First let’s clone cryptopurr to a new directory:</p><pre>$ git clone git@github.com:Userfeeds/cryptopurr.git<br>$ cd cryptopurr<br>$ git reset --hard 0626acd6bb7ce87bcd72cca4d8f1049241e8c0e6</pre><p>We’re particularly interested in the following files:</p><ol><li>.env — File with all the necessary environment variables to get the app working.</li><li>package.json — Standard create-react-app package.json file with all the application dependencies and scripts.</li><li>src/entityApi.js — Defines how the details about particular token are fetched from network and displayed on website.</li><li>public/index.html — Here we need to set the title of the html page.</li></ol><p>Ad 1. .env</p><p>Set the following properties:</p><ul><li>REACT_APP_NAME — Your app name (in my case RoboHash).</li><li>REACT_APP_INTERFACE_VALUE — Url where your website will be hosted.</li><li>REACT_APP_ERC_721_NETWORK — Name of the network where your ERC-721 contract is deployed. <strong>Please note that even that your contract is deployed on particular network users will be able to create messages also on other networks </strong>(The power of the cross-chain!!).</li><li>REACT_APP_ERC_721_ADDRESS — Address of your ERC721 contract.</li><li>REACT_APP_BASENAME — Base url (in my case /robohash-book/)</li></ul><p>Ad 2. package.json</p><ul><li>Change name and home_page and insert the same values here as you did in the previous file.</li></ul><p>Ad 3. src/entityApi.js</p><p>The main thing we need to change here is the getEntityData function. This function fetches details about a particular entity from the backend. It takes tokenId as a parameter and returns a custom object which is then used to display our entity on the page. Since we don’t have our own backend, we’ll have to connect it to our contract on the ethereum network instead. Luckily for us,Infura can take care of this too.</p><p>We’ll use web3js to talk to Infura, but to invoke methods on our contract we also need its ABI (Application Binary Interface). We can obtain it from the robohash-token project by invoking the following command:</p><pre>$ truffle compile \<br>  &amp;&amp; cat build/contracts/RoboHashToken.json | jq ‘.abi’ | xclip</pre><p>Next, paste it into the robohash-book project:</p><pre>$ mkdir src/abi &amp;&amp; xclip -o src/abi/RoboHashToken.json</pre><p>Once you have your contract’s ABI, you can use it together with the contract’s address to create an instance of your javascript contract’s representation.</p><pre>import Web3 from &#39;web3&#39;;<br>const roboHashTokenArtifacts = require(&#39;./abi/RoboHashToken.json&#39;);<br><br>const web3 = new Web3(new Web3.providers.HttpProvider(&#39;https://ropsten.infura.io/));<br>const contractInstance = new web3.eth.Contract(roboHashTokenArtifacts.abi, &#39;0xfa9d471300b0a4cc40ad4dfa5846864973520f45&#39;);</pre><p>At this point we should be able to call the contract’s methods, so let’s implement the getEntityData function.</p><p>We will invoke getTokenName with entityId to obtain the name of that token, and then use getTokenUrl to get the robohash image of our token.</p><pre>export const getEntityData = async entityId =&gt; {<br>  try {<br>    const responseTokenName = await contractInstance.methods.getTokenName(entityId).call();<br>    const tokenName = responseTokenName.valueOf();<br>    const responseTokenUrl = await contractInstance.methods.getTokenUrl(tokenName).call();<br>    const tokenUrl = responseTokenUrl.valueOf();<br>    return {<br>      id: entityId,<br>      name: tokenName,<br>      image_url: tokenUrl, // image of our entity<br>      url: `https://robohash.org`, // website with details about particular entity<br>      color: &#39;#333333&#39; // background color <br>    };<br>  } catch (e) {<br>    console.error(e);<br>    return undefined;<br>  }<br>};</pre><p>Next we have entityTranslations which defines the texts displayed across the application. You can change them to suit your website theme and local language. I defined them as follows:</p><pre>export const entityTranslations = {<br>  commentPlaceholder: &#39;Hash your story&#39;,<br>  replyPlaceholder: &#39;Hash your reply&#39;,<br>  noEntitiesError: &#39;No robohashes found&#39;,<br>  entityName: &#39;RoboHash&#39;<br>};</pre><p>The colors map from line 4 defines the appropriate background color behind the kitty. Since we will have only one background color across the site, you can remove this entirely.</p><p>Finally, we need to adjust avatarSizes. The best approach to do this is to open our application, find the right values using the web browser console, and then write them into the file. Once all of that’s taken care of, your application is finally ready to launch.</p><p>To start the application:</p><pre>$ yarn<br>$ yarn start</pre><p>For me the correct values for avatarSizes were as follow:</p><pre>export const avatarSizes = {<br>  verySmall: { containerSize: &#39;32px&#39;, imgSize: &#39;32px&#39;, imgTopOffset: &#39;50%&#39;, imgLeftOffset: &#39;50%&#39; },<br>  small: { containerSize: &#39;44px&#39;, imgSize: &#39;44px&#39;, imgTopOffset: &#39;50%&#39;, imgLeftOffset: &#39;50%&#39; },<br>  medium: { containerSize: &#39;54px&#39;, imgSize: &#39;54px&#39;, imgTopOffset: &#39;50%&#39;, imgLeftOffset: &#39;50%&#39; },<br>  large: { containerSize: &#39;64px&#39;, imgSize: &#39;64px&#39;, imgTopOffset: &#39;50%&#39;, imgLeftOffset: &#39;50%&#39; }<br>};</pre><p>Ad 4. public/index.html</p><ul><li>In the line 23 you can change the title.</li></ul><p>Congratulations! You’ve built your own social platform for your collectibles! Because the application only consists of frontend (the backend is taken care of by the ethereum network), you can even deploy it using github pages!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*F1XjhJLlIDVv3N9I0FnzRw.png" /></figure><p>That wraps up this tutorial. I hope that you enjoyed reading, and if you want to duplicate it for yourself, all the code can be found in the following repositories:</p><ul><li><a href="https://github.com/Userfeeds/robohash-book">https://github.com/Userfeeds/robohash-book</a></li><li><a href="https://github.com/Userfeeds/robohash-token">https://github.com/Userfeeds/robohash-token</a></li></ul><p>If you look closely at the <a href="https://github.com/Userfeeds/robohash-book">https://github.com/Userfeeds/robohash-book</a> repository, you’ll find some additional commits. They show how we adjusted the code to add the option of issuing new tokens directly from our interface, plus how we configured Truffle to deploy to mainnet. And remember, even if your contract was deployed to mainnet, your users don’t have to write messages on the same network. Thanks to the Userfeeds platform they can also post on other test networks such as Kovan, where Ether is free! If you are interested how this whole solution works under the hood, stay tuned for the next article which is coming soon.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d9651e353026" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/let-them-speak-a-simple-guide-on-how-to-build-a-social-platform-for-an-erc-721-token-d9651e353026">Let them speak — A simple guide on how to build a social platform for an ERC-721 token</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Do you own a cryptokittie? Have some kETH!]]></title>
            <link>https://medium.com/userfeeds/do-you-own-a-cryptokittie-have-some-keth-858359d2d718?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/858359d2d718</guid>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[airdrop]]></category>
            <category><![CDATA[cryptokitties]]></category>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[erc721]]></category>
            <dc:creator><![CDATA[Patryk Adaś]]></dc:creator>
            <pubDate>Tue, 24 Apr 2018 13:01:55 GMT</pubDate>
            <atom:updated>2018-04-24T21:23:24.336Z</atom:updated>
            <content:encoded><![CDATA[<h4>Captain Barbossa just sent you an airdrop with a message about launching Cryptopurr.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7Vd8p6lx0SMfnH2elX0Jew.png" /><figcaption><a href="http://cryptopurr.co/">http://cryptopurr.co</a></figcaption></figure><h3><a href="http://www.cryptopurr.co/">Purr something!</a></h3><p>We just officially launched our first iteration of “Facebook for cats”, <a href="https://blog.userfeeds.io/giving-cryptokitties-a-voice-fe70215b9c23">explained in this post</a>. To celebrate, we’ve decided to give each of our followers some Kovan Ethereum to help you start purring. Even though your cat belongs to mainnet, you can use this Kovan Ethereum (or any other test net) to purr for free, without bloating the network.</p><p><a href="https://kovan.etherscan.io/address/0x6be450972b30891b16c8588dcbc10c8c2aef04da">Cpt. Barbossa sent 800 kETH to ~70000 addresses that own at least one kittie.</a></p><p>If you don’t have a cat, perhaps you own an <a href="https://userfeeds.github.io/cryptomoji/">Ethmoji</a> or <a href="https://userfeeds.github.io/cryptobeep/">Cryptobot</a> instead, or want to create your own <a href="https://userfeeds.github.io/robohash-book/">Robohash</a>? No problem: this method, and the free Ethereum, works with these as well.</p><h3>What can you do with that?</h3><ul><li>Purr, obviously</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XxLACUYdGPsRhvTQCk5luQ.png" /></figure><ul><li>Purr to another kittie</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bKywfIy9RXjEpe0cWYWiUQ.png" /></figure><ul><li>React</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AwSbGo0wbO3n3dAFBOQLlQ.png" /></figure><ul><li>Colonize existing web 2.0 channels</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wGtkeWV550vVCQkxbYJ-dA.png" /></figure><ul><li>Reply to messages</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eE9TFSjoboXQuu27KlbXTw.png" /></figure><h3>How to switch to a test net?</h3><p>Log in to your MetaMask. In the top left corner, click ‘Main Network’ and in the displayed menu, select Kovan.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ucTFbKUcA1Lo5AC-bj17Jg.png" /></figure><p>If you owned a kittie before the airdrop you should see balance of 0.1 Ethereum. You’re welcome!</p><h3>Supported by Trust Wallet</h3><p><a href="https://trustwalletapp.com/">You can purr on your mobile device! </a>Just make sure you’ve chosen Kovan as the network.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cAFa3G_U6142w-I5rMR-5w.png" /></figure><h3>Can I fork it?</h3><p>Yes! Integrate it within your dapp, curate your own feed, prioritize particular cats or do anything you can think of. <a href="http://gitter.im/Userfeeds/"><strong>Message us!</strong></a></p><h3>How did you send an airdrop with the message?</h3><p>It’s easier than you think! <strong>We’re working on a tutorial for you.</strong></p><h3>What else can I build with it?</h3><p>Basically anything that utilizes rankings, messages and reactions (Facebook, Reddit, Twitter, Spotify, Yelp and so on).</p><h3>How can I contribute?</h3><p>We’d love to hear back from you and discuss how we can work together.</p><ul><li><strong>developers</strong> — <strong>join our freshly created </strong><a href="https://gitter.im/Userfeeds/"><strong>Gitter</strong></a><strong> </strong>to discuss possible integrations of ‘feeds for NFTs’ with your dApp.</li><li><strong>NFT token owners and enthusiasts</strong> — if you’re not a developer but you’re still interested in NFTs, you can join our new Telegram group to discuss how to grow the value of your NFT avatars by producing and curating information.</li></ul><p>Alternatively, you can always email us at developers[AT]userfeeds.io</p><p><strong>Special thank you to </strong><a href="https://blockchaingamer.net/"><strong>blockchaingamer.net</strong></a><strong> for supporting us!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=858359d2d718" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/do-you-own-a-cryptokittie-have-some-keth-858359d2d718">Do you own a cryptokittie? Have some kETH!</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Open Data Layers]]></title>
            <link>https://medium.com/userfeeds/open-data-layers-6674b7047a7b?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/6674b7047a7b</guid>
            <category><![CDATA[userfeeds]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[opendatalayers]]></category>
            <category><![CDATA[data-analysis]]></category>
            <dc:creator><![CDATA[Grzegorz Kapkowski]]></dc:creator>
            <pubDate>Tue, 17 Oct 2017 11:39:34 GMT</pubDate>
            <atom:updated>2017-10-04T11:47:37.321Z</atom:updated>
            <content:encoded><![CDATA[<p>The world is changing. Blockchain technology showed us new ways of doing things. I want to share with you my perspective on how data will be stored and shared in the future.</p><h4>Data Layers</h4><p>First, I want to introduce you to my concept of <strong>data layer</strong>. The term is used to describe many different things in architectures of products and software systems, that’s why I want to explain my definition of data layer.</p><p>If we started to examine many existing systems they could be described with this diagram:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/680/1*rksQ6x9gdC9M2LnLej_H-A.png" /></figure><p>At the bottom of the diagram there is a rectangle titled <strong>Database</strong>. It usually means: data structured in a specific way enabling their processing and a processing software that is able to access the data and do something with them.</p><p>This combination of <strong>data</strong>, <strong>structure</strong> and <strong>software</strong> (being able to operate on the data with given structure) is my definition of Data Layer. One without the other cannot work to deliver value. You need all of those components working together.</p><blockquote><strong>Data Layer: </strong>Structured data and processing software that is able to operate on the structure.</blockquote><p>An example of data layer is of course your database cluster, or single sqlite.db file sitting somewhere on your server and application modules reading the file or even API sitting on your server and waiting for valid request to fulfill.</p><h4>Walled gardens</h4><p>All of mentioned examples of Data Layers have something in common. They don’t want to share all the data and processing capability with outside world. But only with selected few who have proper credentials.</p><p>The biggest value gathered by companies on their servers is the data. Every day millions of records about people/things/places are gathered, retrieved and processed. All stored and carefully guarded.</p><p>That’s why current database systems come with built in authorization and security mechanisms, limiting the access to only those individuals who are able to prove they have the right to see the data.</p><p>This creates a world where innovation, that could be created based on those data, is limited to platforms gathering them. You cannot get all the data from Twitter, Facebook, Google, Amazon or any other platforms, even the small ones.</p><p>That’s because business models of those platforms are based on data gathered by them. The data is their economic advantage.</p><p>But what if we change the business models of those companies?</p><p>I’m specially thinking about Tokens, and ICOs that started appearing some time ago and right now look like there is no stopping to them. (Yes there is a lot of scam there, but that’s a topic for different article)</p><p>What if we could create companies providing similar functionalities to existing platforms, but relying on tokens as their business model? I don’t want to propose any specific model because that might vary between companies. I’m assuming a model where the biggest advantage is given not by the data but by number of people holding/trading this company token(s).</p><p>Given those companies/projects and their new business models, it could become beneficial to those companies/projects to share the data they are gathering. If some other project would start using their data it would make their token more desirable.</p><p>(That’s what we are planning for Userfeeds Platform, all the data that we gather will be available for external developers/projects to use and experiment with, and we will be focusing on adding more and more data sources as blockchain space grows and matures. You can read about the data we are gathering <a href="https://medium.com/@grzegorz.kapkowski/userfeeds-platform-data-overview-79c57c72720f">here</a>)</p><p>Now, that the stage is set, let’s jump into main topic of this article</p><h4>Open Data Layers</h4><p>The idea of Open Data Layers is to provide identical data and processing capabilities, to everyone interested in the data, as you have inside your platform. Much like how blockchain works, or rather its peer-to-peer synchronization part.</p><blockquote><strong>Open Data Layer: </strong>Structured data and processing software that is able to download data and operate on the structure.</blockquote><p>In blockchain world if I want a copy of given blockchain I need to download appropriate program and run it. That’s it.</p><p>I think Open Data Layers should work identically. If you are interested in some data you just download appropriate program (database server etc.) and run it with information which Open Data Layer should be the source. Without ever asking for permission or credentials.</p><p>(Not all data are appropriate for such sharing, especially those tied to your human identity, but in blockchain world we started identifying individuals by their cryptographic signatures (public/private key pairs) and information tied not to you directly but to one of you public keys (economic identities) tends to be more valuable when shared with everyone.)</p><p>The architectures of different applications using the same Open Data Layer could be pictured like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/840/1*H92Mf2owCVl-BAbnM2QtXQ.png" /></figure><h4>Technical perspective</h4><p>For open data layers to start growing we need help from database projects. They would need to provide new mechanisms for reliable data sharing in ways similar to what they are currently doing for replication and reliability but with very different reason behind.</p><p>Current databases are very good at replicating data between nodes in a cluster (any production ready database system has such capabilities). But those mechanisms where built to share data only with limited audience. You might have capability to setup read only nodes and share them outside your cluster, but you need to know about those nodes.</p><p>With open data layers we need peer-to-peer solutions that would allow everyone to setup node for any data layer without asking for permission and with the same processing capabilities as the data source. Those additional nodes wouldn’t be able to modify data of original source, or their attempts to do so would be ignored, but it should not prevent the user from adding new data to his node outside of the data being replicated.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*viP-u-n_ExdSymEIfxLPQg.png" /></figure><p>The basic architecture of system sharing its internal data could look like the diagram above. Where <strong>system nodes</strong> are internal to the <strong>data operator</strong> (they are the ones controlling/creating the data) and are allowed to alter the data, <strong>gateway nodes</strong> are designed to pass data from system nodes to external <strong>readonly nodes</strong>. Readonly nodes would then have capability to replicate from other readonly nodes or from gateways allowing for better load balancing.</p><h4>Conclusion</h4><p>Right now Open Data Layers is only an idea. We need companies whose business models encourage data sharing. If you are creating such company, let us know.</p><p>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —</p><p>We, at Userfeeds, are thinking of ways to efficiently share our data with everyone. We’ll be gathering people interested in data storing, processing and sharing to start this conversation. We are using Neo4j and PostgreSQL databases internally and this will be starting point in our journey towards Open Data Layers.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6674b7047a7b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/open-data-layers-6674b7047a7b">Open Data Layers</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Userfeeds Platform: Data overview]]></title>
            <link>https://medium.com/userfeeds/userfeeds-platform-data-overview-79c57c72720f?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/79c57c72720f</guid>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[token-economy]]></category>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[userfeeds]]></category>
            <dc:creator><![CDATA[Grzegorz Kapkowski]]></dc:creator>
            <pubDate>Tue, 17 Oct 2017 11:38:24 GMT</pubDate>
            <atom:updated>2017-10-03T12:59:37.536Z</atom:updated>
            <content:encoded><![CDATA[<p>Quick look at what data are inside Userfeeds Databases and what can be done with it.</p><p>(Not all data described bellow are already available. Systems to gather them are being actively developed.)</p><p>Lets start with most crucial data required by Userfeeds Platform to function properly.</p><h3>Blockchain data</h3><p>Blockchain data like accounts, token balances, token transfers etc are crucial for Userfeeds Platform ranking algorithms to function properly. Not only financial data are important but also what were behaviors of token holders, do they hold token for really long time or are they trading constantly with different tokens, all this information can be taken into account while calculating rankings.</p><p>Example of graph representing accounts and token transfers:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BVq8S1KmZs2WOyLQ7YD0-A.png" /><figcaption>Accounts and Asset Transfers</figcaption></figure><p>Blockchain information hold in Userfeeds Platform databases are:</p><h4>Accounts (Economic Identities)</h4><p>Accounts (or rather Public Keys), are treated as identifiers for so called Economic Identities — Identities that manage some economic value.</p><p>Userfeeds Database contains all accounts used in any transaction ever made on Etherum Blockchain (currently only Ethereum as we decided to start with it and expand later)</p><h4>Account Balances</h4><p>Except accounts, we gather asset (ETH &amp; ERC20) balance data for each account after each block. So you will be able to look at the data from perspective of given block.</p><h4>Asset (ETH &amp; ERC20) Transfers</h4><p>Along with Accounts we gather information on all transfers of ETH and ERC20 compliant tokens, we are not differentiating between those two as from our perspective transferring ETH or ERC20 token i a transfer of value between two parties, and this is crucial information to us.</p><p>(Again, we are gathering data from Ethereum blockchain first but the data structure inside our Databse is source/blockchain agnostic.)</p><h4>Aggregated Data</h4><p>We provide some basic aggregated data that are used with our built in algorithms.</p><p>Hold — Aggregated holding of given token over time</p><h3>Claims</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PO35g1WSOS7_e62S_JWl1Q.png" /><figcaption>Accounts, Asset Transfers and Claims (simple version)</figcaption></figure><p>Second most important data gathered in Userfeeds Database are <strong><em>Claims</em></strong>. They are glue connecting Economic Identities from blockchain with content present on the Internet (or anywhere else assuming content have proper identification method).</p><p>Claim is digital equivalent of pointing a finger at something. This requires for this something to have proper identifier that can be references in claim. For example URLs are quite nice identifiers, <a href="https://userfeeds.io/">https://userfeeds.io/</a> leads directly to current version of Userfeeds home page and assuming there will be no attacks or configuration issues it will lead there for quite some time. But URLs are not ideal that’s why claims don’t assume anything about their target, you could use IPFS hashes or magnet links or anything that you know how to resolve into content. No all identifiers need to make sense to everyone in order for one to use Userfeeds Platform. You could agree with couple of other people to use your secret resolver and still be able to use all functionality of Userfeeds Platform, you would only need to provide some Interface/App that would decode your identifiers into proper content.</p><p>Example Claim:</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/b9c901068da228557ce60c85809eead9/href">https://medium.com/media/b9c901068da228557ce60c85809eead9/href</a></iframe><p>A more complex example of claim used in <a href="http://linkexchange.io/">http://linkexchange.io/</a></p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/d100e0fc1685f6e276f771b4794997aa/href">https://medium.com/media/d100e0fc1685f6e276f771b4794997aa/href</a></iframe><p>And somewhat more complete graph representing two claims made by the same author:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Q6MKmAsVo9mgCoDjHO-6ZA.png" /></figure><p>Claims are the glue layer connecting blockchain information with content layers (like webpages). With this in place we can start looking at content layers (eg. youtube urls) from perspective of economic networks (token holders).</p><h3>What can be done with the data?</h3><h4>Content ranking</h4><p>Most basic functionality of Userfeeds Platform is to provide a way to run ranking algorithms on data gathered in Userfeeds Platform databases.</p><p>Most ranking algorithms intended use is to filter and sort content based on criteria passed to the algorithm.</p><p>One example of such algorithm would be to get all claims of type <strong><em>link </em></strong>and sort them according to sum of all token transfers (from one token) accompanying each claim. You could then display list of 5 links on your web page and earn tokens when people want to promote their links on your web page (this is a very simplistic explanation of how <a href="http://linkexchange.io/">linkexchange.io</a> works).</p><p>Another example of content ranking would be if you had you own token and a web page displaying images. Anyone with your token would be able to display images on this page but the order of images would be determined by how long and how much of your token those people hold.</p><p>Yet another idea would be to sort any links provided by holders of token X according to their token holdings. This could be displayed on web pages of mobile applications as news feed of information related to Token X.</p><p>Userfeed Platform already gathers this information and will provide algorithms that will allow those uses.</p><h4>Economic Friends</h4><p>Imagine that you could read news feed, much like you are doing on facebook, reddit or twitter but it would be generated not based on your social connections but economic ones.</p><p>Lets assume you are holding 5 kinds of tokens, Token A B C D and E. You hold 100A, 100B, 100C, 10D and 10E.</p><p>Now imagine an address that holds 120A, 100B and 80C. Your economic incentives are more or less aligned, but you don’t know this person. He/she/it might be using twitter/reddit/facebook but you have no way of knowing which accounts on those platforms are connected to this address (they could post their address on those platforms , but looking for this one entry is not so simple).</p><p>Would you be interested in reading information shared by this one person? Or aggregation of information shared by people holding similar tokens to yours? Or yourself sharing information to the people having similar token holdings?</p><h4>Networks of tokens</h4><p>Somewhat similar analysis of token holding as Economic Friends can be done with tokens themselves. By looking at addresses that hold token X and Y we can calculate what percent of them holds both tokens and how close those tokens are.</p><p>This information could be used to make recommendations of new tokens you might be interested in and their news feeds, or maybe the other way around, you could filter out from your news feed of token X all information from addresses holding token Y.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=79c57c72720f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/userfeeds-platform-data-overview-79c57c72720f">Userfeeds Platform: Data overview</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing LinkExchange powered by Userfeeds]]></title>
            <link>https://medium.com/userfeeds/introducing-linkexchange-powered-by-userfeeds-8cc8b4c3b6a8?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/8cc8b4c3b6a8</guid>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[attention-economy]]></category>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[ethereum]]></category>
            <dc:creator><![CDATA[Maciej Olpinski]]></dc:creator>
            <pubDate>Mon, 02 Oct 2017 13:52:54 GMT</pubDate>
            <atom:updated>2017-10-02T13:51:55.441Z</atom:updated>
            <content:encoded><![CDATA[<h4>’It’s like Google AdSense But With Tokens’.</h4><p><em>TL;DR: If you don’t want to read the article and just play with the demo widget just go to </em><a href="http://rinkeby.etherscan.io/"><em>http://rinkeby.etherscan.io</em></a><em> and click on the Ether icon in the sponsored link.Thanks to Etherscan for supporting our alpha! PS. Make sure to have Metamask installed with some Rinkeby test Ether to be able to bid on links.</em></p><p>At Userfeeds our mission is to help users allocate their attention more consciously and effectively in the increasingly noisy and competitive environments of the modern Web.</p><p>The core belief that underlies everything we do, is that the global economy is in the middle of a paradigm shift toward a new model where the most valuable scarcity is <em>human attention</em>. This shift has much more profound implications than most people recognise today and will transform the future of business models, governance, politics and even individual lifestyle choices.</p><p>Individuals and organisations that will most successfully navigate this transition are the ones who can understand this new economic reality earlier than others. And quickly adopt new mental models and technological tools to take advantage of new opportunities. The challenge that most will face is that our external economic environments and internal, “natural” biological impulses evolved to constantly satisfy a scarcity of information that no longer exists.</p><p>At Userfeeds, our goal is to:</p><ol><li>explore and evaluate mental models and heuristics designed for the new economy of attention scarcity</li><li>build blockchain-based software platforms that help users allocate their attention using these heuristics</li></ol><p>We look at <em>blockchains</em> as a communications technology that allows signaling of incentives between economic actors that have scarce attention to allocate. We think that in the nearest future, all attention allocation decisions (‘what I want to see and what I want to ignore’) will be based on the algorithms that use incentive alignment between sender and receiver as one of the key ranking signals.</p><h4>Apps, Developer Platform and Research on Attention Economics</h4><p>Since our funding announcement a couple months ago, we’ve been thinking a lot how to prioritize efforts given our resources, maturity of the blockchain technology and goals we want to achieve.</p><p>We made a decision to focus on 3 areas:</p><ol><li><em>end user applications</em> — <strong>LinkExchange</strong> which can be described as ‘Google AdSense For Tokens’ aimed at users, advertisers &amp; publishers in the crypto space that we built on top of the Userfeeds Platform.</li><li><em>developer platform</em> — <strong>Userfeeds Platform</strong> which is the platform for app developers that enables them to run signaling metaprotocols and ranking algorithms based on tokens. LinkExchange is the first product built on top of that platform.</li><li><em>research &amp; conceptual work</em> — <strong>theoretical work around <em>attention economics</em> </strong>that is foundational to both applications and the platform.</li></ol><p>All three areas are on different levels of abstraction — with LinkExchange being the most concrete and practical and the research work being the most abstract and related to fundamentals of attention economics. <br>Compared to our initial plans, we decided to build the initial applications ourselves (like the LinkExchange) rather than target 3rd party developers from day one. It allows us to test the underlying platform and showcase the examples of what can be built.</p><p>We’re super excited about LinkExchange and think it might be a new way of monetisation for the online publishing industry and the method for reinventing incentives between users, publishers and advertisers.</p><p>In the meantime, we’ll be releasing more information on the technical and architectural choices behind Userfeeds Platform and papers on the underlying attention economics.</p><h4>What is LinkExchange? — the elevator pitch</h4><p>LinkExchange is like ‘Google AdSense for token-based communities with incentive-based targeting mechanism’.</p><p>LinkExchange offers publishers in the blockchain space a native method of monetisation by allowing them to display sponsored links on their websites in exchange for Ether or any ERC20 token.</p><p>For advertisers, the token they use to transact with the publisher has a dual use case:</p><ul><li>it’s a medium of exchange and unit of account — just like USD or EUR they’d use in traditional ad networks.</li><li>but more importantly — it’s the <em>incentive-based</em> targeting mechanism.</li></ul><p>In other words, advertisers use the token owned by the community they want to reach with their message. Token is a method of signaling their alignment with token holders and being more attention-worthy than the ‘outsiders’. Transparency and open nature of the blockchain allows users to audit every single ad that is competing for their attention.</p><p>Token-holders can always see who is bidding for their attention, what token they’ve used to buy the link and all other details they might be interested in. All transactions are recorded on the Ethereum blockchain and are fully transparent and auditable.</p><p><strong>You can play with the demo widget today at: </strong><a href="https://rinkeby.etherscan.io/"><strong>https://rinkeby.etherscan.io</strong></a></p><h4>It’s all about incentive (mis)alignment</h4><p>Traditionally, advertisers used <em>keyword, behavioural or demographic</em> ad targeting methods.</p><p>While extremely effective, these methods require publishers or platforms to collect data about the users, in order to allow for more precise targeting. The more data about users they collect, the better targeting they can offer.</p><p>The challenge with this model is that interests of <em>users, advertisers and publishers</em> diverge quite quickly. Everyone is pulling in their own direction. Platforms have to silently collect more data into their private silos because that’s the only way to remain competitive. Users respond with ad-block limiting the amount of attention publishers can sell.<br>With <em>incentive-based</em> or <em>token-based</em> targeting, all three groups are incentivized to support each other by using the same token to exchange attention to capital.</p><p>For obvious reasons, this method can only work for a subset of advertisers who are interested in reaching holders of specific tokens. Also, the number of token-based communities is still small relatively to the number of communities on i.e. Facebook. But the hypothesis we want to verify soon is that for in the niche of token-based communities, LinkExchange can provide more value to all parties than Google AdSense or other 3rd party ad networks.</p><h4>How It Works?</h4><p>LinkExchange allows every Ethereum address to act as a decentralised advertising network. Just like with Google AdSense, the publisher configures the widget and embeds it on a website they control. Potential advertisers can pay to display ads in this widget.</p><p>The difference lies in how everything works under the hood.</p><p>In LinkExchange, the publisher specifies the Ethereum address that identifies the source data feed for the ads. We call that Ethereum address — a Userfeed address.</p><p>All links sent by advertisers to that Userfeed address are added to the data feed that will be ranked by the algorithm in the next steps.</p><p><em>Technical note: ‘Sending links to the Userfeeds address is done by our proxy contracts that forwards the money to the Ethereum address specified by the publisher and generates an event log with a link metadata (we call it a ‘claim’). The Userfeeds Platform then aggregates and parses the event logs using the algorithm selected by the publisher.</em></p><p>The algorithm can contain arbitrary ranking rules and its output is the ranking of the links.</p><p>To prevent spam and abuse the publisher can turn on the whitelisting option that allows them to moderate the ranking and only display links that were explicitly reviewed and accepted by them.</p><p>The publisher can additionally set how many top links from the ranking will be displayed in the widget. We call this number — a number of ‘slots’.</p><p>For example: there might be hundreds of whitelisted links but if the number of ‘slots’ is 10 then only 10 top links will have a chance of being displayed.</p><p>The links that are high enough in the ranking and make it to the slot are assigned a <em>probability score</em> which determines their probability of being displayed on the next impression of the widget.</p><h4>Pay-per-Probability model</h4><p>In the Pay-per-Probability model that is central to LinkExchange, the advertiser uses the token transfer to the address specified by the publisher to increase probability of their link being displayed in the widget <strong>on the next page view of publisher’s site</strong>.</p><p>The probability score is calculated using the algorithm specified by the publisher and the amount of tokens sent to an address is just one of the variables. The publisher might choose to use other variables such us as time, to modify the probability calculation to influence incentive structure in their link widget.</p><p>So depending on the widget’s expiration date (the publisher can declare how long they intend to maintain the widget) and expected traffic, the advertiser can place their bids.</p><h4>But… does this mean more advertising that everyone hates?</h4><p>On the surface LinkExchange widgets look just like the regular advertising widget so where’s the hype and do we really need more ads?. In reality, it’s like looking at the electric and internal combustion engine car.</p><p>They might look the same externally but their engineering, design, economics and business models are worlds apart.</p><p>The idea behind LinkExchange is to reimagine incentive structures behind ad placements that we’ve learned to hate so much. We use the same familiar UX of ad placements but feed them with data coming from the open data layer (the blockchain) with token-based economics.</p><p>The distinction between content and advertising becomes blurry and is dependent on the incentives of the reader.</p><h4>Are you a crypto-publisher? Would you like to join the pilot?</h4><p>We’re still polishing up the product but <strong>if you’re a publisher that serves token-hodling audiences and would like to pilot LinkExchange — please let us know (via the contact form at userfeeds.io or in the comments)</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8cc8b4c3b6a8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/introducing-linkexchange-powered-by-userfeeds-8cc8b4c3b6a8">Introducing LinkExchange powered by Userfeeds</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Userfeeds got funded! Here’s how we plan to bring ‘skin in the game’ back to discovery algorithms.]]></title>
            <link>https://medium.com/userfeeds/userfeeds-got-funded-heres-how-we-plan-to-bring-skin-in-the-game-back-to-discovery-algorithms-71f7afcb886d?source=rss----9c0a794026bf---4</link>
            <guid isPermaLink="false">https://medium.com/p/71f7afcb886d</guid>
            <category><![CDATA[algorithms]]></category>
            <category><![CDATA[fake-news]]></category>
            <category><![CDATA[ethereum]]></category>
            <category><![CDATA[bitcoin]]></category>
            <category><![CDATA[blockchain]]></category>
            <dc:creator><![CDATA[Maciej Olpinski]]></dc:creator>
            <pubDate>Thu, 08 Jun 2017 14:10:10 GMT</pubDate>
            <atom:updated>2017-05-03T09:32:50.072Z</atom:updated>
            <content:encoded><![CDATA[<p><em>This is a longer, follow-up post to the </em><a href="https://techcrunch.com/2017/05/03/userfeeds-aims-to-stop-fake-news-by-linking-the-blockchain-to-social-content/"><em>Techcrunch article with our funding announcement.</em></a></p><p>In 2017, no one doubts anymore that the ‘age of algorithms’ has arrived. The economic and political power of content ranking algorithms was brought to the mainstream attention during the last presidential election in the US. Issues like ‘fake news’, the opacity of discovery algorithms and centralisation of advertising revenues among dominant platforms are now being publicly discussed even in the non-tech circles.</p><p>At Userfeeds, we look at these issues in the context of a wider systemic economic change that’s happening now in the digital world. With the exponential growth of information sources and free digital distribution, <strong>human attention became the scarcest and most desired asset of the online economy.</strong></p><p>Aggregation and control of global attention flow are the #1 online businesses because wherever attention flows money follows. The multi-billion dollar valuations of companies such as Google or Facebook result from their ability to attract, package and sell attention for dollars.</p><h3>Incentives Behind Algorithms Shape Our Reality</h3><p>The abundance of choices forces us to rely on algorithms to determine what’s relevant and ‘true’. It’s inevitable that these algorithms will become even more important in shaping our perceptions in the coming years.</p><p>The issue is that economic incentives behind these algorithms are opaque and not well understood.</p><p><strong>In our view, such diverse problems as ‘fake news’, spam filtering, ad targeting, ad-blocking, newsfeed censorship and moderation are essentially information ranking problems. </strong>But companies operating algorithms behind these rankings are not neutral and have their own economic goals and incentives they optimise for.</p><h3><strong>We Have To Bring ‘Skin In The Game’ back to the Attention Economy.</strong></h3><p>Competition for attention in the current environment has a strong asymmetry that favours platforms and content producers at the expense of the users.</p><p>What do we mean by that? We already pointed out that there’s a fixed supply of attention that everyone competes for. For us users, whatever we pay attention to has a cost — we won’t get that attention back. In addition to that, <strong>once we let information enter our minds it will stay there and affect our thoughts and future actions.</strong></p><p>Even if we try to evaluate information and decide it’s untrustworthy or misleading it is still a mental cost we have to absorb. The only way to avoid that cost is not to see that information in the first place.</p><p>The <strong>ranking algorithm should optimise users attention</strong> and prevent them from seeing the misleading information.</p><blockquote>The question is: what the algorithms optimise for?</blockquote><p>Unfortunately, the current ecosystem has a built-in <a href="https://en.wikipedia.org/wiki/Principal%E2%80%93agent_problem">‘principal-agent’ problem</a>. Platforms and content producers benefit from showing you things and putting them into your mind. The attention you provide and the data trail you leave will immediately benefit Facebook and the content producer that got your attention through Facebook.</p><p>Your attention is immediately exchanged to dollars through advertising and the data you leave behind improves Facebook. But the costs of seeing bad quality information will be absorbed by you. Potential consequences of that exposure will often be hidden and delayed in time.</p><p>In a way, incentives of Facebook (and other media platforms) are similar to incentives of Coca-Cola. Coca-Cola generates cash from sugary water sales but has no downside of absorbing health costs from overconsumption of sugar. In fact, for many years the risks of sugar consumption were not recognised, and because they were delayed in time, it was hard to link them to sugary drinks.</p><blockquote>As an early information society, we still don’t recognise dangers of letting other people with opposing incentives to put images and thoughts in our heads at no cost.</blockquote><p>And in the current environment, producing toxic information that is viral is essentially a free option on attention. By free option, we mean a situation where information is free or almost free to produce but has a potential to generate lots of attention dollars if it spreads virally.</p><p>Everyone benefits apart from the ‘attention suppliers’. The platform gets the data. Content producers get eyeballs and traffic. Both of which are instantly monetized. Users, however, receive a short-term dopamine boost from consuming low-quality content (which is often designed to by emotionally engaging, confirm their previous beliefs, stimulate outrage) but don’t recognise the long-term opportunity costs associated with it.</p><p>The concept of ‘skin in the game’ as <a href="https://arxiv.org/pdf/1308.0958.pdf">explained by Nassim Taleb</a> means that if you can expose others to harm you also should be exposed to some of this harm yourself. It’s all about symmetry. If there’s no ‘skin in the game’ in the system, it will blow up at some point. Any system where one party keeps all the upside, and another absorbs the downside is doomed to fail.</p><p>The best recent example of that is the financial crisis of 2008, where the upside from risky instruments was kept by the bank managers, but losses were transferred to the public.</p><p>We think that the current economics of the online media landscape is set up in the similar fashion.</p><blockquote>The upside from aggregating and trading attention is captured by a few players but the downsides and delayed risks from surfacing misleading content are externalised to the users.</blockquote><h3>Show me your tokens, and I’ll tell you what your beliefs are.</h3><p>Cryptocurrency innovations like Bitcoin and Ethereum are not usually linked to online publishing and advertising but rather perceived as financial innovations.</p><p>But at their core, these technologies are built on ‘skin-in-the-game’ principles and symmetry in decentralised systems.</p><p>The entire concept of ‘mining’ in the world of cryptocurrency is nothing more than a mechanism proving that someone has sacrificed some economic good (in this case — electricity) to receive a reward from a network in the form of new coins. It’s ‘skin in the game’ rule applied to token allocation.</p><p>No one cares if you say you support Bitcoin. You prove your support with ‘proof-of-work’.</p><p>What if we applied the same idea to <strong>allocating human attention?</strong></p><blockquote>What if ‘attention seekers’ had to back information they promote with similar ‘proofs-of-sacrifice’ instead of easily gamed likes or votes?</blockquote><p>What if we could bring symmetry to online relationships where every time someone wants your attention they’d have to prove what incentives they have, and they’ve had to sacrifice something to make you pay attention to them?</p><p>The concept of digital tokens on platforms like Ethereum, allows us to design systems where tokens can be used for signalling relevance of information to communities owning these tokens.</p><h3><strong>‘Tokenized’ Ranking Algorithms</strong></h3><p>At Userfeeds, we develop the engine that will support many ‘tokenized ranking algorithms’.</p><p>By incorporating token-based signals into information ranking algorithms, we can install ‘skin in the game’ filters for our attention.</p><p>Today, when you see an ad on the Web, you see it because somebody created a ranking signal by paying dollars to the advertising network which you probably don’t own.</p><blockquote>Advertising platforms are essentially platforms for ranking algorithms that use dollars or euros as their primary ranking mechanism.</blockquote><p>If you transfer dollars to me, I’ll boost your position in the search results — that’s the deal with the AdWords platform. Using this simple but powerful value proposition, Google makes its money.</p><p>How would the economics behind advertising change if owning a token would be a prerequisite for getting the attention of a targeted community?</p><h3>Send Signals With Your Tokens.</h3><p>Tokens are stored on the public ledger, visible and accessible for everyone. Token holders can already send ranking signals by signing arbitrary messages with keys corresponding to their token holding.</p><p>What we’re missing is the infrastructure that could interpret such signals, construct interaction graphs and apply algorithms on top of them to build discovery rankings.</p><p>Having such infrastructure would allow every community of token holders to allocate attention and discover content using signals coming from the inside of the network. In other words, the token would become a frame of reference for ranking information (and allocating attention) for its community.</p><p>Our first product, the Userfeeds Engine will allow everyone to generate rankings based on blockchain-based and off-chain signals.</p><h3>It’s Not Only About How Many Tokens You Have</h3><p>A common feedback we receive when describing the idea is that it leads to large token holders having more voice in the community.</p><p>It couldn’t be further from what we’re building. While it’s possible to create simple rankings based purely on token holdings we expect a whole range of other algorithms that will take other signals into account.</p><p>For example, due to the open nature of the blockchain, we can use signals such as duration of holding. You could create a ranking where long-term token holders, who proved commitment to the network receive boost in rankings. In other cases, recent activity of a token holder could be a key ranking factor. The algorithm design space is infinite here.</p><p>Another interesting use case could be a ‘proof-of-donation’ based ranking. Many websites display their BTC or ETH tipping addresses, but today there’s not much incentive for visitors to contribute tips. A simple application built on top of the Userfeeds Engine could allow donors to display messages on the website as a reward for a donation.</p><p>There are many other examples which we’ll explore in the future blog posts.</p><h3>Why We’ve Chosen To Raise A Private Seed Round Instead of a Token Sale.</h3><p>One might ask then, why did we decide to raise a private seed round instead of a public token sale if we are believers in a ‘tokenized’ digital economy.</p><p>Indeed, the token sale option was on the table, but we’ve realised that we still needed funds to build proper proof-of-concepts and fully explore the idea before running a token sale.</p><p>Fortunately, we’ve met investors who understand the space well and were excited about the problem to back us financially on our journey. We’re grateful to have them on board. Their support provides us with time and funding to make the vision more concrete before we open up to stakeholders from the community.</p><p>Once we’re confident with the early results, we will definitely explore the token sale option again.</p><p>Stay tuned!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=71f7afcb886d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/userfeeds/userfeeds-got-funded-heres-how-we-plan-to-bring-skin-in-the-game-back-to-discovery-algorithms-71f7afcb886d">Userfeeds got funded! Here’s how we plan to bring ‘skin in the game’ back to discovery algorithms.</a> was originally published in <a href="https://medium.com/userfeeds">userfeeds</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>