<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[ebpto docs]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://docs.ebpto.com/</link><image><url>https://docs.ebpto.com/favicon.png</url><title>ebpto docs</title><link>https://docs.ebpto.com/</link></image><generator>Ghost 5.24</generator><lastBuildDate>Mon, 06 Apr 2026 05:01:36 GMT</lastBuildDate><atom:link href="https://docs.ebpto.com/docs/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Verifiable Credentials]]></title><description><![CDATA[An open standard for digital credentials that securely represent verifiable information.]]></description><link>https://docs.ebpto.com/docs/verifiable-credentials/</link><guid isPermaLink="false">63883269981b9a8a445a2864</guid><category><![CDATA[Developers]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 05 Dec 2022 15:09:58 GMT</pubDate><media:content url="https://docs.ebpto.com/content/images/2022/12/verified.png" medium="image"/><content:encoded><![CDATA[<img src="https://docs.ebpto.com/content/images/2022/12/verified.png" alt="Verifiable Credentials"><p>Configure an IP domain with any information you would like to be cryptographically verified and linked to your registered domains. </p><p>The vast applications of Verified Credentials (VC.iD) range anywhere from securely verifying official social media accounts to activating access control keys, cards, fobs, badges and even fully customizable and scalable tracked achievements for specific tasks and communities. A great example of a core implementation of this is a POAP (Proof of Attendance Protocol) which can be automatically issued based on completely customizable and programmable criteria.</p><p>Scalable, composable and secure blockchain infrastructure can now be implemented in the most practical and accessible user context. VC.iD represents a new paradigm of user sovereignty and custody.</p><figure class="kg-card kg-image-card"><img src="https://docs.ebpto.com/content/images/2022/12/process_proof.gif" class="kg-image" alt="Verifiable Credentials" loading="lazy" width="720" height="720" srcset="https://docs.ebpto.com/content/images/size/w600/2022/12/process_proof.gif 600w, https://docs.ebpto.com/content/images/2022/12/process_proof.gif 720w" sizes="(min-width: 720px) 720px"></figure><p></p><p>EBPTO developed the VC.iD to configure domain specific verifiable credentials. The system employs a hybrid architecture with both on-chain and off-chain components for maximum efficiency and flexibility. </p><p>Each domain is issued a VC.iD scope containing a cryptographically signed message. These signed messages are tamper-proof and self-authenticating. This concept is very similar to a traditional passport&#x2014;additional credentials are saved in these passports just like stamps are as recorded proofs.</p><p>The VC.iD scope is saved on Ethereum through the EBPTO domain registry. Additional signature data is replicated on Gnosis Chain (xDAI) and IPFS for cost optimization.</p><p>The credentials can remain pseudonymous. Individual users can operate multiple domains simultaneously. For example: a real-name personal domain as well as a company domain.</p><h2 id="why-verifiable-credentials">Why Verifiable Credentials?</h2><p>Today, most domain products solely focus on resolving complex addresses to readable names using a DNS like interface allowing people to enter anything they like into plain text input fields.</p><p>While this free field method is flexible, it does not at all prevent misinformation or impersonation. (e.g. Using the free field model, one could easily enter &quot;ElonMusk&quot; into a Twitter record or &quot;Vitalik&quot; into a Mastodon record).</p><p>EBPTO&apos;s Verifiable Credentials employ a bi-directional signed proof, containing and requiring additional information from a valid authenticated session from the issuer side (Twitter, Google, etc). This more robust system is becomes exponentially more secure vs. the now dated uni-directional models used by other domain protocols.</p><p></p><h2 id="dive-deeper">Dive Deeper</h2><p><a href="https://ebpto.com/docs/use-cases">Use Cases</a></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[VC.iD]]></title><description><![CDATA[VC.iD is a verified identity based framework that makes it easy organize credentials in a composable user-centric way.]]></description><link>https://docs.ebpto.com/docs/vc-id/</link><guid isPermaLink="false">638d4a59981b9a8a445a2952</guid><category><![CDATA[Technical]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 05 Dec 2022 15:08:30 GMT</pubDate><media:content url="https://docs.ebpto.com/content/images/2022/12/verified-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://docs.ebpto.com/content/images/2022/12/verified-1.png" alt="VC.iD"><p>VC.iD uses the <a href="https://www.w3.org/TR/vc-data-model/" rel="noopener noreferrer">W3C standards</a> for cryptographically verifiable digital credentials. VC.iD is fully compatible with all EVM (<a href="https://ethereum.org/en/developers/docs/evm/">Ethereum Virtual Machine</a>) accounts and EVM-based wallet authentication.</p><p>From a single domain page you can view all verified credentials corresponding to that specific domain. Credentials can be a mix of OpenID based protocols, standard or custom schemas. This structure is scalable, sovereign, and secure.</p><p>The vision of Web 3.0 is one where users control their own data. VC.iD makes this possible.</p><figure class="kg-card kg-image-card"><img src="https://docs.ebpto.com/content/images/2022/12/image-1.png" class="kg-image" alt="VC.iD" loading="lazy" width="1720" height="1286" srcset="https://docs.ebpto.com/content/images/size/w600/2022/12/image-1.png 600w, https://docs.ebpto.com/content/images/size/w1000/2022/12/image-1.png 1000w, https://docs.ebpto.com/content/images/size/w1600/2022/12/image-1.png 1600w, https://docs.ebpto.com/content/images/2022/12/image-1.png 1720w" sizes="(min-width: 720px) 720px"></figure><p></p><h2 id="structure">Structure</h2><h3 id="type">Type</h3><p>A credential can have one or more types. It is specified in an array of strings/URIs. The &quot;VerifiableCredential&quot; is mandatory.<br><br>The credential type can be used to determine if a credential is appropriate for a specific use case. For example, the credential type: &quot;EthereumAddress&quot; might be used to validate a web3 address or a specific on-chain transaction.<br><br>The applications of this model are vast and scalable.</p><h3 id="issuer">Issuer</h3><p>Represents the issuer of the credential. In the case of a social media account verification, the issuer may be the social media network itself (Twitter, Facebook, Instagram) authenticating a session proof.</p><h3 id="context">Context</h3><p>The credential context contains one or more properties that are related to the context of the verifiable credential. </p><p>The context identifier may be an array of subjects (e.g. Twitter account credential, followers account credential, etc).</p><h3 id="cryptographic-proofs">Cryptographic Proofs</h3><p>One or more cryptographic proofs that can be used to verify the authorship of a credential, its context and issuer, ultimately proving the credential is valid.</p><p></p><h2 id="dive-deeper">Dive Deeper</h2><p>Looking to explore more possibilities of EBPTO</p><p><a href="https://ebpto.com/docs/verifiable-credentials">Verified Credentials</a><br><a href="https://www.ebpto.com/docs/frequently-asked-questions">Frequently Asked Questions</a><br><a href="https://www.ebpto.com/docs/grants">Build with EBPTO (Grants)</a><br><a href="https://ip-xmtp.vercel.app/">XMTP Chat Toy</a></p>]]></content:encoded></item><item><title><![CDATA[Use Cases]]></title><description><![CDATA[Learn about use cases of EBPTO & IP Domains]]></description><link>https://docs.ebpto.com/docs/use-cases/</link><guid isPermaLink="false">638310ab4b1b986e8f3098a4</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 05 Dec 2022 15:06:59 GMT</pubDate><media:content url="https://docs.ebpto.com/content/images/2022/12/usecases.png" medium="image"/><content:encoded><![CDATA[<img src="https://docs.ebpto.com/content/images/2022/12/usecases.png" alt="Use Cases"><p>There are limitless use cases that can be implemented using VC.iD verifiable credentialed domains. Unlike traditional domains, VC.iD are stored at the wallet level, outside of the custody and control of any 3rd third party.</p><p>Domains are stored on-chain in the EBPTO Registry Ethereum smart contract, fully leveraging the security, composability, and consistency guarantees outlined in our model. </p><p>A manager (registered to an Ethereum address) controls the on-chain records associated and corresponding to each domain.</p><p>Credentialed data records are cryptographically signed by the domain manager and stored on L2 Gnosis Safe (formally xDAI) and mirrored to IPFS. The signature of these records is saved on the primary domain itself. This key is called the <a href="https://ebpto.com/docs/vcid">VC.iD.</a></p><p></p><h3 id="public-profile">Public Profile</h3><p>Public profiles with verified social accounts can be used to create a fully decentralized and portable user identity record. This can be used in a variety of scalable applications.</p><p>At the highest level, authenticate ENS simply by registering a domain. Or personalize your domain page by uploading custom images, connecting verified accounts of your choice, and resolving your domains to your Ethereum wallets, and create customizable QR codes corresponding to any source of your choosing.</p><blockquote>Blue check as a distributed, verified service.</blockquote><h3 id="social-e2ee">Social &amp; E2EE</h3><p>We are rapidly entering the next era of digital communication and social networking&#x2014;one where users data is portable, and they can take their profile, graph, interactions, and communications wherever they want to; credentialed profiles become essential. </p><p>Credentialed profiles operate as an extended authentication layer, providing fully end to end encryption (E2EE) in everything from timelines, social graphs to chats.</p><p>Using Public Profiles and domains, one could easily build and monetize entire robust social networks with hardly any technical abilities or upfront capital required.</p><p>Content creators will unlock potential uses cases and rapidly take their micro-platforms and ability to engage directly with their supporters to new and previously unimaginable heights.</p><h3 id="cross-chain-identity-reputation">Cross-chain identity &amp; reputation</h3><p>Any registered user can link crypto wallets and annotate activity from many different blockchains. Weight, score and roll up data into a programmable and customizable user credit profiles.</p><h3 id="on-chain-resume">On-chain resume</h3><p>Complete tasks, learn skills and earn credentials that prove contribution via user activated achievements and metrics. Build a decentralized school or institute and seamlessly track performance and participation.</p><h3 id="entitlements-automated-reward-distribution">Entitlements &amp; Automated Reward Distribution</h3><p>Teams can build bridges between products and users based on verifiable achievements to unlock airdrops, content, specific rewards and more.</p><h3 id="trustless-governance-sybil-defense">Trustless governance &amp; Sybil defense</h3><p>Users can create and operate decentralized governance systems. Create proposals, submit votes and create a sybil resistant governance app. Verified credentials establish non-Sybil traits, preventing capital capture via <a href="https://en.wikipedia.org/wiki/Sybil_attack">Sybils</a>.</p><p>Activities designed to benefit the growth of community can be seamlessly and programmatically rewarded to members of a governance model assigning different voting weights to each given criteria.</p><h3 id="proof-of-reserves">Proof of Reserves</h3><p>Wrangle and group wallets to create a transparent audit, providing completely unbiased and transparent data reports of any given assets held in reserve.</p><p>Make the most of the blockchain&apos;s immutable public ledger and bring precious, curated and interoperable data directly into focus.</p><h3 id="multi-app-global-gaming-profiles">Multi-app &amp; Global Gaming Profiles</h3><p>Using the identity protocol (VC.iD) to store profile data and gaming data in a way that can be consumed, added to, or extended by any app or game in Web3.</p><h3 id="federation">Federation</h3><p>Create a new layer of identity portability across web3. Using the EBPTO issue new domains (.example, .developer) and federate them across the network.</p><p></p><h2 id="dive-deeper">Dive Deeper</h2><p>Looking to explore more possibilities of EBPTO</p><p><a href="https://ebpto.com/docs/verifiable-credentials">Verified Credentials</a><br><a href="https://www.ebpto.com/docs/frequently-asked-questions">Frequently Asked Questions</a><br><a href="https://www.ebpto.com/docs/grants">Build with EBPTO (Grants)</a><br><a href="https://ip-xmtp.vercel.app/">XMTP Chat Toy</a></p>]]></content:encoded></item><item><title><![CDATA[Grants]]></title><description><![CDATA[Apply for Grants: help expand the ecosystem empowered by verifiable credentialed domains.]]></description><link>https://docs.ebpto.com/docs/grants/</link><guid isPermaLink="false">6388e596981b9a8a445a2889</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Thu, 01 Dec 2022 17:37:32 GMT</pubDate><content:encoded><![CDATA[<p>EBPTO invites talent to help imagine and realize projects that have the potential to integrate across our daily web3 experiences.</p><p>If you are interested in a grant please reach out via DM on our official Twitter account (<a href="https://twitter.com/ownyourip">@OwnYourIP</a>)</p><p>Looking to submit a grant application or credit an existing task? <a href="https://ebpto.com/verify">Submit Grants</a>.</p><h2 id="opportunities">Opportunities</h2><h3 id="latest-grant-opportunities">Latest Grant Opportunities </h3><p>Complete an opportunity to earn. Incentives differ between activities.</p><ul><li>Create a Dune analytics dashboard</li><li>Write a Mirror article on &quot;how IP works&quot;</li><li>Write a medium post on &quot;how to customize your IP card&quot;</li><li>Build a community bot for 4 digit or less (Premium) IP registrations</li><li>Host a scheduled community Twitter space for &quot;Own your IP&quot;</li><li>Create a YouTube explainer on how IP Domains work</li><li>Write a boilerplate dapp and host on Fleek using IP domain</li><li>Build a expiration bot for Telegram</li><li>Write a &quot;how to get your IP&quot; Reddit post on r/ethereum</li><li>Write an EBPTO integration article on dev.to </li><li>Write a guide for The Dapp List on how to use your IP Domain</li><li>Create a community listing on DappRadar for IP Domains</li><li>Medium post with a technical comparison of web3 domain products</li><li>Medium post explaining how to use StreamKit</li><li>Video explainer on twitter demonstrating how to use StreamKit</li><li>Video explainer on twitter demonstrating StreamKit use cases</li></ul><h3 id="advanced-grant-opportunities">Advanced Grant Opportunities </h3><p>Complete an advanced code related task and earn.</p><ul><li>Create a Pull Request for ENS-powered EBPTO integration on Rainbow Wallet Github. Help expand domain resolution on the popular wallet application.</li><li>Create a Pull Request for ENS-powered EBPTO integration on Alpha Wallet on Github. Help expand domain resolution on the popular wallet application.</li><li>Create a Pull Request for domain resolution on Brave Browser.</li><li>Build a IP Domain XMTP chat application (E2EE)</li><li>Use IP Domain for game authentication and universal game profile</li><li>Develop a game using StreamKit</li><li>Develop a wallet app using StreamKit</li><li>Build an analytics tools or user inspector based on verifiable credentials</li><li>Create a simply loyalty system using verifiable credentials</li></ul><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">If you are interested, please reach out via DM to the official Twitter account (@OwnYourIP). We will be publishing the process and incentives. Please check Twitter for announcements.</div></div><p></p><h2 id="qualifications">Qualifications</h2><p>EBPTO accepts applications from individuals, independent teams, developers, writers, nonprofits, academics, etc. We see grants as an additional incentive for talented people to build something benefiting EBPTO.</p><h3 id="grants-are-for">Grants are for:</h3><p>Projects contributing to public good &amp; social products using EBPTO</p><ol><li>Early-stage and ideation stage projects looking to jump start</li><li>Projects that work open source</li><li>Unique use-cases</li></ol><h3 id="grants-are-not-for">Grants are not for:</h3><p>Events or sponsorships</p><ol><li>Investment or VC funding</li><li>Projects non-related to ebpto</li></ol><h2 id="areas-of-interest">Areas of interest</h2><p>Developer tools</p><p>Wallet Apps</p><p>Analytics Tools</p><p>Developer education (Tutorials, Videos)</p><p>Education materials</p>]]></content:encoded></item><item><title><![CDATA[EBPTO Marketplace]]></title><description><![CDATA[Discover and trade IP domain names across leading marketplaces.]]></description><link>https://docs.ebpto.com/docs/market/</link><guid isPermaLink="false">63859e75981b9a8a445a275c</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Tue, 29 Nov 2022 06:18:08 GMT</pubDate><media:content url="https://docs.ebpto.com/content/images/2022/11/Screen-Shot-2022-11-28-at-10.50.19-PM.png" medium="image"/><content:encoded><![CDATA[<img src="https://docs.ebpto.com/content/images/2022/11/Screen-Shot-2022-11-28-at-10.50.19-PM.png" alt="EBPTO Marketplace"><p>The EBPTO Marketplace is a Reservoir powered aggregator gathering sales orders and listing activity across Opensea, LooksRare, Blur, X2Y2, Elements and Reservoir&apos;s implementation of Seaport. </p><p><a href="https://www.ebpto.com/market/0xeb668b89be0c33d1a1559305d75f91e0a54e69ab?tab=listings">Visit EBPTO Market</a></p><h3 id="overview">Overview</h3><ul><li>EBPTO&apos;s Marketplace order book gathers and displays the best listing for each domain name on any leading market.</li><li>Accept Bids from other order books.</li><li>Aggregator: Buy &amp; Sell your IP domains right on EBPTO.com or across any of the other leading marketplaces.</li><li>Transparently and seamlessly see any associated marketplace fees across the board.</li></ul><figure class="kg-card kg-image-card"><img src="https://docs.ebpto.com/content/images/2022/11/image-4.png" class="kg-image" alt="EBPTO Marketplace" loading="lazy" width="2000" height="1382" srcset="https://docs.ebpto.com/content/images/size/w600/2022/11/image-4.png 600w, https://docs.ebpto.com/content/images/size/w1000/2022/11/image-4.png 1000w, https://docs.ebpto.com/content/images/size/w1600/2022/11/image-4.png 1600w, https://docs.ebpto.com/content/images/size/w2400/2022/11/image-4.png 2400w" sizes="(min-width: 720px) 720px"></figure><h3 id="fees">Fees</h3><p>An initial gas fee to approve marketplace transactions is required and cannot be waived. It is a network (Ethereum) fee. Once approved, you can list, delist, bid and alter any listing with no additional gas costs.</p><p>Gas-free transactions include:</p><ul><li>Listing an IP domain.</li><li>Changing the price of a listing.</li><li>Making an offer on a IP domain.</li></ul><p>When listing on external marketplaces (OpenSea, LooksRare, Rarible, or X2Y2) their specific fee structures apply.</p><p>Sales made directly on EBPTO Market have a 1% fee applied (Fee is currently disabled).</p><h3 id="listing-in-the-marketplace">Listing in the Marketplace</h3><p>From an individual domain page, click &apos;list for sale&apos; to open the listing window. From the listing window select which markets you wish to list in. Marketplace royalties will display to give you the option to choose which is best.</p><figure class="kg-card kg-image-card"><img src="https://docs.ebpto.com/content/images/2022/12/image-5.png" class="kg-image" alt="EBPTO Marketplace" loading="lazy" width="2000" height="1500" srcset="https://docs.ebpto.com/content/images/size/w600/2022/12/image-5.png 600w, https://docs.ebpto.com/content/images/size/w1000/2022/12/image-5.png 1000w, https://docs.ebpto.com/content/images/size/w1600/2022/12/image-5.png 1600w, https://docs.ebpto.com/content/images/size/w2400/2022/12/image-5.png 2400w" sizes="(min-width: 720px) 720px"></figure><h3 id="buying-accepting-bids">Buying &amp; Accepting Bids</h3><p>Click &apos;Buy Now&apos; and the best available offer from the aggregate order book will guide you through the checkout process. Icon indicators will inform you which marketplace you are completing the transaction on.</p><figure class="kg-card kg-image-card"><img src="https://docs.ebpto.com/content/images/2022/11/image-5.png" class="kg-image" alt="EBPTO Marketplace" loading="lazy" width="2000" height="1500" srcset="https://docs.ebpto.com/content/images/size/w600/2022/11/image-5.png 600w, https://docs.ebpto.com/content/images/size/w1000/2022/11/image-5.png 1000w, https://docs.ebpto.com/content/images/size/w1600/2022/11/image-5.png 1600w, https://docs.ebpto.com/content/images/size/w2400/2022/11/image-5.png 2400w" sizes="(min-width: 720px) 720px"></figure>]]></content:encoded></item><item><title><![CDATA[Sending Ether Using .ip Domains]]></title><description><![CDATA[<p>EBPTO conforms to the ENS standard, which means you can integrate EBPTO into your dapp without changing any code. All you need is a Web3 <code>provider</code> that points to <a href="https://etherscan.io/address/0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92">the EBPTO registry</a> instead of the ENS registry.</p><p>Here is example ethers.js code for creating an EBPTO-enabled provider, looking up</p>]]></description><link>https://docs.ebpto.com/docs/sending-ether-using-ip-domains/</link><guid isPermaLink="false">6384e6ca981b9a8a445a273b</guid><category><![CDATA[Developers]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 28 Nov 2022 16:54:48 GMT</pubDate><content:encoded><![CDATA[<p>EBPTO conforms to the ENS standard, which means you can integrate EBPTO into your dapp without changing any code. All you need is a Web3 <code>provider</code> that points to <a href="https://etherscan.io/address/0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92">the EBPTO registry</a> instead of the ENS registry.</p><p>Here is example ethers.js code for creating an EBPTO-enabled provider, looking up an address, and sending 1 ETH to that address:</p><!--kg-card-begin: markdown--><pre><code class="language-javascript">const provider = ethers.getDefaultProvider({
  name: &quot;homestead&quot;,
  chainId: 1,
  ensAddress: &apos;0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92&apos;
});

const address = await provider.resolveName(&quot;bob.ip&quot;)

const tx = signer.sendTransaction({
  to: address,
  value: ethers.utils.parseEther(&quot;1.0&quot;)
});

await provider.lookupAddress(&quot;0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92&quot;)
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Differences Between .ip and .eth Domains]]></title><description><![CDATA[<p>Here are some key differences between .ip and .eth that you can put to use today.</p><h3 id="on-chain-metadata">On-chain metadata.</h3><p>In order to give users true self-custody over their IP, the associated metadata must be available in a fully decentralized fashion.</p><p>We achieve this through our on-chain rendering contract <a href="https://etherscan.io/address/0x7fD843B09e88b87F924dCa67A20249e3dfac4315">IPTokenRenderer</a>. By contrast,</p>]]></description><link>https://docs.ebpto.com/docs/differences-between-ip-and-eth-domains/</link><guid isPermaLink="false">6384de63981b9a8a445a26e5</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 28 Nov 2022 16:22:03 GMT</pubDate><content:encoded><![CDATA[<p>Here are some key differences between .ip and .eth that you can put to use today.</p><h3 id="on-chain-metadata">On-chain metadata.</h3><p>In order to give users true self-custody over their IP, the associated metadata must be available in a fully decentralized fashion.</p><p>We achieve this through our on-chain rendering contract <a href="https://etherscan.io/address/0x7fD843B09e88b87F924dCa67A20249e3dfac4315">IPTokenRenderer</a>. By contrast, all .eth NFT metadata is mediated by a centralized web2 server (https://metadata.ens.domains/).</p><h3 id="on-chain-name-validation">On-chain name validation.</h3><p>Through our <a href="https://etherscan.io/address/0x30afDbCDe5aE73E7A9aCc8b5d194781c217F2504">IPRegistrationController</a>, EBPTO prevents users from registering names with spaces, <a href="https://en.wikipedia.org/wiki/Zero-width_joiner">zero-width joiners</a>, periods, and other inappropriate characters.</p><p>This provides protocol-level security against impersonation attacks. For example: sending eth to JOHN.ip instead of john.ip, or, worse, two names that differ only with respect to the additi&#x200D;on of a zero-width joiner (ZWJ) and are visually identical.<br><br>By contrast, ENS&#x2019;s on-chain validation is limited to enforcing only the three character minimum. In practice, ENS&#x2019;s lack of on-chain validation is mitigated by robust off-chain tooling. However, we believe that when it comes to your IP, users deserve the maximum level of security and authentication.</p><h3 id="50-lower-registration-cost">50% Lower Registration Cost</h3><p>EBPTO registrations are half the cost of ENS.<br><br>On-chain name validation, while more robust, does increase the gas cost of registrations. EBPTO accounts for this enhancement by cutting our registration fees in half, thereby compensating our users for helping to bootstrap the most secure and state of the art system available.</p><p>Reduced Fees + Secure Validation.</p><h3 id="ability-to-register-one-and-two-character-names">Ability to Register One and Two Character Names</h3><p>.eth names must be three or more characters. We have removed this limitation to create even more possibilities.</p><h3 id="register-domains-in-one-transaction">Register Domains in One Transaction</h3><p>ENS requires two separate transactions to register a domain, with a one minute &#x201C;waiting period&#x201D; between them. This mechanism helps prevent front-running by allowing users to reserve domains for registration before making the identity of those domains public.</p><p>However, this approach comes at a cost. Purely in terms of time spent waiting; users have spent in aggregate almost four years waiting to register their ENS domains.</p><p>This pause also increases the complexity of client-side registration code. This serves to make registration clients more expensive and complex to create, which increases centralization and hinders utility.</p><p>Front running is an Ethereum-wide problem and should be attacked at the network level, not with protocol-specific solutions. <a href="https://docs.alchemy.com/docs/how-to-send-a-private-transaction-on-ethereum">Fortunately through Flashbots, any user can create a private transaction that allows them to bypass front-running in registering any EBPTO domain</a>.</p><p>We plan on giving users the ability to register using private transactions directly on EBPTO.com.</p><h3 id="nft-ownership-registration-record-ownership">NFT Ownership = Registration Record Ownership</h3><p>When you transfer an ENS domain NFT, the previous holder retains the ability to manage the registration. Meaning they can add and remove subdomains, address records, change the avatar, etc.</p><p>On the other hand, when you transfer an EBPTO domain, the new owner automatically becomes the owner of the registration record.</p><p>We believe this is more intuitive and, most importantly, more secure.</p>]]></content:encoded></item><item><title><![CDATA[Registration]]></title><description><![CDATA[Learn how to obtain an .ip account]]></description><link>https://docs.ebpto.com/docs/registration/</link><guid isPermaLink="false">6384414b981b9a8a445a2611</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 28 Nov 2022 05:14:59 GMT</pubDate><content:encoded><![CDATA[<p>Open registration allows anyone to register a qualifying name. </p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Open registrations are unavailable while auctions are live.</div></div><p></p><p>Search for a name on <a href="https://www.ebpto.com">EBPTO.com</a>. The name must not already be registered in order for you to register it. The on-chain normalization will remove any invalid characters such as spaces and periods. The normalization process helps prevent homograph and impersonation attacks.</p><p>Choose the number of years you wish to register the domain for. Extending for multiple years will save on network costs (gas) by avoiding annual gas transactions.</p><figure class="kg-card kg-image-card"><img src="https://docs.ebpto.com/content/images/2022/12/image-6.png" class="kg-image" alt loading="lazy" width="1984" height="886" srcset="https://docs.ebpto.com/content/images/size/w600/2022/12/image-6.png 600w, https://docs.ebpto.com/content/images/size/w1000/2022/12/image-6.png 1000w, https://docs.ebpto.com/content/images/size/w1600/2022/12/image-6.png 1600w, https://docs.ebpto.com/content/images/2022/12/image-6.png 1984w" sizes="(min-width: 720px) 720px"></figure><p>Optionally, you can elect to automatically assign your new registration as a primary domain, immediately resolving it to your Ethereum wallet address. This means your newly registered IP domain will be seamlessly linked to your Ethereum wallet in a single transaction.</p><p>After clicking next, your Web3 enabled browser will prompt for a transaction for the corresponding amount (base fee x years). You can learn more about the registration fees on the <a href="https://www.ebpto.com/docs/frequently-asked-questions">FAQ</a> page.</p><p>Once the registration is complete, the .ip domain card will appear in your wallet and in your Profile tab on EBPTO.com.<br></p>]]></content:encoded></item><item><title><![CDATA[Glossary]]></title><description><![CDATA[Common terminology reference]]></description><link>https://docs.ebpto.com/docs/glossary/</link><guid isPermaLink="false">63843264981b9a8a445a2550</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 28 Nov 2022 04:16:59 GMT</pubDate><content:encoded><![CDATA[<ul><li><strong>EBPTO</strong>:<strong> </strong>The IP domain registration protocol.</li><li><strong>Domain</strong>: A set of resolving records managed &amp; administered by it&apos;s owner.</li><li><strong>Name</strong>: A human readable EBPTO identifier example, bob.ip.</li><li><strong>.ip</strong>: Refers to a .ip domain name.</li><li><strong>Namehash</strong>: An algorithm used to process a human readable name format and return a cryptographic hash uniquely identifying that name.</li><li><strong>Registration</strong>: Refers to the process of obtaining a .ip account by paying associated registration fee to the EBPTO contract.</li><li><strong>Registration Fee</strong>: The annual fee for holding a .ip domain name, which varies for names with different character lengths. Learn more about fees in <a href="https://www.ebpto.com/docs/frequently-asked-questions#registrations-renewals">FAQ</a>.</li><li><strong>Owner</strong>: Each .ip domain has an owner. The owner is the administrator of the domains&apos; records.</li><li><strong>Manager</strong>: Similar to ENS, the domain owner can grant a manager administrative privileges to modify records of an existing .ip domain registration. </li><li><strong>Record</strong>: Each data record associated to an .ip domain. Examples: Ethereum address, BTC address, portfolio, verified credentials, Twitter account, Farcaster account, etc.</li><li><strong>Resolver</strong>: Smart contract that points to resources based on record configurations in the .ip domain.</li><li><strong>Verifiable Credential</strong>: Tamper-proof and self-authenticating cryptographically signed messages.</li><li><strong>dID</strong>: Standard decentralized identity.</li><li><strong>VC.iD</strong>: Configurable verifiable credential record on an EBPTO domain</li></ul><p><br></p>]]></content:encoded></item><item><title><![CDATA[Core Protocol Reference]]></title><description><![CDATA[EBPTO is a decentralized application orchestrated through smart contracts]]></description><link>https://docs.ebpto.com/docs/core-protocol-reference/</link><guid isPermaLink="false">6383eb31981b9a8a445a226c</guid><category><![CDATA[Developers]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 28 Nov 2022 03:38:07 GMT</pubDate><content:encoded><![CDATA[<h3 id="terminology-and-deployment">Terminology and Deployment</h3><p>If you understand ENS you will find EBPTO&#x2019;s architecture familiar. <br></p><figure class="kg-card kg-image-card"><img src="https://docs.ebpto.com/content/images/2022/11/image.png" class="kg-image" alt loading="lazy" width="1758" height="1866" srcset="https://docs.ebpto.com/content/images/size/w600/2022/11/image.png 600w, https://docs.ebpto.com/content/images/size/w1000/2022/11/image.png 1000w, https://docs.ebpto.com/content/images/size/w1600/2022/11/image.png 1600w, https://docs.ebpto.com/content/images/2022/11/image.png 1758w" sizes="(min-width: 720px) 720px"></figure><h3 id="ebpto-contracts">EBPTO Contracts</h3><p><br>EBPTO is deployed on mainnet at these addresses</p><ul><li><strong><a href="https://etherscan.io/address/0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92">EBPTORegistry</a></strong><br>The core contract of the EBPTO system. Provides methods to set and query the resolver of a name.<br></li><li><strong><a href="https://etherscan.io/address/0x9DBD65FE16Ee8d874B702d773c10b17FdD5F8459">PublicResolver</a></strong><br>The default resolver for all EBPTO names. Allows users to get and set address records, as well as records for ABIs, content hashes, DNS, names, and text. This contract includes the ability to set multiple records at once and to clear all records in a single transaction. Note: as with ENS, users are permitted to set custom resolvers.<br></li><li><strong><a href="https://etherscan.io/address/0xEB668b89be0C33d1A1559305d75F91e0a54e69Ab">BaseRegistrar</a></strong>: <br>The contract that allows users to register subdomains of the &#x201C;.ip&#x201D; TLD in the EBPTORegistry. When this happens the registrar mints a corresponding NFT. Users interact with the registrar through the IPRegistrarController (see below).<br>BaseRegistrar inherits from a brand new ERC721 base contract we created called ERC721PTO. <br></li><li><strong>ERC721PTO</strong>: <br>Enables gas-efficient storage of name expiries, last transfer timestamps, mint counts, and other select tokenomics.<br></li><li><strong><a href="https://etherscan.io/address/0x30afDbCDe5aE73E7A9aCc8b5d194781c217F2504">IPRegistrarController</a></strong>:<br>Manages pricing and validation for registering names. Conducts auctions.<br></li><li><strong><a href="https://etherscan.io/address/0x523C608F699F219cB342214e6CD159C8aFA96cFa">ReverseRegistrar</a></strong>:<br>Allows owners of a name to register the record &#x201C;&lt;address&gt;.addr.reverse&#x201D; which applications can query to find the address&apos;s canonical .ip name.<br></li><li><strong><a href="https://etherscan.io/address/0x4D6F2f6f6dd9F48251657D6FAE53fea73c3f1E60">Normalize4</a></strong>:<br>Encapsulates Unicode normalization logic that allows the IPRegistrarController to validate names on-chain. Written by raffy.eth.<br></li><li><strong><a href="https://etherscan.io/address/0xadbD914aDDA2A19343Ec05Cf41Cf24D37a581fB9">ChainlinkPriceConsumer</a></strong>:<br>Queries the Chainlink oracle for USD-ETH exchange rates.<br></li><li><strong><a href="https://etherscan.io/address/0x87D0E82E04dd63Be5da195F88ab4DC35f58c78FE">ExponentialPremiumPriceOracle</a></strong>:<br>Prices names in USD (denominated in ETH) according to their length.<br></li><li><strong><a href="https://etherscan.io/address/0x7fD843B09e88b87F924dCa67A20249e3dfac4315">IPTokenRenderer</a></strong>:<br>Renders token images and metadata.<br></li></ul>]]></content:encoded></item><item><title><![CDATA[Frequently Asked Questions]]></title><description><![CDATA[Overview of everything EBPTO and IP domains]]></description><link>https://docs.ebpto.com/docs/frequently-asked-questions/</link><guid isPermaLink="false">6382b3064b1b986e8f3097c1</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 28 Nov 2022 02:46:57 GMT</pubDate><media:content url="https://docs.ebpto.com/content/images/2022/11/faq.png" medium="image"/><content:encoded><![CDATA[<img src="https://docs.ebpto.com/content/images/2022/11/faq.png" alt="Frequently Asked Questions"><p>First off, thanks to everyone for the huge amount of support and encouragement! We are looking forward to seeing what ways people use their .ip domains.</p><p>The EBPTO is a verifiable identity domain registry.</p><p>EBPTO aims to make IP portable, memorable, chain agnostic and fun. EBPTO is designed to be decentralized in both it&apos;s infrastructure and governance.</p><h3 id="general">General</h3><p></p><p><strong>What is the goal of the IP Domains?</strong><br>The most important objective of .ip domains is to become the distributed identity domain protocol standard.</p><p><strong>What can I do with my IP domain?</strong><br>IP domains work on EBPTO&apos;s blockchain-based cross-chain registration system that provides a globally unique naming system that can be used in many ways including transferring ETH &amp; NFTs, creating a personalized identity hub, domain name resolution, portfolio management, validated credentials and more.<br><br>IP domains are ENS-compatible allowing you to send ETH assets to your assigned .ip domain. (Ex: Send 1 ETH to &quot;mywallet.ip&quot;)</p><p>Resolve addresses with an .ip domain for E2EE messaging, verifiable credentials and more. View the XTMP powered E2EE messaging demo <a href="https://ip-xmtp.vercel.app/">here</a>.</p><p>View additional <a href="https://ebpto.com/docs/use-cases">use cases</a>.</p><p><strong>What&#x2019;s the difference between a .ETH ENS domain name and a .IP domain?</strong><br>An IP domain is an enhanced, Ethereum compatible domain built on the same rails and fundamentals as ENS.</p><p>ENS names are human readable with a &#x2018;.eth&#x2019; at the end, while IP names are ENS-compatible names that contain &#x2018;.ip&apos; at the end.</p><ul><li><strong><em>bob.eth</em></strong></li><li><strong><em>bob.ip</em></strong></li></ul><p>Getting an .ip domain does not prevent you from getting an .eth domain from ENS and using it in your Web3 wallet. </p><p>In research, we found that most people associate .eth domains solely with Ethereum. We believe you should have maximum control of your IP; that it should be free of limitations. IP domains are designed to be used on multiple blockchain networks.<br><br><strong>How are names registered?</strong><br>Hashes provide a fixed length identifier that can easily be passed around between contracts with fixed overhead.</p><p><strong>What are the costs to register ip domain? </strong><br>Initial registrations are auctioned publicly. Reserve premiums apply for names with 4 characters or less.</p><p>5+ characters - $2.50 / year<br>4 character - $80 / year<br>3 character - $320 / year<br>2 character - $640 / year<br>1 character - $10k / year</p><p><em>Fees are paid in ETH. The ETH/USD exchange rate is set by the Chainlink ETH/USD oracle. Network fees (gas) applies.</em></p><p><strong>How many transactions are required to register an IP domain?</strong><br>You can register in a single transaction.</p><p><strong>Is there anything needed to ensure the continued use of existing IP domains?</strong><br>Make sure you renew your IP names before they expire. There is a 90 day grace period following expiration. <br><br>From the profile view or directly in the smart contract, you can add registration years to any name at any time and extend the registration for as long as you like.</p><p><strong>Why do .ip domains use a custom ERC721 base contract (ERC-721PTO)?</strong><br>ERC-721PTO uses structs to efficiently pack ownership and loyalty metadata information.</p><!--kg-card-begin: markdown--><p>Loyalty metadata stored in the ERC-721PTO includes the number of IP domains, initial (minted) registrations, earliest registration period and longest registration period of every active address. The objective is to use this data in a similar fashion as ENS.</p>
<pre><code class="language-solidity">struct AddressData {
        uint64 balance;
        uint64 numberMinted;
        uint64 firstRegistrationTimestamp;
        uint64 largestExpiryTimestamp;
    }
</code></pre>
<p>ERC-721PTO is deployed with our BaseRegistry contract and can be found here: <a href="https://etherscan.io/address/0xEB668b89be0C33d1A1559305d75F91e0a54e69Ab"><code>0xEB668b89be0C33d1A1559305d75F91e0a54e69Ab</code></a></p>
<p>The .ip domain NFT rendering engine defaults to a contract-generated HTML page contanining the registrant, domain name, registration date metadata, and avatar record based presentation. This information is provided in the tokenURI&apos;s <code>animation_url</code> param.</p>
<!--kg-card-end: markdown--><h3 id="auctions">Auctions</h3><p></p><p><strong>Why are there auctions?</strong><br>Initial registrations are handled through public auctions with a goal to achieve fair access. While names with 4 characters or less are priced in, the auctions are designed to reduce cybersquatting given initial market visibility. </p><p><strong>How do the auctions work?</strong><br>Interested parties can search for a name they have interest in. If the name is not yet in auction, they can activate the auction by meeting or increasing the bid reserve. The bid reserve follows standard pricing guidelines.</p><p>Once the initial reserve is met and deposited, the auction lasts 24 hours.</p><p>Whenever a new bid is submitted, the prior bid funds are automatically returned and, if less than 15 minutes remain in the auction, the timer is extended 15 minutes. The time extension is an anti-bot mechanism to prevent programmatic sniping.</p><p><strong>How Long do I have to settle an auction?</strong><br>You can settle an auction at any time. When an auction is settled the registration is assigned to the auction winner, who can then claim/settle the auction.</p><p>If someone settles an auction on your behalf, only you will receive the .ip domain. </p><p>In the event you attempt to settle an auction you&apos;ve won and the claim button is disabled, it&apos;s likely someone has settled the auction on your behalf. Don&apos;t worry, no one can take the domain you&apos;ve won in auction.</p><p><strong>Auction Halving</strong><br>Once the halving begins, at the end of each period the auction length will be reduced by half until auctions are only 1 minute in length. Following the last halving auctions will be disabled and EBPTO will only support open registrations.</p><p>24h&#x2192;12h<br>12h&#x2192;6h<br>etc.</p><p>During the halving the 15 minute last bid extension will apply.</p><p>Learn more about <a href="https://www.ebpto.com/docs/registration">how open registrations work</a>.</p><h3 id="registrations-renewals">Registrations &amp; Renewals</h3><p></p><p><strong>How do renewals work?</strong><br>Anyone can extend registration years to any existing name by paying the registration fee. You can extend registration at any time. </p><div class="kg-card kg-callout-card kg-callout-card-blue"><div class="kg-callout-text">Example: IP Domains can be in your hardware wallet, and renewals can be paid via another wallet.</div></div><p><strong>What is the minimum renewal period?</strong><br>Renewal duration is recorded in the smart contracts using seconds. While there is no maximum time, there is a minimum period of 28 days.</p><p><strong>What if I forget to renew and my domain expires?</strong><br>There is a 90 day grace period to allow you to extend any registration. After the grace period ends, if not extended you will no longer own the domain.</p><p><strong>What happens to the registration &amp; renewal fees?</strong><br>All fees collected in the registrar contract will be periodically sent to the EBPTO multisig. The multisig roots will determine how to distribute funds across and for the benefit of the protocol. Considerations for fund allocations are largely inspired by ENS, focused on long-term growth, funding DAO, token, external projects that use the protocol and the core EBPTO team.</p><h3 id="management">Management</h3><p></p><p><strong>Where can I manage all my IP names?</strong><br>Visit www.ebpto.com. Make sure your wallet is connected and click &quot;Profile&quot; from the menu. View all of your IP domain names at a glance, or select them individually for details and configurations.</p><p><strong>Can I trade or sell my IP names?</strong><br>You can use the EBPTO Marketplace directly on the site. It allows you to trade IP domains on ebpto.com in addition to other popular secondary marketplaces that support ERC-721, all at once.</p><p><strong>When I transfer my IP domains will they still be tied to my public key?</strong>No, EBPTO contract clears all registration data including signatures, images and portfolio works when transferring IP domains.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Bounties]]></title><description><![CDATA[Apply for Grants, Complete bounties, help spread awareness of EBPTO and earn rewards.]]></description><link>https://docs.ebpto.com/docs/bounties/</link><guid isPermaLink="false">6383059f4b1b986e8f309808</guid><category><![CDATA[General]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Mon, 28 Nov 2022 00:03:45 GMT</pubDate><content:encoded><![CDATA[<p>Below our the available EBPTO grants bounties. </p><p>Looking for Grants? <a href="https://ebpto.com/docs/grants">Grants</a> has moved.</p><h3 id="bug-bounty-program">Bug Bounty Program</h3><p>The EBPTO bug bounty program rewards anyone who finds a bug in core EBPTO smart contracts.</p><p>The value of rewards for discovering bugs will be paid out depending on severity. The severity is calculated according to the OWASP risk rating model.</p><figure class="kg-card kg-image-card"><img src="https://docs.ebpto.com/content/images/2022/11/image-1.png" class="kg-image" alt loading="lazy" width="882" height="433" srcset="https://docs.ebpto.com/content/images/size/w600/2022/11/image-1.png 600w, https://docs.ebpto.com/content/images/2022/11/image-1.png 882w" sizes="(min-width: 720px) 720px"></figure><p>The EBPTO team reserves the right to adjust bounty amounts at any time. The EBPTO team will always honor the amount published at the time of a bug report.</p>]]></content:encoded></item><item><title><![CDATA[Resolving Names on chain]]></title><description><![CDATA[EBPTO resolution is set of methods to resolve names on chain in Solidity.]]></description><link>https://docs.ebpto.com/docs/resolving-names-on-chain/</link><guid isPermaLink="false">638316784b1b986e8f3098ec</guid><category><![CDATA[Developers]]></category><dc:creator><![CDATA[ebpto team]]></dc:creator><pubDate>Sun, 27 Nov 2022 23:21:35 GMT</pubDate><content:encoded><![CDATA[<p>These are the steps to resolve a .IP domain to an Ethereum address:</p><ol><li>Convert the name string to a name hash using the normalizer.</li><li>Query the EBPTO registry for resolver contract for the hash.</li><li>Query the resolver contract for the address.</li></ol><p>Here is some example Solidity code that implements these steps for resolving a name string to an address:</p><!--kg-card-begin: markdown--><pre><code class="language-solidity">interface EBPTO {
    function resolver(bytes32 node) external view returns (Resolver);
}

interface Resolver {
    function addr(bytes32 node) external view returns (address);
}

interface Normalize4 {
    function normhash(string memory) external view returns (bytes32 node);
}

contract NameToAddressDemo {
    EBPTO registry = EBPTO(0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92);
    Normalize4 normalizer = Normalize4(0x4D6F2f6f6dd9F48251657D6FAE53fea73c3f1E60);

    function resolve(string memory name) public view returns (address) {
        bytes32 node = normalizer.normhash(name);
        
        Resolver resolver = registry.resolver(node);
        return resolver.addr(node);
    }
}
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>