<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>ENS</title>
        <link>https://paragraph.com/@ens</link>
        <description>undefined</description>
        <lastBuildDate>Sun, 05 Apr 2026 21:42:13 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>ENS</title>
            <url>https://storage.googleapis.com/papyrus_images/69512a78d2bc8b2ac05f5638878909351c04a97db4b8722fbb70df8e1e48f4b6.png</url>
            <link>https://paragraph.com/@ens</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[ENS Web Update July 2023]]></title>
            <link>https://paragraph.com/@ens/ens-web-update-july-2023-2</link>
            <guid>yVj31OjYwczTy3ewlgTG</guid>
            <pubDate>Tue, 15 Aug 2023 23:38:14 GMT</pubDate>
            <description><![CDATA[Public roadmapWe now have a public roadmap that will keep track of completed, in progress and upcoming items. Check the ENS Labs roadmap.ENS roadmapLedger and Argent wallet supportExactly what it says on the tin!Ledger and Argent supportSmaller ImprovementsThe ENS Manager App will now display the grace period in the “more” tab:Grace periodUsers can now add their Telegram handle to their profile:Telegram handle in profileImprovements to the way the manager app handles canceled and replaced tra...]]></description>
            <content:encoded><![CDATA[<h2 id="h-public-roadmap" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Public roadmap</h2><p>We now have a public roadmap that will keep track of completed, in progress and upcoming items. Check the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.domains/roadmap">ENS Labs roadmap</a>.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1765d9a2814bf2da21ea7699f3f21153d5bb71ca15797e62336c6c68b17bbfc9.png" alt="ENS roadmap" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">ENS roadmap</figcaption></figure><h2 id="h-ledger-and-argent-wallet-support" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Ledger and Argent wallet support</h2><p>Exactly what it says on the tin!</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/eec3db43a686171e149eb247c65400e17869aa08bb3206e2a0f1ddf77ca0479c.png" alt="Ledger and Argent support" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Ledger and Argent support</figcaption></figure><h2 id="h-smaller-improvements" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Smaller Improvements</h2><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.ens.domains">The ENS Manager App</a> will now display the grace period in the “more” tab:</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2e97a049cbd76cab3c417a44429badab14c6554913a6b812e224079e449fae6d.png" alt="Grace period" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Grace period</figcaption></figure><ul><li><p>Users can now add their Telegram handle to their profile:</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7bd3c06f62d7cfe734a65ed5b86ba969cc4d1dd3145133cdd89fb14994b8957a.png" alt="Telegram handle in profile" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Telegram handle in profile</figcaption></figure><ul><li><p>Improvements to the way the manager app handles canceled and replaced transactions, particularly while the app is closed</p></li><li><p>Other updates:</p><ul><li><p>Updated <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.domains/about">ENS Labs team page</a> with new members</p></li><li><p>Deployed new Universal resolver</p></li><li><p>Deployed ENS contracts to Sepolia testnet</p></li></ul></li></ul><h3 id="h-new-ens-blog-sneak-peek" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">New ENS blog sneak peek</h3><p>While mirror is a great platform, and we will most likely continue to publish here, we felt the need to host our own blog in order to organise all of our content into one place. Additionally this will allow us to have more control over the look and feel. As well as adding in new features such as making it very easy to search through ENS content, this new site will include additional content such as podcasts and town hall meetings. Take a sneak peek <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.ens.domains/">here</a>.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b5ccb5d2cabf22da34e907808165847132a148f6bce13fe12a8a335927ea20bd.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-ensjs-updates" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">ENSjs Updates</h3><p>ENSjs is functionally complete. We are now mostly working on making the library stable, and ensuring it works well in different environments. Keep track of progress <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ensjs-v3/pull/136">here</a>.</p><h3 id="h-other-updates-coming-soon" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Other Updates Coming Soon</h3><ul><li><p>A deep dive on Etherscan implementing C# ENSIP-15 library which helps handle ENS names with Zero Width Joiners and Unicode.</p></li><li><p>A technical rundown and progress update of ENS on L2s</p></li></ul><h2 id="h-bug-fixes" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Bug fixes</h2><ul><li><p>Transaction modals will close if the account or chain is changed</p></li><li><p>Users with ‘$’ in their name can now edit their avatar</p></li><li><p>Parent owner can now delete a subname when the parent is wrapped and the child is unwrapped</p></li><li><p>Fixed issue where setting resolver to 0x00 would show wildcard label for a few seconds after updating</p></li><li><p>Fixed issue where emoji names temporarily showed graph sync error message</p></li><li><p>Fixed issue where emoji names were illegible on registration success screen</p></li><li><p>Fixed issue where Chinese characters were displaying incorrectly on transaction progress bar</p></li></ul>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
        </item>
        <item>
            <title><![CDATA[ENS Web Update June 2023]]></title>
            <link>https://paragraph.com/@ens/ens-web-update-june-2023</link>
            <guid>Qz5OxmUcQAr8PU6QYNNQ</guid>
            <pubDate>Fri, 14 Jul 2023 10:09:42 GMT</pubDate>
            <description><![CDATA[GM! We trust you&apos;re making the most of the summer season. Here at ENS we&apos;ve been doing the same, taking a breather after the successful rollout of v3. This month our focus has primarily been UX pattern modifications and bug fixes. We consider it crucial to address these issues in V3 before progressing to the development of more advanced features. This approach is largely influenced by The Joel Test.Comprehensive overhaul of primary name flowWe&apos;re excited to introduce our revamp...]]></description>
            <content:encoded><![CDATA[<p>GM! We trust you&apos;re making the most of the summer season. Here at ENS we&apos;ve been doing the same, taking a breather after the successful rollout of v3. This month our focus has primarily been UX pattern modifications and bug fixes. We consider it crucial to address these issues in V3 before progressing to the development of more advanced features. This approach is largely influenced by <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/">The Joel Test</a>.</p><h2 id="h-comprehensive-overhaul-of-primary-name-flow" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Comprehensive overhaul of primary name flow</h2><p>We&apos;re excited to introduce our revamped primary name setting flow. Accessible from the settings page, the Manager App will now display a broader range of names. Unlike the previous version, which only listed names with an ETH record matching your wallet address — the updated flow now includes all potentially valid names, regardless of their ETH record or resolver status. This means you can now manage or own a name without an ETH record or a resolver. The system now efficiently identifies the most gas-effective method to set your primary name, eliminating the need for multiple app flows.</p><p>You can read more about it in our UX Lead Domico.eth&apos;s <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/domicoeth/status/1671267907345747969">Twitter thread</a>.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/72203d7be5c52ffe987b9d404beecec95e29cf4d04c4e997c8785a67572c7901.png" alt="Updated primary name flow" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Updated primary name flow</figcaption></figure><p><strong>Key benefits for users include:</strong></p><ul><li><p>Expanded list of potentially valid names: No longer limited to names with an ETH record matching your wallet address.</p></li><li><p>Streamlined process: Setting a primary name now requires a single flow, regardless of the name&apos;s ETH record or resolver status.</p></li><li><p>Optimized transactions: The app maps out all necessary steps, checks the name, resolver, and registry, and skips any unnecessary steps, reducing gas costs.</p></li><li><p>Ability to unset primary name: Users can now remove their primary name directly within the app, with clear explanations of the implications.</p></li><li><p>Community-driven improvements: These enhancements were made in response to valuable user feedback, continuing to demonstrate our commitment to creating impactful solutions based on user needs.</p></li></ul><h2 id="h-additional-manager-app-improvements" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Additional manager app improvements</h2><ul><li><p>Add primary name tag to profile, to make it clearer to the user when they are looking at their primary name.</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/095a45cba9ec5f5c470b53c18bbe9401c2c51219613cf073a3267e848ee1f429.png" alt="Primary name tag" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Primary name tag</figcaption></figure><ul><li><p>App will now show if resolver is coming from a wildcard lookup</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7a9ff9594954e5d7bb1dbc0b6a5a7eb1f2dd45a3211cf1443318a312d1b2137d.png" alt="Wildcard tag" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Wildcard tag</figcaption></figure><ul><li><p>Suppressed the &apos;latest resolver&apos; warning for unwrapped names</p></li><li><p>Use multicall during registration more intelligently, improving gas efficiency</p></li><li><p>Update app to support WalletConnect v2</p></li></ul><h2 id="h-bug-fixes" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Bug Fixes</h2><ul><li><p>Manager app now works in mobile (iOS) Metamask, Trust Wallet and Coinbase in-app browsers</p></li><li><p>Added registration fee buffer to protect against ETH price fluctuations</p></li><li><p>Set gas fee to 0 during gas estimation for transactions, this allows us to get more detailed error messages</p></li><li><p>Fixed issue where users on Firefox would be directed to the chrome store to download Metamask (upstream fix)</p></li><li><p>Made external nav links open in a new tab/window</p></li><li><p>Edit records modal now displays correctly on iPhone 8 (and other similarly sized screens)</p></li><li><p>Fixed support for Safe transactions</p></li><li><p>Allow abi records to be deleted from the advanced editor</p></li><li><p>Changing network no longer disconnects the app</p></li><li><p>Fixed some issues with the premium price chart inputs</p></li><li><p>Small iPhone and iPad layout tweaks</p></li><li><p>Stopped showing &apos;Edit Profile&apos; button when the resolver is set to 0x00 and the ability to change the resolver has been burned</p></li></ul><h2 id="h-ongoing" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Ongoing</h2><p>Work on ensjs version 3 is also ongoing. It has been refactored to use <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://viem.sh/">viem</a> which has allowed us to simplify the codebase. You can checkout the progress <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ensjs-v3/pull/136">here</a></p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
        </item>
        <item>
            <title><![CDATA[ENS Web Update April/May 2023]]></title>
            <link>https://paragraph.com/@ens/ens-web-update-april-may-2023</link>
            <guid>cGeIEuW0Yab5Ar0jo63Q</guid>
            <pubDate>Tue, 13 Jun 2023 04:57:01 GMT</pubDate>
            <description><![CDATA[This is the first in a series of monthly updates so do check back every month. This first post is a jumbo edition, encompassing the past two months of work.Version 3 ReleaseVisit the app here.https://app.ens.domains/nick.ethWhy is the current version of the app known as v3? Before the previous version, there was a lesser-known v1 version of the manager app. Check it out! It only works with names registered before 2019. If you didn’t register a name before then, try using arachnid.eth or jeffl...]]></description>
            <content:encoded><![CDATA[<p>This is the first in a series of monthly updates so do check back every month. This first post is a jumbo edition, encompassing the past two months of work.</p><h3 id="h-version-3-release" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Version 3 Release</h3><p>Visit the app <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.ens.domains/nick.eth">here</a>.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c198c1eb76713b23eb695f80899dd54a31d8ecbdf88bda2b09287f742d51d64f.png" alt="https://app.ens.domains/nick.eth" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://app.ens.domains/nick.eth</figcaption></figure><p>Why is the current version of the app known as v3? Before the previous version, there was a lesser-known v1 version of the manager app. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ensmanager.surge.sh">Check it out!</a> It only works with names registered before 2019. If you didn’t register a name before then, try using <code>arachnid.eth</code> or <code>jefflau.eth</code>.</p><p>For the dev team, the release also marked the soft launch of our <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ensjs-v3">ENS utility library (ENSjs) rewrite</a> and our design system <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://thorin.ens.domains/">Thorin</a>.</p><p>There are too many improvements to go over here, and so we created a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/taytems.eth/0EDU9u4zItawHZdoQmJN0evj7UZLAdYepR1Yz2oADP8">dedicated post</a> to discuss them in detail.</p><h3 id="h-email-reminders-with-earnifi" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Email reminders with Earnifi</h3><p>We’ve partnered with <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://earni.fi/">earni.fi</a> to bring you expiry reminders via email. These reminders will work for any name you are interested in, and you will get a reminder one month, one week, and one day before expiry. Simply navigate to the ‘more’ tab on any name and click ‘Remind me’ as shown below. You’ll be asked to provide the email address you would like the reminders to be sent to, and once you click the confirmation email in your inbox you’ll be all set.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/05e73ae2b85eacc137edd5964119e6e51c71bf93674d97e3114980ef276bd7f9.png" alt="Earni.fi reminders" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Earni.fi reminders</figcaption></figure><p>As part of this update, we replaced dropdowns on mobile with &apos;Action Sheets&apos; to provide a better user experience.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2c528cace26f3934af988659a331c30f66aaf2f95b76b30a8bad6d8b2a933879.png" alt="Action Sheet" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Action Sheet</figcaption></figure><h3 id="h-wrapping-and-unwrapping-names" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Wrapping and unwrapping names</h3><p>We may have got a bit over excited about the NameWrapper, after release it started to become clear that many users did not feel the need to wrap their names and some people wanted to be able to unwrap them. This is likely because support for wrapped names hasn’t been added to many services in the broader ecosystem, and so users are likely to see errors on other platforms at the moment when trying to view their wrapped names. We still believe that in the future almost every name will be wrapped, but reaching that goal is also about education and community outreach.</p><p>In the manager app we are treating it more as an advanced feature for now. You’ll find the ability to wrap and unwrap a name in the ‘More’ tab, as well as info on the state of the name as it relates to wrapping.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b9cae4ca39f86f91ed3d7ab2d85395eeac606312b5ed2cf42cbae341eb8e8206.png" alt="Dedicated area for name wrapping/unwrapping" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Dedicated area for name wrapping/unwrapping</figcaption></figure><h3 id="h-transaction-in-progress-indicator" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Transaction in progress indicator</h3><p>If you have a transaction in progress, you will now see a progress indicator (the blue dot) in key areas in the app.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b3cfaf4f5a7444dbfe94cbd3618a8732788a890c3313f9e4ddc8396aedb7f911.png" alt="Transaction progress indicator" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Transaction progress indicator</figcaption></figure><h3 id="h-legacy-favourites" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Legacy Favourites</h3><p>We intend to release a new and improved version of favourites in the coming weeks, however initially we did not provide a way for users to continue to view favourites that they had already added via v2. If you have legacy favourites, a link to them will show up in the navigation bar, and you can also navigate to them directly <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://app.ens.domains/legacyfavourites">here.</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8244f848ec60f7a3575ab47737a62837d5a56691bb877042378c76994a92df6a.png" alt="https://app.ens.domains/legacyfavourites" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://app.ens.domains/legacyfavourites</figcaption></figure><h3 id="h-improved-profile-warning-flow-for-various-resolver-states" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Improved profile warning flow for various resolver states</h3><p>Partly in response to community feedback, we decided to fast track improvements to the various warnings we show when opening up the profile editor depending on what resolver has been set:</p><ul><li><p>Migrate/Resolver out of sync: We&apos;ve completely rethought this flow. Previously, it forced you to either migrate your records to the new resolver or use the records on the new resolver after editing the profile. Now it asks you if you want to change your resolver (which you can ignore), then checks if the records between resolvers are out of sync. If they&apos;re in sync, you&apos;ll have the option to reset or keep your profile. If they&apos;re out of sync, you&apos;ll get options to reset, migrate, or use the profile that exists on the new resolver. We&apos;ve also added a warning for people resetting their profile.</p></li><li><p>Resolver out of date: We&apos;ve adjusted the flow to ask before editing the profile and to let the user ignore it if they wish. We&apos;ve also added a warning for people resetting their profile.</p></li><li><p>No resolver: We’ve updated the copy</p></li><li><p>Registry out of date: We’ve updated the copy</p></li></ul><p>These changes also allow people to use the profile editor for custom resolvers (before they had to use the record editor). Additionally we&apos;ve added the option to ignore resolver upgrades in each flow.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ca1984d779cffe856db92a328f893ad87fc43a90abebbd6cfdd6fbd386494a16.jpg" alt="Right-click and select ‘open in new tab/window’ to get a closer look" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Right-click and select ‘open in new tab/window’ to get a closer look</figcaption></figure><h3 id="h-better-handling-of-issues-with-the-graph" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Better handling of issues with The Graph</h3><p>The ENS Manager app heavily relies on a third-party service called ‘The Graph’ for a lot of the data it displays. It is essentially a caching layer without which the app would be unusably slow. From time to time the service will be slow or unresponsive, which makes the manager app slow or unresponsive, which previously would have made the user feel like the app is down. Now we can handle this by showing a warning message and displaying data that doesn’t rely on the graph.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/dc930bb101902ceeb2e2493d4fb132237cff111851205f93ee30d809fdffcc53.png" alt="Better handling of issues with third-party services" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Better handling of issues with third-party services</figcaption></figure><h3 id="h-in-app-support-via-intercom" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">In-app support via Intercom</h3><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/730d6e8cec2bbfab783a003a416c09e50cda3066571b53aa9c2878e36f80563f.png" alt="Intercom chat" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Intercom chat</figcaption></figure><p>You can now reach our support team directly through the app. Look for the icon in the bottom right corner. A bot will initially try to help you but if it can’t you will always have the option to talk to a human.</p><h3 id="h-security-improvements-a-tale-of-two-foxes-metamask-firefox" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Security improvements, a tale of two foxes (MetaMask, Firefox)</h3><p>As a team we are taking steps to improve our security practices, and one of the outcomes of this initiative was implementing something known as a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP">content security policy</a> (CSP) for the manager app. This allows us to keep our users safe from entire categories of attacks by instructing the browser to disallow certain actions that could be used by an attacker to steal a user’s funds for example. It is something every dapp should consider implementing. Unfortunately, this causes problems on certain platforms, as the way some extensions work is very similar to how an attacker might try to steal your info, so only install browser extensions that you trust!</p><p>An open issue in Firefox that hasn&apos;t been fixed for <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1267027">years</a> is the core of the debate. This issue means that Firefox blocks MetaMask and other wallets from interacting with the manager app when a CSP is in place. We now have a workaround for MetaMask, but there may be issues with other wallets. If you&apos;re having trouble, you can let us know directly in the app via Intercom.</p><h2 id="h-smaller-improvements" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Smaller Improvements</h2><ul><li><p>Reduced the byte size of avatar text uploads for gas savings.</p></li><li><p>Prevented cross-browser pre-rendering, which caused issues with MetaMask on first load.</p></li><li><p>The app will now only migrate profiles when wrapping a name if the current resolver is not NameWrapper-aware.</p></li><li><p>Organized useQuery cache keys using a queryKey factory.</p></li><li><p>Improved gas estimates via the tenderly API.</p></li><li><p>Increased the load speed of the registration page.</p></li><li><p>Added a &apos;Recreate name&apos; button so a parent can recreate a subname after it expires.</p></li><li><p>Updated v2 to be NameWrapper-aware.</p></li><li><p>Implemented protection against stale data during the input stage of the transaction flow.</p></li><li><p>Removed target=&quot;_blank&quot; for the owner/parent link</p></li><li><p>Added custom 404 and error pages.</p></li><li><p>Added banners for switching between v3 and v2 during the soft launch.</p></li><li><p>Ensured v2 links direct to the correct place in v3.</p></li><li><p>Prevented clicking outside of the transaction dialog during profile editing.</p></li><li><p>Hosted the v2 app on legacy.ens.domains.</p></li><li><p>Updated the avatar upload endpoint for better security.</p></li></ul><h2 id="h-bug-fixes" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Bug Fixes</h2><ul><li><p>Fixed a bug where adding a custom record with &apos; or &quot; on Desktop would crash the app.</p></li><li><p>Resolved an issue where MetaMask wouldn&apos;t load correctly if the browser decided to pre-render the page.</p></li><li><p>Fixed a validation failure in the Dogfood component due to a caching issue with reverse address lookup.</p></li><li><p>Removed the &apos;name&apos; record that was showing up as a default in the records editor.</p></li><li><p>Fixed an issue where confetti would display twice after registering a name with MoonPay.</p></li><li><p>Resolved an issue where the &apos;Extend name&apos; button would hang after the page had been inactive for 2 minutes.</p></li><li><p>Fixed an error that occurred when searching for a root node address.</p></li><li><p>Fixed display issues with the feedback window on mobile.</p></li><li><p>Adjusted the names list to display even if a name fails normalization.</p></li><li><p>Fixed an issue where the &apos;Extend names&apos; button would display a loading spinner each time the length was adjusted.</p></li><li><p>Resolved a problem where searching for an address would return as invalid.</p></li><li><p>Fixed alignment issues with the imported domain text.</p></li><li><p>Added missing translation keys.</p></li><li><p>Fixed an issue where an IPNS link in the content hash field would be marked as invalid in the editor window.</p></li><li><p>Resolved an issue where a registered name would flash the register page when clicking &quot;view name&quot;.</p></li><li><p>Fixed WalletConnect issues.</p></li><li><p>Corrected text alignment in the domain registrar dropdown.</p></li><li><p>Fixed styling issues with the MoonPay dialog.</p></li><li><p>Resolved a problem where subnames couldn&apos;t be edited if names had an expiry far in the future.</p></li><li><p>Corrected the incorrect order when sorting names by expiry on the names list.</p></li><li><p>Fixed an issue where the IPFS input asked for a content hash (it should ask for a content id (CID)) but expected a full IPFS gateway URL.</p></li><li><p>Corrected an incorrect error message when setting an expiry for burning PCC.</p></li><li><p>Adjusted the term &apos;Expiry&apos; to always refer to the start of the grace period.</p></li><li><p>Fixed issues with emoji normalization.</p></li><li><p>Resolved an issue where the BNB address record couldn&apos;t be removed.</p></li><li><p>Fixed an issue where the profile dropdown width was incorrect.</p></li><li><p>Fixed an issue where the parent of ETH was shown as none.</p></li><li><p>Resolved an issue where the Android PWA stopped working.</p></li><li><p>Fixed an issue where searching with punycode would cause the app to crash.</p></li><li><p>Adjusted the &apos;Extend&apos; button to show when no extendable/selectable items are in the names list.</p></li><li><p>Fixed a problem where names with hyphens were not displayed correctly in the transaction history.</p></li><li><p>Improved the smoothness of avatar multi-touch.</p></li><li><p>Fixed an issue where you couldn&apos;t go back in a transaction without losing your inputs when creating a new transaction flow inside a transaction input.</p></li><li><p>Adjusted the content hash link to use .limo.</p></li><li><p>Fixed an issue where the &apos;%&apos; symbol in the search would crash the site.</p></li><li><p>Resolved an issue where resolver migration wasn&apos;t migrating ABI records.</p></li><li><p>Fixed a display overflow issue with NightSky on Safari.</p></li><li><p>Corrected an incorrect message when trying to delete subnames with subnames.</p></li><li><p>Fixed an issue where the app would ask for approval to wrap a name, even if approval had already been granted.</p></li><li><p>Resolved a problem where you couldn&apos;t unwrap a subname when the parent wasn&apos;t wrapped.</p></li><li><p>Removed the unsupported TLD check for now.</p></li><li><p>Fixed an issue where the app wouldn&apos;t load if a user had legacy favorites.</p></li><li><p>Resolved an issue where the more dropdown would remain open if a user navigated away from the page while it was open.</p></li><li><p>Fixed a glitch where expired subnames could be registered even when the parent was in the grace period.</p></li><li><p>Fixed incorrect sorting of the names list when a user had a high number of names.</p></li><li><p>Fixed a problem where the DNSSEC button would overlap the link to v2.</p></li><li><p>Fixed a display issue with NightSky on Safari.</p></li></ul><h2 id="h-known-issues" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Known Issues</h2><ul><li><p>There may be an issue where you&apos;re unable to connect to a wallet on Firefox due to our Content Security Policy (CSP). We have a workaround for MetaMask, but there may be issues with other wallets. Please let us know via Intercom if you&apos;re having this issue.</p></li><li><p>Our Content Security Policy (CSP) blocks certain extensions. Be careful when installing browser extensions and only install those that you trust.</p></li><li><p>Some services in the broader ecosystem don&apos;t yet support wrapped names. As a result, users may encounter errors on other platforms when trying to view their wrapped names.</p></li></ul>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
        </item>
        <item>
            <title><![CDATA[A Deep Dive into the ENS Name Wrapper]]></title>
            <link>https://paragraph.com/@ens/a-deep-dive-into-the-ens-name-wrapper</link>
            <guid>dML4dlTmIzM1QMOl06Qm</guid>
            <pubDate>Tue, 28 Mar 2023 18:36:50 GMT</pubDate>
            <description><![CDATA[Table of ContentsIntroductionThe ENS Name WrapperExample - Step By StepExample - Parent Locks Subname All-In-OneExample - Multiple Subnames in Various StatesName Wrapper FusesName Wrapper ExpiryApproved OperatorsDNS Domains and FusesUse-Cases1.) I want to give subnames out to all of my DAO members / NFT holders!2.) I want to sell / rent out subnames!3.) Other cool things you can doIssue subdomains as tickets to an eventLock the resolved records for a nameRecapOther LinksIntroductionBefore we ...]]></description>
            <content:encoded><![CDATA[<div data-type="youtube" videoId="njb7jp5_Qoo">
      <div class="youtube-player" data-id="njb7jp5_Qoo" style="background-image: url('https://i.ytimg.com/vi/njb7jp5_Qoo/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=njb7jp5_Qoo">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><h1 id="h-table-of-contents" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Table of Contents</h1><ul><li><p><strong>Introduction</strong></p></li><li><p><strong>The ENS Name Wrapper</strong></p></li><li><p><strong>Example - Step By Step</strong></p></li><li><p><strong>Example - Parent Locks Subname All-In-One</strong></p></li><li><p><strong>Example - Multiple Subnames in Various States</strong></p></li><li><p><strong>Name Wrapper Fuses</strong></p></li><li><p><strong>Name Wrapper Expiry</strong></p></li><li><p><strong>Approved Operators</strong></p></li><li><p><strong>DNS Domains and Fuses</strong></p></li><li><p><strong>Use-Cases</strong></p><ul><li><p><strong>1.) I want to give subnames out to all of my DAO members / NFT holders!</strong></p></li><li><p><strong>2.) I want to sell / rent out subnames!</strong></p></li><li><p><strong>3.) Other cool things you can do</strong></p><ul><li><p><strong>Issue subdomains as tickets to an event</strong></p></li><li><p><strong>Lock the resolved records for a name</strong></p></li></ul></li></ul></li><li><p><strong>Recap</strong></p></li><li><p><strong>Other Links</strong></p></li></ul><h1 id="h-introduction" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Introduction</h1><p>Before we dive into the Name Wrapper, let’s briefly recap some basic ENS concepts that will give some helpful context.</p><p>The <strong>Registry</strong> is the core contract at the heart of ENS resolution. All ENS lookups start by querying the registry. The registry is not just for .eth second-level names (like <code>name.eth</code>), but for <em>all</em> ENS names (subnames like <code>sub.name.eth</code>, and also DNS names like <code>domain.xyz</code>). The owner of the name in the registry is also referred to as the <strong>Controller</strong> or <strong>Manager</strong> of the name.</p><p>The <strong>.eth Registrar</strong> is specific to .eth second-level name registrations. This is essentially a subdomain registrar for the TLD (top-level domain) .eth. When you register a .eth name, the registrar issues you an ERC-721 NFT.</p><p>The owner of that NFT is also referred to as the <strong>Registrant</strong> or <strong>Owner</strong> of that name. It can be used to reclaim ownership over the name in the core registry as well (in other words, the Registrant can overwrite the Controller).</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/20c2f1cdf396c9216440f48ee0b18b292da6137d739099d9472f65ac016f86ba.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>As you can see, without the Name Wrapper, only .eth second-level names are NFTs currently. Subnames and DNS domains do not have NFTs associated with them by default, unless a custom contract is created for that purpose.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8078c4d8ecdba7365698c461504ca8be29d2b48b80ca9c75b5ef93f6b8559c62.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><h1 id="h-the-ens-name-wrapper" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The ENS Name Wrapper</h1><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/10c5d7283a8da61d2299fc4ac106274bbfd59ef8aadfaf4630d251bb7c6d8a25.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Woah don’t worry, I’ll explain all of this soon enough.</p><p>The Name Wrapper <strong>wraps</strong> an ENS name into a new ERC-1155 NFT. Any ENS name can be wrapped, whether it’s a .eth name or DNS domain or even any subname!</p><p>There is a <strong>Use-Cases</strong> section later on in this article too.</p><p>You can take your <code>name.eth</code>…</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/67ce42dc319e6f8e23c5b36d72f3756e45a62a8a8d210f41a1a561e920f2b4a3.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>And turn it into a wrapped ERC-1155 NFT!</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/283b7820470fdb0305f235c81f190dbc5d12c21423d62608cca8855558d847c0.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Let’s take our <code>sub1.name.eth</code> subname from up above, and wrap it!</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d3f4b5992edd69a41599ead61d77567f2f7ce0a3322a843c5cb48b1c1ee8ded8.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Now the subname is a wrapped ERC-1155 NFT too!</p><p>Those lines you see represent so-called “permission fuses” for your wrapped ENS name, which I’ll explain in a bit.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d60894d54fbf7f22fd2b821c06fe9188da7ae358439706aff900bdfd88a21fb2.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-registry-owners-with-the-name-wrapper" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Registry Owners with the Name Wrapper</h3><p>How does this affect the core registry though?</p><p>When you wrap a name, you are setting the Controller to the Name Wrapper contract. In return, the Name Wrapper issues an ERC-1155 NFT and transfers it to you.</p><p>For .eth second-level names, you transfer the Registrant / NFT (in the .eth registrar) to the Name Wrapper contract when you wrap. The Name Wrapper will automatically reclaim the Controller in the core registry too.</p><p>Before, there was no NFT at all (for subnames and DNS names at least):</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/519d9673b1fcabf4118236ca93563491049352a5df14c1e18e2dd114712effaf.jpg" alt="Registry Controller of an unwrapped subname" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Registry Controller of an unwrapped subname</figcaption></figure><p>After you wrap a name, technically the Controller in the registry is now the Name Wrapper contract. That means that you cannot interact directly with the ENS registry for that name, because you are not the Controller.</p><p>However, the Name Wrapper contract provides all the necessary methods so that you can still interact with the registry. You can transfer ownership, set the resolver/TTL, and even create subnames just as you would normally. On top of that, any subnames you create will be automatically wrapped by default as well!</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3b2d018f1cfa5f4b47f9dd78faec9a735a29bfb1189119daeab01717621c6997.jpg" alt="Registry Controller of a wrapped subname is now the Name Wrapper contract" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Registry Controller of a wrapped subname is now the Name Wrapper contract</figcaption></figure><h3 id="h-states-of-an-ens-name" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">States of an ENS Name</h3><p>We’re almost ready to see some visual examples! But first, let’s get some terminology out of the way…</p><p>In addition to all the functionality that the name gains from being a fully-fledged ERC-1155 NFT, the Name Wrapper provides a number of ENS-specific features as well.</p><p>It does this with a “fuse” system. Each “fuse” represents some kind of permission for the name. When you burn a fuse, you are usually revoking some kind of permission. In the ENS Manager UI, this is available in the “Permissions” section of the name.</p><p>For example, by default when you wrap a name, you can transfer that NFT around freely, just as you can with other NFTs. However, if the “Cannot Transfer” fuse is burned, then the NFT becomes non-transferrable. In the ENS Manager UI, you would do this by revoking the “Can send this name” permission.</p><p>As the name implies, once you burn a fuse, you cannot undo that action, until the expiry at least.</p><p>The <strong>expiry</strong> is how long the fuses are active for. The expiry on a name is set by the parent owner. For .eth second-level names, the expiry is set to the same expiry from the .eth registrar. When the expiry is reached, <strong>all fuses reset</strong>. In addition, if your name is Emancipated or Locked, then you lose ownership of the name when it expires. There is a section later that goes into greater detail about the expiry.</p><p>There are also special fuses that determine the relationship between “parent” and “child” names, or alter the state of the wrapped name. A name can be in one of these possible states:</p><h4 id="h-unregistered" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Unregistered</h4><p>The name has not even been registered/created yet, or it has expired.</p><h4 id="h-unwrapped" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Unwrapped</h4><p>The name exists and has not expired (in the case of .eth second-level names). The Name Wrapper contract does not have ownership over the name. You own the name in the registry and/or .eth registrar.</p><h4 id="h-wrapped" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Wrapped</h4><p>The Name Wrapper contract has ownership of the name (in the registry/registrar). You are issued an ERC-1155 NFT in return, which proves that you are the actual owner. You can unwrap the name at any time, which burns the ERC-1155 NFT, and returns ownership in the registry/registrar back to you. If your name is a subname like <code>sub.name.eth</code>, then the owner of <code>name.eth</code> can technically replace the subname and transfer it to a different owner. In addition, the parent owner can burn parent-controlled fuses on your name.</p><h4 id="h-emancipated" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Emancipated</h4><p>The owner of the parent name is no longer able to replace this name, or burn any additional fuses on it. All .eth second-level names (like <code>name.eth</code>) are automatically put into the Emancipated state when they are wrapped. The name can still be unwrapped and rewrapped by the owner.</p><h4 id="h-locked" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Locked</h4><p>The name can no longer be unwrapped. The owner can now burn owner-controlled fuses on the name. Fuses for subnames of this name can now be burned as well.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4ca09b64501995da229b1d9973011a75351552949d795a82ee681ffadde19c17.jpg" alt="State Machine for the ENS Name Wrapper" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">State Machine for the ENS Name Wrapper</figcaption></figure><hr><h2 id="h-example-step-by-step" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Example - Step By Step</h2><h3 id="h-wrapped-subnames" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Wrapped Subnames</h3><p>Let’s dive into an example to learn more about fuses.</p><p>Say you have <code>name.eth</code> and <code>sub1.name.eth</code>, both wrapped. You have already locked <code>name.eth</code>, but no fuses have been burned on the subname yet.</p><p>The subname is <strong>Wrapped</strong> but not yet <strong>Emancipated</strong>, so the parent still has full control. Check out the diagram below, see that anchor there in the top-left of the subname? This means that the parent owner can still control the subname. It can burn Parent-Controlled Fuses, or it can even completely replace the subname if it wanted to.</p><p>The owner of the subname can still unwrap/rewrap, transfer, set the resolver/TTL, and even create new subnames of its own. However the owner cannot burn any fuses on the subname or any sub-subnames yet.</p><p>I’ll keep the <code>name.eth</code> node stripped down so it’s hopefully not as confusing, since we’re focusing on the <code>sub1.name.eth</code> subname right now. See the diagram below:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4d85686c05c7b75481e38c8edc586b879dda4d0da1468bbf7fe1c5dd57519423.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-burning-parent-controlled-fuses" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Burning Parent-Controlled Fuses</h3><p>While in this state, the parent owner can burn Parent-Controlled Fuses while continuing to have full control over the subname.</p><p>There are 3 total predefined Parent-Controlled Fuses, and then there are 13 undefined fuses that you can use however you wish. One way to think of these fuses are as &quot;perks&quot; for the owner of the subname.</p><p>For example, if you are using ENS subnames to issue tickets to an event, you could use these Parent-Controlled Fuses to unlock perks, like the ability to redeem some swag or get into a special event (maybe it even automatically integrates with one of those smart door locks when the person taps an access card!).</p><p>I’ll show one of the Parent-Controlled Fuses being burned in the diagram below. In this case, it’s the <strong>CAN_EXTEND_EXPIRY</strong> fuse, which allows the subname owner to extend their own expiry (there is a section later going over all the fuses and what they do).</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f575c1d9de6cf4b8b5d76195423af478e245a6e9fc86294f60d26f6782aa857a.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-burning-the-parent-cannot-control-fuse" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Burning the “Parent Cannot Control” Fuse</h3><p>To Emancipate a name, burn the special &quot;Parent Cannot Control&quot; fuse.</p><p>After burning, no more fuses will be able to be burned by the parent.</p><p>The owner of the parent name will also no longer be able to replace the subname.</p><p>Remember that anchor in the top-left of the diagram? Burning the PCC fuse will blow that away! Without that anchor, the child drifts away from the parent and severs all the remaining fuses. So the parent owner will no longer have any control over this child!</p><p>In addition, see that other fuse going down below PCC? It will also blow away a section of wall, giving the subname owner access to its own “matchbox”! The subname owner will now be able to burn fuses on their own.</p><p>I’ve circled these places in green in the diagram below:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b3afdf0733ae1f3feae8460c4a0bf9dbe444357399d60faa4f5e39630e0e7e52.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-emancipated-subnames" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Emancipated Subnames</h3><p>The subname <code>sub1.name.eth</code> is now <strong>Emancipated</strong>.</p><p>The parent can no longer burn any fuses, or replace the subname (up until the expiry).</p><p>The subname is not yet Locked though, so the owner of the subname can still unwrap the name if they want! If the name is unwrapped and then rewrapped, everything will still be in the same Emancipated state with the same fuses burned.</p><p>Because the name is not yet Locked, the owner of the subname cannot burn any other fuses (besides “Cannot Unwrap”). The owner cannot burn any fuses on any of its own subnames yet either.</p><p>See that section below that is now green? Now that the parent has burned PCC, the owner has access to its own “matchbox”, and can start playing with fire!</p><p>You might also notice that the fuse for “Cannot Unwrap” is accessible from within this same section…</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f76da19ecb87021c0cff69e3c2b665a2f6c107320590a31ae7d9cb232c4fe1f0.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-burning-the-cannot-unwrap-fuse" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Burning the “Cannot Unwrap” Fuse</h3><p>To Lock a name, burn the special &quot;Cannot Unwrap&quot; fuse.</p><p>This can <strong>only be burned</strong> if PCC (Parent Cannot Control) has first been burned by the parent.</p><p>In other words, it can only be burned if the name is already Emancipated.</p><p>See that bundle of dynamite with “CU” next to it? That’s gonna blow when you burn the Cannot Unwrap fuse. If you follow the other fuses attached to it, you’ll see that it’ll also blow up a few other things, which I’ll go over next.</p><p>I’ve circled in green the areas that will be affected in the diagram below:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c22f4912bfe234cba0c4b329fcb7ee2c667fafd3d551cd94148471826abd6c6a.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-locked-subnames" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Locked Subnames</h3><p>The subname <code>sub1.name.eth</code> is now <strong>Locked</strong>. This means that the name can no longer be unwrapped.</p><p>Look at the diagram below, Simba. Everything the green light touches is our kingdom.</p><p>Now that the name is Locked, the owner can burn other Owner-Controlled Fuses. The owner can also burn fuses for any subnames of its own.</p><p>There are 7 total predefined Owner-Controlled Fuses, and then there are 9 undefined fuses that you can use however you wish.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3b43bf1cfaa02213cfc7a8b45d33f3752c14bc4a322679ce4a41f53d735336b2.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-burning-owner-controlled-fuses" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Burning Owner-Controlled Fuses</h3><p>For example, you can burn &quot;Cannot Transfer&quot; and &quot;Cannot Set Resolver&quot;.</p><p>Now the name cannot be transferred/sold, and the resolver contract can no longer be overwritten, up until the expiry.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6167c131774985722d01f85808012e145ba88882163857f0108d067d8e9e4008.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-burning-the-cannot-burn-fuses-fuse" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Burning the “Cannot Burn Fuses” Fuse</h3><p>If you burn the special &quot;Cannot Burn Fuses&quot; fuse, then no more fuses can be burned on the name.</p><p>The parent owner may burn this fuse on a subname to ensure that some permissions remain &quot;locked open&quot;.</p><p>The owner of the name could also choose to burn it. For example, if the name uses a subdomain registrar, the owner could leave “Cannot Create Subname” unburnt, and then burn the &quot;Cannot Burn Fuses&quot; fuse to guarantee that new subnames can always be registered.</p><p>See the remaining bundle of dynamite with “CBF” next to it? Once that blows, all of the other Owner-Controlled Fuses will be rendered inaccessible. I’ve circled it in green below:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f3dffcca91ebfe5927506881694f41e468b9aeaa931e509053a8280dcac96835.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h3 id="h-all-fuses-frozen" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">All Fuses Frozen</h3><p>The &quot;Cannot Burn Fuses&quot; fuse has now been burned.</p><p>The fuses for the name are now completely frozen until its expiry. Any previously burned fuses will remain in that burned state, but no other fuses can be burned on this name now.</p><p>However, the owner can still burn fuses of any subnames, assuming that it has not yet emancipated them.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bc0c7071b8fa097e5df8f16039371485d63a6e171071f6ba54da1acf56d9a3d3.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><hr><h2 id="h-example-parent-locks-subname-all-in-one" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Example - Parent Locks Subname All-In-One</h2><p>Okay, so I simplified a few things earlier to make it easier to follow.</p><p>Usually there won&apos;t be so many steps. The parent can burn multiple fuses at once, and take the name all the way to the Locked state in one fell swoop.</p><p>For example, say you want to emancipate and lock a subdomain, and burn a Parent-Controlled fuse, and burn some Owner-Controller fuses too?</p><p>To do that, you will burn &quot;Parent Cannot Control&quot; and &quot;Cannot Unwrap&quot;, and all the other fuses you want, all in one transaction.</p><p>Remember, <strong>once PCC is burned, no further fuses can be burned by the parent.</strong></p><p>Also, if you want to burn any Owner-Controlled Fuses, you must also burn CU (Cannot Unwrap). You may have noticed that purple “CU Lock” on the diagram. That indicates that in order to burn any of those fuses, you must also burn CU.</p><p>In addition, <strong>the CU fuse can only be burned if PCC is already burned, or burned at the same time.</strong> Similarly there is that purple “PCC Lock” on the diagram. That indicates that in order to burn CU, you must also burn PCC.</p><p>I know this is a lot to take in, but as an example, I&apos;ve highlighted some fuses in green below:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/77618a70e500e1f6e6516e1f778581c268e3b8341760edcedf3f988ff0a3be17.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>After burning those fuses, the subname is now <strong>Locked</strong>.</p><p>In addition, the “Can Extend Expiry” fuse was burned, and the &quot;Cannot Transfer&quot; fuse was also burned.</p><p>The owner of the subname still has the ability to burn other fuses and create new subnames of its own in this case. The parent could have decided to restrict things even further by burning other fuses, like &quot;Cannot Create Subname&quot; or &quot;Cannot Burn Fuses&quot;.</p><p>But now that the parent has burned PCC, it has relinquished control over this subname, and it can no longer burn anything else.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5c767069d3b3d9d2e087ddee742ab2c49ba9f1f95c4500be1abb39923ec75c9b.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>So we just saw how you can take an existing wrapped subname, and Emancipate / Lock it, with fuses burned, all in one step.</p><p>Just so you know, the same can also be done when you create an entirely new subname!</p><p>If your name is wrapped, and you create a new subname under it, that subname will <strong>also</strong> be wrapped by default. And at the same time, in the same transaction, you can also pass in your desired list of fuses to burn (and the expiry).</p><p>So you do not have to create a subname and then separately burn fuses. <strong>You can do everything in one transaction.</strong></p><hr><h2 id="h-example-multiple-subnames-in-various-states" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Example - Multiple Subnames in Various States</h2><p>Now let’s zoom out a bit, and I’ll even fill in the <code>name.eth</code> wrapper this time.</p><p>Remember that .eth second-level names are automatically put into the Emancipated state when they are wrapped. They are not automatically Locked though. When you register/wrap a .eth second-level name, you can pass in any owner-controlled fuses you want to burn to start with, so you can go directly to the Locked state if you wish.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/717b8ea41767c1e1c99643a6f943e9878a72d50319965843d9f64499fd5ae363.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>As you can see, each subname does not have to be in the same state. Some can be Locked, some Emancipated, and some merely Wrapped. It’s entirely up to the owner of the parent name and how much power or freedom they want to give to child names.</p><p>This will depend on the use-case. Using subnames for a temporary ticketing system is going to have different constraints than a permanent subdomain registrar, for example.</p><hr><h2 id="h-name-wrapper-fuses" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Name Wrapper Fuses</h2><p>As previously mentioned, a &quot;fuse&quot; is a permission or perk that can be granted/revoked on a name. As the name implies, once the fuse is &quot;burned&quot;, it cannot be unburned. Fuses will only reset when the <strong>expiry</strong> is reached.</p><p>There are <strong>parent-controlled</strong> and <strong>owner-controlled</strong> fuses:</p><h3 id="h-parent-controlled-fuses" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Parent-Controlled Fuses</h3><p><strong>PARENT_CANNOT_CONTROL:</strong></p><p>Allows a parent owner to <strong>Emancipate</strong> a child name. After this is burned, the parent will no longer be able to burn any further fuses, and will no longer be able to replace/delete the child name. This fuse must be burned in order for any owner-controlled fuses to be burned on the name.</p><p><strong>IS_DOT_ETH:</strong></p><p>This fuse cannot be burned by users of the Name Wrapper, it is only set internally when a .eth 2LD is wrapped.</p><p><strong>CAN_EXTEND_EXPIRY:</strong></p><p>The owner of the child name will be able to extend their own expiry. Normally, only the parent owner can extend the expiry of a child name.</p><p><strong>Custom Fuses:</strong></p><p>There are 13 other parent-controlled fuses that are not reserved, and can be used in any custom way you want!</p><h3 id="h-owner-controlled-fuses" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Owner-Controlled Fuses</h3><p><strong>CANNOT_UNWRAP:</strong></p><p>The name will now be <strong>Locked</strong>, and can no longer be unwrapped. This fuse must be burned in order for any other owner-controlled fuses to be burned on the name.</p><p><strong>CANNOT_BURN_FUSES:</strong></p><p>No further fuses can be burned on the name.</p><p><strong>CANNOT_TRANSFER:</strong></p><p>The name (wrapped NFT) can no longer be transferred.</p><p><strong>CANNOT_SET_RESOLVER:</strong></p><p>The resolver contract for the name can no longer be updated.</p><p><strong>CANNOT_SET_TTL:</strong></p><p>The TTL for the name can no longer be updated.</p><p><strong>CANNOT_CREATE_SUBDOMAIN:</strong></p><p>New subdomains can no longer be created.</p><p><strong>CANNOT_APPROVE:</strong></p><p>The approved subname renewal manager for the name can no longer be updated. See the <strong>Approved Operators</strong> section below for more information.</p><p><strong>Custom Fuses:</strong></p><p>There are 9 other owner-controlled fuses that are not reserved, and can be used in any custom way you want!</p><hr><h2 id="h-name-wrapper-expiry" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Name Wrapper Expiry</h2><p>For unwrapped names, only .eth second-level names (like <code>name.eth</code>) have the concept of an expiration date (set in the .eth Registrar). The Name Wrapper has the concept of an expiry as well, which can apply to .eth subnames too. This expiry determines how long any burned fuses are active for, and may also determine whether the name itself has expired. In order to use fuses, a name must also have an expiry set.</p><p>When the Name Wrapper is used:</p><ul><li><p>The expiry for .eth second-level names will automatically be set to the expiry from the .eth Registrar (plus the grace period).</p><ul><li><p>It’s possible the wrapped expiry can get “out of sync” if you renew via the <strong>old</strong> registrar controller contract. In this case, you can re-sync the wrapped expiry by calling the renew method on the wrapper contract.</p></li></ul></li><li><p>Other .eth subnames can have their own separate expiry, and at maximum it can be set to the expiry of the parent node.</p></li><li><p>The expiry does not apply to any DNS names, since they currently cannot use fuses.</p></li></ul><p>You may choose to not burn any fuses on a subname and leave it in the <strong>Wrapped</strong> state if you wish. In that case, the expiry has no practical effect and can just be left as 0. However if you wish to burn any fuses (or emancipate/lock a subname, which requires fuses to be burned), then you must also set an expiry.</p><p>The expiry applies to all fuses that may have been previously burned, both parent-controlled and owner-controlled. When the expiry has been reached, <strong>all fuses will be reset.</strong></p><h3 id="h-max-expiry-for-subnames" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Max Expiry for Subnames</h3><p>By default, the expiry for a name can only be set by the parent, and can only be increased, not decreased. The maximum value for the expiry of a name is the expiry of its parent name.</p><p>For example, say a name expires in 5 years. The owner of the name can then set the expiry of its subnames to a maximum of 5 years as well. But the parent could also choose to set the expiry to something less. Let’s say the parent sets the expiry of one of its subnames to 2 years. Then in turn, the owner of the subname can set the expiry of its <em>own</em> subnames up to a maximum of 2 years, but it could also set it to something less, like 1 year.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4430b90d0b33e39a1718282d8c8cee8a238414258af80e200ac127f724ee8c15.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>The parent can set a different expiry for different subnames too, just as it can burn different fuses for different subnames.</p><h3 id="h-renewals" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Renewals</h3><p>When a wrapped .eth second-level name (like <code>name.eth</code>) is renewed, that new expiry is automatically set in the Name Wrapper as well as in the .eth Registrar. However, the expiry for any other .eth names (like <code>sub.name.eth</code>) will <em>not</em> be automatically extended when the parent expiry is extended.</p><p>The parent can extend the expiry for an existing subname at any time, even if the subname has been emancipated.</p><p>The parent can also choose to approve a separate contract to allow the expiry for subnames to be extended by the subname owner or other accounts. That is basically how .eth second-level names work: Since the <code>eth</code> node is locked in the registrar contract and has the Name Wrapper (which exposes a renew method) approved as a controller, .eth second-level names can be directly renewed by their owners. The parent can further lock this approved contract in by burning the <strong>CANNOT_APPROVE</strong> fuse.</p><p>There is also a special parent-controlled fuse called <strong>CAN_EXTEND_EXPIRY</strong>. If the parent burns this fuse on a subname, then the owner of that subname (or any approved controller) can also extend the expiry.</p><p>So, if you are running a subname registrar and you want to enable “unruggable renewals”, you can use one of the above options (or both).</p><h3 id="h-special-cases-for-eth-2lds" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Special Cases for .eth 2LDs</h3><p>For .eth second-level names, the end of the name’s grace period (from the .eth Registrar) is used for the expiry inside of the Name Wrapper. So if the name’s expiration date in the Registrar is January 1st, then the expiry in the Name Wrapper will reflect that date <em>plus</em> the grace period (currently 90 days, so approximately April 1st, depending on the year).</p><p>When the name’s expiration date (from the .eth Registrar) has been reached, and the name is now in the grace period, all Name Wrapper operations on the name will be restricted. The owner will <em>not</em> yet lose ownership of the name, but they will also not be able to unwrap or update the name until it has been renewed.</p><h3 id="h-expiry-implications" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Expiry Implications</h3><p>When a name is merely <strong>Wrapped</strong> but not <strong>Emancipated</strong> or <strong>Locked</strong>, parent-controlled fuses can still be burned. This means that the parent can burn a custom fuse for a limited amount of time. When the expiry is reached, all fuses will be reset, but the name will otherwise be unaffected. Also, as a reminder, the parent must first be in the Locked state before it can burn fuses on any subnames.</p><p>When a name is <strong>Emancipated</strong> or <strong>Locked</strong>, the expiry has an important additional effect. In this scenario, when the expiry has been reached, <strong>the name itself will expire</strong>, and the owner <strong>loses ownership</strong> of the name. The Name Wrapper contract will return the null address (<code>0x000…</code>) as the owner for any expired name. This means:</p><ul><li><p>The name will not be able to be transferred.</p></li><li><p>The NFT for the name may disappear from websites/dapps/wallets as the owner is now the null address.</p></li><li><p>The resolver/TTL will not be able to be updated.</p></li><li><p>New subnames will not be able to be created.</p></li><li><p>Existing subnames will not be able to be altered.</p></li><li><p>Depending on the resolver contract, the name may continue to resolve to any records that were set before the name expired.</p></li><li><p>Depending on the resolver contract, records for the name may no longer be updatable.</p></li></ul><p>When a subname expires, the parent regains the power to completely replace the subname, with a new expiry, a new set of fuses, and even a new owner. That “new set of fuses” is up to the parent. They could choose to completely reset all fuses, or they could choose to use the same set of fuses that were previously set before the subname expired. So if the parent wanted to simply “reactivate” the subname in the same state it was before, it could recreate the subname with the same owner and same set of fuses, but with a new expiry.</p><hr><h2 id="h-approved-operators" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Approved Operators</h2><h3 id="h-full-control-operator-batch-approvals" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Full-Control Operator Batch Approvals</h3><p>Your wrapped name is an ERC-1155 NFT that supports the <code>setApprovalForAll</code> method. When you approve an address using this method, it will have <strong>full control</strong> over <strong>all</strong> wrapped ENS names that you own.</p><p>This method is typically used by NFT marketplace contracts.</p><h3 id="h-name-specific-subname-renewal-manager-approvals" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Name-Specific Subname Renewal Manager Approvals</h3><p>The Name Wrapper also supports the ERC-721 <code>approve</code> method. This method is used to approve a single “Subname Renewal Manager” for a specific name.</p><p>The “Renewal Manager” does not have full control over your wrapped name, it can only set / extend the expiry on subnames.</p><p>Further, if you burn the <strong>CANNOT_APPROVE</strong> fuse on your name, then the approved renewal manager can no longer be changed. You can use this to “lock in” that contract, so that you can guarantee to all subname owners that renewals/extensions can always be done.</p><p>This approved renewal manager will be reset if the wrapped NFT is burned or re-minted, which happens if you unwrap the name, or if an expired name gets re-registered. It will also be reset if the wrapped NFT is transferred, <strong>unless</strong> the <strong>CANNOT_APPROVE</strong> fuse is burned.</p><h3 id="h-example-subname-registrar-contract" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Example - Subname Registrar Contract</h3><p>You can use these operator approval methods to setup a separate contract that can take certain actions on your behalf. One example is setting up a “subname registrar” to allow users to register/renew subnames.</p><p>That subname registrar contract would act on your behalf and allow users to register subnames. To allow this, you would call <code>setApprovalForAll</code> to give that contract full control over your name (and thus the ability to create subnames).</p><p>Then, to enable “unruggable renewals”, you could call <code>approve</code> on that same contract (or a separate one specific to renewals if you wish) and burn <strong>CANNOT_APPROVE</strong> to lock in subname renewals for that contract.</p><p>If you need to later on, you would still be able to revoke with <code>setApprovalForAll</code>. So the contract would lose full control over your name (and the ability to create new subnames), but it would still be able to perpetually renew/extend existing subnames.</p><p>And you can do all of this <strong>without</strong> needing to send your wrapped NFT to that contract.</p><hr><h2 id="h-dns-domains-and-fuses" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">DNS Domains and Fuses</h2><p>As previously explained, in order to burn fuses on a name, the parent name must be <strong>Locked</strong>. The reason is, if the parent name was not locked, then the owner of the parent name could simply get around the constraints of the Name Wrapper by unwrapping the name, and replacing/revoking subnames against the core ENS Registry.</p><p>This is why I’ve said in this guide that currently, <strong>only .eth names support fuses</strong>, because only the <code>eth</code> node is on-chain native and completely locked beyond anyone’s control.</p><p>This is not to say that DNS names “can’t ever” use fuses. Technically speaking, the owner of a DNS TLD has the ability to burn fuses on that TLD in the Name Wrapper, and set it to the “Locked” state. And then from there, all subnames under that DNS TLD <strong>will</strong> be able to use fuses. The DNS TLD owner would need to:</p><ul><li><p>Request the Controller of that TLD from the ENS DAO</p></li><li><p>Wrap the TLD node in the Name Wrapper</p></li><li><p>Burn the <strong>PARENT_CANNOT_CONTROL</strong> and <strong>CANNOT_UNWRAP</strong> fuses on the wrapped TLD to lock it</p></li></ul><p>However, this still does not have all the immutable guarantees that .eth names do. This is because for DNS names, the “source of truth” always lies not in the Ethereum network, but in the DNS network, and the DNS root zone governed by ICANN stakeholders.</p><p>So even if the DNS TLD owner “Locks” that TLD in the ENS Name Wrapper, <strong><em>if</em></strong> that TLD were to ever change ownership on the DNS side, then (per the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.ens.domains/v/governance/ens-dao-constitution#iv.-ens-integrates-with-the-global-namespace">ENS DAO constitution</a>) the new owner would be able to override control of that TLD on the ENS side, unwrap it, and replace/revoke all 2LDs.</p><p>This is just something to keep in mind for wrapped DNS domains.</p><p>However, even if wrapped DNS domains do not support fuses, you can still use them as ERC-1155 NFTs. They will still have their own NFT metadata and show up in your wallet, with whatever avatar you have set, etc. They just won’t have all the extra functionality that comes with the fuse/permission system.</p><hr><h1 id="h-use-cases" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Use-Cases</h1><h2 id="h-1-i-want-to-give-subnames-out-to-all-of-my-dao-members-nft-holders" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1.) I want to give subnames out to all of my DAO members / NFT holders!</h2><p>Say you own the wrapped name <code>mycoolnft.eth</code>, representing a popular NFT project you created. You want to distribute subnames like <code>6529.mycoolnft.eth</code> to all holders.</p><p>One option is to just bulk create the subnames and drop the wrapped NFTs into their wallets. This might be good at least as an initial drop, because then the holders don’t need to interact with any contract or spend any gas, you’re doing that for them!</p><p>To create the subnames, you’d use the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ens-contracts/tree/master/contracts/wrapper#setsubnodeowner">setSubnodeOwner</a> or <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ens-contracts/tree/master/contracts/wrapper#setsubnoderecord">setSubnodeRecord</a> methods.</p><p>You must also decide:</p><h3 id="h-how-much-control-over-the-subnames-do-you-want-to-relinquish" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">How much control over the subnames do you want to relinquish?</h3><p>Do you want to be able to revoke subnames? Or do you want them to be completely outside your control?</p><p>One thing to consider is whether you want the <strong>current</strong> holder of your NFT to always be able to claim/reclaim the corresponding ENS subname. If so, then you will <strong>not</strong> want to Emancipate those subnames (in other words, do not burn <strong>PARENT_CANNOT_CONTROL</strong>). If the subname is Emancipated, then the NFT holder could sell/transfer the NFT but keep the subname (up until the expiry).</p><p>To make it easy for anyone to claim/reclaim a subname after your initial drop, you can set up a contract for this.</p><h3 id="h-setting-up-a-subname-claim-contract" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Setting up a subname claim contract</h3><p>The <code>claim</code> method of your contract could:</p><ol><li><p>Call <code>ownerOf</code> or <code>balanceOf</code> on your NFT contract to get or verify the current owner of the NFT</p></li><li><p>Call <code>ownerOf</code> or <code>balanceOf</code> on the ENS Name Wrapper contract to get or verify the current owner of the wrapped subname</p><ol><li><p>If both owner addresses are the same, just return, nothing to do</p></li></ol></li><li><p>Call <code>setSubnodeOwner</code> or <code>setSubnodeRecord</code> on the ENS Name Wrapper:</p><ol><li><p><strong>owner:</strong> The current owner of the NFT</p></li><li><p><strong>fuses:</strong> What fuses you want to burn (if any) on that subname. If you burn any fuses, you must also set an expiry.</p></li><li><p><strong>expiry:</strong> When the subname will expire.</p></li></ol></li></ol><p>Then, to give that contract access to create subnames on your behalf, you would call <code>setApprovalForAll</code> on the Name Wrapper to approve your contract as an operator.</p><p>Now, even if the NFT gets sold / transferred, the new owner will be able to claim their <code>mycoolnft.eth</code> subname at any time.</p><p>In addition, if you expand your NFT collection in the future and there are new owners, then those new owners would be able to claim their subnames as well.</p><p>If you are creating a new NFT contract, you could even bake this functionality <strong>directly into the NFT contract</strong> too, instead of needing a separate contract! By doing this, you wouldn’t need a separate <code>claim</code> method either, your NFT contract would just <strong>automatically transfer the wrapped ENS subname</strong> whenever the NFT itself gets transferred!</p><h3 id="h-giving-your-subname-owners-perks" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Giving your subname owners perks</h3><p>If you decide to not Emancipate the subnames that you issue, you <strong>will</strong> still be able to burn any Parent-Controlled Fuses. There are 13 unreserved parent-controlled fuses that you can use however you wish!</p><p>For example, perhaps you want to grant on-chain “perks” or “roles” to certain holders. You would call <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ens-contracts/tree/master/contracts/wrapper#setchildfuses">setChildFuses</a> on the Name Wrapper and pass in the fuses you want to burn, and the expiry.</p><p>This means that those “perks” or “roles” can also be time-boxed if you want. Maybe a perk expires in 1 week or something, up to you.</p><p>There is also the reserved <strong>CAN_EXTEND_EXPIRY</strong> parent-controlled fuse. If you burn this, then the subname owner will be able to extend their own expiry whenever they want.</p><h2 id="h-2-i-want-to-sell-rent-out-subnames" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2.) I want to sell / rent out subnames!</h2><p>Say you own the wrapped name <code>verypopularname.eth</code>. Obviously you can just manually create wrapped subnames like <code>my.verypopularname.eth</code> and then sell them on an NFT marketplace. But that sure doesn’t scale well.</p><p>To accomplish this, you will want to create a <strong>subname registrar</strong>. This is a contract that will handle all the registration / renewal for you, and then users will be able to interact with that contract in order to register their own subnames.</p><p>In fact, this is exactly how .eth 2LDs are registered. The owner of the <code>eth</code> TLD (the NFT contract) delegates registration / renewal to the ETHRegistrarController contract. It is acting as a subname registrar for the name <code>eth</code>.</p><p>Your contract would expose a <code>register</code> method that anyone can call. Under the hood it will use the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ens-contracts/tree/master/contracts/wrapper#setsubnodeowner">setSubnodeOwner</a> or <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ens-contracts/tree/master/contracts/wrapper#setsubnoderecord">setSubnodeRecord</a> methods to create subnames, passing in the <strong>fuses</strong> and <strong>expiry</strong> you want to set.</p><h3 id="h-what-fuses-should-i-burn" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What fuses should I burn???</h3><p>First, note that if you want to burn any fuses on subnames, then your name must be <strong>Locked</strong> (meaning <strong>CANNOT_UNWRAP</strong> is burned).</p><p>Assuming that you want your subnames to be “unruggable”, such that you cannot replace / revoke them, then you will want to burn <strong>PARENT_CANNOT_CONTROL</strong> on the subnames. This will place them in the <strong>Emancipated</strong> state upon registration.</p><p>If you want to sell “forever” subnames, where users register once and can then keep them for as long as they wish, then you can consider burning the <strong>CAN_EXTEND_EXPIRY</strong> fuse. This will allow the subname owner to extend their own expiry whenever they want. The max expiry is the expiry of the parent name, but the .eth Registrar allows <em>anyone</em> to renew/extend a .eth 2LD as well.</p><p>If you just want to <strong>rent</strong> subnames, then do not burn <strong>CAN_EXTEND_EXPIRY</strong>. Instead, you could include a <code>renew</code> method on your contract that users can call for another fee.</p><p>If you want to enable “unruggable renewals” for your registrar, to guarantee that users will always be able to renew, then you can call <code>approve</code> on the Name Wrapper and approve your registrar contract as the “subname renewal manager” for your name. Then, burn the <strong>CANNOT_APPROVE</strong> fuse on your name, to guarantee that you can never revoke that contract for subname renewals. See the <strong>Approved Operators</strong> section above for more info.</p><p>If you want to impose other restrictions on your registered subnames, then you can burn the <strong>CANNOT_UNWRAP</strong> fuse to Lock the subname, and also burn whatever other fuses you want.</p><p>For example, if you want to prevent owners of your subnames (like <code>my.verypopularname.eth</code> from creating their <em>own</em> subnames (like <code>buy.my.verypopularname.eth</code>), then you would burn <strong>CANNOT_UNWRAP</strong> and <strong>CANNOT_CREATE_SUBDOMAIN</strong>.</p><p>To recap on fuses…</p><ul><li><p>Sell permanent names:</p><ul><li><p><code>CAN_EXTEND_EXPIRY | PARENT_CANNOT_CONTROL</code></p></li></ul></li><li><p>Sell permanent names, but prevent them from creating their own subnames:</p><ul><li><p><code>CAN_EXTEND_EXPIRY | PARENT_CANNOT_CONTROL | CANNOT_UNWRAP | CANNOT_CREATE_SUBDOMAIN</code></p></li></ul></li><li><p>Rent out names:</p><ul><li><p><code>PARENT_CANNOT_CONTROL</code></p></li></ul></li><li><p>Rent out names, but prevent them from transferring or reselling them:</p><ul><li><p><code>PARENT_CANNOT_CONTROL | CANNOT_UNWRAP | CANNOT_TRANSFER</code></p></li></ul></li></ul><p>And so on, it’s up to you. You can also burn whatever custom parent-controlled or owner-controlled fuses you want to.</p><h3 id="h-can-i-customize-my-own-rules-and-fees" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Can I customize my own rules and fees?</h3><p>Yes! It’s your registrar contract, so you can impose whatever rules and fees you want.</p><p>For example, the .eth Registrar imposes a 3-character minimum on all names, as well as a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://support.ensmods.xyz/docs/core/registration/fees">custom fee structure</a> and a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://support.ensmods.xyz/docs/core/registration/temporary-premium">temporary premium auction</a> upon expiration.</p><p>By default there is no character limit on subnames, but your contract could have its own rules and fee structure or whatever you want. For example, you can:</p><ul><li><p>Allow or disallow specific addresses from registering / renewing</p></li><li><p>Only allow registration based on some custom criteria like holding a specific NFT</p></li><li><p>Custom length restrictions like only 3+ characters or &lt; 100 characters</p></li><li><p>Only allow names with characters <code>[a-z0-9]</code> and nothing else</p></li><li><p>Use a custom fee structure based on:</p><ul><li><p>The length of the name</p></li><li><p>The specific characters that are in the name, like emojis</p></li><li><p>A pre-curated list of “good” names like people’s first names</p></li></ul></li><li><p>And whatever other rules you want.</p></li></ul><h3 id="h-but-i-cant-write-my-own-contract" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">But I can’t write my own contract!</h3><p>If writing and deploying your own contract seems daunting, then don’t worry, the ENS Labs devs are working on some basic subname registrar contracts that anybody will be able to use.</p><p>I’m sure that the ENS community will create all kinds of other registrar contracts and tools you can use too!</p><h2 id="h-3-other-cool-things-you-can-do" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">3.) Other cool things you can do</h2><h3 id="h-issue-subdomains-as-tickets-to-an-event" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Issue subdomains as tickets to an event</h3><p>Maybe you have <code>mycoolevent.eth</code> and you want to issue tickets like <code>1.ticket.2023.mycoolevent.eth</code>.</p><p>If you want, you can choose to <em>not</em> Emancipate those subnames, but still burn some custom parent-controlled fuses. Those fuses might:</p><ul><li><p>Indicate what “tier” their event ticket is</p><ul><li><p>Maybe they can upgrade their ticket to a higher tier, which would burn some additional fuses</p></li></ul></li><li><p>Allow them access to the express line or some VIP room</p><ul><li><p>Maybe even automatically via some smart door</p></li></ul></li></ul><p>When you burn those fuses, perhaps you also set the expiry to the day after the event ends.</p><p>Or, maybe you want your attendees to be able to keep their subnames as a souvenir or proof-of-attendance!</p><p>If so, then instead of letting the names expire at the end of the event, you could extend the expiry and burn some additional fuses to allow the attendees to keep them forever! In that case you might want to burn these fuses:</p><ul><li><p><code>CAN_EXTEND_EXPIRY | PARENT_CANNOT_CONTROL</code></p></li></ul><p>If you want those tickets to be non-transferrable (soulbound to the address that attended), then burn these fuses:</p><ul><li><p><code>CAN_EXTEND_EXPIRY | PARENT_CANNOT_CONTROL | CANNOT_UNWRAP | CANNOT_TRANSFER</code></p></li></ul><h3 id="h-lock-the-resolved-records-for-a-name" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Lock the resolved records for a name</h3><p>By default, newly registered names will use the Public Resolver, which just allows the current manager/controller of the name to update any records.</p><p>However, in some cases perhaps you want to make sure that a name resolves to specific records and <strong>never</strong> changes. You can accomplish this with the <strong>CANNOT_SET_RESOLVER</strong> fuse.</p><p>Say you own <code>mycoolcontract.eth</code> representing a smart contract. You can use ENS subnames to refer to specific versions of that contract, like <code>1.mycoolcontract.eth</code>. And perhaps you want those versioned subnames to always point to:</p><ul><li><p>The ETH address of that immutable contract</p></li><li><p>The ABI for that contract</p></li><li><p>The contenthash for some versioned documentation page</p></li><li><p>etc.</p></li></ul><p>One way to do this is just to make sure the name is <strong>Locked</strong>, all the records are set correctly, and then transfer the owner to some burn address so it can never be updated again.</p><p>But of course this isn&apos;t ideal, because maybe there are some records that you <em>do</em> want to update in the future. Or maybe you still want to keep ownership of that subname for other reasons.</p><p>Instead of essentially burning the name, you could create a custom resolver that locks in certain records forever. Then:</p><ol><li><p>Set the resolver of that name to your custom contract</p></li><li><p>Set the records however you want and lock them into the resolver</p></li><li><p>Burn these fuses on the name:</p><ul><li><p><code>PARENT_CANNOT_CONTROL | CANNOT_UNWRAP | CANNOT_SET_RESOLVER</code></p></li></ul></li></ol><p>Now you can still keep ownership and even some limited management power over the name, while still guaranteeing that the ETH address, ABI, and whatever other records are completely immutable, as long as the expiry is set appropriately.</p><hr><h2 id="h-recap" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Recap</h2><p>The Name Wrapper takes control of your ENS name, and issues you an ERC-1155 NFT in return.</p><p>For .eth names, fuses can be used to apply perks or restrictions on subnames.</p><p>DNS names can be wrapped, but currently cannot use fuses. (See the <strong>DNS Domains and Fuses</strong> section for additional nuance.)</p><p>All .eth second-level names (like <code>name.eth</code>) are automatically placed into the Emancipated state when wrapped.</p><p><strong>Emancipated</strong> means that the parent no longer has control over the child name. It can no longer burn any fuses or replace the subname, up until the expiry.</p><p>A name is Emancipated when the parent burns the “Parent Cannot Control” (PCC) fuse. The parent must first be in the Locked state to be able to do this.</p><p><strong>Locked</strong> means that the name cannot be unwrapped. This provides assurance to subnames that the parent owner cannot unwrap and then, for example, start replacing subnames directly against the registry.</p><p>An Emancipated name is Locked when the “Cannot Unwrap” (CU) fuse is burned.</p><p>Think of the special PCC / CU fuses recursively:</p><ul><li><p>To burn owner-controlled or subname fuses, CU must be burned.</p></li><li><p>To burn CU, PCC must be burned.</p></li><li><p>Only the parent can burn PCC on the child name, and only if CU is first burned on the parent</p></li><li><p>To burn CU on the parent, PCC must be burned on the parent</p></li><li><p>Only the grandparent can burn PCC on the parent name, and only if CU is first burned on the grandparent</p></li><li><p>And so on…</p></li></ul><p>Follow that chain up until you hit a .eth second-level name like <code>name.eth</code>, since .eth second-level names will have PCC automatically burned when wrapping. The parent <code>eth</code> node is already in the Locked state.</p><p>A parent name can burn all the fuses it needs to on a child name in one transaction. This can be done when the subname is created, or on an existing subname that has not yet been Emancipated.</p><p>Finally, in order to use fuses, an expiry must also be set on the name. When the expiry is reached, all fuses are reset on the name. If the name is Emancipated or Locked, then in addition, when the expiry is reached, you lose ownership of the name.</p><hr><h2 id="h-other-links" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Other Links</h2><p>The actual contracts as well as technical documentation are here:</p><div data-type="embedly" src="https://github.com/ensdomains/ens-contracts/tree/master/contracts/wrapper" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;The core contracts of the ENS protocol . Contribute to ensdomains/ens-contracts development by creating an account on GitHub.&quot;,&quot;title&quot;:&quot;ens-contracts/contracts/wrapper at master · ensdomains/ens-contracts&quot;,&quot;author_name&quot;:&quot;ensdomains&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://github.com/ensdomains/ens-contracts/tree/master/contracts/wrapper&quot;,&quot;thumbnail_url&quot;:&quot;https://storage.googleapis.com/papyrus_images/77e4610ab7e0f0948883c7b9bb0869140b0c63d9e9f56d8402064bd4adf1a500.png&quot;,&quot;author_url&quot;:&quot;https://github.com/ensdomains&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600,&quot;image&quot;:{&quot;img&quot;:{&quot;width&quot;:1200,&quot;height&quot;:600,&quot;src&quot;:&quot;https://storage.googleapis.com/papyrus_images/77e4610ab7e0f0948883c7b9bb0869140b0c63d9e9f56d8402064bd4adf1a500.png&quot;}}}" format="small"><link rel="preload" as="image" href="https://storage.googleapis.com/papyrus_images/77e4610ab7e0f0948883c7b9bb0869140b0c63d9e9f56d8402064bd4adf1a500.png"/><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="link-embed-link" href="https://github.com/ensdomains/ens-contracts/tree/master/contracts/wrapper" target="_blank" rel="noreferrer"><div class="link-embed"><div class="flex-1"><div><h2>ens-contracts/contracts/wrapper at master · ensdomains/ens-contracts</h2><p>The core contracts of the ENS protocol . Contribute to ensdomains/ens-contracts development by creating an account on GitHub.</p></div><span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link h-3 w-3 my-auto inline mr-1"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg>https://github.com</span></div><img src="https://storage.googleapis.com/papyrus_images/77e4610ab7e0f0948883c7b9bb0869140b0c63d9e9f56d8402064bd4adf1a500.png"/></div></a></div></div><p>We also have a section on the Name Wrapper in the support docs with much of this same information: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://support.ens.domains/dev-basics/namewrapper/overview">Developer Basics - Name Wrapper Overview</a></p><p>As well as a how-to section for the new ENS Manager App: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://support.ens.domains/howto/namewrapper/">Support Docs - Name Wrapper How-Tos</a></p><p>There is also a useful third-party integration guide here: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://enslabs.notion.site/NameWrapper-third-party-support-guide-06b45e801830414da9825c8ffb747a30">NameWrapper third party support guide</a></p><p>Also see all of our other technical docs at <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.ens.domains/">https://docs.ens.domains</a>.</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/35b18fd2cae5f38bb607ca4e3a08faedf38857c96103659ccaccd1927aa85b6a.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ENS at StarkWare Sessions]]></title>
            <link>https://paragraph.com/@ens/ens-at-starkware-sessions</link>
            <guid>KCz6wqm0hNUhsvNUDXsY</guid>
            <pubDate>Fri, 10 Feb 2023 11:03:51 GMT</pubDate>
            <description><![CDATA[StarkNet is one of the so-called “Layer 2” chains that depend on the network&apos;s security to Ethereum Layer 1 using the technology called “ZK Rollup”. StarkWare is the development company behind the chain and I was honoured to be invited to their annual event StrakWare Sessions and another event Building Blocks in Tel Aviv. In this blog post, I would like to cover the vibe of the event and how ENS fits into this new upcoming community.Why StarkNet?Despite being in the Ethereum ecosystem, S...]]></description>
            <content:encoded><![CDATA[<p><strong>StarkNet is one of the so-called “Layer 2” chains that depend on the network&apos;s security to Ethereum Layer 1 using the technology called “ZK Rollup”. StarkWare is the development company behind the chain and I was honoured to be invited to their annual event </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://starkwaresessions.co/"><strong>StrakWare Sessions</strong></a><strong> and another event </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.buildingblockstlv.com/"><strong>Building Blocks</strong></a><strong> in Tel Aviv. In this blog post, I would like to cover the vibe of the event and how ENS fits into this new upcoming community.</strong></p><h1 id="h-why-starknet" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Why StarkNet?</h1><p>Despite being in the Ethereum ecosystem, StarkNet is very unique. Most layer 2 chains are so-called “Ethereum Virtual Machine (EVM for short) compatible” where developers can use the same tools to develop smart contracts and end users can use the same wallet such as Metamask. Even though there are multiple projects to make StarkNet compatible with the EVM, they have their own unique programming language called <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.cairo-lang.org/docs/hello_starknet/">Cairo</a>. StarkNet also has so-called “account abstraction” built in that allows users to manage their wallets in more flexible ways. To use their system, you have to install special wallets such as <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.argent.xyz/">Argent</a> X and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://braavos.app/">Braavos</a>.</p><p>Before I came to the event, I have been thinking about why people build on StarkNet with all the extra work of learning new languages and getting used to new software. This trip was to find out the answer to this question. One of the key answers is “Zero Knowledge Proof”, which is lately the hottest topic within the Blockchain ecosystem.</p><div data-type="twitter" tweetId="1622266100921647104" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:43,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2023-02-05T16:09:13.000Z&quot;,&quot;display_text_range&quot;:[0,84],&quot;entities&quot;:{&quot;hashtags&quot;:[{&quot;indices&quot;:[19,41],&quot;text&quot;:&quot;StarkWareSessions2023&quot;}],&quot;urls&quot;:[],&quot;user_mentions&quot;:[{&quot;id_str&quot;:&quot;1191702416971968512&quot;,&quot;indices&quot;:[42,49],&quot;name&quot;:&quot;ZKsync&quot;,&quot;screen_name&quot;:&quot;zksync&quot;},{&quot;id_str&quot;:&quot;914738730740715521&quot;,&quot;indices&quot;:[50,60],&quot;name&quot;:&quot;Polygon&quot;,&quot;screen_name&quot;:&quot;0xPolygon&quot;},{&quot;id_str&quot;:&quot;1062395740373295105&quot;,&quot;indices&quot;:[61,74],&quot;name&quot;:&quot;Aztec&quot;,&quot;screen_name&quot;:&quot;aztecnetwork&quot;},{&quot;id_str&quot;:&quot;1463071986515599362&quot;,&quot;indices&quot;:[75,84],&quot;name&quot;:&quot;Starknet (BTCFi arc)&quot;,&quot;screen_name&quot;:&quot;Starknet&quot;}],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/DqT3lgJ63P&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1622266100921647104/photo/1&quot;,&quot;indices&quot;:[85,108],&quot;url&quot;:&quot;https://t.co/DqT3lgJ63P&quot;}]},&quot;id_str&quot;:&quot;1622266100921647104&quot;,&quot;text&quot;:&quot;Zk giga brains at  #StarkWareSessions2023 @zksync @0xPolygon @aztecnetwork @Starknet https://t.co/DqT3lgJ63P&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;15188720&quot;,&quot;name&quot;:&quot;matoken.eth&quot;,&quot;screen_name&quot;:&quot;makoto_inoue&quot;,&quot;is_blue_verified&quot;:true,&quot;profile_image_shape&quot;:&quot;Circle&quot;,&quot;verified&quot;:false,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/ec7f74c62d9c61586a1715a234487ee53ae1c69ffdcf1f1fa18da3c73eb979f6.jpg&quot;,&quot;highlighted_label&quot;:{&quot;description&quot;:&quot;ens.eth&quot;,&quot;badge&quot;:{&quot;url&quot;:&quot;https://pbs.twimg.com/profile_images/1810706000669798400/nYlIMYkq_bigger.jpg&quot;},&quot;url&quot;:{&quot;url&quot;:&quot;https://twitter.com/ensdomains&quot;,&quot;url_type&quot;:&quot;DeepLink&quot;},&quot;user_label_type&quot;:&quot;BusinessLabel&quot;,&quot;user_label_display_type&quot;:&quot;Badge&quot;}},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1622266100921647104&quot;],&quot;editable_until_msecs&quot;:&quot;1675615153000&quot;,&quot;is_edit_eligible&quot;:true,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/DqT3lgJ63P&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1622266100921647104/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[85,108],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/FoNyaVgXgAgv19M.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:1536,&quot;width&quot;:2048,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:92,&quot;w&quot;:2048,&quot;h&quot;:1147},{&quot;x&quot;:307,&quot;y&quot;:0,&quot;w&quot;:1536,&quot;h&quot;:1536},{&quot;x&quot;:402,&quot;y&quot;:0,&quot;w&quot;:1347,&quot;h&quot;:1536},{&quot;x&quot;:691,&quot;y&quot;:0,&quot;w&quot;:768,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:2048,&quot;h&quot;:1536}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:1536,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:2048},&quot;medium&quot;:{&quot;h&quot;:900,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:510,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/DqT3lgJ63P&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:92,&quot;w&quot;:2048,&quot;h&quot;:1147},{&quot;x&quot;:307,&quot;y&quot;:0,&quot;w&quot;:1536,&quot;h&quot;:1536},{&quot;x&quot;:402,&quot;y&quot;:0,&quot;w&quot;:1347,&quot;h&quot;:1536},{&quot;x&quot;:691,&quot;y&quot;:0,&quot;w&quot;:768,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:2048,&quot;h&quot;:1536}],&quot;expandedUrl&quot;:&quot;https://x.com/makoto_inoue/status/1622266100921647104/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/32de6b07fdb333e5a00438edd3e1b847f962028ccfc7bb10020d3f0a449d9667.jpg&quot;,&quot;width&quot;:2048,&quot;height&quot;:1536}],&quot;conversation_count&quot;:2,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/makoto_inoue">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/ec7f74c62d9c61586a1715a234487ee53ae1c69ffdcf1f1fa18da3c73eb979f6.jpg" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/makoto_inoue" class="twitter-displayname">matoken.eth</a>
              <p><a target="_blank" href="https://twitter.com/makoto_inoue" class="twitter-username">@makoto_inoue</a></p>
    
            </div>
            <a href="https://twitter.com/makoto_inoue/status/1622266100921647104" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      Zk giga brains at  <a class="twitter-content-link" href="https://twitter.com/hashtag/StarkWareSessions2023" target="_blank">#StarkWareSessions2023</a> <a class="twitter-content-link"  href="https://twitter.com/zksync" target="_blank">@zksync</a> <a class="twitter-content-link"  href="https://twitter.com/0xPolygon" target="_blank">@0xPolygon</a> <a class="twitter-content-link"  href="https://twitter.com/aztecnetwork" target="_blank">@aztecnetwork</a> <a class="twitter-content-link"  href="https://twitter.com/Starknet" target="_blank">@Starknet</a> 
      <div class="twitter-media"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/32de6b07fdb333e5a00438edd3e1b847f962028ccfc7bb10020d3f0a449d9667.jpg" /></div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/makoto_inoue/status/1622266100921647104" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            43
          </a>
          <a target="_blank" href="https://twitter.com/makoto_inoue/status/1622266100921647104"><p>10:09 AM • Feb 5, 2023</p></a>
        </div>
    
  </div> 
  </div><p>Zero Knowledge proof (ZKP for short) is a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true while the prover avoids conveying any additional information apart from the fact that the statement is indeed true.  Even though the primary use case of ZKP is for privacy, ZKP provides another trait called “<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ethereum.org/en/zero-knowledge-proofs/#verifiable-computation">Verifiable computation</a>” that allows us to outsource computation to another entity while maintaining verifiable results. Verifiable computation is critical to improving processing speeds on blockchains without reducing security.</p><p>Because StarkNet is one of the first projects built on ZKP, it managed to attract lots of people interested in the topic into the ecosystem. In their “ZKVM OGs” session (ZKVM or ZKEVM is an attempt to convert ZK code into EVM), there were speakers from other chains such as Polygon, Aztec and ZKSync and that created the vibe of “Festival of all things ZKP”, rather than an event only focused on their own chain.</p><p>Many participants are very passionate about the technology around ZKP and StarkNet. Many people seem more interested in building “something cool and innovative” rather than building clones of something already built on Ethereum, even if it costs them to rebuild all the toolings from scratch. There are fewer speculators and more builders.  It reminded me of the passion and enthusiasm of 2016 when I first joined the Ethereum ecosystem.</p><h1 id="h-ens-frens" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">ENS #FRENS</h1><p>The majority of people in the event seemed already in the Ethereum ecosystem.</p><p>When I asked how many people have ENS names to the audience during my panel session, probably more than 80% of people raised their hands. I have been asking this since I joined the ENS team back in 2018 and that was one of the highest ratios.</p><div data-type="twitter" tweetId="1622537808651907075" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:135,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2023-02-06T10:08:53.000Z&quot;,&quot;display_text_range&quot;:[0,64],&quot;entities&quot;:{&quot;hashtags&quot;:[{&quot;indices&quot;:[0,22],&quot;text&quot;:&quot;StarkWareSessions2023&quot;}],&quot;urls&quot;:[],&quot;user_mentions&quot;:[{&quot;id_str&quot;:&quot;996321865311358976&quot;,&quot;indices&quot;:[46,57],&quot;name&quot;:&quot;ens.eth&quot;,&quot;screen_name&quot;:&quot;ensdomains&quot;}],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/tG24o9lBSn&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1622537808651907075/photo/1&quot;,&quot;indices&quot;:[65,88],&quot;url&quot;:&quot;https://t.co/tG24o9lBSn&quot;}]},&quot;id_str&quot;:&quot;1622537808651907075&quot;,&quot;text&quot;:&quot;#StarkWareSessions2023 show hands if you have @ensdomains names! https://t.co/tG24o9lBSn&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;15188720&quot;,&quot;name&quot;:&quot;matoken.eth&quot;,&quot;screen_name&quot;:&quot;makoto_inoue&quot;,&quot;is_blue_verified&quot;:true,&quot;profile_image_shape&quot;:&quot;Circle&quot;,&quot;verified&quot;:false,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/ec7f74c62d9c61586a1715a234487ee53ae1c69ffdcf1f1fa18da3c73eb979f6.jpg&quot;,&quot;highlighted_label&quot;:{&quot;description&quot;:&quot;ens.eth&quot;,&quot;badge&quot;:{&quot;url&quot;:&quot;https://pbs.twimg.com/profile_images/1810706000669798400/nYlIMYkq_bigger.jpg&quot;},&quot;url&quot;:{&quot;url&quot;:&quot;https://twitter.com/ensdomains&quot;,&quot;url_type&quot;:&quot;DeepLink&quot;},&quot;user_label_type&quot;:&quot;BusinessLabel&quot;,&quot;user_label_display_type&quot;:&quot;Badge&quot;}},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1622537808651907075&quot;],&quot;editable_until_msecs&quot;:&quot;1675679933000&quot;,&quot;is_edit_eligible&quot;:true,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/tG24o9lBSn&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1622537808651907075/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[65,88],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/FoRpiDgWYAIESed.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:1536,&quot;width&quot;:2048,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:389,&quot;w&quot;:2048,&quot;h&quot;:1147},{&quot;x&quot;:512,&quot;y&quot;:0,&quot;w&quot;:1536,&quot;h&quot;:1536},{&quot;x&quot;:701,&quot;y&quot;:0,&quot;w&quot;:1347,&quot;h&quot;:1536},{&quot;x&quot;:1100,&quot;y&quot;:0,&quot;w&quot;:768,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:2048,&quot;h&quot;:1536}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:1536,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:2048},&quot;medium&quot;:{&quot;h&quot;:900,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:510,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/tG24o9lBSn&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:389,&quot;w&quot;:2048,&quot;h&quot;:1147},{&quot;x&quot;:512,&quot;y&quot;:0,&quot;w&quot;:1536,&quot;h&quot;:1536},{&quot;x&quot;:701,&quot;y&quot;:0,&quot;w&quot;:1347,&quot;h&quot;:1536},{&quot;x&quot;:1100,&quot;y&quot;:0,&quot;w&quot;:768,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:2048,&quot;h&quot;:1536}],&quot;expandedUrl&quot;:&quot;https://x.com/makoto_inoue/status/1622537808651907075/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/0cbb90555a655bbf68782ca15ef0e1fea7fb6340a023a4ea68be00b9c6ca5a1c.jpg&quot;,&quot;width&quot;:2048,&quot;height&quot;:1536}],&quot;conversation_count&quot;:18,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/makoto_inoue">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/ec7f74c62d9c61586a1715a234487ee53ae1c69ffdcf1f1fa18da3c73eb979f6.jpg" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/makoto_inoue" class="twitter-displayname">matoken.eth</a>
              <p><a target="_blank" href="https://twitter.com/makoto_inoue" class="twitter-username">@makoto_inoue</a></p>
    
            </div>
            <a href="https://twitter.com/makoto_inoue/status/1622537808651907075" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      <a class="twitter-content-link" href="https://twitter.com/hashtag/StarkWareSessions2023" target="_blank">#StarkWareSessions2023</a> show hands if you have <a class="twitter-content-link"  href="https://twitter.com/ensdomains" target="_blank">@ensdomains</a> names! 
      <div class="twitter-media"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/0cbb90555a655bbf68782ca15ef0e1fea7fb6340a023a4ea68be00b9c6ca5a1c.jpg" /></div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/makoto_inoue/status/1622537808651907075" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            135
          </a>
          <a target="_blank" href="https://twitter.com/makoto_inoue/status/1622537808651907075"><p>4:08 AM • Feb 6, 2023</p></a>
        </div>
    
  </div> 
  </div><p>Zero Knowledge is a very advanced topic even within the Ethereum ecosystem. I guess that people interested in such topics are fairly advanced users within the ecosystem hence the high ENS ownership rate.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9fc4df1123ec1c12e1cfee9be1d32f768d6dd544c26ad3be0ed6b116c01fff95.png" alt="https://poap.gallery/event/99102" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://poap.gallery/event/99102</figcaption></figure><p>I have been giving away my personal POAP event badges (with my jpeg drawings) using the ENS card <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.mirror.xyz/eiy6qiOHuiUl90XasUAsu2iajhb72TTYh2xJIz31xEQ">we distributed at the last Devcon</a>. 50 people collected my POAP during my visit to Tel Aviv, and 70% of the recipients set their primary names. Again it shows the high ENS and crypto literacy among the participants.</p><p>And yes, the ENS sticker was popular again among the participants.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a74a2eb4d4edcb47296e5844c21dad91f13ad5f84400f0188c056fbb10fe0c5b.png" alt="https://twitter.com/makoto_inoue/status/1622589760400154624 https://twitter.com/makoto_inoue/status/1622566007280660481" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://twitter.com/makoto_inoue/status/1622589760400154624 https://twitter.com/makoto_inoue/status/1622566007280660481</figcaption></figure><h1 id="h-ens-on-starknet" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">ENS on StarkNet</h1><p>When I spoke to dapps, wallets, and builders that we are working on ENS integration within StarkNet, many people welcomed the initiative and they said they would support ENS on their app.</p><p>As I explained earlier, StarkNet is built on its unique language called Cairo and ENS labs team members do not have expertise in building and maintaining the codebase. This is where the enthusiasm of the StarkNet community kicks in.</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://nethermind.io/">Nethermind</a> is the creator of an Ethereum client software used by over 20% of validators but is also known for building the infrastructure in the StarkNet ecosystem such as Warp (Solidity to Cairo Transpiler) and Voyager (the StarkNet block explorer). They proposed to implement the CCIP-read (our offchain data retrieval framework) on StarkNet at the end of last year, and part of my visit to Tel Aviv was to meet the team to discuss the progress of the proposal which we also provided some grants.</p><p>A week leading up to the StarkWare Sessions summit, there was a hacker house near the Tel Aviv beach organized by “<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.onlydust.xyz/">Only Dust</a>” where people spent a week together to contribute to StarkNet ecosystem projects and get rewards from the prize pool.</p><p>Even though the beach looked amazing from the building, it was one of the windiest times of the year and it was almost impossible to even walk outside so participants couldn’t do much apart from hacking at the venue for the whole week.</p><p>Nethermind, ENS, and starknet.id (Name service on StarkNet) spent significant time at the hacker house discussing the details of how ENS can integrate with StarkNet. You may wonder why we are discussing with competing name service providers. Thanks to the flexible approach of CCIP-read, it is possible for StarNet to integrate with ENS so that matoken.stark on starknet.id can also become a subdomain in Ethereum as matoken.starknet.id</p><p>It is great that community members are actively contributing to the implementation of the standard to the point that they can give the master class on how CCIP-read works to the hacker house participants.</p><div data-type="twitter" tweetId="1621786360880275464" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:51,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2023-02-04T08:22:54.000Z&quot;,&quot;display_text_range&quot;:[0,161],&quot;entities&quot;:{&quot;hashtags&quot;:[],&quot;urls&quot;:[],&quot;user_mentions&quot;:[{&quot;id_str&quot;:&quot;736879428&quot;,&quot;indices&quot;:[3,16],&quot;name&quot;:&quot;🐶, 🐶&quot;,&quot;screen_name&quot;:&quot;OnlyDust_xyz&quot;},{&quot;id_str&quot;:&quot;1483878223540891658&quot;,&quot;indices&quot;:[42,56],&quot;name&quot;:&quot;MempoolSurfer(.eth|.stark)&quot;,&quot;screen_name&quot;:&quot;mempoolsurfer&quot;},{&quot;id_str&quot;:&quot;1023893332940992512&quot;,&quot;indices&quot;:[62,76],&quot;name&quot;:&quot;Nethermind&quot;,&quot;screen_name&quot;:&quot;NethermindEth&quot;},{&quot;id_str&quot;:&quot;996321865311358976&quot;,&quot;indices&quot;:[104,115],&quot;name&quot;:&quot;ens.eth&quot;,&quot;screen_name&quot;:&quot;ensdomains&quot;},{&quot;id_str&quot;:&quot;1463071986515599362&quot;,&quot;indices&quot;:[152,161],&quot;name&quot;:&quot;Starknet (BTCFi arc)&quot;,&quot;screen_name&quot;:&quot;Starknet&quot;}],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/CLq1doAtR2&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1621786360880275464/photo/1&quot;,&quot;indices&quot;:[162,185],&quot;url&quot;:&quot;https://t.co/CLq1doAtR2&quot;}]},&quot;id_str&quot;:&quot;1621786360880275464&quot;,&quot;text&quot;:&quot;At @OnlyDust_xyz hacker house in Tel Aviv @mempoolsurfer from @nethermindeth giving the master class of @ensdomains CCIP-read and how to integrate into @Starknet https://t.co/CLq1doAtR2&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;15188720&quot;,&quot;name&quot;:&quot;matoken.eth&quot;,&quot;screen_name&quot;:&quot;makoto_inoue&quot;,&quot;is_blue_verified&quot;:true,&quot;profile_image_shape&quot;:&quot;Circle&quot;,&quot;verified&quot;:false,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/ec7f74c62d9c61586a1715a234487ee53ae1c69ffdcf1f1fa18da3c73eb979f6.jpg&quot;,&quot;highlighted_label&quot;:{&quot;description&quot;:&quot;ens.eth&quot;,&quot;badge&quot;:{&quot;url&quot;:&quot;https://pbs.twimg.com/profile_images/1810706000669798400/nYlIMYkq_bigger.jpg&quot;},&quot;url&quot;:{&quot;url&quot;:&quot;https://twitter.com/ensdomains&quot;,&quot;url_type&quot;:&quot;DeepLink&quot;},&quot;user_label_type&quot;:&quot;BusinessLabel&quot;,&quot;user_label_display_type&quot;:&quot;Badge&quot;}},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1621786360880275464&quot;],&quot;editable_until_msecs&quot;:&quot;1675500774000&quot;,&quot;is_edit_eligible&quot;:false,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/CLq1doAtR2&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1621786360880275464/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[162,185],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/FoG-FlRXgAAn9xI.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:1536,&quot;width&quot;:2048,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:389,&quot;w&quot;:2048,&quot;h&quot;:1147},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1536,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1347,&quot;h&quot;:1536},{&quot;x&quot;:179,&quot;y&quot;:0,&quot;w&quot;:768,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:2048,&quot;h&quot;:1536}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:1536,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:2048},&quot;medium&quot;:{&quot;h&quot;:900,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1200},&quot;small&quot;:{&quot;h&quot;:510,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:680},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/CLq1doAtR2&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:389,&quot;w&quot;:2048,&quot;h&quot;:1147},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1536,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1347,&quot;h&quot;:1536},{&quot;x&quot;:179,&quot;y&quot;:0,&quot;w&quot;:768,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:2048,&quot;h&quot;:1536}],&quot;expandedUrl&quot;:&quot;https://x.com/makoto_inoue/status/1621786360880275464/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/a254cc46a5ca1be66cf6db2004c9995acb0eccf360096dcb7c7aa8b31571b0b0.jpg&quot;,&quot;width&quot;:2048,&quot;height&quot;:1536}],&quot;conversation_count&quot;:3,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/makoto_inoue">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/ec7f74c62d9c61586a1715a234487ee53ae1c69ffdcf1f1fa18da3c73eb979f6.jpg" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/makoto_inoue" class="twitter-displayname">matoken.eth</a>
              <p><a target="_blank" href="https://twitter.com/makoto_inoue" class="twitter-username">@makoto_inoue</a></p>
    
            </div>
            <a href="https://twitter.com/makoto_inoue/status/1621786360880275464" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      At <a class="twitter-content-link"  href="https://twitter.com/OnlyDust_xyz" target="_blank">@OnlyDust_xyz</a> hacker house in Tel Aviv <a class="twitter-content-link"  href="https://twitter.com/mempoolsurfer" target="_blank">@mempoolsurfer</a> from @nethermindeth giving the master class of <a class="twitter-content-link"  href="https://twitter.com/ensdomains" target="_blank">@ensdomains</a> CCIP-read and how to integrate into <a class="twitter-content-link"  href="https://twitter.com/Starknet" target="_blank">@Starknet</a> 
      <div class="twitter-media"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/a254cc46a5ca1be66cf6db2004c9995acb0eccf360096dcb7c7aa8b31571b0b0.jpg" /></div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/makoto_inoue/status/1621786360880275464" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            51
          </a>
          <a target="_blank" href="https://twitter.com/makoto_inoue/status/1621786360880275464"><p>2:22 AM • Feb 4, 2023</p></a>
        </div>
    
  </div> 
  </div><p>On the second day of the hacker house, we had a workshop with partners who are interested in issuing subdomains on StarkNet with the implementation we are working on. You can read the full meeting notes <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/document/d/1IP-yTHqyxl_t9BoTsYDV0gF_zdh6k8kRRjtHa58j_xU/edit#">here</a>.</p><h1 id="h-talks-and-panels" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Talks and Panels</h1><p>In addition to my talk “ENS on StarkNet” talk (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://speakerdeck.com/makoto_inoue/ens-on-starknet-at-starkware-session">slide</a>), I was invited to two panes both focusing on Identity. The first panel (Identity and Social) was with other decentralised ID providers (Lens, Starknet.id) and Privacy solution provider (Sismo), while the second panel was with projects built on top of ENS (Nimi profile, Esteroid dweb search).</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ca6e8c7a44105f4c9eda979bcc1260793810f02d8db3ee2353d3e6eb1310453e.png" alt="https://twitter.com/davebit\_/status/1622237584725524480https://twitter.com/BuildingBlock_s/status/1622904685093961728" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://twitter.com/davebit\_/status/1622237584725524480https://twitter.com/BuildingBlock_s/status/1622904685093961728</figcaption></figure><p>While both panels made some comparisons between web2 and web3 identities and agree that web3 can provide more transparency and interoperability, they also showed worries about privacy and how ZK technology would fit into the distributed identities. Both talks were recorded so hope the videos get published soon.</p><p>This is it from me. Many thanks to the StarkWare Sessions, BuildingBlocks, OnlyDust event organisers, all the people I met, and Eli Ben-Sasson and Uri Kolodny (the founders of StarkWare) for building such a fantastic technology and community.</p><div data-type="twitter" tweetId="1622166309206114307" tweetData="{&quot;__typename&quot;:&quot;Tweet&quot;,&quot;lang&quot;:&quot;en&quot;,&quot;favorite_count&quot;:15,&quot;possibly_sensitive&quot;:false,&quot;created_at&quot;:&quot;2023-02-05T09:32:41.000Z&quot;,&quot;display_text_range&quot;:[0,107],&quot;entities&quot;:{&quot;hashtags&quot;:[{&quot;indices&quot;:[0,22],&quot;text&quot;:&quot;StarkWareSessions2023&quot;},{&quot;indices&quot;:[94,100],&quot;text&quot;:&quot;frENS&quot;}],&quot;urls&quot;:[],&quot;user_mentions&quot;:[{&quot;id_str&quot;:&quot;928120497505783809&quot;,&quot;indices&quot;:[50,59],&quot;name&quot;:&quot;Uri Kolodny&quot;,&quot;screen_name&quot;:&quot;ukolodny&quot;},{&quot;id_str&quot;:&quot;884309808274341888&quot;,&quot;indices&quot;:[64,77],&quot;name&quot;:&quot;Eli Ben-Sasson | Starknet.io&quot;,&quot;screen_name&quot;:&quot;EliBenSasson&quot;},{&quot;id_str&quot;:&quot;996321865311358976&quot;,&quot;indices&quot;:[82,93],&quot;name&quot;:&quot;ens.eth&quot;,&quot;screen_name&quot;:&quot;ensdomains&quot;}],&quot;symbols&quot;:[],&quot;media&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/iHXfJn5Fz0&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1622166309206114307/photo/1&quot;,&quot;indices&quot;:[108,131],&quot;url&quot;:&quot;https://t.co/iHXfJn5Fz0&quot;}]},&quot;id_str&quot;:&quot;1622166309206114307&quot;,&quot;text&quot;:&quot;#StarkWareSessions2023 had a pleasure of doodling @ukolodny and @EliBenSasson are @ensdomains #frENS moment https://t.co/iHXfJn5Fz0&quot;,&quot;user&quot;:{&quot;id_str&quot;:&quot;15188720&quot;,&quot;name&quot;:&quot;matoken.eth&quot;,&quot;screen_name&quot;:&quot;makoto_inoue&quot;,&quot;is_blue_verified&quot;:true,&quot;profile_image_shape&quot;:&quot;Circle&quot;,&quot;verified&quot;:false,&quot;profile_image_url_https&quot;:&quot;https://storage.googleapis.com/papyrus_images/ec7f74c62d9c61586a1715a234487ee53ae1c69ffdcf1f1fa18da3c73eb979f6.jpg&quot;,&quot;highlighted_label&quot;:{&quot;description&quot;:&quot;ens.eth&quot;,&quot;badge&quot;:{&quot;url&quot;:&quot;https://pbs.twimg.com/profile_images/1810706000669798400/nYlIMYkq_bigger.jpg&quot;},&quot;url&quot;:{&quot;url&quot;:&quot;https://twitter.com/ensdomains&quot;,&quot;url_type&quot;:&quot;DeepLink&quot;},&quot;user_label_type&quot;:&quot;BusinessLabel&quot;,&quot;user_label_display_type&quot;:&quot;Badge&quot;}},&quot;edit_control&quot;:{&quot;edit_tweet_ids&quot;:[&quot;1622166309206114307&quot;],&quot;editable_until_msecs&quot;:&quot;1675591361000&quot;,&quot;is_edit_eligible&quot;:true,&quot;edits_remaining&quot;:&quot;5&quot;},&quot;mediaDetails&quot;:[{&quot;display_url&quot;:&quot;pic.x.com/iHXfJn5Fz0&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1622166309206114307/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[108,131],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/FoMXpBTXwAAugTP.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:2048,&quot;width&quot;:1152,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:753,&quot;w&quot;:1152,&quot;h&quot;:645},{&quot;x&quot;:0,&quot;y&quot;:499,&quot;w&quot;:1152,&quot;h&quot;:1152},{&quot;x&quot;:0,&quot;y&quot;:419,&quot;w&quot;:1152,&quot;h&quot;:1313},{&quot;x&quot;:128,&quot;y&quot;:0,&quot;w&quot;:1024,&quot;h&quot;:2048},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1152,&quot;h&quot;:2048}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:2048,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1152},&quot;medium&quot;:{&quot;h&quot;:1200,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:675},&quot;small&quot;:{&quot;h&quot;:680,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:383},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/iHXfJn5Fz0&quot;},{&quot;display_url&quot;:&quot;pic.x.com/iHXfJn5Fz0&quot;,&quot;expanded_url&quot;:&quot;https://x.com/makoto_inoue/status/1622166309206114307/photo/1&quot;,&quot;ext_media_availability&quot;:{&quot;status&quot;:&quot;Available&quot;},&quot;indices&quot;:[108,131],&quot;media_url_https&quot;:&quot;https://pbs.twimg.com/media/FoMXpryWYAA17D8.jpg&quot;,&quot;original_info&quot;:{&quot;height&quot;:2048,&quot;width&quot;:1536,&quot;focus_rects&quot;:[{&quot;x&quot;:0,&quot;y&quot;:747,&quot;w&quot;:1536,&quot;h&quot;:860},{&quot;x&quot;:0,&quot;y&quot;:409,&quot;w&quot;:1536,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:297,&quot;w&quot;:1536,&quot;h&quot;:1751},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1024,&quot;h&quot;:2048},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1536,&quot;h&quot;:2048}]},&quot;sizes&quot;:{&quot;large&quot;:{&quot;h&quot;:2048,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:1536},&quot;medium&quot;:{&quot;h&quot;:1200,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:900},&quot;small&quot;:{&quot;h&quot;:680,&quot;resize&quot;:&quot;fit&quot;,&quot;w&quot;:510},&quot;thumb&quot;:{&quot;h&quot;:150,&quot;resize&quot;:&quot;crop&quot;,&quot;w&quot;:150}},&quot;type&quot;:&quot;photo&quot;,&quot;url&quot;:&quot;https://t.co/iHXfJn5Fz0&quot;}],&quot;photos&quot;:[{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:753,&quot;w&quot;:1152,&quot;h&quot;:645},{&quot;x&quot;:0,&quot;y&quot;:499,&quot;w&quot;:1152,&quot;h&quot;:1152},{&quot;x&quot;:0,&quot;y&quot;:419,&quot;w&quot;:1152,&quot;h&quot;:1313},{&quot;x&quot;:128,&quot;y&quot;:0,&quot;w&quot;:1024,&quot;h&quot;:2048},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1152,&quot;h&quot;:2048}],&quot;expandedUrl&quot;:&quot;https://x.com/makoto_inoue/status/1622166309206114307/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/3d1d297217c8f1abd40ff097e6c2e7cdc4dbc1a9b0f826432877f07672d3ea04.jpg&quot;,&quot;width&quot;:1152,&quot;height&quot;:2048},{&quot;backgroundColor&quot;:{&quot;red&quot;:204,&quot;green&quot;:214,&quot;blue&quot;:221},&quot;cropCandidates&quot;:[{&quot;x&quot;:0,&quot;y&quot;:747,&quot;w&quot;:1536,&quot;h&quot;:860},{&quot;x&quot;:0,&quot;y&quot;:409,&quot;w&quot;:1536,&quot;h&quot;:1536},{&quot;x&quot;:0,&quot;y&quot;:297,&quot;w&quot;:1536,&quot;h&quot;:1751},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1024,&quot;h&quot;:2048},{&quot;x&quot;:0,&quot;y&quot;:0,&quot;w&quot;:1536,&quot;h&quot;:2048}],&quot;expandedUrl&quot;:&quot;https://x.com/makoto_inoue/status/1622166309206114307/photo/1&quot;,&quot;url&quot;:&quot;https://storage.googleapis.com/papyrus_images/245bef3020265bff634225a330b999c2fcf16ecf10ebf7316478efc4f40d0319.jpg&quot;,&quot;width&quot;:1536,&quot;height&quot;:2048}],&quot;conversation_count&quot;:1,&quot;news_action_type&quot;:&quot;conversation&quot;,&quot;isEdited&quot;:false,&quot;isStaleEdit&quot;:false}"> 
  <div class="twitter-embed embed">
    <div class="twitter-header">
        <div style="display:flex">
          <a target="_blank" href="https://twitter.com/makoto_inoue">
              <img alt="User Avatar" class="twitter-avatar" src="https://storage.googleapis.com/papyrus_images/ec7f74c62d9c61586a1715a234487ee53ae1c69ffdcf1f1fa18da3c73eb979f6.jpg" />
            </a>
            <div style="margin-left:4px;margin-right:auto;line-height:1.2;">
              <a target="_blank" href="https://twitter.com/makoto_inoue" class="twitter-displayname">matoken.eth</a>
              <p><a target="_blank" href="https://twitter.com/makoto_inoue" class="twitter-username">@makoto_inoue</a></p>
    
            </div>
            <a href="https://twitter.com/makoto_inoue/status/1622166309206114307" target="_blank">
              <img alt="Twitter Logo" class="twitter-logo" src="https://paragraph.com/editor/twitter/logo.png" />
            </a>
          </div>
        </div>
      
    <div class="twitter-body">
      <a class="twitter-content-link" href="https://twitter.com/hashtag/StarkWareSessions2023" target="_blank">#StarkWareSessions2023</a> had a pleasure of doodling <a class="twitter-content-link"  href="https://twitter.com/ukolodny" target="_blank">@ukolodny</a> and <a class="twitter-content-link"  href="https://twitter.com/EliBenSasson" target="_blank">@EliBenSasson</a> are <a class="twitter-content-link"  href="https://twitter.com/ensdomains" target="_blank">@ensdomains</a> <a class="twitter-content-link" href="https://twitter.com/hashtag/frENS" target="_blank">#frENS</a> moment 
      <div class="twitter-media"><div class="twitter-two-images"><img class="twitter-image" src="https://storage.googleapis.com/papyrus_images/3d1d297217c8f1abd40ff097e6c2e7cdc4dbc1a9b0f826432877f07672d3ea04.jpg" /></div></div>
      
       
    </div>
    
     <div class="twitter-footer">
          <a target="_blank" href="https://twitter.com/makoto_inoue/status/1622166309206114307" style="margin-right:16px; display:flex;">
            <img alt="Like Icon" class="twitter-heart" src="https://paragraph.com/editor/twitter/heart.png">
            15
          </a>
          <a target="_blank" href="https://twitter.com/makoto_inoue/status/1622166309206114307"><p>3:32 AM • Feb 5, 2023</p></a>
        </div>
    
  </div> 
  </div>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/502467ff9875c5a963dce797e1ccac389f3b370acb3c282712eb7cc80619d5f7.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Postmortem: Null byte vulnerability in ENS subgraph]]></title>
            <link>https://paragraph.com/@ens/postmortem-null-byte-vulnerability-in-ens-subgraph</link>
            <guid>brWBzL2HBerlDM0WUxVH</guid>
            <pubDate>Fri, 03 Feb 2023 01:59:36 GMT</pubDate>
            <description><![CDATA[In April 2022, we were informed of a vulnerability in our subgraph implementation by community contributor lcfr. Due to the way null characters are handled by The Graph and its PostgreSQL backend, it was possible to create lookalike domains that couldn’t be distinguished from the names they imitated using only data from our subgraph. We implemented and deployed mitigations for this in both the subgraph and the metadata API, paid lcfr a bounty, and closed the issue. However, in December 2022, ...]]></description>
            <content:encoded><![CDATA[<p>In April 2022, we were informed of a vulnerability in our subgraph implementation by community contributor lcfr. Due to the way null characters are handled by The Graph and its PostgreSQL backend, it was possible to create lookalike domains that couldn’t be distinguished from the names they imitated using only data from our subgraph.</p><p>We implemented and deployed mitigations for this in both the subgraph and the metadata API, paid lcfr a bounty, and closed the issue. However, in December 2022, the issue reocurred. The below is a postmortem describing the process issues that led to its reappearance, and describing how we will improve our process going forward to prevent this kind of reversion happening in future. We’re posting it as part of our commitment to transparency and process improvement. We’ve also awarded lcfr a further bounty of $20k for finding the reversion.</p><h1 id="h-topic-null-byte-character-bug" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Topic: Null byte character bug</h1><p>Reported date: 05.04.2022 / 10.01.2023</p><h2 id="h-summary" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Summary</h2><p>When an attacker creates a domain with null byte character added in front or back of the name, due to a known issue in The Graph, the attacker is able to impersonate any domain which is already registered by someone else. The issue, first reported around April 2022, we as ENSLabs took an immediate action to prevent it from happening. 9 months later the issue re-appeared.</p><h2 id="h-root-cause" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Root cause</h2><p>PostgreSQL does not store null characters in text columns. The Graph uses PostgreSQL, meaning that any text data saved in a subgraph would never include null characters.</p><h2 id="h-root-cause-for-the-re-appearance" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Root cause for the re-appearance</h2><p>After hotfixes, we haven’t followed up with persistent actions (as I know of) and the hotfix was never pushed into a repository. There was only a hot-fix shipment during the event, to prevent the issue happening till the permanent solution to be put in place. Later, during some other feature changes and refactors, patch was removed unintentionally on the metadata-service side.</p><p>The subgraph fix was never tested, and therefore was never confirmed as working. It assumed that the input label was already void of any null characters. However, event data in graph-node is stored as raw bytes in PostgreSQL. This meant that the label used for generating the comparison labelhash was yet to be stored in PostgreSQL, therefore still had null characters.</p><div data-type="embedly" src="https://github.com/ensdomains/ens-subgraph/commit/a7ec9017e0498ab82e09f0de6157923d0aec9057" data="{&quot;provider_url&quot;:&quot;https://github.com&quot;,&quot;description&quot;:&quot;ENS data source for The Graph. Contribute to ensdomains/ens-subgraph development by creating an account on GitHub.&quot;,&quot;title&quot;:&quot;Fix hash check, add dot check · ensdomains/ens-subgraph@a7ec901&quot;,&quot;author_name&quot;:&quot;ensdomains&quot;,&quot;thumbnail_width&quot;:1200,&quot;url&quot;:&quot;https://github.com/ensdomains/ens-subgraph/commit/a7ec9017e0498ab82e09f0de6157923d0aec9057&quot;,&quot;thumbnail_url&quot;:&quot;https://storage.googleapis.com/papyrus_images/aea688659c637adac6297e69e028ea6cc241ecdb8f1809ef3e2a3871cff40672.png&quot;,&quot;author_url&quot;:&quot;https://github.com/ensdomains&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;provider_name&quot;:&quot;GitHub&quot;,&quot;type&quot;:&quot;link&quot;,&quot;thumbnail_height&quot;:600,&quot;image&quot;:{&quot;img&quot;:{&quot;width&quot;:1200,&quot;height&quot;:600,&quot;src&quot;:&quot;https://storage.googleapis.com/papyrus_images/aea688659c637adac6297e69e028ea6cc241ecdb8f1809ef3e2a3871cff40672.png&quot;}}}" format="small"><link rel="preload" as="image" href="https://storage.googleapis.com/papyrus_images/aea688659c637adac6297e69e028ea6cc241ecdb8f1809ef3e2a3871cff40672.png"/><div class="react-component embed my-5" data-drag-handle="true" data-node-view-wrapper="" style="white-space:normal"><a class="link-embed-link" href="https://github.com/ensdomains/ens-subgraph/commit/a7ec9017e0498ab82e09f0de6157923d0aec9057" target="_blank" rel="noreferrer"><div class="link-embed"><div class="flex-1"><div><h2>Fix hash check, add dot check · ensdomains/ens-subgraph@a7ec901</h2><p>ENS data source for The Graph. Contribute to ensdomains/ens-subgraph development by creating an account on GitHub.</p></div><span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link h-3 w-3 my-auto inline mr-1"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg>https://github.com</span></div><img src="https://storage.googleapis.com/papyrus_images/aea688659c637adac6297e69e028ea6cc241ecdb8f1809ef3e2a3871cff40672.png"/></div></a></div></div><h2 id="h-resolution" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Resolution</h2><p>In the first incident, as an immediate solution to the given problem we decided to make a hotfix on both metadata-service and our subgraph repositories (as I know). The solution was simply double checking if queried labelhash matches with the one provided by the subgraph.</p><p>In the second incident, we will be re-applying the same patches compatible with the current feature set in the metadata-service, will have necessary tests and descriptions, comments alongside the code. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ens-metadata-service/pull/142">https://github.com/ensdomains/ens-metadata-service/pull/142</a></p><p>The fix for the subgraph is a different implementation, each label will be manually checked for null characters and disallowed if the label contains any. Alongside this, a unit test will be added to prevent regression.</p><h2 id="h-preventative-measures" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Preventative Measures</h2><p>Reporting and following persistent fix from the TheGraph side? Having a procedure for both temporary and permanent solutions?<br>Semi - automated deployment for metadata-service, all the code merged into master branch will trigger –no-traffic deployment then we will split the traffic later.</p><h2 id="h-impact" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Impact</h2><p>There are 14 incidents found, some were taken down by marketplaces after our fixes, the others taken down after we gather <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/spreadsheets/u/2/d/1qbLLZYNvFGDhcGSIPY-bLAHXjnuS3qZJrN7fQQIrVl0/edit">the full list</a>.</p><h2 id="h-lessons-learned" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Lessons Learned</h2><p>After an immediate action, be sure persistent solutions are discussed and applied. Even though the hotfixes are temporary, provide necessary testing as soon as possible. Put clear description and comments alongside the hotfixes.</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
        </item>
        <item>
            <title><![CDATA[POAPxENSxIYK swag at Devcon 6 by the numbers
]]></title>
            <link>https://paragraph.com/@ens/poapxensxiyk-swag-at-devcon-6-by-the-numbers</link>
            <guid>hIsJpEVCIr8aYsMe3J8X</guid>
            <pubDate>Thu, 20 Oct 2022 17:47:17 GMT</pubDate>
            <description><![CDATA[If you attended this year’s Devcon, you may have noticed the long queue coming out of the ENS booth.Photo by slobo.eth https://twitter.com/AlexSlobodnik/status/1579987017622224896The queue lasted for 3 days and the wait time was over one hour at the busiest time. That was our ENS swag station where we gave away POAP cards to over 2000 Devcon participants in partnership with POAP and IYK. Many people have heard of POAP, Proof Of Attendance Protocol, and the badge NFT you can collect at events....]]></description>
            <content:encoded><![CDATA[<p>If you attended this year’s Devcon, you may have noticed the long queue coming out of the ENS booth.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e6b037a0524e4282de03e256dc656ed0e221ecce4bdf033749517c2b2559e2ab.png" alt="Photo by slobo.eth https://twitter.com/AlexSlobodnik/status/1579987017622224896" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Photo by slobo.eth https://twitter.com/AlexSlobodnik/status/1579987017622224896</figcaption></figure><p>The queue lasted for 3 days and the wait time was over one hour at the busiest time. That was our ENS swag station where we gave away POAP cards to over 2000 Devcon participants in partnership with <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://poap.xyz/">POAP</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.iyk.app/">IYK</a>. Many people have heard of POAP, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://poap.xyz/">Proof Of Attendance Protocol</a>, and the badge NFT you can collect at events. The POAP team extended the idea to make it as a personal token where anyone can give away the “I met xxx” POAP if they have a special NFC card provided by IYK. Once you touch the card with your mobile phone, it will automatically pop up the POAP claim code. The concept already existed and you can purchase the POAP card <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://iyk.app/shop/poap-card">at IYK site</a>. The swag was to personalize the IYK card with your own ENS name and avatar record set on ENS.</p><h2 id="h-the-road-to-devcon" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The road to Devcon</h2><p>When we announced the swag back in late September, we asked people to pre-register their names at <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://swag.ens.domains/">http://swag.ens.domains/</a> by signing a signature that sends the redeemed QR code via email. We requested people to sign a signature via the address which has a primary name set to prevent people from claiming other people’s cards (such as vitalik.eth). We also asked people to pre-register because we expected that many people wouldn’t bring wallets to sign for security reasons.</p><p>In the end, over 5941 people registered for the card (of which over 800 people registered during the event).</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ad048a6bd49750f83045e59f722d9cdc9b7c27048ede6c3c64f22eeb5a508ac6.png" alt="POAP ENS swag card registration number by date" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">POAP ENS swag card registration number by date</figcaption></figure><p>We were aware that we don’t have enough cards for everyone, hence we printed the cards on the spot for people who pre-registered 24hrs in advance on day one, then allowed anyone who registered on days two and three. We had one special machine brought by nick.eth.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e9bb5d8a4803d4f5074fadbdd18ae10424bc41409a7d45ebdcc2fb7119b6444e.png" alt="Tweet by nick.eth https://twitter.com/nicksdjohnson/status/1577861975060934656" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Tweet by nick.eth https://twitter.com/nicksdjohnson/status/1577861975060934656</figcaption></figure><p>That beast had a printing speed of 180 cards per hour, so the actual printing rate was pretty close to the capacity. In the end, <strong>1,912</strong> cards were printed (we had a total supply of 2,000 but had some defects and duplicate prints).</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5e92c07b4ab5808685c4441979e9287d0a5b1803a48f4da2a2dfdc8c7dfbd9b6.png" alt="Tweet by avsa.eth https://twitter.com/avsa/status/1582367926010937345" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Tweet by avsa.eth https://twitter.com/avsa/status/1582367926010937345</figcaption></figure><h2 id="h-the-game-is-on" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The game is ON</h2><p>Once printed, the participants started swapping each other’s cards and a total of <strong>18,743</strong> POAPs were collected by <strong>2,197</strong> people.</p><p>For those people who didn’t have an avatar set on ENS, we partnered with artist Zsolt Kosa, and created a series of generative art.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/720b797f65671559e7e27c0694ff220136a0dd0692e7cc2e5151f897e3ec8e8f.png" alt="Tweet by esterfonseca.eth https://twitter.com/SterFonseca/status/1580043793554092032" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Tweet by esterfonseca.eth https://twitter.com/SterFonseca/status/1580043793554092032</figcaption></figure><p>Historically, only 10% of ENS users set avatar text records. However, we had nearly half (47%) of the participants put avatars. Nearly half of the ENS card holders set their avatar after we announced so the swag card was a strong incentive for people to set the record.</p><p>The latest addition to the swag page was the leaderboard built by luc.computer throughout the EthBogota hackathon showing who collected the most POAP. Despite offering any prize, people loved the leaderboard!</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4148c2aa857197d06e3c7683f06358f0b074e411876b2ff739fb171d6882e409.png" alt="Photo by jefflau.eth　https://twitter.com/" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Photo by jefflau.eth　https://twitter.com/</figcaption></figure><p>The young gentleman proudly standing in front of the leaderboard with his <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/GinoGuatavita">dad</a> is ethilio.eth. He is 7 years old, came in without an ENS name, and ended up meeting 340 attendees. </p><p>You can see the interactive leaderboard <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://public.flourish.studio/visualisation/11522578/">here</a>. luc.computer had an early lead but brantly.eth and eydrent.eth came very close to the point that they overtook him at some point. luc.computer and ethilio.eth had a “Batman and Robin” style partnership and were running around the venue together to retain the crown in the end.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/633a390bb70c37c60ab626b6baac7aa9743297c863f426bfa3cafc8072090888.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>There is another fun story to share. Towards the end of the swag booth, I was chatting with a pair of the conference facility staff and noticed that they also have their swag cards.</p><p>I asked them if they have been into crypto (hence have them) and their answer was no. Apparently, they came to our booth on the first day concerned that our queue may cause a security hazard but later came back asking for the card.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/469a181c814fe29025466b2795a79c79e8de2a3a5fe4f4f4a04fd1596f49bd62.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>I have been to various Ethereum events since 2016 and have seen many crypto related event swags but it was always too difficult to onboard even people who are into crypto, let alone newbies on the spot. In the year 2022, we now have many mobile wallets to choose from and installing and setting up accounts seem doable. Converting fiat to crypto is still not the easiest hence we onboarded some people (26 people in precise) by gifting ENS names through <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ensfairy.xyz/">ENS fairly</a> bots created by our ENS DAO member <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/gregskril">gregskril.eth</a>. At the end of Devcon, we received the “Trojan Unicorn Award” for bringing web3 and blockchain to the mainstream, without losing our core values. Unlike many speculative NFTs, ENS annual registration ($5/year) is cheap enough to gift and we think it’s the best first NFT for anyone new to crypto and Web3.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/962e222c84d6b4769019fe9623a2d219b7c762de0b4b87b7ba7335ea6aba08a3.png" alt="Tweet via ENSDAO　https://twitter.com/ENS_DAO/status/1582098386315988992" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Tweet via ENSDAO　https://twitter.com/ENS_DAO/status/1582098386315988992</figcaption></figure><p>This was our first swag store attempt and we have already received many requests to deploy it in other events. Please let us know if there are ways to improve</p><h2 id="h-grab-the-data" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Grab the data</h2><p>This experiment also generated tons of interesting insights to write this post. There are some other interesting insights which I created on the following dashboard.</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://dune.com/makoto/ens-poap-devcon6">Dune Dashboard</a> = L1 onchain activity of the swag card registrant</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://public.flourish.studio/story/1717859/">Flourish Story</a> = for POAP claim network graph and the leaderboard</p></li></ul><p>The data and scripts I used are open-sourced at <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/makoto/ens-card-data">https://github.com/makoto/ens-card-data</a> . If you are a data whiz, please dive into the data and show us more interesting insights!</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/33af4aa6021fae901f75f3b6a1cabe8a94f4c05c2f4d5e0f750502dd7ef3f507.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[ENS at Ethcc5]]></title>
            <link>https://paragraph.com/@ens/ens-at-ethcc5</link>
            <guid>xbpGhZA1PJKgBny6JHO2</guid>
            <pubDate>Wed, 27 Jul 2022 12:14:40 GMT</pubDate>
            <description><![CDATA[By matoken.eth I have attended ETHcc every year since 2017 (when it was still called EDCON) and I am glad to be able to come back to Paris again with alisha.eth and lucemans.eth. Here’s a recap of how ENS participated at Ethcc5 and Ethcc week in Paris.ENS talk sessions** ** I gave a quick recap of the growth ENS had over the last year as well as introduced our new features https://alpha.ens.domains site and an upcoming feature called NameWrapper — it turns any ENS subdomain into an NFT with a...]]></description>
            <content:encoded><![CDATA[<p>By matoken.eth</p><p>I have attended ETHcc every year since 2017 (when it was still called EDCON) and I am glad to be able to come back to Paris again with alisha.eth and lucemans.eth.</p><p>Here’s a recap of how ENS participated at Ethcc5 and Ethcc week in Paris.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b23903c212e84f9cf316e291ffe908953ba62a87cdb54ab7a6db80c00f70469f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h1 id="h-ens-talk-sessions" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">ENS talk sessions</h1><p>** **</p><p>I gave a quick recap of the growth ENS had over the last year as well as introduced our new features <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://alpha.ens.domains">https://alpha.ens.domains</a> site and an upcoming feature called NameWrapper — it turns any ENS subdomain into an NFT with a more flexible access control feature called a “fuse”. ** **</p><p>It was also great to showcase not only what our team worked on but also other sites our ecosystem members have built such as <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ethleaderboard.xyz">https://ethleaderboard.xyz</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.vision">https://ens.vision</a> . The full video and the slides are as follows.</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=UPWYoJnmCUo">video</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://speakerdeck.com/makoto_inoue/ethcc-the-state-of-ens-2022">slide</a></p></li></ul><p>alisha.eth was also in town joining the DAO governance workshop hosted by Optimism.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c2065dde3a215e3a9d51e6bf81011c94f6310cefebf6599280281d2918538bfa.png" alt="https://twitter.com/futurealisha/status/1549754838644293633" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://twitter.com/futurealisha/status/1549754838644293633</figcaption></figure><p>** **</p><p>** **</p><h1 id="h-l2" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">L2</h1><p>One thing I didn’t cover in my “State of ENS talk” is our plan for L2 integration. I actually gave a whole talk about our ENS L2 strategy last year (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=fTgNVu1Y720&amp;t=1s">talk video</a>). Our overall approach hasn’t changed since last year but we now have <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.ens.domains/dapp-developer-guide/ens-l2-offchain">a complete specification</a> and library support such as ethers.js  </p><p>I spent most of my time at ETHcc talking to various chain and bridge providers, exploring the possibilities of bringing the integrations to their chains. As our integration relies on roll-up mechanism of the L2 chains, it was great to see many zk rollup providers (zkSync, Polygon Hermez, Scroll) announce their own version of zkEVM, which was a hot topic during Ethcc. Here is my ETHcc5 watch list, all related to cross-chain bridge and interoperability (yes, I didn’t have time to attend all the talks because I was too busy meeting people). </p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=Vyd1Wcqrs54">Trustless bridges in the Ethereum Beaconverse</a> = Gnosis trustless bridge</p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=FJWCJ5s_PiY">State tree - Hermez zkEVM</a> </p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=z44yN5ApOE8">Polygon-Hermez zkEVM BridgeL1-L2</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=zXhuFsUOYQM">Beamer - an optimistic bridge</a> </p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=vXuRJgyISI0">Optimism Bedrock: Upgraded optimistic rollups architecture</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=2RjkkoGUTx0">Nicolas Laurent : The Soul of a New Machine: Next-Generation Optimistic Rollups with Cannon</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=L4DJ28I5EnI">The Age of Rollups = Arbitrum</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=6uLlTLE7qrQ">Celestiums: Scaling Ethereum Rollups by using Celestia for Data Availability</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=4asIQyWwGko">StarkNet - Next steps</a></p></li></ul><br><p>One thing I was asked repeatedly is “which chain is ENS picking”. The short answer is “we don’t pick one, your Dapp/Wallet/Exchange does”.</p><p>This is the diagram I often show when I explain our architecture.** **</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/34b6ea3a5b4b4ba2d5cd127eb2af8af761aa101617bb361922730f1ef57b2f4b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Our extensible ENS architecture allows each domain (eg: uniswap.eth, mirror.xyz) to select a “resolver” contract that can proxy their data access layer to the chain of their choice through so-called “gateway” service.  The ideal use case is a dapp/wallet/exchange for picking the chain they already support and issue subdomains on the chain, which anyone can look up through our CCIP Read framework. If you want ENS to be supported on your favourite chain, it is important to understand that we need to work on both the chain and dapps that live on the chain. If you know any dapps/wallets/exchanges which could potentially issue subdomains to their users, please do let us know so that we can work with them, alongside the chains they support.</p><h1 id="h-irl-merch" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">IRL merch</h1><p>Since EthBarcelona we bought a few small inkless printers and printed name tags with your .eth names and avatars to those who set the avatar text record. Even though many participants now have their own ENS name, it’s still a minority of people who actually know how to set up their PFP as an ENS avatar. However, many people came back to me the following day so I print name tags for them. Two people even set up an ENS avatar record in the middle of the side events (it was at a Wallet Connect side event so the ratio of participants who can interact with Ethereum from mobile was high).</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/787e2512c02bf5ea7e7d056d53a338b63a9fbde2cd5434470d0f58858222c724.png" alt="https://twitter.com/makoto_inoue/status/1548770124668276736 and https://twitter.com/schin_tomar/status/1550507868436193281" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://twitter.com/makoto_inoue/status/1548770124668276736 and https://twitter.com/schin_tomar/status/1550507868436193281</figcaption></figure><p>For those of you who want to set the avatar text record can <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://medium.com/the-ethereum-name-service/step-by-step-guide-to-setting-an-nft-as-your-ens-profile-avatar-3562d39567fc#:~:text=3">follow this guide</a>%20Setting%20the%20Avatar%20record&amp;text=Make%20sure%20you%20Connect%20with,ll%20fine%20the%20avatar%20record.&amp;text=You%20can%20find%20all%20of,of%20your%20NFT%20on%20OpenSea.). Our ENS manager is still difficult to set NFT as an avatar text record. Our dev taytems.eth created a small utility site <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://avatars.taytems.xyz/">https://avatars.taytems.xyz/</a> to generate the text record for NFTs. </p><p>If you missed us at Ethcc but want to have ENS name tag, you can go to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ensdomains.github.io/ens-print">https://ensdomains.github.io/ens-print</a> and generate one on your own. The example below is how vitalik.eth looks and I managed to stick it into Vitalik himself right before his keynote.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/613b6d0b7c8b02d8c02cb1965ccf3bf88aec03cc9ca4b6971cfa6d4607629ac3.png" alt="https://twitter.com/makoto_inoue/status/1550102189510742016" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://twitter.com/makoto_inoue/status/1550102189510742016</figcaption></figure><p>** **</p><p>I was not the only one with ENS merch. Our ENS DAO delegate/steward avsa.eth brought tons of ENS badges and placed them everywhere possible, even on his own vest!</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7f885b44395f52622b26790a6587fb56bb9b85f62be610d34607cd6f97e1ff44.png" alt="https://twitter.com/AnettRolikova/status/1549387223749038080 and https://twitter.com/avsa/status/1549148899759251456" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://twitter.com/AnettRolikova/status/1549387223749038080 and https://twitter.com/avsa/status/1549148899759251456</figcaption></figure><p>Hope you enjoyed the little tour of our ENS team activity at Ethcc5 in Paris. Some of our team members will be at other IRL events so make sure to set your avatar text record in advance to get your ENS sticker!</p><p>**</p><p>**</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
        </item>
        <item>
            <title><![CDATA[1 Million names and the next milestone]]></title>
            <link>https://paragraph.com/@ens/1-million-names-and-the-next-milestone</link>
            <guid>6txDZAHPWlH9IXcMvJoK</guid>
            <pubDate>Mon, 09 May 2022 14:08:48 GMT</pubDate>
            <description><![CDATA[During ENS Twitter spaces celebrating the ENS 5th anniversary and reaching 1 million registered names, a couple of people asked “What’s the next big milestone?”The next big milestones will be 1000 integrations and 1 million owners. I would like to address how we achieve that and what key metrics we should keep an eye on.Names > Address > Primary Names.eth registration exploded when people started buying 3-5 digits names and the 10k Club was quickly formed.https://dune.com/makoto/Digit-.eth-EN...]]></description>
            <content:encoded><![CDATA[<p>During ENS Twitter spaces celebrating the ENS 5th anniversary and reaching 1 million registered names, a couple of people asked “What’s the next big milestone?”</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/86584c66916067f769b37faf69ee33044dfd24842155e41f6e949545bd1b0c63.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>The next big milestones will be 1000 integrations and 1 million owners. I would like to address how we achieve that and what key metrics we should keep an eye on.</p><h1 id="h-names-greater-address-greater-primary-names" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Names &gt; Address &gt; Primary Names</h1><p>.eth  registration exploded when people started buying 3-5 digits names and the 10k Club was quickly formed.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/048c109c51a56413a562284c1306c5c787238010ff78e7f90b675c9eb53f48e1.png" alt="https://dune.com/makoto/Digit-.eth-ENS-dashboard" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">https://dune.com/makoto/Digit-.eth-ENS-dashboard</figcaption></figure><p>This brought huge revenue to ENS DAO (we had $7 million .eth registration revenue in April, and already have over $5 million within the first week of May). The news about the 10k club was spread across CT and that also brought the number of unique participants (unique Ethereum addresses that hold ENS names) where it grew monthly new users from 33k to 41k.</p><p>However, the most important metric is the total number of primary names set and this number growth hasn’t shown as much increase as other metrics.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/63ce22fb51ec4f1495edc1b8c87dfabc8accbca7869c43acf9c169bc468bc38d.png" alt="70% of ENS participating addresses set primary names" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">70% of ENS participating addresses set primary names</figcaption></figure><p>1.157 million names are owned by 407k addresses, meaning each address has an average of 2.8 ENS names, which seems fair (I also have matoken.eth and makoto.eth owned by 2 different addresses). Of the 407k addresses, 70% of addresses set a primary name which isn’t too bad either. It is likely that the real unique ENS users are still somewhere around 300k-400k.</p><p>The primary name is what allows ENS to be “Web 3 user name”.</p><p>By associating your ETH address to your ENS name, dapps and marketplaces can recognise your ENS user name.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/dbb06d791194521e4b5e87ede2b3b18fed1682a140e289a7940fb9ef961d76ca.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>I personally think that the primary name registration number is the real indicator of ENS as a web3 user name. The more people set their primary name, the more people see in various places and it has the maximum marketing effect as well. Our next release should allow users to set their primary name at the registration point so we hope the primary name number will go up faster.</p><h1 id="h-avatar-record-decentralised-web-and-other-cryptocurrencies" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Avatar record, decentralised web, and other cryptocurrencies</h1><p>The original use case of ENS was to lookup Ethereum addresses and it still remains as the majority of use cases.</p><p>In comparison to ETH addresses which are automatically set at registration, the number of other record sets still has lots of space to grow. Avatar record in particular has grown a lot in April, almost similar growth ratio to the last November whereas decentralised web (aka Dweb) and other cryptocurrencies have decreased slightly.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/23ea7d8e7185fc9772a9f27f7e116be7c08bd17139228b4d8f07e7c722f0fc93.png" alt="Total avatar set is 6% of addresses that set primary names" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Total avatar set is 6% of addresses that set primary names</figcaption></figure><p>Dweb provides decentralized hosting via IPFS and Avatar text record shows up on Dapps such as Uniswap to show the avatar record you associated with your ENS name set as your primary name.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/efcce6c0fd443e97c8c2c92458467ca043be977b1c1155a52c35c8a4e4eef90d.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Even though these new fields make your ENS names a lot more productive, the uptake number is still low. Part of the reason is that our current site is a bit difficult to set dweb address and avatar record. We are working hard for the new UI (you can see the preview version <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://preview.ens.domains/">here</a>) that makes setting more records easier.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ea9e26c9ddf48e3aaf9297da4c2c8fd406be7f92717d98d30b885fe1c124594b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>Once the new version is released, I would like to see the Avatar fields to be set for more than 10% of all the addresses with primary names set.</p><p>The number of Integrations</p><h2 id="h-the-number-of-integrations" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The number of integrations.</h2><p>Unlike the metrics I have already covered, the number of integration can only be tracked manually. We keep adding the integration partners to our <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.domains/">website</a> , but if you find any dapps not listed on the site, please contribute by raising PR like <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ensdomains/ensdomains-v2/pull/450/files">this</a>.</p><p>If you notice that the site you use doesn’t support ENS, please pledge to the dapps!</p><p>There is also <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discuss.ens.domains/t/ens-affiliate-marketing-affiliate-program/11819">a discussion</a> about creating an affiliate program targeted for content creators but the program can be also useful for Dapp integrations. It not only incentivise Dapps to integrate with us but also it will give good data insight about which projects bring more users to ENS (either offchain data like google analytics, or onchain data if we decide to handle it on chain).</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/096a778adee1392726f5603668ae2a9252a7ff48ab6654564ca0350ad6a62fe8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>The increase in the number of integration makes ENS names not only more useful but also gives natural exposure of ENS brand to the rest of the users who are new to Web3.</p><p>I can see the positive cycle that the increase of Primary Name &amp; Avatar record leading to more Integration leading to more ENS user name registration.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3f5a695dbf10f7cc0823edc6797a9e1a3f5bb7e09072de23952db5b207ff364d.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><h2 id="h-summary" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Summary</h2><p>Our 1M name registration brought large revenue and community awareness. To transition from the short term hype to the continuous growth, this is a great opportunity to improve other key metrics</p><ul><li><p>Unique owner names = from 400k to 1M (x2.5)</p></li><li><p>Primary names = from 291k to 900K (x3)</p></li><li><p>Avatar text record = from 18k to 180K (x10)</p></li><li><p>Dapp integration = from 502 to 1000(x2)</p></li></ul><p>The increase of the number in each metric will have a positive effect on other numbers and we need the support from ENS community to achieve the target</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
        </item>
        <item>
            <title><![CDATA[$ENS Now Available for Claiming]]></title>
            <link>https://paragraph.com/@ens/ens-now-available-for-claiming</link>
            <guid>4TGj5y1L5MhbiR9oLOUv</guid>
            <pubDate>Tue, 09 Nov 2021 00:08:00 GMT</pubDate>
            <description><![CDATA[We’re pleased to announce the launch of $ENS, the governance token of ENS. Here’s what you need to know.ENS Token & Claim SiteThe claim site is now open: claim.ens.domains. The ENS token contract is token.ensdao.eth: 0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72 Double check the website URL and contract address to avoid scams. Users have until May 4th, 2022 to claim their tokens, after which any remaining tokens will be sent to the DAO treasury. The snapshot for all allocations - airdrop, contri...]]></description>
            <content:encoded><![CDATA[<p>We’re pleased to announce the launch of $ENS, the governance token of ENS.</p><p>Here’s what you need to know.</p><h2 id="h-ens-token-and-claim-site" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">ENS Token &amp; Claim Site</h2><p><strong>The claim site is now open: </strong><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://claim.ens.domains/"><strong>claim.ens.domains</strong></a><strong>.</strong></p><p>The ENS token contract is token.ensdao.eth: 0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72</p><p>Double check the website URL and contract address to avoid scams.</p><p><strong>Users have until May 4th, 2022 to claim their tokens</strong>, after which any remaining tokens will be sent to the DAO treasury.</p><p><strong>The snapshot for all allocations - airdrop, contributors, Discord users, etc - took place on October 31, 2021.</strong> While we encourage you to continue to use ENS and participate in the community, nothing you do now will change your token allocation.</p><p>During the first week, anyone claiming their tokens will also vote on the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discuss.ens.domains/t/proposed-ens-constitution/814">proposed ENS Constitution</a>, a set of rules for the DAO. If you wish to have a say on the Constitution, be sure to visit the claim site and cast your votes (which are off-chain and gasless) during the first week; you can still come back later and complete the process to claim your tokens (which requires gas) at any time before May 4, 2022.</p><p>Here is a YouTube video walking through the token claim app:</p><div data-type="youtube" videoId="YOjRlzGz6yY">
      <div class="youtube-player" data-id="YOjRlzGz6yY" style="background-image: url('https://i.ytimg.com/vi/YOjRlzGz6yY/hqdefault.jpg'); background-size: cover; background-position: center">
        <a href="https://www.youtube.com/watch?v=YOjRlzGz6yY">
          <img src="{{DOMAIN}}/editor/youtube/play.png" class="play"/>
        </a>
      </div></div><h2 id="h-dao-overview" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">DAO Overview</h2><p>The core components of ENS are decentralized and self-running (e.g., no one can take away another person’s .ETH name), but there are a few things that require some human discretion.</p><p>In its first act as a DAO, $ENS token holders will vote to formally request from the ENS root keyholders the ability to:</p><ul><li><p>govern protocol parameters, like pricing, the price oracle, and more</p></li><li><p>control funds from the existing community treasury, as well as receive future revenue.</p></li></ul><p>For more detail on the DAO, its goals, and the token distribution, see <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.mirror.xyz/-eaqMv7XPikvXhvjbjzzPNLS4wzcQ8vdOgi9eNXeUuY">this earlier Mirror post</a>.</p><h2 id="h-get-involved" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Get Involved</h2><p>If you’ve ever owned an ENS name, you’re eligible to receive $ENS governance tokens. Head over to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://claim.ens.domains/">claim.ens.domains</a> to claim your tokens and vote on the ENS Constitution.</p><p>In the claim process, you will be encouraged to delegate your voting power to one of the delegates that have nominated themselves to help with ENS governance. If you don’t plan on being an active governance participant, this is a great way to ensure the protocol continues to grow and develop in the right direction.</p><p>There are many more ways to be involved in ENS governance other than being a delegate. To get more involved with ENS governance, join the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chat.ens.domains/">ENS Discord</a> and visit the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discuss.ens.domains/">ENS governance forum</a> to weigh in on proposals or draft your own.</p><p>Let’s build the future of the Internet together.</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/e8845d1fed33b4360e45e55cba110c61fb3fd294b6e08553c308c9ba6f4b9cad.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Ethics Policy - True Names LTD]]></title>
            <link>https://paragraph.com/@ens/ethics-policy-true-names-ltd</link>
            <guid>l5szm1BwWRSUv5q2cLeW</guid>
            <pubDate>Thu, 04 Nov 2021 03:29:03 GMT</pubDate>
            <description><![CDATA[We have the highest trust in the core ENS team at True Names LTD. Nonetheless, in preparation for the DAO and $ENS token launch, we explicitly discussed the expectation that no one would misuse insider information to unfairly profit from the upcoming airdrop, for themselves or others. This also applies to all the work we do, e.g. no one privy to insider information due to working for True Names LTD should be using it to give themselves an advantage with ENS names sales. Several weeks ago, we ...]]></description>
            <content:encoded><![CDATA[<p>We have the highest trust in the core ENS team at True Names LTD. Nonetheless, in preparation for the DAO and $ENS token launch, we explicitly discussed the expectation that no one would misuse insider information to unfairly profit from the upcoming airdrop, for themselves or others.</p><p>This also applies to all the work we do, e.g. no one privy to insider information due to working for True Names LTD should be using it to give themselves an advantage with ENS names sales.</p><p>Several weeks ago, we worked with our lawyer to produce the ethics policy below.</p><p>We’re sharing it publicly to demonstrate our commitment to these principles. We encourage other blockchain projects to consider producing and publicly sharing similar statements.</p><hr><h3 id="h-introduction" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Introduction</h3><p>True Names Ltd (“Company”, “we”, “us”) is a non-profit company based in Singapore that leads and supports development and standardisation of the Ethereum Name Service project (“<strong>ENS</strong>”). Our donors, contributors and the Ethereum ecosystem as a whole trusts and relies on us to act responsibly and with integrity at all times. As such, the manner in which we conduct ourselves and deal with others will impact how well we build, retain and strengthen their trust. As contractors, volunteers, interns, consultants, and/or business partners (“<strong>you</strong>”, “<strong>your</strong>”, “<strong>yourself</strong>”) who work with us in any capacity, how you conduct yourself will similarly be a reflection on us as well.</p><p>It is our policy (“<strong>Policy</strong>”) to conduct all of our business in an honest and ethical manner. We take a zero-tolerance approach to exploitation or improper disclosure of confidential and proprietary information for personal gain and are committed to acting professionally, fairly and with integrity in all our business dealings and relationships.</p><h3 id="h-definitions" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Definitions</h3><p>In this Policy, the following terms have the following meanings ascribed to them:</p><p>“<strong>Confidential Information</strong>” means any information and data of any kind that the Company designates as being confidential or which, under the circumstances surrounding disclosure, ought to be treated as confidential whether disclosed before, on or after the date of this Policy by the Company or any of its representatives, to you or any of your representatives.</p><p>“<strong>ENS Digital Assets</strong>” means any digital assets launched by the ENS Project or by projects in which the Company is involved, including (without limitation) ENS names.</p><p>“<strong>Inside Information</strong>” means any market-sensitive or material non-public information, which refers to any information not publicly available that a reasonable investor would consider in deciding whether to buy or sell ENS Digital Assets and may relate to the Company, the ENS Project, a partner, sponsor, donor, project, ENS names or digital assets.</p><h3 id="h-guidance-on-confidential-information" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Guidance on Confidential Information</h3><p>Just to provide a few examples, Confidential Information includes the following:</p><ul><li><p>technology, information and/or personal data provided by the Company pertaining to the Company’s business, operations, processes, plans, projects or strategies;</p></li><li><p>the Company’s trade secrets, market opportunities, negotiations, discussions, and contracts with other companies, customers or projects; and</p></li><li><p>any information relating to or generated by the Company that is not publicly available through independent public sources (e.g. the newspaper, websites, social media pages).</p></li></ul><h3 id="h-guidance-on-inside-information" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Guidance on Inside Information</h3><p>There is no bright line test for determining whether particular information is material or market-sensitive. Such a determination depends on the facts and circumstances of each case. If information could reasonably be expected to affect the price of the ENS Digital Assets, or would provide a buyer or seller of ENS Digital Assets with a material informational advantage in a decision to buy, sell or register any ENS Digital Assets, then such information should be considered material or market-sensitive. Importantly, whether such information is considered material or market-sensitive will be considered with the benefit of hindsight. Hence, if the price of the ENS Digital Asset changed as a result of such information have been made public, it will likely be considered material or market-sensitive by us.</p><p>Just to provide a few examples, the following information and matters should normally be regarded as material or market-sensitive:</p><ul><li><p>news about token sales, airdrops, token listings, forks, project launches;</p></li><li><p>financial performance of the Company, or significant changes in financial performance or liquidity;</p></li><li><p>strategic plans, business initiatives, potential mergers or acquisitions, new partnerships;</p></li><li><p>new major contracts, orders, projects, suppliers, customers or finance sources or loss thereof;</p></li><li><p>major discoveries or significant changes or developments in research or technologies;</p></li><li><p>significant changes in senior management;</p></li><li><p>actual or threatened major litigation, or resolution of such litigation; and</p></li><li><p>contents of draft press releases and publications which may affect the market price of the ENS Digital Assets.</p></li></ul><h3 id="h-what-is-prohibited" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">What is prohibited?</h3><p>You may, during the course of your work, be aware of Inside Information and Confidential Information.</p><p><strong>Confidentiality obligations</strong></p><p>You must always:</p><ul><li><p>protect Confidential Information – even after your engagement, partnership, collaboration or work with the Company ends;</p></li><li><p>keep electronic and paper documents and files containing Confidential Information in a safe place with access limited to only those who are authorised to peruse it;</p></li><li><p>obtain appropriate approval from Confidential Information content owners and non-disclosure agreements from external parties before releasing Confidential Information to them;</p></li><li><p>ensure that information received from third parties is from authorised sources and that information is used in accordance with specified conditions; and</p></li><li><p>implement necessary safeguards to protect Confidential Information against risks of loss or destruction, or unauthorised access, use, modification or disclosure.</p></li></ul><p>You must never:</p><ul><li><p>disclose Confidential Information to any third party unless you are authorised by us to share such Confidential Information with a specified third party for business reasons; or</p></li><li><p>provide personal information to anyone without appropriate approval.</p></li><li><p>General Prohibitions against insider trading, market misconduct and abuse of first-mover advantage</p></li></ul><p>You must never:</p><ul><li><p>use Inside Information and/or Confidential Information for your personal gain or to cause detriment to others either directly or indirectly (including without limitation by way of information-advantaged decisions to register or purchase ENS names, or through family members, friends, associates or acquaintances);</p></li><li><p>engage in activities to manipulate the price of Company-related Digital Assets;</p></li><li><p>discuss or disclose any Inside Information and/or Confidential Information inside or outside your dealings with the Company other than in the proper course of business and as authorised as part of your regular duties for the Company;</p></li><li><p>provide any Inside Information and/or Confidential Information to another person who may trade or advise others to trade on the basis of that Inside Information and/or Confidential Information; and/or</p></li><li><p>make any recommendations or give trading advice of any kind to others to deal in ENS Digital Assets, where you are aware of Inside Information and/or Confidential Information.</p></li></ul><p>If in doubt as to whether any course of action may be a breach of this Policy, please consult Nick Johnson or Brantly Millegan.</p><p><strong>Breach of this Policy</strong></p><p>The consequences of prohibited insider trading, market manipulation and breach of confidence can be severe. Even an appearance of a breach of this Policy can seriously damage our reputation. As such, we may terminate any contractual relationship with you without any compensation and without notice, in the event that we find that you are in breach of this Policy.</p><p>Persons found in violation of this Policy may also be required to disgorge the profit made or loss avoided by the trade of ENS Digital Assets, or purchase, registration or transfer of ENS names and compensate the Company for such related losses.</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
        </item>
        <item>
            <title><![CDATA[$ENS Token Allocation (Claiming Opens Nov 8)]]></title>
            <link>https://paragraph.com/@ens/ens-token-allocation-claiming-opens-nov-8</link>
            <guid>1U65f1tPDcTMuBMwRJ5T</guid>
            <pubDate>Wed, 03 Nov 2021 03:48:58 GMT</pubDate>
            <description><![CDATA[Since we announced that ENS would be launching a DAO and $ENS token to govern key components of the ENS protocol, we’ve had a lot of inquiries as to how the DAO will be structured and what the token airdrop to community members will look like. Here’s an overview of what we have planned.ENS Token and DAO OverviewThe core components of ENS are decentralized and self-running (e.g., no one can take away another person’s .ETH name), but there are a few things that require some human discretion. Du...]]></description>
            <content:encoded><![CDATA[<p>Since we <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.mirror.xyz/">announced that ENS would be launching a DAO</a> and $ENS token to govern key components of the ENS protocol, we’ve had a lot of inquiries as to how the DAO will be structured and what the token airdrop to community members will look like.</p><p>Here’s an overview of what we have planned.</p><h2 id="h-ens-token-and-dao-overview" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">ENS Token and DAO Overview</h2><p>The core components of ENS are decentralized and self-running (e.g., no one can take away another person’s .ETH name), but there are a few things that require some human discretion.</p><p>During the first week of the claim process, community members will vote directly on a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discuss.ens.domains/t/proposed-ens-constitution/814">proposed ENS Constitution</a>, a set of rules and guidelines for the community.</p><p>After that, and in its first act as a DAO, $ENS token holders will vote on a proposal to formally request from the root key holders the ability to:</p><ul><li><p>govern protocol parameters, like .ETH pricing, the price oracle, and more</p></li><li><p>control funds from the existing community treasury, as well as receive future revenue.</p></li></ul><p>Proposals will require the support of at least 100k tokens to go to a vote and a simple majority voting to approve with a quorum of at least 1% of all tokens.</p><p>Claims will open on November 8, 2021. Users will be encouraged to delegate their voting power to a community member that represents their views (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.mirror.xyz/cfvfKRpQSPtZJjPQOprWqEeqv2rytE7tQkxDg6ht7Oo">call for delegates</a>) and will have <strong>until May 4th, 2022 to claim their tokens, after which any remaining tokens will be sent to the DAO treasury</strong>. <strong>NOTE: The snapshot for the airdrop was taken October 31, 2021. Nothing you do after that date will change your airdrop amount or get you an airdrop if you don’t already have one.</strong></p><p>We have established an organization called The ENS Foundation in the Cayman Islands to legally represent the DAO, e.g. fulfill any tax obligations. The foundation&apos;s articles of incorporation give token holders the right to appoint and dismiss directors, and to instruct the foundation to take real-world actions. More details are available <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.gitbook.io/ens-dao-governance-docs/">here</a>.</p><h2 id="h-ens-constitution" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">ENS Constitution</h2><p>As part of the claim process, those claiming $ENS tokens will vote on a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discuss.ens.domains/t/proposed-ens-constitution/814">proposed ENS Constitution</a>. The ENS Constitution is a set of rules and guidelines for the ENS community on how ENS should be governed. For an article to pass, it’ll need 67% approval of all votes cast in the first week of the token launch.</p><p>The Constitution can always be amended by the ENS DAO in the future with a threshold of 67% approval and a quorum of 5% of total tokens.</p><h2 id="h-ens-token-distribution" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">ENS Token Distribution</h2><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6a180b1adeae88fa9ddb1ef56a13e54640ac2c72fdb42998c8a7c73d6d921897.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>The contract address for $ENS is token.ensdao.eth (0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72).</p><p>There will be 100 million total $ENS tokens, and the distribution is as follows:</p><ul><li><p>25% airdrop to .ETH holders (&gt;137k accounts)</p></li><li><p>25% to ENS contributors (&gt;100 individuals and groups, plus hundreds of Discord users)</p></li><li><p>50% to the DAO community treasury</p></li></ul><h3 id="h-airdrop-to-users" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Airdrop to users</h3><p>The 25% of the total supply allocated for the $ENS airdrop to users will be distributed to all addresses that are or have been the registrant of a .ETH second-level domain. The distribution is based on the total time of an address&apos;s past registration and future registration as of October 31st, 2021.</p><p>The total time of future registrations is capped at 8 years. Importantly, <strong>the retroactive airdrop is per account, not per name</strong>. This means that each address is counted for a given day based on whether it owns at least one .ETH name on that day.</p><p>The airdrop also features a 2x multiplier for Ethereum accounts that have set their Primary ENS Name (formerly known as Reverse Record), since this is an indicator that someone is an active user.</p><p>The airdrop formula is roughly:</p><p>0.27 * (# days the account owned at least one ENS name)</p><p>+</p><p>0.062 * (# days until the expiration of the last name on the account)</p><p>The total is then multiplied by 2 if the account also has a Primary ENS Name set.</p><p><em>NOTE (Nov 7, 2021, 2:06pm EST): We tweaked the above formula due to a previous calculation error</em></p><p>We recognize that this will be disappointing to some users who only own subdomains or DNS domains imported to ENS. Given that the initial purpose of the DAO is to govern the parameters of the .ETH registrar, and determine how to allocate the funds collected by it, however, we determined it was fair to give users that have contributed to that system the power to affect its future.</p><h3 id="h-contributors" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Contributors</h3><p>The 25% designated for contributors will be allocated to over 100 individuals and organizations that have contributed in significant ways to ENS over the last four years, including the core team at True Names LTD, external contributors, significant integrations, translators, root key holders, and more.</p><p>Tokens for core contributors and launch advisors will have a four year lock-up and vesting schedule.</p><p>There are no tokens allocated for investors, since there are none.</p><p>A portion of the contributors allocation has also been set aside for &gt;450 active participants in the ENS Discord.</p><h3 id="h-community-treasury" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Community Treasury</h3><p>The remaining 50% of $ENS tokens is allocated to the DAO. 10% of this allocation will be available to the DAO at launch, with the remaining unlocking over 4 years. This is in addition to the ENS treasury of funds raised from .ETH name registrations that the DAO is expected to receive from the ENS root multisig.</p><p>The DAO is encouraged to allocate these tokens towards community focused initiatives to help the development and growth of ENS, such as grants, hackathons, meetups and more.</p><h2 id="h-next-steps" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Next Steps</h2><p>We’ll be opening the token claim process on November 8. Keep an eye on the ENS Twitter account and here on Mirror for an update then!</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/74cc6671d0063df838e03b03bd2f8f8ea831757a547878c8c3f50bb519d86b6b.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ENS DAO: Call For Delegates]]></title>
            <link>https://paragraph.com/@ens/ens-dao-call-for-delegates</link>
            <guid>PBVBZyTMNF8KKarDt5FP</guid>
            <pubDate>Mon, 01 Nov 2021 21:02:57 GMT</pubDate>
            <description><![CDATA[ENS is decentralizing governance and accepting applications for DAO delegates. ENS has always been an open public utility that belongs to the community. The core components of ENS are decentralized and self-running (e.g., no one can take away another person’s .ETH name), but there are a few things that require some human discretion. We believe that both ENS and the DAO space have matured enough that now is the time to pass ENS governance over to the community via the creation of a DAO and the...]]></description>
            <content:encoded><![CDATA[<p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.domains/">ENS</a> is decentralizing governance and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discuss.ens.domains/t/ens-dao-delegate-applications/815">accepting applications for DAO delegates</a>.</p><p>ENS has always been an open public utility that belongs to the community. The core components of ENS are decentralized and self-running (e.g., no one can take away another person’s .ETH name), but there are a few things that require some human discretion. We believe that both ENS and the DAO space have matured enough that now is the time to pass ENS governance over to the community via the creation of a DAO and the $ENS governance token.</p><p>Specifically, we wish to have the ENS root multisig pass over control of the existing ENS treasury, its future funds, and control of the .ETH registrar contract that is in charge of the pricing and registration mechanism for .ETH names. The first order of business for the ENS DAO will be to formally request these from the ENS root multisig key holders.</p><p>Starting today, people may nominate themselves as ENS governance delegates. $ENS tokens will be opened for claiming a week from today (snapshot was made yesterday). <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ens.mirror.xyz/-eaqMv7XPikvXhvjbjzzPNLS4wzcQ8vdOgi9eNXeUuY">Here is more information about the token distribution</a>.</p><h2 id="h-a-call-for-delegates" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">A Call for Delegates</h2><p>We expect ENS governance will evolve over time. Learning from Gitcoin’s governance experience, we believe a delegate model is a good place to start. This helps the DAO represent the interests of members who can’t personally consider and vote on each proposal.</p><p>While anyone will be welcome to self-delegate and vote independently, we’ll be encouraging token holders to delegate to one of the community leaders who put themselves forward.</p><p>In order for this to happen, we need delegates!</p><p>We need individuals and groups who are dedicated to the growth and longevity of ENS. If you’re interested in taking an active role in ENS governance, now’s your chance.</p><p>If you’re an active member of the ENS ecosystem and want to help direct the future of ENS, <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://discuss.ens.domains/t/ens-dao-delegate-applications/815">follow this link and submit your application to be a delegate</a>.</p><p>Time is of the essence: We plan to open the $ENS token claim process one week from today. More details about that will be available then.</p><p><strong>Important note:</strong> You <em>only</em> need to submit yourself as a delegate if you want to appear in the list of delegates shown when other people claim their tokens. You do not need to submit a delegate profile if you only want to claim your airdrop, or if you only intend to delegate to yourself! <strong>There will be no POAP issued for delegates. And delegates are not awarded extra tokens for being delegates.</strong></p><p>Best of luck to all delegate candidates.</p><p>Let’s build the future of the Internet together.</p>]]></content:encoded>
            <author>ens@newsletter.paragraph.com (ENS)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/c46e00ddd090b92a2af17798eaee25e3254e2661ddb021bb8152340bf973fbfb.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>