{"pageProps":{"cmsData":{"settings":{"processEnv":{"siteUrl":"https://ebpto-marketplace-6v8ejhand-ebpto.vercel.app","platform":"vercel","gaMeasurementId":"UA-XXXXXXX_or_G-XXXXXXX","darkMode":{"defaultMode":"light","overrideOS":true},"nextImages":{"feature":true,"inline":true,"quality":80,"source":false},"rssFeed":true,"memberSubscriptions":false,"commenting":{"system":null,"commentoUrl":"https://cdn.commento.io","disqusShortname":"short-name-here"},"prism":{"enable":true,"ignoreMissing":true},"contactPage":false,"toc":{"enable":true,"maxDepth":2},"customNavigation":[],"isr":{"enable":false,"revalidate":10,"maxNumberOfPosts":20,"maxNumberOfPages":20}},"title":"ebpto docs","description":"Thoughts, stories and ideas.","logo":null,"icon":null,"accent_color":"#FF1A75","cover_image":"https://static.ghost.org/v5.0.0/images/publication-cover.jpg","facebook":"ghost","twitter":"@ghost","lang":"en","locale":"en","timezone":"Etc/UTC","codeinjection_head":null,"codeinjection_foot":null,"navigation":[{"label":"Docs","url":"/"}],"secondary_navigation":[{"label":"Sign up","url":"#/portal/"}],"meta_title":null,"meta_description":null,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"members_support_address":"noreply","members_enabled":true,"members_invite_only":false,"paid_members_enabled":false,"firstpromoter_account":null,"portal_button_style":"icon-and-text","portal_button_signup_text":"Subscribe","portal_button_icon":null,"portal_plans":["free"],"portal_name":true,"portal_button":true,"comments_enabled":"off","url":"https://docs.ebpto.com","version":"5.24","coverImage":{"url":"https://static.ghost.org/v5.0.0/images/publication-cover.jpg","dimensions":{"width":5000,"height":3500}}},"posts":[{"id":"63883269981b9a8a445a2864","uuid":"2aeeeaba-588d-48cb-97e3-77b3d9e077b3","title":"Verifiable Credentials","slug":"verifiable-credentials","html":"

Configure an IP domain with any information that you would like to be cryptographically verified and linked to your registered domains.

Verified Credentials can range anywhere from official social media accounts, access control keys, cards, fobs, badges and even fully customizable and scalable tracked achievements for specific tasks and communities.

Scalable + Composable + Secure blockchain infrastructure that can now be utilized in the most practical and accessible user context.

EBPTO developed the VC.iD to configure domain specific verifiable credentials. VC.iD uses a hybrid architecture with both on-chain and off-chain components. 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 similar to a passport—additional credentials are saved in these passports like stamps.

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.

The credentials can remain pseudonymous. Individual users can operate multiple domains simultaneously. For example: a real-name domain and a company domain.

Why Verifiable Credentials?

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.

While this free field method is flexible, it does not prevent misinformation (e.g. One could type ElonMusk into a twitter record or Vitalik in the mastodon record).

Verifiable credentials require a signed proof containing information from a valid authenticated session from the issuer (twitter, google, etc).

Dive Deeper

Use Cases

","comment_id":"63883269981b9a8a445a2864","feature_image":"https://docs.ebpto.com/content/images/2022/12/verified.png","featured":false,"visibility":"public","created_at":"2022-12-01T04:49:45.000+00:00","updated_at":"2022-12-07T17:22:26.000+00:00","published_at":"2022-12-05T15:09:58.000+00:00","custom_excerpt":"An open standard for digital credentials that securely represent verifiable information.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"638317014b1b986e8f3098f4","name":"Developers","slug":"developers","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/developers/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"638317014b1b986e8f3098f4","name":"Developers","slug":"developers","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/developers/"},"url":"https://docs.ebpto.com/docs/verifiable-credentials/","excerpt":"An open standard for digital credentials that securely represent verifiable information.","reading_time":1,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":"Examples of EBPTO Verifiable Credential Applications.","featureImage":{"url":"https://docs.ebpto.com/content/images/2022/12/verified.png","dimensions":{"width":800,"height":600}}},{"id":"638d4a59981b9a8a445a2952","uuid":"029239d7-cdd9-49fe-9216-2b4f0fd0d617","title":"VC.iD","slug":"vc-id","html":"

VC.iD uses the W3C standards for digital, cryptographically verifiable credentials. VC.iD is compatible with EVM (Ethereum) accounts and EVM-based wallet authentication.

From a single domain page you can view the verified credentials of that specific domain. Credentials can be a mix of OpenID based protocols, standard or custom schemas.

Structure

Type

A credential can have one or more types. It is specified in an array of strings/URIs. The \"VerifiableCredential\" is mandatory.

The credential type can be used to determine if a specific credential is appropriate for a particular use case. For example, a credential of type \"EthereumAddress\" might be useful to validate a web3 address or specific transaction.

Issuer

Represents the issuer of the credential. In the case of a social media account verification, the issuer may be the social media network itself, authenticating a session proof.

Context

The credential context contains one or more properties that are related to the context of the verifiable credential.

The context identifier may be an array of subjects (e.g. twitter account credential, followers acount credential, etc).

Cryptographic Proofs

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.

Dive Deeper

Looking to explore more possibilities of EBPTO

Verified Credentials
Frequently Asked Questions
Build with EBPTO (Grants)
XMTP Chat Toy

","comment_id":"638d4a59981b9a8a445a2952","feature_image":"https://docs.ebpto.com/content/images/2022/12/verified-1.png","featured":false,"visibility":"public","created_at":"2022-12-05T01:33:13.000+00:00","updated_at":"2022-12-05T15:31:05.000+00:00","published_at":"2022-12-05T15:08:30.000+00:00","custom_excerpt":"VC.iD is a verified identity based framework that makes it easy organize credentials in a composable user-centric way.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382b2f94b1b986e8f3097bc","name":"Technical","slug":"technical","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/technical/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382b2f94b1b986e8f3097bc","name":"Technical","slug":"technical","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/technical/"},"url":"https://docs.ebpto.com/docs/vc-id/","excerpt":"VC.iD is a verified identity based framework that makes it easy organize credentials in a composable user-centric way.","reading_time":1,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null,"featureImage":{"url":"https://docs.ebpto.com/content/images/2022/12/verified-1.png","dimensions":{"width":800,"height":600}}},{"id":"638310ab4b1b986e8f3098a4","uuid":"3bcad4f8-04b9-445a-8ac4-462e1fb12580","title":"Use Cases","slug":"use-cases","html":"

There are limitless use cases that can be implemented using verifiable credentialed domains. Unlike traditional domains these are stored at the wallet level by their owners outside of the control of any big tech third party.

Domains are stored on-chain in the EBPTO Registry (Ethereum smart contract) leveraging the security, composability, and consistency guarantees.

A manager (registered to an ethereum address) controls the on-chain records associated to each domain.

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 VC.iD.

Public Profile

Create public profiles with verified social accounts which can be used to create a decentralized identity record. At the highest level authenticate ENS simply by registering a domain. Customize by uploading images and connected verified social accounts.

Blue check as a distributed, verified service.

Social & E2EE

As we rapidly enter the next era for social and a new way to think about communication within web3—one where users data is portable, and they can take their profile, graph, interactions, and communication wherever they want to; credentialed profiles become key. Credentialed profiles operate as an extended authentication layer providing fully end to end encryption in everything from timelines, social graphs to chats.

Using Public Profiles one could build entire social networks.

Cross-chain identity & reputation

Link crypto wallets and annotate activity from many chains, weight, score and roll up into a credit profile.

On-chain resume

Complete tasks, learn skills and earn credentials that prove contribution. Build a decentralized school.

Entitlements & Automated Reward Distribution

Teams can build bridges between its products and users based on verifiable achievements to unlock airdrops, specific rewards and more.

Trustless governance & Sybil defense

Operate decentralized governance. Create proposals, submit votes and create a sybil resistant governance app. Verified credentials establish non-Sybil traits, preventing capital capture by sybils.

Activities designed to benefit the growth of community can be rewarded to members of a governance model assigning different voting weights to each.

Proof of Reserves

Wrangle wallets to create a transparent audit providing unbiased report of assets held in reserve.

Multi-app & Global Gaming Profiles

Using the identity protocol (VD.iD) store profile data and gaming data in a way that can be consumed, added to, or extended by any app or game in Web3.

Federation

Create a new layer of identity portability across web3. Using the EBPTO issue new domains (.example, .developer) and federate them across the network.

Dive Deeper

Looking to explore more possibilities of EBPTO

Verified Credentials
Frequently Asked Questions
Build with EBPTO (Grants)
XMTP Chat Toy

","comment_id":"638310ab4b1b986e8f3098a4","feature_image":"https://docs.ebpto.com/content/images/2022/12/usecases.png","featured":false,"visibility":"public","created_at":"2022-11-27T07:24:27.000+00:00","updated_at":"2022-12-05T17:44:52.000+00:00","published_at":"2022-12-05T15:06:59.000+00:00","custom_excerpt":"Learn about use cases of EBPTO & IP Domains","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"},"url":"https://docs.ebpto.com/docs/use-cases/","excerpt":"Learn about use cases of EBPTO & IP Domains","reading_time":2,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null,"featureImage":{"url":"https://docs.ebpto.com/content/images/2022/12/usecases.png","dimensions":{"width":1634,"height":944}}},{"id":"6388e596981b9a8a445a2889","uuid":"c7eb3ade-5303-4ed2-a7c5-2bcdd182a325","title":"Grants","slug":"grants","html":"

EBPTO invites talent to help imagine and realize projects that have the potential to integrate across our daily web3 experiences.

If you are interested in a grant please reach out via DM on our official Twitter account (@OwnYourIP)

Looking to submit a grant application or credit an existing task? Submit Grants.

Opportunities

Latest Grant Opportunities

Complete an opportunity to earn. Incentives differ between activities.

Advanced Grant Opportunities

Complete an advanced code related task and earn.

💡
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.

Qualifications

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.

Grants are for:

Projects contributing to public good & social products using EBPTO

  1. Early-stage and ideation stage projects looking to jump start
  2. Projects that work open source
  3. Unique use-cases

Grants are not for:

Events or sponsorships

  1. Investment or VC funding
  2. Projects non-related to ebpto

Areas of interest

Developer tools

Wallet Apps

Analytics Tools

Developer education (Tutorials, Videos)

Education materials

","comment_id":"6388e596981b9a8a445a2889","feature_image":null,"featured":false,"visibility":"public","created_at":"2022-12-01T17:34:14.000+00:00","updated_at":"2022-12-05T15:13:57.000+00:00","published_at":"2022-12-01T17:37:32.000+00:00","custom_excerpt":"Apply for Grants: help expand the ecosystem empowered by verifiable credentialed domains.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"},"url":"https://docs.ebpto.com/docs/grants/","excerpt":"Apply for Grants: help expand the ecosystem empowered by verifiable credentialed domains.","reading_time":1,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"63859e75981b9a8a445a275c","uuid":"acce68d5-7f23-4f60-a760-c6f91095d215","title":"EBPTO Marketplace","slug":"market","html":"

The EBPTO Marketplace is a Reservoir powered aggregator gathering sales orders and listing activity across Opensea, LooksRare, Blur, X2Y2, Elements and Reservoir's implementation of Seaport.

Visit EBPTO Market

Overview

Fees

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.

Gas-free transactions include:

When listing on external marketplaces (OpenSea, LooksRare, Rarible, or X2Y2) their specific fee structures apply.

Sales made directly on EBPTO Market have a 1% fee applied (Fee is currently disabled).

Listing in the Marketplace

From an individual domain page, click 'list for sale' 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.

Buying & Accepting Bids

Click 'Buy Now' 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.

","comment_id":"63859e75981b9a8a445a275c","feature_image":"https://docs.ebpto.com/content/images/2022/11/Screen-Shot-2022-11-28-at-10.50.19-PM.png","featured":false,"visibility":"public","created_at":"2022-11-29T05:53:57.000+00:00","updated_at":"2022-12-05T06:36:31.000+00:00","published_at":"2022-11-29T06:18:08.000+00:00","custom_excerpt":"Discover and trade IP domain names across leading marketplaces.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"},"url":"https://docs.ebpto.com/docs/market/","excerpt":"Discover and trade IP domain names across leading marketplaces.","reading_time":2,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null,"featureImage":{"url":"https://docs.ebpto.com/content/images/2022/11/Screen-Shot-2022-11-28-at-10.50.19-PM.png","dimensions":{"width":778,"height":592}}},{"id":"6384e6ca981b9a8a445a273b","uuid":"f08e61ae-8d54-4610-8f08-1f185fe01320","title":"Sending Ether Using .ip Domains","slug":"sending-ether-using-ip-domains","html":"

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 provider that points to the EBPTO registry instead of the ENS registry.

Here is example ethers.js code for creating an EBPTO-enabled provider, looking up an address, and sending 1 ETH to that address:

const provider = ethers.getDefaultProvider({\n  name: "homestead",\n  chainId: 1,\n  ensAddress: '0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92'\n});\n\nconst address = await provider.resolveName("bob.ip")\n\nconst tx = signer.sendTransaction({\n  to: address,\n  value: ethers.utils.parseEther("1.0")\n});\n\nawait provider.lookupAddress("0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92")\n
\n","comment_id":"6384e6ca981b9a8a445a273b","feature_image":null,"featured":false,"visibility":"public","created_at":"2022-11-28T16:50:18.000+00:00","updated_at":"2022-12-01T04:48:52.000+00:00","published_at":"2022-11-28T16:54:48.000+00:00","custom_excerpt":null,"codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"638317014b1b986e8f3098f4","name":"Developers","slug":"developers","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/developers/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"638317014b1b986e8f3098f4","name":"Developers","slug":"developers","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/developers/"},"url":"https://docs.ebpto.com/docs/sending-ether-using-ip-domains/","excerpt":"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 provider that points to the EBPTO registry instead of the ENS registry.\n\nHere is example ethers.js code for creating an EBPTO-enabled provider, looking up an address, and sending 1 ETH to that address:\n\nconst provider = ethers.getDefaultProvider({\n name: \"homestead\",\n chainId: 1,\n ensAddress: '0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92'\n});\n\nconst address = ","reading_time":0,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"6384de63981b9a8a445a26e5","uuid":"58238c11-b2b1-42c5-bc16-625c3ff5fe48","title":"Differences Between .ip and .eth Domains","slug":"differences-between-ip-and-eth-domains","html":"

Here are some key differences between .ip and .eth that you can put to use today.

On-chain metadata.

In order to give users true self-custody over their IP, the associated metadata must be available in a fully decentralized fashion.

We achieve this through our on-chain rendering contract IPTokenRenderer. By contrast, all .eth NFT metadata is mediated by a centralized web2 server (https://metadata.ens.domains/).

On-chain name validation.

Through our IPRegistrationController, EBPTO prevents users from registering names with spaces, zero-width joiners, periods, and other inappropriate characters.

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‍on of a zero-width joiner (ZWJ) and are visually identical.

By contrast, ENS’s on-chain validation is limited to enforcing only the three character minimum. In practice, ENS’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.

50% Lower Registration Cost

EBPTO registrations are half the cost of ENS.

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.

Reduced Fees + Secure Validation.

Ability to Register One and Two Character Names

.eth names must be three or more characters. We have removed this limitation to create even more possibilities.

Register Domains in One Transaction

ENS requires two separate transactions to register a domain, with a one minute “waiting period” between them. This mechanism helps prevent front-running by allowing users to reserve domains for registration before making the identity of those domains public.

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.

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.

Front running is an Ethereum-wide problem and should be attacked at the network level, not with protocol-specific solutions. Fortunately through Flashbots, any user can create a private transaction that allows them to bypass front-running in registering any EBPTO domain.

We plan on giving users the ability to register using private transactions directly on EBPTO.com.

NFT Ownership = Registration Record Ownership

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.

On the other hand, when you transfer an EBPTO domain, the new owner automatically becomes the owner of the registration record.

We believe this is more intuitive and, most importantly, more secure.

","comment_id":"6384de63981b9a8a445a26e5","feature_image":null,"featured":false,"visibility":"public","created_at":"2022-11-28T16:14:27.000+00:00","updated_at":"2022-12-01T04:48:14.000+00:00","published_at":"2022-11-28T16:22:03.000+00:00","custom_excerpt":null,"codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"},"url":"https://docs.ebpto.com/docs/differences-between-ip-and-eth-domains/","excerpt":"Here are some key differences between .ip and .eth that you can put to use today.\n\n\nOn-chain metadata.\n\nIn order to give users true self-custody over their IP, the associated metadata must be available in a fully decentralized fashion.\n\nWe achieve this through our on-chain rendering contract IPTokenRenderer. By contrast, all .eth NFT metadata is mediated by a centralized web2 server (https://metadata.ens.domains/).\n\n\nOn-chain name validation.\n\nThrough our IPRegistrationController, EBPTO prevents","reading_time":2,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"6384414b981b9a8a445a2611","uuid":"5772cc91-2b37-478a-9b59-8a9c05eb6b43","title":"Registration","slug":"registration","html":"

Open registration allows anyone to register a qualifying name.

💡
Open registrations are unavailable while auctions are live.

Search for a name on EBPTO.com. 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.

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.

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.

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 FAQ page.

Once the registration is complete, the .ip domain card will appear in your wallet and in your Profile tab on EBPTO.com.

","comment_id":"6384414b981b9a8a445a2611","feature_image":null,"featured":false,"visibility":"public","created_at":"2022-11-28T05:04:11.000+00:00","updated_at":"2022-12-09T17:19:01.000+00:00","published_at":"2022-11-28T05:14:59.000+00:00","custom_excerpt":"Learn how to obtain an .ip account","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"},"url":"https://docs.ebpto.com/docs/registration/","excerpt":"Learn how to obtain an .ip account","reading_time":1,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"63843264981b9a8a445a2550","uuid":"28180ac5-4f75-4c48-81a4-e3965fc63a90","title":"Glossary","slug":"glossary","html":"


","comment_id":"63843264981b9a8a445a2550","feature_image":null,"featured":false,"visibility":"public","created_at":"2022-11-28T04:00:36.000+00:00","updated_at":"2022-12-05T06:40:50.000+00:00","published_at":"2022-11-28T04:16:59.000+00:00","custom_excerpt":"Common terminology reference","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"},"url":"https://docs.ebpto.com/docs/glossary/","excerpt":"Common terminology reference","reading_time":1,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"6383eb31981b9a8a445a226c","uuid":"29b095cc-834f-4b8d-b681-bb90c1026857","title":"Core Protocol Reference","slug":"core-protocol-reference","html":"

Terminology and Deployment

If you understand ENS you will find EBPTO’s architecture familiar.

EBPTO Contracts


EBPTO is deployed on mainnet at these addresses

","comment_id":"6383eb31981b9a8a445a226c","feature_image":null,"featured":false,"visibility":"public","created_at":"2022-11-27T22:56:49.000+00:00","updated_at":"2022-12-01T02:09:29.000+00:00","published_at":"2022-11-28T03:38:07.000+00:00","custom_excerpt":"EBPTO is a decentralized application orchestrated through smart contracts","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"638317014b1b986e8f3098f4","name":"Developers","slug":"developers","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/developers/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"638317014b1b986e8f3098f4","name":"Developers","slug":"developers","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/developers/"},"url":"https://docs.ebpto.com/docs/core-protocol-reference/","excerpt":"EBPTO is a decentralized application orchestrated through smart contracts","reading_time":1,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"6382b3064b1b986e8f3097c1","uuid":"b8c21dfd-505c-4c62-a152-1b430e3f0148","title":"Frequently Asked Questions","slug":"frequently-asked-questions","html":"

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.

The EBPTO is a verifiable identity domain registry.

EBPTO aims to make IP portable, memorable, chain agnostic and fun. EBPTO is designed to be decentralized in both it's infrastructure and governance.

General

What is the goal of the IP Domains?
The most important objective of .ip domains is to become the distributed identity domain protocol standard.

What can I do with my IP domain?
IP domains work on EBPTO's blockchain-based cross-chain registration system that provides a globally unique naming system that can be used in many ways including transferring ETH & NFTs, creating a personalized identity hub, domain name resolution, portfolio management, validated credentials and more.

IP domains are ENS-compatible allowing you to send ETH assets to your assigned .ip domain. (Ex: Send 1 ETH to \"mywallet.ip\")

Resolve addresses with an .ip domain for E2EE messaging, verifiable credentials and more. View the XTMP powered E2EE messaging demo here.

View additional use cases.

What’s the difference between a .ETH ENS domain name and a .IP domain?
An IP domain is an enhanced, Ethereum compatible domain built on the same rails and fundamentals as ENS.

ENS names are human readable with a ‘.eth’ at the end, while IP names are ENS-compatible names that contain ‘.ip' at the end.

Getting an .ip domain does not prevent you from getting an .eth domain from ENS and using it in your Web3 wallet.

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.

How are names registered?
Hashes provide a fixed length identifier that can easily be passed around between contracts with fixed overhead.

What are the costs to register ip domain?
Initial registrations are auctioned publicly. Reserve premiums apply for names with 4 characters or less.

5+ characters - $2.50 / year
4 character - $80 / year
3 character - $320 / year
2 character - $640 / year
1 character - $10k / year

Fees are paid in ETH. The ETH/USD exchange rate is set by the Chainlink ETH/USD oracle. Network fees (gas) applies.

How many transactions are required to register an IP domain?
You can register in a single transaction.

Is there anything needed to ensure the continued use of existing IP domains?
Make sure you renew your IP names before they expire. There is a 90 day grace period following expiration.

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.

Why do .ip domains use a custom ERC721 base contract (ERC-721PTO)?
ERC-721PTO uses structs to efficiently pack ownership and loyalty metadata information.

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.

\n
struct AddressData {\n        uint64 balance;\n        uint64 numberMinted;\n        uint64 firstRegistrationTimestamp;\n        uint64 largestExpiryTimestamp;\n    }\n
\n

ERC-721PTO is deployed with our BaseRegistry contract and can be found here: 0xEB668b89be0C33d1A1559305d75F91e0a54e69Ab

\n

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's animation_url param.

\n

Auctions

Why are there auctions?
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.

How do the auctions work?
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.

Once the initial reserve is met and deposited, the auction lasts 24 hours.

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.

How Long do I have to settle an auction?
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.

If someone settles an auction on your behalf, only you will receive the .ip domain.

In the event you attempt to settle an auction you've won and the claim button is disabled, it's likely someone has settled the auction on your behalf. Don't worry, no one can take the domain you've won in auction.

Auction Halving
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.

24h→12h
12h→6h
etc.

During the halving the 15 minute last bid extension will apply.

Learn more about how open registrations work.

Registrations & Renewals

How do renewals work?
Anyone can extend registration years to any existing name by paying the registration fee. You can extend registration at any time.

Example: IP Domains can be in your hardware wallet, and renewals can be paid via another wallet.

What is the minimum renewal period?
Renewal duration is recorded in the smart contracts using seconds. While there is no maximum time, there is a minimum period of 28 days.

What if I forget to renew and my domain expires?
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.

What happens to the registration & renewal fees?
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.

Management

Where can I manage all my IP names?
Visit www.ebpto.com. Make sure your wallet is connected and click \"Profile\" from the menu. View all of your IP domain names at a glance, or select them individually for details and configurations.

Can I trade or sell my IP names?
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.

When I transfer my IP domains will they still be tied to my public key?No, EBPTO contract clears all registration data including signatures, images and portfolio works when transferring IP domains.

","comment_id":"6382b3064b1b986e8f3097c1","feature_image":"https://docs.ebpto.com/content/images/2022/11/faq.png","featured":false,"visibility":"public","created_at":"2022-11-27T00:44:54.000+00:00","updated_at":"2022-12-05T15:08:14.000+00:00","published_at":"2022-11-28T02:46:57.000+00:00","custom_excerpt":"Overview of everything EBPTO and IP domains","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"},"url":"https://docs.ebpto.com/docs/frequently-asked-questions/","excerpt":"Overview of everything EBPTO and IP domains","reading_time":5,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null,"featureImage":{"url":"https://docs.ebpto.com/content/images/2022/11/faq.png","dimensions":{"width":1634,"height":944}}},{"id":"6383059f4b1b986e8f309808","uuid":"85927414-9d28-48a0-8f66-6a75aa17e8b9","title":"Bounties","slug":"bounties","html":"

Below our the available EBPTO grants bounties.

Looking for Grants? Grants has moved.

Bug Bounty Program

The EBPTO bug bounty program rewards anyone who finds a bug in core EBPTO smart contracts.

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.

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.

","comment_id":"6383059f4b1b986e8f309808","feature_image":null,"featured":false,"visibility":"public","created_at":"2022-11-27T06:37:19.000+00:00","updated_at":"2022-12-01T17:38:50.000+00:00","published_at":"2022-11-28T00:03:45.000+00:00","custom_excerpt":"Apply for Grants, Complete bounties, help spread awareness of EBPTO and earn rewards.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"6382813e4b1b986e8f309772","name":"General","slug":"general","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/general/"},"url":"https://docs.ebpto.com/docs/bounties/","excerpt":"Apply for Grants, Complete bounties, help spread awareness of EBPTO and earn rewards.","reading_time":1,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null},{"id":"638316784b1b986e8f3098ec","uuid":"eac3d476-87e6-4e12-a28c-202310ffe96a","title":"Resolving Names on chain","slug":"resolving-names-on-chain","html":"

These are the steps to resolve a .IP domain to an Ethereum address:

  1. Convert the name string to a name hash using the normalizer.
  2. Query the EBPTO registry for resolver contract for the hash.
  3. Query the resolver contract for the address.

Here is some example Solidity code that implements these steps for resolving a name string to an address:

interface EBPTO {\n    function resolver(bytes32 node) external view returns (Resolver);\n}\n\ninterface Resolver {\n    function addr(bytes32 node) external view returns (address);\n}\n\ninterface Normalize4 {\n    function normhash(string memory) external view returns (bytes32 node);\n}\n\ncontract NameToAddressDemo {\n    EBPTO registry = EBPTO(0xDd0Bc20FB93E3033C9282E322f897fC2997F7f92);\n    Normalize4 normalizer = Normalize4(0x4D6F2f6f6dd9F48251657D6FAE53fea73c3f1E60);\n\n    function resolve(string memory name) public view returns (address) {\n        bytes32 node = normalizer.normhash(name);\n        \n        Resolver resolver = registry.resolver(node);\n        return resolver.addr(node);\n    }\n}\n
\n","comment_id":"638316784b1b986e8f3098ec","feature_image":null,"featured":false,"visibility":"public","created_at":"2022-11-27T07:49:12.000+00:00","updated_at":"2022-12-01T02:46:00.000+00:00","published_at":"2022-11-27T23:21:35.000+00:00","custom_excerpt":"EBPTO resolution is set of methods to resolve names on chain in Solidity.","codeinjection_head":null,"codeinjection_foot":null,"custom_template":null,"canonical_url":null,"tags":[{"id":"638317014b1b986e8f3098f4","name":"Developers","slug":"developers","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/developers/"}],"authors":[{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"}],"primary_author":{"id":"1","name":"ebpto team","slug":"ebpto","profile_image":null,"cover_image":null,"bio":null,"website":null,"location":null,"facebook":null,"twitter":null,"meta_title":null,"meta_description":null,"url":"https://docs.ebpto.com/docs/author/ebpto/"},"primary_tag":{"id":"638317014b1b986e8f3098f4","name":"Developers","slug":"developers","description":null,"feature_image":null,"visibility":"public","og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"codeinjection_head":null,"codeinjection_foot":null,"canonical_url":null,"accent_color":null,"url":"https://docs.ebpto.com/docs/tag/developers/"},"url":"https://docs.ebpto.com/docs/resolving-names-on-chain/","excerpt":"EBPTO resolution is set of methods to resolve names on chain in Solidity.","reading_time":0,"access":true,"comments":false,"og_image":null,"og_title":null,"og_description":null,"twitter_image":null,"twitter_title":null,"twitter_description":null,"meta_title":null,"meta_description":null,"email_subject":null,"frontmatter":null,"feature_image_alt":null,"feature_image_caption":null}],"seoImage":{"url":"https://ebpto-marketplace-6v8ejhand-ebpto.vercel.app/site-meta.png","dimensions":{"width":1120,"height":768}},"bodyClass":"home-template"}},"baseUrl":"https://api.reservoir.tools","__N_SSG":true}