<?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[Thingdoms - Medium]]></title>
        <description><![CDATA[Thingdoms. - Medium]]></description>
        <link>https://medium.com/thingdoms?source=rss----eead5e91a1a9---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Thingdoms - Medium</title>
            <link>https://medium.com/thingdoms?source=rss----eead5e91a1a9---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 06:06:44 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/thingdoms" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[The Samples Airdrop — It’s all very technical]]></title>
            <link>https://medium.com/thingdoms/the-samples-airdrop-its-all-very-technical-46c415872662?source=rss----eead5e91a1a9---4</link>
            <guid isPermaLink="false">https://medium.com/p/46c415872662</guid>
            <dc:creator><![CDATA[Eoghan]]></dc:creator>
            <pubDate>Sun, 13 Mar 2022 17:35:48 GMT</pubDate>
            <atom:updated>2022-03-15T16:16:42.055Z</atom:updated>
            <content:encoded><![CDATA[<h3>The Samples Airdrop — It’s all very technical</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*Eyrlh4S5ogpwnOoK" /><figcaption>Tiger Stripes</figcaption></figure><p>It’s been almost exactly 3 months since we released the Things of Thingdoms. We’ve now airdropped Samples from the Thing Lab to all owners of a Thing.</p><p>We wanted to provide a fair distribution so went with an approach which would ensure randomness.</p><p>This article goes through the methodology we used to try and ensure this.</p><h3>Snapshot</h3><p>We started by taking a snapshot on 6th March at 11pm GMT. This gave us a wallet address for all 10,000 Things at that time. Given that the tokens have sequential ids from 1–10,000, this gave us an ordered list of wallet addresses with duplicates for any address that owned more than 1 Thing.</p><h3>10,000 Samples</h3><p>We wanted <strong>5</strong> types in different proportions in a list of <strong>10,000</strong> samples. We went with:</p><ul><li><strong>4430</strong> of Sample T</li><li><strong>3500</strong> of Sample H</li><li><strong>1800</strong> of Sample I</li><li><strong>250</strong> of Sample N</li><li><strong>20</strong> of Sample G</li></ul><p>We stored these in those proportions in that order in a big list using the ids:</p><ul><li><strong>0</strong> for T</li><li><strong>1</strong> for H</li><li><strong>3</strong> for I</li><li><strong>2</strong> for N</li><li><strong>4</strong> for G</li></ul><p>There is no mistake in the order of the ids.</p><h3>Shuffle</h3><p>We then shuffled this list using pseudo-randomness. What this means is that although the results appear random, they are in fact repeatable and deterministic. This means that if you use the same <a href="https://en.wikipedia.org/wiki/Random_seed">seed number</a> as we did, you would get the same order of sample type ids</p><p>We chose a seed number of <strong>69420</strong>.</p><h3>Verifiably Random starting point</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*tnvO3cv_jWalcj5W.png" /><figcaption>Seems fair</figcaption></figure><p>The last step was to use <a href="https://etherscan.io/address/0xc253f3C4eCDD5490AEDc43ab40D93e4AA4a17CbA#code">our deployer contract</a> to request a verifiably random starting point in the list of sample types. The video below explains how we used Chainlink for this task.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FeRzLNfn4LGc%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DeRzLNfn4LGc&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FeRzLNfn4LGc%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/1816abe48581b41e07fad6fadd561c8b/href">https://medium.com/media/1816abe48581b41e07fad6fadd561c8b/href</a></iframe><p>The proof of our use of this approach can be seen on the blockchain. We request the random starting point in <a href="https://etherscan.io/tx/0x5443a2e00e63aeeb442e9123171e7f4d155af836bdcb545faf743cc1176c291c">a single transaction</a>. This requires Chainlink to then do its bit and come back to us once its got the response. In our case this took 1 hour 15 minutes to return a starting index of 4659! It is now stored on the deployer contract under the “startIndex” public property for anyone to see and verify.</p><h3>Final list</h3><p>We then took this starting point and used this to determine which element in the sample type list would be at the start of the list. The rest of the list was in the same order, looping back round to the start when it reached the old end point to finish at a new endpoint 1 place before the new starting point.</p><p>This new list could now be used to match up with the ordered list of wallet addresses gathered from the snapshot. The first sample type in the list is assigned to the first address, the second sample type to the second address, and so on.</p><h3>Reducing transactions</h3><p>Because we’re using an ERC-1155 contract for Thing Lab we can stack tokens that are of the same type. This means that we have the opportunity to reduce the number of transactions below 10,000 if any wallets in the list have more than one of a specific Sample type.</p><p>We aggregated the types for each address so that we could reduce the size of the list to <strong>6278 transactions</strong>.</p><h3>Deployer</h3><p>Our deployer contract was set up so that it could receive 3 equally sized input lists of addresses, sample type ids, and quantities. These would be used to wrap up many transfers into a single transaction on the deployer contract. Unfortunately we couldn’t wrap them all up in a single transaction because the Ethereum network has a maximum amount of gas that can be used in a single transaction and this would exceed that.</p><p>Therefore we created 32 chunks of up to 200 transfer transactions which would be fed in, requiring only 32 calls to the deployer contract.</p><h3>Learnings</h3><p>There have been some lessons learnt in the process of doing this airdrop. The most important take-aways are:</p><ul><li>Select appropriate gas limits for transactions — too low and the transaction will fail with a gas cost; too high and miners will deprioritise the transactions, leaving them pending for long periods of time.</li><li>Check all wallet addresses are capable of receiving ERC1155 tokens beforehand. All externally-owned accounts can receive them but contracts can only receive them if they implement the <a href="https://eips.ethereum.org/EIPS/eip-1155#erc-1155-token-receiver">ERC1155-receiver interface</a>.</li></ul><h3>Some Data</h3><ul><li><a href="https://docs.google.com/spreadsheets/d/e/2PACX-1vRvL4p14tL8IpXgw-Q6qysZ9sJx7Dvu19kXtRs_S7l6WkuBokJNMgwaJ9eKmr5A2WLNjT7u06GIWskg/pubhtml">Mapping of Thing id to sample ids</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=46c415872662" width="1" height="1" alt=""><hr><p><a href="https://medium.com/thingdoms/the-samples-airdrop-its-all-very-technical-46c415872662">The Samples Airdrop — It’s all very technical</a> was originally published in <a href="https://medium.com/thingdoms">Thingdoms</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Samples…]]></title>
            <link>https://medium.com/thingdoms/samples-eda32c1f9e2c?source=rss----eead5e91a1a9---4</link>
            <guid isPermaLink="false">https://medium.com/p/eda32c1f9e2c</guid>
            <dc:creator><![CDATA[Thing]]></dc:creator>
            <pubDate>Sat, 05 Mar 2022 17:58:44 GMT</pubDate>
            <atom:updated>2022-03-06T17:43:04.442Z</atom:updated>
            <content:encoded><![CDATA[<p>If you weren’t aware by now, the Things went to space. Yes, that’s right. We sent our beloved little Things to space on a fact finding mission.</p><p>If you haven’t seen the short film, be sure to check it out below.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F684445393%3Fh%3D054b1b708c%26app_id%3D122963&amp;dntp=1&amp;display_name=Vimeo&amp;url=https%3A%2F%2Fvimeo.com%2F684445393&amp;image=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F1387264670-4084d87b07537f48cf0f945c71ac9245bbaf71d15e5bc71af340d166028cfe2c-d_1280&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/e900cbdbf05ebd0b090eab534bde6568/href">https://medium.com/media/e900cbdbf05ebd0b090eab534bde6568/href</a></iframe><p>The mission was for the most part successful. The Things showcased the full collection 100,000ft up into the stratosphere, but more importantly they also successfully intercepted a passing meteor shower, taking SAMPLES from it.</p><p>However not everything went to plan. Their ship — the Thingdoms Explorer — was knocked into orbit. Contact has been made with the Things, and we have been assured they are doing their best to navigate themselves home with the Samples.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bW-B0wMP7qEwzrt6RV2WLw.png" /><figcaption>Space Things…</figcaption></figure><p>In preparation for their impending return, there will be a wallet snapshot taken of all Thingdoms owners on 6th March 2022.</p><blockquote><strong><em>WHAT WE KNOW:</em></strong></blockquote><ul><li><strong>5 different types of samples have been acquired.</strong></li><li><strong>Each type of Sample will have a different rarity and different aesthetic appearance.</strong></li><li><strong>If you own 1 Thing at the time of the snapshot, you will be airdropped 1 sample. If you own 69 Things at the time of the snapshot, you will be airdropped 69 Samples, and so on.</strong></li><li><strong>All Samples will use ERC-1155 token standard and will live on the Ethereum blockchain.</strong></li><li><strong>A wallet snapshot will be taken on March 6th at 11pm GMT / 3pm PST / 5pm CST / 6pm EST</strong></li><li><strong>Samples will be airdropped in the days after the snapshot, optimising for gas but also ensuring strong readiness.</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xjr7dHWvkqG7R1-sKwWVnw.gif" /><figcaption>Five different types of samples have been acquired. Each type of Sample will have a different different rarity and different aesthetic appearance.</figcaption></figure><p><strong>At present, we have no idea what the Samples do.</strong></p><p><strong>We think the Things acquired them simply for their visual aesthetic — they do seem to be attracted to colourful stuff — but with further testing in the Thing Lab over the coming months, we hope to uncover their true significance.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=eda32c1f9e2c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/thingdoms/samples-eda32c1f9e2c">Samples…</a> was originally published in <a href="https://medium.com/thingdoms">Thingdoms</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>